165 lines
5.6 KiB
Plaintext
165 lines
5.6 KiB
Plaintext
@using BlazorBootstrap
|
|
@using bdHerramientaCACOA.db
|
|
|
|
<Toasts class="p-3 font-weight-bold" Style="color:white;" AutoHide="true" Delay="4000" Messages="mensajes" Placement="ToastsPlacement.BottomCenter" />
|
|
|
|
<div class="d-flex justify-content-between mt-3 alturaTitulosTabla">
|
|
<div><b>Costes Indirectos Anuales</b></div>
|
|
|
|
</div>
|
|
<div style="position:relative;margin-bottom: 20px;">
|
|
<Grid
|
|
@ref="grid"
|
|
TItem="CASA.CosteIndirecto"
|
|
Class="tablaCACOA table"
|
|
Data="costesIndirectos"
|
|
AllowFiltering="false"
|
|
PageSize="10"
|
|
Height="100"
|
|
EmptyText="No hay registros."
|
|
PageSizeSelectorVisible="false"
|
|
Responsive="true">
|
|
|
|
<GridColumns>
|
|
<GridColumn TItem="CASA.CosteIndirecto" HeaderText="Concepto" HeaderTextAlignment="Alignment.Center" PropertyName="Concepto" Class="colorFilasIntro">
|
|
@context.Concepto
|
|
</GridColumn>
|
|
<GridColumn TItem="CASA.CosteIndirecto" HeaderTextAlignment="Alignment.Center" Class="formatoMoneda columna30Ancho" HeaderText="Importe" PropertyName="importe">
|
|
<div class="d-flex separadorMoneda">
|
|
<CurrencyInput HideCurrencySymbol="true" TValue="double" Locale="es-ES" Min="0" class="inputForm formatoMoneda inputTabla" Value="@context.importe" ValueExpression="() => context.importe" ValueChanged="(value) => valorCambiado(value,context)"></CurrencyInput> €
|
|
</div>
|
|
</GridColumn>
|
|
<GridColumn Class="text-end columna20Ancho" TItem="CASA.CosteIndirecto" HeaderText="Periocidad">
|
|
@* @if (context != itemSeleccionado)
|
|
{
|
|
<span>@listadoPeriodos.FirstOrDefault(p => p.idEnumeracion == context.idPeriodicidad)?.ValorAlfabetico1</span>
|
|
}
|
|
else
|
|
{ *@
|
|
<InputSelect Value="@context.idPeriodicidad" class="inputForm selectTabla" ValueExpression="() => context.idPeriodicidad" TValue="int" ValueChanged="(value) => valorCICambiado(value,context)">
|
|
@foreach (var periodo in listadoPeriodos)
|
|
{
|
|
<option value="@periodo.idEnumeracion">@periodo.ValorAlfabetico1</option>
|
|
}
|
|
</InputSelect>
|
|
@* } *@
|
|
</GridColumn>
|
|
<GridColumn Class="text-end columna30Ancho" HeaderTextAlignment="Alignment.Center" TItem="CASA.CosteIndirecto" HeaderText="Coste" PropertyName="coste">
|
|
<span >@context.coste.ToString("C", new System.Globalization.CultureInfo("es-ES"))</span>
|
|
</GridColumn>
|
|
</GridColumns>
|
|
</Grid>
|
|
<table class="table tablaCACOA mb-0" style="position:absolute;bottom:-19px;">
|
|
<tfoot>
|
|
<tr>
|
|
<td colspan="2" class="text-end fw-bold colorC">
|
|
Total Costes Indirectos: <span>
|
|
@objetoCASA.DespachoProfesional.TotalCostesIndirectos.MilesYDecimales() €
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
@code {
|
|
[Parameter]
|
|
public CASA objetoCASA { get; set; }
|
|
|
|
public List<CASA.CosteIndirecto> costesIndirectos { get; set; } = new List<CASA.CosteIndirecto>();
|
|
private CASA.CosteIndirecto itemSeleccionado = new CASA.CosteIndirecto();
|
|
|
|
Grid<CASA.CosteIndirecto> grid = default!;
|
|
|
|
private List<CASA.enumeracionesCASA> listadoPeriodos = new List<CASA.enumeracionesCASA>();
|
|
private string tituloPopup = "";
|
|
private Modal popupGestionDatos = default!;
|
|
|
|
private bool editarElemento;
|
|
public tsHerramientasCACOA bd;
|
|
|
|
List<ToastMessage> mensajes = new List<ToastMessage>();
|
|
|
|
|
|
[CascadingParameter]
|
|
public DespachoProfesional _Parent { get; set; }
|
|
|
|
[CascadingParameter]
|
|
public HerramientaCASA.Components.Pages.HerramientaURBANTabs.DespachoProfesionalURBAN _OtroParent { get; set; }
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
|
|
listadoPeriodos = objetoCASA.Enumerados.Periodos.ToList();
|
|
//costesIndirectos = objetoCASA.DespachoProfesional.CostesIndirectos.ToList();
|
|
|
|
}
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
costesIndirectos = objetoCASA.DespachoProfesional.CostesIndirectos.ToList();
|
|
|
|
StateHasChanged();
|
|
}
|
|
|
|
private async Task OnRowClick(GridRowEventArgs<CASA.CosteIndirecto> objeto)
|
|
{
|
|
itemSeleccionado = objeto.Item;
|
|
}
|
|
private async void valorCambiado(double e,CASA.CosteIndirecto objeto)
|
|
{
|
|
|
|
if (objeto.idPeriodicidad != 0)
|
|
{
|
|
objeto.importe = (double)e;
|
|
objetoCASA.ActualizarCosteIndirecto(objeto);
|
|
|
|
await InvokeAsync(StateHasChanged);
|
|
refrescarPadre();
|
|
|
|
|
|
}
|
|
}
|
|
private async void valorCICambiado(int e, CASA.CosteIndirecto objeto)
|
|
{
|
|
objeto.idPeriodicidad = (int)e;
|
|
objetoCASA.ActualizarCosteIndirecto(objeto);
|
|
|
|
await InvokeAsync(StateHasChanged);
|
|
refrescarPadre();
|
|
|
|
}
|
|
|
|
private async void guardar(CASA.CosteIndirecto objeto)
|
|
{
|
|
objetoCASA.ActualizarCosteIndirecto(objeto);
|
|
|
|
// mensajes.Add(new ToastMessage
|
|
// {
|
|
// Type = ToastType.Primary,
|
|
// Message = $"Guardado correctamente.",
|
|
// });
|
|
|
|
costesIndirectos = objetoCASA.DespachoProfesional.CostesIndirectos.ToList();
|
|
await InvokeAsync(StateHasChanged);
|
|
refrescarPadre();
|
|
}
|
|
|
|
private void limpiarDatos(CASA.CosteIndirecto objeto)
|
|
{
|
|
objetoCASA.LimpiarCosteIndirecto(objeto);
|
|
}
|
|
|
|
|
|
private void refrescarPadre()
|
|
{
|
|
if (_Parent != null)
|
|
{
|
|
_Parent.RefreshState();
|
|
}
|
|
else if (_OtroParent != null)
|
|
{
|
|
_OtroParent.RefreshState();
|
|
}
|
|
}
|
|
}
|