arreglo y gestionpersonal

This commit is contained in:
2026-06-16 14:12:59 +02:00
parent d84d41b0e0
commit 84305493de
5 changed files with 361 additions and 24 deletions

View File

@@ -15,7 +15,7 @@
@inject UserState UserState @inject UserState UserState
<div class="tablaTabLateral"> <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"> <div style="overflow-x:auto;" class="tablaDesk">
<Grid TItem="ENFERMEDADES" <Grid TItem="ENFERMEDADES"
Class="table tablaRegPers" Class="table tablaRegPers"
@@ -32,6 +32,9 @@
PaginationItemsTextFormat="{0} - {1} de {2} elementos"> PaginationItemsTextFormat="{0} - {1} de {2} elementos">
<GridColumns> <GridColumns>
<GridColumn TItem="ENFERMEDADES" HeaderText="">
<button @onclick="@(() => abrirPopupModificacion(context, false))" class="btnOAAFAzul">Editar</button>
</GridColumn>
<GridColumn TItem="ENFERMEDADES" HeaderText="Fecha Inicio"> <GridColumn TItem="ENFERMEDADES" HeaderText="Fecha Inicio">
@context.FECHAINICIO?.ToString("dd/MM/yyyy") @context.FECHAINICIO?.ToString("dd/MM/yyyy")
</GridColumn> </GridColumn>
@@ -42,7 +45,7 @@
@context.BASE @context.BASE
</GridColumn> </GridColumn>
<GridColumn TItem="ENFERMEDADES" HeaderText="Tipo"> <GridColumn TItem="ENFERMEDADES" HeaderText="Tipo">
@context.IDTIPONavigation.DESCRIPCION @if(@context.IDTIPONavigation != null){@context.IDTIPONavigation.DESCRIPCION}
</GridColumn> </GridColumn>
<GridColumn TItem="ENFERMEDADES" HeaderText="Continuidad"> <GridColumn TItem="ENFERMEDADES" HeaderText="Continuidad">
@if (context.CONTINUIDAD) @if (context.CONTINUIDAD)
@@ -66,17 +69,109 @@
</Grid> </Grid>
</div> </div>
</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 { @code {
[Parameter] [Parameter]
public PERSONAS Persona { get; set; } = new PERSONAS(); public PERSONAS Persona { get; set; } = new PERSONAS();
private HttpClient cliente = new HttpClient(); private HttpClient cliente = new HttpClient();
private Modal popupGestionDatos = default;
[Parameter] [Parameter]
public EventCallback OnPersonaActualizada { get; set; } public EventCallback OnPersonaActualizada { get; set; }
private string itmTipo { get; set; }
private List<ENFERMEDADES> itmList = new List<ENFERMEDADES>(); 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() protected override async Task OnInitializedAsync()
{ {
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
await CargarListas();
}
private async Task CargarListas()
{
itmList.Clear();
lTipo.Clear();
try try
{ {
foreach (ENFERMEDADES enf in Persona.ENFERMEDADES) foreach (ENFERMEDADES enf in Persona.ENFERMEDADES)
@@ -84,11 +179,51 @@
{ {
itmList.Add(enf); itmList.Add(enf);
} }
lTipo = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(cliente, "/api/ENUMERACIONES/EnumeracionesGrupo/TIPENF");
StateHasChanged();
} }
catch (Exception e) catch (Exception e)
{ {
Console.WriteLine($"Error al obtener los datos: {e.Message}"); 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();
}
} }

View File

@@ -15,7 +15,7 @@
@inject UserState UserState @inject UserState UserState
<div class="tablaTabLateral"> <div class="tablaTabLateral">
<input type="button" value="Nueva Incidencia" @onclick="@(() => abrirPopupModificacion(new INCIDENCIAS(), true))" class="mb-2 btnOAAFBlack" />
<Accordion> <Accordion>
@foreach (var año in annos.Take(annos.Count)) @foreach (var año in annos.Take(annos.Count))
{ {
@@ -149,7 +149,30 @@
<Modal @ref="popupGestionDatos" IsVerticallyCentered="true" UseStaticBackdrop="true" CloseOnEscape="false"> <Modal @ref="popupGestionDatos" IsVerticallyCentered="true" UseStaticBackdrop="true" CloseOnEscape="false">
<BodyTemplate> <BodyTemplate>
<div class="row"> <div class="row">
<div class="col-md-12 mb-2">
<input list="listNom" id="selNomina" @bind-value="@itmNomina" type="text" style="width:100%" class="form-control" placeholder="Nomina" />
<datalist id="listNom">
@foreach(NOMINAS nom in lNom)
{
<option data-value="@nom.IDNOMINAS">@nom.DESCRIPCION</option>
}
</datalist>
</div>
<div class="col-md-12 mb-2">
<input list="listCon" id="selCon" @bind-value="@itmConcepto" type="text" style="width:100%" class="form-control" placeholder="Concepto" />
<datalist id="listCon">
@foreach (CONCEPTOSGENERALES con in lConceptos)
{
<option data-value="@con.IDCONCEPTOSGENERALES">@con.DESCRIPCION</option>
}
</datalist>
</div>
<div class="col-md-12 mb-2">
<label class="fw-bold">Mes y año nomina</label>
<input class="form-control" type="month" @bind-value="FECHANOM" />
</div>
<div class="col-md-12" style="display:flex; justify-content:space-between"> <div class="col-md-12" style="display:flex; justify-content:space-between">
<label for="txtEDesc" class="fw-bold">Sustituye concepto: </label> <label for="txtEDesc" class="fw-bold">Sustituye concepto: </label>
<input class="" type="checkbox" id="chbSusConcepto" checked="@ItemEnEdicion.SUSTITUYECONCEPTO" /> <input class="" type="checkbox" id="chbSusConcepto" checked="@ItemEnEdicion.SUSTITUYECONCEPTO" />
<label for="txtEDesc" class="fw-bold">Cotiza seguridad social: </label> <label for="txtEDesc" class="fw-bold">Cotiza seguridad social: </label>
@@ -192,7 +215,13 @@
</BodyTemplate> </BodyTemplate>
<FooterTemplate> <FooterTemplate>
<Button Color="ButtonColor.Secondary" @onclick="cerrarPopupModificacion">Cerrar</Button> <Button Color="ButtonColor.Secondary" @onclick="cerrarPopupModificacion">Cerrar</Button>
<Button Type="ButtonType.Submit" Color="ButtonColor.Primary" @onclick="GestionarDatos">Modificar</Button> @if(ItemEnEdicion.IDINCIDENCIA != 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> </FooterTemplate>
</Modal> </Modal>
@@ -203,7 +232,10 @@
public PERSONAS Persona { get; set; } = new PERSONAS(); public PERSONAS Persona { get; set; } = new PERSONAS();
private Modal popupGestionDatos = default; private Modal popupGestionDatos = default;
public int? idNom { get; set; } public int? idNom { get; set; }
private DateTime FECHANOM { get; set; }
private string titulo { get; set; } private string titulo { get; set; }
private string itmNomina { get; set; }
private string itmConcepto { get; set; }
private HttpClient cliente = new HttpClient(); private HttpClient cliente = new HttpClient();
[Parameter] [Parameter]
public EventCallback OnPersonaActualizada { get; set; } public EventCallback OnPersonaActualizada { get; set; }
@@ -211,14 +243,31 @@
// private List<int?> meses = new List<int?>(); // private List<int?> meses = new List<int?>();
private List<INCIDENCIAS> itmList = new List<INCIDENCIAS>(); private List<INCIDENCIAS> itmList = new List<INCIDENCIAS>();
private List<String> nombMeses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]; private List<String> nombMeses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
private List<NOMINAS> lNom = new List<NOMINAS>();
private List<CONCEPTOSGENERALES> lConceptos = new List<CONCEPTOSGENERALES>();
private INCIDENCIAS ItemEnEdicion { get; set; } = new INCIDENCIAS(); private INCIDENCIAS ItemEnEdicion { get; set; } = new INCIDENCIAS();
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
CargarListas(); CargarListas();
} }
private async Task abrirPopupModificacion(INCIDENCIAS objeto, bool esNuevo) private async Task abrirPopupModificacion(INCIDENCIAS objeto, bool esNuevo)
{ {
ItemEnEdicion = objeto; ItemEnEdicion = objeto;
if(objeto.IDINCIDENCIA != 0)
{
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(); await popupGestionDatos.ShowAsync();
} }
private async Task cerrarPopupModificacion() private async Task cerrarPopupModificacion()
@@ -229,14 +278,11 @@
{ {
try try
{ {
itmList.Clear();
annos.Clear();
var listnom = Persona.INCIDENCIAS.Where(x => x.ESDELIQUIDACION == false).ToList(); var listnom = Persona.INCIDENCIAS.Where(x => x.ESDELIQUIDACION == false).ToList();
var nominaIncidenciadelcarajo = listnom.FirstOrDefault(x => x.IDINCIDENCIA == 56543); var nominaIncidenciadelcarajo = listnom.FirstOrDefault(x => x.IDINCIDENCIA == 56543);
foreach (INCIDENCIAS i in listnom) foreach (INCIDENCIAS i in listnom){ itmList.Add(i); }
{
itmList.Add(i);
}
for (var i = 0; i < itmList.Count; i++) for (var i = 0; i < itmList.Count; i++)
{ {
int? year = itmList[i].AÑONOMINA; int? year = itmList[i].AÑONOMINA;
@@ -249,7 +295,10 @@
} }
} }
annos = annos.OrderDescending().ToList(); annos = annos.OrderDescending().ToList();
Task.Delay(1); var lNomi = await Utilidades.ObtenerObjeto<List<NOMINAS>>(cliente, "/api/NOMINAS");
lNom = lNomi.OrderBy(x => x.FECHAINICIO).ToList();
lConceptos = await Utilidades.ObtenerObjeto<List<CONCEPTOSGENERALES>>(cliente, "/api/CONCEPTOSGENERALES/");
// Task.Delay(1);
StateHasChanged(); StateHasChanged();
} }
@@ -259,10 +308,22 @@
} }
} }
// GUARDAR // GUARDAR
private async Task GestionarDatos(bool tipo)
private async Task GestionarDatos()
{ {
var inci = ItemEnEdicion; var inci = ItemEnEdicion;
if (tipo == true)
{
inci.IDINCIDENCIA = 0;
}
inci.IDPERSONA = Persona.IDPERSONA;
inci.MESNOMINA = FECHANOM.Month;
inci.AÑONOMINA = FECHANOM.Year;
var nomSelect = lNom.FirstOrDefault(x => x.DESCRIPCION == itmNomina);
var concSelect = lConceptos.FirstOrDefault(x => x.DESCRIPCION == itmConcepto);
inci.IDNOMINA = nomSelect.IDNOMINAS;
inci.IDCONCEPTONOMINA = concSelect.IDCONCEPTOSGENERALES;
string chbSusConcepto = "chbSusConcepto"; string chbSusConcepto = "chbSusConcepto";
inci.SUSTITUYECONCEPTO = await JS.InvokeAsync<bool>("obtenerCheck", chbSusConcepto); inci.SUSTITUYECONCEPTO = await JS.InvokeAsync<bool>("obtenerCheck", chbSusConcepto);
string chbCotizaSS = "chbCotizaSS"; string chbCotizaSS = "chbCotizaSS";
@@ -276,9 +337,13 @@
string chbNominaSS = "chbNominaSS"; string chbNominaSS = "chbNominaSS";
inci.NOMINASEGURIDADSOCIAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaSS); inci.NOMINASEGURIDADSOCIAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaSS);
if(inci.IDINCIDENCIA != 0){
var cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory); var response = await Utilidades.ActualizarObjeto(cliente, "/api/INCIDENCIAS/" + inci.IDINCIDENCIA, inci);
var response = await Utilidades.ActualizarObjeto(cliente, "/api/INCIDENCIAS/" + inci.IDINCIDENCIA, inci); }
else
{
var response = await Utilidades.NuevoObjeto(cliente, "/api/INCIDENCIAS/", inci);
}
await cerrarPopupModificacion(); await cerrarPopupModificacion();
var response1 = await cliente.GetAsync($"/api/PERSONAS/PersonaNominaNif/{Persona.NIF}"); var response1 = await cliente.GetAsync($"/api/PERSONAS/PersonaNominaNif/{Persona.NIF}");
if (!response1.IsSuccessStatusCode) if (!response1.IsSuccessStatusCode)
@@ -289,11 +354,6 @@
var resultContent = await response1.Content.ReadAsStringAsync(); var resultContent = await response1.Content.ReadAsStringAsync();
Persona = JsonConvert.DeserializeObject<PERSONAS>(resultContent) ?? throw new Exception("Error al deserializar los datos de la persona."); Persona = JsonConvert.DeserializeObject<PERSONAS>(resultContent) ?? throw new Exception("Error al deserializar los datos de la persona.");
await CargarListas(); await CargarListas();
// itmList.First(x => x.IDINCIDENCIA == inci.IDINCIDENCIA).IDNOMINANavigation = inci.IDNOMINANavigation;
// itmList.First(x => x.IDINCIDENCIA == inci.IDINCIDENCIA).IDCONCEPTONOMINANavigation= inci.IDCONCEPTONOMINANavigation;
// await InvokeAsync(StateHasChanged);
} }
} }

View File

@@ -15,7 +15,7 @@
@inject UserState UserState @inject UserState UserState
<div class="tablaTabLateral"> <div class="tablaTabLateral">
<input type="button" value="Nueva maternidad/riesgo de embarazo" @onclick="@(() => abrirPopupModificacion(new MATERNIDADES(), true))" class="mb-2 btnOAAFBlack" />
<div style="overflow-x:auto;" class="tablaDesk"> <div style="overflow-x:auto;" class="tablaDesk">
<Grid TItem="MATERNIDADES" <Grid TItem="MATERNIDADES"
Class="table tablaRegPers" Class="table tablaRegPers"
@@ -32,6 +32,9 @@
PaginationItemsTextFormat="{0} - {1} de {2} elementos"> PaginationItemsTextFormat="{0} - {1} de {2} elementos">
<GridColumns> <GridColumns>
<GridColumn TItem="MATERNIDADES" HeaderText="">
<button @onclick="@(() => abrirPopupModificacion(context, false))" class="btnOAAFAzul">Editar</button>
</GridColumn>
<GridColumn TItem="MATERNIDADES" HeaderText="Fecha Inicio"> <GridColumn TItem="MATERNIDADES" HeaderText="Fecha Inicio">
@context.FECHAINICIO?.ToString("dd/MM/yyyy") @context.FECHAINICIO?.ToString("dd/MM/yyyy")
</GridColumn> </GridColumn>
@@ -67,12 +70,62 @@
</div> </div>
</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 cotización seguridad social: </label>
<input class="form-control" type="number" @bind-value="@ItemEnEdicion.BASECOTIZACIONSEGURIDADSOCIAL" />
</div>
<div class="col-md-12 mb-2">
<label for="txtEDesc" class="fw-bold">Porcentaje reducción jornada: </label>
<input class="form-control" type="number" @bind-value="@ItemEnEdicion.PORCENTAJEREDUCCIONJORNADA" />
</div>
<div class="col-md-12" style="display:flex; justify-content:space-between">
<label for="txtEDesc" class="fw-bold">Riesgo embarazo: </label>
<input class="" type="checkbox" id="chbRiesgoEmbarazo" checked="@ItemEnEdicion.RIESGOEMBARAZO" />
<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.IDMATERNIDADES != 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 { @code {
[Parameter] [Parameter]
public PERSONAS Persona { get; set; } = new PERSONAS(); public PERSONAS Persona { get; set; } = new PERSONAS();
private HttpClient cliente = new HttpClient(); private HttpClient cliente = new HttpClient();
private Modal popupGestionDatos = default;
[Parameter] [Parameter]
public EventCallback OnPersonaActualizada { get; set; } public EventCallback OnPersonaActualizada { get; set; }
private MATERNIDADES ItemEnEdicion { get; set; } = new MATERNIDADES();
// private List<int?> meses = new List<int?>(); // private List<int?> meses = new List<int?>();
private List<MATERNIDADES> itmList = new List<MATERNIDADES>(); private List<MATERNIDADES> itmList = new List<MATERNIDADES>();
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
@@ -87,4 +140,69 @@
Console.WriteLine($"Error al obtener los datos: {e.Message}"); Console.WriteLine($"Error al obtener los datos: {e.Message}");
} }
} }
private async Task CargarListas()
{
itmList.Clear();
try
{
foreach (MATERNIDADES enf in Persona.MATERNIDADES)
{
itmList.Add(enf);
}
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.IDMATERNIDADES = 0;
}
inci.IDPERSONA = Persona.IDPERSONA;
string chbRiesgoEmbarazo = "chbRiesgoEmbarazo";
inci.RIESGOEMBARAZO = await JS.InvokeAsync<bool>("obtenerCheck", chbRiesgoEmbarazo);
string chbNominaNormal = "chbNominaNormal";
inci.NOMINANORMAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaNormal);
string chbNominaSS = "chbNominaSS";
inci.NOMINASEGURIDADSOCIAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaSS);
if (inci.IDMATERNIDADES != 0)
{
var response = await Utilidades.ActualizarObjeto(cliente, "/api/MATERNIDADES/" + inci.IDMATERNIDADES, inci);
}
else
{
var response = await Utilidades.NuevoObjeto(cliente, "/api/MATERNIDADES/", 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();
}
private async Task abrirPopupModificacion(MATERNIDADES objeto, bool esNuevo)
{
ItemEnEdicion = objeto;
await popupGestionDatos.ShowAsync();
}
private async Task cerrarPopupModificacion()
{
await popupGestionDatos.HideAsync();
}
} }

View File

@@ -205,6 +205,7 @@ else
<input class="form-control @GetCssClass(nameof(Model.DENOMINACION))" <input class="form-control @GetCssClass(nameof(Model.DENOMINACION))"
value="@Model!.DENOMINACION" value="@Model!.DENOMINACION"
placeholder="@GetPlaceholder(nameof(Model.DENOMINACION))" placeholder="@GetPlaceholder(nameof(Model.DENOMINACION))"
maxlength="200"
@oninput="e => ValidarYActualizar(e, nameof(Model.DENOMINACION))" /> @oninput="e => ValidarYActualizar(e, nameof(Model.DENOMINACION))" />
<div class="validation-message">@GetExternalValidationMessage(nameof(Model.DENOMINACION))</div> <div class="validation-message">@GetExternalValidationMessage(nameof(Model.DENOMINACION))</div>
</div> </div>

View File

@@ -0,0 +1,23 @@
using bdAntifraude.db;
using bdAntifraude.dbcontext;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using Microsoft.AspNetCore.Authorization;
using Serialize.Linq.Serializers;
using System.Linq.Expressions;
using Microsoft.EntityFrameworkCore;
namespace SwaggerAntifraude.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class ENFERMEDADESController : GenericoController<ENFERMEDADES, int>
{
public ENFERMEDADESController()
: base()
{
Debug.WriteLine("aqui");
}
}
}