コード例 #1
0
 public static ProjetosFaturação ParseToDB(DBProjectBillingViewModel x)
 {
     return(new ProjetosFaturação()
     {
         NºUnidadeProdutiva = x.ProductivityUnitNo,
         NºProjeto = x.ProjectNo,
         Ativo = x.Active,
         DataHoraCriação = x.CreateDate,
         UtilizadorCriação = x.CreateUser,
         DataHoraModificação = x.UpdateDate,
         UtilizadorModificação = x.UpdateUser
     });
 }
コード例 #2
0
        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));
        }