/*
 * 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.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.TARMCOME_CABECERA_TRANSACCION")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findAll", query = "SELECT t FROM TarmcomeCabeceraTransaccion t"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrCodigo", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrCodigo = :coctrCodigo"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findBySirepCodigo", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.sirepCodigo = :sirepCodigo"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoperCodigo", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coperCodigo = :coperCodigo"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrObservacion", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrObservacion = :coctrObservacion"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrFecha", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrFecha = :coctrFecha"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrUsuarioCreacion", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrUsuarioCreacion = :coctrUsuarioCreacion"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrUsuarioModificacion", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrUsuarioModificacion = :coctrUsuarioModificacion"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrFechaCreacion", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrFechaCreacion = :coctrFechaCreacion"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrFechaModificacion", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrFechaModificacion = :coctrFechaModificacion"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrDepositoNumero", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrDepositoNumero = :coctrDepositoNumero"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrFechaDeposito", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrFechaDeposito = :coctrFechaDeposito"),
    @NamedQuery(name = "TarmcomeCabeceraTransaccion.findByCoctrDepositoValor", query = "SELECT t FROM TarmcomeCabeceraTransaccion t WHERE t.coctrDepositoValor = :coctrDepositoValor")})
public class TarmcomeCabeceraTransaccion implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "COCTR_CODIGO")
    private String coctrCodigo;
    @Column(name = "SIREP_CODIGO")
    private String sirepCodigo;
    @Basic(optional = false)
    @Column(name = "COPER_CODIGO")
    private String coperCodigo;
    @Column(name = "COCTR_OBSERVACION")
    private String coctrObservacion;
    @Column(name = "COCTR_FECHA")
    @Temporal(TemporalType.TIMESTAMP)
    private Date coctrFecha;
    @Column(name = "COCTR_USUARIO_CREACION")
    private String coctrUsuarioCreacion;
    @Column(name = "COCTR_USUARIO_MODIFICACION")
    private String coctrUsuarioModificacion;
    @Column(name = "COCTR_FECHA_CREACION")
    @Temporal(TemporalType.TIMESTAMP)
    private Date coctrFechaCreacion;
    @Column(name = "COCTR_FECHA_MODIFICACION")
    @Temporal(TemporalType.TIMESTAMP)
    private Date coctrFechaModificacion;
    @Column(name = "COCTR_DEPOSITO_NUMERO")
    private String coctrDepositoNumero;
    @Column(name = "COCTR_FECHA_DEPOSITO")
    @Temporal(TemporalType.TIMESTAMP)
    private Date coctrFechaDeposito;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "COCTR_DEPOSITO_VALOR")
    private BigDecimal coctrDepositoValor;
    @JoinColumn(name = "COTTR_CODIGO", referencedColumnName = "COTTR_CODIGO")
    @ManyToOne(optional = false)
    private TarmcomeTipoTransaccion cottrCodigo;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "tarmcomeCabeceraTransaccion")
    private Collection<TarmcomeTransaccionDetalle> tarmcomeTransaccionDetalleCollection;

    public TarmcomeCabeceraTransaccion() {
    }

    public TarmcomeCabeceraTransaccion(String coctrCodigo) {
        this.coctrCodigo = coctrCodigo;
    }

    public TarmcomeCabeceraTransaccion(String coctrCodigo, String coperCodigo) {
        this.coctrCodigo = coctrCodigo;
        this.coperCodigo = coperCodigo;
    }

    public String getCoctrCodigo() {
        return coctrCodigo;
    }

    public void setCoctrCodigo(String coctrCodigo) {
        this.coctrCodigo = coctrCodigo;
    }

    public String getSirepCodigo() {
        return sirepCodigo;
    }

    public void setSirepCodigo(String sirepCodigo) {
        this.sirepCodigo = sirepCodigo;
    }

    public String getCoperCodigo() {
        return coperCodigo;
    }

    public void setCoperCodigo(String coperCodigo) {
        this.coperCodigo = coperCodigo;
    }

    public String getCoctrObservacion() {
        return coctrObservacion;
    }

    public void setCoctrObservacion(String coctrObservacion) {
        this.coctrObservacion = coctrObservacion;
    }

    public Date getCoctrFecha() {
        return coctrFecha;
    }

    public void setCoctrFecha(Date coctrFecha) {
        this.coctrFecha = coctrFecha;
    }

    public String getCoctrUsuarioCreacion() {
        return coctrUsuarioCreacion;
    }

    public void setCoctrUsuarioCreacion(String coctrUsuarioCreacion) {
        this.coctrUsuarioCreacion = coctrUsuarioCreacion;
    }

    public String getCoctrUsuarioModificacion() {
        return coctrUsuarioModificacion;
    }

    public void setCoctrUsuarioModificacion(String coctrUsuarioModificacion) {
        this.coctrUsuarioModificacion = coctrUsuarioModificacion;
    }

    public Date getCoctrFechaCreacion() {
        return coctrFechaCreacion;
    }

    public void setCoctrFechaCreacion(Date coctrFechaCreacion) {
        this.coctrFechaCreacion = coctrFechaCreacion;
    }

    public Date getCoctrFechaModificacion() {
        return coctrFechaModificacion;
    }

    public void setCoctrFechaModificacion(Date coctrFechaModificacion) {
        this.coctrFechaModificacion = coctrFechaModificacion;
    }

    public String getCoctrDepositoNumero() {
        return coctrDepositoNumero;
    }

    public void setCoctrDepositoNumero(String coctrDepositoNumero) {
        this.coctrDepositoNumero = coctrDepositoNumero;
    }

    public Date getCoctrFechaDeposito() {
        return coctrFechaDeposito;
    }

    public void setCoctrFechaDeposito(Date coctrFechaDeposito) {
        this.coctrFechaDeposito = coctrFechaDeposito;
    }

    public BigDecimal getCoctrDepositoValor() {
        return coctrDepositoValor;
    }

    public void setCoctrDepositoValor(BigDecimal coctrDepositoValor) {
        this.coctrDepositoValor = coctrDepositoValor;
    }

    public TarmcomeTipoTransaccion getCottrCodigo() {
        return cottrCodigo;
    }

    public void setCottrCodigo(TarmcomeTipoTransaccion cottrCodigo) {
        this.cottrCodigo = cottrCodigo;
    }

    @XmlTransient
    public Collection<TarmcomeTransaccionDetalle> getTarmcomeTransaccionDetalleCollection() {
        return tarmcomeTransaccionDetalleCollection;
    }

    public void setTarmcomeTransaccionDetalleCollection(Collection<TarmcomeTransaccionDetalle> tarmcomeTransaccionDetalleCollection) {
        this.tarmcomeTransaccionDetalleCollection = tarmcomeTransaccionDetalleCollection;
    }

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

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