public virtual ActionResult Descargar(int archivoId, int version) { EtapasModel modelEtapas = new EtapasModel(); byte[] contenido = modelEtapas.obtenerContenidoArchivo(archivoId, version); Archivo archivo = modelEtapas.obtenerArchivoPorId(archivoId, version); return(File(contenido, "application/force-download", archivo.Nombre + "." + archivo.Extension)); }
public ActionResult FinalizarCuenta(string comentario, int cuentaId, string cuentaFecha) { EtapasModel modelEtapas = new EtapasModel(); if (modelEtapas.CambiarEstadoCuenta(comentario, 5, cuentaId, Convert.ToDateTime(cuentaFecha))) { return(Json(new { response = "success" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { response = "error", message = "Ocurrio un Error al tratar Enviar la cuenta a validación..." }, JsonRequestBehavior.AllowGet)); } }
protected string ListaLogs(int cuentaActivaId, int mes, int año) { EtapasModel modelEtapas = new EtapasModel(); CuentaActivaModel modelCuentaActiva = new CuentaActivaModel(); MantenedorModel modelMantenedor = new MantenedorModel(); List <Log> logs = modelEtapas.obtenerLogsPorCuentaActiva(cuentaActivaId, mes, año); CuentaActiva cuenta = modelCuentaActiva.obtenerCuentaActivaPorId(cuentaActivaId, mes, año); string html = ""; if (logs.Count == 0) { html = "<div class='row'><div class='col-sm-12'><div class='sac_borderdiv' style='text-align: center;'><span class='title'>Cuenta en Borrador</span></div></div></div>"; } else { html = "<div class='row'><div class='col-sm-1 loglistexpandholder' style='height: 100%;'>"; if (logs.Count > 1) { html += "<i class='fa fa-plus fa-3x loglistexpand' onclick='ExpandirLogs()'></i>"; } html += "</div>"; html += "<div class='col-sm-11'><div class='sac_borderdiv'>"; html += generarListaLogItem(logs[logs.Count - 1], cuenta); html += "</div></div></div><div id='loglist'>"; for (int i = logs.Count - 2; i >= 0; i--) { html += "<div class='row'><div class='col-sm-1'></div><div class='col-sm-11'><div class='sac_borderdiv'>"; html += generarListaLogItem(logs[i], cuenta) + "</div></div></div>"; } html += "</div>"; } return(html); }
protected string ListaArchivos(int cuentaActivaId, int mes, int año, int etapa, int etapa2 = -1) { EtapasModel modelEtapas = new EtapasModel(); CuentaActivaModel modelCuentaActiva = new CuentaActivaModel(); MantenedorModel modelMantenedor = new MantenedorModel(); List <Archivo> archivos = modelEtapas.obtenerArchivosPorCuentaActiva(cuentaActivaId, mes, año); CuentaActiva cuenta = modelCuentaActiva.obtenerCuentaActivaPorId(cuentaActivaId, mes, año); string html = ""; foreach (var archivo in archivos) { if (archivo.Estado != 1) { Usuario usuarioArchivo = modelMantenedor.ObtenerUsuarioPorId(archivo.UsuarioCreacion); string img = string.Format("<img src='/Content/Free-file-icons/512px/{0}.png' onclick='descargar({1}, {2})'>", archivo.Extension, archivo.Id, archivo.Version); var btnEditar = ""; //var botones = ""; //botones = ' <a class="btn btn-info blue " onclick="agregarArchivo()">Agregar Archivo</a>< a class="btn btn-info blue " onclick="prepararEnviar()">Enviar a Validación</a>'; if (cuenta.cuentaActivaEstado == etapa || cuenta.cuentaActivaEstado == etapa2) { btnEditar += "<span class='fa fa-edit spanSize' onclick='obtenerArchivo({3}, {5});'></span> "; btnEditar += "<span class='fa fa-remove spanSizeR' onclick='eliminarArchivo({3}, {5}, \"{4}\");'></span> "; btnEditar += "<span class='fa fa-files-o spanSizeC' onclick='copiarArchivo({3}, {5})'></span>"; } string file = string.Format("{0} " + btnEditar + " <br>{1} <span class='archivoThumbSm'>(v{2})</span>", img, archivo.Nombre, archivo.Version, archivo.Id, archivo.Nombre, archivo.Version); string data = string.Format("{0}<br><span class='archivoThumbSm'>Subido por {2} el {1}</span>", archivo.Comentario, StringHelper.fechaDMA(archivo.Fecha), usuarioArchivo.nombre); html += "<div class='col-sm-4 archivoThumb'><div class='archivoThumbBorder'>"; html += " <div class='archivoThumbFile'>" + file + "</div>"; html += " <div class='archivoThumbData'>" + data + "</div>"; html += "</div></div>"; } } return(html); }
public ActionResult EnviarCertificacion(string comentario, int cuentaId, string cuentaFecha) { EtapasModel modelEtapas = new EtapasModel(); CuentaActivaModel modelCuentas = new CuentaActivaModel(); DateTime fecha = Convert.ToDateTime(cuentaFecha); if (modelEtapas.CambiarEstadoCuenta(comentario, 4, cuentaId, fecha)) { var cuenta = modelCuentas.obtenerCuentaActivaPorId(cuentaId, fecha.Month, fecha.Year); MailHelper.mail( cuenta.validador.nombre, cuenta.validador.email, string.Format("Cuenta {0} ha sido rechazada por el Certificador", cuenta.numero), string.Format("El Usuario {0} ha rechazado la cuenta {1} ({2})", cuenta.certificador.nombre, cuenta.numero, StringHelper.fechaDMA(DateTime.Today)) ); return(Json(new { response = "success" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { response = "error", message = "Ocurrio un Error al tratar Enviar la cuenta a validación..." }, JsonRequestBehavior.AllowGet)); } }
protected string TimeLine(int cuentaActivaId, int mes, int año) { EtapasModel modelEtapas = new EtapasModel(); CuentaActivaModel modelCuentaActiva = new CuentaActivaModel(); MantenedorModel modelMantenedor = new MantenedorModel(); ListaOrdenablePorFecha listaOrden = new ListaOrdenablePorFecha(); CuentaActiva cuenta = modelCuentaActiva.obtenerCuentaActivaPorId(cuentaActivaId, mes, año); List <Log> Logs = modelEtapas.obtenerLogsPorCuentaActiva(cuenta.cuentaActivaId, mes, año); List <Archivo> archivos = modelEtapas.obtenerArchivosVersionPorCuentaActiva(cuenta.cuentaActivaId, mes, año); foreach (var archivo in archivos) { listaOrden.Add(archivo.Fecha, archivo); } foreach (var log in Logs) { listaOrden.Add(log.Fecha, log); } string html = ""; string patron = "<li class='timeline-{3}'>"; patron += "<div class='timeline-icon'><i class='fa {4}'></i></div>"; patron += "<div class='timeline-body'><div class='timeline-text'>"; patron += "<div> {0} ({1}) </div>"; patron += "<div> {2} </div>"; patron += "</div></div></li>"; foreach (var objeto in listaOrden.Descendente()) { if (objeto is Archivo) { Archivo a = (Archivo)objeto; Usuario u = modelMantenedor.ObtenerUsuarioPorId(a.UsuarioCreacion); if (a.Version == 1) { html += string.Format(patron, a.Nombre + " (ver." + a.Version + ")", StringHelper.fechaDMA(a.Fecha), "Archivo Agregado por " + u.nombre, "yellow", "fa-plus" ); } else { html += string.Format(patron, a.Nombre + " (ver." + a.Version + ")", StringHelper.fechaDMA(a.Fecha), "Archivo Actualizado por " + u.nombre, "purple", "fa-files-o" ); } } if (objeto is Log) { Log l = (Log)objeto; //Usuario u = modelMantenedor.ObtenerUsuarioPorId(); string titulo = ""; string color = ""; string icono = ""; string texto = ""; string descripcion = StringHelper.StripTags(l.Descripcion.Replace("<br>", " ")); if (descripcion.Length > 100) { descripcion = descripcion.Substring(0, 97) + "..."; } switch (l.EstadoId) { case 1: titulo = "Cuenta Rechazada desde Validación"; color = "red"; icono = "fa-close"; texto = "Validador: " + cuenta.validador.nombre; break; case 2: titulo = "Cuenta Enviada a Validación"; color = "green"; icono = "fa-send"; texto = "Analista: " + cuenta.analista.nombre; break; case 4: titulo = "Cuenta Enviada a Validación"; color = "green"; icono = "fa-send"; texto = "Certificador: " + cuenta.certificador.nombre; break; case 3: titulo = "Cuenta Enviada a Certificación"; color = "green"; icono = "fa-send"; texto = "Validador: " + cuenta.validador.nombre; break; case 5: titulo = "Cuenta Finalizada"; color = "green"; icono = "fa-send"; texto = "Certificador: " + cuenta.certificador.nombre; break; } html += string.Format(patron, titulo, StringHelper.fechaDMA(l.Fecha), texto + "<br>Comentario: " + descripcion, color, icono ); } } html += string.Format(patron, cuenta.nombre + " - " + cuenta.numero, StringHelper.fechaDMA(cuenta.cuentaActivaFecha), "Cuenta Asignada a " + cuenta.analista.nombre, "blue timeline-noline", "fa-check-square-o" ); return(html); }
public ActionResult Ver() { if (SessionHandler.Logged && SessionHandler.Perfil == 5) { if (RouteData.Values["id"] != null) { string id = RouteData.Values["id"].ToString(); if (StringHelper.ContarCaracteres(id, '-') == 3) { EtapasModel modelEtapas = new EtapasModel(); MantenedorModel modelMantenedor = new MantenedorModel(); CuentaActivaModel modelCuentaActiva = new CuentaActivaModel(); ViewBag.UsuarioNombre = SessionHandler.Usuario; ViewBag.Menu = MenuHelper.menuPorPerfil(SessionHandler.Perfil); string[] campos = id.Split('-'); string numero = campos[0]; int cuentaId = int.Parse(campos[1]); int mes = int.Parse(campos[2]); int año = int.Parse(campos[3]); ViewBag.PageTitle = "Analisis Cuenta: " + numero; ViewBag.Numero = numero; ViewBag.Mes = StringHelper.DosNumeros(mes); ViewBag.Año = año; CuentaActiva cuenta = modelCuentaActiva.obtenerCuentaActivaPorId(cuentaId, mes, año); //Usuario usuario = modelMantenedor.ObtenerUsuarioPorId(cuenta.id); ViewBag.Empresa = cuenta.empresa.razonSocial; ViewBag.Rubro = cuenta.rubro.rubroNombre; ViewBag.Grupo = cuenta.grupo.grupoNombre; string botones = ""; botones = "<a class='btn btn-info blue' onclick='agregarArchivo()'>Agregar Archivo</a> "; botones += "<a class='btn btn-info blue' onclick='prepararEnviar()'>Finalizar Cuenta</a> "; botones += "<a class='btn btn-info blue' onclick='prepararRetroceder()'> Retroceder a Validación </a>"; if (cuenta.cuentaActivaEstado == 3) { ViewBag.botones = botones; } ViewBag.Analista = cuenta.analista.nombre; ViewBag.Validador = cuenta.validador.nombre; ViewBag.Certificador = cuenta.certificador.nombre; ViewBag.Archivos = this.ListaArchivos(cuentaId, mes, año, 3); ViewBag.CuentaId = cuentaId; ViewBag.CuentaFecha = cuenta.cuentaActivaFecha; ViewBag.LineaDeTiempo = this.TimeLine(cuentaId, mes, año); ViewBag.Logs = this.ListaLogs(cuentaId, mes, año); ViewBag.LogStatus = modelEtapas.ObtenerCuentaActivaEstadoLog(cuentaId, mes, año); return(View()); } } return(Redirect("~/Certificacion/Index")); } else { return(Redirect("~/Login/Index")); } }
public ActionResult Filtrar(string annos, string meses, string empresas, string rubros, string grupos, string cuentas) { var modelReporte = new ReporteModel(); var modelEtapas = new EtapasModel(); var lista = new List <List <string> >(); var cuentasActivas = modelReporte.ObtenerCuentasActivasPorFiltro( validarArreglo(annos), validarArreglo(meses), validarArreglo(empresas), validarArreglo(rubros), validarArreglo(grupos), validarArreglo(cuentas) ); foreach (var cuenta in cuentasActivas) { var fila = new List <string>(); int estado = modelEtapas.ObtenerCuentaActivaEstadoLog(cuenta.cuentaActivaId, cuenta.cuentaActivaFecha.Month, cuenta.cuentaActivaFecha.Year); string estadoStr = ""; string descripcion = ""; switch (estado) { case 0: estadoStr = "<b>0%</b>"; descripcion = "En Borrador"; break; case 1: estadoStr = "<b style='color: #ff0000'>33%</b>"; descripcion = "Rechazado desde Validación"; break; case 2: estadoStr = "<b style='color: #ff6600;'>66%</b>"; descripcion = "Enviado a Validación"; break; case 3: estadoStr = "<b style='color: #ff6600;'>66%</b>"; descripcion = "Enviado a Certificación"; break; case 4: estadoStr = "<b style='color: #ff6600;'>66%</b>"; descripcion = "Rechazado desde Certificación"; break; case 5: estadoStr = "<b style='color: #66ff33;'>100%</b>"; descripcion = "Certificado"; break; } fila.Add(cuenta.empresa.razonSocial); fila.Add(cuenta.numero); fila.Add(cuenta.rubro.rubroNombre); fila.Add(cuenta.grupo.grupoNombre); fila.Add(StringHelper.fechaDMA(cuenta.cuentaActivaFecha)); fila.Add(cuenta.cuentaActivaDiasPlazo.ToString()); fila.Add(descripcion); fila.Add(cuenta.analista.nombre); fila.Add(cuenta.validador.nombre); fila.Add(cuenta.certificador.nombre); fila.Add(estadoStr); lista.Add(fila); } return(Json(new { data = lista }, JsonRequestBehavior.AllowGet)); //return Json(new { response = "success" }, JsonRequestBehavior.AllowGet); //} //else //{ // switch (usuarioId) // { // case -1: // return Json(new { response = "error", message = "Nombre de Usuario o password Incorrecto" }, JsonRequestBehavior.AllowGet); // case -2: // return Json(new { response = "error", message = "No se ha podido establecer una conexion con el Servidor" }, JsonRequestBehavior.AllowGet); // } // return Json(new { response = "error", message = "Error Desconocido" }, JsonRequestBehavior.AllowGet); //} }
public ActionResult Descargar(string annos, string meses, string empresas, string rubros, string grupos, string cuentas) { var modelReporte = new ReporteModel(); var modelEtapas = new EtapasModel(); var lista = new List <List <string> >(); var cuentasActivas = modelReporte.ObtenerCuentasActivasPorFiltro( validarArreglo(annos), validarArreglo(meses), validarArreglo(empresas), validarArreglo(rubros), validarArreglo(grupos), validarArreglo(cuentas) ); foreach (var cuenta in cuentasActivas) { var fila = new List <string>(); int estado = modelEtapas.ObtenerCuentaActivaEstadoLog(cuenta.cuentaActivaId, cuenta.cuentaActivaFecha.Month, cuenta.cuentaActivaFecha.Year); string estadoStr = ""; string descripcion = ""; switch (estado) { case 0: estadoStr = "0%"; descripcion = "En Borrador"; break; case 1: estadoStr = "33%"; descripcion = "Rechazado desde Validación"; break; case 2: estadoStr = "66%"; descripcion = "Enviado a Validación"; break; case 3: estadoStr = "66%"; descripcion = "Enviado a Certificación"; break; case 4: estadoStr = "66%"; descripcion = "Rechazado desde Certificación"; break; case 5: estadoStr = "100%"; descripcion = "Certificado"; break; } fila.Add(cuenta.empresa.razonSocial); fila.Add(cuenta.numero); fila.Add(cuenta.rubro.rubroNombre); fila.Add(cuenta.grupo.grupoNombre); fila.Add(StringHelper.fechaDMA(cuenta.cuentaActivaFecha)); fila.Add(cuenta.cuentaActivaDiasPlazo.ToString()); fila.Add(descripcion); fila.Add(cuenta.analista.nombre); fila.Add(cuenta.validador.nombre); fila.Add(cuenta.certificador.nombre); fila.Add(estadoStr); lista.Add(fila); } //string archivo = modelReporte.GenerarExcel(lista); string path = HostingEnvironment.ApplicationPhysicalPath + "Archivos\\"; string file = StringHelper.HashUnico("Excel_", ".xlsx"); System.IO.File.Copy(path + "Plantillas\\Plantilla_Reporte1.xlsx", path + "Temporal\\" + file, true); modelReporte.GenerarReporte1(path + "Temporal\\" + file, lista); byte[] contenido = GetFile(path + "Temporal\\" + file);; return(File(contenido, "application/force-download", "CuentasActivas-" + DateTime.Now.ToShortDateString() + ".xlsx")); //} //else //{ // switch (usuarioId) // { // case -1: // return Json(new { response = "error", message = "Nombre de Usuario o password Incorrecto" }, JsonRequestBehavior.AllowGet); // case -2: // return Json(new { response = "error", message = "No se ha podido establecer una conexion con el Servidor" }, JsonRequestBehavior.AllowGet); // } // return Json(new { response = "error", message = "Error Desconocido" }, JsonRequestBehavior.AllowGet); //} }
// GET: Dashboard public ActionResult Index() { if (SessionHandler.Logged) { if (SessionHandler.pwdEstado) { ViewBag.PageTitle = "Dashboard"; ViewBag.UsuarioNombre = SessionHandler.Usuario; ViewBag.Menu = MenuHelper.menuPorPerfil(SessionHandler.Perfil); EtapasModel modelEtapas = new EtapasModel(); List <CuentaActiva> cuentas = new List <CuentaActiva>(); if (SessionHandler.Perfil >= 3) { switch (SessionHandler.Perfil) { case 3: cuentas = modelEtapas.obtenerCuentasActivas(DateTime.Today.Month, DateTime.Today.Year, SessionHandler.UsuarioId); break; case 4: cuentas = modelEtapas.obtenerCuentasActivas(DateTime.Today.Month, DateTime.Today.Year, -1, SessionHandler.UsuarioId); break; case 5: cuentas = modelEtapas.obtenerCuentasActivas(DateTime.Today.Month, DateTime.Today.Year, -1, -1, SessionHandler.UsuarioId); break; } } else { cuentas = modelEtapas.obtenerCuentasActivas(DateTime.Today.Month, DateTime.Today.Year); } string html = ""; foreach (CuentaActiva cuenta in cuentas) { string tr = "<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td><td>{5}</td><td>{6}</td><td>{7}</td><td>{8}</td></tr>"; int estado = modelEtapas.ObtenerCuentaActivaEstadoLog(cuenta.cuentaActivaId, cuenta.cuentaActivaFecha.Month, cuenta.cuentaActivaFecha.Year); string estadoStr = ""; string descripcion = ""; if (estado == 0) { estado = modelEtapas.ObtenerCuentaActivaEstadoParaEstado0(cuenta.cuentaActivaId, cuenta.cuentaActivaFecha.Month, cuenta.cuentaActivaFecha.Year); } switch (estado) { case -1: estadoStr = "<b>0%</b>"; descripcion = "Asignado (Sin Movimientos)"; break; case 0: estadoStr = "<b style='color: #993333'>25%</b>"; descripcion = "En Borrador"; break; case 1: estadoStr = "<b style='color: #993333'>25%</b>"; descripcion = "Rechazado desde Validación"; break; case 2: estadoStr = "<b style='color: #ff0000;'>50%</b>"; descripcion = "Enviado a Validación"; break; case 3: estadoStr = "<b style='color: #ff9933;'>75%</b>"; descripcion = "Enviado a Certificación"; break; case 4: estadoStr = "<b style='color: #ff0000;'>50%</b>"; descripcion = "Rechazado desde Certificación"; break; case 5: estadoStr = "<b style='color: #66ff33;'>100%</b>"; descripcion = "Certificado"; break; } html += string.Format(tr, cuenta.empresa.razonSocial, cuenta.numero, StringHelper.fechaDMA(cuenta.cuentaActivaFecha), cuenta.cuentaActivaDiasPlazo, descripcion, cuenta.analista.nombre, cuenta.validador.nombre, cuenta.certificador.nombre, estadoStr ); } ViewBag.Table = html; return(View()); } else { return(Redirect("~/Perfil/Index")); } } else { return(Redirect("~/Login/Index")); } }