package com.zt.plat.module.contractorder.api.dto.order;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@Schema(description = "采购订单明细")
public class PrchOrdDtlDTO {


    /**
     * 主键
     */
    @Schema(description = "主键")
    private Long id;
    /**
     * 采购订单主键
     */
    @Schema(description = "采购订单主键")
    private Long ordId;
    /**
     * 行项目;推送ERP（必须）
     */
    @Schema(description = "行项目;推送ERP（必须）")
    private Long lineNum;
    /**
     * 物料编码;推送ERP
     */
    @Schema(description = "物料编码;推送ERP")
    private String mtrlNum;
    /**
     * 物料名称
     */
    @Schema(description = "物料名称")
    private String mtrlName;
    /**
     * 收货工厂名称
     */
    @Schema(description = "收货工厂名称")
    private String rcvFactName;
    /**
     * 收货工厂编码;推送ERP（必须）
     */
    @Schema(description = "收货工厂编码;推送ERP（必须）")
    private String rcvFactNum;
    /**
     * 收货库位名称
     */
    @Schema(description = "收货库位名称")
    private String rcvWrhName;
    /**
     * 收货库位编码;推送ERP
     */
    @Schema(description = "收货库位编码;推送ERP")
    private String rcvWrhNum;
    /**
     * 暂估数量;推送ERP（必须）
     */
    @Schema(description = "暂估数量;推送ERP（必须）")
    private String qty;
    /**
     * 计量单位;推送ERP（必须）
     */
    @Schema(description = "计量单位;推送ERP（必须）")
    private String unt;
    /**
     * 含税单价;推送ERP（必须）
     */
    @Schema(description = "含税单价;推送ERP（必须）")
    private BigDecimal inTaxUprc;
    /**
     * 价格单位;推送ERP
     */
    @Schema(description = "价格单位;推送ERP")
    private BigDecimal prcUnt;
    /**
     * 税码(字典: PRCH_TAX);推送ERP
     */
    @Schema(description = "税码(字典: PRCH_TAX);推送ERP")
    private String taxNum;
    /**
     * 是否基于GR的发票校验;推送ERP
     */
    @Schema(description = "是否基于GR的发票校验;推送ERP")
    private String isGrInv;
    /**
     * 是否允许无限制收货;推送ERP
     */
    @Schema(description = "是否允许无限制收货;推送ERP")
    private String isUnlRcv;
    /**
     * 批次;推送ERP
     */
    @Schema(description = "批次;推送ERP")
    private String bat;
    /**
     * 项目类别;推送ERP:委托加工L
     */
    @Schema(description = "项目类别;推送ERP:委托加工L")
    private String prjCtgr;
    /**
     * 科目分配类别(字典: PRCH_ACTS_CTGR);推送ERP:联动订单类型，固定资产订单A，服务订单S-销售服务费K-成本中心F-订单
     */
    @Schema(description = "科目分配类别(字典: PRCH_ACTS_CTGR);推送ERP:联动订单类型，固定资产订单A，服务订单S-销售服务费K-成本中心F-订单")
    private String actsCtgr;
    /**
     * 物料组编码(字典: PRCH_MATERIAL_GROUP);推送ERP:联动订单类型，服务订单必传
     */
    @Schema(description = "物料组编码(字典: PRCH_MATERIAL_GROUP);推送ERP:联动订单类型，服务订单必传")
    private String mtrlCpntNum;
    /**
     * 物料组描述;推送ERP:联动订单类型，服务订单必传
     */
    @Schema(description = "物料组描述;推送ERP:联动订单类型，服务订单必传")
    private String mtrlCpntDsp;
    /**
     * 短文本
     */
    @Schema(description = "短文本")
    private String shrtTxt;
    /**
     * 退货标识X标识退货;推送ERP
     */
    @Schema(description = "退货标识X标识退货;推送ERP")
    private String isRlbkCgo;
    /**
     * 是否免费收货标识X;推送ERP
     */
    @Schema(description = "是否免费收货标识X;推送ERP")
    private String isFreeRcv;
    /**
     * 外部行项目号;推送ERP
     */
    @Schema(description = "外部行项目号;推送ERP")
    private Long outLineNum;
    /**
     * 备注信息-需求单位;推送ERP
     */
    @Schema(description = "备注信息-需求单位;推送ERP")
    private String rmkUnt;
    /**
     * 备注信息-物料详细;推送ERP
     */
    @Schema(description = "备注信息-物料详细;推送ERP")
    private String rmkMtrl;
    /**
     * 交货起始日期;推送ERP
     */
    @Schema(description = "交货起始日期;推送ERP")
    private LocalDateTime bgnDt;
    /**
     * 交货截止日期;推送ERP
     */
    @Schema(description = "交货截止日期;推送ERP")
    private LocalDateTime ddlDt;
    /**
     * 已收货量
     */
    @Schema(description = "已收货量")
    private BigDecimal lstQty;
    /**
     * 已移库量库;存针对该订单产生的移库量
     */
    @Schema(description = "已移库量库;存针对该订单产生的移库量")
    private BigDecimal trfQty;
    /**
     * 小协议号
     */
    @Schema(description = "小协议号")
    private String agrNum;
    /**
     * 移库工厂名称
     */
    @Schema(description = "移库工厂名称")
    private String trfFactName;
    /**
     * 移库工厂编码
     */
    @Schema(description = "移库工厂编码")
    private String trfFactNum;
    /**
     * 移库库位名称
     */
    @Schema(description = "移库库位名称")
    private String trfWrhName;
    /**
     * 移库库位编码
     */
    @Schema(description = "移库库位编码")
    private String trfWrhNum;
    /**
     * 备注
     */
    @Schema(description = "备注")
    private String rmk;
    /**
     * 原料湿重;推送ERP
     */
    @Schema(description = "原料湿重;推送ERP")
    private BigDecimal origWet;
    /**
     * 销售物料号;推送ERP:科目分配类别为S时必填
     */
    @Schema(description = "销售物料号;推送ERP:科目分配类别为S时必填")
    private String saleMtrlNum;
    /**
     * 统计型内部订单;推送ERP
     */
    @Schema(description = "统计型内部订单;推送ERP")
    private String inOrd;
    /**
     * 采购类别;推送ERP:0-生产性物资类1-项目投资类
     */
    @Schema(description = "采购类别;推送ERP:0-生产性物资类1-项目投资类")
    private String prchCtgr;
    /**
     * 是否启用(字典:ERP_CTRT_YN);处理明细中多个相同物料，只能允许一种物料启用
     */
    @Schema(description = "是否启用(字典:ERP_CTRT_YN);处理明细中多个相同物料，只能允许一种物料启用")
    private String isEnb;
    /**
     * 科目分配详情;科目分配类别为K或P时使用(JSON)
     */
    @Schema(description = "科目分配详情;科目分配类别为K或P时使用(JSON)")
    private String actsCtgrDtl;
    /**
     * 委托加工详情;委托加工订单使用(JSON)
     */
    @Schema(description = "委托加工详情;委托加工订单使用(JSON)")
    private String enttDtl;
    /**
     * 金属元素缩写
     */
    @Schema(description = "金属元素缩写")
    private String elemAbbr;
    /**
     * 金属元素名称
     */
    @Schema(description = "金属元素名称")
    private String elemName;
    /**
     * 金属元素编码
     */
    @Schema(description = "金属元素编码")
    private String elemCdg;
}
