public ActionResult reprocesarExcel(string[][] data) { var modelExcel = new Models.ExcelModel(); var modelMantenedor = new Models.MantenedorModel(); var modelCuentas = new Models.CuentaActivaModel(); List <FilaJson> lista = new List <FilaJson>(); foreach (string[] fila in data) { string empresa = fila[0]; string nroCuenta = fila[1]; string total = fila[2]; string analista = fila[3]; string validador = fila[4]; string certificador = fila[5]; var dias = fila[6]; string[] fecha = fila[7].Split('/'); int mm = int.Parse(fecha[0]); int yyyy = int.Parse(fecha[1]); string id = fila[8]; CuentaActiva ca = new CuentaActiva(); ca.numero = nroCuenta; ca.cuentaActivaTotal = int.Parse(total); ca.cuentaActivaDiasPlazo = int.Parse(dias); ca.cuentaActivaFecha = new DateTime(yyyy, mm, 1); ca.empresa = new Empresa(); ca.empresa.razonSocial = empresa; ca.analista = new Usuario(); ca.analista.nombre = analista; ca.validador = new Usuario(); ca.validador.nombre = validador; ca.certificador = new Usuario(); ca.certificador.nombre = certificador; var r = modelCuentas.IngresarActualizarAsignacionCuenta(ca, SessionHandler.UsuarioId); lista.Add(new FilaJson { fila = id, resultado = r.insertUpdate.ToString() }); } return(Json(new { response = "success", resultados = Json(lista) }, JsonRequestBehavior.AllowGet)); }
private string generarListaLogItem(Log log, CuentaActiva cuenta) { string html = ""; string tipo = ""; string usuario = ""; string titulo = ""; string fecha = StringHelper.fechaDMA(log.Fecha); string comentario = log.Descripcion; switch (log.EstadoId) { case 1: titulo = "Cuenta Rechazada desde Validación"; tipo = "Validador"; usuario = cuenta.validador.nombre; break; case 2: titulo = "Cuenta Enviada a Validación"; tipo = "Analista"; usuario = cuenta.analista.nombre; break; case 3: titulo = "Cuenta Enviada a Certificación"; tipo = "Validador"; usuario = cuenta.validador.nombre; break; case 4: titulo = "Cuenta Rechazada desde Certificación"; tipo = "Certificador"; usuario = cuenta.certificador.nombre; break; case 5: titulo = "Cuenta Certificada"; tipo = "Certificador"; usuario = cuenta.certificador.nombre; break; } html = string.Format("<span class='title'>{4}</span><br>{0}: {1} ({2})<br>{3}", tipo, usuario, fecha, comentario, titulo); return(html); }
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 procesarExcel(string archivo) { var modelExcel = new Models.ExcelModel(); var modelMantenedor = new Models.MantenedorModel(); var modelCuenta = new Models.CuentaActivaModel(); var selectEmpresas = ""; var empresas = modelMantenedor.obtenerEmpresas(); var selectUsuarios = ""; var usuarios = modelMantenedor.obtenerUsuarios(); var cuentas = modelMantenedor.obtenerCuentas(); var selectCuentas = ""; foreach (Cuenta fila in cuentas) { selectCuentas += "<option value='" + fila.id + "'>" + fila.numero + "</option>"; } foreach (Empresa fila in empresas) { selectEmpresas += "<option value='" + fila.empresaId + "'>" + fila.razonSocial + "</option>"; } foreach (Usuario fila in usuarios) { selectUsuarios += "<option value='" + fila.usuarioId + "'>" + fila.nombre + "</option>"; } List <CuentaActiva> cuentasActivas; cuentasActivas = modelExcel.ObtenerCuentasActivasDesdeArchivo(HostingEnvironment.ApplicationPhysicalPath + "Archivos\\Temporal\\" + archivo); string html = ""; int contador = 0; bool errores = false; foreach (CuentaActiva cuenta in cuentasActivas) { contador++; CuentaActiva c = modelCuenta.IngresarActualizarAsignacionCuenta(cuenta, SessionHandler.UsuarioId); if (c.cuentaActivaId == -1) { html += "<tr class='danger' id='" + contador + "'>"; errores = true; } else { html += "<tr>"; } //html += "<td>" + contador + "</td>"; html += "<td>"; var htmlcuenta = ""; if (c.empresa.empresaId == -1) { html += "<select id='ReprocesarEmpresa' name='empresas' class='form-control' onchange='CargarCuentasPorEmpresa()'>"; html += "<option value=''>" + c.empresa.razonSocial + " (Valor Erroneo) </option>" + selectEmpresas; html += "</select>"; htmlcuenta += "<select id='ReprocesarCuenta' name='cuentas' class='form-control' >"; htmlcuenta += "<option value=''> Seleccione... </option>"; htmlcuenta += "</select>"; } else { html += c.empresa.razonSocial; if (c.id != -1) { htmlcuenta = c.numero; } else { var cuentasEmpresa = modelMantenedor.ObtenerCuentasPorEmpresa(c.empresa.empresaId); htmlcuenta += "<select name='cuentas' class='form-control' >"; htmlcuenta += "<option value=''>" + c.numero + " (Valor Erroneo) </option>"; foreach (Cuenta fila in cuentasEmpresa) { htmlcuenta += "<option value='" + fila.id + "'>" + fila.numero + "</option>"; } htmlcuenta += "</select>"; } } html += "</td>"; html += "<td>" + htmlcuenta + "</td>"; html += "<td>" + c.cuentaActivaTotal + "</td>"; html += "<td>"; if (c.analista.usuarioId == -1) { html += "<select name='analista' class='form-control' >"; html += "<option value=''>" + c.analista.nombre + " (Valor Erroneo) </option>" + selectUsuarios; html += "</select>"; } else { html += c.analista.nombre; } html += "</td>"; html += "<td>"; if (c.validador.usuarioId == -1) { html += "<select name='validador' class='form-control' >"; html += "<option value=''>" + c.validador.nombre + " (Valor Erroneo) </option>" + selectUsuarios; html += "</select>"; } else { html += c.validador.nombre; } html += "</td>"; html += "<td>"; if (c.certificador.usuarioId == -1) { html += "<select name='certificador' class='form-control' >"; html += "<option value=''>" + c.certificador.nombre + " (Valor Erroneo) </option>" + selectUsuarios; html += "</select>"; } else { html += c.certificador.nombre; } html += "</td>"; html += "<td>" + c.cuentaActivaDiasPlazo + "</td>"; html += "<td>" + StringHelper.DosNumeros(c.cuentaActivaFecha.Month) + "/" + c.cuentaActivaFecha.Year + "</td>"; html += "<td>"; if (c.id == -1) { html += "FALLIDO <i class='fa fa-times-circle danger'></i>"; } else { if (c.insertUpdate) { html += "INSERTADA <i class='fa fa-plus-circle' style='color:#4f4' ></i>"; } else { html += "ACTUALIZADA <i class='fa fa-check-circle' style='color:#4f4' ></i>"; } } html += "</td>"; html += "</tr>"; } return(Json(new { response = "success", tabla = html, errores = errores }, 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")); } }