示例#1
0
        /// <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);
        }