コード例 #1
0
        /// <summary>
        /// 创建删除子件BOM服务的DTO
        /// </summary>
        /// <param name="_bom"></param>
        /// <param name="_beBOM"></param>
        /// <returns></returns>
        private BOMMasterDTO4CreateSv DelBOMPartDTO(BOMMaster _bom, UFIDA.U9.CBO.MFG.BOM.BOMMaster _beBOM)
        {
            BOMMasterDTO4CreateSv dtoMasterDelPart = null;

            foreach (var beBOMPart in _beBOM.BOMComponents)
            {
                bool bCompIsExists = false;
                foreach (var bompart in _bom.Components)
                {
                    //当传入的BOM子件中没有该物料编码,则从BOM中删除此子件
                    if (bompart.ItemCode == beBOMPart.ItemMaster.Code)
                    {
                        bCompIsExists = true;
                        continue;
                    }
                }

                if (!bCompIsExists)
                {
                    if (dtoMasterDelPart == null)
                    {
                        dtoMasterDelPart = PubMethod.GetDataOfBOMMaster(_beBOM);
                        dtoMasterDelPart.BOMComponents.Clear();
                    }

                    //检索出原始BOM中存在的子件加入到需删除子件服务的dtoMasterDelPart中
                    UFIDA.U9.CBO.MFG.BOM.BOMComponent.EntityList elstBOMComponent = UFIDA.U9.CBO.MFG.BOM.BOMComponent.Finder.FindAll("BOMMaster=@BOMID and ItemMaster.Code=@ItemCode ",
                                                                                                                                     new OqlParam[] { new OqlParam(_beBOM.ID), new OqlParam(beBOMPart.ItemMaster.Code) });
                    if (elstBOMComponent != null && elstBOMComponent.Count > 0)
                    {
                        for (int i = 0; i < elstBOMComponent.Count; i++)
                        {
                            UFIDA.U9.CBO.MFG.BOM.BOMComponent beBOMComponent = elstBOMComponent[i];
                            BOMComponentDTO4CreateSv          dtoComponent   = PubMethod.GetDataOfBOMComponent(beBOMComponent);
                            if (dtoMasterDelPart.BOMComponents.Contains(dtoComponent))
                            {
                                continue;
                            }
                            else
                            {
                                dtoMasterDelPart.BOMComponents.Add(dtoComponent);
                            }
                        }
                    }
                }
            }

            return(dtoMasterDelPart);
        }
コード例 #2
0
        private void Do_Notify(object[] args)
        {
            #region 从事件参数中取得当前业务实体

            if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent))
            {
                return;
            }
            BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey;
            if (key == null)
            {
                return;
            }
            UFIDA.U9.CBO.MFG.BOM.BOMMaster holder = key.GetEntity() as UFIDA.U9.CBO.MFG.BOM.BOMMaster;
            if (holder == null)
            {
                return;
            }

            #endregion
        }
コード例 #3
0
        public override object Do(object obj)
        {
            CreateBOMSV bpObj = (CreateBOMSV)obj;


            StringBuilder strbResult = new StringBuilder();

            #region 基础校验&提前检查
            if (string.IsNullOrEmpty(bpObj.BOMInfo))
            {
                logger.Error(string.Format("创建BOM失败:传入参数BOMInfo为空。"));
                strbResult.AppendFormat(string.Format("<ResultInfo error={0} />", "创建BOM失败:传入参数BOMInfo为空。"));
                return(strbResult.ToString());
            }
            BOMInfo     bominfoAll = new BOMInfo();
            ContextInfo cxtInfo    = new ContextInfo();
            try
            {
                bominfoAll = XmlSerializerHelper.XmlDeserialize <BOMInfo>(bpObj.BOMInfo, Encoding.Unicode);
                cxtInfo    = XmlSerializerHelper.XmlDeserialize <ContextInfo>(bpObj.ContextInfo, Encoding.Unicode);
            }
            catch (Exception ex)
            {
                logger.Error(string.Format("反序列化BOMInfo失败:{0}", bpObj.BOMInfo));
                strbResult.AppendFormat(string.Format("<ResultInfo error={0} />", string.Format("反序列化BOMInfo失败:{0}", bpObj.BOMInfo)));
                return(strbResult.ToString());
            }


            if (bominfoAll.Masters.Count <= 0)
            {
                logger.Error(string.Format("传入的BOMInfo中没有BOM母件信息"));
                strbResult.AppendFormat(string.Format("<ResultInfo error={0} />", "传入的BOMInfo中没有BOM母件信息"));
                return(strbResult.ToString());
            }

            Organization beOrgContext = Organization.FindByCode(cxtInfo.OrgCode);//原历史版本
            #endregion

            ImportBOMSv svModify = new ImportBOMSv();
            List <BOMMasterDTO4CreateSv> lstBOMMasterModifyDTO = new List <BOMMasterDTO4CreateSv>();
            svModify.IsThrowEx = true;
            CreateBOMSv svCreate = new CreateBOMSv();
            List <BOMMasterDTO4CreateSv> lstBOMMasterCreateDTO = new List <BOMMasterDTO4CreateSv>();
            svCreate.IsThrowEx = true;
            DeletePartBOMSv svDelPart = new DeletePartBOMSv();
            List <BOMMasterDTO4CreateSv> lstBOMMasterDelPartDTO = new List <BOMMasterDTO4CreateSv>();
            svDelPart.IsThrowEx = true;

            User       beUser     = User.Finder.FindByID(cxtInfo.UserID);
            ContextDTO dtoContext = new ContextDTO();
            dtoContext.CultureName = cxtInfo.CultureName;    // "zh-CN";
            dtoContext.UserCode    = beUser.Code;            //默认:系统管理员admin
            dtoContext.EntCode     = cxtInfo.EnterpriseCode; // "van0323";//测试默认公司:van0323.正式使用请根据需要指定。
            dtoContext.OrgCode     = cxtInfo.OrgCode;        //

            svCreate.ContextDTO  = dtoContext;
            svModify.ContextDTO  = dtoContext;
            svDelPart.ContextDTO = dtoContext;

            Int64 l = 1;
            try
            {
                foreach (var bomMaster in bominfoAll.Masters)
                {
                    #region 校验从PLM传过来的组织、物料是否有效
                    if (ValidateNullValue(bomMaster, beOrgContext))
                    {
                        continue;
                    }
                    ItemMaster beItemMaster = ItemMaster.Finder.Find("Code=@code and Org=@org  and Effective.IsEffective=1 and Effective.DisableDate >= @nowdate1 and Effective.EffectiveDate <= @nowdate2",
                                                                     new OqlParam[] { new OqlParam(bomMaster.ItemMasterCode), new OqlParam(beOrgContext.ID), new OqlParam(DateTime.Now.Date.ToShortDateString()),
                                                                                      new OqlParam(DateTime.Now.Date.ToShortDateString()), new OqlParam(DateTime.Now.Date.ToShortDateString()) });

                    if (beItemMaster == null)
                    {
                        strbError.AppendLine(string.Format(strErrorItem, bomMaster.ItemMasterCode, "", string.Format("BOMInfo中第{0}项物料编码{1}在组织{2}无法找到!",
                                                                                                                     l.ToString(), bomMaster.ItemMasterCode, beOrgContext.Code)));
                        continue;
                    }
                    if (!beItemMaster.IsBOMEnable)
                    {
                        strbError.AppendLine(string.Format(strErrorItem, bomMaster.ItemMasterCode, "", "母件不允许建BOM。"));
                        continue;
                    }
                    //加入料品状态必须为“已核准”的条件:State=2
                    if (beItemMaster.State != ItemStateEnum.Verified)
                    {
                        strbError.AppendLine(string.Format(strErrorItem, bomMaster.ItemMasterCode, "", string.Format("BOMInfo中第{0}项物料编码{1}料品状态不是“已核准状态”!",
                                                                                                                     l.ToString(), bomMaster.ItemMasterCode)));
                        continue;
                    }
                    bool bFor = false;
                    foreach (var bomComp in bomMaster.Components)
                    {
                        ItemMaster beItemComponent = ItemMaster.Finder.Find("Code=@code and Org=@org and Effective.IsEffective=1 and Effective.DisableDate >= @nowdate1 and Effective.EffectiveDate <= @nowdate2",
                                                                            new OqlParam[] { new OqlParam(bomComp.ItemCode), new OqlParam(beOrgContext.ID),
                                                                                             new OqlParam(DateTime.Now.Date.ToShortDateString()), new OqlParam(DateTime.Now.Date.ToShortDateString()) });
                        if (beItemComponent == null)
                        {
                            strbError.AppendLine(string.Format(strErrorItem, bomMaster.ItemMasterCode, bomComp.ItemCode, string.Format("第{0}项子件物料编码ItemCode{1}在组织{2}无法找到!",
                                                                                                                                       l.ToString(), bomComp.ItemCode, beOrgContext.Code)));
                            bFor = true;//当子项物料无法找到异常时,上级的for循环跳转到下一条记录。
                        }
                        if (beItemComponent.State != ItemStateEnum.Verified)
                        {
                            strbError.AppendLine(string.Format(strErrorItem, bomMaster.ItemMasterCode, "", string.Format("第{0}项子件物料编码{1}料品状态不是“已核准状态”!",
                                                                                                                         l.ToString(), bomComp.ItemCode)));
                            bFor = true;
                        }
                    }
                    //当子项物料无法找到异常时,上级的for循环跳转到下一条记录。
                    if (bFor)
                    {
                        continue;
                    }
                    #endregion

                    #region 校验传入的BOM是否存在.如果不存在,则转入到BOM创建服务CreateBOMSv中。
                    //检查上下文组织下料号、BOM种类(自制/委外)、版本号是否存在。一旦存在,则使用修改BOM服务。
                    UFIDA.U9.CBO.MFG.BOM.BOMMaster beBOMMaster = UFIDA.U9.CBO.MFG.BOM.BOMMaster.Finder.Find("Org=@org and ItemMaster=@item and BomType = @bomtype and BOMVersionCode = @bomVersion ",
                                                                                                            new OqlParam[] { new OqlParam(beOrgContext.ID), new OqlParam(beItemMaster.ID), new OqlParam(bomMaster.BOMType), new OqlParam(bomMaster.BOMVersionCode) });
                    if (beBOMMaster == null)
                    {
                        BOMMasterDTO4CreateSv dtoMasterCreate = CreateBOMMasterDTO(bomMaster, beOrgContext);
                        if (dtoMasterCreate != null)
                        {
                            lstBOMMasterCreateDTO.Add(dtoMasterCreate);
                        }
                        continue;
                    }
                    else
                    {
                        #region 若存在,则转入到BOM修改服务ImportBOMSv中。
                        BOMMasterDTO4CreateSv dtoMasterModify = ModifyBOMMasterDTO(bomMaster, beBOMMaster, beOrgContext);
                        if (dtoMasterModify != null)
                        {
                            lstBOMMasterModifyDTO.Add(dtoMasterModify);
                        }
                        #endregion
                    }
                    #endregion
                    #region 若存在,检查是否存在需要删除的子件加入到DeleteBOMPartSv中。
                    BOMMasterDTO4CreateSv dtoMasterDelPart = DelBOMPartDTO(bomMaster, beBOMMaster);
                    if (dtoMasterDelPart != null)
                    {
                        lstBOMMasterDelPartDTO.Add(dtoMasterDelPart);
                    }
                    #endregion

                    l++;
                }
                //}

                if (lstBOMMasterCreateDTO.Count > 0)
                {
                    svCreate.BOMMasterDTOList = lstBOMMasterCreateDTO;
                    svCreate.ContextDTO       = dtoContext;
                    List <LogDTO4CreateSv> lstBOMLog = new List <LogDTO4CreateSv>();
                    lstBOMLog = svCreate.Do();

                    foreach (var itemLog in lstBOMLog)
                    {
                        if (itemLog.IsOperationSuccess)
                        {
                            #region 标准BOMAPI目前不提供成本卷积和子件收货审核属性赋值.这里补充处理
                            string strUpdateIsCostRoll = string.Format("update vv set vv.IsCostRoll = 1 from CBO_BOMMaster vv where vv.ID = {0} and vv.BOMType = 0",
                                                                       itemLog.BOMMasterDTO.BOMMasterID.ToString());
                            string strUpdateRCVApproved = string.Format("update uu set uu.RCVApproved = 1 from CBO_BOMComponent uu "
                                                                        + "join CBO_BOMMaster vv on vv.ID = uu.BOMMaster where vv.ID = {0} and vv.BOMType = 1",
                                                                        itemLog.BOMMasterDTO.BOMMasterID.ToString());
                            //DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), strUpdateIsCostRoll, null);
                            DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), strUpdateRCVApproved, null);
                            #endregion
                            strbSuccess.AppendLine(string.Format(strInfoItem, itemLog.BOMMasterDTO.ItemMaster.Code));
                        }
                        else
                        {
                            strbError.AppendLine(string.Format(strErrorItem, itemLog.BOMMasterDTO.ItemMaster.Code, "",
                                                               string.Format("U9系统创建BOM母件{0}失败:{1}.", itemLog.BOMMasterDTO.ItemMaster.Code, itemLog.ErrorMsg)));
                        }
                    }
                }
                if (lstBOMMasterModifyDTO.Count > 0)
                {
                    svModify.BOMMasterDTOList = lstBOMMasterModifyDTO;
                    svModify.ContextDTO       = dtoContext;
                    List <LogDTO4CreateSv> lstBOMLog = new List <LogDTO4CreateSv>();
                    lstBOMLog = svModify.Do();

                    foreach (var itemLog in lstBOMLog)
                    {
                        if (itemLog.IsOperationSuccess)
                        {
                            strbSuccess.AppendLine(string.Format(strInfoItem, itemLog.BOMMasterDTO.ItemMaster.Code));
                        }
                        else
                        {
                            strbError.AppendLine(string.Format(strErrorItem, itemLog.BOMMasterDTO.ItemMaster.Code, "",
                                                               string.Format("U9系统修改BOM母件{0}失败:{1}.", itemLog.BOMMasterDTO.ItemMaster.Code, itemLog.ErrorMsg)));
                        }
                    }
                }
                if (lstBOMMasterDelPartDTO.Count > 0)
                {
                    svDelPart.BOMMasterDTOList = lstBOMMasterDelPartDTO;
                    svDelPart.ContextDTO       = dtoContext;
                    List <LogDTO4CreateSv> lstBOMLog = new List <LogDTO4CreateSv>();
                    svDelPart.Do();

                    //string strBOM = "<BOM ItemMasterCode=\"{0}\" Description=\"删除子件导入成功!\"/>";
                    //foreach (var item in lstBOMMasterDelPartDTO)
                    //{
                    //    strbSuccess.AppendLine(string.Format(strBOM, item.ItemMaster.Code));
                    //}
                }
                strbResult.AppendLine("<ResultInfo>");
                strbResult.AppendLine(strbError.ToString());
                strbResult.AppendLine(strbSuccess.ToString());
                strbResult.AppendLine("</ResultInfo>");
            }
            catch (Exception ex)
            {
                strbResult.AppendLine(string.Format("<ResultInfo error=\"{0}\">", ex.Message));
                strbResult.AppendLine(strbError.ToString());
                strbResult.AppendLine("</ResultInfo>");
            }
            return(strbResult.ToString());
        }
コード例 #4
0
        /// <summary>
        /// 创建修改BOM服务的DTO
        /// </summary>
        /// <param name="_bom"></param>
        /// <param name="_beBOM"></param>
        /// <returns></returns>
        private BOMMasterDTO4CreateSv ModifyBOMMasterDTO(BOMMaster _bom, UFIDA.U9.CBO.MFG.BOM.BOMMaster _beBOM, Organization _beOrgContext)
        {
            BOMMasterDTO4CreateSv dtoMasterModify = PubMethod.GetDataOfBOMMaster(_beBOM);

            try
            {
                //清除系统原有子件清单
                dtoMasterModify.BOMComponents.Clear();
                int iSeq = PubMethod.GetNextMaxSequence(_beBOM);
                //加入待修改的子件清单
                bool isAllBomCompOK = true;
                foreach (var bomComp in _bom.Components)
                {
                    UFIDA.U9.CBO.MFG.BOM.BOMComponent.EntityList elstBOMComponent = UFIDA.U9.CBO.MFG.BOM.BOMComponent.Finder.FindAll("BOMMaster=@BOMID and ItemMaster.Code=@ItemCode ",
                                                                                                                                     new OqlParam[] { new OqlParam(_beBOM.ID), new OqlParam(bomComp.ItemCode) });
                    //在系统后台根据BOM主ID和子件的物料编码检索,如果有此子件则由GetDataOfBOMComponent直接创建子件DTO添加dtoMasterModify。
                    if (elstBOMComponent != null && elstBOMComponent.Count > 0)
                    {
                        //处理母件下有相同的子件物料的明细行
                        for (int i = 0; i < elstBOMComponent.Count; i++)
                        {
                            UFIDA.U9.CBO.MFG.BOM.BOMComponent beBOMComponent = elstBOMComponent[i];
                            BOMComponentDTO4CreateSv          dtoComponent   = PubMethod.GetDataOfBOMComponent(beBOMComponent);

                            if (dtoMasterModify.BOMComponents.Contains(dtoComponent))
                            {
                                continue;
                            }
                            else
                            {
                                //修改内容
                                dtoComponent.UsageQty  = bomComp.UsageQty;  //用量
                                dtoComponent.Scrap     = bomComp.Scrap;     //损耗率
                                dtoComponent.ParentQty = bomComp.ParentQty; //母件底数
                                dtoComponent.Remark    = bomComp.Remark;    //备注

                                if (!String.IsNullOrEmpty(bomComp.CompProject))
                                {
                                    Project itemProject = Project.FindByCode(bomComp.CompProject);
                                    if (itemProject != null)
                                    {
                                        dtoComponent.CompProject      = new CommonArchiveDataDTO();
                                        dtoComponent.CompProject.ID   = itemProject.ID;
                                        dtoComponent.CompProject.Code = itemProject.Code;
                                        dtoComponent.CompProject.Name = itemProject.Name;
                                    }
                                }
                                else
                                {
                                    //原接口未对项目置空的处理(UFIDA.U9.ISV.MFG.BOM.PubMethod.UpdateBOMComponent)
                                    string strUpdateVersion = string.Format("update uu set uu.CompProject = null from CBO_BOMComponent uu "
                                                                            + "where uu.ID = {0}", beBOMComponent.ID.ToString());
                                    DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), strUpdateVersion, null);

                                    //dtoComponent.CompProject.ID = 1L;//
                                    //dtoComponent.CompProject.Code = string.Empty;
                                    //dtoComponent.CompProject.Name = string.Empty;
                                    //dtoComponent.CompProject = new CommonArchiveDataDTO();
                                }

                                dtoMasterModify.BOMComponents.Add(dtoComponent);
                                break;
                            }
                        }
                    }
                    else
                    {
                        #region 新增子件
                        BOMComponentDTO4CreateSv dtoComponent = CreateBOMComponentDTO(bomComp, iSeq, _bom, _beBOM.Org);
                        if (dtoComponent == null)
                        {
                            isAllBomCompOK = false;
                        }
                        dtoMasterModify.BOMComponents.Add(dtoComponent);
                        iSeq += 10;
                        #endregion
                    }
                }
                if (!isAllBomCompOK)
                {
                    dtoMasterModify = null;
                }
            }
            catch (Exception ex)
            {
                strbError.AppendLine(string.Format(strErrorItem, _bom.ItemMasterCode, "", ex.Message));
                dtoMasterModify = null;
            }
            return(dtoMasterModify);
        }
コード例 #5
0
        /// <summary>
        /// 获取料品的BOM清单
        /// </summary>
        /// <param name="soLine">销售订单行实体</param>
        /// <param name="itemCode">母件料号</param>
        /// <param name="date">日期</param>
        /// <param name="uom">母件的生产单位</param>
        /// <param name="orderByQtyTU">销售数量</param>
        /// <param name="saleUom">销售单位</param>
        /// <param name="demandQty">需求数量</param>
        /// <param name="entityList">随单BOM-DTO集合</param>
        /// <param name="i">层级</param>
        private void GetBomMaster(UFIDA.U9.SM.SO.SOLine soLine, string itemCode, DateTime date, long uom, decimal orderByQtyTU, UOM saleUom, decimal demandQty, List <UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHeadDTO> entityList, string i)
        {
            string strWhere = "ItemMaster.Code=@ItemCode and Org.Code=@Org and Status=2 and @Date >=EffectiveDate and @Date <=DisableDate and ProductUOM=@UOM";

            OqlParam[] appOqlparm = new OqlParam[] {
                new OqlParam("ItemCode", itemCode),
                new OqlParam("Org", "J001"),
                new OqlParam("Date", date),
                new OqlParam("UOM", uom)
            };
            UFIDA.U9.CBO.MFG.BOM.BOMMaster bom = UFIDA.U9.CBO.MFG.BOM.BOMMaster.Finder.Find(strWhere, appOqlparm);
            if (bom != null)
            {
                int n = 0;
                foreach (UFIDA.U9.CBO.MFG.BOM.BOMComponent bomCom in bom.BOMComponents)
                {
                    n++;
                    UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHeadDTO dto = new OrderBomBE.OrderBomHeadDTO();
                    dto.Tier = i.ToString() + "." + n.ToString();

                    #region 赋值
                    UFIDA.U9.CBO.SCM.Item.ItemMaster subItemMaster = GetItemMaster(bomCom.ItemMaster.Code);//子件
                    dto.SubKey     = subItemMaster;
                    dto.SubkeyType = subItemMaster.StockCategory;
                    //如果子件的库存分类为工具类子件,则自动勾选确认状态
                    if (subItemMaster.StockCategory != null && subItemMaster.StockCategory.Code == "02")
                    {
                        dto.ArrirmState = true;
                    }
                    dto.OrderHead  = soLine.SO;
                    dto.OrderLine  = soLine;
                    dto.ParentPart = GetItemMaster(bom.ItemMaster.Code);//母件
                    dto.BomMaster  = bom;
                    dto.BomCompont = bomCom;
                    dto.Dosage     = bomCom.UsageQty;                                                  //用量
                    dto.DosageUnit = bomCom.IssueUOM;                                                  //用量单位
                    dto.SellNumber = orderByQtyTU;                                                     //销售数量
                    dto.SellUnit   = saleUom;                                                          //销售单位
                    dto.Loss       = bomCom.FixedScrap;                                                //固定损耗

                    dto.NeedNumber   = Math.Ceiling(demandQty * (bomCom.UsageQty / bomCom.ParentQty)); //需求数量=母件的需求数量*子件用量/母件底数
                    dto.SourceType   = AllEnumBE.SourceTypeEnum.HandWork;
                    dto.OrderBomLine = new List <OrderBomBE.OrderBomLineDTO>();
                    if (subItemMaster.PurchaseInfo.Buyer != null)
                    {
                        OrderBomBE.OrderBomLineDTO lineDto = new OrderBomBE.OrderBomLineDTO();
                        lineDto.SalesMan = subItemMaster.PurchaseInfo.Buyer;
                        if (subItemMaster.PurchaseInfo.Buyer.Dept != null)
                        {
                            lineDto.Department = subItemMaster.PurchaseInfo.Buyer.Dept;
                        }
                        lineDto.SubKey         = subItemMaster;
                        lineDto.NeedNumber     = dto.NeedNumber;
                        lineDto.NeedUom        = dto.DosageUnit;
                        lineDto.ProcurementQty = dto.NeedNumber;
                        dto.OrderBomLine.Add(lineDto);
                    }
                    entityList.Add(dto);
                    #endregion

                    GetBomMaster(soLine, bomCom.ItemMaster.Code, date, bomCom.IssueUOM.ID, orderByQtyTU, saleUom, dto.NeedNumber, entityList, dto.Tier);
                }
            }
        }
コード例 #6
0
 /// <summary>
 /// Constructor with Full Argument
 /// </summary>
 public OrderBomHeadDTO(System.Int64 iD, System.DateTime createdOn, System.String createdBy, System.DateTime modifiedOn, System.String modifiedBy, System.Int64 sysVersion, UFIDA.U9.CBO.MFG.BOM.BOMMaster bomMaster, UFIDA.U9.CBO.MFG.BOM.BOMComponent bomCompont, UFIDA.U9.CBO.SCM.Item.ItemMaster parentPart, UFIDA.U9.CBO.SCM.Item.ItemMaster subKey, System.Decimal dosage, UFIDA.U9.Base.UOM.UOM dosageUnit, System.Decimal sellNumber, UFIDA.U9.Base.UOM.UOM sellUnit, System.Decimal needNumber, UFIDA.U9.SM.SO.SOLine orderLine, UFIDA.U9.SM.SO.SO orderHead, System.Int32 orderLineRow, UFIDA.U9.Cust.GS.FT.AllEnumBE.SourceTypeEnum sourceType, System.String remark, UFIDA.U9.CBO.HR.Operator.Operators salesMan, UFIDA.U9.CBO.MFG.Enums.SupplyTypeEnum supplierType, System.String tier, System.Decimal loss, System.Boolean arrirmState, List <UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomLineDTO> orderBomLine, UFIDA.U9.Base.FlexField.DescFlexField.DescFlexSegments descflexfield, UFIDA.U9.CBO.SCM.Item.ItemCategory subkeyType)
 {
     this.ID            = iD;
     this.CreatedOn     = createdOn;
     this.CreatedBy     = createdBy;
     this.ModifiedOn    = modifiedOn;
     this.ModifiedBy    = modifiedBy;
     this.SysVersion    = sysVersion;
     this.BomMaster     = bomMaster;
     this.BomCompont    = bomCompont;
     this.ParentPart    = parentPart;
     this.SubKey        = subKey;
     this.Dosage        = dosage;
     this.DosageUnit    = dosageUnit;
     this.SellNumber    = sellNumber;
     this.SellUnit      = sellUnit;
     this.NeedNumber    = needNumber;
     this.OrderLine     = orderLine;
     this.OrderHead     = orderHead;
     this.OrderLineRow  = orderLineRow;
     this.SourceType    = sourceType;
     this.Remark        = remark;
     this.SalesMan      = salesMan;
     this.SupplierType  = supplierType;
     this.Tier          = tier;
     this.Loss          = loss;
     this.ArrirmState   = arrirmState;
     this.OrderBomLine  = orderBomLine;
     this.Descflexfield = descflexfield;
     this.SubkeyType    = subkeyType;
 }