TFS_ANTIGUO/TPAtesa_CuentasCobrar/CuentasCobrar.UI/Views/Cliente/Index.cshtml

239 lines
No EOL
14 KiB
Text

@{
ViewData["Title"] = "Clientes";
List<TelefonoViewModel?> telefonos = ViewBag.Telefonos;
List<PaisViewModel?> paises = ViewBag.Paises;
List <TipoIdentificacionViewModel?> TiposIdentificacion = ViewBag.TiposIdentificacion;
List<string> Roles = ViewBag.Roles;
ClienteFilterModel Filtros = ViewBag.Filtros;
int NumeroDePagina = 1;
int RegistrosTotales = 0;
int RegistrosPorPagina = 5;
int PaginasTotales = 1;
bool HayPaginaSiguiente = false;
bool HayPaginaAnterior = false;
int? NumeroPaginaSiguiente = 0;
int? NumeroPaginaAnterior = 0;
if (Model.Count > 0)
{
NumeroDePagina = Model.DatosDePaginacion.NumeroDePagina;
RegistrosTotales = Model.DatosDePaginacion.RegistrosTotales;
RegistrosPorPagina = Model.DatosDePaginacion.RegistrosPorPagina;
PaginasTotales = Model.DatosDePaginacion.PaginasTotales;
HayPaginaSiguiente = Model.DatosDePaginacion.HayPaginaSiguiente;
HayPaginaAnterior = Model.DatosDePaginacion.HayPaginaAnterior;
NumeroPaginaSiguiente = Model.DatosDePaginacion.NumeroPaginaSiguiente;
NumeroPaginaAnterior = Model.DatosDePaginacion.NumeroPaginaAnterior;
}
List<int> ListaRegistrosPorPagina = new List<int> { 5, 10, 15, 25, 50, RegistrosTotales };
}
<!-- Contenido Inicia -->
<div class="content-wrapper">
<!-- Encabezado del contenido Inicia -->
@(
await Html.PartialAsync("_NavLinksPartial", new ViewDataDictionary(ViewData)
{
{ "EsPaginada", true },
{ "EsPaginaIndice", true },
{ "Titulo", ViewData["Title"] },
})
)
<!-- Encabezado del contenido Termina -->
<!-- Contenido Principal Inicia -->
<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-end mb-3" >
@if (Roles.Exists(r => r == "ADMINISTRADOR" || r == "OPERATIVO"))
{
<!-- Boton Agregar Inicia -->
<a class="btn btn-sm btn-success lh-1 center-button-y" asp-controller="Cliente" asp-action="Agregar"
asp-route-numeroDePagina=@NumeroDePagina
asp-route-registrosPorPagina=@RegistrosPorPagina
asp-route-BusquedaCliente=@Filtros.BusquedaCliente>
<i class="fas fa-plus"></i>
Agregar
</a>
<!-- Boton Agregar Termina -->
}
</div>
<form id="form-filtros" class="row px-2 justify-content-between" asp-controller="Cliente" asp-action="Index">
<!-- Select de Paginacion Inicia -->
<div >
@(
await Html.PartialAsync("_RecordsPerPagePartial",new ViewDataDictionary(ViewData)
{
{ "RegistrosXPagina", RegistrosPorPagina},
{ "HayRegistros", (Model.Count > 0 ? true : false)},
{ "EsPaginaIndice", true },
{ "ListaRegistrosPorPagina", new List<int> { 5, 10, 15, 25, 50, RegistrosTotales } }
})
)
</div>
<!-- Select de Paginacion Termina -->
<div class="d-flex aling-items-center">
<input id="BusquedaCliente" name="BusquedaCliente" class="form-control w-100" type="text" placeholder="Buscar" value=@Filtros.BusquedaCliente>
<button class="btn">
<i class="fas fa-search"></i>
</button>
</div>
</form>
<div id="table-container" class="dataTables_wrapper dt-bootstrap4">
<!-- Tabla Inicia -->
<table id="tablasMT" class="table table-bordered table-striped dataTable table-hover">
<thead class="thead-dark">
<tr>
<th>Número de cédula</th>
<th>Tipo de cédula</th>
<th>Nombre</th>
<th>Correo</th>
<th>Teléfono</th>
<th>Estado</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<!-- Insercion de Tuplas Existentes Inicia -->
@foreach (var cliente in Model)
{
<tr>
<td>@cliente.NoIdentificacion</td>
<td>@(TiposIdentificacion.FirstOrDefault(x=> x.IdTipoIdentificacion == cliente.IdTipoIdentificacion).Descripcion)</td>
<td>@cliente.Nombre @cliente.Apellido1 @cliente.Apellido2</td>
<td>@cliente.Correo</td>
@if (telefonos.FirstOrDefault(x => x.NoIdentificacionCliente.ToUpper() == cliente.NoIdentificacion.ToUpper()) != null)
{
<td>
@(paises.FirstOrDefault(x => x.IdPais == cliente.IdPaisNacionalidad).CodigoDeArea)
@(telefonos.FirstOrDefault(x => x.NoIdentificacionCliente.ToUpper() == cliente.NoIdentificacion.ToUpper()).Numero)
</td>
} else
{
<td></td>
}
<td>@(cliente.Habilitado == true ? "Activo" : "Inactivo") </td>
<td class="text-center">
<a class="btn btn-sm btn-primary mr-2" asp-controller="Cliente" asp-action="Detalles"
asp-route-noIdentificacion="@cliente.NoIdentificacion"
asp-route-numeroDePagina=@NumeroDePagina
asp-route-registrosPorPagina=@RegistrosPorPagina
asp-route-BusquedaCliente=@Filtros.BusquedaCliente>
Ver más
</a>
@if (Roles.Exists(r => r == "ADMINISTRADOR" || r == "OPERATIVO"))
{
<a class="btn btn-sm btn-danger" onclick="Eliminar('@cliente.NoIdentificacion', '@NumeroDePagina', '@RegistrosPorPagina', '@Filtros.BusquedaCliente')">
<i class="fa fa-trash"></i>
</a>
}
</td>
</tr>
}
<!-- Insercion de Tuplas Existentes Termina -->
</tbody>
</table>
<!-- Tabla Termina -->
<!-- Informacion de Paginacion Inicia -->
<div class="row mt-3 w-100 justify-content-between aling-items-center">
@if (RegistrosTotales != 0)
{
<p class="pl-2 my-auto">
Mostrando @(((NumeroDePagina - 1) * RegistrosPorPagina) + 1) a @(NumeroDePagina * RegistrosPorPagina > RegistrosTotales ?
RegistrosTotales : NumeroDePagina * RegistrosPorPagina) de @RegistrosTotales registros
</p>
<!-- Navegacion de Paginacion Inicia -->
<div class="row justify-content-end text-center h-75">
@if (HayPaginaAnterior)
{
<a class="pagination-btn btn" asp-controller="Cliente" asp-action="Index"
asp-route-numeroDePagina=@NumeroPaginaAnterior
asp-route-registrosPorPagina=@RegistrosPorPagina
asp-route-BusquedaCliente=@Filtros.BusquedaCliente>
&lt
</a>
}
else
{
<a class="disable-btn pagination-btn btn" disabled> &lt </a>
}
<form class="row mx-2 my-auto" style="width:30%;" asp-controller="Cliente" asp-action="Index">
<input type="hidden" name="registrosPorPagina" value=@RegistrosPorPagina />
<input id="paginacionInput"
type="number"
class="text-center my-auto w-100"
value=@NumeroDePagina
placeholder=@NumeroDePagina
name="numeroDePagina"
min="1"
max=@PaginasTotales />
</form>
<p class="my-auto mr-2">de @PaginasTotales</p>
@if (HayPaginaSiguiente)
{
<a class="pagination-btn btn" asp-controller="Cliente" asp-action="Index"
asp-route-numeroDePagina=@NumeroPaginaSiguiente
asp-route-registrosPorPagina=@RegistrosPorPagina
asp-route-BusquedaCliente=@Filtros.BusquedaCliente>
>
</a>
}
else
{
<a class="disable-btn pagination-btn btn"> > </a>
}
</div>
<!-- Navegacion de Paginacion Termina -->
}
else
{
<p class="pl-2 my-auto">
No existen registros
</p>
<!-- Navegacion de Paginacion Inicia -->
<div class="row justify-content-end text-center h-75">
<a class="btn pagination-btn disable-btn"> &lt </a>
<div class="row mx-2 my-auto" style="width:30%;">
<input readonly
type="number" class="text-center my-auto form-control w-100"
value=@NumeroDePagina
min="1"
max=@PaginasTotales />
</div>
<p class="my-auto mr-2">de @NumeroDePagina</p>
<a class="btn pagination-btn disable-btn"> > </a>
</div>
<!-- Navegacion de Paginacion Termina -->
}
</div>
<!-- Informacion de Paginacion Termina -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--Contenido Principal Termina -->
</div>
<!-- Contenido Termina -->
@section Scripts {
@{
await Html.RenderPartialAsync("_PanelNotificationPartial");
<script src="~/js/Cliente/Cliente.js"></script>
<script src="~/js/DataTable.js"></script>
}
}