package com.arrebol.taxiservicios.model.stocktaking;

import com.arrebol.taxiservicios.model.catalog.Product;
import com.arrebol.taxiservicios.model.core.User;
import java.io.Serializable;
import java.util.Date;

/**
 *
 * @author Carlos Janitzio Zavala López.
 */
public class ProductInvoiceBk implements Serializable {

    private static final long serialVersionUID = 5459590332166806290L;

    private String id;
    private Invoice invoice;
    private Product product;
    private Double amount;
    private Double amountMenudeo;
    private Integer quantity;
    private User createdBy;
    private Date createdOn;
    private User lastUpdatedBy;
    private Date lastUpdatedOn;

    public ProductInvoiceBk() {
    }

    /**
     * Complete constructor.
     *
     * @param id
     * @param invoice
     * @param product
     * @param amount
     * @param quantity
     * @param createdBy
     * @param createdOn
     * @param lastUpdatedBy
     * @param lastUpdatedOn
     */
    public ProductInvoiceBk(String id, Invoice invoice, Product product, Double amount, Integer quantity, User createdBy, Date createdOn, User lastUpdatedBy, Date lastUpdatedOn) {
        this.id = id;
        this.invoice = invoice;
        this.product = product;
        this.amount = amount;
        this.quantity = quantity;
        this.createdBy = createdBy;
        this.createdOn = createdOn;
        this.lastUpdatedBy = lastUpdatedBy;
        this.lastUpdatedOn = lastUpdatedOn;
    }

    /**
     * Using in backup invoice before to update stocktaking.
     *
     * @param id
     * @param invoice
     * @param product
     * @param amount
     * @param quantity
     * @param createdBy
     * @param createdOn
     */
    public ProductInvoiceBk(String id, Invoice invoice, Product product, Double amount, Integer quantity, User createdBy, Date createdOn) {
        this.id = id;
        this.invoice = invoice;
        this.product = product;
        this.amount = amount;
        this.quantity = quantity;
        this.createdBy = createdBy;
        this.createdOn = createdOn;
    }
    
    public ProductInvoiceBk(String id, Invoice invoice, Product product, Double amount, Integer quantity, User createdBy, Date createdOn, double amountMenudeo) {
        this.id = id;
        this.invoice = invoice;
        this.product = product;
        this.amount = amount;
        this.quantity = quantity;
        this.createdBy = createdBy;
        this.createdOn = createdOn;
        this.amountMenudeo = amountMenudeo;
    }

    /**
     *
     * @param id
     * @param product
     * @param amount
     * @param quantity
     */
    public ProductInvoiceBk(String id, Product product, Double amount, Integer quantity) {
        this.id = id;
        this.product = product;
        this.amount = amount;
        this.quantity = quantity;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Invoice getInvoice() {
        return invoice;
    }

    public void setInvoice(Invoice invoice) {
        this.invoice = invoice;
    }

    public Product getProduct() {
        return product;
    }

    public void setProduct(Product product) {
        this.product = product;
    }

    public Double getAmount() {
        return amount;
    }

    public void setAmount(Double amount) {
        this.amount = amount;
    }

    public Integer getQuantity() {
        return quantity;
    }

    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }

    public User getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(User createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedOn() {
        return createdOn;
    }

    public void setCreatedOn(Date createdOn) {
        this.createdOn = createdOn;
    }

    public User getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    public void setLastUpdatedBy(User lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Date getLastUpdatedOn() {
        return lastUpdatedOn;
    }

    public void setLastUpdatedOn(Date lastUpdatedOn) {
        this.lastUpdatedOn = lastUpdatedOn;
    }

    public Double getAmountMenudeo() {
        return amountMenudeo;
    }

    public void setAmountMenudeo(Double amountMenudeo) {
        this.amountMenudeo = amountMenudeo;
    }

    @Override
    public String toString() {
        return "ProductInvoiceBk{" + "id=" + id + ", invoice=" + invoice + ", product=" + product + ", amount=" + amount + ", quantity=" + quantity + '}';
    }

}
