public JsonResult GetProductivityUnitData([FromBody] int ProductivityUnitNo) { UnidadesProdutivas ProductivityUnitDB = DBProductivityUnits.GetById(ProductivityUnitNo); ProductivityUnitViewModel result = new ProductivityUnitViewModel(); if (ProductivityUnitDB != null) { result = DBProductivityUnits.ParseToViewModel(ProductivityUnitDB); result.BillingProjects = DBProjectBilling.ParseListToViewModel(DBProjectBilling.GetByNUnidadeProdutiva(result.ProductivityUnitNo)); result.CoffeeShops = DBCoffeeShops.ParseListToViewModel(DBCoffeeShops.GetByNUnidadeProdutiva(result.ProductivityUnitNo), _config.NAVDatabaseName, _config.NAVCompanyName); } else { result.ProductivityUnitNo = new int(); result.BillingProjects = new List <DBProjectBillingViewModel>(); result.CoffeeShops = new List <CoffeeShopViewModel>(); } //Get Project Movements Values if (String.IsNullOrEmpty(result.ProjectKitchen)) { List <MovimentosDeProjeto> KMovements = DBProjectMovements.GetByProjectNo(result.ProjectKitchen); result.ProjectKitchenTotalMovs = KMovements.Where(x => x.PreçoTotal.HasValue).Sum(x => x.PreçoTotal.Value); } if (String.IsNullOrEmpty(result.ProjectSubsidiaries)) { List <MovimentosDeProjeto> SMovements = DBProjectMovements.GetByProjectNo(result.ProjectSubsidiaries); result.ProjectSubsidiariesTotalMovs = SMovements.Where(x => x.PreçoTotal.HasValue).Sum(x => x.PreçoTotal.Value); } if (String.IsNullOrEmpty(result.ProjectWasteFeedstock)) { List <MovimentosDeProjeto> WMovements = DBProjectMovements.GetByProjectNo(result.ProjectWasteFeedstock); result.ProjectWasteFeedstockTotalMovs = WMovements.Where(x => x.PreçoTotal.HasValue).Sum(x => x.PreçoTotal.Value); } return(Json(result)); }
public JsonResult UpdateProductivityUnit([FromBody] ProductivityUnitViewModel data) { try { if (data != null) { data.CreateUser = User.Identity.Name; UnidadesProdutivas CObject = DBProductivityUnits.ParseToDb(data); CObject = DBProductivityUnits.GetById(CObject.NºUnidadeProdutiva); if (CObject != null) { CObject.Descrição = data.Description; CObject.Estado = data.Status; CObject.NºCliente = data.ClientNo; CObject.CódigoRegião = data.CodeRegion; CObject.CódigoCentroResponsabilidade = data.CodeResponsabilityCenter; CObject.CódigoÁreaFuncional = data.CodeFunctionalArea; CObject.DataInícioExploração = data.StartDateExploration != "" && data.StartDateExploration != null?DateTime.Parse(data.StartDateExploration) : (DateTime?)null; CObject.DataFimExploração = data.EndDateExploration != "" && data.EndDateExploration != null?DateTime.Parse(data.EndDateExploration) : (DateTime?)null; CObject.Armazém = data.Warehouse; CObject.ArmazémFornecedor = data.WarehouseSupplier; CObject.ProjetoCozinha = data.ProjectKitchen; CObject.ProjetoDesperdícios = data.ProjectWaste; CObject.ProjetoDespMatPrimas = data.ProjectWasteFeedstock; CObject.ProjetoMatSubsidiárias = data.ProjectSubsidiaries; CObject.DataHoraModificação = DateTime.Now; CObject.UtilizadorModificação = User.Identity.Name; DBProductivityUnits.Update(CObject); //Get Project Billing Projets List <ProjetosFaturação> ExistingPBillings = DBProjectBilling.GetByNUnidadeProdutiva(CObject.NºUnidadeProdutiva); List <DBProjectBillingViewModel> PBillingsToCreate = data.BillingProjects.Where(pb => !ExistingPBillings.Any(x => x.NºUnidadeProdutiva == pb.ProductivityUnitNo && x.NºProjeto == pb.ProjectNo)).ToList(); List <ProjetosFaturação> PBillingsToDelete = ExistingPBillings.Where(x => !data.BillingProjects.Any(pb => x.NºUnidadeProdutiva == pb.ProductivityUnitNo && x.NºProjeto == pb.ProjectNo)).ToList(); //Create Billing Projects PBillingsToCreate.ForEach(x => { x.Active = true; x.ProductivityUnitNo = CObject.NºUnidadeProdutiva; x.CreateUser = User.Identity.Name; x.Selected = false; DBProjectBilling.Create(DBProjectBilling.ParseToDB(x)); }); PBillingsToDelete.ForEach(x => { DBProjectBilling.Delete(x); }); ExistingPBillings.ForEach(x => { DBProjectBillingViewModel PBToUpdate = data.BillingProjects.Where(pb => x.NºUnidadeProdutiva == pb.ProductivityUnitNo && x.NºProjeto == pb.ProjectNo).FirstOrDefault(); x.NºProjeto = PBToUpdate.ProjectNo; x.UtilizadorModificação = User.Identity.Name; x.DataHoraModificação = DateTime.Now; DBProjectBilling.Update(x); }); data = DBProductivityUnits.ParseToViewModel(CObject); data.eReasonCode = 1; } else { data.eReasonCode = 3; data.eMessage = "Ocorreu um erro ao atualizar os dados na base de dados."; } } } catch (Exception ex) { data.eReasonCode = 2; data.eMessage = "Ocorreu um erro ao atualizar a Unidade Produtiva."; } return(Json(data)); }