package com.cosmodas.EntCosmos;


import javax.persistence.*;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Entity
@Table(name = "wcrequisicion_productopapel")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "WcrequisicionProductopapel.findAll", query = "SELECT w FROM WcrequisicionProductopapel w"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByIdrepp", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.idrepp = :idrepp"),
        @NamedQuery(name = "WcrequisicionProductopapel.findBySalaOrigen", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.salaorigen = :salaorigen"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByIngresada", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.ingresada = :ingresada"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByPrograma", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.programa = :programa"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByNumeroRemision", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.numeroremision = :numeroremision"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByFechaRemision", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.fecharemision = :fecharemision"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByObservaciones", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.observaciones = :observaciones"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByVistab", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.vistab = :vistab"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByVistaf", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.vistaf = :vistaf"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByDespachadab", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.despachadab = :despachadab"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByDespachadaf", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.despachadaf = :despachadaf"),
        @NamedQuery(name = "WcrequisicionProductopapel.findByCajas", query = "SELECT w FROM WcrequisicionProductopapel w WHERE w.cajas = :cajas")})

public class WcrequisicionProductopapel implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idrepp")
    private Integer idrepp;
    @Size(max = 2)
    @Column(name = "salaorigen")
    private String salaorigen;
    @Column(name = "ingresada")
    @Temporal(TemporalType.TIMESTAMP)
    private Date ingresada;
    @Size(max = 3)
    @Column(name = "programa")
    private String programa;
    @Lob
    @Size(max = 65535)
    @Column(name = "observaciones")
    private String observaciones;
    @Size(max = 6)
    @Column(name = "numeroremision")
    private String numeroremision;
    @Column(name = "fecharemision")
    @Temporal(TemporalType.DATE)
    private Date fecharemision;
    @Column(name = "vistab")
    private Boolean vistab;
    @Column(name = "vistaf")
    @Temporal(TemporalType.TIMESTAMP)
    private Date vistaf;
    @Column(name = "despachadab")
    private Boolean despachadab;
    @Column(name = "despachadaf")
    @Temporal(TemporalType.TIMESTAMP)
    private Date despachadaf;
    @Column(name = "cajas")
    private Integer cajas;
    @Size(max = 6)
    @Column(name = "usuariosolicita")
    private String usuariosolicita;
    @Size(max = 6)
    @Column(name = "usuariovalida")
    private String usuariovalida;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "wcrequisicionProductopapel")
    private List<WcDetalleRequisicionProductopapel> WcDetalleRequisicionProductopapelList;

    public WcrequisicionProductopapel() {
    }

    public WcrequisicionProductopapel(Integer idrepp) {
        this.idrepp = idrepp;
    }

    public Integer getIdrepp() {
        return idrepp;
    }

    public void setIdrepp(Integer idrepp) {
        this.idrepp = idrepp;
    }

    public String getSalaorigen() {
        return salaorigen;
    }

    public void setSalaorigen(String salaorigen) {
        this.salaorigen = salaorigen;
    }

    public Date getIngresada() {
        return ingresada;
    }

    public void setIngresada(Date ingresada) {
        this.ingresada = ingresada;
    }

    public String getPrograma() {
        return programa;
    }

    public void setPrograma(String programa) {
        this.programa = programa;
    }

    public String getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
    }

    public String getNumeroremision() {
        return numeroremision;
    }

    public void setNumeroremision(String numeroremision) {
        this.numeroremision = numeroremision;
    }

    public Date getFecharemision() {
        return fecharemision;
    }

    public void setFecharemision(Date fecharemision) {
        this.fecharemision = fecharemision;
    }

    public Boolean getVistab() {
        return vistab;
    }

    public void setVistab(Boolean vistab) {
        this.vistab = vistab;
    }

    public Date getVistaf() {
        return vistaf;
    }

    public void setVistaf(Date vistaf) {
        this.vistaf = vistaf;
    }

    public Boolean getDespachadab() {
        return despachadab;
    }

    public void setDespachadab(Boolean despachadab) {
        this.despachadab = despachadab;
    }

    public Date getDespachadaf() {
        return despachadaf;
    }

    public void setDespachadaf(Date despachadaf) {
        this.despachadaf = despachadaf;
    }

    public Integer getCajas() {
        return cajas;
    }

    public void setCajas(Integer cajas) {
        this.cajas = cajas;
    }

    public String getUsuariosolicita() {
        return usuariosolicita;
    }

    public void setUsuariosolicita(String usuariosolicita) {
        this.usuariosolicita = usuariosolicita;
    }

    public String getUsuariovalida() {
        return usuariovalida;
    }

    public void setUsuariovalida(String usuariovalida) {
        this.usuariovalida = usuariovalida;
    }

    @XmlTransient
    public List<WcDetalleRequisicionProductopapel> getWcDetalleRequisicionProductopapelList() {
        return WcDetalleRequisicionProductopapelList;
    }

    public void setWcDetalleRequisicionProductopapelList(List<WcDetalleRequisicionProductopapel> wcDetalleRequisicionProductopapelList) {
        this.WcDetalleRequisicionProductopapelList = wcDetalleRequisicionProductopapelList;
    }

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

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

}
