private ShipmentInformation CreateShipmentInformation(tblOrderDTO oldOrder) { var dateCreated = oldOrder.EntryDate.Value.Date; return(new ShipmentInformation { DateCreated = dateCreated, Sequence = _newContextHelper.ShipmentInformationKeys.GetNextSequence(dateCreated), Status = ((tblOrderStatus)oldOrder.Status).ToShipmentStatus(), PalletWeight = (double?)oldOrder.PalletOR, PalletQuantity = (int)(oldOrder.PalletQty ?? 0), FreightBillType = oldOrder.FreightBillType, ShipmentMethod = oldOrder.ShipVia, DriverName = oldOrder.Driver, CarrierName = oldOrder.Carrier, TrailerLicenseNumber = oldOrder.TrlNbr, ContainerSeal = oldOrder.ContSeal, RequiredDeliveryDate = oldOrder.DelDueDate, ShipmentDate = oldOrder.Date ?? oldOrder.SchShipDate, ShipTo = oldOrder.ShipTo, FreightBill = oldOrder.BillTo }); }
private SalesOrderLoad CreateCustomerOrder(tblOrderDTO oldOrder) { LoadCount.AddRead(EntityType.SalesOrder); if (oldOrder.EntryDate == null) { Log(new CallbackParameters(CallbackReason.EntryDateNull) { Order = oldOrder }); return(null); } var employeeId = _newContextHelper.DefaultEmployee.EmployeeId; if (oldOrder.EmployeeID != null) { employeeId = oldOrder.EmployeeID.Value; } else { Log(new CallbackParameters(CallbackReason.EmployeeIDNull) { Order = oldOrder }); } Models.Company customer = null; if (!string.IsNullOrWhiteSpace(oldOrder.Company_IA)) { customer = _newContextHelper.GetCompany(oldOrder.Company_IA, CompanyType.Customer); if (customer == null) { Log(new CallbackParameters(CallbackReason.CustomerNotFound) { Order = oldOrder }); return(null); } } Models.Company broker = null; if (!string.IsNullOrWhiteSpace(oldOrder.Broker)) { broker = _newContextHelper.GetCompany(oldOrder.Broker, CompanyType.Broker); if (broker == null) { Log(new CallbackParameters(CallbackReason.BrokerNotFound) { Order = oldOrder }); return(null); } } var warehouse = _newContextHelper.GetFacility(oldOrder.WHID); if (warehouse == null) { Log(new CallbackParameters(CallbackReason.WarehouseNotFound) { Order = oldOrder }); return(null); } var dateReceived = oldOrder.EntryDate.Value.Date; if (oldOrder.DateRecd != null) { dateReceived = oldOrder.DateRecd.Value.Date; } else { Log(new CallbackParameters(CallbackReason.DateRecdNull) { Order = oldOrder }); } if (oldOrder.Status.ToTblOrderStatus() == null) { Log(new CallbackParameters(CallbackReason.InvalidStatus) { Order = oldOrder }); return(null); } var shipmentInformation = CreateShipmentInformation(oldOrder); if (shipmentInformation == null) { return(null); } var timestamp = oldOrder.EntryDate.Value.ConvertLocalToUTC(); var order = SetItems(new SalesOrderLoad { CustomerId = customer == null ? (int?)null : customer.Id, BrokerId = broker == null ? (int?)null : broker.Id, PaymentTerms = oldOrder.PayTerms, PreShipmentSampleRequired = oldOrder.PreSample, OrderStatus = ((tblOrderStatus)oldOrder.Status).ToCustomerOrderStatus(), InvoiceDate = oldOrder.InvoiceDate, InvoiceNotes = oldOrder.InvoiceNotes, CreditMemo = oldOrder.CreditMemo, FreightCharge = (float)(oldOrder.FreightCharge ?? 0.0m), SoldTo = oldOrder.SoldTo, InventoryShipmentOrder = new InventoryShipmentOrder { MoveNum = oldOrder.OrderNum, EmployeeId = employeeId, TimeStamp = timestamp, OrderType = oldOrder.TTypeID.ToOrderType(), ShipmentInfoDateCreated = shipmentInformation.DateCreated, ShipmentInfoSequence = shipmentInformation.Sequence, ShipmentInformation = shipmentInformation, DestinationFacilityId = null, SourceFacilityId = warehouse.Id, OrderStatus = oldOrder.Status.ToTblOrderStatus().ToOrderStatus(), PurchaseOrderNumber = oldOrder.PONbr, DateReceived = dateReceived, RequestedBy = oldOrder.From, TakenBy = oldOrder.TakenBy, PickedInventory = new PickedInventory { EmployeeId = employeeId, TimeStamp = timestamp, PickedReason = PickedReason.SalesOrder, Archived = oldOrder.Status > (int)tblOrderStatus.Staged, }, InventoryPickOrder = new InventoryPickOrder() } }, oldOrder); var dateCreated = oldOrder.EntryDate.Value.Date; int sequence; ISalesOrderKey key; if (_salesOrderKey.TryParse(oldOrder.SerializedKey, out key)) { dateCreated = key.SalesOrderKey_DateCreated; sequence = key.SalesOrderKey_Sequence; } else { sequence = PickedInventoryKeyHelper.Singleton.GetNextSequence(dateCreated); order.RequiresKeySync = true; } SetPickedInventoryKey(order, dateCreated, sequence); return(order); }
private SalesOrderLoad SetItems(SalesOrderLoad order, tblOrderDTO oldOrder) { var orderItemSequence = 0; var pickedItemSequence = 0; order.SalesOrderItems = new List <SalesOrderItem>(); order.SalesOrderPickedItems = new List <SalesOrderPickedItem>(); var latestStaged = oldOrder.tblOrderDetails.SelectMany(d => d.tblStagedFGs) .OrderByDescending(s => s.EntryDate) .FirstOrDefault(); if (latestStaged != null) { order.InventoryShipmentOrder.PickedInventory.TimeStamp = latestStaged.EntryDate.ConvertLocalToUTC(); if (latestStaged.EmployeeID != null) { order.InventoryShipmentOrder.PickedInventory.EmployeeId = latestStaged.EmployeeID.Value; } } foreach (var detail in oldOrder.tblOrderDetails) { LoadCount.AddRead(EntityType.SalesOrderItem); var product = _newContextHelper.GetProduct(detail.ProdID); if (product == null) { Log(new CallbackParameters(CallbackReason.DetailProductNotFound) { Order = oldOrder, Detail = detail }); continue; } var packaging = _newContextHelper.GetPackagingProduct(detail.PkgID); if (packaging == null) { Log(new CallbackParameters(CallbackReason.DetailPackagingNotFound) { Order = oldOrder, Detail = detail }); continue; } var treatment = _newContextHelper.NoTreatment; if (detail.TrtmtID != null) { treatment = _newContextHelper.GetInventoryTreatment(detail.TrtmtID.Value); if (treatment == null) { Log(new CallbackParameters(CallbackReason.DetailTreatmentNotFound) { Order = oldOrder, Detail = detail }); continue; } } IContractItemKey contractItemKey = null; if (detail.KDetailID != null) { contractItemKey = _newContextHelper.GetContractItemKey(detail.KDetailID); if (contractItemKey == null) { Log(new CallbackParameters(CallbackReason.ContractItemNotFound) { Order = oldOrder, Detail = detail }); continue; } } order.SalesOrderItems.Add(new SalesOrderItem { ItemSequence = orderItemSequence, ContractYear = contractItemKey == null ? (int?)null : contractItemKey.ContractKey_Year, ContractSequence = contractItemKey == null ? (int?)null : contractItemKey.ContractKey_Sequence, ContractItemSequence = contractItemKey == null ? (int?)null : contractItemKey.ContractItemKey_Sequence, PriceBase = (double)(detail.Price ?? 0), PriceFreight = (double)(detail.FreightP ?? 0), PriceTreatment = (double)(detail.TrtnmntP ?? 0), PriceWarehouse = (double)(detail.WHCostP ?? 0), PriceRebate = (double)(detail.Rebate ?? 0), ODetail = detail.ODetail, InventoryPickOrderItem = new InventoryPickOrderItem { ItemSequence = orderItemSequence, ProductId = product.ProductKey.ProductKey_ProductId, PackagingProductId = packaging.Id, TreatmentId = treatment.Id, Quantity = (int)(detail.Quantity ?? 0), CustomerLotCode = detail.CustLot, CustomerProductCode = detail.CustProductCode, } }); foreach (var staged in detail.tblStagedFGs) { LoadCount.AddRead(EntityType.SalesOrderPickedItem); LotKey lotKey; if (!LotNumberParser.ParseLotNumber(staged.Lot, out lotKey)) { Log(new CallbackParameters(CallbackReason.StagedInvalidLotNumber) { Order = oldOrder, Staged = staged }); continue; } packaging = _newContextHelper.GetPackagingProduct(staged.PkgID); if (packaging == null) { Log(new CallbackParameters(CallbackReason.StagedPackagingNotFound) { Order = oldOrder, Staged = staged }); continue; } var currentLocation = _newContextHelper.GetLocation(staged.LocID); if (currentLocation == null) { Log(new CallbackParameters(CallbackReason.StagedLocationNotFound) { Order = oldOrder, Staged = staged }); continue; } var fromLocation = detail.tblOutgoing.Any() ? DeterminePickedFromLocation(detail, staged) : currentLocation; if (fromLocation == null) { Log(new CallbackParameters(CallbackReason.UndeterminedPickedFromLocation) { Order = oldOrder, Staged = staged }); continue; } treatment = _newContextHelper.GetInventoryTreatment(staged.TrtmtID); if (treatment == null) { Log(new CallbackParameters(CallbackReason.StagedTreatmentNotFound) { Order = oldOrder, Staged = staged }); continue; } order.SalesOrderPickedItems.Add(new SalesOrderPickedItem { ItemSequence = pickedItemSequence, OrderItemSequence = orderItemSequence, PickedInventoryItem = new PickedInventoryItem { DetailID = staged.EntryDate, ItemSequence = pickedItemSequence, LotDateCreated = lotKey.LotKey_DateCreated, LotDateSequence = lotKey.LotKey_DateSequence, LotTypeId = lotKey.LotKey_LotTypeId, Quantity = (int)(staged.Quantity ?? 0), PackagingProductId = packaging.Id, FromLocationId = fromLocation.Id, CurrentLocationId = currentLocation.Id, TreatmentId = treatment.Id, ToteKey = "", CustomerLotCode = staged.CustLot, CustomerProductCode = staged.CustProductCode } }); pickedItemSequence++; } orderItemSequence++; } return(order); }