Esempio n. 1
0
        public async Task <bool> UploadFiles(DocumentoRequisitoTransfer documentoRequisitoTransfer)
        {
            try
            {
                var documentoRequisito = new DocumentoRequisito
                {
                    Nombre      = documentoRequisitoTransfer.Nombre,
                    Fecha       = DateTime.Now,
                    IdRequisito = documentoRequisitoTransfer.IdRequisito
                };
                db.DocumentoRequisito.Add(documentoRequisito);
                await db.SaveChangesAsync();

                string extensionFile = FileExtension(documentoRequisitoTransfer.Nombre);
                await UploadFile(documentoRequisitoTransfer.Fichero, Mensaje.CarpetaDocumento, $"{documentoRequisito.IdDocumentoRequisito}{extensionFile}");

                var seleccionado = await db.DocumentoRequisito.FindAsync(documentoRequisito.IdDocumentoRequisito);

                seleccionado.Url = $"{Mensaje.CarpetaDocumento}/{documentoRequisito.IdDocumentoRequisito}{extensionFile}";
                db.DocumentoRequisito.Update(seleccionado);
                await db.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            { }
            return(false);
        }
Esempio n. 2
0
        public async Task <bool> UploadFiles(DocumentoRequisitoTransfer documentoRequisitoTransfer, Empresa empresa)
        {
            try
            {
                var documentoRequisito = new DocumentoRequisito
                {
                    Nombre      = documentoRequisitoTransfer.Nombre,
                    Fecha       = DateTime.Now,
                    IdRequisito = documentoRequisitoTransfer.IdRequisito
                };
                db.DocumentoRequisito.Add(documentoRequisito);
                await db.SaveChangesAsync();

                string extensionFile = FileExtension(documentoRequisitoTransfer.Nombre);

                //Mensaje.CarpetaDocumento

                await UploadFile(documentoRequisitoTransfer.Fichero, empresa.IdEmpresa.ToString(), $"{documentoRequisito.IdDocumentoRequisito}{extensionFile}");

                var seleccionado = await db.DocumentoRequisito.FindAsync(documentoRequisito.IdDocumentoRequisito);

                seleccionado.Url = $"{empresa.IdEmpresa}/{documentoRequisito.IdDocumentoRequisito}{extensionFile}";
                db.DocumentoRequisito.Update(seleccionado);
                await db.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                Debug.Write(ex.Message);
            }
            return(false);
        }
        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}"));
            }
        }
        public async Task <IActionResult> GestionarFinalizado(Requisito requisito, IFormFile file)
        {
            try
            {
                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)
                {
                    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);
                        }
                    }
                    await miRequisito.EnviarEmailNotificaionFinalizadoModificado(User.Identity.Name, userManager, emailSender, db);

                    if (responseFile)
                    {
                        return(this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}", "IndexFinalizado"));
                    }
                    return(this.Redireccionar($"{Mensaje.Aviso}|{Mensaje.ErrorUploadFiles}", "IndexFinalizado"));
                }
                return(this.VistaError(requisito, $"{Mensaje.Error}|{Mensaje.ModeloInvalido}"));
            }
            catch (Exception)
            {
                return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.Excepcion}"));
            }
        }
Esempio n. 5
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}"));
            }
        }