/// <summary> /// convert foundry order part to project part view model /// </summary> /// <param name="foundryOrderPart"></param> /// <returns></returns> public FoundryOrderPartViewModel ConvertToProjectPartView(FoundryOrderPart foundryOrderPart) { FoundryOrderPartViewModel model = new FoundryOrderPartViewModel(); var _foundryOrderRepository = new FoundryOrderRepository(); var _customerOrderRepository = new CustomerOrderRepository(); var _projectPartRepository = new ProjectPartRepository(); var _dynamicsReceiptRepository = new ReceiptDynamicsRepository(); var customerOrderPart = _customerOrderRepository.GetCustomerOrderPart(foundryOrderPart.CustomerOrderPartId); var projectPart = _projectPartRepository.GetProjectPart(foundryOrderPart.ProjectPartId); var customerOrder = _customerOrderRepository.GetCustomerOrder((customerOrderPart != null) ? customerOrderPart.CustomerOrderId : Guid.Empty); model.FoundryOrderPartId = foundryOrderPart.FoundryOrderPartId; model.CustomerOrderPartId = foundryOrderPart.CustomerOrderPartId; model.FoundryOrderId = foundryOrderPart.FoundryOrderId; model.ProjectPartId = foundryOrderPart.ProjectPartId; model.CustomerOrderId = (customerOrderPart != null) ? customerOrderPart.CustomerOrderId : Guid.Empty; model.AvailableQuantity = (customerOrderPart != null) ? customerOrderPart.AvailableQuantity : 0; model.FoundryOrderQuantity = foundryOrderPart.Quantity; model.PartNumber = (projectPart != null && !string.IsNullOrEmpty(projectPart.Number)) ? projectPart.Number : "N/A"; model.PartDescription = (projectPart != null && !string.IsNullOrEmpty(projectPart.Description)) ? projectPart.Description : "N/A"; model.PONumber = (customerOrder != null && !string.IsNullOrEmpty(customerOrder.PONumber)) ? customerOrder.PONumber : "N/A"; model.ShipCode = (!string.IsNullOrEmpty(foundryOrderPart.ShipCode)) ? foundryOrderPart.ShipCode : "N/A"; model.ShipCodeNotes = (!string.IsNullOrEmpty(foundryOrderPart.ShipCodeNotes)) ? foundryOrderPart.ShipCodeNotes : "N/A"; model.EstArrivalDate = (foundryOrderPart.EstArrivalDate != null) ? foundryOrderPart.EstArrivalDate : DateTime.MinValue; model.EstArrivalDateStr = (foundryOrderPart.EstArrivalDate != null) ? foundryOrderPart.EstArrivalDate.Value.ToShortDateString() : "N/A"; model.ShipDate = (foundryOrderPart.ShipDate != null) ? foundryOrderPart.ShipDate : DateTime.MinValue; model.ShipDateStr = (foundryOrderPart.ShipDate != null) ? foundryOrderPart.ShipDate.Value.ToShortDateString() : "N/A"; model.Cost = foundryOrderPart.Cost; model.Price = foundryOrderPart.Price; model.IsScheduled = foundryOrderPart.IsScheduled; model.HasBeenReceived = foundryOrderPart.HasBeenReceived; model.ReceiptDate = (foundryOrderPart.ReceiptDate != null) ? foundryOrderPart.ReceiptDate : DateTime.MinValue; model.ReceiptDateStr = (foundryOrderPart.ReceiptDate != null) ? foundryOrderPart.ReceiptDate.Value.ToShortDateString() : "N/A"; model.ReceiptQuantity = foundryOrderPart.ReceiptQuantity; if (_foundryOrderRepository != null) { _foundryOrderRepository.Dispose(); _foundryOrderRepository = null; } if (_customerOrderRepository != null) { _customerOrderRepository.Dispose(); _customerOrderRepository = null; } if (_projectPartRepository != null) { _projectPartRepository.Dispose(); _projectPartRepository = null; } if (_dynamicsReceiptRepository != null) { _dynamicsReceiptRepository.Dispose(); _dynamicsReceiptRepository = null; } return(model); }
/// <summary> /// convert containerPart to view model /// </summary> /// <param name="containerPart"></param> /// <returns></returns> public ContainerPartViewModel ConvertToView(ContainerPart containerPart) { ContainerPartViewModel model = new ContainerPartViewModel(); var _containerRepository = new ContainerRepository(); var _partRepository = new PartRepository(); var _dynamicsPartRepository = new PartDynamicsRepository(); var _foundryOrderRepository = new FoundryOrderRepository(); var container = _containerRepository.GetContainer(containerPart.ContainerId); var foundryOrderPart = _foundryOrderRepository.GetFoundryOrderParts().FirstOrDefault(x => x.FoundryOrderPartId == containerPart.FoundryOrderPartId); var part = _partRepository.GetPart((foundryOrderPart != null) ? foundryOrderPart.PartId : Guid.Empty); var dynamicsPart = _dynamicsPartRepository.GetPartMaster(part != null && !string.IsNullOrEmpty(part.Number) ? part.Number : null); var foundryOrder = _foundryOrderRepository.GetFoundryOrder((foundryOrderPart != null) ? foundryOrderPart.FoundryOrderId : Guid.Empty); model.FoundryOrderPartId = containerPart.FoundryOrderPartId; model.ContainerPartId = containerPart.ContainerPartId; model.ContainerId = containerPart.ContainerId; model.PartId = (part != null) ? part.PartId : Guid.Empty; model.ContainerNumber = (container != null) ? container.Number : "N/A"; model.PartNumber = (part != null && !string.IsNullOrEmpty(part.Number)) ? part.Number : "N/A"; model.FoundryOrderId = (foundryOrder != null) ? foundryOrder.FoundryOrderId : Guid.Empty; model.OrderNumber = (foundryOrder != null && !string.IsNullOrEmpty(foundryOrder.Number)) ? foundryOrder.Number : "N/A"; model.PalletNumber = (!string.IsNullOrEmpty(containerPart.PalletNumber)) ? containerPart.PalletNumber : "N/A"; model.Quantity = containerPart.Quantity; model.Weight = (dynamicsPart != null) ? (dynamicsPart.ITEMSHWT / 100.00m) : 0.00m; model.Cost = foundryOrderPart.Cost; model.Price = foundryOrderPart.Price; model.AvailableQuantity = (foundryOrderPart != null) ? foundryOrderPart.Quantity : 0; model.ShipCode = (foundryOrderPart != null && !string.IsNullOrEmpty(foundryOrderPart.ShipCode)) ? foundryOrderPart.ShipCode : "N/A"; if (_containerRepository != null) { _containerRepository.Dispose(); _containerRepository = null; } if (_partRepository != null) { _partRepository.Dispose(); _partRepository = null; } if (_dynamicsPartRepository != null) { _dynamicsPartRepository.Dispose(); _dynamicsPartRepository = null; } if (_foundryOrderRepository != null) { _foundryOrderRepository.Dispose(); _foundryOrderRepository = null; } return(model); }
/// <summary> /// convert customer order part to project part view model /// </summary> /// <param name="customerOrderPart"></param> /// <returns></returns> public CustomerOrderPartViewModel ConvertToProjectPartView(CustomerOrderPart customerOrderPart) { CustomerOrderPartViewModel model = new CustomerOrderPartViewModel(); var _priceSheetRepository = new PriceSheetRepository(); var _projectPartRepository = new ProjectPartRepository(); var _customerOrderRepository = new CustomerOrderRepository(); var _foundryOrderRepository = new FoundryOrderRepository(); var priceSheetPart = _priceSheetRepository.GetPriceSheetPart(customerOrderPart.PriceSheetPartId); var projectPart = _projectPartRepository.GetProjectPart((customerOrderPart.ProjectPartId != null) ? customerOrderPart.ProjectPartId : Guid.Empty); var priceSheet = _priceSheetRepository.GetPriceSheet((priceSheetPart != null) ? priceSheetPart.PriceSheetId : Guid.Empty); var customerOrder = _customerOrderRepository.GetCustomerOrder(customerOrderPart.CustomerOrderId); var receivedQuantity = _foundryOrderRepository.GetFoundryOrderParts().Where(x => x.CustomerOrderPartId == customerOrderPart.CustomerOrderPartId && x.HasBeenReceived).Select(y => y.ReceiptQuantity).Sum(); model.CustomerOrderPartId = customerOrderPart.CustomerOrderPartId; model.CustomerOrderId = customerOrderPart.CustomerOrderId; model.PONumber = (!string.IsNullOrEmpty(customerOrder.PONumber)) ? customerOrder.PONumber : "N/A"; model.ProjectPartId = customerOrderPart.ProjectPartId; model.PriceSheetPartId = customerOrderPart.PriceSheetPartId; model.PriceSheetId = (priceSheet != null) ? priceSheet.PriceSheetId : Guid.Empty; model.AvailableQuantity = customerOrderPart.AvailableQuantity; model.CustomerOrderQuantity = customerOrderPart.Quantity; model.PartNumber = (projectPart != null && !string.IsNullOrEmpty(projectPart.Number)) ? projectPart.Number : "N/A"; model.PartDescription = (projectPart != null && !string.IsNullOrEmpty(projectPart.Description)) ? projectPart.Description : "N/A"; model.PriceSheetNumber = (priceSheet != null && !string.IsNullOrEmpty(priceSheet.Number)) ? priceSheet.Number : "N/A"; model.EstArrivalDate = (customerOrderPart.EstArrivalDate != null) ? customerOrderPart.EstArrivalDate : DateTime.MinValue; model.EstArrivalDateStr = (customerOrderPart.EstArrivalDate != null) ? customerOrderPart.EstArrivalDate.Value.ToShortDateString() : "N/A"; model.ReceiptQuantity = receivedQuantity; model.Cost = customerOrderPart.Cost; model.Price = customerOrderPart.Price; if (_priceSheetRepository != null) { _priceSheetRepository.Dispose(); _priceSheetRepository = null; } if (_projectPartRepository != null) { _projectPartRepository.Dispose(); _projectPartRepository = null; } if (_customerOrderRepository != null) { _customerOrderRepository.Dispose(); _customerOrderRepository = null; } return(model); }
/// <summary> /// convert container part to packlingList part view model /// </summary> /// <param name="containerPart"></param> /// <returns></returns> public PackingListPartViewModel ConvertToView(ContainerPart containerPart) { PackingListPartViewModel model = new PackingListPartViewModel(); var _foundryOrderRepository = new FoundryOrderRepository(); var _partRepository = new PartRepository(); var _dynamicsPartRepository = new PartDynamicsRepository(); var _customerOrderRepository = new CustomerOrderRepository(); var foundryOrderPart = _foundryOrderRepository.GetFoundryOrderPart(containerPart.FoundryOrderPartId); var part = _partRepository.GetPart(foundryOrderPart.PartId); var dynamicsPart = _dynamicsPartRepository.GetPartMaster((part != null) ? part.Number : null); var customerOrderPart = _customerOrderRepository.GetCustomerOrderPart(foundryOrderPart.CustomerOrderPartId); var customerOrder = _customerOrderRepository.GetCustomerOrder(customerOrderPart.CustomerOrderId); model.ShipCode = foundryOrderPart.ShipCode; model.PartNumber = (part != null && !string.IsNullOrEmpty(part.Number)) ? part.Number : "N/A"; model.PartWeight = (dynamicsPart != null) ? (dynamicsPart.ITEMSHWT / 100.00m) : 0.00m; model.PartQuantity = containerPart.Quantity; model.PalletNumber = (!string.IsNullOrEmpty(containerPart.PalletNumber)) ? containerPart.PalletNumber : "N/A"; model.PONumber = (customerOrder != null && !string.IsNullOrEmpty(customerOrder.PONumber)) ? customerOrder.PONumber : "N/A"; model.PalletQuantity = containerPart.Quantity; model.InvoiceNumber = "Will fill in later"; if (_foundryOrderRepository != null) { _foundryOrderRepository.Dispose(); _foundryOrderRepository = null; } if (_partRepository != null) { _partRepository.Dispose(); _partRepository = null; } if (_dynamicsPartRepository != null) { _dynamicsPartRepository.Dispose(); _dynamicsPartRepository = null; } if (_customerOrderRepository != null) { _customerOrderRepository.Dispose(); _customerOrderRepository = null; } return(model); }
/// <summary> /// convert part to part inventory list model /// </summary> /// <param name="part"></param> /// <returns></returns> public PartInventoryViewModel ConvertToListView(Part part) { PartInventoryViewModel model = new PartInventoryViewModel(); var _partRepository = new PartRepository(); var _dynamicsPartRepository = new PartDynamicsRepository(); var _foundryOrderRepository = new FoundryOrderRepository(); var _dynamicsReceiptRepository = new ReceiptDynamicsRepository(); var dynamicsPartQty = _dynamicsPartRepository.GetPartQuantityMaster(part.Number); var dynamicsPartStatus = _dynamicsPartRepository.GetItemStatus(part.Number); var dynamicsPartSales = _dynamicsPartRepository.GetItemSales(part.Number); model.PartId = part.PartId; model.PartNumber = part.Number; model.CustomerId = part.CustomerId; model.FoundryId = part.FoundryId; model.QuantityOnHand = (dynamicsPartStatus != null) ? Math.Round(dynamicsPartStatus.Quantity_on_Hand, 2) : 0.00m; model.Cost = (dynamicsPartStatus != null) ? Math.Round(dynamicsPartStatus.Cost, 2) : 0.00m; model.OnOrderQuantity = (dynamicsPartQty != null) ? Math.Round(dynamicsPartQty.QTYONORD, 2) : 0.00m; model.ReceiptDate = (dynamicsPartStatus != null && dynamicsPartStatus.Last_Receipt_Date != null) ? dynamicsPartStatus.Last_Receipt_Date : DateTime.MinValue; model.ReceiptDateStr = (dynamicsPartStatus != null && dynamicsPartStatus.Last_Receipt_Date != null) ? dynamicsPartStatus.Last_Receipt_Date.ToShortDateString() : "N/A"; model.ReceiptQuantity = (dynamicsPartQty != null) ? Math.Round(dynamicsPartQty.LRCPTQTY, 2) : 0.00m; model.SalesDate = (dynamicsPartStatus != null && dynamicsPartStatus.Last_Sale_Date != null) ? dynamicsPartStatus.Last_Sale_Date : DateTime.MinValue; model.SalesDateStr = (dynamicsPartStatus != null && dynamicsPartStatus.Last_Sale_Date != null) ? dynamicsPartStatus.Last_Sale_Date.ToShortDateString() : "N/A"; model.YearToDateSales = (dynamicsPartSales != null) ? Math.Round(dynamicsPartSales.YTD_SALES, 2) : 0.00m; if (_partRepository != null) { _partRepository.Dispose(); _partRepository = null; } if (_dynamicsPartRepository != null) { _dynamicsPartRepository.Dispose(); _dynamicsPartRepository = null; } return(model); }
/// <summary> /// convert bol to view model /// </summary> /// <param name="bol"></param> /// <returns></returns> public BillOfLadingViewModel ConvertToView(BillOfLading bol) { BillOfLadingViewModel model = new BillOfLadingViewModel(); var _bolRepository = new BillOfLadingRepository(); var _foundryDynamicsRepository = new FoundryDynamicsRepository(); var _foundryInvoiceRepository = new FoundryInvoiceRepository(); var _containerRepository = new ContainerRepository(); var _foundryOrderRepository = new FoundryOrderRepository(); var dynamicsFoundry = _foundryDynamicsRepository.GetFoundry(bol.FoundryId); var foundryInvoice = _foundryInvoiceRepository.GetFoundryInvoiceByBillOfLading(bol.BillOfLadingId); var containers = _containerRepository.GetContainers().Where(x => x.BillOfLadingId == bol.BillOfLadingId).ToList(); model.BillOfLadingId = bol.BillOfLadingId; model.ShipmentId = bol.ShipmentId; model.FoundryId = bol.FoundryId; model.BolNumber = (!string.IsNullOrEmpty(bol.Number)) ? bol.Number : "N/A"; model.BolDate = bol.BolDate; model.BolDateStr = (bol.BolDate != null) ? bol.BolDate.ToShortDateString() : "N/A"; model.FoundryName = (dynamicsFoundry != null && !string.IsNullOrEmpty(dynamicsFoundry.VENDSHNM)) ? dynamicsFoundry.VENDSHNM : "N/A"; model.Description = (!string.IsNullOrEmpty(bol.Description)) ? bol.Description : "N/A"; model.HasLcl = bol.HasLcl; model.HasDoorMove = bol.HasDoorMove; model.HasArrivalNotice = bol.HasArrivalNotice; model.HasOriginalDocuments = bol.HasOriginalDocuments; model.PalletCount = bol.PalletCount; model.GrossWeight = bol.GrossWeight; model.NetWeight = bol.NetWeight; model.BolNotes = (!string.IsNullOrEmpty(bol.Notes)) ? bol.Notes : "N/A"; model.WireInstructions = (!string.IsNullOrEmpty(bol.WireInstructions)) ? bol.WireInstructions : "N/A"; model.CustomsNumber = (!string.IsNullOrEmpty(bol.CustomsNumber)) ? bol.CustomsNumber : "N/A"; model.IsCustomsLiquidated = bol.IsCustomsLiquidated; model.FoundryInvoiceId = (foundryInvoice != null) ? foundryInvoice.FoundryInvoiceId : Guid.Empty; model.BillOfLadingId = (foundryInvoice != null) ? foundryInvoice.FoundryInvoiceId : Guid.Empty; model.InvoiceNumber = (foundryInvoice != null && !string.IsNullOrEmpty(foundryInvoice.Number)) ? foundryInvoice.Number : "N/A"; model.InvoiceTotal = (foundryInvoice != null) ? foundryInvoice.Amount : 0.00m; model.ScheduledDate = (foundryInvoice != null && foundryInvoice.ScheduledPaymentDate != null) ? foundryInvoice.ScheduledPaymentDate : DateTime.MinValue; model.ScheduledDateStr = (foundryInvoice != null && foundryInvoice.ScheduledPaymentDate != null) ? foundryInvoice.ScheduledPaymentDate.Value.ToShortDateString() : "N/A"; model.ActualDate = (foundryInvoice != null && foundryInvoice.ActualPaymentDate != null) ? foundryInvoice.ActualPaymentDate : DateTime.MinValue; model.ActualDateStr = (foundryInvoice != null && foundryInvoice.ActualPaymentDate != null) ? foundryInvoice.ActualPaymentDate.Value.ToShortDateString() : "N/A"; model.InvoiceNotes = (foundryInvoice != null && !string.IsNullOrEmpty(foundryInvoice.Notes)) ? foundryInvoice.Notes : "N/A"; model.HasBeenAnalyzed = bol.HasBeenAnalyzed; if (containers != null && containers.Count > 0) { model.Containers = new List <ContainerViewModel>(); foreach (var container in containers) { ContainerViewModel convertedModel = new ContainerConverter().ConvertToView(container); model.Containers.Add(convertedModel); } model.ContainerParts = new List <ContainerPartViewModel>(); model.Pallets = new List <PalletViewModel>(); model.PurchaseOrders = new List <FoundryOrderViewModel>(); foreach (var container in model.Containers) { if (container.ContainerParts != null) { foreach (var containerPart in container.ContainerParts) { model.ContainerParts.Add(containerPart); model.Pallets.Add(new PalletViewModel() { PalletNumber = containerPart.PalletNumber }); var foundryOrder = _foundryOrderRepository.GetFoundryOrder(containerPart.FoundryOrderId); if (foundryOrder != null) { FoundryOrderViewModel convertedModel = new FoundryOrderConverter().ConvertToView(foundryOrder); model.PurchaseOrders.Add(convertedModel); } } } } if (model.PurchaseOrders != null && model.PurchaseOrders.Count > 0) { model.PurchaseOrders = model.PurchaseOrders.GroupBy(x => x.FoundryOrderId).Select(y => y.First()).ToList(); } if (model.Pallets != null && model.Pallets.Count > 0) { model.Pallets = model.Pallets.Distinct().ToList(); } } model.FoundryInvoice = new FoundryInvoiceConverter().ConvertToView(foundryInvoice); if (_bolRepository != null) { _bolRepository.Dispose(); _bolRepository = null; } if (_foundryDynamicsRepository != null) { _foundryDynamicsRepository.Dispose(); _foundryDynamicsRepository = null; } if (_foundryInvoiceRepository != null) { _foundryInvoiceRepository.Dispose(); _foundryInvoiceRepository = null; } if (_containerRepository != null) { _containerRepository.Dispose(); _containerRepository = null; } if (_foundryOrderRepository != null) { _foundryOrderRepository.Dispose(); _foundryOrderRepository = null; } return(model); }
/// <summary> /// convert foundry order to view model /// </summary> /// <param name="order"></param> /// <returns></returns> public FoundryOrderViewModel ConvertToView(FoundryOrder order) { FoundryOrderViewModel model = new FoundryOrderViewModel(); var _projectRepository = new ProjectRepository(); var _customerDynamicsRepository = new CustomerDynamicsRepository(); var _customerAddressDynamicsRepository = new CustomerAddressDynamicsRepository(); var _stateRepository = new StateRepository(); var _foundryDynamicsRepository = new FoundryDynamicsRepository(); var _siteDynamicsRepository = new SiteDynamicsRepository(); var _orderTermRepository = new OrderTermRepository(); var _billOfLadingRepository = new BillOfLadingRepository(); var _customerOrderRepository = new CustomerOrderRepository(); var _foundryOrderRepository = new FoundryOrderRepository(); var project = _projectRepository.GetProject(order.ProjectId); var dynamicsCustomer = _customerDynamicsRepository.GetCustomer(order.CustomerId); var dynamicsCustomerAddress = _customerAddressDynamicsRepository.GetCustomerAddress(order.CustomerAddressId); var state = _stateRepository.GetState((dynamicsCustomerAddress != null && !string.IsNullOrEmpty(dynamicsCustomerAddress.STATE)) ? dynamicsCustomerAddress.STATE : string.Empty); var stateName = (state != null && !string.IsNullOrEmpty(state.Name)) ? ", " + state.Name : string.Empty; var dynamicsFoundry = _foundryDynamicsRepository.GetFoundry(order.FoundryId); var dynamicsSite = _siteDynamicsRepository.GetSite((dynamicsCustomerAddress != null && !string.IsNullOrEmpty(dynamicsCustomerAddress.LOCNCODE)) ? dynamicsCustomerAddress.LOCNCODE : string.Empty); var orderTerm = _orderTermRepository.GetOrderTerm(order.ShipmentTermsId); var billOfLading = _billOfLadingRepository.GetBillOfLadings().FirstOrDefault(x => x.FoundryId.Replace(" ", string.Empty).ToLower() == order.FoundryId.Replace(" ", string.Empty).ToLower()); var parts = _foundryOrderRepository.GetFoundryOrderParts().Where(x => x.FoundryOrderId == order.FoundryOrderId).ToList(); model.FoundryOrderId = order.FoundryOrderId; model.BillOfLadingId = (billOfLading != null) ? billOfLading.BillOfLadingId : Guid.Empty; model.OrderNumber = (!string.IsNullOrEmpty(order.Number)) ? order.Number : "N/A"; model.CustomerId = order.CustomerId; model.CustomerName = (dynamicsCustomer != null && !string.IsNullOrEmpty(dynamicsCustomer.SHRTNAME)) ? dynamicsCustomer.SHRTNAME : "N/A"; model.CustomerAddressId = order.CustomerAddressId; model.CustomerAddress = (dynamicsCustomerAddress != null) ? dynamicsCustomerAddress.ADDRESS1 + " " + dynamicsCustomerAddress.CITY + ", " + stateName : "N/A"; model.ProjectId = order.ProjectId; model.ProjectName = (project != null) ? project.Name : "N/A"; model.FoundryId = order.FoundryId; model.FoundryName = (dynamicsFoundry != null && !string.IsNullOrEmpty(dynamicsFoundry.VENDSHNM)) ? dynamicsFoundry.VENDSHNM : "N/A"; model.OrderNotes = (!string.IsNullOrEmpty(order.Notes)) ? order.Notes : "N/A"; model.ShipmentTermsId = order.ShipmentTermsId; model.ShipmentTerms = (orderTerm != null) ? orderTerm.Description : "N/A"; model.OrderDate = order.OrderDate; model.PODate = (order.OrderDate != null) ? order.OrderDate : DateTime.MinValue; model.PODateStr = (order.OrderDate != null) ? order.OrderDate.ToShortDateString() : "N/A"; model.DueDate = (order.DueDate != null) ? order.DueDate : DateTime.MinValue; model.DueDateStr = (order.DueDate != null) ? order.DueDate.Value.ToShortDateString() : "N/A"; model.PortDate = (order.PortDate != null) ? order.PortDate : DateTime.MinValue; model.PortDateStr = (order.PortDate != null) ? order.PortDate.Value.ToShortDateString() : "N/A"; model.ShipDate = (order.ShipDate != null) ? order.ShipDate : DateTime.MinValue; model.ShipDateStr = (order.ShipDate != null) ? order.ShipDate.Value.ToShortDateString() : "N/A"; model.EstArrivalDate = (order.EstArrivalDate != null) ? order.EstArrivalDate : DateTime.MinValue; model.EstArrivalDateStr = (order.EstArrivalDate != null) ? order.EstArrivalDate.Value.ToShortDateString() : "N/A"; model.ShipVia = (!string.IsNullOrEmpty(order.ShipVia)) ? order.ShipVia : "N/A"; model.TransitDays = order.TransitDays; model.SiteId = order.SiteId; model.SiteDescription = (dynamicsSite != null && !string.IsNullOrEmpty(dynamicsSite.LOCNDSCR)) ? dynamicsSite.LOCNDSCR : "N/A"; model.IsOpen = order.IsOpen ? true : false; model.IsConfirmed = order.IsConfirmed; model.ConfirmedDate = (order.ConfirmedDate != null) ? order.ConfirmedDate : DateTime.MinValue; model.ConfirmedDateStr = (order.ConfirmedDate != null) ? order.ConfirmedDate.Value.ToShortDateString() : "N/A"; model.IsHold = order.IsHold; model.HoldExpirationDate = (order.HoldExpirationDate != null) ? order.HoldExpirationDate : DateTime.MinValue; model.HoldExpirationDateStr = (order.HoldExpirationDate != null) ? order.HoldExpirationDate.Value.ToShortDateString() : "N/A"; model.HoldNotes = (!string.IsNullOrEmpty(order.HoldNotes)) ? order.HoldNotes : "N/A"; model.IsCanceled = order.IsCanceled; model.CanceledDate = (order.CanceledDate != null) ? order.CanceledDate : DateTime.MinValue; model.CanceledDateStr = (order.CanceledDate != null) ? order.CanceledDate.Value.ToShortDateString() : "N/A"; model.CancelNotes = (!string.IsNullOrEmpty(order.CancelNotes)) ? order.CancelNotes : "N/A"; model.IsComplete = order.IsComplete; model.CompletedDate = (order.CompletedDate != null) ? order.CompletedDate : DateTime.MinValue; model.CompletedDateStr = (order.CompletedDate != null) ? order.CompletedDate.Value.ToShortDateString() : "N/A"; model.Status = order.IsOpen ? "Open" : order.IsCanceled ? "Canceled" : order.IsComplete ? "Completed" : order.IsHold ? "On Hold" : "N/A"; model.IsSample = order.IsSample; model.IsTooling = order.IsTooling; model.IsProduction = order.IsProduction; model.OrderTypeDescription = order.IsSample ? "Sample" : order.IsTooling ? "Tooling" : order.IsProduction ? "Production" : "N/A"; if (parts != null && parts.Count > 0) { var foundryOrderParts = new List <FoundryOrderPartViewModel>(); var totalPrice = 0.00m; foreach (var part in parts) { FoundryOrderPartViewModel foundryOrderPart = new FoundryOrderPartViewModel(); if (model.OrderTypeDescription.Equals("Sample") || model.OrderTypeDescription.Equals("Tooling")) { foundryOrderPart = new FoundryOrderPartConverter().ConvertToProjectPartView(part); } else { foundryOrderPart = new FoundryOrderPartConverter().ConvertToPartView(part); } foundryOrderParts.Add(foundryOrderPart); totalPrice += (foundryOrderPart.Price * foundryOrderPart.FoundryOrderQuantity); } model.TotalPrice = Math.Round(totalPrice, 2); model.FoundryOrderParts = foundryOrderParts; } if (_projectRepository != null) { _projectRepository.Dispose(); _projectRepository = null; } if (_customerDynamicsRepository != null) { _customerDynamicsRepository.Dispose(); _customerDynamicsRepository = null; } if (_customerAddressDynamicsRepository != null) { _customerAddressDynamicsRepository.Dispose(); _customerAddressDynamicsRepository = null; } if (_stateRepository != null) { _stateRepository.Dispose(); _stateRepository = null; } if (_foundryDynamicsRepository != null) { _foundryDynamicsRepository.Dispose(); _foundryDynamicsRepository = null; } if (_siteDynamicsRepository != null) { _siteDynamicsRepository.Dispose(); _siteDynamicsRepository = null; } if (_orderTermRepository != null) { _orderTermRepository.Dispose(); _orderTermRepository = null; } if (_billOfLadingRepository != null) { _billOfLadingRepository.Dispose(); _billOfLadingRepository = null; } if (_customerOrderRepository != null) { _customerOrderRepository.Dispose(); _customerOrderRepository = null; } if (_foundryOrderRepository != null) { _foundryOrderRepository.Dispose(); _foundryOrderRepository = null; } return(model); }
/// <summary> /// convert project part to part view model /// </summary> /// <param name="projectPart"></param> /// <returns></returns> public PartViewModel ConvertToView(ProjectPart projectPart) { PartViewModel model = new PartViewModel(); var _projectRepository = new ProjectRepository(); var _foundryOrderRepository = new FoundryOrderRepository(); var _partTypeRepository = new PartTypeRepository(); var _partStatusRepository = new PartStatusRepository(); var partType = _partTypeRepository.GetPartType(projectPart.PartTypeId); var statusEntity = _partStatusRepository.GetPartStatus(projectPart.PartStatusId); var foundryOrderPart = _foundryOrderRepository.GetFoundryOrderPartByProjectPart(projectPart.ProjectPartId); if (foundryOrderPart != null) { var toolingOrder = _foundryOrderRepository.GetToolingFoundryOrder(foundryOrderPart.FoundryOrderId); model.FoundryOrderId = (toolingOrder != null) ? foundryOrderPart.FoundryOrderId : Guid.Empty; model.ToolingOrderNumber = (toolingOrder != null && !string.IsNullOrEmpty(toolingOrder.Number)) ? toolingOrder.Number : "N/A"; model.ToolingDescription = projectPart.ToolingDescription; } model.ProjectPartId = projectPart.ProjectPartId; model.PartId = projectPart.PartId; model.PartNumber = (!string.IsNullOrEmpty(projectPart.Number)) ? projectPart.Number : "N/A"; model.PartDescription = (!string.IsNullOrEmpty(projectPart.Description)) ? projectPart.Description : "N/A"; model.AccountCode = (!string.IsNullOrEmpty(projectPart.AccountCode)) ? projectPart.AccountCode : "N/A"; model.RevisionNumber = (!string.IsNullOrEmpty(projectPart.RevisionNumber)) ? projectPart.RevisionNumber : "N/A"; model.CustomerId = projectPart.CustomerId; model.CustomerAddressId = projectPart.CustomerAddressId; model.FoundryId = projectPart.FoundryId; model.SubFoundryId = projectPart.SubFoundryId; model.HtsNumberId = projectPart.HtsNumberId; model.MaterialId = projectPart.MaterialId; model.SpecificationMaterialId = projectPart.MaterialSpecificationId; model.PartStatusId = projectPart.PartStatusId; model.PartStatusDescription = (statusEntity != null && !string.IsNullOrEmpty(statusEntity.Description)) ? statusEntity.Description : "N/A"; model.PartTypeId = projectPart.PartTypeId; model.PartTypeDescription = (partType != null && !string.IsNullOrEmpty(partType.Description)) ? partType.Description : "N/A"; model.ShipmentTermId = projectPart.ShipmentTermId; model.PaymentTermId = projectPart.PaymentTermId; model.SurchargeId = projectPart.SurchargeId; model.SiteId = projectPart.SiteId; model.DestinationId = projectPart.DestinationId; model.CoatingTypeId = projectPart.CoatingTypeId; model.PatternMaterialId = projectPart.PatternMaterialId; model.IsRaw = projectPart.IsRaw; model.IsMachined = projectPart.IsMachined; model.PalletQuantity = (projectPart.PalletQuantity != 0) ? projectPart.PalletQuantity : 0; model.PalletWeight = (projectPart.PalletQuantity != 0) ? projectPart.PalletQuantity * projectPart.Weight : 0.00m; model.Weight = (projectPart.Weight != 0.00m) ? projectPart.Weight : 0.00m; model.Cost = (projectPart.Cost != 0.00m) ? projectPart.Cost : 0.00m; model.Price = (projectPart.Price != 0.00m) ? projectPart.Price : 0.00m; model.AdditionalCost = (projectPart.AdditionalCost != 0.00m) ? projectPart.AdditionalCost : 0.00m; model.YearlySalesTotal = 0.00m; model.SixtyDaysSalesTotal = 0.00m; model.MonthlySalesTotal = 0.00m; model.AverageDailySales = 0.00m; model.QuantityOnHand = 0; model.FixtureDate = (projectPart.FixtureDate != null) ? projectPart.FixtureDate : DateTime.MinValue; model.FixtureCost = (projectPart.FixtureCost != 0.00m) ? projectPart.FixtureCost : 0.00m; model.FixturePrice = (projectPart.FixturePrice != 0.00m) ? projectPart.FixturePrice : 0.00m; model.PatternDate = projectPart.PatternDate; model.PatternCost = (projectPart.PatternCost != 0.00m) ? projectPart.PatternCost : 0.00m; model.PatternPrice = (projectPart.PatternPrice != 0.00m) ? projectPart.PatternPrice : 0.00m; model.IsFamilyPattern = projectPart.IsFamilyPattern; model.Notes = (projectPart.Notes != null) ? projectPart.Notes : "N/A"; model.AnnualUsage = (projectPart.PatternPrice != 0) ? projectPart.AnnualUsage : 0; model.IsActive = true; model.IsProjectPart = true; if (projectPart.ProjectPartDrawings != null && projectPart.ProjectPartDrawings.Count > 0) { var drawings = new List <DrawingViewModel>(); foreach (var partDrawing in projectPart.ProjectPartDrawings) { DrawingViewModel convertedModel = new ProjectPartDrawingConverter().ConvertToView(partDrawing); drawings.Add(convertedModel); } model.Drawings = drawings; } if (projectPart.ProjectPartLayouts != null && projectPart.ProjectPartLayouts.Count > 0) { var layouts = new List <LayoutViewModel>(); foreach (var partLayout in projectPart.ProjectPartLayouts) { LayoutViewModel convertedModel = new ProjectPartLayoutConverter().ConvertToView(partLayout); layouts.Add(convertedModel); } model.Layouts = layouts; } if (_projectRepository != null) { _projectRepository.Dispose(); _projectRepository = null; } if (_foundryOrderRepository != null) { _foundryOrderRepository.Dispose(); _foundryOrderRepository = null; } if (_partTypeRepository != null) { _partTypeRepository.Dispose(); _partTypeRepository = null; } if (_partStatusRepository != null) { _partStatusRepository.Dispose(); _partStatusRepository = null; } return(model); }
/// <summary> /// convert container part to warehouse inventory list model /// </summary> /// <param name="containerPart"></param> /// <returns></returns> public WarehouseInventoryViewModel ConvertToListView(ContainerPart containerPart) { WarehouseInventoryViewModel model = new WarehouseInventoryViewModel(); var _foundryOrderRepository = new FoundryOrderRepository(); var _customerOrderRepository = new CustomerOrderRepository(); var _partRepository = new PartRepository(); var _dynamicsPartRepository = new PartDynamicsRepository(); var _containerRepository = new ContainerRepository(); var foundryOrderPart = _foundryOrderRepository.GetFoundryOrderPart(containerPart.FoundryOrderPartId); var customerOrderPart = _customerOrderRepository.GetCustomerOrderPart((foundryOrderPart != null) ? foundryOrderPart.CustomerOrderPartId : Guid.Empty); var part = _partRepository.GetPart((foundryOrderPart != null) ? foundryOrderPart.PartId : Guid.Empty); var dynamicsPart = _dynamicsPartRepository.GetPartMaster((part != null) ? part.Number : string.Empty); var container = _containerRepository.GetContainer(containerPart.ContainerId); model.CustomerId = (part != null) ? part.CustomerId : "N/A"; model.ShipCode = (foundryOrderPart != null) ? foundryOrderPart.ShipCode : "N/A"; model.PartNumber = (part != null && !string.IsNullOrEmpty(part.Number)) ? part.Number : "N/A"; model.PartWeight = (dynamicsPart != null) ? (dynamicsPart.ITEMSHWT / 100.00m) : 0.00m; model.PalletNumber = (!string.IsNullOrEmpty(part.Number)) ? containerPart.PalletNumber : "N/A"; model.PalletQuantity = containerPart.Quantity; model.TotalQuantity = containerPart.Quantity; model.ContainerNumber = (!string.IsNullOrEmpty(part.Number)) ? container.Number : "N/A"; model.PONumber = (customerOrderPart != null && !string.IsNullOrEmpty(customerOrderPart.CustomerOrder.PONumber)) ? customerOrderPart.CustomerOrder.PONumber : "N/A"; model.WarehouseDate = (foundryOrderPart != null) ? foundryOrderPart.ReceiptDate : DateTime.MinValue; model.WarehouseDateStr = (foundryOrderPart != null && foundryOrderPart.ReceiptDate != null) ? foundryOrderPart.ReceiptDate.Value.ToShortDateString() : "N/A"; model.SixtyDaysDate = (foundryOrderPart != null && foundryOrderPart.ReceiptDate != null) ? foundryOrderPart.ReceiptDate.Value.AddDays(60) : DateTime.MinValue; model.SixtyDaysDateStr = (model.SixtyDaysDate != null) ? model.SixtyDaysDate.Value.ToShortDateString() : "N/A"; if (_foundryOrderRepository != null) { _foundryOrderRepository.Dispose(); _foundryOrderRepository = null; } if (_customerOrderRepository != null) { _customerOrderRepository.Dispose(); _customerOrderRepository = null; } if (_partRepository != null) { _partRepository.Dispose(); _partRepository = null; } if (_dynamicsPartRepository != null) { _dynamicsPartRepository.Dispose(); _dynamicsPartRepository = null; } if (_containerRepository != null) { _containerRepository.Dispose(); _containerRepository = null; } return(model); }
/// <summary> /// convert part to view model /// </summary> /// <param name="part"></param> /// <returns></returns> public PartViewModel ConvertToView(Part part) { PartViewModel model = new PartViewModel(); var _partRepository = new PartRepository(); var _dynamicsPartRepository = new PartDynamicsRepository(); var _projectPartRepository = new ProjectPartRepository(); var _customerDynamicsRepository = new CustomerDynamicsRepository(); var _foundryDynamicsRepository = new FoundryDynamicsRepository(); var _htsNumberRepository = new HtsNumberRepository(); var _partTypeRepository = new PartTypeRepository(); var _partStatusRepository = new PartStatusRepository(); var _foundryOrderRepository = new FoundryOrderRepository(); var dynamicsPart = _dynamicsPartRepository.GetPartMaster(part.Number); var dynamicsPartQty = _dynamicsPartRepository.GetPartQuantityMaster(part.Number); var dynamicsPartCurrency = _dynamicsPartRepository.GetPartCurrency(part.Number); var dynamicsPartRollingSales = _dynamicsPartRepository.GetItemRollingSales(part.Number); var foundryOrderPart = _foundryOrderRepository.GetFoundryOrderPartByPart(part.PartId); if (foundryOrderPart != null) { var toolingOrder = _foundryOrderRepository.GetToolingFoundryOrder(foundryOrderPart.FoundryOrderId); model.FoundryOrderId = (toolingOrder != null) ? foundryOrderPart.FoundryOrderId : Guid.Empty; model.ToolingOrderNumber = (toolingOrder != null && !string.IsNullOrEmpty(toolingOrder.Number)) ? toolingOrder.Number : "N/A"; model.ToolingDescription = (!string.IsNullOrEmpty(part.ToolingDescription)) ? part.ToolingDescription : "N/A"; } var latestDrawing = _partRepository.GetPartDrawings(part.PartId).FirstOrDefault(x => x.IsLatest == true); var weight = (dynamicsPart != null) ? Math.Round((dynamicsPart.ITEMSHWT / 100.00m), 2) : 0.00m; var yearlySalesTotal = (dynamicsPartRollingSales != null) ? (dynamicsPartRollingSales.Sales_1_mo_ago + dynamicsPartRollingSales.Sales_2_mo_ago + dynamicsPartRollingSales.Sales_3_mo_ago + dynamicsPartRollingSales.Sales_4_mo_ago + dynamicsPartRollingSales.Sales_5_mo_ago + dynamicsPartRollingSales.Sales_6_mo_ago + dynamicsPartRollingSales.Sales_7_mo_ago + dynamicsPartRollingSales.Sales_8_mo_ago + dynamicsPartRollingSales.Sales_9_mo_ago + dynamicsPartRollingSales.Sales_10_mo_ago + dynamicsPartRollingSales.Sales_11_mo_ago + dynamicsPartRollingSales.Sales_12_mo_ago) : 0.00m; model.ProjectPartId = Guid.Empty; model.PartId = part.PartId; model.PartNumber = (!string.IsNullOrEmpty(part.Number)) ? part.Number : "N/A"; model.AccountCode = (!string.IsNullOrEmpty(part.AccountCode)) ? part.AccountCode : "N/A"; model.PartDescription = (dynamicsPart != null && !string.IsNullOrEmpty(dynamicsPart.ITEMDESC)) ? dynamicsPart.ITEMDESC : "N/A"; model.RevisionNumber = (latestDrawing != null && !string.IsNullOrEmpty(latestDrawing.RevisionNumber)) ? latestDrawing.RevisionNumber : "N/A"; model.CustomerId = part.CustomerId; model.CustomerAddressId = part.CustomerAddressId; model.FoundryId = part.FoundryId; model.SubFoundryId = part.SubFoundryId; model.HtsNumberId = part.HtsNumberId; model.MaterialId = part.MaterialId; model.SpecificationMaterialId = part.MaterialSpecificationId; model.PartStatusId = part.PartStatusId; model.PartTypeId = part.PartTypeId; model.ShipmentTermId = part.ShipmentTermId; model.PaymentTermId = part.PaymentTermId; model.SurchargeId = part.SurchargeId; model.SiteId = part.SiteId; model.DestinationId = part.DestinationId; model.CoatingTypeId = part.CoatingTypeId; model.PatternMaterialId = part.PatternMaterialId; model.IsRaw = part.IsRaw; model.IsMachined = part.IsMachined; model.PalletQuantity = (part.PalletQuantity != 0) ? part.PalletQuantity : 0; model.PalletWeight = (part.PalletQuantity != 0) ? part.PalletQuantity * weight : 0.00m; model.Weight = weight; model.Cost = (dynamicsPart != null && (Math.Round(dynamicsPart.STNDCOST, 2) != 0.00m)) ? Math.Round(dynamicsPart.STNDCOST, 2) : 0.00m; model.Price = (dynamicsPartCurrency != null && (Math.Round(dynamicsPartCurrency.LISTPRCE, 2) != 0.00m)) ? Math.Round(dynamicsPartCurrency.LISTPRCE, 2) : 0.00m; model.AdditionalCost = (part.AdditionalCost != 0.00m) ? part.AdditionalCost : 0.00m; model.YearlySalesTotal = Math.Round(yearlySalesTotal, 2); model.SixtyDaysSalesTotal = (yearlySalesTotal != 0.00m) ? Math.Round((yearlySalesTotal / 6), 2) : 0.00m; model.MonthlySalesTotal = (yearlySalesTotal != 0.00m) ? Math.Round((yearlySalesTotal / 12), 2) : 0.00m; model.AverageDailySales = (yearlySalesTotal != 0.00m) ? Math.Round((yearlySalesTotal / 365), 2) : 0.00m; model.QuantityOnHand = (dynamicsPartQty != null && (Math.Round(dynamicsPartQty.QTYONHND, 2) != 0.00m)) ? Math.Round(dynamicsPartQty.QTYONHND, 2) : 0.00m; model.FixtureDate = (part.FixtureDate != null) ? part.FixtureDate : DateTime.MinValue; model.FixtureDateStr = (part.FixtureDate != null) ? part.FixtureDate.Value.ToShortDateString() : "N/A"; model.FixtureCost = (Math.Round(part.FixtureCost, 2) != 0.00m) ? Math.Round(part.FixtureCost, 2) : 0.00m; model.FixturePrice = (Math.Round(part.FixturePrice, 2) != 0.00m) ? Math.Round(part.FixturePrice, 2) : 0.00m; model.PatternDate = (part.PatternDate != null) ? part.PatternDate : DateTime.MinValue; model.PatternDateStr = (part.PatternDate != null) ? part.PatternDate.Value.ToShortDateString() : "N/A"; model.PatternCost = (Math.Round(part.PatternCost, 2) != 0.00m) ? Math.Round(part.PatternCost, 2) : 0.00m; model.PatternPrice = (Math.Round(part.PatternPrice, 2) != 0.00m) ? Math.Round(part.PatternPrice, 2) : 0.00m; model.IsFamilyPattern = part.IsFamilyPattern; model.Notes = (!string.IsNullOrEmpty(part.Notes)) ? part.Notes : "N/A"; model.AnnualUsage = (part.AnnualUsage != 0) ? part.AnnualUsage : 0; model.IsActive = part.IsActive; model.IsProjectPart = false; var partDrawings = _partRepository.GetPartDrawings(model.PartId ?? Guid.Empty); if (part.PartDrawings != null && part.PartDrawings.Count > 0) { var drawings = new List <DrawingViewModel>(); foreach (var partDrawing in partDrawings) { DrawingViewModel convertedModel = new PartDrawingConverter().ConvertToView(partDrawing); drawings.Add(convertedModel); } model.Drawings = drawings; } var partLayouts = _partRepository.GetPartLayouts(model.PartId ?? Guid.Empty); if (part.PartLayouts != null && part.PartLayouts.Count > 0) { var layouts = new List <LayoutViewModel>(); foreach (var partLayout in partLayouts) { LayoutViewModel convertedModel = new PartLayoutConverter().ConvertToView(partLayout); layouts.Add(convertedModel); } model.Layouts = layouts; } if (_partRepository != null) { _partRepository.Dispose(); _partRepository = null; } if (_dynamicsPartRepository != null) { _dynamicsPartRepository.Dispose(); _dynamicsPartRepository = null; } if (_projectPartRepository != null) { _projectPartRepository.Dispose(); _projectPartRepository = null; } if (_customerDynamicsRepository != null) { _customerDynamicsRepository.Dispose(); _customerDynamicsRepository = null; } if (_foundryDynamicsRepository != null) { _foundryDynamicsRepository.Dispose(); _foundryDynamicsRepository = null; } if (_htsNumberRepository != null) { _htsNumberRepository.Dispose(); _htsNumberRepository = null; } if (_partTypeRepository != null) { _partTypeRepository.Dispose(); _partTypeRepository = null; } if (_partStatusRepository != null) { _partStatusRepository.Dispose(); _partStatusRepository = null; } if (_foundryOrderRepository != null) { _foundryOrderRepository.Dispose(); _foundryOrderRepository = null; } return(model); }