229 lines
9.1 KiB
Plaintext
229 lines
9.1 KiB
Plaintext
@using System.Net.Http.Headers
|
|
@using System.Linq.Expressions
|
|
@using Newtonsoft.Json
|
|
@using System.Text
|
|
@using Serialize.Linq.Serializers
|
|
@using GestionPersonalWeb.Models
|
|
@using BlazorBootstrap
|
|
@using bdAntifraude.db
|
|
@using Microsoft.AspNetCore.Components
|
|
@rendermode InteractiveServer
|
|
@inject IJSRuntime JS
|
|
@inject NavigationManager NavigationManager
|
|
@inject IHttpClientFactory HttpClientFactory
|
|
@inject IHttpContextAccessor HttpContextAccessor
|
|
@inject UserState UserState
|
|
|
|
<div class="tablaTabLateral">
|
|
<input type="button" value="Nueva Enfermedad" @onclick="@(() => abrirPopupModificacion(new ENFERMEDADES(), true))" class="mb-2 btnOAAFBlack" />
|
|
<div style="overflow-x:auto;" class="tablaDesk">
|
|
<Grid TItem="ENFERMEDADES"
|
|
Class="table tablaRegPers"
|
|
Data="itmList"
|
|
AllowFiltering="false"
|
|
PageSize="10"
|
|
AllowPaging="true"
|
|
AllowSorting="true"
|
|
EmptyText="No se han encontrado datos"
|
|
Height="100"
|
|
PageSizeSelectorVisible="false"
|
|
PageSizeSelectorItems="@(new int[] { 5, 10, 20, 50 })"
|
|
Responsive="true"
|
|
PaginationItemsTextFormat="{0} - {1} de {2} elementos">
|
|
|
|
<GridColumns>
|
|
<GridColumn TItem="ENFERMEDADES" HeaderText="">
|
|
<button @onclick="@(() => abrirPopupModificacion(context, false))" class="btnOAAFAzul">Editar</button>
|
|
</GridColumn>
|
|
<GridColumn TItem="ENFERMEDADES" HeaderText="Fecha Inicio">
|
|
@context.FECHAINICIO?.ToString("dd/MM/yyyy")
|
|
</GridColumn>
|
|
<GridColumn TItem="ENFERMEDADES" HeaderText="Fecha Fin">
|
|
@context.FECHAFIN?.ToString("dd/MM/yyyy")
|
|
</GridColumn>
|
|
<GridColumn TItem="ENFERMEDADES" HeaderText="Base">
|
|
@context.BASE
|
|
</GridColumn>
|
|
<GridColumn TItem="ENFERMEDADES" HeaderText="Tipo">
|
|
@if(@context.IDTIPONavigation != null){@context.IDTIPONavigation.DESCRIPCION}
|
|
</GridColumn>
|
|
<GridColumn TItem="ENFERMEDADES" HeaderText="Continuidad">
|
|
@if (context.CONTINUIDAD)
|
|
{
|
|
<i class="fa-regular fa-square-check"></i>
|
|
}
|
|
</GridColumn>
|
|
<GridColumn TItem="ENFERMEDADES" HeaderText="Nómina Normal">
|
|
@if (context.NOMINANORMAL)
|
|
{
|
|
<i class="fa-regular fa-square-check"></i>
|
|
}
|
|
</GridColumn>
|
|
<GridColumn TItem="ENFERMEDADES" HeaderText="Nómina Seguridad social">
|
|
@if (context.NOMINASEGURIDADSOCIAL)
|
|
{
|
|
<i class="fa-regular fa-square-check"></i>
|
|
}
|
|
</GridColumn>
|
|
</GridColumns>
|
|
</Grid>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<Modal @ref="popupGestionDatos" IsVerticallyCentered="true" UseStaticBackdrop="true" CloseOnEscape="false">
|
|
<BodyTemplate>
|
|
<div class="row">
|
|
|
|
<div class="col-md-6 mb-2">
|
|
<label class="fw-bold">Fecha inicio</label>
|
|
<input class="form-control" type="date" @bind-value="ItemEnEdicion.FECHAINICIO" />
|
|
</div>
|
|
<div class="col-md-6 mb-2">
|
|
<label class="fw-bold">Fecha fin</label>
|
|
<input class="form-control" type="date" @bind-value="ItemEnEdicion.FECHAFIN" />
|
|
</div>
|
|
<div class="col-md-12 mb-2">
|
|
<label for="txtEDesc" class="fw-bold">Base: </label>
|
|
<input class="form-control" type="number" @bind-value="@ItemEnEdicion.BASE" />
|
|
</div>
|
|
<div class="col-md-12 mb-2">
|
|
<input list="listTip" id="selTip" @bind-value="@itmTipo" type="text" style="width:100%" class="form-control" placeholder="Tipo" />
|
|
<datalist id="listTip">
|
|
@foreach (ENUMERACIONES con in lTipo)
|
|
{
|
|
<option data-value="@con.IDENUMERACION">@con.DESCRIPCION</option>
|
|
}
|
|
</datalist>
|
|
</div>
|
|
<div class="col-md-12" style="display:flex; justify-content:space-between">
|
|
<label for="txtEDesc" class="fw-bold">Continuidad: </label>
|
|
<input class="" type="checkbox" id="chbCont" checked="@ItemEnEdicion.CONTINUIDAD" />
|
|
|
|
<label for="txtEDesc" class="fw-bold">Nomina normal: </label>
|
|
<input class="" type="checkbox" id="chbNominaNormal" checked="@ItemEnEdicion.NOMINANORMAL" />
|
|
|
|
<label for="txtEDesc" class="fw-bold">Nomina seguridad social: </label>
|
|
<input class="" type="checkbox" id="chbNominaSS" checked="@ItemEnEdicion.NOMINASEGURIDADSOCIAL" />
|
|
</div>
|
|
</div>
|
|
</BodyTemplate>
|
|
<FooterTemplate>
|
|
<Button Color="ButtonColor.Secondary" @onclick="cerrarPopupModificacion">Cerrar</Button>
|
|
@if (ItemEnEdicion.IDENFERMEDADES != 0)
|
|
{
|
|
<Button Type="ButtonType.Submit" Color="ButtonColor.Primary" @onclick="@(() => GestionarDatos(false))">Modificar</Button>
|
|
}
|
|
else
|
|
{
|
|
<Button Type="ButtonType.Submit" Color="ButtonColor.Primary" @onclick="@(() => GestionarDatos(true))">Crear</Button>
|
|
}
|
|
</FooterTemplate>
|
|
</Modal>
|
|
|
|
|
|
@code {
|
|
[Parameter]
|
|
public PERSONAS Persona { get; set; } = new PERSONAS();
|
|
private HttpClient cliente = new HttpClient();
|
|
private Modal popupGestionDatos = default;
|
|
[Parameter]
|
|
public EventCallback OnPersonaActualizada { get; set; }
|
|
private string itmTipo { get; set; }
|
|
private List<ENFERMEDADES> itmList = new List<ENFERMEDADES>();
|
|
private List<ENUMERACIONES> lTipo = new List<ENUMERACIONES>();
|
|
private ENFERMEDADES ItemEnEdicion { get; set; } = new ENFERMEDADES();
|
|
|
|
|
|
//TIPENF
|
|
//
|
|
|
|
private async Task abrirPopupModificacion(ENFERMEDADES objeto, bool esNuevo)
|
|
{
|
|
ItemEnEdicion = objeto;
|
|
if (objeto.IDENFERMEDADES != 0)
|
|
{
|
|
itmTipo = objeto.IDTIPONavigation.DESCRIPCION;
|
|
// itmNomina = objeto.IDNOMINANavigation.DESCRIPCION;
|
|
// itmConcepto = objeto.IDCONCEPTONOMINANavigation.DESCRIPCION;
|
|
// FECHANOM = DateTime.ParseExact(objeto.AÑONOMINA.ToString() + "-" + objeto.MESNOMINA.ToString() + "-01 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff",
|
|
// System.Globalization.CultureInfo.InvariantCulture);
|
|
}
|
|
else
|
|
{
|
|
// itmNomina = "";
|
|
// itmConcepto = "";
|
|
// FECHANOM = DateTime.ParseExact("0001-01-01 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff",
|
|
// System.Globalization.CultureInfo.InvariantCulture);
|
|
}
|
|
await popupGestionDatos.ShowAsync();
|
|
}
|
|
private async Task cerrarPopupModificacion()
|
|
{
|
|
await popupGestionDatos.HideAsync();
|
|
}
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
|
|
await CargarListas();
|
|
}
|
|
private async Task CargarListas()
|
|
{
|
|
itmList.Clear();
|
|
lTipo.Clear();
|
|
try
|
|
{
|
|
foreach (ENFERMEDADES enf in Persona.ENFERMEDADES)
|
|
|
|
{
|
|
itmList.Add(enf);
|
|
}
|
|
lTipo = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(cliente, "/api/ENUMERACIONES/EnumeracionesGrupo/TIPENF");
|
|
StateHasChanged();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Console.WriteLine($"Error al obtener los datos: {e.Message}");
|
|
}
|
|
}
|
|
private async Task GestionarDatos(bool tipo)
|
|
{
|
|
var inci = ItemEnEdicion;
|
|
if (tipo == true)
|
|
{
|
|
inci.IDENFERMEDADES = 0;
|
|
}
|
|
inci.IDPERSONA = Persona.IDPERSONA;
|
|
|
|
string chbCont = "chbCont";
|
|
inci.CONTINUIDAD = await JS.InvokeAsync<bool>("obtenerCheck", chbCont);
|
|
string chbNominaNormal = "chbNominaNormal";
|
|
inci.NOMINANORMAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaNormal);
|
|
string chbNominaSS = "chbNominaSS";
|
|
inci.NOMINASEGURIDADSOCIAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaSS);
|
|
|
|
|
|
inci.IDTIPO = lTipo.FirstOrDefault(x => x.DESCRIPCION == itmTipo).IDENUMERACION;
|
|
if (inci.IDENFERMEDADES != 0)
|
|
{
|
|
var response = await Utilidades.ActualizarObjeto(cliente, "/api/ENFERMEDADES/" + inci.IDENFERMEDADES, inci);
|
|
}
|
|
else
|
|
{
|
|
var response = await Utilidades.NuevoObjeto(cliente, "/api/ENFERMEDADES/", inci);
|
|
}
|
|
await cerrarPopupModificacion();
|
|
var response1 = await cliente.GetAsync($"/api/PERSONAS/PersonaNominaNif/{Persona.NIF}");
|
|
if (!response1.IsSuccessStatusCode)
|
|
{
|
|
throw new Exception($"Error al obtener los datos de la persona. Código: {response1.StatusCode}");
|
|
}
|
|
|
|
var resultContent = await response1.Content.ReadAsStringAsync();
|
|
Persona = JsonConvert.DeserializeObject<PERSONAS>(resultContent) ?? throw new Exception("Error al deserializar los datos de la persona.");
|
|
await CargarListas();
|
|
|
|
|
|
}
|
|
} |