package com.jwipc.tender.client.dto;

import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * @author Al
 * @create 2024-03-03 15:30
 */
@Data
public class QuotaManagementClientDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    private Long id;


    private String quotaCode;


    private LocalDateTime effectDate;

    private LocalDateTime invalidDate;


    private String factoryName;

    /**
     * 物料编码
     */

    private String materialCode;


    private String materialName;

    /**
     * 订单单位
     */
    private String orderUnit;

    /**
     * 供应商编码
     */
    private String supplierCode;
    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 采购组名称
     */
    private String purchaseGroupName;


    private BigDecimal lastPrice;

    /**
     * 含税单价（= 未税单价 lastPrice + lastPrice * 税率 taxRate ）
     */

    private BigDecimal lastPriceTax;

    /**
     * 税码
     */

    private String taxCode;

    /**
     * 税率
     */

    private String taxRate;

    /**
     * 配额（%）
     */

    private BigDecimal quota;

    /**
     * 价格信息记录编码
     */

    private String infnr;

    /**
     * 价格生效日期
     */

    private Date priceEffectDate;

    /**
     * 价格失效日期
     */

    private Date priceInvalidDate;

    /**
     * 上季度入库金额
     */

    private BigDecimal lastQuarterInMoney;

    /**
     * 上季度退货金额
     */

    private BigDecimal lastQuarterOutMoney;

    /**
     * 最小订货量
     */

    private Long moq;

    /**
     * 最小包装量
     */

    private Long mpq;

    /**
     * 结算方式
     */

    private String settlementModes;

    /**
     * 上次配额（%）
     */
    private BigDecimal lastQuota;

    /**
     * sap配额编码
     */
    private String sapQuotaCode;

    /**
     * OA审批ID
     */
    private String processId;

    /**
     * 物料组编号
     */
    private String materialGroupCode;

    /**
     * 物料组名称
     */
    private String materialGroupName;

    /**
     * 物料计量基本单位
     */
    private String measureUnit;

    /**
     * 最小拆分数量
     */
    private Integer minimumQuantity;
    /**
     * 最大数量
     */
    private Integer maximumQuantity;
    /**
     * 配额基本数量
     */
    private Integer quotaBaseQuantity;
    /**
     * 优先级
     */
    private Integer level;
    /**
     * 工厂编号
     */
    private String factoryCode;

    /**
     * 采购类型
     */
    private String procurementType;
    /**
     * 删除标志
     */
    private Integer deleteFlag;

    /**
     * 0 有效, 1 作废
     */
    private Integer validFlag;

    /**
     * 创建人
     */
    private String creater;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 最后修改人
     */
    private String updater;
    /**
     * 最后修改时间
     */
    private Date updateTime;

    /**
     * 采购组编号
     */
    private String purchasingGroup;

    /**
     * 配额协议行号
     */
    private Integer sapQuotaNumber;

    /**
     * 物料表-收货数量
     */
    private Double num;

    /**
     * 物料入库日期
     */
    private Date materialCreateDate;

    /**
     * 采购单号
     */
    private String orderCode;

    /**
     * 订单数量
     */
    private Double orderNum;

    /**
     * 物料凭证行-收货数量
     */
    private Double rowNum;

    /**
     * 物料凭证-收货日期
     */
    private Date receiptDate;

    /**
     * 物料凭证号
     */
    private String receiptCode;

    /**
     * 物料凭证行号
     */
    private String rowNo;

    /**
     * 参考凭证号
     */
    private String lfbnr;

    /**
     * 参考凭证行号
     */
    private String lfpos;

    /**
     * 移动类型
     */
    private String bwart;

    /**
     * 含税单价
     */
    private String taxPrice;

    /**
     * 不含税单价
     */
    private BigDecimal noTaxPrice;

    /**
     * 供应商绩效考核总评分
     */
    private String allScore;

    /**
     * 数据状态：0 新建、1 未同步、2 同步成功、3 变更中、4 失效
     */
    private Integer syncStatus;

    /**
     * 单据状态：0.新增 1.待审批 2.审批通过 3.审批驳回,4.废弃
     */
    private Integer auditStatus;

    /**
     * 审批人
     */
    private String auditor;

    /**
     * 审批时间
     */
    private Date auditTime;

    /**
     * 原因
     */
    private String reason;

    /**
     * 价格信息记录表ID
     */
    private Long priceInfoId;

    /**
     * 新增时生成的配额的唯一标识
     */
    private String addUniqueFlag;
}
