Esempio n. 1
0
        public ActionResult AgregarEtapa(AgregarEtapaViewModel vm)
        {
            DateTime hoy = DateTime.Today;

            using (obligP3parte2Context db = new obligP3parte2Context())
            {
                // cargar el exp y todo las cosas que fueron seleccionadas
                Expediente  exp   = db.Expedientes.Find(vm.Expediente.Codigo);
                Etapa       etapa = db.Etapas.Find(vm.EtapaSeleccionada);
                Funcionario func  = db.Funcionarios.Find(vm.FuncSeleccionado);

                if (exp == null || etapa == null || func == null || !vm.MapearArchivo())
                {
                    return(HttpNotFound());
                }

                // si está todo bien cargado se agregar la etapa cumplida con sus cosas
                EtapaCumplida etapaAgregar = new EtapaCumplida()
                {
                    Etapa       = etapa,
                    Expediente  = exp,
                    FechaFin    = hoy,
                    Funcionario = func,
                    Documento   = vm.ArchivoNombre
                };
                etapaAgregar.SuperaLapsoMax = etapaAgregar.CalcularTiempoOk();

                exp.EtapasCumplidas.Add(etapaAgregar);
                exp.RevisarEtapasCumplidas();
                db.SaveChanges();

                // cargar expediente con todo para mandarlo a details
                Expediente expConTodo = db.Expedientes
                                        .Where(e => e.Codigo == vm.Expediente.Codigo)
                                        .Include(t => t.Tramite)
                                        .Include(e => e.EtapasCumplidas.Select(ee => ee.Funcionario))
                                        .Include(e => e.EtapasCumplidas.Select(eee => eee.Etapa))
                                        .FirstOrDefault();
                return(View("Details", expConTodo));
            }
        }