Mejoras en módulo de circulares

-Agregar botón de cancelar en CircularDetalleB
-Selección de proveedores por Rol se hace por medio de javascript; ya no pierde la selección al filtrar
 + custom.js: FiltrarTablaStr y FiltrarTablaStrMulti
-Texto de alerta actualizado
-En la creación de una nueva circular, se prepone el texto "Circular"
-En el listado de circulares
 + columna de Fecha de Ingreso
 - el combo de usuario dice "Todos" en vez de "seleccione"
 - se cambió la alineación a izq.
 - se arregló el gridview para que refrescara bien al momento de Consultar
This commit is contained in:
MLopez
2023-02-11 16:15:09 -07:00
parent 12ef94c4a1
commit e66d428ee7
5 changed files with 76 additions and 25 deletions

View File

@@ -68,11 +68,12 @@
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" DataKeyNames="CveCircular,Asunto,Usuario" EmptyDataText="No se encontraron Circulares"
ToolTip="Listado de Metas Vendedor" CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; text-align: center; width: 100%" GridLines="None">
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" DataKeyNames="CveCircular,Asunto,Usuario,FechaIng" EmptyDataText="No se encontraron Circulares"
ToolTip="Listado de Metas Vendedor" CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; text-align: left; width: 100%" GridLines="None">
<Columns>
<asp:HyperLinkField HeaderText="Asunto" DataTextField="Asunto" DataNavigateUrlFields="CveCircular" DataNavigateUrlFormatString="/OI/CircularDetalleB.aspx?CveCircular={0}" />
<asp:HyperLinkField HeaderText="Usuario" DataTextField="Usuario" DataNavigateUrlFields="CveCircular" DataNavigateUrlFormatString="/OI/CircularDetalleB.aspx?CveCircular={0}" />
<asp:HyperLinkField HeaderText="Fecha Ing." DataTextField="FechaIng" DataNavigateUrlFields="CveCircular" DataNavigateUrlFormatString="/OI/CircularDetalleB.aspx?CveCircular={0}" ItemStyle-Width="250px" />
</Columns>
</asp:GridView>
</ContentTemplate>

View File

@@ -30,7 +30,7 @@ Partial Class OI_Circular
DdlUsuario.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
DdlUsuario.DataBind()
DdlUsuario.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlUsuario.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaDatos()
Dim ObjOI As New ClsOIEventos
@@ -40,6 +40,7 @@ Partial Class OI_Circular
End If
ObjOI.Dispose()
GvDatos.DataBind()
UpDatos.Update()
End Sub
Protected Sub btConsultar_Click() Handles btConsultar.Click

View File

@@ -108,14 +108,14 @@
<h3 class="panel-title">Asunto</h3>
</div>
<div class="bodycorreos">
<asp:TextBox ID="TxtAsunto" runat="server" CssClass="form-control "></asp:TextBox>
<asp:TextBox ID="TxtAsunto" text="Circular " runat="server" CssClass="form-control"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvAsunto" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtAsunto" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Asunto''</b> es necesario, por favor ingréselo." ValidationGroup="GrpCircular"></asp:RequiredFieldValidator>
</div>
</div>
<div class="pnlCorreo" style="margin-bottom: 5px;">
<div class="headerCorreo headerCorreoCCP" style="background-color: transparent;">
<div class="headerCorreo headerCorreoCCP" style="background-color: transparent; float:right;">
<h3 class="panel-title ">Adjuntar Archivos:</h3>
<asp:TextBox ID="TxtArchivo" CssClass="ADSdropzone hidden" runat="server"></asp:TextBox>
@@ -137,6 +137,7 @@
<div class="text-center">
<asp:Button ID="BtnGuardar" OnClick="BtnGuardar_Click" runat="server" CssClass="btn btn-primary" Text="Guardar" Visible="true" ValidationGroup="GrpCircular" />
<asp:Button ID="BtnCancelar" PostBackUrl="Circular.aspx" runat="server" CssClass="btn btn-danger" Style="margin-left: 20px!important;" Text="Cancelar" Visible="true"/>
<asp:Button ID="BtnEliminar" OnClick="BtnEliminar_Click" runat="server" CssClass="btn btn-danger" Text="Eliminar" Visible="false" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</div>
@@ -173,7 +174,7 @@
<div class="row" id="DVModalFiltrosUsuarios" visible="true" runat="server">
<div class="col-md-6">
<div class="form-group form-md-line-input">
<asp:DropDownList runat="server" ID="DdlRoles" DataValueField="CveRol" DataTextField="Rol" CssClass="select2me form-control" Width="100%" OnSelectedIndexChanged="DdlRoles_SelectedIndexChanged" AutoPostBack="true" />
<asp:DropDownList runat="server" ID="DdlRoles" DataValueField="CveRol" DataTextField="Rol" CssClass="select2me form-control" Width="100%" OnSelectedIndexChanged="DdlRoles_SelectedIndexChanged" AutoPostBack="true"/>
<asp:Label runat="server" Text="Perfil:" AssociatedControlID="DdlRoles"></asp:Label>
</div>
</div>
@@ -221,8 +222,8 @@
<div class="row" >
<div class="row col-md-12" align="right" style="margin-top:5px!important">
<input type="text" id="TxtBusquedaCorreos" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaCorreos','{0}')", GVUsuarios.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaCorreos','{0}')", GVUsuarios.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
<input type="text" id="TxtBusquedaCorreos" class="form-control input-sm" onkeyup="filtrarx()" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="filtrarx()" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
@@ -315,7 +316,6 @@
function chkAll_OncLick(chk) {
$('.GVUsuarios tr:visible input[type="checkbox"]').prop("checked", chk.checked);
}
//function showhideUser() {
// // alert(CveRol);
@@ -346,12 +346,20 @@
// });
// input.addClass('ConEvento');
//}
//function ADSReady() {
function filtrarx() {
//console.log('Entre 3')
//var filtro = sotext($("div[id^='C_DVModalFiltros'] select:first").attr("id"));
//console.log(filtro)
FiltrarTablaStrMulti('<%=GVUsuarios.ClientID %>', null, sotext('<%=DdlRoles.ClientID %>'), $('#TxtBusquedaCorreos').val());
}
function ADSBegin() {
// loadeventos();
// showhideUser()
//}
}
//inicializa tablas select2me etc etc.....
function ADSReady() {
filtrarx();
}
</script>
</asp:Content>

View File

@@ -189,7 +189,7 @@ public partial class OI_CircularDetalleB : ClsPaginas
ClsOIEventos ObjOI = new ClsOIEventos();
if (ObjOI.GetCircularCorreos(intTipoConsulta, UsuarioActual.CveEmpresa,DdlRoles.SelectedValue.ToEntero(),DdlSubProyecto.SelectedValue.ToEntero(), DdlCveClasificacionProveedor.SelectedValue.ToEntero(), DdlSubProyectoPersonal.SelectedValue.ToEntero(),DdlClasificacion.SelectedValue.ToEntero()))
if (ObjOI.GetCircularCorreos(intTipoConsulta, UsuarioActual.CveEmpresa, -1, DdlSubProyecto.SelectedValue.ToEntero(), DdlCveClasificacionProveedor.SelectedValue.ToEntero(), DdlSubProyectoPersonal.SelectedValue.ToEntero(), DdlClasificacion.SelectedValue.ToEntero()))
{
if (ObjOI.DtResultados.Rows.Count >= 1000)
@@ -203,7 +203,7 @@ public partial class OI_CircularDetalleB : ClsPaginas
GVUsuarios.DataSource = dt;
Alert($"{ObjOI.DtResultados.Rows.Count } registros se limito a 2000 registros, se recomienda usar los filtros.", ModExtensiones.TipoMensaje.ToastAdventencia);
Alert($"{ObjOI.DtResultados.Rows.Count} registros se limito a 2000 registros, se recomienda usar los filtros.", ModExtensiones.TipoMensaje.ToastAdventencia);
}
else
{
@@ -216,14 +216,11 @@ public partial class OI_CircularDetalleB : ClsPaginas
GVUsuarios.DataSource = null;
}
RegistraScript("CveRol = -1; CveSucursal = -1;usuariotext = \"\";");
ObjOI.Dispose();
GVUsuarios.DataBind();
UpModalSeleccionCorreos.Update();
}
protected void GVUsuarios_RowDataBound(object sender, GridViewRowEventArgs e)
@@ -301,7 +298,7 @@ public partial class OI_CircularDetalleB : ClsPaginas
if (ObjOI.UpdateCircular(CveCircular, TxtAsunto.Text, TxtCircular.Text.Replace("< ","<"), TxtCorreo.Text, TxtCorreoAdicional.Text, AdjuntoValidate))
{
GuardarArchivo(CveCircular);
Alert("Actualizado correctamente");
Alert("La circular se ha actualizado correctamente.");
}
}
else
@@ -313,7 +310,7 @@ public partial class OI_CircularDetalleB : ClsPaginas
if (CircularInsertado > 0)
{
GuardarArchivo(CircularInsertado);
Alert("Ingresado correctamente");
Alert("La circular se ha guardado correctamente.");
CveCircular = CircularInsertado;
if (CveCircular > 0)
@@ -443,7 +440,7 @@ public partial class OI_CircularDetalleB : ClsPaginas
MandaCorreo(TxtAsunto.Text, Correo, Contador > 0 ? "" : TxtCorreoAdicional.Text, TxtCircular.Text.Replace("< ", "<"), ArchivoBytes, HkArchivo.Text);
Contador += 1;
}
Alert("El correo se envió correctamente");
Alert("El correo se envió correctamente.");
}
catch (Exception )
{
@@ -522,10 +519,13 @@ public partial class OI_CircularDetalleB : ClsPaginas
protected void DdlRoles_SelectedIndexChanged(object sender, EventArgs e)
{
ConsultaCorreos();
}
//ConsultaCorreos();
// Filtro las filas según el dropdown option
//RegistraScript("console.log('Entre 1')");
//RegistraScript($"FiltrarTablaStrMulti('{GVUsuarios.ClientID}', null, sotext('{DdlRoles.ClientID}'), $('#TxtBusquedaCorreos').val());");
}
protected void DdlSubProyecto_SelectedIndexChanged(object sender, EventArgs e)
protected void DdlSubProyecto_SelectedIndexChanged(object sender, EventArgs e)
{
ConsultaCorreos();
}
@@ -542,7 +542,7 @@ public partial class OI_CircularDetalleB : ClsPaginas
protected void DdlClasificacion_SelectedIndexChanged(object sender, EventArgs e)
{
// ConsultaCorreos();
ConsultaCorreos();
}
protected void LnlActualizarCorreos_Click(object sender, EventArgs e)

View File

@@ -69,6 +69,15 @@ function alertatoast(tipo, Mensaje, Funcion, timeout) {
function log(mensaje) {
console.log(mensaje);
}
function soval(dropdown) {
return $('option:selected', '#' + dropdown).val();
}
function sotext(dropdown) {
return $('option:selected', '#' + dropdown).text();
}
function FiltrarTabla(idtxt, idtable, idcontador) {
if ($('#' + idtxt).val() == '') { $('table#' + idtable + ' tr').css('display', ''); }
else {
@@ -79,6 +88,38 @@ function FiltrarTabla(idtxt, idtable, idcontador) {
$('#' + idcontador).html($('#' + idtable + ' tr:visible').length);
}
}
function FiltrarTablaStr(str, idtable, idcontador) {
if (str == '' || str == 'Todos') { $('table#' + idtable + ' tr').css('display', ''); }
else {
$('table#' + idtable + ' tr:not(.ADtr)').css('display', 'none');
$('table#' + idtable + ' tr:contains("' + str + '")').css('display', '');
$('div.ADScroller .ADScroller-header table#' + idtable + ' tr:not(.ADtr)').css('display', '');
}
if ($('#' + idcontador).length > 0) {
$('#' + idcontador).html($('#' + idtable + ' tr:visible').length);
}
}
function FiltrarTablaStrMulti(idtable, idcontador /*, str1, str2, str3...*/ ) {
if (arguments.length <= 2) { return; }
let strc = '';
for (let i = 2 /*a partir del 3er argumento obtiene los str*/; i < arguments.length; i++) {
let str = arguments[i];
if (str != '' && str != 'Todos') {
strc += ':contains("' + str + '")';
}
}
$('table#' + idtable + ' tr:not(.ADtr)').css('display', 'none');
$('table#' + idtable + ' tr' + strc).css('display', '');
$('div.ADScroller .ADScroller-header table#' + idtable + ' tr:not(.ADtr)').css('display', '');
if (idcontador) {
if ($('#' + idcontador).length > 0) {
$('#' + idcontador).html($('#' + idtable + ' tr:visible').length);
}
}
}
function FiltrarTablaClass(idtxt, idtable, idcontador, resta) {
if (resta == null) {
resta =1