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

/**
 * @author obper
 */
@Entity
@Table(name = "hdetalle_factura")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "HdetalleFactura.findAll", query = "SELECT h FROM HdetalleFactura h"),
        @NamedQuery(name = "HdetalleFactura.findByFacturaSerie", query = "SELECT h FROM HdetalleFactura h WHERE h.hdetalleFacturaPK.facturaSerie = :facturaSerie"),
        @NamedQuery(name = "HdetalleFactura.findByFacturaCodigo", query = "SELECT h FROM HdetalleFactura h WHERE h.hdetalleFacturaPK.facturaCodigo = :facturaCodigo"),
        @NamedQuery(name = "HdetalleFactura.findByProductoCodigo", query = "SELECT h FROM HdetalleFactura h WHERE h.hdetalleFacturaPK.productoCodigo = :productoCodigo"),
        @NamedQuery(name = "HdetalleFactura.findByDetalleFacturaOferta", query = "SELECT h FROM HdetalleFactura h WHERE h.hdetalleFacturaPK.detalleFacturaOferta = :detalleFacturaOferta"),
        @NamedQuery(name = "HdetalleFactura.findByDetalleFacturaCantidad", query = "SELECT h FROM HdetalleFactura h WHERE h.detalleFacturaCantidad = :detalleFacturaCantidad"),
        @NamedQuery(name = "HdetalleFactura.findByDetalleFacturaEntregado", query = "SELECT h FROM HdetalleFactura h WHERE h.detalleFacturaEntregado = :detalleFacturaEntregado"),
        @NamedQuery(name = "HdetalleFactura.findByDetalleFacturaSinDescuento", query = "SELECT h FROM HdetalleFactura h WHERE h.detalleFacturaSinDescuento = :detalleFacturaSinDescuento"),
        @NamedQuery(name = "HdetalleFactura.findByDetalleFacturaConDescuento", query = "SELECT h FROM HdetalleFactura h WHERE h.detalleFacturaConDescuento = :detalleFacturaConDescuento")})
public class HdetalleFactura implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected HdetalleFacturaPK hdetalleFacturaPK;
    @Basic(optional = false)
    @NotNull
    @Column(name = "detalle_factura_cantidad")
    private short detalleFacturaCantidad;
    @Basic(optional = false)
    @NotNull
    @Column(name = "detalle_factura_entregado")
    private boolean detalleFacturaEntregado;
    // @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 = "detalle_factura_sin_descuento")
    private BigDecimal detalleFacturaSinDescuento;
    @Basic(optional = false)
    @NotNull
    @Column(name = "detalle_factura_con_descuento")
    private BigDecimal detalleFacturaConDescuento;

    public HdetalleFactura() {
    }

    public HdetalleFactura(HdetalleFacturaPK hdetalleFacturaPK) {
        this.hdetalleFacturaPK = hdetalleFacturaPK;
    }

    public HdetalleFactura(HdetalleFacturaPK hdetalleFacturaPK, short detalleFacturaCantidad, boolean detalleFacturaEntregado, BigDecimal detalleFacturaSinDescuento, BigDecimal detalleFacturaConDescuento) {
        this.hdetalleFacturaPK = hdetalleFacturaPK;
        this.detalleFacturaCantidad = detalleFacturaCantidad;
        this.detalleFacturaEntregado = detalleFacturaEntregado;
        this.detalleFacturaSinDescuento = detalleFacturaSinDescuento;
        this.detalleFacturaConDescuento = detalleFacturaConDescuento;
    }

    public HdetalleFactura(String facturaSerie, String facturaCodigo, String productoCodigo, String detalleFacturaOferta) {
        this.hdetalleFacturaPK = new HdetalleFacturaPK(facturaSerie, facturaCodigo, productoCodigo, detalleFacturaOferta);
    }

    public HdetalleFacturaPK getHdetalleFacturaPK() {
        return hdetalleFacturaPK;
    }

    public void setHdetalleFacturaPK(HdetalleFacturaPK hdetalleFacturaPK) {
        this.hdetalleFacturaPK = hdetalleFacturaPK;
    }

    public short getDetalleFacturaCantidad() {
        return detalleFacturaCantidad;
    }

    public void setDetalleFacturaCantidad(short detalleFacturaCantidad) {
        this.detalleFacturaCantidad = detalleFacturaCantidad;
    }

    public boolean getDetalleFacturaEntregado() {
        return detalleFacturaEntregado;
    }

    public void setDetalleFacturaEntregado(boolean detalleFacturaEntregado) {
        this.detalleFacturaEntregado = detalleFacturaEntregado;
    }

    public BigDecimal getDetalleFacturaSinDescuento() {
        return detalleFacturaSinDescuento;
    }

    public void setDetalleFacturaSinDescuento(BigDecimal detalleFacturaSinDescuento) {
        this.detalleFacturaSinDescuento = detalleFacturaSinDescuento;
    }

    public BigDecimal getDetalleFacturaConDescuento() {
        return detalleFacturaConDescuento;
    }

    public void setDetalleFacturaConDescuento(BigDecimal detalleFacturaConDescuento) {
        this.detalleFacturaConDescuento = detalleFacturaConDescuento;
    }

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

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

}
