public async Task <IActionResult> Gestionar(Ciudad ciudad)
        {
            try
            {
                ViewBag.accion = ciudad.IdCiudad == 0 ? "Crear" : "Editar";
                var UsuarioAutenticado = await _userManager.GetUserAsync(User);

                if (ModelState.IsValid)
                {
                    var existeRegistro = false;
                    if (ciudad.IdCiudad == 0)
                    {
                        if (!await db.Ciudad.AnyAsync(c => c.Nombre.ToUpper().Trim() == ciudad.Nombre.ToUpper().Trim() &&
                                                      c.IdEmpresa == UsuarioAutenticado.IdEmpresa))
                        {
                            db.Add(ciudad);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    else
                    {
                        if (!await db.Ciudad.Where(c => c.Nombre.ToUpper().Trim() == ciudad.Nombre.ToUpper().Trim() &&
                                                   c.IdEmpresa == UsuarioAutenticado.IdEmpresa).AnyAsync(c => c.IdCiudad != ciudad.IdCiudad))
                        {
                            db.Update(ciudad);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    if (!existeRegistro)
                    {
                        await db.SaveChangesAsync();

                        return(this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}"));
                    }
                    else
                    {
                        if (User.IsInRole(Perfiles.AdministradorEmpresa))
                        {
                            ViewData["Empresas"] = new SelectList(db.Empresa.Where(x => x.IdEmpresa == UsuarioAutenticado.IdEmpresa).OrderBy(x => x.Nombre).ToList(), "IdEmpresa", "Nombre");
                        }
                        else
                        {
                            ViewData["Empresas"] = new SelectList(db.Empresa.OrderBy(x => x.Nombre).ToList(), "IdEmpresa", "Nombre");
                        }
                        return(this.VistaError(ciudad, $"{Mensaje.Error}|{Mensaje.ExisteRegistro}"));
                    }
                }
                return(this.VistaError(ciudad, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}"));
            }
            catch (Exception)
            {
                return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}"));
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Gestionar(Documento documento)
        {
            try
            {
                ViewBag.accion = documento.IdDocumento == 0 ? "Crear" : "Editar";
                Action accion = async() =>
                {
                    ViewData["RequisitoLegal"] = new SelectList(await db.RequisitoLegal.OrderBy(c => c.Nombre).Select(y => new RequisitoLegal {
                        IdRequisitoLegal = y.IdRequisitoLegal, Nombre = y.Nombre.Length > 100 ? y.Nombre.Substring(0, 100).ToString() + " ..." : y.Nombre
                    }).ToListAsync(), "IdRequisitoLegal", "Nombre");
                };
                if (ModelState.IsValid)
                {
                    var existeRegistro = false;
                    if (documento.IdDocumento == 0)
                    {
                        if (!await db.Documento.AnyAsync(c => c.Nombre.ToUpper().Trim() == documento.Nombre.ToUpper().Trim() && c.IdRequisitoLegal == documento.IdRequisitoLegal))
                        {
                            db.Add(documento);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    else
                    {
                        if (!await db.Documento.Where(c => c.Nombre.ToUpper().Trim() == documento.Nombre.ToUpper().Trim() && c.IdRequisitoLegal == documento.IdRequisitoLegal).AnyAsync(c => c.IdDocumento != documento.IdDocumento))
                        {
                            db.Update(documento);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    if (!existeRegistro)
                    {
                        await db.SaveChangesAsync();

                        return(this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}"));
                    }
                    else
                    {
                        return(this.VistaError(documento, $"{Mensaje.Error}|{Mensaje.ExisteRegistro}", accion));
                    }
                }
                return(this.VistaError(documento, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}", accion));
            }
            catch (Exception)
            {
                return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}"));
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Gestionar(RequisitoLegal requisitoLegal)
        {
            try
            {
                ViewBag.accion = requisitoLegal.IdRequisitoLegal == 0 ? "Crear" : "Editar";
                Action accion = async() =>
                {
                    ViewData["OrganismoControl"] = new SelectList(await db.OrganismoControl.OrderBy(c => c.Nombre).ToListAsync(), "IdOrganismoControl", "Nombre");
                };

                if (ModelState.IsValid)
                {
                    var existeRegistro = false;
                    if (requisitoLegal.IdRequisitoLegal == 0)
                    {
                        if (!await db.RequisitoLegal.AnyAsync(c => c.Nombre.ToUpper().Trim() == requisitoLegal.Nombre.ToUpper().Trim() && c.IdOrganismoControl == requisitoLegal.IdOrganismoControl))
                        {
                            db.Add(requisitoLegal);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    else
                    {
                        if (!await db.RequisitoLegal.Where(c => c.Nombre.ToUpper().Trim() == requisitoLegal.Nombre.ToUpper().Trim() && c.IdOrganismoControl == requisitoLegal.IdOrganismoControl).AnyAsync(c => c.IdRequisitoLegal != requisitoLegal.IdRequisitoLegal))
                        {
                            db.Update(requisitoLegal);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    if (!existeRegistro)
                    {
                        await db.SaveChangesAsync();

                        return(this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}"));
                    }
                    else
                    {
                        return(this.VistaError(requisitoLegal, $"{Mensaje.Error}|{Mensaje.ExisteRegistro}", accion));
                    }
                }
                return(this.VistaError(requisitoLegal, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}", accion));
            }
            catch (Exception)
            {
                return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}"));
            }
        }
        public async Task <IActionResult> Gestionar(Empresa empresa)
        {
            try
            {
                ViewBag.accion = empresa.IdEmpresa == 0 ? "Crear" : "Editar";
                if (ModelState.IsValid)
                {
                    var existeRegistro = false;
                    if (empresa.IdEmpresa == 0)
                    {
                        if (!await db.Empresa.AnyAsync(c => c.Nombre.ToUpper().Trim() == empresa.Nombre.ToUpper().Trim()))
                        {
                            db.Add(empresa);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    else
                    {
                        if (!await db.Empresa.Where(c => c.Nombre.ToUpper().Trim() == empresa.Nombre.ToUpper().Trim()).AnyAsync(c => c.IdEmpresa != empresa.IdEmpresa))
                        {
                            db.Update(empresa);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    if (!existeRegistro)
                    {
                        await db.SaveChangesAsync();

                        return(this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}"));
                    }
                    else
                    {
                        return(this.VistaError(empresa, $"{Mensaje.Error}|{Mensaje.ExisteRegistro}"));
                    }
                }
                return(this.VistaError(empresa, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}"));
            }
            catch (Exception)
            {
                return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}"));
            }
        }
 public async Task<IActionResult> Gestionar(Ciudad ciudad)
 {
     try
     {
         ViewBag.accion = ciudad.IdCiudad == 0 ? "Crear" : "Editar";
         if (ModelState.IsValid)
         {
             var existeRegistro = false;
             if (ciudad.IdCiudad == 0)
             {
                 if (!await db.Ciudad.AnyAsync(c => c.Nombre.ToUpper().Trim() == ciudad.Nombre.ToUpper().Trim()))
                     db.Add(ciudad);
                 else
                     existeRegistro = true;
             }
             else
             {
                 if (!await db.Ciudad.Where(c => c.Nombre.ToUpper().Trim() == ciudad.Nombre.ToUpper().Trim()).AnyAsync(c => c.IdCiudad != ciudad.IdCiudad))
                     db.Update(ciudad);
                 else
                     existeRegistro = true;
             }
             if (!existeRegistro)
             {
                 await db.SaveChangesAsync();
                 return this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}");
             }
             else
                 return this.VistaError(ciudad, $"{Mensaje.Error}|{Mensaje.ExisteRegistro}");
         }
         return this.VistaError(ciudad, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}");
     }
     catch (Exception)
     {
         return this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}");
     }
 }
Ejemplo n.º 6
0
        public async Task <IActionResult> Gestionar(RequisitoLegal requisitoLegal)
        {
            try
            {
                ViewBag.accion = requisitoLegal.IdRequisitoLegal == 0 ? "Crear" : "Editar";
                var UsuarioAutenticado = await _userManager.GetUserAsync(User);

                var ListaEmpresas         = new List <Empresa>();
                var ListaOrganismoControl = new List <OrganismoControl>();
                var OrganismoControl      = new OrganismoControl();

                if (ModelState.IsValid)
                {
                    var existeRegistro = false;
                    if (requisitoLegal.IdRequisitoLegal == 0)
                    {
                        if (!await db.RequisitoLegal.AnyAsync(c => c.Nombre.ToUpper().Trim() == requisitoLegal.Nombre.ToUpper().Trim() && c.IdOrganismoControl == requisitoLegal.IdOrganismoControl))
                        {
                            db.Add(requisitoLegal);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    else
                    {
                        if (!await db.RequisitoLegal.Where(c => c.Nombre.ToUpper().Trim() == requisitoLegal.Nombre.ToUpper().Trim() && c.IdOrganismoControl == requisitoLegal.IdOrganismoControl).AnyAsync(c => c.IdRequisitoLegal != requisitoLegal.IdRequisitoLegal))
                        {
                            db.Update(requisitoLegal);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    if (!existeRegistro)
                    {
                        await db.SaveChangesAsync();

                        return(this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}"));
                    }
                    else
                    {
                        if (requisitoLegal == null)
                        {
                            return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.RegistroNoEncontrado}"));
                        }

                        ListaEmpresas         = db.Empresa.ToList();
                        ListaOrganismoControl = db.OrganismoControl.ToList();

                        if (User.IsInRole(Perfiles.AdministradorEmpresa))
                        {
                            ListaEmpresas         = ListaEmpresas.Where(x => x.IdEmpresa == UsuarioAutenticado.IdEmpresa).ToList();
                            ListaOrganismoControl = ListaOrganismoControl.Where(x => x.IdEmpresa == UsuarioAutenticado.IdEmpresa).ToList();
                        }

                        OrganismoControl = ListaOrganismoControl
                                           .Where(x => x.IdOrganismoControl == requisitoLegal.IdOrganismoControl).FirstOrDefault();

                        requisitoLegal.IdEmpresa = OrganismoControl.Empresa?.IdEmpresa ?? 0;

                        ViewData["Empresas"] = new SelectList(ListaEmpresas.OrderBy(x => x.Nombre).ToList(), "IdEmpresa", "Nombre", requisitoLegal.IdEmpresa);

                        ViewData["OrganismoControl"] = new SelectList(ListaOrganismoControl.Where(x => x.IdEmpresa == requisitoLegal.IdEmpresa).OrderBy(c => c.Nombre).ToList(), "IdOrganismoControl", "Nombre", selectedValue: requisitoLegal.IdOrganismoControl);


                        return(this.VistaError(requisitoLegal, $"{Mensaje.Error}|{Mensaje.ExisteRegistro}"));
                    }
                }

                ListaEmpresas         = db.Empresa.ToList();
                ListaOrganismoControl = db.OrganismoControl.ToList();

                if (User.IsInRole(Perfiles.AdministradorEmpresa))
                {
                    ListaEmpresas         = ListaEmpresas.Where(x => x.IdEmpresa == UsuarioAutenticado.IdEmpresa).ToList();
                    ListaOrganismoControl = ListaOrganismoControl.Where(x => x.IdEmpresa == UsuarioAutenticado.IdEmpresa).ToList();
                }

                OrganismoControl = ListaOrganismoControl
                                   .Where(x => x.IdOrganismoControl == requisitoLegal.IdOrganismoControl).FirstOrDefault();

                requisitoLegal.IdEmpresa = OrganismoControl.Empresa?.IdEmpresa ?? 0;

                ViewData["Empresas"] = new SelectList(ListaEmpresas.OrderBy(x => x.Nombre).ToList(), "IdEmpresa", "Nombre", requisitoLegal.IdEmpresa);

                ViewData["OrganismoControl"] = new SelectList(ListaOrganismoControl.Where(x => x.IdEmpresa == requisitoLegal.IdEmpresa).OrderBy(c => c.Nombre).ToList(), "IdOrganismoControl", "Nombre", selectedValue: requisitoLegal.IdOrganismoControl);
                return(this.VistaError(requisitoLegal, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}"));
            }
            catch (Exception)
            {
                return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}"));
            }
        }
        public async Task <IActionResult> Gestionar(Requisito requisito, IFormFile file)
        {
            try
            {
                if (requisito.IdStatus == EstadoRequisito.Terminado && file == null)
                {
                    ViewData["OrganismoControl"] = new SelectList(await db.OrganismoControl.OrderBy(c => c.Nombre).ToListAsync(), "IdOrganismoControl", "Nombre");
                    ViewData["RequisitoLegal"]   = await ObtenerSelectListRequisitoLegal(requisito?.Documento?.RequisitoLegal?.IdOrganismoControl ?? -1);

                    ViewData["Documento"] = await ObtenerSelectListDocumento(requisito?.Documento?.IdRequisitoLegal ?? -1);

                    ViewData["Ciudad"]   = new SelectList(await db.Ciudad.OrderBy(c => c.Nombre).ToListAsync(), "IdCiudad", "Nombre");
                    ViewData["Proceso"]  = new SelectList(await db.Proceso.OrderBy(c => c.Nombre).ToListAsync(), "IdProceso", "Nombre");
                    ViewData["Proyecto"] = new SelectList(await db.Proyecto.OrderBy(c => c.Nombre).ToListAsync(), "IdProyecto", "Nombre");
                    ViewData["Actor"]    = new SelectList(await db.Actor.OrderBy(c => c.Nombres).ToListAsync(), "IdActor", "Nombres");
                    ViewData["Status"]   = new SelectList(await db.Status.ToListAsync(), "IdStatus", "Nombre");
                    var requisitoSalida = await db.Requisito.Include(c => c.DocumentoRequisito).Include(x => x.Accion).Include(c => c.Documento).ThenInclude(c => c.RequisitoLegal.OrganismoControl).FirstOrDefaultAsync(c => c.IdRequisito == requisito.IdRequisito);

                    var acciones = await db.Accion.Where(x => x.IdRequisito == requisito.IdRequisito).ToListAsync();

                    requisitoSalida.Accion = acciones;
                    return(this.VistaError(requisitoSalida, $"{Mensaje.Error}|{Mensaje.CargarArchivoEstadoTerminado}"));
                }



                Requisito miRequisito = new Requisito();
                ViewBag.accion = requisito.IdRequisito == 0 ? "Crear" : "Editar"; var tt = Request.Form;
                ModelState.Remove("Documento.Nombre");
                ModelState.Remove("Documento.Tipo");
                ModelState.Remove("Documento.Cantidad");
                ModelState.Remove("Documento.RequisitoLegal.Nombre");
                if (ModelState.IsValid)
                {
                    var nuevoRegistro = false;

                    if (requisito.IdRequisito == 0)
                    {
                        miRequisito = new Requisito
                        {
                            IdDocumento               = requisito.IdDocumento,
                            IdCiudad                  = requisito.IdCiudad,
                            Criticidad                = requisito.Criticidad,
                            IdProceso                 = requisito.IdProceso,
                            IdProyecto                = requisito.IdProyecto,
                            IdActorDuennoProceso      = requisito.IdActorDuennoProceso,
                            IdActorResponsableGestSeg = requisito.IdActorResponsableGestSeg,
                            IdActorCustodioDocumento  = requisito.IdActorCustodioDocumento,
                            FechaCumplimiento         = requisito.FechaCumplimiento,
                            FechaCaducidad            = requisito.FechaCaducidad,
                            IdStatus                  = requisito.IdStatus,
                            DuracionTramite           = requisito.DuracionTramite,
                            DiasNotificacion          = requisito.DiasNotificacion,
                            EmailNotificacion1        = requisito.EmailNotificacion1,
                            EmailNotificacion2        = requisito.EmailNotificacion2,
                            Observaciones             = requisito.Observaciones,
                            NotificacionEnviada       = false
                        };

                        db.Add(miRequisito);
                        nuevoRegistro = true;
                    }
                    else
                    {
                        miRequisito = await db.Requisito.FirstOrDefaultAsync(c => c.IdRequisito == requisito.IdRequisito);

                        miRequisito.IdDocumento               = requisito.IdDocumento;
                        miRequisito.IdCiudad                  = requisito.IdCiudad;
                        miRequisito.Criticidad                = requisito.Criticidad;
                        miRequisito.IdProceso                 = requisito.IdProceso;
                        miRequisito.IdProyecto                = requisito.IdProyecto;
                        miRequisito.IdActorDuennoProceso      = requisito.IdActorDuennoProceso;
                        miRequisito.IdActorResponsableGestSeg = requisito.IdActorResponsableGestSeg;
                        miRequisito.IdActorCustodioDocumento  = requisito.IdActorCustodioDocumento;
                        miRequisito.FechaCumplimiento         = requisito.FechaCumplimiento;
                        miRequisito.FechaCaducidad            = requisito.FechaCaducidad;
                        miRequisito.IdStatus                  = requisito.IdStatus;
                        miRequisito.DuracionTramite           = requisito.DuracionTramite;
                        miRequisito.DiasNotificacion          = requisito.DiasNotificacion;
                        miRequisito.EmailNotificacion1        = requisito.EmailNotificacion1;
                        miRequisito.EmailNotificacion2        = requisito.EmailNotificacion2;
                        miRequisito.Observaciones             = requisito.Observaciones;
                    }
                    await db.SaveChangesAsync();

                    var responseFile = true;
                    if (file != null)
                    {
                        byte[] data;
                        using (var br = new BinaryReader(file.OpenReadStream()))
                            data = br.ReadBytes((int)file.OpenReadStream().Length);

                        if (data.Length > 0)
                        {
                            var activoFijoDocumentoTransfer = new DocumentoRequisitoTransfer {
                                Nombre = file.FileName, Fichero = data, IdRequisito = miRequisito.IdRequisito
                            };
                            responseFile = await uploadFileService.UploadFiles(activoFijoDocumentoTransfer);
                        }
                    }


                    if (requisito.IdStatus != requisito.IdStatusAnterior && requisito.IdStatusAnterior == EstadoRequisito.Terminado)
                    {
                        var url = "";
                        if (requisito.IdRequisito == 0)
                        {
                            url = $"{this.Request.Scheme}://{this.Request.Host}/{Mensaje.CarpertaHost}{this.Request.Path}/{miRequisito.IdRequisito}";
                        }
                        else
                        {
                            url = $"{this.Request.Scheme}://{this.Request.Host}/{Mensaje.CarpertaHost}{this.Request.Path}";
                        }
                        await miRequisito.EnviarEmailNotificaionNoFinalizado(url, emailSender, db);
                    }

                    if (requisito.IdStatus == EstadoRequisito.Terminado)
                    {
                        var url = "";
                        if (requisito.IdRequisito == 0)
                        {
                            url = $"{this.Request.Scheme}://{this.Request.Host}/{Mensaje.CarpertaHost}{this.Request.Path}/{miRequisito.IdRequisito}";
                        }
                        else
                        {
                            url = $"{this.Request.Scheme}://{this.Request.Host}/{Mensaje.CarpertaHost}{this.Request.Path}";
                        }
                        await miRequisito.EnviarEmailNotificaionRequisitoTerminado(userManager, url, emailSender, db);
                    }

                    if (nuevoRegistro)
                    {
                        var url = "";
                        if (requisito.IdRequisito == 0)
                        {
                            url = $"{this.Request.Scheme}://{this.Request.Host}/{Mensaje.CarpertaHost}{this.Request.Path}/{miRequisito.IdRequisito}";
                        }
                        else
                        {
                            url = $"{this.Request.Scheme}://{this.Request.Host}/{Mensaje.CarpertaHost}{this.Request.Path}";
                        }
                        await miRequisito.EnviarEmailNotificaionRequisitoCreacion(url, emailSender, db);
                    }

                    await miRequisito.EnviarEmailNotificaion(userManager, emailSender, db);

                    return(this.Redireccionar(responseFile ? $"{Mensaje.Informacion}|{Mensaje.Satisfactorio}" : $"{Mensaje.Aviso}|{Mensaje.ErrorUploadFiles}", "Gestionar", new { id = miRequisito.IdRequisito }));

                    // return this.Redireccionar(,responseFile ? $"{Mensaje.Informacion}|{Mensaje.Satisfactorio}" : $"{Mensaje.Aviso}|{Mensaje.ErrorUploadFiles}");
                }
                ViewData["OrganismoControl"] = new SelectList(await db.OrganismoControl.OrderBy(c => c.Nombre).ToListAsync(), "IdOrganismoControl", "Nombre");
                ViewData["RequisitoLegal"]   = await ObtenerSelectListRequisitoLegal(requisito?.Documento?.RequisitoLegal?.IdOrganismoControl ?? -1);

                ViewData["Documento"] = await ObtenerSelectListDocumento(requisito?.Documento?.IdRequisitoLegal ?? -1);

                ViewData["Ciudad"]   = new SelectList(await db.Ciudad.OrderBy(c => c.Nombre).ToListAsync(), "IdCiudad", "Nombre");
                ViewData["Proceso"]  = new SelectList(await db.Proceso.OrderBy(c => c.Nombre).ToListAsync(), "IdProceso", "Nombre");
                ViewData["Proyecto"] = new SelectList(await db.Proyecto.OrderBy(c => c.Nombre).ToListAsync(), "IdProyecto", "Nombre");
                ViewData["Actor"]    = new SelectList(await db.Actor.OrderBy(c => c.Nombres).ToListAsync(), "IdActor", "Nombres");
                ViewData["Status"]   = new SelectList(await db.Status.ToListAsync(), "IdStatus", "Nombre");
                return(this.VistaError(requisito, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}"));
            }
            catch (Exception)
            {
                return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}"));
            }
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Gestionar(Requisito requisito, IFormFile file)
        {
            try
            {
                ViewBag.accion = requisito.IdRequisito == 0 ? "Crear" : "Editar"; var tt = Request.Form;
                ModelState.Remove("Documento.Nombre");
                ModelState.Remove("Documento.RequisitoLegal.Nombre");
                if (ModelState.IsValid)
                {
                    if (requisito.IdRequisito == 0)
                    {
                        db.Add(new Requisito
                        {
                            IdDocumento               = requisito.IdDocumento,
                            IdCiudad                  = requisito.IdCiudad,
                            IdProceso                 = requisito.IdProceso,
                            IdActorDuennoProceso      = requisito.IdActorDuennoProceso,
                            IdActorResponsableGestSeg = requisito.IdActorResponsableGestSeg,
                            IdActorCustodioDocumento  = requisito.IdActorCustodioDocumento,
                            FechaCumplimiento         = requisito.FechaCumplimiento,
                            FechaCaducidad            = requisito.FechaCaducidad,
                            IdStatus                  = requisito.IdStatus,
                            DuracionTramite           = requisito.DuracionTramite,
                            DiasNotificacion          = requisito.DiasNotificacion,
                            EmailNotificacion1        = requisito.EmailNotificacion1,
                            EmailNotificacion2        = requisito.EmailNotificacion2,
                            Observaciones             = requisito.Observaciones,
                            NotificacionEnviada       = false
                        });
                    }
                    else
                    {
                        var requisitoActualizar = await db.Requisito.FirstOrDefaultAsync(c => c.IdRequisito == requisito.IdRequisito);

                        requisitoActualizar.IdDocumento               = requisito.IdDocumento;
                        requisitoActualizar.IdCiudad                  = requisito.IdCiudad;
                        requisitoActualizar.IdProceso                 = requisito.IdProceso;
                        requisitoActualizar.IdActorDuennoProceso      = requisito.IdActorDuennoProceso;
                        requisitoActualizar.IdActorResponsableGestSeg = requisito.IdActorResponsableGestSeg;
                        requisitoActualizar.IdActorCustodioDocumento  = requisito.IdActorCustodioDocumento;
                        requisitoActualizar.FechaCumplimiento         = requisito.FechaCumplimiento;
                        requisitoActualizar.FechaCaducidad            = requisito.FechaCaducidad;
                        requisitoActualizar.IdStatus                  = requisito.IdStatus;
                        requisitoActualizar.DuracionTramite           = requisito.DuracionTramite;
                        requisitoActualizar.DiasNotificacion          = requisito.DiasNotificacion;
                        requisitoActualizar.EmailNotificacion1        = requisito.EmailNotificacion1;
                        requisitoActualizar.EmailNotificacion2        = requisito.EmailNotificacion2;
                        requisitoActualizar.Observaciones             = requisito.Observaciones;
                    }
                    await db.SaveChangesAsync();

                    var responseFile = true;
                    if (file != null)
                    {
                        byte[] data;
                        using (var br = new BinaryReader(file.OpenReadStream()))
                            data = br.ReadBytes((int)file.OpenReadStream().Length);

                        if (data.Length > 0)
                        {
                            var activoFijoDocumentoTransfer = new DocumentoRequisitoTransfer {
                                Nombre = file.FileName, Fichero = data, IdRequisito = requisito.IdRequisito
                            };
                            responseFile = await uploadFileService.UploadFiles(activoFijoDocumentoTransfer);
                        }
                    }
                    await requisito.EnviarEmailNotificaion(emailSender, db);

                    return(this.Redireccionar(responseFile ? $"{Mensaje.Informacion}|{Mensaje.Satisfactorio}" : $"{Mensaje.Aviso}|{Mensaje.ErrorUploadFiles}"));
                }
                ViewData["OrganismoControl"] = new SelectList(await db.OrganismoControl.OrderBy(c => c.Nombre).ToListAsync(), "IdOrganismoControl", "Nombre");
                ViewData["RequisitoLegal"]   = await ObtenerSelectListRequisitoLegal(requisito?.Documento?.RequisitoLegal?.IdOrganismoControl ?? -1);

                ViewData["Documento"] = await ObtenerSelectListDocumento(requisito?.Documento?.IdRequisitoLegal ?? -1);

                ViewData["Ciudad"]  = new SelectList(await db.Ciudad.OrderBy(c => c.Nombre).ToListAsync(), "IdCiudad", "Nombre");
                ViewData["Proceso"] = new SelectList(await db.Proceso.OrderBy(c => c.Nombre).ToListAsync(), "IdProceso", "Nombre");
                ViewData["Actor"]   = new SelectList(await db.Actor.OrderBy(c => c.Nombres).ToListAsync(), "IdActor", "Nombres");
                ViewData["Status"]  = new SelectList(await db.Status.ToListAsync(), "IdStatus", "Nombre");
                return(this.VistaError(requisito, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}"));
            }
            catch (Exception)
            {
                return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}"));
            }
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> Gestionar(Documento documento)
        {
            try
            {
                ViewBag.accion = documento.IdDocumento == 0 ? "Crear" : "Editar";

                var UsuarioAutenticado = await _userManager.GetUserAsync(User);

                var ListaEmpresas       = new List <Empresa>();
                var ListaRequisitoLegal = new List <RequisitoLegal>();
                var RequisitoLegal      = new RequisitoLegal();

                if (ModelState.IsValid)
                {
                    var existeRegistro = false;
                    if (documento.IdDocumento == 0)
                    {
                        if (!await db.Documento.AnyAsync(c => c.Nombre.ToUpper().Trim() == documento.Nombre.ToUpper().Trim() && c.IdRequisitoLegal == documento.IdRequisitoLegal))
                        {
                            db.Add(documento);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    else
                    {
                        if (!await db.Documento.Where(c => c.Nombre.ToUpper().Trim() == documento.Nombre.ToUpper().Trim() && c.IdRequisitoLegal == documento.IdRequisitoLegal).AnyAsync(c => c.IdDocumento != documento.IdDocumento))
                        {
                            db.Update(documento);
                        }
                        else
                        {
                            existeRegistro = true;
                        }
                    }
                    if (!existeRegistro)
                    {
                        await db.SaveChangesAsync();

                        return(this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}"));
                    }
                    else
                    {
                        ListaEmpresas = await db.Empresa.ToListAsync();

                        ListaRequisitoLegal = await db.RequisitoLegal.OrderBy(c => c.Nombre).Select(y => new RequisitoLegal
                        {
                            IdRequisitoLegal = y.IdRequisitoLegal,
                            Nombre           = y.Nombre.Length > 100 ? y.Nombre.Substring(0, 100).ToString() + " ..." + " | " + y.OrganismoControl.Nombre : y.Nombre + " | " + y.OrganismoControl.Nombre
                            ,
                            OrganismoControl = new OrganismoControl
                            {
                                Nombre             = y.OrganismoControl.Nombre,
                                IdOrganismoControl = y.OrganismoControl.IdOrganismoControl,
                                IdEmpresa          = y.OrganismoControl.IdEmpresa,
                                Empresa            = new Empresa
                                {
                                    Nombre    = y.OrganismoControl.Empresa.Nombre,
                                    IdEmpresa = y.OrganismoControl.Empresa.IdEmpresa,
                                }
                            }
                        }).ToListAsync();

                        if (User.IsInRole(Perfiles.AdministradorEmpresa))
                        {
                            ListaEmpresas       = ListaEmpresas.Where(x => x.IdEmpresa == UsuarioAutenticado.IdEmpresa).ToList();
                            ListaRequisitoLegal = ListaRequisitoLegal.Where(x => x.OrganismoControl.IdEmpresa == UsuarioAutenticado.IdEmpresa).ToList();
                        }

                        RequisitoLegal = ListaRequisitoLegal
                                         .Where(x => x.IdRequisitoLegal == documento.IdRequisitoLegal).FirstOrDefault();

                        documento.IdEmpresa = RequisitoLegal.OrganismoControl.IdEmpresa ?? 0;

                        ViewData["Empresas"] = new SelectList(ListaEmpresas.OrderBy(x => x.Nombre).ToList(), "IdEmpresa", "Nombre", documento.IdEmpresa);

                        ViewData["RequisitoLegal"] = new SelectList(ListaRequisitoLegal
                                                                    .Where(x => x.OrganismoControl.IdEmpresa == documento.IdEmpresa)
                                                                    .OrderBy(c => c.Nombre).ToList(), "IdRequisitoLegal", "Nombre",
                                                                    selectedValue: documento.IdEmpresa);

                        return(this.VistaError(documento, $"{Mensaje.Error}|{Mensaje.ExisteRegistro}"));
                    }
                }


                ListaEmpresas = await db.Empresa.ToListAsync();

                ListaRequisitoLegal = await db.RequisitoLegal.OrderBy(c => c.Nombre).Select(y => new RequisitoLegal
                {
                    IdRequisitoLegal = y.IdRequisitoLegal,
                    Nombre           = y.Nombre.Length > 100 ? y.Nombre.Substring(0, 100).ToString() + " ..." + " | " + y.OrganismoControl.Nombre : y.Nombre + " | " + y.OrganismoControl.Nombre
                    ,
                    OrganismoControl = new OrganismoControl
                    {
                        Nombre             = y.OrganismoControl.Nombre,
                        IdOrganismoControl = y.OrganismoControl.IdOrganismoControl,
                        IdEmpresa          = y.OrganismoControl.IdEmpresa,
                        Empresa            = new Empresa
                        {
                            Nombre    = y.OrganismoControl.Empresa.Nombre,
                            IdEmpresa = y.OrganismoControl.Empresa.IdEmpresa,
                        }
                    }
                }).ToListAsync();

                if (User.IsInRole(Perfiles.AdministradorEmpresa))
                {
                    ListaEmpresas       = ListaEmpresas.Where(x => x.IdEmpresa == UsuarioAutenticado.IdEmpresa).ToList();
                    ListaRequisitoLegal = ListaRequisitoLegal.Where(x => x.OrganismoControl.IdEmpresa == UsuarioAutenticado.IdEmpresa).ToList();
                }

                RequisitoLegal = ListaRequisitoLegal
                                 .Where(x => x.IdRequisitoLegal == documento.IdRequisitoLegal).FirstOrDefault();

                documento.IdEmpresa = RequisitoLegal.OrganismoControl.IdEmpresa ?? 0;

                ViewData["Empresas"] = new SelectList(ListaEmpresas.OrderBy(x => x.Nombre).ToList(), "IdEmpresa", "Nombre", documento.IdEmpresa);

                ViewData["RequisitoLegal"] = new SelectList(ListaRequisitoLegal
                                                            .Where(x => x.OrganismoControl.IdEmpresa == documento.IdEmpresa)
                                                            .OrderBy(c => c.Nombre).ToList(), "IdRequisitoLegal", "Nombre",
                                                            selectedValue: documento.RequisitoLegal.OrganismoControl.IdEmpresa);
                return(this.VistaError(documento, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}"));
            }
            catch (Exception)
            {
                return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}"));
            }
        }