/*
 * 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.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author obper
 */
@Entity
@Table(name = "hfacturas")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "Hfacturas.findAll", query = "SELECT h FROM Hfacturas h"),
        @NamedQuery(name = "Hfacturas.findByFacturaSerie", query = "SELECT h FROM Hfacturas h WHERE h.hfacturasPK.facturaSerie = :facturaSerie"),
        @NamedQuery(name = "Hfacturas.findByFacturaCodigo", query = "SELECT h FROM Hfacturas h WHERE h.hfacturasPK.facturaCodigo = :facturaCodigo"),
        @NamedQuery(name = "Hfacturas.findByConsultorCodigo", query = "SELECT h FROM Hfacturas h WHERE h.consultorCodigo = :consultorCodigo"),
        @NamedQuery(name = "Hfacturas.findByProgramaCodigo", query = "SELECT h FROM Hfacturas h WHERE h.programaCodigo = :programaCodigo"),
        @NamedQuery(name = "Hfacturas.findByFacturaAnulada", query = "SELECT h FROM Hfacturas h WHERE h.facturaAnulada = :facturaAnulada"),
        @NamedQuery(name = "Hfacturas.findBySucursalCodigo", query = "SELECT h FROM Hfacturas h WHERE h.sucursalCodigo = :sucursalCodigo"),
        @NamedQuery(name = "Hfacturas.findByDocumentoCodigo", query = "SELECT h FROM Hfacturas h WHERE h.documentoCodigo = :documentoCodigo"),
        @NamedQuery(name = "Hfacturas.findByFacturaFecha", query = "SELECT h FROM Hfacturas h WHERE h.facturaFecha = :facturaFecha"),
        @NamedQuery(name = "Hfacturas.findByFacturaTotalSinDescuento", query = "SELECT h FROM Hfacturas h WHERE h.facturaTotalSinDescuento = :facturaTotalSinDescuento"),
        @NamedQuery(name = "Hfacturas.findByFacturaTotalConDescuento", query = "SELECT h FROM Hfacturas h WHERE h.facturaTotalConDescuento = :facturaTotalConDescuento"),
        @NamedQuery(name = "Hfacturas.findByFacturaIva", query = "SELECT h FROM Hfacturas h WHERE h.facturaIva = :facturaIva"),
        @NamedQuery(name = "Hfacturas.findByFacturaCredito", query = "SELECT h FROM Hfacturas h WHERE h.facturaCredito = :facturaCredito"),
        @NamedQuery(name = "Hfacturas.findByFacturaImpresa", query = "SELECT h FROM Hfacturas h WHERE h.facturaImpresa = :facturaImpresa"),
        @NamedQuery(name = "Hfacturas.findByFacturaReparto", query = "SELECT h FROM Hfacturas h WHERE h.facturaReparto = :facturaReparto"),
        @NamedQuery(name = "Hfacturas.findByFacturaenvio", query = "SELECT h FROM Hfacturas h WHERE h.facturaenvio = :facturaenvio"),
        @NamedQuery(name = "Hfacturas.findByOtrodesc", query = "SELECT h FROM Hfacturas h WHERE h.otrodesc = :otrodesc")})
public class Hfacturas implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected HfacturasPK hfacturasPK;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 6)
    @Column(name = "consultor_codigo")
    private String consultorCodigo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 3)
    @Column(name = "programa_codigo")
    private String programaCodigo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "factura_anulada")
    private boolean facturaAnulada;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2)
    @Column(name = "sucursal_codigo")
    private String sucursalCodigo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2)
    @Column(name = "documento_codigo")
    private String documentoCodigo;
    @Basic(optional = false)
    @NotNull
    @Column(name = "factura_fecha")
    @Temporal(TemporalType.DATE)
    private Date facturaFecha;
    // @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 = "factura_total_sin_descuento")
    private BigDecimal facturaTotalSinDescuento;
    @Basic(optional = false)
    @NotNull
    @Column(name = "factura_total_con_descuento")
    private BigDecimal facturaTotalConDescuento;
    @Basic(optional = false)
    @NotNull
    @Column(name = "factura_iva")
    private BigDecimal facturaIva;
    @Basic(optional = false)
    @NotNull
    @Column(name = "factura_credito")
    private boolean facturaCredito;
    @Basic(optional = false)
    @NotNull
    @Column(name = "factura_impresa")
    private boolean facturaImpresa;
    @Basic(optional = false)
    @NotNull
    @Column(name = "factura_reparto")
    private Character facturaReparto;
    @Basic(optional = false)
    @NotNull
    @Column(name = "facturaenvio")
    private Character facturaenvio;
    @Basic(optional = false)
    @NotNull
    @Column(name = "otrodesc")
    private BigDecimal otrodesc;

    public Hfacturas() {
    }

    public Hfacturas(HfacturasPK hfacturasPK) {
        this.hfacturasPK = hfacturasPK;
    }

    public Hfacturas(HfacturasPK hfacturasPK, String consultorCodigo, String programaCodigo, boolean facturaAnulada, String sucursalCodigo, String documentoCodigo, Date facturaFecha, BigDecimal facturaTotalSinDescuento, BigDecimal facturaTotalConDescuento, BigDecimal facturaIva, boolean facturaCredito, boolean facturaImpresa, Character facturaReparto, Character facturaenvio, BigDecimal otrodesc) {
        this.hfacturasPK = hfacturasPK;
        this.consultorCodigo = consultorCodigo;
        this.programaCodigo = programaCodigo;
        this.facturaAnulada = facturaAnulada;
        this.sucursalCodigo = sucursalCodigo;
        this.documentoCodigo = documentoCodigo;
        this.facturaFecha = facturaFecha;
        this.facturaTotalSinDescuento = facturaTotalSinDescuento;
        this.facturaTotalConDescuento = facturaTotalConDescuento;
        this.facturaIva = facturaIva;
        this.facturaCredito = facturaCredito;
        this.facturaImpresa = facturaImpresa;
        this.facturaReparto = facturaReparto;
        this.facturaenvio = facturaenvio;
        this.otrodesc = otrodesc;
    }

    public Hfacturas(String facturaSerie, String facturaCodigo) {
        this.hfacturasPK = new HfacturasPK(facturaSerie, facturaCodigo);
    }

    public HfacturasPK getHfacturasPK() {
        return hfacturasPK;
    }

    public void setHfacturasPK(HfacturasPK hfacturasPK) {
        this.hfacturasPK = hfacturasPK;
    }

    public String getConsultorCodigo() {
        return consultorCodigo;
    }

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

    public String getProgramaCodigo() {
        return programaCodigo;
    }

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

    public boolean getFacturaAnulada() {
        return facturaAnulada;
    }

    public void setFacturaAnulada(boolean facturaAnulada) {
        this.facturaAnulada = facturaAnulada;
    }

    public String getSucursalCodigo() {
        return sucursalCodigo;
    }

    public void setSucursalCodigo(String sucursalCodigo) {
        this.sucursalCodigo = sucursalCodigo;
    }

    public String getDocumentoCodigo() {
        return documentoCodigo;
    }

    public void setDocumentoCodigo(String documentoCodigo) {
        this.documentoCodigo = documentoCodigo;
    }

    public Date getFacturaFecha() {
        return facturaFecha;
    }

    public void setFacturaFecha(Date facturaFecha) {
        this.facturaFecha = facturaFecha;
    }

    public BigDecimal getFacturaTotalSinDescuento() {
        return facturaTotalSinDescuento;
    }

    public void setFacturaTotalSinDescuento(BigDecimal facturaTotalSinDescuento) {
        this.facturaTotalSinDescuento = facturaTotalSinDescuento;
    }

    public BigDecimal getFacturaTotalConDescuento() {
        return facturaTotalConDescuento;
    }

    public void setFacturaTotalConDescuento(BigDecimal facturaTotalConDescuento) {
        this.facturaTotalConDescuento = facturaTotalConDescuento;
    }

    public BigDecimal getFacturaIva() {
        return facturaIva;
    }

    public void setFacturaIva(BigDecimal facturaIva) {
        this.facturaIva = facturaIva;
    }

    public boolean getFacturaCredito() {
        return facturaCredito;
    }

    public void setFacturaCredito(boolean facturaCredito) {
        this.facturaCredito = facturaCredito;
    }

    public boolean getFacturaImpresa() {
        return facturaImpresa;
    }

    public void setFacturaImpresa(boolean facturaImpresa) {
        this.facturaImpresa = facturaImpresa;
    }

    public Character getFacturaReparto() {
        return facturaReparto;
    }

    public void setFacturaReparto(Character facturaReparto) {
        this.facturaReparto = facturaReparto;
    }

    public Character getFacturaenvio() {
        return facturaenvio;
    }

    public void setFacturaenvio(Character facturaenvio) {
        this.facturaenvio = facturaenvio;
    }

    public BigDecimal getOtrodesc() {
        return otrodesc;
    }

    public void setOtrodesc(BigDecimal otrodesc) {
        this.otrodesc = otrodesc;
    }

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

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

}
