package com.jsh.erp.datasource.entities;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 单据子表实体类
 */
@Data
@TableName("jsh_depot_item")
public class DepotItem {

    @ApiModelProperty("主键id")
    private Long id;

    @ApiModelProperty("表头Id")
    private Long headerId;

    @ApiModelProperty("商品Id")
    private Long materialId;

    @ApiModelProperty("商品扩展id")
    private Long materialExtendId;

    @ApiModelProperty("商品单位")
    private String materialUnit;

    @ApiModelProperty("多属性")
    private String sku;

    @ApiModelProperty("数量")
    private BigDecimal operNumber;

    @ApiModelProperty("基础数量，如kg、瓶")
    private BigDecimal basicNumber;

    @ApiModelProperty("单价")
    private BigDecimal unitPrice;

    @ApiModelProperty("采购单价")
    private BigDecimal purchaseUnitPrice;

    @ApiModelProperty("含税单价")
    private BigDecimal taxUnitPrice;

    @ApiModelProperty("金额")
    private BigDecimal allPrice;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("仓库ID")
    private Long depotId;

    @ApiModelProperty("调拨时，对方仓库Id")
    private Long anotherDepotId;

    @ApiModelProperty("税率")
    private BigDecimal taxRate;

    @ApiModelProperty("税额")
    private BigDecimal taxMoney;

    @ApiModelProperty("价税合计")
    private BigDecimal taxLastMoney;

    @ApiModelProperty("商品类型")
    private String materialType;

    @ApiModelProperty("序列号列表")
    private String snList;

    @ApiModelProperty("批号")
    private String batchNumber;

    @ApiModelProperty("有效日期")
    private Date expirationDate;

    @ApiModelProperty("关联明细id")
    private Long linkId;

    @ApiModelProperty("租户id")
    private Long tenantId;

    @ApiModelProperty("删除标记，0未删除，1删除")
    private String deleteFlag;

    @ApiModelProperty("实际出入库数量")
    private BigDecimal actualQuantityInStorage;

    @ApiModelProperty("出入库差异")
    private BigDecimal warehousingVariance;

    @ApiModelProperty("出入库差异原因")
    private String reasonOfDifference;

    @ApiModelProperty("出入库用户")
    private Long warehousingUser;

    @ApiModelProperty("出入库时间")
    private String warehousingTime;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("生产日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date productionDate;

    @ApiModelProperty("保质期天数")
    private Integer expiryNum;

    @ApiModelProperty("仓位货架")
    private String position;

    @ApiModelProperty("销售价")
    private BigDecimal wholesaleDecimal;

    public Long getId() {
        return id;
    }

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

    public Long getHeaderId() {
        return headerId;
    }

    public void setHeaderId(Long headerId) {
        this.headerId = headerId;
    }

    public Long getMaterialId() {
        return materialId;
    }

    public void setMaterialId(Long materialId) {
        this.materialId = materialId;
    }

    public Long getMaterialExtendId() {
        return materialExtendId;
    }

    public void setMaterialExtendId(Long materialExtendId) {
        this.materialExtendId = materialExtendId;
    }

    public String getMaterialUnit() {
        return materialUnit;
    }

    public void setMaterialUnit(String materialUnit) {
        this.materialUnit = materialUnit == null ? null : materialUnit.trim();
    }

    public String getSku() {
        return sku;
    }

    public void setSku(String sku) {
        this.sku = sku == null ? null : sku.trim();
    }

    public BigDecimal getOperNumber() {
        return operNumber;
    }

    public void setOperNumber(BigDecimal operNumber) {
        this.operNumber = operNumber;
    }

    public BigDecimal getBasicNumber() {
        return basicNumber;
    }

    public void setBasicNumber(BigDecimal basicNumber) {
        this.basicNumber = basicNumber;
    }

    public BigDecimal getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(BigDecimal unitPrice) {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getPurchaseUnitPrice() {
        return purchaseUnitPrice;
    }

    public void setPurchaseUnitPrice(BigDecimal purchaseUnitPrice) {
        this.purchaseUnitPrice = purchaseUnitPrice;
    }

    public BigDecimal getTaxUnitPrice() {
        return taxUnitPrice;
    }

    public void setTaxUnitPrice(BigDecimal taxUnitPrice) {
        this.taxUnitPrice = taxUnitPrice;
    }

    public BigDecimal getAllPrice() {
        return allPrice;
    }

    public void setAllPrice(BigDecimal allPrice) {
        this.allPrice = allPrice;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public Long getDepotId() {
        return depotId;
    }

    public void setDepotId(Long depotId) {
        this.depotId = depotId;
    }

    public Long getAnotherDepotId() {
        return anotherDepotId;
    }

    public void setAnotherDepotId(Long anotherDepotId) {
        this.anotherDepotId = anotherDepotId;
    }

    public BigDecimal getTaxRate() {
        return taxRate;
    }

    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    public BigDecimal getTaxMoney() {
        return taxMoney;
    }

    public void setTaxMoney(BigDecimal taxMoney) {
        this.taxMoney = taxMoney;
    }

    public BigDecimal getTaxLastMoney() {
        return taxLastMoney;
    }

    public void setTaxLastMoney(BigDecimal taxLastMoney) {
        this.taxLastMoney = taxLastMoney;
    }

    public String getMaterialType() {
        return materialType;
    }

    public void setMaterialType(String materialType) {
        this.materialType = materialType == null ? null : materialType.trim();
    }

    public String getSnList() {
        return snList;
    }

    public void setSnList(String snList) {
        this.snList = snList == null ? null : snList.trim();
    }

    public String getBatchNumber() {
        return batchNumber;
    }

    public void setBatchNumber(String batchNumber) {
        this.batchNumber = batchNumber == null ? null : batchNumber.trim();
    }

    public Date getExpirationDate() {
        return expirationDate;
    }

    public void setExpirationDate(Date expirationDate) {
        this.expirationDate = expirationDate;
    }

    public Long getLinkId() {
        return linkId;
    }

    public void setLinkId(Long linkId) {
        this.linkId = linkId;
    }

    public Long getTenantId() {
        return tenantId;
    }

    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }

    public String getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(String deleteFlag) {
        this.deleteFlag = deleteFlag == null ? null : deleteFlag.trim();
    }

    public Date getProductionDate() {
        return productionDate;
    }

    public void setProductionDate(Date productionDate) {
        this.productionDate = productionDate;
    }
}