public JsonResult GetPartsForPriceSheet(Guid rfqId, bool includeRaw, bool includeMachined) { var model = new PriceSheetPartViewModel(); var parts = new List <PriceSheetPartViewModel>(); var tempParts = _projectPartRepository.GetProjectParts().Where(x => x.RfqId == rfqId).OrderBy(x => x.Number).ToList(); if (tempParts != null && tempParts.Count > 0) { foreach (var tempPart in tempParts) { if (tempPart.IsRaw && includeRaw) { PriceSheetPartViewModel costPart = new PriceSheetPartConverter().ConvertToCostView(tempPart); parts.Add(costPart); } else if (tempPart.IsMachined && includeMachined) { PriceSheetPartViewModel costPart = new PriceSheetPartConverter().ConvertToCostView(tempPart); parts.Add(costPart); } } } model.OrderParts = parts.OrderBy(x => x.PartNumber).ToList(); return(Json(model, JsonRequestBehavior.AllowGet)); }
public ActionResult Quote(Guid rfqId, bool includeRaw, bool includeMachined) { var model = new PriceSheetViewModel(); var newPriceSheetNumber = PriceSheetNumber(); model.Number = newPriceSheetNumber; model.RfqId = rfqId; model.IncludeRaw = includeRaw; model.IncludeMachined = includeMachined; _priceSheetRepository.RemovePriceSheetNumber(newPriceSheetNumber); var parts = new List <PriceSheetPartViewModel>(); var tempParts = _projectPartRepository.GetProjectParts().Where(x => x.RfqId == rfqId).OrderBy(x => x.Number).ToList(); if (tempParts != null && tempParts.Count > 0) { foreach (var tempPart in tempParts) { if (tempPart.IsRaw && includeRaw) { PriceSheetPartViewModel convertedModel = new PriceSheetPartConverter().ConvertToCostView(tempPart); parts.Add(convertedModel); } else if (tempPart.IsMachined && includeMachined) { PriceSheetPartViewModel convertedModel = new PriceSheetPartConverter().ConvertToCostView(tempPart); parts.Add(convertedModel); } } } model.PriceSheetParts = parts.OrderBy(x => x.PartNumber).ToList(); return(View(model)); }
public JsonResult Edit(QuoteViewModel model) { var operationResult = new OperationResult(); var quoteToUpdate = new QuoteConverter().ConvertToDomain(model); operationResult = _quoteRepository.UpdateQuote(quoteToUpdate); if (operationResult.Success) { model.Success = true; model.IsHold = quoteToUpdate.IsHold; model.IsCanceled = quoteToUpdate.IsCanceled; var rfq = _rfqRepository.GetRfq(quoteToUpdate.RfqId); var rfqId = quoteToUpdate.RfqId; var priceSheetId = quoteToUpdate.PriceSheetId; var quoteId = model.QuoteId; var projectId = quoteToUpdate.ProjectId; var customerAddressId = quoteToUpdate.CustomerAddressId; var foundryId = (rfq != null) ? rfq.FoundryId : string.Empty; var htsNumberId = model.HtsNumberId; var shipmentTermId = model.ShipmentTermId; var paymentTermId = model.PaymentTermId; var materialId = quoteToUpdate.MaterialId; var coatingTypeId = quoteToUpdate.CoatingTypeId; var quotePriceSheet = _priceSheetRepository.GetPriceSheet(priceSheetId ?? Guid.Empty); if (model.QuoteParts != null && model.QuoteParts.Count() > 0) { foreach (var quotePart in model.QuoteParts) { var projectPart = new ProjectPartConverter().ConvertToDomain(quotePart); projectPart.RfqId = rfqId; projectPart.PriceSheetId = priceSheetId; projectPart.QuoteId = quoteId; projectPart.ProjectId = projectId; projectPart.CustomerAddressId = customerAddressId; projectPart.FoundryId = (string.IsNullOrEmpty(foundryId)) ? foundryId : projectPart.FoundryId; projectPart.HtsNumberId = htsNumberId; projectPart.ShipmentTermId = shipmentTermId; projectPart.PaymentTermId = paymentTermId; projectPart.MaterialId = materialId; projectPart.MaterialSpecificationId = materialId; projectPart.CoatingTypeId = coatingTypeId; projectPart.FixtureDate = (quotePriceSheet != null) ? quotePriceSheet.CreatedDate : null; //enter from price sheet projectPart.PatternDate = (quotePriceSheet != null) ? quotePriceSheet.CreatedDate : null; //enter from price sheet var projectPartToUpdate = _projectPartRepository.GetProjectPart(projectPart.ProjectPartId); if (projectPartToUpdate != null) { operationResult = _projectPartRepository.UpdateProjectPart(projectPart); } else { operationResult = _projectPartRepository.SaveProjectPart(projectPart); projectPart.ProjectPartId = operationResult.ReferenceId; if (quotePriceSheet != null) { var newPriceSheetPart = new PriceSheetPartConverter().ConvertToDomain(projectPart); newPriceSheetPart.IsQuote = true; newPriceSheetPart.IsProduction = false; operationResult = _priceSheetRepository.SavePriceSheetPart(newPriceSheetPart); } } } } var existingParts = _projectPartRepository.GetProjectParts().Where(x => x.QuoteId == quoteId).ToList(); if (existingParts != null) { foreach (var existingPart in existingParts) { var part = model.QuoteParts.FirstOrDefault(x => x.PartNumber == existingPart.Number); if (part == null) { existingPart.QuoteId = null; operationResult = _projectPartRepository.UpdateProjectPart(existingPart); } } } if (!operationResult.Success) { model.Success = false; model.Message = operationResult.Message; } } else { model.Success = false; model.Message = operationResult.Message; } return(Json(model, JsonRequestBehavior.AllowGet)); }
public JsonResult Create(QuoteViewModel model) { var operationResult = new OperationResult(); Quote newQuote = new QuoteConverter().ConvertToDomain(model); operationResult = _quoteRepository.SaveQuote(newQuote); if (operationResult.Success) { var quoteId = operationResult.ReferenceId; var rfq = _rfqRepository.GetRfq(model.RfqId); if (rfq != null) { rfq.IsOpen = false; operationResult = _rfqRepository.UpdateRfq(rfq); } var rfqId = model.RfqId; var priceSheetId = model.PriceSheetId; var projectId = model.ProjectId; var customerAddressId = model.CustomerAddressId; var foundryId = (rfq != null) ? rfq.FoundryId : string.Empty; var htsNumberId = model.HtsNumberId; var shipmentTermId = model.ShipmentTermId; var paymentTermId = model.PaymentTermId; var materialId = model.MaterialId; var coatingTypeId = model.CoatingTypeId; var quotePriceSheet = _priceSheetRepository.GetPriceSheet(priceSheetId ?? Guid.Empty); if (model.QuoteParts != null && model.QuoteParts.Count() > 0) { foreach (var quotePart in model.QuoteParts) { var projectPart = new ProjectPartConverter().ConvertToDomain(quotePart); projectPart.RfqId = rfqId; projectPart.PriceSheetId = priceSheetId; projectPart.QuoteId = quoteId; projectPart.ProjectId = projectId; projectPart.CustomerAddressId = customerAddressId; projectPart.FoundryId = (!string.IsNullOrEmpty(foundryId)) ? foundryId : projectPart.FoundryId; projectPart.HtsNumberId = htsNumberId; projectPart.ShipmentTermId = shipmentTermId; projectPart.PaymentTermId = paymentTermId; projectPart.MaterialId = materialId; projectPart.CoatingTypeId = coatingTypeId; projectPart.FixtureDate = (quotePriceSheet != null) ? quotePriceSheet.CreatedDate : null; //enter from price sheet projectPart.PatternDate = (quotePriceSheet != null) ? quotePriceSheet.CreatedDate : null; //enter from price sheet var projectPartToUpdate = _projectPartRepository.GetProjectPart(projectPart.ProjectPartId); if (projectPartToUpdate != null) { operationResult = _projectPartRepository.UpdateProjectPart(projectPart); } else { operationResult = _projectPartRepository.SaveProjectPart(projectPart); projectPart.ProjectPartId = operationResult.ReferenceId; if (quotePriceSheet != null) { var newPriceSheetPart = new PriceSheetPartConverter().ConvertToDomain(projectPart); newPriceSheetPart.IsQuote = true; newPriceSheetPart.IsProduction = false; operationResult = _priceSheetRepository.SavePriceSheetPart(newPriceSheetPart); } } } } operationResult.ReferenceId = quoteId; } return(Json(operationResult, JsonRequestBehavior.AllowGet)); }