package com.zt.plat.module.erp.api.dto.dto083;

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

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * ERP 083 接口请求参数 - 物料列表对象
 *
 * @author wsh
 */
@Schema(description = "ERP 083 接口请求参数 - 物料列表对象")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MatList083 implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 发票行号
     * 默认 1
     */
    @Schema(description = "发票行号", example = "1")
    private Long invoiceDocItem;

    /**
     * 物料号
     * 来源: QpSettlementDO.materialNumber（物料编码）
     */
    @Schema(description = "物料号", example = "000000000000224778")
    private String material;

    /**
     * 订单中的收货工厂编码
     */
    @Schema(description = "工厂(评估范围)")
    private String valArea;

    /**
     * 金额
     * 可输入负数
     * 来源: QpSettlementDO.differenceRmbAmount（差额人民币）
     */
    @Schema(description = "金额", example = "2405348.12")
    private BigDecimal itemAmount;

    /**
     * 数量
     * 来源: QpSettlementDO.metalWeight（金属量）
     */
    @Schema(description = "数量", example = "2276.491")
    private BigDecimal quantity;

    /**
     * 计量单位
     * 来源: QpSettlementDO.metalUnit（金属量单位）
     */
    @Schema(description = "计量单位", example = "TON")
    private String baseUom;

    /**
     * 税码
     * 固定值 "J0"
     */
    @Schema(description = "税码", example = "J0")
    private String taxCode;
}
