Beispiel #1
0
        public ActionResult AgregarEtapa(int?id)
        {
            if (Session["UsuarioMail"] == null || Session["UsuarioMail"].ToString() == "")
            {
                return(RedirectToAction("SinAcceso", "Home"));
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Expediente expediente = db.Expedientes.Find(id);

            if (expediente == null)
            {
                return(HttpNotFound());
            }

            // cargar etapas sin que se repitan
            List <Etapa> etapasTodas      = expediente.Tramite.Etapas.ToList();
            List <Etapa> etapasExpediente = new List <Etapa>();

            foreach (EtapaCumplida ec in expediente.EtapasCumplidas)
            {
                etapasExpediente.Add(ec.Etapa);
            }
            var ee = from e in etapasTodas
                     where !etapasExpediente.Contains(e)
                     select e;
            List <Etapa> etapas = ee.ToList <Etapa>();

            // cargar funcionarios correspondientes
            List <Funcionario> funcTodos = db.Funcionarios.ToList <Funcionario>();
            var ff = from f in funcTodos
                     join g in expediente.Tramite.GruposAsignados
                     on f.MiGrupo equals g
                     select f;
            List <Funcionario> funcionarios = ff.ToList <Funcionario>();

            // pasar todo al viewmodel
            AgregarEtapaViewModel vm = new AgregarEtapaViewModel()
            {
                Expediente   = expediente,
                Etapas       = new SelectList(etapas, "CodigoAlfa", "Descripcion"),
                Funcionarios = new SelectList(funcionarios, "Mail", "Nombre")
            };

            return(View(vm));
        }
Beispiel #2
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));
            }
        }