Example #1
0
        /// <summary>
        /// 更新物料小类
        /// </summary>
        /// <param name="category"></param>
        /// <param name="isForce"></param>
        public virtual void ReceiveCategory(ItemSmallCategory category, bool isForce = false)
        {
            try
            {
                using (var trans = RF.TransactionScope(BDEntityDataProvider.ConnectionStringName))
                {
                    // SetInvOrgIdByCorporation(PlatformEnvironment.InvOrgId.ToString());
                    //获取物料小类

                    var existCat = FindCategoryByCode(category.Code) ?? category;

                    //if (ItemExtendsion.GetErpUpdate(existItem) == item.UpdateDate && !isForce) return;
                    existCat.Name = category.Name;
                    existCat      = UpdateOrAddExt(existCat);
                    //ItemExtendsion.SetErpUpdate(item, item.UpdateDate);
                    //category.PersistenceStatus = existCat.PersistenceStatus;

                    //更新或新建物料组

                    //InvOrgIdExtension.SetInvOrgId(category, PlatformEnvironment.InvOrgId);
                    RF.Save(existCat);

                    trans.Complete();
                }
            }
            catch (Exception e)
            {
            }
        }
Example #2
0
        /// <summary>
        /// 更新或新建物料组
        /// </summary>
        /// <param name="category">物料组</param>
        /// <returns></returns>
        private ItemSmallCategory UpdateOrAdd(ItemSmallCategory category)
        {
            var existCategory = FindCategoryByCode(category.Code);

            if (existCategory != null)
            {
                existCategory.Name = category.Name;
                existCategory.Code = category.Code;
            }
            else
            {
                existCategory = category;
            }

            var existMidCategory = CreateMediumCategory(category);

            var existBigCategory = CreateLargeCategory(category);

            InvOrgIdExtension.SetInvOrgId(existBigCategory, PlatformEnvironment.InvOrgId);
            RF.Save(existBigCategory);

            InvOrgIdExtension.SetInvOrgId(existMidCategory, PlatformEnvironment.InvOrgId);
            existMidCategory.LargeCategoryId = existBigCategory.Id;
            RF.Save(existMidCategory);

            InvOrgIdExtension.SetInvOrgId(existCategory, PlatformEnvironment.InvOrgId);
            existCategory.MediumCategoryId = existMidCategory.Id;
            RF.Save(existCategory);

            return(existCategory);
        }
Example #3
0
        private ItemSmallCategory UpdateOrAddExt(ItemSmallCategory category)
        {
            var existMidCategory = CreateMediumCategory(category);

            var existBigCategory = CreateLargeCategory(category);

            InvOrgIdExtension.SetInvOrgId(existBigCategory, PlatformEnvironment.InvOrgId);
            RF.Save(existBigCategory);

            InvOrgIdExtension.SetInvOrgId(existMidCategory, PlatformEnvironment.InvOrgId);
            existMidCategory.LargeCategoryId = existBigCategory.Id;
            RF.Save(existMidCategory);

            category.MediumCategoryId = existMidCategory.Id;

            return(category);
        }
Example #4
0
        private static List <ItemSmallCategory> ERP_MES_Category(Hashtable import)
        {
            RFC rfc = new RFC(ConfigurationManager.AppSettings["sapServer"].ToString());
            //RFC rfc = new RFC("SAPTest");
            var lst = new List <ItemSmallCategory>();
            //RFC调用函数名
            string funcName = "ZWMS_T023";
            //传输传给RFC函数的DataSet
            DataSet ids = new DataSet();
            //构建RFC传入表DataTable

            //返回数据的DataSet框架
            DataSet ods = new DataSet();
            //构建Export参数DataTable
            DataTable export = new DataTable();

            export.TableName = "Export";
            export.Columns.Add(new DataColumn("RTMSG", typeof(string)));//消息文本
            ods.Tables.Add(export);
            //构建RFC传出表DataTable
            DataTable odt1 = new DataTable();

            odt1.TableName = "T_TAB";
            odt1.Columns.Add(new DataColumn("MATKL", typeof(string))); //物料组代码
            odt1.Columns.Add(new DataColumn("WGBEZ", typeof(string))); //物料组描述
            ods.Tables.Add(odt1);

            //执行RFC函数
            bool ret = rfc.DownloadByRFC(funcName, import, ids, ref ods);
            //根据RFC执行后返回的数据处理业务逻辑
            DataTable dt = ods.Tables["T_TAB"];

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                string code = dt.Rows[i]["MATKL"].ToString();
                string name = dt.Rows[i]["WGBEZ"].ToString();
                name = string.IsNullOrEmpty(name) ? code : name;
                var cat = new ItemSmallCategory {
                    Code = code, Name = name, MediumCategory = new ItemMediumCategory {
                        Code = code, Name = name
                    }
                };
                lst.Add(cat);
            }
            return(lst);
        }
Example #5
0
        /// <summary>
        /// 通过小类创建中类
        /// </summary>
        /// <param name="category"></param>
        /// <returns></returns>
        private ItemMediumCategory CreateMediumCategory(ItemSmallCategory category)
        {
            var midCategory = new ItemMediumCategory {
                Code = category.Code, Name = category.Name
            };
            var existMidCategory = FindMediumCategoryByCode(category.Code);

            if (existMidCategory != null)
            {
                existMidCategory.Name = midCategory.Name;
                existMidCategory.Code = midCategory.Code;
            }
            else
            {
                existMidCategory = midCategory;
            }
            return(existMidCategory);
        }
Example #6
0
        /// <summary>
        /// 通过小类创建大类
        /// </summary>
        /// <param name="category"></param>
        /// <returns></returns>
        private ItemLargeCategory CreateLargeCategory(ItemSmallCategory category)
        {
            var bigCategory = new ItemLargeCategory {
                Code = category.Code, Name = category.Name
            };
            var existBigCategory = FindLargeCategoryByCode(category.Code);

            if (existBigCategory != null)
            {
                existBigCategory.Name = bigCategory.Name;
                existBigCategory.Code = bigCategory.Code;
            }
            else
            {
                existBigCategory = bigCategory;
            }
            return(existBigCategory);
        }
Example #7
0
        public virtual void SaveOrUpdateItem(Item item, string itemCode)
        {
            try
            {
                //if (factoryCode.IsNullOrWhiteSpace()) throw new ArgumentNullException("factoryCode");
                //SetInvOrgIdByFactoryCode(factoryCode);
                using (var trans = RF.TransactionScope(BDEntityDataProvider.ConnectionStringName))
                {
                    //获取物料
                    var existItem = DomainControllerFactory.Create <ItemController>().GetByCode(item.Code) ?? item;

                    //if (ItemExtendsion.GetErpUpdate(existItem) == item.UpdateDate && !isForce) return;
                    //ItemExtendsion.SetErpUpdate(item, item.UpdateDate);
                    //existItem.PersistenceStatus = item.PersistenceStatus;

                    existItem.DataSource      = EumDataSource.ERP;
                    existItem.Name            = string.IsNullOrEmpty(item.Name) ? item.Code : item.Name;
                    existItem.Description     = item.Description;
                    existItem.MeasurementUnit = item.MeasurementUnit;
                    existItem.ItemType        = item.ItemType;
                    existItem.State           = item.State;
                    existItem.CustomerType    = item.CustomerType;
                    existItem.BaseModel       = item.BaseModel;
                    existItem.InerCode        = item.InerCode;
                    existItem.ReplaceItem     = item.ReplaceItem;
                    existItem.MdmItemCode     = item.MdmItemCode;
                    existItem.SmallCategory   = item.SmallCategory;
                    //物料关联物料组,并保存
                    ItemSmallCategory existCategory = UpdateOrAdd(item.Category);
                    existItem.CategoryId = existCategory.Id;
                    //InvOrgIdExtension.SetInvOrgId(item, PlatformEnvironment.InvOrgId);
                    RF.Save(existItem);

                    trans.Complete();
                }
            }
            catch (Exception e)
            {
            }
        }