using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Attributes;
namespace WIDESEA_DTO.ERP
{
    /// 
    /// 标准/bom退料
    /// 
    [ModelValidate]
    public class ErpReturnOrderDTO
    {
        /// 
        /// 操作类型
        /// 1:新增
        /// 2:修改
        /// 3:删除(删除只要明细行号和领料单号)
        /// 
        [PropertyValidate("操作类型", NotNullAndEmpty = true, Check = new object[] { 1, 2, 3 })]
        public int Way { get; set; }
        /// 
        /// 退料订单号
        /// 
        [PropertyValidate("退料订单号", NotNullAndEmpty = true)]
        public string OrderNo { get; set; }
        /// 
        /// 仓库编号
        /// 
        [PropertyValidate("仓库编号", NotNullAndEmpty = true)]
        public string WaCode { get; set; }
        /// 
        /// 单据备注
        /// 
        public string? Note { get; set; }
        /// 
        /// 订单类型
        /// 1:标准退料
        /// 2:bom退料
        /// 
        [PropertyValidate("订单类型", NotNullAndEmpty = true, Check = new object[] { 1, 2 })]
        public int OrderType { get; set; }
        /// 
        /// 是否研发
        /// 0:否
        /// 1:是
        /// 
        [PropertyValidate("是否研发", NotNullAndEmpty = true, Check = new object[] { 0, 1 })]
        public int IsDev { get; set; }
        /// 
        /// 列表
        /// 
        [PropertyValidate("列表", NotNullAndEmpty = true)]
        public List Issitem { get; set; }
    }
    /// 
    /// 退料明细
    /// 
    [ModelValidate]
    public class ReturnDetail
    {
        /// 
        /// 申请单号(发料单)
        /// 
        [PropertyValidate("申请单号", NotNullAndEmpty = true)]
        public string PickCode { get; set; }
        /// 
        /// 申请单号行号(发料单明细行号)
        /// 
        [PropertyValidate("申请单号行号", NotNullAndEmpty = false)]
        public int? ApplyRow { get; set; }
        /// 
        /// 退料行号
        /// 
        [PropertyValidate("退料行号", NotNullAndEmpty = true)]
        public int RowId { get; set; }
        /// 
        /// 退料信息
        /// 
        [PropertyValidate("退料信息", NotNullAndEmpty = true)]
        public List PickList { get; set; }
    }
    /// 
    /// 退料信息
    /// 
    [ModelValidate]
    public class ReturnInfo
    {
        /// 
        /// 物料编码
        /// 
        [PropertyValidate("物料编码", NotNullAndEmpty = true)]
        public string MCode { get; set; }
        /// 
        /// 可退数量
        /// 
        [PropertyValidate("可退数量", NotNullAndEmpty = true)]
        public float Qty { get; set; }
        /// 
        /// 单位
        /// 
        [PropertyValidate("单位", NotNullAndEmpty = true)]
        public string Unit { get; set; }
        /// 
        /// 退回数量
        /// 
        [PropertyValidate("退回数量", NotNullAndEmpty = true)]
        public float ReturnQty { get; set; }
        public string? Code { get; set; }
    }
}