private OperationResult EditPriceSheetParts(Guid priceSheetId) { var operationResult = new OperationResult(); var projectParts = _projectPartRepository.GetProjectParts().Where(x => x.PriceSheetId == priceSheetId).ToList(); if (projectParts != null && projectParts.Count > 0) { foreach (var projectPart in projectParts) { var existingPart = _partRepository.GetPart(projectPart.PartId); if (existingPart != null) { PartOperationModel convertedModel = new PartOperationConverter().ConvertFromProjectPart(projectPart); Part part = new PartConverter().ConvertToUpdatePart(convertedModel); operationResult = _partRepository.UpdatePart(part); IV00101_Part_Master partMaster = new PartConverter().ConvertToUpdateMaster(convertedModel); operationResult = _partDynamicsRepository.UpdatePartMaster(partMaster); IV00105_Part_Currency partCurrency = new PartConverter().ConvertToUpdateCurrency(convertedModel); operationResult = _partDynamicsRepository.UpdatePartCurrency(partCurrency); } } } return(operationResult); }
public JsonResult GetPart(Guid partId) { var part = _partRepository.GetPart(partId); PartViewModel model = new PartConverter().ConvertToView(part); return(Json(model, JsonRequestBehavior.AllowGet)); }
public JsonResult EditPart(PartOperationModel model) { var operationResult = new OperationResult(); if (model.IsProjectPart) { var currentPart = _projectPartRepository.GetProjectPart(model.ProjectPartId); if (currentPart != null) { currentPart = new ProjectPartConverter().ConvertToDomain(model); operationResult = _projectPartRepository.UpdateProjectPart(currentPart); if (operationResult.Success) { var partToEdit = _priceSheetRepository.GetProductionPriceSheetPartByProjectPart(currentPart.ProjectPartId); if (partToEdit != null) { partToEdit.Cost = model.Cost; partToEdit.Price = model.Price; partToEdit.AnnualCost = model.Cost * partToEdit.AnnualUsage; partToEdit.AnnualPrice = model.Price * partToEdit.AnnualUsage; operationResult = _priceSheetRepository.UpdatePriceSheetPart(partToEdit); var totalAnnualCost = _priceSheetRepository.GetPriceSheetParts(partToEdit.PriceSheetId).Select(x => x.AnnualCost).Sum(); var totalAnnualPrice = _priceSheetRepository.GetPriceSheetParts(partToEdit.PriceSheetId).Select(x => x.AnnualPrice).Sum(); var priceSheetToEdit = _priceSheetRepository.GetPriceSheet(partToEdit.PriceSheetId); priceSheetToEdit.AnnualMargin = (totalAnnualPrice - totalAnnualCost) / totalAnnualCost; operationResult = _priceSheetRepository.UpdatePriceSheet(priceSheetToEdit); } } } } else { var existingPart = _partRepository.GetPart(model.PartId); if (existingPart != null) { Part part = new PartConverter().ConvertToUpdatePart(model); operationResult = _partRepository.UpdatePart(part); } } return(Json(operationResult, JsonRequestBehavior.AllowGet)); }
private OperationResult ConvertProjectPartsToParts(Guid priceSheetId) { var operationResult = new OperationResult(); var projectParts = _projectPartRepository.GetProjectParts().Where(x => x.PriceSheetId == priceSheetId).ToList(); if (projectParts != null && projectParts.Count > 0) { foreach (var projectPart in projectParts) { var existingPart = _partRepository.GetPart(projectPart.PartId); if (existingPart != null) { PartOperationModel convertedModel = new PartOperationConverter().ConvertFromProjectPart(projectPart); Part part = new PartConverter().ConvertToUpdatePart(convertedModel); operationResult = _partRepository.UpdatePart(part); var existingProject = _projectRepository.GetProject(projectPart.ProjectId); if (existingProject != null) { if (existingProject.Parts.FirstOrDefault(x => x.PartId == part.PartId) == null) { existingProject.Parts.Add(part); operationResult = _projectRepository.UpdateProject(existingProject); } } IV00101_Part_Master partMaster = new PartConverter().ConvertToUpdateMaster(convertedModel); operationResult = _partDynamicsRepository.UpdatePartMaster(partMaster); IV00105_Part_Currency partCurrency = new PartConverter().ConvertToUpdateCurrency(convertedModel); operationResult = _partDynamicsRepository.UpdatePartCurrency(partCurrency); } else { var existingProject = _projectRepository.GetProject(projectPart.ProjectId); if (existingProject != null) { Part part = new PartConverter().ConvertToCreatePart(projectPart); existingProject.Parts.Add(part); operationResult = _projectRepository.UpdateProject(existingProject); existingPart = existingProject.Parts.FirstOrDefault(x => x.Number == part.Number); } projectPart.PartId = existingPart.PartId; operationResult = _projectPartRepository.UpdateProjectPart(projectPart); IV00101_Part_Master partMaster = new PartConverter().ConvertToCreateMaster(projectPart); operationResult = _partDynamicsRepository.SavePartMaster(partMaster); IV00105_Part_Currency partCurrency = new PartConverter().ConvertToCreateCurrency(projectPart); operationResult = _partDynamicsRepository.SavePartCurrency(partCurrency); IV00107_Part_Price_Option partPriceOption = new PartConverter().ConvertToCreatePriceOption(projectPart); operationResult = _partDynamicsRepository.SavePartPriceOption(partPriceOption); IV00108_Part_Price partPrice = new PartConverter().ConvertToCreatePrice(projectPart); operationResult = _partDynamicsRepository.SavePartPrice(partPrice); IV00103_Part_Vendor_Master partVendor = new PartConverter().ConvertToCreateVendor(projectPart); operationResult = _partDynamicsRepository.SavePartVendorMaster(partVendor); var projectPartDrawings = _projectPartRepository.GetProjectPartDrawings(projectPart.ProjectPartId); if (projectPartDrawings != null && projectPartDrawings.Count > 0) { foreach (var projectPartDrawing in projectPartDrawings) { operationResult = _projectPartRepository.DeleteProjectPartDrawing(projectPartDrawing.ProjectPartDrawingId); } } var projectPartLayouts = _projectPartRepository.GetProjectPartLayouts(projectPart.ProjectPartId); if (projectPartLayouts != null && projectPartLayouts.Count > 0) { foreach (var projectPartLayout in projectPartLayouts) { operationResult = _projectPartRepository.DeleteProjectPartLayout(projectPartLayout.ProjectPartLayoutId); } } } } } return(operationResult); }
public void ProcessBlock(List <string> block) { var firstLine = block.First(); if (firstLine.StartsWith("K0100")) { var values = firstLine.Split(' '); int numberOfCharacteristics; if (!int.TryParse(values[1], out numberOfCharacteristics)) { throw new Exception("Value of field K0100 is invalid."); } while (numberOfCharacteristics > Characteristics.Count) { Characteristics.Add(new Characteristic()); } firstLine = block[1]; } if (firstLine.StartsWith("K0999")) { //todo finish } if (firstLine.StartsWith("K1")) { //process part data var part = PartConverter.Convert(block); if (part != null) { Parts.Add(part); _currentPart = part; } } else if (firstLine.StartsWith("K2")) { //process characteristic data CharacteristicConverter.Convert(block, Characteristics.ToArray()); } else if (firstLine.StartsWith("K00") || char.IsNumber(firstLine[0])) { if (_currentPart == null) { throw new Exception("Invalid key structure. Part information should be processed before any measurements."); } //process value portion //part and characteristic sections are considered finished now so make sure we got all processed characteristics assigned to current part if (_currentPart.Characteristics == null) { //assign characteristics to _current part _currentPart.Characteristics = Characteristics.Where(p => string.IsNullOrEmpty(p.PartNumber) && !string.IsNullOrEmpty(p.Number)).ToArray(); foreach (var currentPartCharacteristic in _currentPart.Characteristics) { currentPartCharacteristic.PartNumber = _currentPart.Number; } } MeasurementConverter.Convert(block, _currentPart.Characteristics); } }
public JsonResult SearchParts(PartViewModel model) { var parts = new List <PartViewModel>(); var tempParts = _partRepository.GetParts(); if (model.PartNumber != null && model.PartNumber != string.Empty) { tempParts = tempParts.Where(x => x.Number.ToLower().Contains(model.PartNumber.ToLower())).ToList(); } if (model.ProjectId != null && model.ProjectId != Guid.Empty) { tempParts = tempParts.Where(x => x.Projects.Any(y => y.ProjectId == model.ProjectId)).ToList(); } if (model.CustomerId != null && model.CustomerId != string.Empty) { tempParts = tempParts.Where(x => x.CustomerId.Replace(" ", string.Empty).ToLower() == model.CustomerId.Replace(" ", string.Empty).ToLower()).ToList(); } if (model.FoundryId != null && model.FoundryId != string.Empty) { tempParts = tempParts.Where(x => x.FoundryId.Replace(" ", string.Empty).ToLower() == model.FoundryId.Replace(" ", string.Empty).ToLower()).ToList(); } if (model.HtsNumberId != null && model.HtsNumberId != Guid.Empty) { tempParts = tempParts.Where(x => x.HtsNumberId == model.HtsNumberId).ToList(); } if (model.MaterialId != null && model.MaterialId != Guid.Empty) { tempParts = tempParts.Where(x => x.MaterialId == model.MaterialId).ToList(); } if (model.PartStatusId != null && model.PartStatusId != Guid.Empty) { tempParts = tempParts.Where(x => x.PartStatusId == model.PartStatusId).ToList(); } else { var activeStatus = _partStatusRepository.GetPartStates().FirstOrDefault(x => x.Description.ToLower() == "active"); tempParts = tempParts.Where(x => x.PartStatusId == activeStatus.PartStatusId).ToList(); } if (model.PartTypeId != null && model.PartTypeId != Guid.Empty) { tempParts = tempParts.Where(x => x.PartTypeId == model.PartTypeId).ToList(); } var partsQuery = new List <PartViewModel>(); if (tempParts != null && tempParts.Count > 0) { foreach (var tempPart in tempParts) { PartViewModel convertedModel = new PartConverter().ConvertToListView(tempPart); partsQuery.Add(convertedModel); } } parts = partsQuery.OrderBy(x => x.PartNumber).ToList(); var jsonResult = Json(parts, JsonRequestBehavior.AllowGet); jsonResult.MaxJsonLength = int.MaxValue; return(jsonResult); }
public ActionResult Detail(Guid partId) { var model = new PartViewModel(); var currentPart = _projectPartRepository.GetProjectPart(partId); if (currentPart != null) { var projectPart = _projectPartRepository.GetProjectPart(partId); model = new ProjectPartConverter().ConvertToView(projectPart); } else { var part = _partRepository.GetPart(partId); model = new PartConverter().ConvertToView(part); } model.SelectableCustomers = _customerDynamicsRepository.GetSelectableCustomers(); var defaultCustomer = new SelectListItem() { Text = "--Select Customer--", Value = null }; model.SelectableCustomers.Insert(0, defaultCustomer); model.SelectableFoundries = _foundryDynamicsRepository.GetSelectableFoundries(); var defaultFoundry = new SelectListItem() { Text = "--Select Foundry--", Value = null }; model.SelectableFoundries.Insert(0, defaultFoundry); var htsNumbers = _htsNumberRepository.GetSelectableHtsNumbers(); var defaultHtsNumber = new SelectListItem() { Text = "--Select Hts Number--", Value = null }; htsNumbers.Insert(0, defaultHtsNumber); model.SelectableHtsNumbers = htsNumbers; var material = _materialRepository.GetSelectableMaterials(); var defaultMaterial = new SelectListItem() { Text = "--Select Material--", Value = null }; material.Insert(0, defaultMaterial); model.SelectableMaterial = material; var specificationMaterial = _specificationMaterialRepository.GetSelectableSpecificationMaterials(); var defaultSpecification = new SelectListItem() { Text = "--Select Material Specification--", Value = null }; specificationMaterial.Insert(0, defaultSpecification); model.SelectableSpecificationMaterial = specificationMaterial; var partStates = _partStatusRepository.GetSelectablePartStates(); var defaultPartStatus = new SelectListItem() { Text = "--Select Part Status--", Value = null }; partStates.Insert(0, defaultPartStatus); model.SelectablePartStates = partStates; var destinations = _destinationRepository.GetSelectableDestinations(); var defaultDestination = new SelectListItem() { Text = "--Select Destination--", Value = null }; destinations.Insert(0, defaultDestination); model.SelectableDestinations = destinations; var partTypes = _partTypeRepository.GetSelectablePartTypes(); var defaultPartType = new SelectListItem() { Text = "--Select Part Type--", Value = null }; partTypes.Insert(0, defaultPartType); model.SelectablePartTypes = partTypes; model.SelectableProjects = _projectRepository.GetSelectablePartProjects(partId); var paymentTerms = _paymentTermRepository.GetSelectablePaymentTerms(); var defaultPaymentTerm = new SelectListItem() { Text = "--Select Payment Term--", Value = null }; paymentTerms.Insert(0, defaultPaymentTerm); model.SelectablePaymentTerms = paymentTerms; var shipmentTerms = _shipmentTermRepository.GetSelectableShipmentTerms(); var defaultShipmentTerm = new SelectListItem() { Text = "--Select Shipment Term--", Value = null }; shipmentTerms.Insert(0, defaultShipmentTerm); model.SelectableShipmentTerms = shipmentTerms; var surcharge = _surchargeRepository.GetSelectableSurcharges(); model.SelectableSurcharge = surcharge; var defaultSurcharge = new SelectListItem() { Text = "--Select Surcharge--", Value = null }; surcharge.Insert(0, defaultSurcharge); model.SelectableSites = _siteDynamicsRepository.GetSelectableSites(); var defaultSite = new SelectListItem() { Text = "--Select Site--", Value = null }; model.SelectableSites.Insert(0, defaultSite); var coatingTypes = _coatingTypeRepository.GetSelectableCoatingTypes(); var defaultCoatingType = new SelectListItem() { Text = "--Select Coating Type--", Value = null }; coatingTypes.Insert(0, defaultCoatingType); model.SelectableCoatingTypes = coatingTypes; var patternMaterial = _patternMaterialRepository.GetSelectablePatternMaterials(); var defaultPattern = new SelectListItem() { Text = "--Select Pattern Material--", Value = null }; patternMaterial.Insert(0, defaultPattern); model.SelectablePatternMaterial = patternMaterial; return(View(model)); }