Advertisement
FoxTuGa

AX AIF Update EcoResProduct

May 24th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.99 KB | None | 0 0
  1. public async Task<string> UpdateItem(ItemModel model, string CompanyCode)
  2. {
  3.     bool _creating = false;
  4.     if (model.ERPCode == null)
  5.     {
  6.         _creating = true;
  7.         model.ERPCode = model.Code;
  8.     }
  9.  
  10.     if (_creating)
  11.     {
  12.         EcoResProductService.CallContext EcoResProductCallContext = new EcoResProductService.CallContext();
  13.         EcoResProductCallContext.Company = CompanyCode;
  14.         EcoResProductCallContext.MessageId = Guid.NewGuid().ToString();
  15.  
  16.         AxdEntity_Product_EcoResProduct[] ecoResProduct = new AxdEntity_Product_EcoResProduct[1];
  17.         ecoResProduct[0] = new AxdEntity_Product_EcoResDistinctProduct();
  18.         ecoResProduct[0].ProductType = model.Type == ItemTypeEnum.Product ? AxdEnum_EcoResProductType.Item : AxdEnum_EcoResProductType.Service;
  19.         ecoResProduct[0].SearchName = model.ERPCode;
  20.         ecoResProduct[0].DisplayProductNumber = model.ERPCode;
  21.  
  22.         AxdEntity_Translation prodTranslation = new AxdEntity_Translation();
  23.         prodTranslation.Name = model.Name;
  24.         prodTranslation.LanguageId = model.DefaultLanguage;
  25.  
  26.         ecoResProduct[0].Translation = new[] { prodTranslation };
  27.  
  28.  
  29.         AxdEntity_Identifier identifier = new AxdEntity_Identifier();
  30.         identifier.ProductNumber = model.ERPCode;
  31.  
  32.         ecoResProduct[0].Identifier = new AxdEntity_Identifier[1];
  33.         ecoResProduct[0].Identifier[0] = identifier;
  34.  
  35.  
  36.         AxdEcoResProduct product = new AxdEcoResProduct();
  37.         product.Product = ecoResProduct;
  38.  
  39.  
  40.         EcoResProductService.EntityKey[] keys = this.clientEcoResProduct.create(EcoResProductCallContext, product);
  41.     }
  42.  
  43.     ItemsService.CallContext ItemsCallContext = new ItemsService.CallContext();
  44.     ItemsCallContext.Company = CompanyCode;
  45.     ItemsCallContext.MessageId = Guid.NewGuid().ToString();
  46.  
  47.     AxdEntity_InventTable[] inventTable = new AxdEntity_InventTable[1];
  48.     inventTable[0] = new AxdEntity_InventTable();
  49.     inventTable[0].ItemId = model.ERPCode;
  50.     inventTable[0].NameAlias = model.Name;
  51.     inventTable[0].Product = model.ERPCode;
  52.  
  53.     //INVENTDIMID
  54.     inventTable[0].Purch = new AxdEntity_Purch[] {
  55.         new AxdEntity_Purch() {
  56.             Price = model.Price,
  57.             PriceSpecified = true,
  58.             UnitId = model.UOM_ERPCode,
  59.             ItemId = inventTable[0].ItemId
  60.         }
  61.     };
  62.  
  63.     AxdItem items = new AxdItem();
  64.     items.InventTable = inventTable;
  65.  
  66.     if (_creating)
  67.     {
  68.         this.clientItems.create(ItemsCallContext, items);
  69.     }
  70.     else
  71.     {
  72.         var keys = new ItemsService.EntityKey[] {
  73.             new ItemsService.EntityKey() {
  74.                 KeyData = new ItemsService.KeyField[] {
  75.                     new ItemsService.KeyField() {
  76.                         Field = "DisplayProductNumber",
  77.                         Value = model.ERPCode
  78.                     }
  79.                 }
  80.             }
  81.         };
  82.  
  83.         this.clientItems.update(ItemsCallContext, keys, items);
  84.     }
  85.  
  86.     return model.ERPCode;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement