/// <summary>
        /// Inventory Shipped
        /// </summary>
        /// <param name="transaction"></param>
        /// <returns></returns>
        private async Task InventoryShipped(TransactionQueueInbound transaction)
        {
            InventoryTransactionPayload payload = JsonConvert.DeserializeObject <InventoryTransactionPayload>(transaction.Payload);

            int productMasterId = payload.ProductId;

            Product product = await _salesOrderManagementDataService.GetProductInformationByProductMasterForUpdate(productMasterId);

            if (product != null)
            {
                product.OnHandQuantity    = product.OnHandQuantity - payload.Quantity;
                product.CommittedQuantity = product.CommittedQuantity - payload.Quantity;

                await _salesOrderManagementDataService.UpdateProduct(product);
            }

            SalesOrderDetail salesOrderDetail = await _salesOrderManagementDataService.GetSalesOrderDetailForUpdate(payload.MasterEntityId);

            if (salesOrderDetail != null)
            {
                salesOrderDetail.ShippedQuantity = salesOrderDetail.ShippedQuantity + payload.Quantity;
                await _salesOrderManagementDataService.UpdateSalesOrderDetail(salesOrderDetail);
            }

            await LogSuccessfullyProcessed(transaction);
        }
        /// <summary>
        /// Generate Inventory Transaction Payload
        /// </summary>
        /// <param name="inventoryTransaction"></param>
        /// <returns></returns>
        private string GenerateInventoryTransactionPayload(InventoryTransaction inventoryTransaction)
        {
            InventoryTransactionPayload inventoryTransactionPayload = new InventoryTransactionPayload();

            inventoryTransactionPayload.ProductId       = inventoryTransaction.ProductId;
            inventoryTransactionPayload.Quantity        = inventoryTransaction.Quantity;
            inventoryTransactionPayload.UnitCost        = inventoryTransaction.UnitCost;
            inventoryTransactionPayload.EntityId        = inventoryTransaction.EntityId;
            inventoryTransactionPayload.MasterEntityId  = inventoryTransaction.MasterEntityId;
            inventoryTransactionPayload.TransactionDate = inventoryTransaction.TransactionDate;

            string payload = SerializationFunction <InventoryTransactionPayload> .ReturnStringFromObject(inventoryTransactionPayload);

            return(payload);
        }
        /// <summary>
        /// Inventory Received
        /// </summary>
        /// <param name="transaction"></param>
        /// <returns></returns>
        private async Task InventoryReceived(TransactionQueueInbound transaction)
        {
            InventoryTransactionPayload payload = JsonConvert.DeserializeObject <InventoryTransactionPayload>(transaction.Payload);

            int productMasterId = payload.ProductId;

            Product product = await _salesOrderManagementDataService.GetProductInformationByProductMasterForUpdate(productMasterId);

            if (product != null)
            {
                product.OnHandQuantity = product.OnHandQuantity + payload.Quantity;

                await _salesOrderManagementDataService.UpdateProduct(product);
            }

            await LogSuccessfullyProcessed(transaction);
        }
示例#4
0
        /// <summary>
        /// Inventory Received
        /// </summary>
        /// <param name="transaction"></param>
        private async Task InventoryReceived(TransactionQueueInbound transaction)
        {
            InventoryTransactionPayload payload = JsonConvert.DeserializeObject <InventoryTransactionPayload>(transaction.Payload);

            int purchaseOrderDetailId = payload.MasterEntityId;

            PurchaseOrderDetail purchaseOrderDetail = await _purchaseOrderManagementDataService.GetPurchaseOrderDetailForUpdate(purchaseOrderDetailId);

            if (purchaseOrderDetail != null)
            {
                purchaseOrderDetail.ReceiviedQuantity = purchaseOrderDetail.ReceiviedQuantity + payload.Quantity;

                await _purchaseOrderManagementDataService.UpdatePurchaseOrderDetail(purchaseOrderDetail);
            }

            await LogSuccessfullyProcessed(transaction);
        }