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 Oscar Vargas
 */
public class TransferStocktakingHasProduct implements Serializable {

    private static final long serialVersionUID = -1308028966372243450L;

    private TransferStocktakingHasProductId id;
    private TransferStocktaking transferStocktaking;
    private Product product;
    private Integer quantity;
    private float price;
    private User createdBy;
    private Date createdOn;
    private User lastUpdatedBy;
    private Date lastUpdatedOn;

    public TransferStocktakingHasProduct() {
    }

    public TransferStocktakingHasProduct(TransferStocktakingHasProductId id, TransferStocktaking transferStocktaking, Product product) {
        this.id = id;
        this.transferStocktaking = transferStocktaking;
        this.product = product;
    }
    
    

    /**
     *
     * @param id
     * @param product
     * @param price
     * @param quantity
     */
    public TransferStocktakingHasProduct(TransferStocktakingHasProductId id, Product product, Integer quantity) {
        this.id = id;
        this.product = product;
        this.quantity = quantity;
    }
    
    public TransferStocktakingHasProduct(TransferStocktakingHasProductId id, Product product, Integer quantity, User createdBy) {
        this.id = id;
        this.product = product;
        this.quantity = quantity;
        this.createdBy = createdBy;
    }

    /**
     *
     * @param product
     */
    public TransferStocktakingHasProduct(Product product) {
        this.product = product;
    }

    /**
     *
     * @param id Primary Key
     * @param price Price without Taxes.
     * @param quantity Quantity.
     * @param createdBy Created User
     * @param createdOn Date of creation.
     */
    public TransferStocktakingHasProduct(TransferStocktakingHasProductId id, Integer quantity, User createdBy, Date createdOn) {
        this.id = id;
        this.quantity = quantity;
        this.createdBy = createdBy;
        this.createdOn = createdOn;
    }

    public TransferStocktakingHasProduct(TransferStocktakingHasProductId id, float price, int quantity, User createdBy, Date createdOn) {
        this.id = id;
        this.price = price;
        this.quantity = quantity;
        this.createdBy = createdBy;
        this.createdOn = createdOn;
    }

    public TransferStocktakingHasProduct(TransferStocktaking transferStocktaking, Product product) {
        this.transferStocktaking = transferStocktaking;
        this.product = product;
    }

    public TransferStocktakingHasProductId getId() {
        return id;
    }

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

    public Product getProduct() {
        return product;
    }

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

    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 TransferStocktaking getTransferStocktaking() {
        return transferStocktaking;
    }

    public void setTransferStocktaking(TransferStocktaking transferStocktaking) {
        this.transferStocktaking = transferStocktaking;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }


}
