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

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

import java.math.BigDecimal;
@Data
@Schema(description = "销售订单明细DTO")
public class SalesOrdDtlDTO {

    /**
     * 主键
     */
    @Schema(description = "主键")
    private Long id;
    /**
     * 订单主键
     */
    @Schema(description = "订单主键")

    private Long orderId;
    /**
     * 行项目;推送ERP(必须)
     */
    @Schema(description = "行项目;推送ERP(必须)")

    private Long lineNumber;
    /**
     * 物料名称
     */
    @Schema(description = "物料名称")

    private String materialName;
    /**
     * 物料编码;推送ERP(必须)
     */
    @Schema(description = "物料编码;推送ERP(必须)")

    private String materialNumber;
    /**
     * 工厂名称
     */
    @Schema(description = "工厂名称")

    private String factoryName;
    /**
     * 工厂编码;推送ERP(必须)
     */
    @Schema(description = "工厂编码;推送ERP(必须)")

    private String factoryNumber;
    /**
     * 库位名称
     */
    @Schema(description = "库位名称")

    private String warehouseName;
    /**
     * 库位编码;推送ERP(必须)
     */
    @Schema(description = "库位编码;推送ERP(必须)")
    private String warehouseNumber;
    /**
     * 计量单位;推送ERP(必须)
     */
    @Schema(description = "计量单位;推送ERP(必须)")
    private String unit;
    /**
     * 开票类型;推送ERP(必须)
     */
    @Schema(description = "开票类型;推送ERP(必须)")
    private String invoiceType;
    /**
     * 暂估数量;推送ERP(必须)
     */
    @Schema(description = "暂估数量;推送ERP(必须)")
    private BigDecimal quantity;
    /**
     * 稅分类(字典:SALE_TAX);推送ERP(必须)
     */
    @Schema(description = "税率分类(字典:SALE_TAX);推送ERP(必须)")
    private String taxAcctasscat;
    /**
     * 项目类别;推送ERP
     */
    @Schema(description = "项目类别;推送ERP")
    private String projectCategory;
    /**
     * 装运地点;推送ERP
     */
    @Schema(description = "装运地点;推送ERP")
    private String shippingPlace;
    /**
     * 物料科目分配组;推送ERP（必须）
     */
    @Schema(description = "物料科目分配组;推送ERP（必须）")
    private String metalAcctasscatGroup;
    /**
     * 小协议号
     */
    @Schema(description = "小协议号")
    private String agreementNumber;
    /**
     * 总价
     */
    @Schema(description = "总价")
    private BigDecimal gross;
    /**
     * 金属元素缩写
     */
    @Schema(description = "金属元素缩写")
    private String elementAbbreviation;
    /**
     * 金属元素名称
     */
    @Schema(description = "金属元素名称")
    private String elementName;
    /**
     * 金属元素编码
     */
    @Schema(description = "金属元素编码")
    private String elementNumber;
    /**
     * 是否启用;处理明细中多个相同物料，只能允许一种物料启用
     */
    @Schema(description = "是否启用;处理明细中多个相同物料，只能允许一种物料启用")
    private String isEnable;
    /**
     * 价格条件详情;推送ERP(必须):JSON
     */
    @Schema(description = "价格条件详情;推送ERP(必须):JSON")
    private String priceConditionDetail;
    /**
     * 来料加工原料详情;推送ERP:订单类型(JSON)
     */
    @Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)")
    private String originDetail;

    /**
     * 税率
     */
    @Schema(description = "税率")
    private BigDecimal taxRte;

    /**
     * 已移库量库;存针对该订单产生的移库量
     */
    @Schema(description = "已移库量库;存针对该订单产生的移库量")
    private BigDecimal trfQty;
}
