Fix UI Quotes
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (push) Successful in 6m30s

This commit is contained in:
Leandro Hernan Rojas 2025-09-11 14:12:23 -03:00
parent c2bd8247a1
commit a462e1791c
2 changed files with 210 additions and 205 deletions

View File

@ -7,12 +7,14 @@
@inject QuoteService quoteService @inject QuoteService quoteService
@inject IToastService toastService @inject IToastService toastService
<div class="card" style="zoom:80%"> <div class="card shadow-sm mb-3" style="zoom: 0.8;">
<div class="card-header d-flex justify-content-center align-items-center"> <div class="card-header py-2">
<div class="d-flex justify-content-center align-items-center">
<h3 class="card-title m-0">Consulta de Presupuestos</h3> <h3 class="card-title m-0">Consulta de Presupuestos</h3>
</div> </div>
</div>
<!-- BODY --> <!-- BODY -->
<div class="card-body px-4"> <div class="card-body">
<!-- FILTROS --> <!-- FILTROS -->
<div class="mb-3 row g-2 align-items-end"> <div class="mb-3 row g-2 align-items-end">
<div class="col-sm"> <div class="col-sm">
@ -55,7 +57,7 @@
<label for="dateto">Hasta</label> <label for="dateto">Hasta</label>
<InputDate id="dateto" @bind-Value="Filters.IssueDateTo" class="form-control form-control-sm" /> <InputDate id="dateto" @bind-Value="Filters.IssueDateTo" class="form-control form-control-sm" />
</div> </div>
<div class="col-auto"> <div class="d-flex justify-content-end gap-2 mt-3">
<button class="btn btn-primary btn-sm rounded-pill" @onclick="Search"> <button class="btn btn-primary btn-sm rounded-pill" @onclick="Search">
<i class="fas fa-binoculars me-1"></i> Buscar <i class="fas fa-binoculars me-1"></i> Buscar
</button> </button>
@ -67,13 +69,13 @@
</button> </button>
</div> </div>
</div> </div>
<hr /> </div>
</div>
<div class="card shadow-sm" style="zoom:0.8;">
<div class="table-responsive">
<!-- TABLA DE RESULTADOS --> <!-- TABLA DE RESULTADOS -->
@if (PagedQuotes?.Items?.Any() == true) <table class="table table-sm align-middle mb-0">
{ <thead class="table-light">
<table class="table table-sm table-hover" style="zoom:0.9;">
<thead>
<tr> <tr>
<th>Quotenumber</th> <th>Quotenumber</th>
<th>Emisión</th> <th>Emisión</th>
@ -91,6 +93,8 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@if (PagedQuotes?.Items?.Any() == true)
{
@foreach (var quote in PagedQuotes.Items) @foreach (var quote in PagedQuotes.Items)
{ {
<tr class="text-center"> <tr class="text-center">
@ -122,10 +126,53 @@
</td> </td>
</tr> </tr>
} }
}
else if (IsLoading)
{
<tr><td colspan="13" class="text-center text-muted py-4">Cargando...</td></tr>
}
else
{
<tr><td colspan="13" class="text-center text-muted py-4">Sin resultados</td></tr>
}
</tbody> </tbody>
</table> </table>
@if (SelectedQuote != null) </div>
{ <!-- Paginación debajo -->
<div class="d-flex justify-content-between align-items-center px-3 py-2 border-top">
<div class="btn-group align-items-center">
<button class="btn btn-outline-secondary btn-sm rounded-pill" @onclick="PrimeraPagina" disabled="@(Filters.Page == 1)">
<i class="fas fa-angle-double-left me-1"></i> Primera
</button>
<button class="btn btn-outline-secondary btn-sm rounded-pill" @onclick="AnteriorPagina" disabled="@(!PuedeRetroceder)">
<i class="fas fa-chevron-left me-1"></i> Anterior
</button>
<span class="mx-2">
Página <strong>@Filters.Page</strong> de <strong>@TotalPaginas</strong>
</span>
<button class="btn btn-outline-secondary btn-sm rounded-pill" @onclick="SiguientePagina" disabled="@(!PuedeAvanzar)">
Siguiente <i class="fas fa-chevron-right ms-1"></i>
</button>
<button class="btn btn-outline-secondary btn-sm rounded-pill" @onclick="UltimaPagina" disabled="@(Filters.Page == TotalPaginas)">
Última <i class="fas fa-angle-double-right ms-1"></i>
</button>
<div class="d-flex align-items-center ms-3">
<input type="number"
class="form-control form-control-sm rounded"
style="width: 80px;"
min="1"
max="@TotalPaginas"
@bind="PaginaDeseada" />
</div>
<button class="btn btn-outline-secondary btn-sm rounded-pill" @onclick="IrAPagina">
<i class="fas fa-arrow-right-to-bracket me-1"></i> Ir
</button>
</div>
</div>
</div>
@if (SelectedQuote != null)
{
<!-- BACKDROP semitransparente --> <!-- BACKDROP semitransparente -->
<div class="position-fixed top-0 start-0 w-100 h-100" style="background: rgba(0,0,0,0.4);"></div> <div class="position-fixed top-0 start-0 w-100 h-100" style="background: rgba(0,0,0,0.4);"></div>
<!-- DRAWER LATERAL --> <!-- DRAWER LATERAL -->
@ -244,50 +291,8 @@
} }
</div> </div>
</div> </div>
} }
}
else if (IsLoading)
{
<p>Cargando...</p>
}
else
{
<p>No hay resultados.</p>
}
</div>
<!-- FOOTER: PAGINACIÓN -->
<div class="card-footer d-flex justify-content-center align-items-center" style="zoom:80%;">
<div class="d-flex align-items-center gap-3">
<button class="btn btn-secondary btn-sm rounded-pill" @onclick="PrimeraPagina" disabled="@(Filters.Page == 1)">
<i class="fas fa-angle-double-left me-1"></i> Primera
</button>
<button class="btn btn-secondary btn-sm rounded-pill" @onclick="AnteriorPagina" disabled="@(!PuedeRetroceder)">
<i class="fas fa-chevron-left me-1"></i> Anterior
</button>
<span class="mx-2">
Página <strong>@Filters.Page</strong> de <strong>@TotalPaginas</strong>
</span>
<button class="btn btn-secondary btn-sm rounded-pill" @onclick="SiguientePagina" disabled="@(!PuedeAvanzar)">
Siguiente <i class="fas fa-chevron-right ms-1"></i>
</button>
<button class="btn btn-secondary btn-sm rounded-pill" @onclick="UltimaPagina" disabled="@(Filters.Page == TotalPaginas)">
Última <i class="fas fa-angle-double-right ms-1"></i>
</button>
<div class="d-flex align-items-center ms-3">
<input type="number"
class="form-control form-control-sm rounded"
style="width: 80px;"
min="1"
max="@TotalPaginas"
@bind="PaginaDeseada" />
<button class="btn btn-outline-primary btn-sm ms-2 rounded-pill" @onclick="IrAPagina">
<i class="fas fa-arrow-right-to-bracket me-1"></i> Ir
</button>
</div>
</div>
</div>
</div>
@code { @code {
private QuoteSearchParams Filters = new() { PageSize = 9 }; private QuoteSearchParams Filters = new() { PageSize = 9 };

View File

@ -129,7 +129,7 @@
} }
else else
{ {
<tr><td colspan="6" class="text-center text-muted py-4">Sin resultados</td></tr> <tr><td colspan="9" class="text-center text-muted py-4">Sin resultados</td></tr>
} }
</tbody> </tbody>
</table> </table>