using System.ComponentModel.DataAnnotations;
namespace RB_MES_API.Models.Cloud
{
    /// <summary>
    /// 退料申请单
    /// </summary>
    public class PUR_MRAPP
    {
        /// <summary>
        /// 实体主键（无需填写，保存时自动添加）
        /// </summary>
        public int FID { get; set; } 
        /// <summary>
        /// 单据类型  (必填项)
        /// </summary>
        public Dictionary<string, string> FBillTypeID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
        /// <summary>
        /// 单据编号    
        /// </summary>
        [StringLength(36)]
        public string FBillNo { get; set; } 
        /// <summary>
        /// 申请日期  (必填项)
        /// </summary>
        public DateTime FDate { get; set; }
        /// <summary>
        /// 申请组织
        /// </summary>
        public Dictionary<string, string> FAPPORGID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
        /// <summary>
        /// 申请部门
        /// </summary>
        public Dictionary<string, string> FAPPDEPTID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
        /// <summary>
        /// 需求组织  (必填项)
        /// </summary>
        public Dictionary<string, string> FRequireOrgId { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
        /// <summary>
        /// 退料类型    (必填项)    
        /// </summary>
        [StringLength(36)]
        public string FRMTYPE { get; set; } 
        /// <summary>
        /// 退料方式     (必填项)    
        /// </summary>
        [StringLength(36)]
        public string FRMMODE { get; set; } 
        /// <summary>
        /// 对应组织
        /// </summary>
        public Dictionary<string, string> FCorrespondOrgId { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
        /// <summary>
        /// 退料地点   
        /// </summary>
        [StringLength(36)]
        public string FRMLOC { get; set; } 
        /// <summary>
        /// 退料原因
        /// </summary>
        public Dictionary<string, string> FRMREASON { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
        /// <summary>
        /// 采购组织     (必填项)
        /// </summary>
        public Dictionary<string, string> FPURCHASEORGID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
        /// <summary>
        /// 供应商     (必填项)
        /// </summary>
        public Dictionary<string, string> FSUPPLIERID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
        /// <summary>
        /// 备注   
        /// </summary>
        [StringLength(36)]
        public string FRemarks { get; set; } 
        /// <summary>
        /// 确认人
        /// </summary>
        public Dictionary<string, string> FConfirmerId { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
        /// <summary>
        /// 确认日期
        /// </summary>
        public DateTime FConfirmDate { get; set; }
        /// <summary>
        /// 申请人
        /// </summary>
        public Dictionary<string, string> FApplicantId { get; set; } = new Dictionary<string, string>() {
            { "",""}
        };


        /// <summary>
        /// 财务（表头财务)
        /// </summary>
        public class F_SubEntity_FIN 
        {
            /// <summary>
            /// 实体主键（无需填写，保存时自动添加）
            /// </summary>
            public int FENTRYID { get; set; }
            /// <summary>
            /// 结算组织   (必填项)
            /// </summary>
            public Dictionary<string, string> FSettleTypeId { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 币别   (必填项)
            /// </summary>
            public Dictionary<string, string> FLOCALCURRID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 汇率类型
            /// </summary>
            public Dictionary<string, string> FExchangeTypeId { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 价目表
            /// </summary>
            public Dictionary<string, string> FPriceListId { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 价外税
            /// </summary>
            public bool FISPRICEEXCLUDETAX { get; set; } = false;
        }





        public List<FEntity> Entity { get; set; } = new List<FEntity>();
        /// <summary>
        /// 明细   
        /// </summary>
        public class FEntity
        {
            /// <summary>
            /// 实体主键
            /// </summary>
            public int FEntryID { get; set; }
            /// <summary>
            /// 计划跟踪号 
            /// </summary>
            [StringLength(36)]
            public string FMtoNo { get; set; } 
            /// <summary>
            /// 物料编码    (必填项)
            /// </summary>
            public Dictionary<string, string> FMATERIALID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 库存单位    (必填项)
            /// </summary>
            public Dictionary<string, string> FUNITID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 申请退料数量
            /// </summary>
            public decimal FMRAPPQTY { get; set; } 
            /// <summary>
            /// 计价单位    (必填项)
            /// </summary>
            public Dictionary<string, string> FPRICEUNITID_F { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            ///  补料数量
            /// </summary>
            public decimal FREPLENISHQTY { get; set; } 
            /// <summary>
            /// 扣款数量
            /// </summary>
            public decimal FKEAPAMTQTY { get; set; }
            /// <summary>
            /// 退料原因
            /// </summary>
            public Dictionary<string, string> FRMREASON_M { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 是否赠品
            /// </summary>
            public bool FGiveAway { get; set; } = false;
            /// <summary>
            /// 备注 
            /// </summary>
            [StringLength(36)]
            public string FNOTE_M { get; set; }
            /// <summary>
            /// BOM版本
            /// </summary>
            public Dictionary<string, string> FBOMID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 批号
            /// </summary>
            public Dictionary<string, string> FLot { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 价格系数
            /// </summary>
            public decimal FPRICECOEFFICIENT_F { get; set; } 
            /// <summary>
            /// 单价
            /// </summary>
            public decimal FPRICE_F { get; set; }
            /// <summary>
            /// 税率%
            /// </summary>
            public decimal FEntryTaxRate { get; set; } 
            /// <summary>
            /// 折扣率
            /// </summary>
            public decimal FDISCOUNTRATE_F { get; set; } 
            /// <summary>
            /// 净价
            /// </summary>
            public decimal FTAXNETPRICE_F { get; set; }
            /// <summary>
            /// 业务流程
            /// </summary>
            public Dictionary<string, string> FBFLowId { get; set; } = new Dictionary<string, string>() {
            { "FName",""}
        };
            /// <summary>
            /// 计价基本数量
            /// </summary>
            public int FPriceBaseQty { get; set; } 
            /// <summary>
            /// 采购单位    (必填项)
            /// </summary>
            public Dictionary<string, string> FPURUNITID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 采购数量
            /// </summary>
            public decimal FPurQty { get; set; } 
            /// <summary>
            /// 采购基本数量
            /// </summary>
            public decimal FPurBaseQty { get; set; }
            /// <summary>
            /// 分录价目表
            /// </summary>
            public Dictionary<string, string> FENTRYPRICELISTID { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            ///  辅助属性
            /// </summary>
            public class FAUXPROPID
            {
                public Dictionary<string, string> FAUXPROPID__FF100002 { get; set; } = new Dictionary<string, string>() {
            { "FNumber",""}
        };
            }
            /// <summary>
            /// 仓库
            /// </summary>
            public Dictionary<string, string> FStockId { get; set; } = new Dictionary<string, string>() {
            { "FNUMBER",""}
        };
            /// <summary>
            /// 单价折扣
            /// </summary>
            public decimal FPriceDiscount { get; set; } 
            /// <summary>
            /// 仓位  
            /// </summary>
            public class FSTOCKLOCID
            {
                public Dictionary<string, string> FSTOCKLOCID__FF100001 { get; set; } = new Dictionary<string, string>() {
            { "FNumber",""}
        };
                public Dictionary<string, string> FSTOCKLOCID__FF100002 { get; set; } = new Dictionary<string, string>() {
            { "FNumber",""}
        };
            }
        }
    }
}
