/*
 * 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 java.math.BigDecimal;
import javax.persistence.Basic;
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.NotNull;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * @author obper
 */
@Entity
@Table(name = "detalle_pedidos")
@XmlRootElement
@NamedQueries({
        @NamedQuery(name = "DetallePedidos.findAll", query = "SELECT d FROM DetallePedidos d")
        , @NamedQuery(name = "DetallePedidos.findByTerritorio", query = "SELECT d FROM DetallePedidos d WHERE d.detallePedidosPK.territorio = :territorioe")
        , @NamedQuery(name = "DetallePedidos.findByNumeroPedido", query = "SELECT d FROM DetallePedidos d WHERE d.detallePedidosPK.numeroPedido = :numeroPedido")
        , @NamedQuery(name = "DetallePedidos.findByNumeroPedidoBusk", query = "SELECT d FROM DetallePedidos d WHERE d.detallePedidosPK.numeroPedido = :numeroPedido AND d.detallePedidosPK.territorio = :territorio")
        , @NamedQuery(name = "DetallePedidos.findByProductoCodigo", query = "SELECT d FROM DetallePedidos d WHERE d.detallePedidosPK.productoCodigo = :productoCodigo")
        , @NamedQuery(name = "DetallePedidos.findByOfertaDetallePedido", query = "SELECT d FROM DetallePedidos d WHERE d.detallePedidosPK.ofertaDetallePedido = :ofertaDetallePedido")
        , @NamedQuery(name = "DetallePedidos.findByCantidad", query = "SELECT d FROM DetallePedidos d WHERE d.cantidad = :cantidad")
        , @NamedQuery(name = "DetallePedidos.findByEntregado", query = "SELECT d FROM DetallePedidos d WHERE d.entregado = :entregado")
        , @NamedQuery(name = "DetallePedidos.findBySinDescuentto", query = "SELECT d FROM DetallePedidos d WHERE d.sinDescuentto = :sinDescuentto")
        , @NamedQuery(name = "DetallePedidos.findByConDescuento", query = "SELECT d FROM DetallePedidos d WHERE d.conDescuento = :conDescuento")})
public class DetallePedidos implements Serializable {

    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected DetallePedidosPK detallePedidosPK;
    @Basic(optional = false)
    @NotNull
    @Column(name = "cantidad")
    private int cantidad;
    @Basic(optional = false)
    @NotNull
    @Column(name = "entregado")
    private boolean entregado;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Basic(optional = false)
    @NotNull
    @Column(name = "sin_descuentto")
    private BigDecimal sinDescuentto;
    @Basic(optional = false)
    @NotNull
    @Column(name = "con_descuento")
    private BigDecimal conDescuento;

    public DetallePedidos() {
    }

    public DetallePedidos(DetallePedidosPK detallePedidosPK) {
        this.detallePedidosPK = detallePedidosPK;
    }

    public DetallePedidos(DetallePedidosPK detallePedidosPK, short cantidad, boolean entregado, BigDecimal sinDescuentto, BigDecimal conDescuento) {
        this.detallePedidosPK = detallePedidosPK;
        this.cantidad = cantidad;
        this.entregado = entregado;
        this.sinDescuentto = sinDescuentto;
        this.conDescuento = conDescuento;
    }

    public DetallePedidos(String territorioe, String numeroPedido, String productoCodigo, String ofertaDetallePedido) {
        this.detallePedidosPK = new DetallePedidosPK(territorioe, numeroPedido, productoCodigo, ofertaDetallePedido);
    }

    public DetallePedidosPK getDetallePedidosPK() {
        return detallePedidosPK;
    }

    public void setDetallePedidosPK(DetallePedidosPK detallePedidosPK) {
        this.detallePedidosPK = detallePedidosPK;
    }

    public int getCantidad() {
        return cantidad;
    }

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

    public boolean getEntregado() {
        return entregado;
    }

    public void setEntregado(boolean entregado) {
        this.entregado = entregado;
    }

    public BigDecimal getSinDescuentto() {
        return sinDescuentto;
    }

    public void setSinDescuentto(BigDecimal sinDescuentto) {
        this.sinDescuentto = sinDescuentto;
    }

    public BigDecimal getConDescuento() {
        return conDescuento;
    }

    public void setConDescuento(BigDecimal conDescuento) {
        this.conDescuento = conDescuento;
    }

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

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

}
