public async Task <int> UpdateAsync(int id, PackingReceiptModel model) { packingReceiptLogic.UpdateModelAsync(id, model); await this.packingReceiptLogic.UpdatePacking(model, false); await this.packingReceiptLogic.UpdateInventory(model); return(await dbContext.SaveChangesAsync()); }
public async Task <int> CreateAsync(PackingReceiptModel model) { do { model.Code = CodeGenerator.Generate(); }while (dbSet.Any(d => d.Code.Equals(model.Code))); this.packingReceiptLogic.CreateModel(model); await this.packingReceiptLogic.UpdatePacking(model, true); await CreateInventory(model); return(await dbContext.SaveChangesAsync()); }
private async Task CreateInventory(PackingReceiptModel model) { var client = ServiceProvider.GetService <IHttpClientService>(); var uri = string.Format("{0}{1}", APIEndpoint.Inventory, "inventory-documents"); InventoryDocumentViewModel inventoryDoc = new InventoryDocumentViewModel(); inventoryDoc.referenceNo = "RFNO" + " - " + model.Code; string referenceType = string.IsNullOrWhiteSpace(model.StorageName) ? model.StorageName : ""; inventoryDoc.referenceType = $"Penerimaan Packing {referenceType}"; inventoryDoc.remark = " "; inventoryDoc.type = "IN"; inventoryDoc.date = DateTime.UtcNow; inventoryDoc.storageId = (model.StorageId); inventoryDoc.storageCode = (model.StorageCode); inventoryDoc.storageName = model.StorageName; inventoryDoc.items = new List <InventoryDocumentItemViewModel>(); foreach (var item in model.Items) { var data = new InventoryDocumentItemViewModel { productCode = item.ProductCode, productName = item.Product, productId = item.ProductId, remark = item.Remark, quantity = item.Quantity, uomId = item.UomId, stockPlanning = 0, uom = item.Uom }; inventoryDoc.items.Add(data); } var myContentJson = JsonConvert.SerializeObject(inventoryDoc, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); var myContent = new StringContent(myContentJson, Encoding.UTF8, "application/json"); var response = await client.PostAsync(uri, myContent); response.EnsureSuccessStatusCode(); }