예제 #1
0
        public async Task <IActionResult> Derivar(HojaRutaDTO item)
        {
            if (item.Instrucciones.Length > 0)
            {
                ApplicationUser currentUser = await GetCurrentUser();

                var hojaRuta = await DB.CorrespondenciaHojaRuta.FirstOrDefaultAsync(m => m.Id == item.HojaRutaId);

                if (hojaRuta == null)
                {
                    return(View("_NoEncontrado"));
                }
                var detalle = await DB.CorrespondenciaHRDetalle.FirstOrDefaultAsync(m => m.Id == item.Id);

                detalle.IdEstadoRegistro = Constantes.Enviado;
                hojaRuta = item.populateDetalle(hojaRuta, currentUser.AspNetUserId, DB);
                hojaRuta = item.populateAnexos(hojaRuta, currentUser.AspNetUserId, DB);
                DB.Update(hojaRuta);
                DB.Update(detalle);
                await DB.SaveChangesAsync();

                SetFlashSuccess("La Hoja de Ruta fue derivada correctamente");
                return(RedirectToAction(nameof(Index)));
            }
            return(View("_Derivar", item));
        }
예제 #2
0
        public async Task <IActionResult> Create(HojaRutaDTO item)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser currentUser = await GetCurrentUser();

                string cite = await GetCite(item.UnidadEjecutoraId);

                HojaRuta hojaRuta = item.prepare(currentUser.AspNetUserId, DB);
                hojaRuta.CiteUE = $"{cite}-CORR.".Replace("NN-", "");
                DB.Add(hojaRuta);
                await DB.SaveChangesAsync();

                var parent = hojaRuta.Derivaciones.First(d => d.Padre == -1);

                if (parent != null)
                {
                    foreach (var child in hojaRuta.Derivaciones.Where(d => d.Padre == 0))
                    {
                        child.Padre = parent.Id;
                    }

                    parent.Padre = 0;
                    DB.SaveChanges();
                }

                SetFlashSuccess("La Hoja de Ruta fue creada correctamente");
                return(RedirectToAction(nameof(Index), new{ type = Constantes.HRTipoDespachados }));
            }
            return(View("_Create", item));
        }
예제 #3
0
        public async Task <IActionResult> Create(int?idDoc)
        {
            var             model       = new HojaRutaDTO();
            ApplicationUser currentUser = await GetCurrentUser();

            model.FechaDoc              = DateTime.Now;
            model.NroFojas              = 1;
            model.Parent                = 0;
            model.DocumentoId           = 0;
            model.OrigenId              = currentUser.Funcionario.IdBeneficiario;
            model.Remitente             = currentUser.Funcionario.Denominacion;
            model.UnidadEjecutoraId     = currentUser.Funcionario.Puesto.UnidadEjecutora.IdUnidadEjecutora;
            model.UnidadEjecutoraNombre = currentUser.Funcionario.Puesto.UnidadEjecutora.Descripcion;
            if (idDoc > 0)
            {
                var doc = await DB.CorrespondenciaDocumento
                          .Include(d => d.FuncionarioOrigen)
                          .Include(d => d.FuncionarioOrigen.Puesto.UnidadEjecutora)
                          .FirstOrDefaultAsync(d => d.Id == idDoc);

                if (doc != null)
                {
                    model.DocumentoId           = doc.Id;
                    model.OrigenId              = doc.FuncionarioOrigenId;
                    model.Remitente             = doc.FuncionarioOrigen.Denominacion;
                    model.UnidadEjecutoraId     = doc.FuncionarioOrigen.Puesto.UnidadEjecutora.IdUnidadEjecutora;
                    model.UnidadEjecutoraNombre = doc.AreaFuncionarioOrigen;
                    model.Referencia            = doc.Referencia;
                    model.CiteDoc  = doc.Cite;
                    model.FechaDoc = doc.Fecha;
                }
            }

            var areas = await GetAreas(currentUser.Funcionario.IdBeneficiario);

            var instrucciones = GetInstrucciones();

            ViewBag.choose_user   = (User.IsInRole(SD.SecretariaUser) || User.IsInRole(SD.SuperAdminEndUser));
            ViewBag.areas         = areas;
            ViewBag.instrucciones = instrucciones;
            ViewBag.Tipos         = DB.CorrespondenciaTipoDocumento.Where(t => t.IdEstadoRegistro != Constantes.Anulado).ToList();
            ViewBag.tiposAnexo    = DB.CorrespondenciaTipoAnexo.Where(t => t.IdEstadoRegistro != Constantes.Anulado).ToList();
            return(View("_Create", model));
        }
예제 #4
0
        public async Task <IActionResult> Derivar(int id, int?idDoc)
        {
            var item = await DB.CorrespondenciaHRDetalle
                       .Include(m => m.HojaRuta)
                       .FirstOrDefaultAsync(m => m.Id == id);

            if (item == null)
            {
                return(View("_NoEncontrado"));
            }

            ApplicationUser currentUser = await GetCurrentUser();

            if (item.FunDstId != currentUser.Funcionario.IdBeneficiario)
            {
                return(View("_NoAutorizado"));
            }

            var model = new HojaRutaDTO();

            model.HojaRutaId        = item.HojaRutaId;
            model.OrigenId          = item.FunDstId;
            model.UnidadEjecutoraId = item.AreaDestinoId;
            model.Parent            = item.Id;
            model.DocumentoId       = 0;
            if (idDoc > 0 && DocExists((int)idDoc))
            {
                model.DocumentoId = (int)idDoc;
            }

            var areas = await GetAreas(currentUser.Funcionario.IdBeneficiario);

            var instrucciones = GetInstrucciones();

            ViewBag.areas         = areas;
            ViewBag.instrucciones = instrucciones;
            ViewBag.HojaRuta      = item.HojaRuta;
            ViewBag.Tipos         = DB.CorrespondenciaTipoDocumento.Where(t => t.IdEstadoRegistro != Constantes.Anulado).ToList();
            ViewBag.tiposAnexo    = DB.CorrespondenciaTipoAnexo.Where(t => t.IdEstadoRegistro != Constantes.Anulado).ToList();
            return(View("_Derivar", model));
        }