/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.qsoft.rs.sincoar.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author developer2
 */
@Entity
@Table(name="COMACO.TARMSOLICITUDTRAMITE")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Tarmsolicitudtramite.findAll", query = "SELECT t FROM Tarmsolicitudtramite t"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByCsolicitud", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.tarmsolicitudtramitePK.csolicitud = :csolicitud"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByCtramite", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.tarmsolicitudtramitePK.ctramite = :ctramite"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByNumerotramite", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.numerotramite = :numerotramite"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByValor", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.valor = :valor"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByCantidad", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.cantidad = :cantidad"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByNumerocomprobante", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.numerocomprobante = :numerocomprobante"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByXpathcomprobante", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.xpathcomprobante = :xpathcomprobante"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByValorverificacion", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.valorverificacion = :valorverificacion"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByFentregaarmas", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.fentregaarmas = :fentregaarmas"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByValorapagar", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.valorapagar = :valorapagar"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByFechacomprobante", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.fechacomprobante = :fechacomprobante"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByObservaciondeposito", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.observaciondeposito = :observaciondeposito"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByValorverificado", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.valorverificado = :valorverificado"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByObservacionnovedad", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.observacionnovedad = :observacionnovedad"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByValortramitearmas", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.valortramitearmas = :valortramitearmas"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByValorcustodios", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.valorcustodios = :valorcustodios"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByValormulta", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.valormulta = :valormulta"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByInicioflujo", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.inicioflujo = :inicioflujo"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByIncashreport", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.incashreport = :incashreport"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByXpathresolucion", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.xpathresolucion = :xpathresolucion"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByXpathcomprobanteoriginal", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.xpathcomprobanteoriginal = :xpathcomprobanteoriginal"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByObservacion", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.observacion = :observacion"),
    @NamedQuery(name = "Tarmsolicitudtramite.findByUsuariocambio", query = "SELECT t FROM Tarmsolicitudtramite t WHERE t.usuariocambio = :usuariocambio")})
public class Tarmsolicitudtramite implements Serializable {

    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected TarmsolicitudtramitePK tarmsolicitudtramitePK;
    @Column(name = "NUMEROTRAMITE")
    private String numerotramite;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "VALOR")
    private BigDecimal valor;
    @Column(name = "CANTIDAD")
    private Short cantidad;
    @Column(name = "NUMEROCOMPROBANTE")
    private String numerocomprobante;
    @Column(name = "XPATHCOMPROBANTE")
    private String xpathcomprobante;
    @Column(name = "VALORVERIFICACION")
    private BigDecimal valorverificacion;
    @Column(name = "FENTREGAARMAS")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fentregaarmas;
    @Column(name = "VALORAPAGAR")
    private BigDecimal valorapagar;
    @Column(name = "FECHACOMPROBANTE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechacomprobante;
    @Column(name = "OBSERVACIONDEPOSITO")
    private String observaciondeposito;
    @Column(name = "VALORVERIFICADO")
    private BigDecimal valorverificado;
    @Column(name = "OBSERVACIONNOVEDAD")
    private String observacionnovedad;
    @Column(name = "VALORTRAMITEARMAS")
    private BigDecimal valortramitearmas;
    @Column(name = "VALORCUSTODIOS")
    private BigDecimal valorcustodios;
    @Column(name = "VALORMULTA")
    private BigDecimal valormulta;
    @Column(name = "INICIOFLUJO")
    private String inicioflujo;
    @Column(name = "INCASHREPORT")
    private String incashreport;
    @Column(name = "XPATHRESOLUCION")
    private String xpathresolucion;
    @Column(name = "XPATHCOMPROBANTEORIGINAL")
    private String xpathcomprobanteoriginal;
    @Column(name = "OBSERVACION")
    private String observacion;
    @Column(name = "USUARIOCAMBIO")
    private String usuariocambio;
    @JoinColumn(name = "CSOLICITUD", referencedColumnName = "CSOLICITUD", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Tarmsolicitud tarmsolicitud;
    @JoinColumns({
        @JoinColumn(name = "ESTADOTRAMITE", referencedColumnName = "CATALOG"),
        @JoinColumn(name = "ESTADOTRAMITECODIGO", referencedColumnName = "CATALOGCODE")})
    @ManyToOne
    private Tgenecatalogdetail tgenecatalogdetail;
    @OneToMany(mappedBy = "tarmsolicitudtramite")
    private Collection<Tarmordentrabajo> tarmordentrabajoCollection;

    public Tarmsolicitudtramite() {
    }

    public Tarmsolicitudtramite(TarmsolicitudtramitePK tarmsolicitudtramitePK) {
        this.tarmsolicitudtramitePK = tarmsolicitudtramitePK;
    }

    public Tarmsolicitudtramite(String csolicitud, long ctramite) {
        this.tarmsolicitudtramitePK = new TarmsolicitudtramitePK(csolicitud, ctramite);
    }

    public TarmsolicitudtramitePK getTarmsolicitudtramitePK() {
        return tarmsolicitudtramitePK;
    }

    public void setTarmsolicitudtramitePK(TarmsolicitudtramitePK tarmsolicitudtramitePK) {
        this.tarmsolicitudtramitePK = tarmsolicitudtramitePK;
    }

    public String getNumerotramite() {
        return numerotramite;
    }

    public void setNumerotramite(String numerotramite) {
        this.numerotramite = numerotramite;
    }

    public BigDecimal getValor() {
        return valor;
    }

    public void setValor(BigDecimal valor) {
        this.valor = valor;
    }

    public Short getCantidad() {
        return cantidad;
    }

    public void setCantidad(Short cantidad) {
        this.cantidad = cantidad;
    }

    public String getNumerocomprobante() {
        return numerocomprobante;
    }

    public void setNumerocomprobante(String numerocomprobante) {
        this.numerocomprobante = numerocomprobante;
    }

    public String getXpathcomprobante() {
        return xpathcomprobante;
    }

    public void setXpathcomprobante(String xpathcomprobante) {
        this.xpathcomprobante = xpathcomprobante;
    }

    public BigDecimal getValorverificacion() {
        return valorverificacion;
    }

    public void setValorverificacion(BigDecimal valorverificacion) {
        this.valorverificacion = valorverificacion;
    }

    public Date getFentregaarmas() {
        return fentregaarmas;
    }

    public void setFentregaarmas(Date fentregaarmas) {
        this.fentregaarmas = fentregaarmas;
    }

    public BigDecimal getValorapagar() {
        return valorapagar;
    }

    public void setValorapagar(BigDecimal valorapagar) {
        this.valorapagar = valorapagar;
    }

    public Date getFechacomprobante() {
        return fechacomprobante;
    }

    public void setFechacomprobante(Date fechacomprobante) {
        this.fechacomprobante = fechacomprobante;
    }

    public String getObservaciondeposito() {
        return observaciondeposito;
    }

    public void setObservaciondeposito(String observaciondeposito) {
        this.observaciondeposito = observaciondeposito;
    }

    public BigDecimal getValorverificado() {
        return valorverificado;
    }

    public void setValorverificado(BigDecimal valorverificado) {
        this.valorverificado = valorverificado;
    }

    public String getObservacionnovedad() {
        return observacionnovedad;
    }

    public void setObservacionnovedad(String observacionnovedad) {
        this.observacionnovedad = observacionnovedad;
    }

    public BigDecimal getValortramitearmas() {
        return valortramitearmas;
    }

    public void setValortramitearmas(BigDecimal valortramitearmas) {
        this.valortramitearmas = valortramitearmas;
    }

    public BigDecimal getValorcustodios() {
        return valorcustodios;
    }

    public void setValorcustodios(BigDecimal valorcustodios) {
        this.valorcustodios = valorcustodios;
    }

    public BigDecimal getValormulta() {
        return valormulta;
    }

    public void setValormulta(BigDecimal valormulta) {
        this.valormulta = valormulta;
    }

    public String getInicioflujo() {
        return inicioflujo;
    }

    public void setInicioflujo(String inicioflujo) {
        this.inicioflujo = inicioflujo;
    }

    public String getIncashreport() {
        return incashreport;
    }

    public void setIncashreport(String incashreport) {
        this.incashreport = incashreport;
    }

    public String getXpathresolucion() {
        return xpathresolucion;
    }

    public void setXpathresolucion(String xpathresolucion) {
        this.xpathresolucion = xpathresolucion;
    }

    public String getXpathcomprobanteoriginal() {
        return xpathcomprobanteoriginal;
    }

    public void setXpathcomprobanteoriginal(String xpathcomprobanteoriginal) {
        this.xpathcomprobanteoriginal = xpathcomprobanteoriginal;
    }

    public String getObservacion() {
        return observacion;
    }

    public void setObservacion(String observacion) {
        this.observacion = observacion;
    }

    public String getUsuariocambio() {
        return usuariocambio;
    }

    public void setUsuariocambio(String usuariocambio) {
        this.usuariocambio = usuariocambio;
    }

    public Tarmsolicitud getTarmsolicitud() {
        return tarmsolicitud;
    }

    public void setTarmsolicitud(Tarmsolicitud tarmsolicitud) {
        this.tarmsolicitud = tarmsolicitud;
    }

    public Tgenecatalogdetail getTgenecatalogdetail() {
        return tgenecatalogdetail;
    }

    public void setTgenecatalogdetail(Tgenecatalogdetail tgenecatalogdetail) {
        this.tgenecatalogdetail = tgenecatalogdetail;
    }

    @XmlTransient
    public Collection<Tarmordentrabajo> getTarmordentrabajoCollection() {
        return tarmordentrabajoCollection;
    }

    public void setTarmordentrabajoCollection(Collection<Tarmordentrabajo> tarmordentrabajoCollection) {
        this.tarmordentrabajoCollection = tarmordentrabajoCollection;
    }

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

    @Override
    public String toString() {
        return "com.qsoft.rs.sincoar.model.Tarmsolicitudtramite[ tarmsolicitudtramitePK=" + tarmsolicitudtramitePK + " ]";
    }
    
}
