Exemplo n.º 1
0
        public void RunUnitOfWork(string jobKey)
        {
            var orders = SourceRepository.GetOrders().ToList();

            if (orders.Any())
            {
                _logger.Debug("Processing " + orders.Count + " orders.");
                _orderHistoryRepository.Save(orders.SelectMany(o => o.CreateHistories("Order picked.", "Pick Job")));
                foreach (var order in orders)
                {
                    var map = new OmsManhattanOrderMap
                    {
                        Company        = order.Company,
                        Created        = DateTime.Now,
                        OmsOrderNumber = order.OrderNumber,
                        WmOrderNumber  = order.ControlNumber
                    };

                    _omsManhattanOrderMapRepository.InsertOmsManhattanOrderMapRepository(map);
                }

                DestinationRepository.SaveOrders(orders);
                SourceRepository.SetAsProcessed(orders);
            }
            else
            {
                _logger.Debug("No orders to run");
            }
        }
Exemplo n.º 2
0
        public void RunUnitOfWork(string jobKey)
        {
            var shipments = _shipmentRepository.FindManhattanShipmentHeaders(new ManhattanShipmentSearchCriteria
            {
                ShipTo = ManhattanShipmentSearchCriteria.BrickAndClickShipTo,
                UnprocessedForAuroraShipmentGeneralLedger = false,
                UnprocessedForAuroraShipment = true
            });

            if (shipments.Count > 0)
            {
                _orderHistoryRepository.Save(shipments.SelectMany(s => s.LineItems.Select(i => new OrderHistory(s.Header.OrderNumber, s.Header.BatchControlNumber, i.PackageBarcode, "Shipment sent to Aurora.", "Aurora Shipment Job"))));
                _auroraShipmentRepository.ProcessAuroraShipmentBnc(shipments);

                foreach (var manhattanShipment in shipments)
                {
                    _auroraShipmentRepository.InsertManhattanShipmentBncProcessing(new ManhattanShipmentBncProcessing
                    {
                        BatchControlNumber      = manhattanShipment.OriginalBatchControlNumber,
                        PickticketControlNumber = manhattanShipment.Header.PickticketControlNumber
                    });
                }
            }
            else
            {
                _log.Info("No shipments to process");
            }
        }
Exemplo n.º 3
0
        public void RunUnitOfWork(string jobKey)
        {
            var unprocessedReturns = _pixReturnRepository.GetUnprocessedReturns().ToList();

            if (unprocessedReturns.Any())
            {
                _log.Info("Processing " + unprocessedReturns.Count() + " PIX returns");
            }
            else
            {
                _log.Info("No PIX returns to process.");
                return;
            }

            var conditionCodes = _manhattanConditionCodeRepository.GetConditionCodes().ToList();

            _orderHistoryRepository.Save(unprocessedReturns.Select(r => new OrderHistory(r.OrderNumber, null, null, "Pix return", "Pix Return Job")));
            foreach (var unprocessedReturn in unprocessedReturns)
            {
                try
                {
                    using (var transactionScope = Scope.CreateTransactionScope())
                    {
                        var condition = unprocessedReturn.ReturnToStock() ? "INVENTORY" : "DEFECT";

                        var reason = GetConditionCode(conditionCodes, unprocessedReturn);

                        // translate the manhattan file to a business object
                        var returnOnWeb = new ReturnOnWeb
                        {
                            Company          = GetCompany(unprocessedReturn.OrderNumber),
                            Condition        = condition,
                            Reason           = reason,
                            Style            = unprocessedReturn.Style,
                            OrderNumber      = unprocessedReturn.OrderNumber,
                            Width            = unprocessedReturn.Width,
                            Size             = unprocessedReturn.Size.FromManhattanShoeSize(),
                            Timestamp        = DateTime.Now,
                            StockKeepingUnit = unprocessedReturn.StockKeepingUnit,
                            Status           = "NEW",
                            UserName         = unprocessedReturn.User
                        };

                        // map business object to row return and write to NBXWEB
                        _databaseRowReturnRepository.InsertRowReturn(new DatabaseRowReturn(returnOnWeb));

                        // insert processed row
                        _perpetualInventoryTransferRepository.InsertManhattanPerpetualInventoryTransferProcessing(unprocessedReturn.ManhattanPerpetualInventoryTransferId());

                        transactionScope.Complete();
                    }
                }
                catch (Exception exception)
                {
                    _log.Exception("Error processing Manhattan PIX with id of " + unprocessedReturn.ManhattanPerpetualInventoryTransferId(),
                                   exception);
                }
            }
        }
Exemplo n.º 4
0
        protected override void ProcessFiles(ICollection <TransferControlFile> transferControlFiles)
        {
            TransferControlFile headerFile = null;
            TransferControlFile detailFile = null;
            TransferControlFile specialInstructionsFile = null;

            foreach (var file in transferControlFiles)
            {
                var filename = Path.GetFileName(file.FileLocation);
                if (filename == null)
                {
                    throw new InvalidDataException("File location does not have a filename");
                }

                switch (filename.Substring(0, 2).ToUpperInvariant())
                {
                case ManhattanDataFileType.PickHeader:
                    headerFile = file;
                    break;

                case ManhattanDataFileType.PickDetail:
                    detailFile = file;
                    break;

                case ManhattanDataFileType.PickSpecialInstructions:
                    specialInstructionsFile = file;
                    break;
                }
            }

            if (headerFile == null || detailFile == null || specialInstructionsFile == null)
            {
                throw new InvalidDataException("File list does not contain a header, detail, and instruction file.");
            }

            var headers      = _manhattanOrderRepository.GetManhattanPickTicketHeaders(headerFile.FileLocation);
            var details      = _manhattanOrderRepository.GetManhattanPickTicketDetails(detailFile.FileLocation);
            var instructions = _manhattanOrderRepository.GetManhattanPickTicketInstructions(specialInstructionsFile.FileLocation);

            var orders = _manhattanOrderRepository.GetOrders(headers, details);

            _orderHistoryRepository.Save(orders.SelectMany(o => o.CreateHistories("Item picked from Aurora", "Aurora Pick Ticket Job")));

            _auroraPickTicketRepository.InsertAuroraPickTicketHeader(headers);
            _auroraPickTicketRepository.InsertAuroraPickTicketDetail(details);
            _auroraPickTicketRepository.InsertAuroraPickTicketInstruction(instructions);

            _destinationRepository.SaveOrders(orders);
        }
Exemplo n.º 5
0
        public void RunUnitOfWork(string jobKey)
        {
            var orders = SourceRepository.GetOrders().ToList();

            if (orders.Any())
            {
                _logger.Debug("Processing " + orders.Count + " orders.");
                foreach (var order in orders)
                {
                    var map = new OmsManhattanOrderMap
                    {
                        Company        = order.Company,
                        Created        = DateTime.Now,
                        OmsOrderNumber = order.ControlNumber,
                        WmOrderNumber  = order.OrderNumber
                    };

                    _omsManhattanOrderMapRepository.InsertOmsManhattanOrderMapRepository(map);

                    _orderHistoryRepository.Save(order.CreateHistories("Processing pickticket confirmation.", "Aurora Pick Confirmation Job"));

                    SetAuroraPickTicketInformation(order);
                }

                DestinationRepository.SaveOrders(orders);

                var processed = orders.Select(s => new PickTicketConfirmationOrderProcessing {
                    ControlNumber = s.ControlNumber, OrderNumber = s.OrderNumber, ProcessedDate = DateTime.Now
                }).ToList();
                _pickTicketProcessingRepository.InsertPickTicketProcessing(processed);
            }
            else
            {
                _logger.Debug("No orders to run");
            }
        }