/*
 * 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 java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author obper
 */
@Entity
@Table(name = "consultorpromocion")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "Consultorpromocion.findAll", query = "SELECT c FROM Consultorpromocion c"),
        @NamedQuery(name = "Consultorpromocion.findByConsultorCodigo", query = "SELECT c FROM Consultorpromocion c WHERE c.consultorpromocionPK.consultorCodigo = :consultorCodigo"),
        @NamedQuery(name = "Consultorpromocion.findByFacturaCodigo", query = "SELECT c FROM Consultorpromocion c WHERE c.consultorpromocionPK.facturaCodigo = :facturaCodigo"),
        @NamedQuery(name = "Consultorpromocion.findByFacturaSerie", query = "SELECT c FROM Consultorpromocion c WHERE c.consultorpromocionPK.facturaSerie = :facturaSerie"),
        @NamedQuery(name = "Consultorpromocion.findByConsultorPromocionSinDescuento", query = "SELECT c FROM Consultorpromocion c WHERE c.consultorpromocionPK.consultorPromocionSinDescuento = :consultorPromocionSinDescuento"),
        @NamedQuery(name = "Consultorpromocion.findByConsultorPromocionConDescuento", query = "SELECT c FROM Consultorpromocion c WHERE c.consultorPromocionConDescuento = :consultorPromocionConDescuento"),
        @NamedQuery(name = "Consultorpromocion.findByConsultorPromocionFecha", query = "SELECT c FROM Consultorpromocion c WHERE c.consultorPromocionFecha = :consultorPromocionFecha"),
        @NamedQuery(name = "Consultorpromocion.findByNumeroPromocion", query = "SELECT c FROM Consultorpromocion c WHERE c.consultorpromocionPK.numeroPromocion = :numeroPromocion")})
public class Consultorpromocion implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ConsultorpromocionPK consultorpromocionPK;
    // @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 = "consultor_promocion_con_descuento")
    private BigDecimal consultorPromocionConDescuento;
    @Basic(optional = false)
    @NotNull
    @Column(name = "consultor_promocion_fecha")
    @Temporal(TemporalType.DATE)
    private Date consultorPromocionFecha;

    public Consultorpromocion() {
    }

    public Consultorpromocion(ConsultorpromocionPK consultorpromocionPK) {
        this.consultorpromocionPK = consultorpromocionPK;
    }

    public Consultorpromocion(ConsultorpromocionPK consultorpromocionPK, BigDecimal consultorPromocionConDescuento, Date consultorPromocionFecha) {
        this.consultorpromocionPK = consultorpromocionPK;
        this.consultorPromocionConDescuento = consultorPromocionConDescuento;
        this.consultorPromocionFecha = consultorPromocionFecha;
    }

    public Consultorpromocion(String consultorCodigo, String facturaCodigo, String facturaSerie, BigDecimal consultorPromocionSinDescuento, short numeroPromocion) {
        this.consultorpromocionPK = new ConsultorpromocionPK(consultorCodigo, facturaCodigo, facturaSerie, consultorPromocionSinDescuento, numeroPromocion);
    }

    public ConsultorpromocionPK getConsultorpromocionPK() {
        return consultorpromocionPK;
    }

    public void setConsultorpromocionPK(ConsultorpromocionPK consultorpromocionPK) {
        this.consultorpromocionPK = consultorpromocionPK;
    }

    public BigDecimal getConsultorPromocionConDescuento() {
        return consultorPromocionConDescuento;
    }

    public void setConsultorPromocionConDescuento(BigDecimal consultorPromocionConDescuento) {
        this.consultorPromocionConDescuento = consultorPromocionConDescuento;
    }

    public Date getConsultorPromocionFecha() {
        return consultorPromocionFecha;
    }

    public void setConsultorPromocionFecha(Date consultorPromocionFecha) {
        this.consultorPromocionFecha = consultorPromocionFecha;
    }

//    @Override
//    public int hashCode() {
//        int hash = 0;
//        hash += (consultorpromocionPK != null ? consultorpromocionPK.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 Consultorpromocion)) {
            return false;
        }
        Consultorpromocion other = (Consultorpromocion) object;
        if ((this.consultorpromocionPK == null && other.consultorpromocionPK != null) || (this.consultorpromocionPK != null && !this.consultorpromocionPK.equals(other.consultorpromocionPK))) {
            return false;
        }
        return true;
    }

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

}
