/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cosmodas.EntCosmos;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author obper
 */
@Entity
@Table(name = "vprecio_programa_f")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "VprecioProgramaF.findAll", query = "SELECT v FROM VprecioProgramaF v")
        , @NamedQuery(name = "VprecioProgramaF.findById", query = "SELECT v FROM VprecioProgramaF v WHERE v.id = :id")
        , @NamedQuery(name = "VprecioProgramaF.findByProgramaCodigo", query = "SELECT v FROM VprecioProgramaF v WHERE v.programaCodigo = :programaCodigo")
        , @NamedQuery(name = "VprecioProgramaF.findByProductoCodigo", query = "SELECT v FROM VprecioProgramaF v WHERE v.productoCodigo = :productoCodigo")
        , @NamedQuery(name = "VprecioProgramaF.findByProductoNombre", query = "SELECT v FROM VprecioProgramaF v WHERE v.productoNombre = :productoNombre")
        , @NamedQuery(name = "VprecioProgramaF.findByPrecioProgramaOferta", query = "SELECT v FROM VprecioProgramaF v WHERE v.precioProgramaOferta = :precioProgramaOferta")
        , @NamedQuery(name = "VprecioProgramaF.findByOfertaCodigo", query = "SELECT v FROM VprecioProgramaF v WHERE v.ofertaCodigo = :ofertaCodigo")
        , @NamedQuery(name = "VprecioProgramaF.findByNombreOferta", query = "SELECT v FROM VprecioProgramaF v WHERE v.nombreOferta = :nombreOferta")
        , @NamedQuery(name = "VprecioProgramaF.findByPrecioProgramaSinDescuento", query = "SELECT v FROM VprecioProgramaF v WHERE v.precioProgramaSinDescuento = :precioProgramaSinDescuento")
        , @NamedQuery(name = "VprecioProgramaF.findByPrecioProgramaConDescuento", query = "SELECT v FROM VprecioProgramaF v WHERE v.precioProgramaConDescuento = :precioProgramaConDescuento")
//personalizados
        , @NamedQuery(name = "VprecioProgramaF.findByProductoNombreCodigoAndProgramaCodigo", query = "SELECT v FROM VprecioProgramaF v WHERE v.productoNombre like :productoNombre AND v.programaCodigo = :programaCodigo")
        , @NamedQuery(name = "VprecioProgramaF.findByProductoNombreCodigoAndProgramaCodigoPedido", query = "SELECT v FROM VprecioProgramaF v WHERE v.productoNombre like :productoNombre AND v.programaCodigo = :programaCodigo AND v.ofertaCodigo < '9996'")
        , @NamedQuery(name = "VprecioProgramaF.findByProductoCodigoAndProgramaCodigo", query = "SELECT v FROM VprecioProgramaF v WHERE v.productoCodigo = :productoCodigo AND v.programaCodigo = :programaCodigo")
        , @NamedQuery(name = "VprecioProgramaF.findByProductoCodigoAndProgramaCodigoPedido", query = "SELECT v FROM VprecioProgramaF v WHERE v.productoCodigo = :productoCodigo AND v.programaCodigo = :programaCodigo AND v.ofertaCodigo < '9996'")
        , @NamedQuery(name = "VprecioProgramaF.findByProductoCodigoAndProgramaCodigoAndOferta", query = "SELECT v FROM VprecioProgramaF v WHERE v.productoCodigo = :productoCodigo AND v.programaCodigo = :programaCodigo AND v.ofertaCodigo = :ofertaCodigo")

})
public class VprecioProgramaF implements Serializable {

    private static final long serialVersionUID = 1L;
    @Column(name = "id")
    @Id
    private String id;
    @Basic(optional = false)
    @NotNull
    @Column(name = "programa_codigo")
    private String programaCodigo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "producto_codigo")
    private String productoCodigo;
    @Column(name = "producto_nombre")
    private String productoNombre;
    @Basic(optional = false)
    @NotNull
    @Column(name = "precio_programa_oferta")
    private boolean precioProgramaOferta;
    @Basic(optional = false)
    @NotNull
    @Column(name = "oferta_codigo")
    private String ofertaCodigo;
    @Column(name = "nombre_oferta")
    private String nombreOferta;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Basic(optional = false)
    @NotNull
    @Column(name = "precio_programa_sin_descuento")
    private BigDecimal precioProgramaSinDescuento;
    @Basic(optional = false)
    @Column(name = "precio_programa_con_descuento")
    private BigDecimal precioProgramaConDescuento;
    @Column(name = "detalle_envio")
    private Character detalleEnvio;
    @Column(name = "foferta")
    private String foferta;

    public VprecioProgramaF() {
    }

    public Character getDetalleEnvio() {
        return detalleEnvio;
    }

    public void setDetalleEnvio(Character detalleEnvio) {
        this.detalleEnvio = detalleEnvio;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getProgramaCodigo() {
        return programaCodigo;
    }

    public void setProgramaCodigo(String programaCodigo) {
        this.programaCodigo = programaCodigo;
    }

    public String getProductoCodigo() {
        return productoCodigo;
    }

    public void setProductoCodigo(String productoCodigo) {
        this.productoCodigo = productoCodigo;
    }

    public String getProductoNombre() {
        return productoNombre;
    }

    public void setProductoNombre(String productoNombre) {
        this.productoNombre = productoNombre;
    }

    public boolean getPrecioProgramaOferta() {
        return precioProgramaOferta;
    }

    public void setPrecioProgramaOferta(boolean precioProgramaOferta) {
        this.precioProgramaOferta = precioProgramaOferta;
    }

    public String getOfertaCodigo() {
        return ofertaCodigo;
    }

    public void setOfertaCodigo(String ofertaCodigo) {
        this.ofertaCodigo = ofertaCodigo;
    }

    public String getNombreOferta() {
        return nombreOferta;
    }

    public void setNombreOferta(String nombreOferta) {
        this.nombreOferta = nombreOferta;
    }

    public BigDecimal getPrecioProgramaSinDescuento() {
        return precioProgramaSinDescuento;
    }

    public void setPrecioProgramaSinDescuento(BigDecimal precioProgramaSinDescuento) {
        this.precioProgramaSinDescuento = precioProgramaSinDescuento;
    }

    public BigDecimal getPrecioProgramaConDescuento() {
        return precioProgramaConDescuento;
    }

    public void setPrecioProgramaConDescuento(BigDecimal precioProgramaConDescuento) {
        this.precioProgramaConDescuento = precioProgramaConDescuento;
    }

    public String getFoferta() {
        return foferta;
    }

    public void setFoferta(String foferta) {
        this.foferta = foferta;
    }
}
