public void SaveProducts(IEnumerable <Product> products)
        {
            var allProducts = products.ToList();

            if (!allProducts.Any())
            {
                return;
            }

            var warehouseNumber = _configuration.GetKey <string>(ConfigurationKey.WarehouseNumber);
            var companyNumber   = _configuration.GetKey <string>(ConfigurationKey.CompanyNumber);

            var controlNumber      = _configuration.GetBatchControlNumber();
            var batchControlNumber = warehouseNumber + controlNumber.ToString("D8");

            var productList = allProducts.Select(product => new ManhattanProduct(product, batchControlNumber, companyNumber, warehouseNumber)).ToList();

            var productPath = _configuration.GetPath(ManhattanDataFileType.ProductUpdatingProductPath, controlNumber);

            _productRepository.Save(productList, productPath);

            _transferControlManager.SaveTransferControl(batchControlNumber,
                                                        new List <string> {
                productPath
            },
                                                        _jobRepository.GetJob(JobKey.ProductUpdating).JobId);
        }
        private void WriteFile(DataFileRepository <TransferControlMaster> transferControlWriter,
                               IEnumerable <TransferControlMaster> masters)
        {
            var masterControlFileName = _configuration.GetInboundMasterControlFilename();
            var inboundFileDirectory  = _configuration.GetInboundFileDirectory();

            transferControlWriter.Save(masters.OrderByDescending(o => o.Filename), Path.Combine(inboundFileDirectory, masterControlFileName));
        }
        public void ProcessAuroraShipmentBnc(IList <ManhattanShipment> manhattanShipment)
        {
            var controlNumber      = _configuration.GetBatchControlNumber();
            var warehouseNumber    = _configuration.GetKey <string>(ConfigurationKey.WarehouseNumber);
            var batchControlNumber = warehouseNumber + controlNumber.ToString("D8");


            foreach (var shipment in manhattanShipment)
            {
                shipment.OriginalBatchControlNumber = shipment.Header.BatchControlNumber;

                shipment.Header.BatchControlNumber = batchControlNumber;
                shipment.Header.Company            = ShippedCompany;

                foreach (var detail in shipment.LineItems)
                {
                    detail.BatchControlNumber = batchControlNumber;
                    detail.ShippedCompany     = ShippedCompany;
                }

                foreach (var carton in shipment.ManhattanShipmentCartonHeader)
                {
                    carton.BatchControlNumber = batchControlNumber;
                    carton.Company            = ShippedCompany;
                }

                foreach (var cartonDetail in shipment.ManhattanShipmentCartonDetails)
                {
                    cartonDetail.BatchControlNumber = batchControlNumber;
                    cartonDetail.Company            = ShippedCompany;
                }
            }

            // aurora needs the warehouse number inserted in filename path at position 3 and 4
            var headerPath         = _configuration.GetPath(ManhattanDataFileType.ShipmentHeader, controlNumber, warehouseNumber, "Aurora_");
            var detailsPath        = _configuration.GetPath(ManhattanDataFileType.ShipmentDetail, controlNumber, warehouseNumber, "Aurora_");
            var cartonPath         = _configuration.GetPath(ManhattanDataFileType.CartonHeader, controlNumber, warehouseNumber, "Aurora_");
            var cartonDetailsrPath = _configuration.GetPath(ManhattanDataFileType.CartonDetail, controlNumber, warehouseNumber, "Aurora_");

            _headerFileRepository.Save(manhattanShipment.Select(s => s.Header), headerPath);
            _detailFileRepository.Save(manhattanShipment.SelectMany(d => d.LineItems), detailsPath);
            _cartonHeaderFileRepository.Save(manhattanShipment.SelectMany(d => d.ManhattanShipmentCartonHeader), cartonPath);
            _cartonDetailFileRepository.Save(manhattanShipment.SelectMany(d => d.ManhattanShipmentCartonDetails), cartonDetailsrPath);

            _transferControlManager.SaveTransferControl(batchControlNumber,
                                                        new List <string>
            {
                headerPath,
                detailsPath,
                cartonPath,
                cartonDetailsrPath
            },
                                                        _jobRepository.GetJob(JobKey.AuroraShipmentJob).JobId);
        }
        public void Save(IEnumerable <IReceivedProduct> receivedProducts)
        {
            var receivedProductsCollection           = receivedProducts.ToList();
            var purchaseOrderDetails                 = new List <ManhattanSkuDetail>();
            var purchaseReturnDetails                = new List <ManhattanSkuDetail>();
            var automatedShippingNotificationDetails = new List <ManhattanCaseDetail>();
            var headerList = new List <ManhattanReceivedProductHeader>();

            var warehouseNumber = _configuration.GetKey <string>(ConfigurationKey.WarehouseNumber);
            var companyNumber   = _configuration.GetKey <string>(ConfigurationKey.CompanyNumber);

            var controlNumber      = _configuration.GetBatchControlNumber();
            var batchControlNumber = warehouseNumber + controlNumber.ToString("D8");

            foreach (var purchaseOrder in receivedProductsCollection.OfType <PurchaseOrder>())
            {
                headerList.Add(new ManhattanReceivedProductHeader(purchaseOrder, batchControlNumber, warehouseNumber));
                purchaseOrderDetails.AddRange(purchaseOrder.Items.Select(item => new ManhattanSkuDetail(purchaseOrder, item, batchControlNumber, companyNumber, warehouseNumber)));
            }

            foreach (var purchaseReturn in receivedProductsCollection.OfType <PurchaseReturn>())
            {
                headerList.Add(new ManhattanReceivedProductHeader(purchaseReturn, batchControlNumber, warehouseNumber));
                purchaseReturnDetails.AddRange(purchaseReturn.Items.Select(item => new ManhattanSkuDetail(purchaseReturn, item, batchControlNumber, companyNumber, warehouseNumber)));
            }

            foreach (var automatedShippingNotification in receivedProductsCollection.OfType <AutomatedShippingNotification>())
            {
                headerList.Add(new ManhattanReceivedProductHeader(automatedShippingNotification, batchControlNumber, warehouseNumber));
                automatedShippingNotificationDetails.AddRange(automatedShippingNotification.Items.Select(item => new ManhattanCaseDetail(automatedShippingNotification, item, batchControlNumber, companyNumber, warehouseNumber)));
            }

            var headerPath     = _configuration.GetPath(ManhattanDataFileType.ProductReceivingHeader, controlNumber);
            var poDetailsPath  = _configuration.GetPath(ManhattanDataFileType.ProductReceivingPoDetail, controlNumber);
            var asnDetailsPath = _configuration.GetPath(ManhattanDataFileType.ProductReceivingAsnDetail, controlNumber);

            _headerFileRepository.Save(headerList, headerPath);

            var skuDetails = new List <ManhattanSkuDetail>();

            skuDetails.AddRange(purchaseOrderDetails);
            skuDetails.AddRange(purchaseReturnDetails);

            _skuDetailFileRepository.Save(skuDetails, poDetailsPath);                             // I9 : PO and returns
            _caseDetailFileRepository.Save(automatedShippingNotificationDetails, asnDetailsPath); // IB : shipment notification

            _transferControlManager.SaveTransferControl(batchControlNumber,
                                                        new List <string> {
                headerPath, poDetailsPath, asnDetailsPath
            },
                                                        _jobRepository.GetJob(JobKey.ProductReceiving).JobId);
        }
Esempio n. 5
0
        public void SaveOrders(IEnumerable <Order> orders)
        {
            var allOrders = orders.ToList();

            if (!allOrders.Any())
            {
                return;
            }

            var detailList      = new List <ManhattanPickTicketDetail>();
            var headerList      = new List <ManhattanPickTicketHeader>();
            var instructionList = new List <ManhattanPickTicketInstruction>();

            var warehouseNumber  = _configuration.GetKey <string>(ConfigurationKey.WarehouseNumber);
            var companyNumber    = _configuration.GetKey <string>(ConfigurationKey.CompanyNumber);
            var warehouseAddress = _configuration.GetWarehouseAddress();

            var controlNumber      = _configuration.GetBatchControlNumber();
            var batchControlNumber = warehouseNumber + controlNumber.ToString("D8");

            foreach (var order in allOrders)
            {
                order.BillingAddress = warehouseAddress;

                headerList.Add(new ManhattanPickTicketHeader(order, batchControlNumber, companyNumber, warehouseNumber, "CDS", _countryReader, _carrierRepository));
                detailList.AddRange(CombineItems(order, batchControlNumber, companyNumber, warehouseNumber));
                var instructionControlNumber = 1;
                foreach (var instruction in order.SpecialInstructions)
                {
                    instructionList.Add(new ManhattanPickTicketInstruction("VA", "VA", instruction, batchControlNumber, order.ControlNumber, instructionControlNumber));
                    instructionControlNumber++;
                }
                instructionList.AddRange(GetGlobalInstructions(order, batchControlNumber, instructionControlNumber));
            }

            var headerPath      = _configuration.GetPath(ManhattanDataFileType.PickHeader, controlNumber);
            var detailPath      = _configuration.GetPath(ManhattanDataFileType.PickDetail, controlNumber);
            var instructionPath = _configuration.GetPath(ManhattanDataFileType.PickSpecialInstructions, controlNumber);

            _headerFileRepository.Save(headerList, headerPath);
            _detailFileRepository.Save(detailList, detailPath);
            _instructionFileRepository.Save(instructionList, instructionPath);

            _transferControlManager.SaveTransferControl(batchControlNumber,
                                                        new List <string> {
                headerPath, detailPath, instructionPath
            },
                                                        _jobRepository.GetJob(JobKey.PickJob).JobId);
        }
        public void SaveOrders(IEnumerable <Order> orders,
                               string headerFileLocation,
                               string detailsFileLocation,
                               string instructionsFileLocation)
        {
            if (headerFileLocation == null)
            {
                throw new ArgumentNullException("headerFileLocation");
            }
            if (detailsFileLocation == null)
            {
                throw new ArgumentNullException("detailsFileLocation");
            }
            if (instructionsFileLocation == null)
            {
                throw new ArgumentNullException("instructionsFileLocation");
            }

            var allOrders = orders.ToList();

            if (!allOrders.Any())
            {
                return;
            }

            var warehouseNumber  = _configuration.GetWarehouseNumber();
            var companyNumber    = _configuration.GetCompanyNumber();
            var warehouseAddress = _configuration.GetWarehouseAddress();
            var shipTo           = _configuration.GetShipTo();

            var controlNumber      = _configuration.GetBatchControlNumber();
            var batchControlNumber = warehouseNumber + controlNumber.ToString("D8");

            var detailList      = new List <ManhattanPickTicketDetail>();
            var headerList      = new List <ManhattanPickTicketHeader>();
            var instructionList = new List <ManhattanPickTicketInstruction>();

            foreach (var order in allOrders)
            {
                order.BillingAddress = warehouseAddress;

                headerList.Add(new ManhattanPickTicketHeader(order, batchControlNumber, companyNumber, warehouseNumber, shipTo, _countryReader, _carrierReadRepository));
                detailList.AddRange(CombineItems(order, batchControlNumber, companyNumber, warehouseNumber));
                var instructionControlNumber = 1;
                foreach (var instruction in order.SpecialInstructions)
                {
                    instructionList.Add(new ManhattanPickTicketInstruction("VA", "VA", instruction, batchControlNumber, order.ControlNumber, instructionControlNumber));
                    instructionControlNumber++;
                }
                instructionList.AddRange(_configuration.GetPickTicketInstructions(order, batchControlNumber, instructionControlNumber));
            }

            var headerPath      = _configuration.GetHeaderFilePath(controlNumber);
            var detailPath      = _configuration.GetDetailFilePath(controlNumber);
            var instructionPath = _configuration.GetSpecialInstructionFilePath(controlNumber);

            _headerRepository.Save(headerList, headerPath);
            _detailRepository.Save(detailList, detailPath);
            _instructionRepository.Save(instructionList, instructionPath);

            _transferControlManager.SaveTransferControl(batchControlNumber,
                                                        new List <string> {
                headerPath, detailPath, instructionPath
            },
                                                        _configuration.GetJobId());
        }