/*
 * 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 conexionCredibanco.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author viatori
 */
@Entity
@Table(name = "tbl_transacciones")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "TblTransaccionesCredibanco.findAll", query = "SELECT t FROM TblTransaccionesCredibanco t")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByIdTransaccion", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.idTransaccion = :idTransaccion")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByIdentificacion", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.identificacion = :identificacion")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByReferencia", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.referencia = :referencia")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByDescripcion", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.descripcion = :descripcion")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByFechaInicio", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.fechaInicio = :fechaInicio")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByEstado", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.estado = :estado")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByFechaFin", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.fechaFin = :fechaFin")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByNumAutorizacion", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.numAutorizacion = :numAutorizacion")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByNumRecibo", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.numRecibo = :numRecibo")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByCodEmpresa", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.codEmpresa = :codEmpresa")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByBaseDevolucionIva", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.baseDevolucionIva = :baseDevolucionIva")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByFranquicia", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.franquicia = :franquicia")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByTarjeta", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.tarjeta = :tarjeta")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByCuotas", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.cuotas = :cuotas")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByCodResp", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.codResp = :codResp")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByValor", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.valor = :valor")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByIva", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.iva = :iva")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByNotificacionWs", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.notificacionWs = :notificacionWs")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByTipoCuenta", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.tipoCuenta = :tipoCuenta")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByVrNeto", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.vrNeto = :vrNeto")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByCuenta", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.cuenta = :cuenta")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByCorreo", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.correo = :correo")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByFechaNotificacion", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.fechaNotificacion = :fechaNotificacion")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByNotificacionCorreo", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.notificacionCorreo = :notificacionCorreo")
    , @NamedQuery(name = "TransaccionOkIdTransaccionAndEmpresa", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.estado in ('00', '08', '11', '76', '77', '78', '79', '80', '81') and t.codEmpresa = :codEmpresa and t.idTransaccion= :idTransaccion")
    , @NamedQuery(name = "TransaccionIdTransaccionAndEmpresa", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.codEmpresa = :codEmpresa and t.idTransaccion= :idTransaccion")
    , @NamedQuery(name = "TransaccionesOkXEmpresas", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.estado in ('00', '08', '11', '76', '77', '78', '79', '80', '81') and t.codEmpresa = :codEmpresa and t.notificacionWs = 0")        
    , @NamedQuery(name = "TransaccionesPendientesEnviarXEmpresas", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.codEmpresa = :codEmpresa and t.notificacionWs = 0")        
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByFechaEnvioCorreo", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.fechaEnvioCorreo = :fechaEnvioCorreo")
    , @NamedQuery(name = "TblTransaccionesCredibanco.findByIp", query = "SELECT t FROM TblTransaccionesCredibanco t WHERE t.ip = :ip")})
public class TblTransaccionesCredibanco implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_transaccion")
    private Long idTransaccion;
    @Column(name = "identificacion")
    private String identificacion;
    @Column(name = "referencia")
    private String referencia;
    @Column(name = "descripcion")
    private String descripcion;
    @Column(name = "fecha_inicio")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaInicio;
    @Column(name = "estado")
    private String estado;
    @Column(name = "fecha_fin")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaFin;
    @Column(name = "num_autorizacion")
    private String numAutorizacion;
    @Column(name = "num_recibo")
    private Integer numRecibo;
    @Column(name = "cod_empresa")
    private String codEmpresa;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "base_devolucion_iva")
    private BigDecimal baseDevolucionIva;
    @Column(name = "franquicia")
    private String franquicia;
    @Column(name = "tarjeta")
    private String tarjeta;
    @Column(name = "cuotas")
    private Integer cuotas;
    @Column(name = "cod_resp")
    private String codResp;
    @Column(name = "valor")
    private BigDecimal valor;
    @Column(name = "iva")
    private BigDecimal iva;
    @Column(name = "notificacion_ws")
    private Integer notificacionWs;
    @Column(name = "tipo_cuenta")
    private String tipoCuenta;
    @Column(name = "vr_neto")
    private BigDecimal vrNeto;
    @Column(name = "cuenta")
    private String cuenta;
    @Column(name = "correo")
    private String correo;
    @Column(name = "fecha_notificacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaNotificacion;
    @Column(name = "notificacion_correo")
    private Boolean notificacionCorreo;
    @Column(name = "fecha_envio_correo")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaEnvioCorreo;
    @Column(name = "ip")
    private String ip;

    public TblTransaccionesCredibanco() {
    }

    public TblTransaccionesCredibanco(Long idTransaccion) {
        this.idTransaccion = idTransaccion;
    }

    public Long getIdTransaccion() {
        return idTransaccion;
    }

    public void setIdTransaccion(Long idTransaccion) {
        this.idTransaccion = idTransaccion;
    }

    public String getIdentificacion() {
        return identificacion;
    }

    public void setIdentificacion(String identificacion) {
        this.identificacion = identificacion;
    }

    public String getReferencia() {
        return referencia;
    }

    public void setReferencia(String referencia) {
        this.referencia = referencia;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public Date getFechaInicio() {
        return fechaInicio;
    }

    public void setFechaInicio(Date fechaInicio) {
        this.fechaInicio = fechaInicio;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public Date getFechaFin() {
        return fechaFin;
    }

    public void setFechaFin(Date fechaFin) {
        this.fechaFin = fechaFin;
    }

    public String getNumAutorizacion() {
        return numAutorizacion;
    }

    public void setNumAutorizacion(String numAutorizacion) {
        this.numAutorizacion = numAutorizacion;
    }

    public Integer getNumRecibo() {
        return numRecibo;
    }

    public void setNumRecibo(Integer numRecibo) {
        this.numRecibo = numRecibo;
    }

    public String getCodEmpresa() {
        return codEmpresa;
    }

    public void setCodEmpresa(String codEmpresa) {
        this.codEmpresa = codEmpresa;
    }

    public BigDecimal getBaseDevolucionIva() {
        return baseDevolucionIva;
    }

    public void setBaseDevolucionIva(BigDecimal baseDevolucionIva) {
        this.baseDevolucionIva = baseDevolucionIva;
    }

    public String getFranquicia() {
        return franquicia;
    }

    public void setFranquicia(String franquicia) {
        this.franquicia = franquicia;
    }

    public String getTarjeta() {
        return tarjeta;
    }

    public void setTarjeta(String tarjeta) {
        this.tarjeta = tarjeta;
    }

    public Integer getCuotas() {
        return cuotas;
    }

    public void setCuotas(Integer cuotas) {
        this.cuotas = cuotas;
    }

    public String getCodResp() {
        return codResp;
    }

    public void setCodResp(String codResp) {
        this.codResp = codResp;
    }

    public BigDecimal getValor() {
        return valor;
    }

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

    public BigDecimal getIva() {
        return iva;
    }

    public void setIva(BigDecimal iva) {
        this.iva = iva;
    }

    public Integer getNotificacionWs() {
        return notificacionWs;
    }

    public void setNotificacionWs(Integer notificacionWs) {
        this.notificacionWs = notificacionWs;
    }

    public String getTipoCuenta() {
        return tipoCuenta;
    }

    public void setTipoCuenta(String tipoCuenta) {
        this.tipoCuenta = tipoCuenta;
    }

    public BigDecimal getVrNeto() {
        return vrNeto;
    }

    public void setVrNeto(BigDecimal vrNeto) {
        this.vrNeto = vrNeto;
    }

    public String getCuenta() {
        return cuenta;
    }

    public void setCuenta(String cuenta) {
        this.cuenta = cuenta;
    }

    public String getCorreo() {
        return correo;
    }

    public void setCorreo(String correo) {
        this.correo = correo;
    }

    public Date getFechaNotificacion() {
        return fechaNotificacion;
    }

    public void setFechaNotificacion(Date fechaNotificacion) {
        this.fechaNotificacion = fechaNotificacion;
    }

    public Boolean getNotificacionCorreo() {
        return notificacionCorreo;
    }

    public void setNotificacionCorreo(Boolean notificacionCorreo) {
        this.notificacionCorreo = notificacionCorreo;
    }

    public Date getFechaEnvioCorreo() {
        return fechaEnvioCorreo;
    }

    public void setFechaEnvioCorreo(Date fechaEnvioCorreo) {
        this.fechaEnvioCorreo = fechaEnvioCorreo;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

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

    @Override
    public String toString() {
        return "conexionCredibanco.entity.TblTransaccionesCredibanco[ idTransaccion=" + idTransaccion + " ]";
    }

}
