/// <summary> /// Purchase Order Submitted /// </summary> /// <param name=""></param> private async Task PurchaseOrderSubmitted(TransactionQueueInbound transaction) { PurchaseOrderUpdatePayload payload = JsonConvert.DeserializeObject <PurchaseOrderUpdatePayload>(transaction.Payload); PurchaseOrder purchaseOrder = new PurchaseOrder(); purchaseOrder.AccountId = payload.AccountId; purchaseOrder.AddressLine1 = payload.AddressLine1; purchaseOrder.AddressLine2 = payload.AddressLine2; purchaseOrder.City = payload.City; purchaseOrder.Region = payload.Region; purchaseOrder.PostalCode = payload.PostalCode; purchaseOrder.SupplierName = payload.SupplierName; purchaseOrder.PurchaseOrderStatusId = PurchaseOrderStatuses.Open; purchaseOrder.PurchaseOrderNumber = payload.PurchaseOrderNumber; purchaseOrder.MasterPurchaseOrderId = payload.PurchaseOrderId; purchaseOrder.OrderTotal = payload.OrderTotal; await _inventoryManagementDataService.CreatePurchaseOrder(purchaseOrder); await _inventoryManagementDataService.UpdateDatabase(); foreach (PurchaseOrderDetailUpdatePayload detail in payload.PurchaseOrderDetails) { PurchaseOrderDetail purchaseOrderDetail = new PurchaseOrderDetail(); purchaseOrderDetail.AccountId = payload.AccountId; purchaseOrderDetail.MasterPurchaseOrderDetailId = detail.PurchaseOrderDetailId; purchaseOrderDetail.PurchaseOrderId = purchaseOrder.PurchaseOrderId; purchaseOrderDetail.ProductId = detail.ProductMasterId; purchaseOrderDetail.ProductNumber = detail.ProductNumber; purchaseOrderDetail.ProductDescription = detail.ProductDescription; purchaseOrderDetail.UnitPrice = detail.UnitPrice; purchaseOrderDetail.OrderQuantity = detail.OrderQuantity; purchaseOrderDetail.ReceivedQuantity = 0; purchaseOrderDetail.OrderTotal = detail.UnitPrice * detail.OrderQuantity; await _inventoryManagementDataService.CreatePurchaseOrderDetail(purchaseOrderDetail); } await LogSuccessfullyProcessed(transaction); }