/*
 * 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.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author informatica
 */
@Entity
@Table(name = "detalle_proceso_pedido")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "DetalleProcesoPedido.findAll", query = "SELECT d FROM DetalleProcesoPedido d")
        , @NamedQuery(name = "DetalleProcesoPedido.findByIdpp", query = "SELECT d FROM DetalleProcesoPedido d WHERE d.detalleProcesoPedidoPK.idpp = :idpp")
        , @NamedQuery(name = "DetalleProcesoPedido.findByProgramaCodigo", query = "SELECT d FROM DetalleProcesoPedido d WHERE d.detalleProcesoPedidoPK.programaCodigo = :programaCodigo")
        , @NamedQuery(name = "DetalleProcesoPedido.findByProductoCodigo", query = "SELECT d FROM DetalleProcesoPedido d WHERE d.detalleProcesoPedidoPK.productoCodigo = :productoCodigo")
        , @NamedQuery(name = "DetalleProcesoPedido.findByConsultorCodigo", query = "SELECT d FROM DetalleProcesoPedido d WHERE d.consultorCodigo = :consultorCodigo")
        , @NamedQuery(name = "DetalleProcesoPedido.findByDetallePedidoOferta", query = "SELECT d FROM DetalleProcesoPedido d WHERE d.detallePedidoOferta = :detallePedidoOferta")
        , @NamedQuery(name = "DetalleProcesoPedido.findByDetallePedidoCantidad", query = "SELECT d FROM DetalleProcesoPedido d WHERE d.detallePedidoCantidad = :detallePedidoCantidad")
        , @NamedQuery(name = "DetalleProcesoPedido.findByDetallePedidoSinDescuento", query = "SELECT d FROM DetalleProcesoPedido d WHERE d.detallePedidoSinDescuento = :detallePedidoSinDescuento")
        , @NamedQuery(name = "DetalleProcesoPedido.findByDetallePedidoConDescuento", query = "SELECT d FROM DetalleProcesoPedido d WHERE d.detallePedidoConDescuento = :detallePedidoConDescuento")})
public class DetalleProcesoPedido implements Serializable {

    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DetalleProcesoPedidoPK detalleProcesoPedidoPK;
    @Size(max = 5)
    @Column(name = "consultor_codigo")
    private String consultorCodigo;
    @Size(max = 4)
    @Column(name = "detalle_pedido_oferta")
    private String detallePedidoOferta;
    @Column(name = "detalle_pedido_cantidad")
    private Short detallePedidoCantidad;
    @Size(max = 100)
    @Column(name = "detalle_pedido_oferta_des")
    private String detallePedidoOfertaDes;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "detalle_pedido_sin_descuento")
    private BigDecimal detallePedidoSinDescuento;
    @Column(name = "detalle_pedido_con_descuento")
    private BigDecimal detallePedidoConDescuento;
    @JoinColumn(name = "idpp", referencedColumnName = "idpp", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private ProcesoPedidos procesoPedidos;

    public DetalleProcesoPedido() {
    }

    public DetalleProcesoPedido(DetalleProcesoPedidoPK detalleProcesoPedidoPK) {
        this.detalleProcesoPedidoPK = detalleProcesoPedidoPK;
    }

    public DetalleProcesoPedido(int idpp, String programaCodigo, String productoCodigo) {
        this.detalleProcesoPedidoPK = new DetalleProcesoPedidoPK(idpp, programaCodigo, productoCodigo);
    }

    public DetalleProcesoPedidoPK getDetalleProcesoPedidoPK() {
        return detalleProcesoPedidoPK;
    }

    public void setDetalleProcesoPedidoPK(DetalleProcesoPedidoPK detalleProcesoPedidoPK) {
        this.detalleProcesoPedidoPK = detalleProcesoPedidoPK;
    }

    public String getConsultorCodigo() {
        return consultorCodigo;
    }

    public void setConsultorCodigo(String consultorCodigo) {
        this.consultorCodigo = consultorCodigo;
    }

    public String getDetallePedidoOferta() {
        return detallePedidoOferta;
    }

    public void setDetallePedidoOferta(String detallePedidoOferta) {
        this.detallePedidoOferta = detallePedidoOferta;
    }

    public Short getDetallePedidoCantidad() {
        return detallePedidoCantidad;
    }

    public void setDetallePedidoCantidad(Short detallePedidoCantidad) {
        this.detallePedidoCantidad = detallePedidoCantidad;
    }

    public BigDecimal getDetallePedidoSinDescuento() {
        return detallePedidoSinDescuento;
    }

    public void setDetallePedidoSinDescuento(BigDecimal detallePedidoSinDescuento) {
        this.detallePedidoSinDescuento = detallePedidoSinDescuento;
    }

    public BigDecimal getDetallePedidoConDescuento() {
        return detallePedidoConDescuento;
    }

    public void setDetallePedidoConDescuento(BigDecimal detallePedidoConDescuento) {
        this.detallePedidoConDescuento = detallePedidoConDescuento;
    }

    public ProcesoPedidos getProcesoPedidos() {
        return procesoPedidos;
    }

    public void setProcesoPedidos(ProcesoPedidos procesoPedidos) {
        this.procesoPedidos = procesoPedidos;
    }

    public String getDetallePedidoOfertaDes() {
        return detallePedidoOfertaDes;
    }

    public void setDetallePedidoOfertaDes(String detallePedidoOfertaDes) {
        this.detallePedidoOfertaDes = detallePedidoOfertaDes;
    }


    @Override
    public int hashCode() {
        int hash = 0;
        hash += (detalleProcesoPedidoPK != null ? detalleProcesoPedidoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof DetalleProcesoPedido)) {
            return false;
        }
        DetalleProcesoPedido other = (DetalleProcesoPedido) object;
        if ((this.detalleProcesoPedidoPK == null && other.detalleProcesoPedidoPK != null) || (this.detalleProcesoPedidoPK != null && !this.detalleProcesoPedidoPK.equals(other.detalleProcesoPedidoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.cosmodas.dbcon.DetalleProcesoPedido[ detalleProcesoPedidoPK=" + detalleProcesoPedidoPK + " ]";
    }

}
