/// <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) { } }
/// <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); }
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); }
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); }
/// <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); }
/// <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); }
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) { } }