/*
 * 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.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
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.TARMSOLICITUD")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Tarmsolicitud.findAll", query = "SELECT t FROM Tarmsolicitud t"),
    @NamedQuery(name = "Tarmsolicitud.findByCsolicitud", query = "SELECT t FROM Tarmsolicitud t WHERE t.csolicitud = :csolicitud"),
    @NamedQuery(name = "Tarmsolicitud.findByFregistro", query = "SELECT t FROM Tarmsolicitud t WHERE t.fregistro = :fregistro"),
    @NamedQuery(name = "Tarmsolicitud.findByFreal", query = "SELECT t FROM Tarmsolicitud t WHERE t.freal = :freal"),
    @NamedQuery(name = "Tarmsolicitud.findByNumerosolicitud", query = "SELECT t FROM Tarmsolicitud t WHERE t.numerosolicitud = :numerosolicitud"),
    @NamedQuery(name = "Tarmsolicitud.findByObservacion", query = "SELECT t FROM Tarmsolicitud t WHERE t.observacion = :observacion"),
    @NamedQuery(name = "Tarmsolicitud.findByNumerocustodios", query = "SELECT t FROM Tarmsolicitud t WHERE t.numerocustodios = :numerocustodios"),
    @NamedQuery(name = "Tarmsolicitud.findByLugarorigen", query = "SELECT t FROM Tarmsolicitud t WHERE t.lugarorigen = :lugarorigen"),
    @NamedQuery(name = "Tarmsolicitud.findByLugardestino", query = "SELECT t FROM Tarmsolicitud t WHERE t.lugardestino = :lugardestino"),
    @NamedQuery(name = "Tarmsolicitud.findByFverificarequisitos", query = "SELECT t FROM Tarmsolicitud t WHERE t.fverificarequisitos = :fverificarequisitos"),
    @NamedQuery(name = "Tarmsolicitud.findByMulta", query = "SELECT t FROM Tarmsolicitud t WHERE t.multa = :multa"),
    @NamedQuery(name = "Tarmsolicitud.findByInicioflujo", query = "SELECT t FROM Tarmsolicitud t WHERE t.inicioflujo = :inicioflujo"),
    @NamedQuery(name = "Tarmsolicitud.findByTipodocumentoorigen", query = "SELECT t FROM Tarmsolicitud t WHERE t.tipodocumentoorigen = :tipodocumentoorigen"),
    @NamedQuery(name = "Tarmsolicitud.findByNumerodocumentoorigen", query = "SELECT t FROM Tarmsolicitud t WHERE t.numerodocumentoorigen = :numerodocumentoorigen"),
    @NamedQuery(name = "Tarmsolicitud.findByNombrerazonsocialorigen", query = "SELECT t FROM Tarmsolicitud t WHERE t.nombrerazonsocialorigen = :nombrerazonsocialorigen"),
    @NamedQuery(name = "Tarmsolicitud.findByAucp", query = "SELECT t FROM Tarmsolicitud t WHERE t.aucp = :aucp"),
    @NamedQuery(name = "Tarmsolicitud.findByXpathacta", query = "SELECT t FROM Tarmsolicitud t WHERE t.xpathacta = :xpathacta")})
public class Tarmsolicitud implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "CSOLICITUD")
    private String csolicitud;
    @Column(name = "FREGISTRO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fregistro;
    @Column(name = "FREAL")
    @Temporal(TemporalType.TIMESTAMP)
    private Date freal;
    @Basic(optional = false)
    @Column(name = "NUMEROSOLICITUD")
    private String numerosolicitud;
    @Column(name = "OBSERVACION")
    private String observacion;
    @Column(name = "NUMEROCUSTODIOS")
    private Short numerocustodios;
    @Column(name = "LUGARORIGEN")
    private String lugarorigen;
    @Column(name = "LUGARDESTINO")
    private String lugardestino;
    @Column(name = "FVERIFICAREQUISITOS")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fverificarequisitos;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "MULTA")
    private BigDecimal multa;
    @Column(name = "INICIOFLUJO")
    private String inicioflujo;
    @Column(name = "TIPODOCUMENTOORIGEN")
    private String tipodocumentoorigen;
    @Column(name = "NUMERODOCUMENTOORIGEN")
    private String numerodocumentoorigen;
    @Column(name = "NOMBRERAZONSOCIALORIGEN")
    private String nombrerazonsocialorigen;
    @Column(name = "AUCP")
    private String aucp;
    @Column(name = "XPATHACTA")
    private String xpathacta;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "tarmsolicitud")
    private Collection<Tarmsolicitudarmas> tarmsolicitudarmasCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "tarmsolicitud")
    private Collection<Tarmsolicitudagenciasucursal> tarmsolicitudagenciasucursalCollection;
    @OneToMany(mappedBy = "csolicitud")
    private Collection<Tarmplanificaciontramite> tarmplanificaciontramiteCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "tarmsolicitud")
    private Collection<Tarmsolicituddocumento> tarmsolicituddocumentoCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "tarmsolicitud")
    private Collection<Tarmsolicitudrequisitos> tarmsolicitudrequisitosCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "tarmsolicitud")
    private Collection<Tarmsolicitudtramite> tarmsolicitudtramiteCollection;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "tarmsolicitud")
    private Collection<Tarmsolicitudguardias> tarmsolicitudguardiasCollection;
    @JoinColumn(name = "CCENTROCONTROL", referencedColumnName = "CCENTROCONTROL")
    @ManyToOne
    private Tarmcentrocontrol ccentrocontrol;
    @JoinColumn(name = "CTRAMITE", referencedColumnName = "CTRAMITE")
    @ManyToOne
    private Tarmtramite ctramite;
    @JoinColumn(name = "PERSONCODE", referencedColumnName = "PERSONCODE")
    @ManyToOne
    private Tcustperson personcode;
    @JoinColumns({
        @JoinColumn(name = "CPAISORIGEN", referencedColumnName = "COUNTRYCODE"),
        @JoinColumn(name = "CPROVINCIAORIGEN", referencedColumnName = "PROVINCECODE"),
        @JoinColumn(name = "CCANTONORIGEN", referencedColumnName = "CANTONCODE")})
    @ManyToOne
    private Tgenecanton tgenecanton;
    @JoinColumns({
        @JoinColumn(name = "CPAISDESTINO", referencedColumnName = "COUNTRYCODE"),
        @JoinColumn(name = "CPROVINCIADESTINO", referencedColumnName = "PROVINCECODE"),
        @JoinColumn(name = "CCANTONDESTINO", referencedColumnName = "CANTONCODE")})
    @ManyToOne
    private Tgenecanton tgenecanton1;
    @JoinColumns({
        @JoinColumn(name = "ORIGENADQUISICION", referencedColumnName = "CATALOG"),
        @JoinColumn(name = "ORIGENADQUISICIONCODIGO", referencedColumnName = "CATALOGCODE")})
    @ManyToOne
    private Tgenecatalogdetail tgenecatalogdetail;
    @JoinColumns({
        @JoinColumn(name = "TIPOPAGO", referencedColumnName = "CATALOG"),
        @JoinColumn(name = "TIPOPAGOCODIGO", referencedColumnName = "CATALOGCODE")})
    @ManyToOne
    private Tgenecatalogdetail tgenecatalogdetail1;
    @JoinColumns({
        @JoinColumn(name = "ESTADO", referencedColumnName = "CATALOG"),
        @JoinColumn(name = "ESTADOCODIGO", referencedColumnName = "CATALOGCODE")})
    @ManyToOne
    private Tgenecatalogdetail tgenecatalogdetail2;

    public Tarmsolicitud() {
    }

    public Tarmsolicitud(String csolicitud) {
        this.csolicitud = csolicitud;
    }

    public Tarmsolicitud(String csolicitud, String numerosolicitud) {
        this.csolicitud = csolicitud;
        this.numerosolicitud = numerosolicitud;
    }

    public String getCsolicitud() {
        return csolicitud;
    }

    public void setCsolicitud(String csolicitud) {
        this.csolicitud = csolicitud;
    }

    public Date getFregistro() {
        return fregistro;
    }

    public void setFregistro(Date fregistro) {
        this.fregistro = fregistro;
    }

    public Date getFreal() {
        return freal;
    }

    public void setFreal(Date freal) {
        this.freal = freal;
    }

    public String getNumerosolicitud() {
        return numerosolicitud;
    }

    public void setNumerosolicitud(String numerosolicitud) {
        this.numerosolicitud = numerosolicitud;
    }

    public String getObservacion() {
        return observacion;
    }

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

    public Short getNumerocustodios() {
        return numerocustodios;
    }

    public void setNumerocustodios(Short numerocustodios) {
        this.numerocustodios = numerocustodios;
    }

    public String getLugarorigen() {
        return lugarorigen;
    }

    public void setLugarorigen(String lugarorigen) {
        this.lugarorigen = lugarorigen;
    }

    public String getLugardestino() {
        return lugardestino;
    }

    public void setLugardestino(String lugardestino) {
        this.lugardestino = lugardestino;
    }

    public Date getFverificarequisitos() {
        return fverificarequisitos;
    }

    public void setFverificarequisitos(Date fverificarequisitos) {
        this.fverificarequisitos = fverificarequisitos;
    }

    public BigDecimal getMulta() {
        return multa;
    }

    public void setMulta(BigDecimal multa) {
        this.multa = multa;
    }

    public String getInicioflujo() {
        return inicioflujo;
    }

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

    public String getTipodocumentoorigen() {
        return tipodocumentoorigen;
    }

    public void setTipodocumentoorigen(String tipodocumentoorigen) {
        this.tipodocumentoorigen = tipodocumentoorigen;
    }

    public String getNumerodocumentoorigen() {
        return numerodocumentoorigen;
    }

    public void setNumerodocumentoorigen(String numerodocumentoorigen) {
        this.numerodocumentoorigen = numerodocumentoorigen;
    }

    public String getNombrerazonsocialorigen() {
        return nombrerazonsocialorigen;
    }

    public void setNombrerazonsocialorigen(String nombrerazonsocialorigen) {
        this.nombrerazonsocialorigen = nombrerazonsocialorigen;
    }

    public String getAucp() {
        return aucp;
    }

    public void setAucp(String aucp) {
        this.aucp = aucp;
    }

    public String getXpathacta() {
        return xpathacta;
    }

    public void setXpathacta(String xpathacta) {
        this.xpathacta = xpathacta;
    }

    @XmlTransient
    public Collection<Tarmsolicitudarmas> getTarmsolicitudarmasCollection() {
        return tarmsolicitudarmasCollection;
    }

    public void setTarmsolicitudarmasCollection(Collection<Tarmsolicitudarmas> tarmsolicitudarmasCollection) {
        this.tarmsolicitudarmasCollection = tarmsolicitudarmasCollection;
    }

    @XmlTransient
    public Collection<Tarmsolicitudagenciasucursal> getTarmsolicitudagenciasucursalCollection() {
        return tarmsolicitudagenciasucursalCollection;
    }

    public void setTarmsolicitudagenciasucursalCollection(Collection<Tarmsolicitudagenciasucursal> tarmsolicitudagenciasucursalCollection) {
        this.tarmsolicitudagenciasucursalCollection = tarmsolicitudagenciasucursalCollection;
    }

    @XmlTransient
    public Collection<Tarmplanificaciontramite> getTarmplanificaciontramiteCollection() {
        return tarmplanificaciontramiteCollection;
    }

    public void setTarmplanificaciontramiteCollection(Collection<Tarmplanificaciontramite> tarmplanificaciontramiteCollection) {
        this.tarmplanificaciontramiteCollection = tarmplanificaciontramiteCollection;
    }

    @XmlTransient
    public Collection<Tarmsolicituddocumento> getTarmsolicituddocumentoCollection() {
        return tarmsolicituddocumentoCollection;
    }

    public void setTarmsolicituddocumentoCollection(Collection<Tarmsolicituddocumento> tarmsolicituddocumentoCollection) {
        this.tarmsolicituddocumentoCollection = tarmsolicituddocumentoCollection;
    }

    @XmlTransient
    public Collection<Tarmsolicitudrequisitos> getTarmsolicitudrequisitosCollection() {
        return tarmsolicitudrequisitosCollection;
    }

    public void setTarmsolicitudrequisitosCollection(Collection<Tarmsolicitudrequisitos> tarmsolicitudrequisitosCollection) {
        this.tarmsolicitudrequisitosCollection = tarmsolicitudrequisitosCollection;
    }

    @XmlTransient
    public Collection<Tarmsolicitudtramite> getTarmsolicitudtramiteCollection() {
        return tarmsolicitudtramiteCollection;
    }

    public void setTarmsolicitudtramiteCollection(Collection<Tarmsolicitudtramite> tarmsolicitudtramiteCollection) {
        this.tarmsolicitudtramiteCollection = tarmsolicitudtramiteCollection;
    }

    @XmlTransient
    public Collection<Tarmsolicitudguardias> getTarmsolicitudguardiasCollection() {
        return tarmsolicitudguardiasCollection;
    }

    public void setTarmsolicitudguardiasCollection(Collection<Tarmsolicitudguardias> tarmsolicitudguardiasCollection) {
        this.tarmsolicitudguardiasCollection = tarmsolicitudguardiasCollection;
    }

    public Tarmcentrocontrol getCcentrocontrol() {
        return ccentrocontrol;
    }

    public void setCcentrocontrol(Tarmcentrocontrol ccentrocontrol) {
        this.ccentrocontrol = ccentrocontrol;
    }

    public Tarmtramite getCtramite() {
        return ctramite;
    }

    public void setCtramite(Tarmtramite ctramite) {
        this.ctramite = ctramite;
    }

    public Tcustperson getPersoncode() {
        return personcode;
    }

    public void setPersoncode(Tcustperson personcode) {
        this.personcode = personcode;
    }

    public Tgenecanton getTgenecanton() {
        return tgenecanton;
    }

    public void setTgenecanton(Tgenecanton tgenecanton) {
        this.tgenecanton = tgenecanton;
    }

    public Tgenecanton getTgenecanton1() {
        return tgenecanton1;
    }

    public void setTgenecanton1(Tgenecanton tgenecanton1) {
        this.tgenecanton1 = tgenecanton1;
    }

    public Tgenecatalogdetail getTgenecatalogdetail() {
        return tgenecatalogdetail;
    }

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

    public Tgenecatalogdetail getTgenecatalogdetail1() {
        return tgenecatalogdetail1;
    }

    public void setTgenecatalogdetail1(Tgenecatalogdetail tgenecatalogdetail1) {
        this.tgenecatalogdetail1 = tgenecatalogdetail1;
    }

    public Tgenecatalogdetail getTgenecatalogdetail2() {
        return tgenecatalogdetail2;
    }

    public void setTgenecatalogdetail2(Tgenecatalogdetail tgenecatalogdetail2) {
        this.tgenecatalogdetail2 = tgenecatalogdetail2;
    }

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

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