Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public JsonResult GetPart(Guid partId)
        {
            var part = _partRepository.GetPart(partId);

            PartViewModel model = new PartConverter().ConvertToView(part);

            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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));
        }