/*
 * 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 com.cosmodas.EntCosmos;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author obper
 */
@Entity
@Table(name = "wc_ofertas_flotantes")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "WcOfertasFlotantes.findAll", query = "SELECT w FROM WcOfertasFlotantes w"),
        @NamedQuery(name = "WcOfertasFlotantes.findByProductoCodigo", query = "SELECT w FROM WcOfertasFlotantes w WHERE w.wcOfertasFlotantesPK.productoCodigo = :productoCodigo"),
        @NamedQuery(name = "WcOfertasFlotantes.findByOfertaCodigo", query = "SELECT w FROM WcOfertasFlotantes w WHERE w.wcOfertasFlotantesPK.ofertaCodigo = :ofertaCodigo"),
        @NamedQuery(name = "WcOfertasFlotantes.findByProgramaCodigo", query = "SELECT w FROM WcOfertasFlotantes w WHERE w.wcOfertasFlotantesPK.programaCodigo = :programaCodigo"),
        @NamedQuery(name = "WcOfertasFlotantes.findByProgramaCodigoActiva", query = "SELECT w FROM WcOfertasFlotantes w WHERE w.wcOfertasFlotantesPK.programaCodigo = :programaCodigo and w.ofertaActiva = true"),
        @NamedQuery(name = "WcOfertasFlotantes.findByProgramaCodigoActivaMultiple", query = "SELECT w FROM WcOfertasFlotantes w WHERE w.wcOfertasFlotantesPK.programaCodigo = :programaCodigo and w.ofertaActiva = true and w.productoPromocionMultiple = true"),
        @NamedQuery(name = "WcOfertasFlotantes.findByTipoOperacion", query = "SELECT w FROM WcOfertasFlotantes w WHERE w.tipoOperacion = :tipoOperacion"),
        @NamedQuery(name = "WcOfertasFlotantes.findByCantidadOperacion", query = "SELECT w FROM WcOfertasFlotantes w WHERE w.cantidadOperacion = :cantidadOperacion")})
public class WcOfertasFlotantes implements Serializable {

    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected WcOfertasFlotantesPK wcOfertasFlotantesPK;
    @Size(max = 3)
    @Column(name = "tipo_operacion")
    private String tipoOperacion;
    @Column(name = "cantidad_operacion")
    private Integer cantidadOperacion;
    @Column(name = "cantidad_guardar")
    private Integer cantidadGuardar;
    @Column(name = "nombre_promo")
    private String nombrePromo;
    @Column(name = "cantidad_facturar")
    private Integer cantidadFacturar;
    @Column(name = "oferta_activa")
    private boolean ofertaActiva;
    @Column(name = "producto_promocion_multiple")
    private boolean productoPromocionMultiple;
    @Column(name = "limite_factura")
    private Integer limiteFactura;
    @Column(name = "resta_limite")
    private Integer restaLimite;
    @Column(name = "oferta_adcionales")
    private Integer ofertaAdcionales;
    @Column(name = "oferta_adcionales_agregados")
    private Integer ofertaAdcionalesAgregados;

    public Integer getOfertaAdcionales() {
        return ofertaAdcionales;
    }

    public void setOfertaAdcionales(Integer ofertaAdcionales) {
        this.ofertaAdcionales = ofertaAdcionales;
    }

    public Integer getOfertaAdcionalesAgregados() {
        return ofertaAdcionalesAgregados;
    }

    public void setOfertaAdcionalesAgregados(Integer ofertaAdcionalesAgregados) {
        this.ofertaAdcionalesAgregados = ofertaAdcionalesAgregados;
    }

    public WcOfertasFlotantes() {
    }

    public String getNombrePromo() {
        return nombrePromo;
    }

    public void setNombrePromo(String nombrePromo) {
        this.nombrePromo = nombrePromo;
    }

    public Integer getCantidadGuardar() {
        return cantidadGuardar;
    }

    public void setCantidadGuardar(Integer cantidadGuardar) {
        this.cantidadGuardar = cantidadGuardar;
    }

    public WcOfertasFlotantes(WcOfertasFlotantesPK wcOfertasFlotantesPK) {
        this.wcOfertasFlotantesPK = wcOfertasFlotantesPK;
    }

    public WcOfertasFlotantes(String productoCodigo, String ofertaCodigo, String programaCodigo) {
        this.wcOfertasFlotantesPK = new WcOfertasFlotantesPK(productoCodigo, ofertaCodigo, programaCodigo);
    }

    public WcOfertasFlotantesPK getWcOfertasFlotantesPK() {
        return wcOfertasFlotantesPK;
    }

    public void setWcOfertasFlotantesPK(WcOfertasFlotantesPK wcOfertasFlotantesPK) {
        this.wcOfertasFlotantesPK = wcOfertasFlotantesPK;
    }

    public String getTipoOperacion() {
        return tipoOperacion;
    }

    public void setTipoOperacion(String tipoOperacion) {
        this.tipoOperacion = tipoOperacion;
    }

    public Integer getCantidadOperacion() {
        return cantidadOperacion;
    }

    public void setCantidadOperacion(Integer cantidadOperacion) {
        this.cantidadOperacion = cantidadOperacion;
    }

    public Integer getCantidadFacturar() {
        return cantidadFacturar;
    }

    public void setCantidadFacturar(Integer cantidadFacturar) {
        this.cantidadFacturar = cantidadFacturar;
    }

    public boolean isOfertaActiva() {
        return ofertaActiva;
    }

    public void setOfertaActiva(boolean ofertaActiva) {
        this.ofertaActiva = ofertaActiva;
    }

    public boolean isProductoPromocionMultiple() {
        return productoPromocionMultiple;
    }

    public void setProductoPromocionMultiple(boolean productoPromocionMultiple) {
        this.productoPromocionMultiple = productoPromocionMultiple;
    }

    public Integer getLimiteFactura() {
        return limiteFactura;
    }

    public void setLimiteFactura(Integer limiteFactura) {
        this.limiteFactura = limiteFactura;
    }

    public Integer getRestaLimite() {
        return restaLimite;
    }

    public void setRestaLimite(Integer restaLimite) {
        this.restaLimite = restaLimite;
    }

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

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

}
