Exemple #1
0
 public Task ReceivedOnLocation_NotifyRiba(
     [QueueTrigger(QueueNames.ReceivedOnLocationNotifyRiba)] PurchaseOrderReceiptEvent message)
 {
     return(Task.Run(() =>
     {
         _ribaQueueProcessor.Execute(message);
     }));
 }
Exemple #2
0
        private void NotifyReceivedPurchaseOrders()
        {
            _log.Info("Searching for received purchase orders");
            var criteria = new PerpetualInventoryTransactionCriteria()
            {
                ProcessType     = ProcessType.PurchaseOrderReceiptNotification,
                TransactionType = TransactionType.QuantityAdjust
            };

            var poReceiptRecords    = _repository.FindPerpetualInventoryTransfers(criteria);
            var adjustmentsToIgnore = poReceiptRecords.Where(adj => String.IsNullOrWhiteSpace(adj.Ponumber)).ToList();

            MarkNotificationRecordsAsProcessed(adjustmentsToIgnore, ProcessType.PurchaseOrderReceiptNotification);

            var recordsWithPos = poReceiptRecords.Except(adjustmentsToIgnore).ToList();
            var distinctPos    = recordsWithPos.Select(item => item.Ponumber).Distinct().ToList();

            foreach (var poNumber in distinctPos)
            {
                var receiptRecord             = recordsWithPos.First(r => r.Ponumber == poNumber);
                var inventoryAdjustmentsForPo = _repository.FindPerpetualInventoryTransfers(
                    new PerpetualInventoryTransactionCriteria()
                {
                    ProcessType         = ProcessType.PurchaseOrderReceiptNotification,
                    PurchaseOrderNumber = poNumber,
                    TransactionType     = TransactionType.InventoryAdjustment
                });

                var firstPoInventoryAdjustment = recordsWithPos
                                                 .Where(r => r.Ponumber == poNumber)
                                                 .OrderBy(r => MainframeExtensions.ParseDateTime(r.DateCreated, r.TimeCreated))
                                                 .First();
                var receiptList = SumPixItems(inventoryAdjustmentsForPo);
                var receipt     = new PurchaseOrderReceiptEvent(
                    firstPoInventoryAdjustment.Ponumber,
                    MainframeExtensions.ParseDateTime(firstPoInventoryAdjustment.DateCreated, firstPoInventoryAdjustment.TimeCreated),
                    receiptList
                    );
                try
                {
                    _apiAccess.PurchaseOrderReceived(receipt);
                }
                catch (Exception ex)
                {
                    _log.Exception("Failed to notify service of PO Receipt", ex);
                }
                var toMarkComplete = inventoryAdjustmentsForPo.Concat(new[] { receiptRecord }).ToList();
                MarkNotificationRecordsAsProcessed(toMarkComplete, ProcessType.PurchaseOrderReceiptNotification);
            }
        }
 public void PurchaseOrderReceived(PurchaseOrderReceiptEvent purchaseOrderReceiptEvent)
 {
     _logger.DumpInfo <PurchaseOrderEventHandler>(purchaseOrderReceiptEvent);
     _queue.QueueWorkItem(QueueNames.ReceivedOnLocationNotifyRiba, purchaseOrderReceiptEvent);
 }
Exemple #4
0
        public void PurchaseOrderReceived(PurchaseOrderReceiptEvent purchaseOrderReceiptEvent)
        {
            var request = ConstructPostRequest("Order/ReceivedOnLocation", purchaseOrderReceiptEvent);

            Execute <object>(request);
        }
 public void LocationReceived(PurchaseOrderReceiptEvent purchaseOrderReceiptEvent)
 {
 }
 public void PurchaseOrderReceived(PurchaseOrderReceiptEvent purchaseOrderReceiptEvent)
 {
     _poEventHandler.PurchaseOrderReceived(purchaseOrderReceiptEvent);
 }