Arreglo Departamento datos administrativos
This commit is contained in:
@@ -308,7 +308,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" style="max-height:415px; overflow-y:auto; overflow-x:hidden">
|
<div class="row">
|
||||||
<Tabs @ref=tabsDtsPer NavStyle="NavStyle.VerticalUnderline" Class="col-md-2" style="margin-top:25px; font-size:12px; gap:0; width:165px; overflow-y:auto" OnShown="@(args => OnTabShownAsync(args))">
|
<Tabs @ref=tabsDtsPer NavStyle="NavStyle.VerticalUnderline" Class="col-md-2" style="margin-top:25px; font-size:12px; gap:0; width:165px; overflow-y:auto" OnShown="@(args => OnTabShownAsync(args))">
|
||||||
<Tab Title="Nóminas" Name="tabNominas">
|
<Tab Title="Nóminas" Name="tabNominas">
|
||||||
<Content>
|
<Content>
|
||||||
|
|||||||
@@ -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" /> *@
|
<input type="button" value="Nueva diferencia Pago Delegado" @onclick="@(() => abrirPopupModificacion(new DIFERENCIAPAGODELEGADO(), true))" class="mb-2 btnOAAFBlack" />
|
||||||
|
|
||||||
<div style="overflow-x:auto;" class="tablaDesk">
|
<div style="overflow-x:auto;" class="tablaDesk">
|
||||||
<Grid TItem="DIFERENCIAPAGODELEGADO"
|
<Grid TItem="DIFERENCIAPAGODELEGADO"
|
||||||
@@ -33,6 +33,9 @@
|
|||||||
PaginationItemsTextFormat="{0} - {1} de {2} elementos">
|
PaginationItemsTextFormat="{0} - {1} de {2} elementos">
|
||||||
|
|
||||||
<GridColumns>
|
<GridColumns>
|
||||||
|
<GridColumn TItem="DIFERENCIAPAGODELEGADO" HeaderText="">
|
||||||
|
<button @onclick="@(() => abrirPopupModificacion(context, false))" class="btnOAAFAzul">Editar</button>
|
||||||
|
</GridColumn>
|
||||||
<GridColumn TItem="DIFERENCIAPAGODELEGADO" HeaderText="Fecha Inicio">
|
<GridColumn TItem="DIFERENCIAPAGODELEGADO" HeaderText="Fecha Inicio">
|
||||||
@context.FECHAINICIO?.ToString("dd/MM/yyyy")
|
@context.FECHAINICIO?.ToString("dd/MM/yyyy")
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
@@ -50,8 +53,7 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<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">
|
||||||
|
|
||||||
@@ -64,28 +66,19 @@
|
|||||||
<input class="form-control" type="date" @bind-value="ItemEnEdicion.FECHAFIN" />
|
<input class="form-control" type="date" @bind-value="ItemEnEdicion.FECHAFIN" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 mb-2">
|
<div class="col-md-12 mb-2">
|
||||||
<label for="txtEDesc" class="fw-bold">Base cotización seguridad social: </label>
|
<label for="txtEDesc" class="fw-bold">Base Diaria Seguridad Social: </label>
|
||||||
<input class="form-control" type="number" @bind-value="@ItemEnEdicion.BASECOTIZACIONSEGURIDADSOCIAL" />
|
<input class="form-control" type="number" @bind-value="@ItemEnEdicion.BASEDIARIASEGURIDADSOCIAL" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-12 mb-2">
|
<div class="col-md-12 mb-2">
|
||||||
<label for="txtEDesc" class="fw-bold">Porcentaje reducción jornada: </label>
|
<label for="txtEDesc" class="fw-bold">Base Pago Directo: </label>
|
||||||
<input class="form-control" type="number" @bind-value="@ItemEnEdicion.PORCENTAJEREDUCCIONJORNADA" />
|
<input class="form-control" type="number" @bind-value="@ItemEnEdicion.BASEPAGODIRECTO" />
|
||||||
</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>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</BodyTemplate>
|
</BodyTemplate>
|
||||||
<FooterTemplate>
|
<FooterTemplate>
|
||||||
<Button Color="ButtonColor.Secondary" @onclick="cerrarPopupModificacion">Cerrar</Button>
|
<Button Color="ButtonColor.Secondary" @onclick="cerrarPopupModificacion">Cerrar</Button>
|
||||||
@if (ItemEnEdicion.IDMATERNIDADES != 0)
|
@if (ItemEnEdicion.IDDIFERENCIAPAGODELEGADO != 0)
|
||||||
{
|
{
|
||||||
<Button Type="ButtonType.Submit" Color="ButtonColor.Primary" @onclick="@(() => GestionarDatos(false))">Modificar</Button>
|
<Button Type="ButtonType.Submit" Color="ButtonColor.Primary" @onclick="@(() => GestionarDatos(false))">Modificar</Button>
|
||||||
}
|
}
|
||||||
@@ -95,8 +88,6 @@
|
|||||||
}
|
}
|
||||||
</FooterTemplate>
|
</FooterTemplate>
|
||||||
</Modal>
|
</Modal>
|
||||||
*@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -104,8 +95,10 @@
|
|||||||
[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 DIFERENCIAPAGODELEGADO ItemEnEdicion { get; set; } = new DIFERENCIAPAGODELEGADO();
|
||||||
// private List<int?> meses = new List<int?>();
|
// private List<int?> meses = new List<int?>();
|
||||||
private List<DIFERENCIAPAGODELEGADO> itmList = new List<DIFERENCIAPAGODELEGADO>();
|
private List<DIFERENCIAPAGODELEGADO> itmList = new List<DIFERENCIAPAGODELEGADO>();
|
||||||
|
|
||||||
@@ -129,5 +122,45 @@
|
|||||||
Console.WriteLine($"Error al obtener los datos: {e.Message}");
|
Console.WriteLine($"Error al obtener los datos: {e.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private async Task cerrarPopupModificacion()
|
||||||
|
{
|
||||||
|
await popupGestionDatos.HideAsync();
|
||||||
|
}
|
||||||
|
private async Task GestionarDatos(bool tipo)
|
||||||
|
{
|
||||||
|
var inci = ItemEnEdicion;
|
||||||
|
if (tipo == true)
|
||||||
|
{
|
||||||
|
inci.IDDIFERENCIAPAGODELEGADO = 0;
|
||||||
|
}
|
||||||
|
inci.IDPERSONA = Persona.IDPERSONA;
|
||||||
|
|
||||||
|
if (inci.IDDIFERENCIAPAGODELEGADO != 0)
|
||||||
|
{
|
||||||
|
var response = await Utilidades.ActualizarObjeto(cliente, "/api/DIFERENCIAPAGODELEGADO/" + inci.IDDIFERENCIAPAGODELEGADO, inci);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var response = await Utilidades.NuevoObjeto(cliente, "/api/DIFERENCIAPAGODELEGADO/", 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(DIFERENCIAPAGODELEGADO objeto, bool esNuevo)
|
||||||
|
{
|
||||||
|
ItemEnEdicion = objeto;
|
||||||
|
await popupGestionDatos.ShowAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
@inject UserState UserState
|
@inject UserState UserState
|
||||||
|
|
||||||
<div class="tablaTabLateral">
|
<div class="tablaTabLateral">
|
||||||
|
<input type="button" value="Nueva Huelga" @onclick="@(() => abrirPopupModificacion(new HUELGAS(), true))" class="mb-2 btnOAAFBlack" />
|
||||||
<div style="overflow-x:auto;" class="tablaDesk">
|
<div style="overflow-x:auto;" class="tablaDesk">
|
||||||
<Grid TItem="HUELGAS"
|
<Grid TItem="HUELGAS"
|
||||||
Class="table tablaRegPers"
|
Class="table tablaRegPers"
|
||||||
@@ -65,23 +66,158 @@
|
|||||||
</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">Nómina Origen de Datos: </label>
|
||||||
|
<input list="listOD" id="selCon" @bind-value="@itmNomOD" type="text" style="width:100%" class="form-control" placeholder="Nómina Origen de Datos" />
|
||||||
|
<datalist id="listOD">
|
||||||
|
@foreach (NOMINAS con in lNominas)
|
||||||
|
{
|
||||||
|
<option data-value="@con.IDNOMINAS">@con.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
</datalist>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 mb-2">
|
||||||
|
<label for="txtEDesc" class="fw-bold">Nómina Aplicación: </label>
|
||||||
|
<input list="listCon" id="selCon" @bind-value="@itmNomAp" type="text" style="width:100%" class="form-control" placeholder="Nómina Aplicación" />
|
||||||
|
<datalist id="listCon">
|
||||||
|
@foreach (NOMINAS con in lNominas)
|
||||||
|
{
|
||||||
|
<option data-value="@con.IDNOMINAS">@con.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
</datalist>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 mb-2">
|
||||||
|
|
||||||
|
<label for="txtEDesc" class="fw-bold">Observaciones: </label>
|
||||||
|
<input class="form-control" type="text" @bind-value="ItemEnEdicion.OBSERVACIONES" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12" style="display:flex; justify-content:space-between">
|
||||||
|
<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.IDHUELGA != 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 Modal popupGestionDatos = default;
|
||||||
private HttpClient cliente = new HttpClient();
|
private HttpClient cliente = new HttpClient();
|
||||||
|
private string itmNomOD { get; set; }
|
||||||
|
private string itmNomAp { get; set; }
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public EventCallback OnPersonaActualizada { get; set; }
|
public EventCallback OnPersonaActualizada { get; set; }
|
||||||
private List<HUELGAS> itmList = new List<HUELGAS>();
|
private List<HUELGAS> itmList = new List<HUELGAS>();
|
||||||
protected override async Task OnInitializedAsync()
|
private List<NOMINAS> lNominas = new List<NOMINAS>();
|
||||||
|
private HUELGAS ItemEnEdicion { get; set; } = new HUELGAS();
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
|
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
|
||||||
|
await CargarListas();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task CargarListas()
|
||||||
|
{
|
||||||
|
itmList.Clear();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var listnom = Persona.HUELGAS;
|
var listnom = Persona.HUELGAS;
|
||||||
foreach (HUELGAS i in listnom) { itmList.Add(i); }
|
foreach (HUELGAS i in listnom) { itmList.Add(i); }
|
||||||
|
var lNomi = await Utilidades.ObtenerObjeto<List<NOMINAS>>(cliente, "/api/NOMINAS");
|
||||||
|
lNominas = lNomi.OrderBy(x => x.FECHAINICIO).ToList();
|
||||||
}
|
}
|
||||||
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;
|
||||||
|
inci.IDNOMINAAPLICACION = lNominas.FirstOrDefault(x => x.DESCRIPCION == itmNomAp).IDNOMINAS;
|
||||||
|
inci.IDNOMINAORIGENDATOS = lNominas.FirstOrDefault(x => x.DESCRIPCION == itmNomOD).IDNOMINAS;
|
||||||
|
if (tipo == true)
|
||||||
|
{
|
||||||
|
inci.IDHUELGA = 0;
|
||||||
|
}
|
||||||
|
inci.IDPERSONA = Persona.IDPERSONA;
|
||||||
|
|
||||||
|
string chbNominaNormal = "chbNominaNormal";
|
||||||
|
inci.NOMINANORMAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaNormal);
|
||||||
|
string chbNominaSS = "chbNominaSS";
|
||||||
|
inci.NOMINASEGURIDADSOCIAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaSS);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (inci.IDHUELGA != 0)
|
||||||
|
{
|
||||||
|
var response = await Utilidades.ActualizarObjeto(cliente, "/api/HUELGAS/" + inci.IDHUELGA, inci);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var response = await Utilidades.NuevoObjeto(cliente, "/api/HUELGAS/", 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(HUELGAS objeto, bool esNuevo)
|
||||||
|
{
|
||||||
|
if (objeto.IDHUELGA != 0)
|
||||||
|
{
|
||||||
|
itmNomOD = objeto.IDNOMINAORIGENDATOSNavigation.DESCRIPCION;
|
||||||
|
itmNomAp = objeto.IDNOMINAAPLICACIONNavigation?.DESCRIPCION;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
itmNomAp = "";
|
||||||
|
itmNomOD = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemEnEdicion = objeto;
|
||||||
|
await popupGestionDatos.ShowAsync();
|
||||||
|
}
|
||||||
|
private async Task cerrarPopupModificacion()
|
||||||
|
{
|
||||||
|
await popupGestionDatos.HideAsync();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
@inject UserState UserState
|
@inject UserState UserState
|
||||||
|
|
||||||
<div class="tablaTabLateral">
|
<div class="tablaTabLateral">
|
||||||
|
<input type="button" value="Nuevo Permiso sin retribución" @onclick="@(() => abrirPopupModificacion(new PERMISOSSINRETRIBUCION(), true))" class="mb-2 btnOAAFBlack" />
|
||||||
<div style="overflow-x:auto;" class="tablaDesk">
|
<div style="overflow-x:auto;" class="tablaDesk">
|
||||||
<Grid TItem="PERMISOSSINRETRIBUCION"
|
<Grid TItem="PERMISOSSINRETRIBUCION"
|
||||||
Class="table tablaRegPers"
|
Class="table tablaRegPers"
|
||||||
@@ -31,6 +32,9 @@
|
|||||||
PaginationItemsTextFormat="{0} - {1} de {2} elementos">
|
PaginationItemsTextFormat="{0} - {1} de {2} elementos">
|
||||||
|
|
||||||
<GridColumns>
|
<GridColumns>
|
||||||
|
<GridColumn TItem="PERMISOSSINRETRIBUCION" HeaderText="">
|
||||||
|
<button @onclick="@(() => abrirPopupModificacion(context, false))" class="btnOAAFAzul">Editar</button>
|
||||||
|
</GridColumn>
|
||||||
<GridColumn TItem="PERMISOSSINRETRIBUCION" HeaderText="Fecha Inicio">
|
<GridColumn TItem="PERMISOSSINRETRIBUCION" HeaderText="Fecha Inicio">
|
||||||
@context.FECHAINICIO?.ToString("dd/MM/yyyy")
|
@context.FECHAINICIO?.ToString("dd/MM/yyyy")
|
||||||
</GridColumn>
|
</GridColumn>
|
||||||
@@ -62,24 +66,162 @@
|
|||||||
</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">Nómina Origen de Datos: </label>
|
||||||
|
<input list="listOD" id="selCon" @bind-value="@itmNomOD" type="text" style="width:100%" class="form-control" placeholder="Nómina Origen de Datos" />
|
||||||
|
<datalist id="listOD">
|
||||||
|
@foreach (NOMINAS con in lNominas)
|
||||||
|
{
|
||||||
|
<option data-value="@con.IDNOMINAS">@con.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
</datalist>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 mb-2">
|
||||||
|
<label for="txtEDesc" class="fw-bold">Nómina Aplicación: </label>
|
||||||
|
<input list="listCon" id="selCon" @bind-value="@itmNomAp" type="text" style="width:100%" class="form-control" placeholder="Nómina Aplicación" />
|
||||||
|
<datalist id="listCon">
|
||||||
|
@foreach (NOMINAS con in lNominas)
|
||||||
|
{
|
||||||
|
<option data-value="@con.IDNOMINAS">@con.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
</datalist>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 mb-2">
|
||||||
|
|
||||||
|
<label for="txtEDesc" class="fw-bold">Observaciones: </label>
|
||||||
|
<input class="form-control" type="text" @bind-value="ItemEnEdicion.OBSERVACIONES" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12" style="display:flex; justify-content:space-between">
|
||||||
|
<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.IDPERMISOSDERETRIBUCION != 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;
|
||||||
|
private string itmNomOD { get; set; }
|
||||||
|
private string itmNomAp { get; set; }
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public EventCallback OnPersonaActualizada { get; set; }
|
public EventCallback OnPersonaActualizada { get; set; }
|
||||||
|
private PERMISOSSINRETRIBUCION ItemEnEdicion { get; set; } = new PERMISOSSINRETRIBUCION();
|
||||||
private List<PERMISOSSINRETRIBUCION> itmList = new List<PERMISOSSINRETRIBUCION>();
|
private List<PERMISOSSINRETRIBUCION> itmList = new List<PERMISOSSINRETRIBUCION>();
|
||||||
|
private List<NOMINAS> lNominas = new List<NOMINAS>();
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
|
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
|
||||||
|
await CargarListas();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task CargarListas()
|
||||||
|
{
|
||||||
|
itmList.Clear();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var listnom = Persona.PERMISOSSINRETRIBUCION;
|
var listnom = Persona.PERMISOSSINRETRIBUCION;
|
||||||
foreach (PERMISOSSINRETRIBUCION i in listnom) { itmList.Add(i); }
|
foreach (PERMISOSSINRETRIBUCION i in listnom) { itmList.Add(i); }
|
||||||
|
var lNomi = await Utilidades.ObtenerObjeto<List<NOMINAS>>(cliente, "/api/NOMINAS");
|
||||||
|
lNominas = lNomi.OrderBy(x => x.FECHAINICIO).ToList();
|
||||||
}
|
}
|
||||||
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;
|
||||||
|
inci.IDNOMINAAPLICACION = lNominas.FirstOrDefault(x => x.DESCRIPCION == itmNomAp).IDNOMINAS;
|
||||||
|
inci.IDNOMINAORIGENDEDATOS = lNominas.FirstOrDefault(x => x.DESCRIPCION == itmNomOD).IDNOMINAS;
|
||||||
|
if (tipo == true)
|
||||||
|
{
|
||||||
|
inci.IDPERMISOSDERETRIBUCION = 0;
|
||||||
|
}
|
||||||
|
inci.IDPERSONA = Persona.IDPERSONA;
|
||||||
|
|
||||||
|
string chbNominaNormal = "chbNominaNormal";
|
||||||
|
inci.NOMINANORMAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaNormal);
|
||||||
|
string chbNominaSS = "chbNominaSS";
|
||||||
|
inci.NOMINASEGURIDADSOCIAL = await JS.InvokeAsync<bool>("obtenerCheck", chbNominaSS);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (inci.IDPERMISOSDERETRIBUCION != 0)
|
||||||
|
{
|
||||||
|
var response = await Utilidades.ActualizarObjeto(cliente, "/api/PERMISOSSINRETRIBUCION/" + inci.IDPERMISOSDERETRIBUCION, inci);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var response = await Utilidades.NuevoObjeto(cliente, "/api/PERMISOSSINRETRIBUCION/", 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(PERMISOSSINRETRIBUCION objeto, bool esNuevo)
|
||||||
|
{
|
||||||
|
if(objeto.IDPERMISOSDERETRIBUCION != 0)
|
||||||
|
{
|
||||||
|
itmNomOD = objeto.IDNOMINAORIGENDEDATOSNavigation?.DESCRIPCION;
|
||||||
|
itmNomAp = objeto.IDNOMINAAPLICACIONNavigation?.DESCRIPCION;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
itmNomAp = "";
|
||||||
|
itmNomOD = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemEnEdicion = objeto;
|
||||||
|
await popupGestionDatos.ShowAsync();
|
||||||
|
}
|
||||||
|
private async Task cerrarPopupModificacion()
|
||||||
|
{
|
||||||
|
await popupGestionDatos.HideAsync();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -189,7 +189,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label class="lblInput" for="unidad-administrativa">Departamento:</label>
|
<label class="lblInput" for="unidad-administrativa">Departamento:</label>
|
||||||
<input class="form-control" id="unidad-administrativa" value="@Persona.IDDEPARTAMENTONavigation?.DESCRIPCION" disabled />
|
<input class="form-control" id="unidad-administrativa" value="@Persona.DEPARTAMENTOACTUAL" disabled />
|
||||||
</div>
|
</div>
|
||||||
@* <div class="col-md-2">
|
@* <div class="col-md-2">
|
||||||
<label class="lblInput" for="unidad-administrativa">Unidad administrativa:</label>
|
<label class="lblInput" for="unidad-administrativa">Unidad administrativa:</label>
|
||||||
@@ -301,7 +301,7 @@
|
|||||||
private List<ENUMERACIONES> listadoMutua = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> listadoMutua = new List<ENUMERACIONES>();
|
||||||
private List<ENUMERACIONES> listadoEscala = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> listadoEscala = new List<ENUMERACIONES>();
|
||||||
private List<ENUMERACIONES> listadoEspecialidad = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> listadoEspecialidad = new List<ENUMERACIONES>();
|
||||||
|
private PUESTOS puestoQueOcupa { get; set; } = new PUESTOS();
|
||||||
private HttpClient cliente = new HttpClient();
|
private HttpClient cliente = new HttpClient();
|
||||||
|
|
||||||
private int NumeroTrienios { get; set; }
|
private int NumeroTrienios { get; set; }
|
||||||
@@ -352,7 +352,7 @@
|
|||||||
listadoEspecialidad = await rellenarLitadoEnum("ESPECIALIDADES");
|
listadoEspecialidad = await rellenarLitadoEnum("ESPECIALIDADES");
|
||||||
listadoMutua = await rellenarLitadoEnum("MUT");
|
listadoMutua = await rellenarLitadoEnum("MUT");
|
||||||
listadotramos = await rellenarLitadoEnum("TRAMCOMCARR");
|
listadotramos = await rellenarLitadoEnum("TRAMCOMCARR");
|
||||||
|
|
||||||
await CalcularNumeroTrienios();
|
await CalcularNumeroTrienios();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using bdAntifraude.db;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace SwaggerAntifraude.Controllers
|
||||||
|
{
|
||||||
|
[ApiController]
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
public class DIFERENCIAPAGODELEGADOController : GenericoController<DIFERENCIAPAGODELEGADO, int>
|
||||||
|
{
|
||||||
|
public DIFERENCIAPAGODELEGADOController()
|
||||||
|
: base()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using bdAntifraude.db;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace SwaggerAntifraude.Controllers
|
||||||
|
{
|
||||||
|
[ApiController]
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
public class HUELGASController : GenericoController<HUELGAS, int>
|
||||||
|
{
|
||||||
|
public HUELGASController()
|
||||||
|
: base()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using bdAntifraude.db;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace SwaggerAntifraude.Controllers
|
||||||
|
{
|
||||||
|
[ApiController]
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
public class PERMISOSSINRETRIBUCIONController : GenericoController<PERMISOSSINRETRIBUCION, int>
|
||||||
|
{
|
||||||
|
public PERMISOSSINRETRIBUCIONController()
|
||||||
|
: base()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -155,6 +155,9 @@ namespace SwaggerAntifraude.Controllers
|
|||||||
.Include(pue => pue.PUESTOSIDPERSONALNavigation)
|
.Include(pue => pue.PUESTOSIDPERSONALNavigation)
|
||||||
.ThenInclude(rpt => rpt.IDRPTDESNavigation)
|
.ThenInclude(rpt => rpt.IDRPTDESNavigation)
|
||||||
.ThenInclude(rpt => rpt.IDUNIDADADMINISTRATIVANavigation)
|
.ThenInclude(rpt => rpt.IDUNIDADADMINISTRATIVANavigation)
|
||||||
|
.Include(pue => pue.PUESTOSIDPERSONALNavigation)
|
||||||
|
.ThenInclude(rpt => rpt.IDRPTDESNavigation)
|
||||||
|
.ThenInclude(x => x.IDDEPARTAMENTONavigation)
|
||||||
.Include(pue => pue.PUESTOSIDPERSONALNavigation)
|
.Include(pue => pue.PUESTOSIDPERSONALNavigation)
|
||||||
.Include(pue => pue.EXCEPCIONESPERMISOSIDPERSONANavigation)
|
.Include(pue => pue.EXCEPCIONESPERMISOSIDPERSONANavigation)
|
||||||
.ThenInclude(exc=>exc.IDDEPARTAMENTONavigation)
|
.ThenInclude(exc=>exc.IDDEPARTAMENTONavigation)
|
||||||
@@ -201,6 +204,9 @@ namespace SwaggerAntifraude.Controllers
|
|||||||
.Include(cp => cp.IDDEPARTAMENTONavigation)
|
.Include(cp => cp.IDDEPARTAMENTONavigation)
|
||||||
.Include(cp => cp.CODIGOMUNICIPIONavigation)
|
.Include(cp => cp.CODIGOMUNICIPIONavigation)
|
||||||
.ThenInclude(cpro => cpro.CODIGOPROVINCIANavigation)
|
.ThenInclude(cpro => cpro.CODIGOPROVINCIANavigation)
|
||||||
|
.Include(pue => pue.PUESTOSIDPERSONALNavigation)
|
||||||
|
.ThenInclude(rpt => rpt.IDRPTDESNavigation)
|
||||||
|
.ThenInclude(x => x.IDDEPARTAMENTONavigation)
|
||||||
.AsNoTracking()
|
.AsNoTracking()
|
||||||
.FirstOrDefault(p => p.NIF == nif);
|
.FirstOrDefault(p => p.NIF == nif);
|
||||||
if (persona == null)
|
if (persona == null)
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ namespace bdAntifraude.db
|
|||||||
var aa = this;
|
var aa = this;
|
||||||
|
|
||||||
var puesto = PUESTOSIDPERSONALNavigation?.FirstOrDefault(x => x.IDRPTNavigation?.IDSITUACIONNavigation?.DESCRIPCION == "ACTIVA");
|
var puesto = PUESTOSIDPERSONALNavigation?.FirstOrDefault(x => x.IDRPTNavigation?.IDSITUACIONNavigation?.DESCRIPCION == "ACTIVA");
|
||||||
|
|
||||||
return puesto?.IDRPTDESNavigation?.DESDEP ?? "";
|
return puesto?.IDRPTDESNavigation?.IDDEPARTAMENTONavigation?.DESCRIPCION ?? "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user