private ItemCoreViewModel GetItems(string code, string name, string ro) { string itemUri = "items/finished-goods/readinven"; string queryUri = "?code=" + code + "&ro=" + ro + "&name=" + name; string uri = itemUri + queryUri; IHttpClientService httpClient = (IHttpClientService)serviceProvider.GetService(typeof(IHttpClientService)); var response = httpClient.GetAsync($"{APIEndpoint.Core}{uri}").Result; if (response.IsSuccessStatusCode) { var content = response.Content.ReadAsStringAsync().Result; Dictionary <string, object> result = JsonConvert.DeserializeObject <Dictionary <string, object> >(content); ItemCoreViewModel viewModel = JsonConvert.DeserializeObject <ItemCoreViewModel>(result.GetValueOrDefault("data").ToString()); return(viewModel);//.Where(x => x.dataDestination[0].name == name && x.dataDestination[0].code == code).FirstOrDefault(); //throw new Exception(string.Format("{0}, {1}, {2}", response.StatusCode, response.Content, APIEndpoint.Purchasing)); } else { return(null); } }
public async Task <SPKDocsViewModel> MapToViewModel(List <SPKDocsCsvViewModel> csv, double source, string sourcec, string sourcen, double destination, string destinationc, string destinationn, DateTimeOffset date) { List <SPKDocsItemViewModel> sPKDocsItems = new List <SPKDocsItemViewModel>(); //var itemx = GetItem(); foreach (var i in csv) { var itemx = GetItem(i.code); if (itemx.Count() == 0 || itemx == null) { //item = new ViewModels.NewIntegrationViewModel.ItemViewModel //{ //articleRealizationOrder = i.articleRealizationOrder, //_id = itemx.Id, //code = i.code, //domesticCOGS = Convert.ToDouble(i.domesticCOGS), //domesticSale = Convert.ToDouble(i.domesticSale), //name = i.name, //size = i.size, //uom = i.uom //}, //quantity = Convert.ToDouble(i.quantity), //remark = "" //}); ItemCoreViewModel item = new ItemCoreViewModel { dataDestination = new List <ItemViewModelRead> { new ItemViewModelRead { ArticleRealizationOrder = i.articleRealizationOrder, code = i.code, name = i.name, Size = i.size, Uom = i.uom, } }, DomesticCOGS = Convert.ToDouble(i.domesticCOGS), DomesticRetail = 0, DomesticSale = Convert.ToDouble(i.domesticSale), DomesticWholesale = 0, }; string itemsUri = "items/finished-goods"; var httpClient = (IHttpClientService)serviceProvider.GetService(typeof(IHttpClientService)); var response = await httpClient.PostAsync($"{APIEndpoint.Core}{itemsUri}", new StringContent(JsonConvert.SerializeObject(item).ToString(), Encoding.UTF8, General.JsonMediaType)); response.EnsureSuccessStatusCode(); var item2 = GetItem(i.code); sPKDocsItems.Add(new SPKDocsItemViewModel { item = new ViewModels.NewIntegrationViewModel.ItemViewModel { articleRealizationOrder = i.articleRealizationOrder, _id = item2.Single()._id, code = i.code, domesticCOGS = Convert.ToDouble(i.domesticCOGS), domesticSale = Convert.ToDouble(i.domesticSale), name = i.name, size = i.size, uom = i.uom }, quantity = Convert.ToDouble(i.quantity), sendquantity = Convert.ToDouble(i.quantity), remark = "" }); } else { sPKDocsItems.Add(new SPKDocsItemViewModel { item = new ViewModels.NewIntegrationViewModel.ItemViewModel { articleRealizationOrder = i.articleRealizationOrder, _id = itemx.Single()._id, code = i.code, domesticCOGS = Convert.ToDouble(i.domesticCOGS), domesticSale = Convert.ToDouble(i.domesticSale), name = i.name, size = i.size, uom = i.uom }, quantity = Convert.ToDouble(i.quantity), sendquantity = Convert.ToDouble(i.quantity), remark = "" }); } } SPKDocsViewModel sPKDocsViews = new SPKDocsViewModel { code = GenerateCode("EFR-PK/PBJ"), date = date, packingList = csv.FirstOrDefault().PackingList, password = csv.FirstOrDefault().Password, reference = csv.FirstOrDefault().PackingList, isDistributed = true, isReceived = false, Weight = 0, source = new SourceViewModel { _id = (long)source, code = sourcec, name = sourcen }, destination = new DestinationViewModel { _id = (long)destination, code = destinationc, name = destinationn }, items = sPKDocsItems }; return(sPKDocsViews); }
public async Task <int> Create(SPKDocs model, string username, int clientTimeZoneOffset = 7) { int Created = 0; using (var transaction = this.dbContext.Database.BeginTransaction()) { try { EntityExtension.FlagForCreate(model, username, USER_AGENT); string packingList = GenerateCode("EFR-KB/PLB"); string code = GenerateCode("EFR-PK/PBJ"); string password = String.Join("", GenerateCode(DateTime.Now.ToString("dd")).Split("/")); //(generateCode(("0" + date.getDate()).slice(-2))).split('/').join('') foreach (var i in model.Items) { EntityExtension.FlagForCreate(i, username, USER_AGENT); var inven = GetItems(i.ItemCode, i.ItemName, i.ItemArticleRealizationOrder); if (inven == null) { ItemCoreViewModel item = new ItemCoreViewModel { dataDestination = new List <ItemViewModelRead> { new ItemViewModelRead { ArticleRealizationOrder = i.ItemArticleRealizationOrder, code = i.ItemCode, name = i.ItemName, Remark = i.Remark, Size = i.ItemSize, Uom = i.ItemUom, } }, DomesticCOGS = i.ItemDomesticCOGS, DomesticRetail = i.ItemDomesticRetail, DomesticSale = i.ItemDomesticSale, DomesticWholesale = i.ItemDomesticWholesale }; string itemsUri = "items/finished-goods"; var httpClient = (IHttpClientService)serviceProvider.GetService(typeof(IHttpClientService)); var response = await httpClient.PostAsync($"{APIEndpoint.Core}{itemsUri}", new StringContent(JsonConvert.SerializeObject(item).ToString(), Encoding.UTF8, General.JsonMediaType)); response.EnsureSuccessStatusCode(); } } model.Code = code; model.Date = new DateTimeOffset(model.CreatedUtc); model.PackingList = packingList; model.Password = password; model.IsReceived = false; model.IsDraft = false; model.IsDistributed = false; dbSet.Add(model); Created = await dbContext.SaveChangesAsync(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw new Exception(e.Message); } } return(Created); }