Compare commits
2 Commits
949df89bef
...
5cac63420e
| Author | SHA1 | Date | |
|---|---|---|---|
| 5cac63420e | |||
| 3372b23f3b |
@@ -46,25 +46,4 @@ Global
|
|||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {43CD0232-BD99-4567-84A1-B141DEFC2B80}
|
SolutionGuid = {43CD0232-BD99-4567-84A1-B141DEFC2B80}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(TeamFoundationVersionControl) = preSolution
|
|
||||||
SccNumberOfProjects = 6
|
|
||||||
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
|
|
||||||
SccTeamFoundationServer = http://ts-devopss:81/tecnosiscollection
|
|
||||||
SccLocalPath0 = .
|
|
||||||
SccProjectUniqueName1 = bdAntifraude\\bdAntifraude.csproj
|
|
||||||
SccProjectName1 = bdAntifraude
|
|
||||||
SccLocalPath1 = bdAntifraude
|
|
||||||
SccProjectUniqueName2 = RegistroPersonalAN\\RegistroPersonalAN.csproj
|
|
||||||
SccProjectName2 = RegistroPersonalAN
|
|
||||||
SccLocalPath2 = RegistroPersonalAN
|
|
||||||
SccProjectUniqueName3 = SwaggerAntifraude\\SwaggerAntifraude.csproj
|
|
||||||
SccProjectName3 = SwaggerAntifraude
|
|
||||||
SccLocalPath3 = SwaggerAntifraude
|
|
||||||
SccProjectUniqueName4 = GestionaDenunciasAN\\GestionaDenunciasAN.csproj
|
|
||||||
SccProjectName4 = GestionaDenunciasAN
|
|
||||||
SccLocalPath4 = GestionaDenunciasAN
|
|
||||||
SccProjectUniqueName5 = GestionPersonalWeb\\GestionPersonalWeb.csproj
|
|
||||||
SccProjectName5 = GestionPersonalWeb
|
|
||||||
SccLocalPath5 = GestionPersonalWeb
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
@@ -18,19 +18,19 @@
|
|||||||
@inject IHttpContextAccessor HttpContextAccessor
|
@inject IHttpContextAccessor HttpContextAccessor
|
||||||
@inject ProtectedSessionStorage ProtectedSessionStore
|
@inject ProtectedSessionStorage ProtectedSessionStore
|
||||||
@inject UserState UserState
|
@inject UserState UserState
|
||||||
<p class="tituloCaja">Varios</p>
|
|
||||||
<div class="row mb-3" style=" padding: 20px;border:solid 1px grey">
|
<div class="row mb-3 mt-4" style=" padding: 20px;border:solid 1px grey">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label for="txtApellidos" class="fw-bold widthLabel li-height50">Apellidos: </label>
|
<label for="txtApellidos" class="fw-bold widthLabel li-height50">Apellidos: </label>
|
||||||
<input class="form-control" disabled id="txtApellidos" @bind-value="@Persona.APELLIDOS" />
|
<input class="form-control" id="txtApellidos" @bind-value="@Persona.APELLIDOS" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label for="txtNombre" class="fw-bold widthLabel li-height50">Nombre: </label>
|
<label for="txtNombre" class="fw-bold widthLabel li-height50">Nombre: </label>
|
||||||
<input class="form-control" disabled id="txtNombre" @bind-value="@Persona.NOMBRE" />
|
<input class="form-control" id="txtNombre" @bind-value="@Persona.NOMBRE" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">DNI: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">DNI: </label>
|
||||||
<input class="form-control" disabled id="txtNIF" @bind-value="@Persona.NIF" />
|
<input class="form-control" id="txtNIF" @bind-value="@Persona.NIF" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="txtsexo" class="fw-bold widthLabel li-height50">Sexo: </label>
|
<label for="txtsexo" class="fw-bold widthLabel li-height50">Sexo: </label>
|
||||||
@@ -57,56 +57,58 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</InputSelect>
|
</InputSelect>
|
||||||
@* <input class="form-control" id="txtTiCont" disabled value="@persona.IDCONTRATONavigation?.DESCRIPCION" /> *@
|
@* <input class="form-control" id="txtTiCont" value="@persona.IDCONTRATONavigation?.DESCRIPCION" /> *@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Tabs @ref=tabsDtsPer style="margin-top:25px; font-size:12px; gap:0;" OnShown="@(args => OnTabShownAsync(args))">
|
<Tabs @ref=tabsDtsPer style="margin-top:25px; font-size:12px; gap:0;" OnShown="@(args => OnTabShownAsync(args))">
|
||||||
<Tab Title="Nómina" Name="tabNomina">
|
<Tab Title="Nómina" Name="tabNomina">
|
||||||
<Content>
|
<Content>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="txtCodigo" class="fw-bold widthLabel li-height50">Código: </label>
|
<label for="txtCodigo" class="fw-bold widthLabel li-height50">Código: </label>
|
||||||
@if (Nomina.IDNOMINANavigation != null){
|
@if (Nomina.IDNOMINANavigation != null)
|
||||||
<input class="form-control" disabled id="txtCodigo" @bind-value="@Nomina.IDNOMINANavigation.DESCRIPCION" />
|
{
|
||||||
|
<input class="form-control" id="txtCodigo" @bind-value="@Nomina.IDNOMINANavigation.DESCRIPCION" />
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<input class="form-control" disabled id="txtCodigo" />
|
<input class="form-control" id="txtCodigo" />
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-2">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel li-height50">Fecha: </label>
|
<label for="txtFecha" class="fw-bold widthLabel li-height50">Fecha: </label>
|
||||||
<input type="date" class="form-control" disabled id="txtFecha" @bind-value="@Nomina.FECHA" />
|
<input type="date" class="form-control" id="txtFecha" @bind-value="@Nomina.FECHA" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-2">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel li-height50">Nº Pluriempleo: </label>
|
<label for="txtFecha" class="fw-bold widthLabel li-height50">Nº Pluriempleo: </label>
|
||||||
<input class="form-control" disabled id="txtFecha" @bind-value="@Nomina.NUMEROPLURIEMPLEO" />
|
<input class="form-control" id="txtFecha" @bind-value="@Nomina.NUMEROPLURIEMPLEO" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-2">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel li-height50">Grupo: </label>
|
<label for="txtFecha" class="fw-bold widthLabel li-height50">Grupo: </label>
|
||||||
@if(Nomina.IDGRUPOFUNCIONARIONavigation != null){
|
@if (Nomina.IDGRUPOFUNCIONARIONavigation != null)
|
||||||
<input class="form-control" disabled id="txtFecha" @bind-value="@Nomina.IDGRUPOFUNCIONARIONavigation.DESCRIPCION" />
|
{
|
||||||
|
<input class="form-control" id="txtFecha" @bind-value="@Nomina.IDGRUPOFUNCIONARIONavigation.DESCRIPCION" />
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<input class="form-control" disabled id="txtFecha" />
|
<input class="form-control" id="txtFecha" />
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-2">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel li-height50">Nivel: </label>
|
<label for="txtFecha" class="fw-bold widthLabel li-height50">Nivel: </label>
|
||||||
<input class="form-control" disabled id="txtFecha" @bind-value="@Nomina.NIVEL" />
|
<input class="form-control" id="txtFecha" @bind-value="@Nomina.NIVEL" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4"></div>
|
@* <div class="col-md-4"></div> *@
|
||||||
<div class="col-md-11">
|
<div class="col-md-11">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel li-height50">Observaciones: </label>
|
<label for="txtFecha" class="fw-bold widthLabel li-height50">Observaciones: </label>
|
||||||
<input class="form-control" disabled id="txtFecha" @bind-value="@Nomina.OBSERVACIONES" />
|
<input class="form-control" id="txtFecha" @bind-value="@Nomina.OBSERVACIONES" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-1 d-flex gap-2 align-items-end">
|
<div class="col-md-1 d-flex gap-2 align-items-end">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel align-content-end">Acumulada: </label>
|
<label for="txtFecha" class="fw-bold widthLabel align-content-end">Acumulada: </label>
|
||||||
<input type="checkbox" class="" disabled id="txtFecha" @bind-value="@Nomina.ACUMULADA" />
|
<input type="checkbox" class="" id="txtFecha" @bind-value="@Nomina.ACUMULADA" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-3">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel li-height50">Sindicato 1: </label>
|
<label for="txtFecha" class="fw-bold widthLabel li-height50">Sindicato 1: </label>
|
||||||
<InputSelect @bind-Value="Nomina.IDSINDICATO1" class="form-select">
|
<InputSelect @bind-Value="Nomina.IDSINDICATO1" class="form-select">
|
||||||
<option value="">Seleccionar</option>
|
<option value="">Seleccionar</option>
|
||||||
@@ -119,17 +121,18 @@
|
|||||||
}
|
}
|
||||||
</InputSelect>
|
</InputSelect>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-3">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel li-height50">Valor Sindicato 1: </label>
|
<label for="txtFecha" class="fw-bold widthLabel li-height50">Valor Sindicato 1: </label>
|
||||||
@if(Nomina.IDSINDICATO1Navigation != null){
|
@if (Nomina.IDSINDICATO1Navigation != null)
|
||||||
<input class="form-control" disabled id="txtFecha" @bind-value="@Nomina.IDSINDICATO1Navigation.VALORNUMERICO1" />
|
{
|
||||||
|
<input class="form-control" id="txtFecha" @bind-value="@Nomina.IDSINDICATO1Navigation.VALORNUMERICO1" />
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<input class="form-control" disabled />
|
<input class="form-control" />
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-3">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel li-height50">Sindicato 2: </label>
|
<label for="txtFecha" class="fw-bold widthLabel li-height50">Sindicato 2: </label>
|
||||||
<InputSelect @bind-Value="Nomina.IDSINDICATO2" class="form-select">
|
<InputSelect @bind-Value="Nomina.IDSINDICATO2" class="form-select">
|
||||||
<option value="">Seleccionar</option>
|
<option value="">Seleccionar</option>
|
||||||
@@ -142,15 +145,15 @@
|
|||||||
}
|
}
|
||||||
</InputSelect>
|
</InputSelect>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-3">
|
||||||
<label for="txtFecha" class="fw-bold widthLabel li-height50">Valor Sindicato 2: </label>
|
<label for="txtFecha" class="fw-bold widthLabel li-height50">Valor Sindicato 2: </label>
|
||||||
@if (Nomina.IDSINDICATO2Navigation != null)
|
@if (Nomina.IDSINDICATO2Navigation != null)
|
||||||
{
|
{
|
||||||
<input class="form-control" disabled id="txtFecha" @bind-value="@Nomina.IDSINDICATO2Navigation.VALORNUMERICO1" />
|
<input class="form-control" id="txtFecha" @bind-value="@Nomina.IDSINDICATO2Navigation.VALORNUMERICO1" />
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<input class="form-control" disabled />
|
<input class="form-control" />
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -162,34 +165,421 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Pluriempleo: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Pluriempleo: </label>
|
||||||
<input class="form-control" disabled id="txtNIF" @bind-value="@Nomina.PLURIEMPLEO" />
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.PLURIEMPLEO" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Reducción Jornada: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Reducción Jornada: </label>
|
||||||
<input class="form-control" disabled id="txtNIF" @bind-value="@Nomina.REDUCCIONJORNADA" />
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.REDUCCIONJORNADA" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Trabajo Tiempo Parcial: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Trabajo Tiempo Parcial: </label>
|
||||||
<input class="form-control" disabled id="txtNIF" @bind-value="@Nomina.TRABAJOTIEMPOPARCIAL" />
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TRABAJOTIEMPOPARCIAL" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Content>
|
</Content>
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab Title="" Name="tabPorcentajes">
|
<Tab Title="Totales" Name="tabTotales">
|
||||||
<Content>
|
<Content>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-3">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Pluriempleo: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Total devengado: </label>
|
||||||
<input class="form-control" disabled id="txtNIF" @bind-value="@Nomina.PLURIEMPLEO" />
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALDEVENGADO" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Total liquido: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALLIQUIDO" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Total Seguridad Social: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALSEGURIDADSOCIAL" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Total haberes: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALHABERES" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Total pago en especie: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALPAGOESPECIE" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Total deducciones: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALDEDUCCIONES" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Otras deducciones: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.OTRASDEDUCCIONES" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Total IRPF: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALIRPF" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Content>
|
||||||
|
</Tab>
|
||||||
|
<Tab Title="Días" Name="tabDias">
|
||||||
|
<Content>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días efectivos: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASEFECTIVOS" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días enfermos: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASENFERMOS" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días accidentes: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASACCIDENTES" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días permisos sin retribuir: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASPERMISOSSINRETRIBUIR" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días maternidad: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASMATERNIDAD" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días base pago directo: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASBASEPAGODIRECTO" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días falta: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASFALTA" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días de paga liquidados: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASDEPAGALIQUIDADOS" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Content>
|
||||||
|
</Tab>
|
||||||
|
<Tab Title="Seguridad Social" Name="tabSeguridadSocial">
|
||||||
|
<Content>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Concepto: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALSEGURIDADSOCIALCONCEPTO" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Prorrata paga extra: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.PRORRATAPAGAEXTRA" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Prorrata productividad: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.PRORRATAPRODUCTIVIDAD" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base CC activo: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASECCACTI" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base días permiso no retribuido: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASEDPNR" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
</div>
|
||||||
|
@* --------------------------------- *@
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Total seguridad social pago en especie: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALSEGURIDADSOCIALPAGOENESPECIE" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Epigrafe 126: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALEPIGRAFE126" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Maternidad/Paternidad: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALMATERNIDADPATERNIDAD" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base D y FP activo: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASEDYFPACTI" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Permisos sin retribuir: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.TOTALPERMISOSINRETRIBUIR" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
</div>
|
||||||
|
@* --------------------------------- *@
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días accidentes: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASACCIDENTES" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base accidentes: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASEACCIDENTES" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base pago directo: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASEPAGODIRECTO" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base CC enfermedad: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASECCENF" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Reducción Jornada: </label>
|
</div>
|
||||||
<input class="form-control" disabled id="txtNIF" @bind-value="@Nomina.REDUCCIONJORNADA" />
|
@* --------------------------------- *@
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días enfermedad al 60: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASENFERMEDADAL60" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base enfermedad al 60: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASEENFERMEDADAL60" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base S.S. 100%: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASESEGURIDADSOCIAL100X100" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base D y FP enfermedad: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASEDYFPENF" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Trabajo Tiempo Parcial: </label>
|
|
||||||
<input class="form-control" disabled id="txtNIF" @bind-value="@Nomina.TRABAJOTIEMPOPARCIAL" />
|
|
||||||
</div>
|
</div>
|
||||||
|
@* --------------------------------- *@
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días enfermedad al 75: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASENFERMEDADAL75" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días enfermedad al 75: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.DIASENFERMEDADAL75" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Base maternidad: </label>
|
||||||
|
<input class="form-control" id="txtNIF" @bind-value="@Nomina.BASEMATE" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Mutua: </label>
|
||||||
|
<InputSelect @bind-Value="Nomina.IDMUTUA" class="form-select">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@if (lMutua != null)
|
||||||
|
{
|
||||||
|
@foreach (var enumera in lMutua)
|
||||||
|
{
|
||||||
|
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</InputSelect>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Mutua 2: </label>
|
||||||
|
<InputSelect @bind-Value="Nomina.IDMUTUA2" class="form-select">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@if (lMutua != null)
|
||||||
|
{
|
||||||
|
@foreach (var enumera in lMutua)
|
||||||
|
{
|
||||||
|
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</InputSelect>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Content>
|
||||||
|
</Tab>
|
||||||
|
</Tabs>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<Tabs @ref=tabsDtsNom style="margin-top:25px; font-size:12px; gap:0;" OnShown="@(args => OnTabShownAsync(args))">
|
||||||
|
<Tab Title="Conceptos" Name="tabConceptos">
|
||||||
|
<Content>
|
||||||
|
<div>
|
||||||
|
<Grid TItem="NOMINATRABAJADORLINEA"
|
||||||
|
Class="table tablaRegPers"
|
||||||
|
Data="lConceptos"
|
||||||
|
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="NOMINATRABAJADORLINEA" HeaderText="Descripción concepto">
|
||||||
|
@context.DESCRIPCIONCONCEPTO
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORLINEA" HeaderText="Cantidad">
|
||||||
|
@context.CANTIDAD
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORLINEA" HeaderText="Importe">
|
||||||
|
@context.IMPORTE
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORLINEA" HeaderText="Retribuciones">
|
||||||
|
@context.TOTALRETRIBUCIONES
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORLINEA" HeaderText="Deducciones">
|
||||||
|
@context.TOTALDEDUCCIONES
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORLINEA" HeaderText="Concepto al 100">
|
||||||
|
@context.CONCEPTOAL100
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORLINEA" HeaderText="Aplicacion presupuestaria">
|
||||||
|
@context.APLICACIONPRESUPUESTARIA
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORLINEA" HeaderText="Reducción jornada">
|
||||||
|
@if (context.REDUCCIONJORNADA == 1)
|
||||||
|
{
|
||||||
|
<i class="fa-regular fa-square-check"></i>
|
||||||
|
}
|
||||||
|
else { }
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORLINEA" HeaderText="Trabajo a tiempo parcial">
|
||||||
|
@if (context.TRABAJOATIEMPOPARCIAL == 1)
|
||||||
|
{
|
||||||
|
<i class="fa-regular fa-square-check"></i>
|
||||||
|
}
|
||||||
|
else { }
|
||||||
|
</GridColumn>
|
||||||
|
</GridColumns>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</div>
|
||||||
|
</Content>
|
||||||
|
</Tab>
|
||||||
|
<Tab Title="Pagos en especie" Name="tabPagosEspecie">
|
||||||
|
<Content>
|
||||||
|
<div>
|
||||||
|
<Grid TItem="NOMINATRABAJADORPAGOESPECIE"
|
||||||
|
Class="table tablaRegPers"
|
||||||
|
Data="lPagoEspecie"
|
||||||
|
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="NOMINATRABAJADORPAGOESPECIE" HeaderText="Descripción">
|
||||||
|
@context.DESCRIPCION
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORPAGOESPECIE" HeaderText="Importe">
|
||||||
|
@context.IMPORTE
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORPAGOESPECIE" HeaderText="Cuota">
|
||||||
|
@context.CUOTA
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="NOMINATRABAJADORPAGOESPECIE" HeaderText="Seguridad Social">
|
||||||
|
@context.SEGURIDADSOCIAL
|
||||||
|
</GridColumn>
|
||||||
|
</GridColumns>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</div>
|
||||||
|
</Content>
|
||||||
|
</Tab>
|
||||||
|
<Tab Title="Incidencias" Name="tabIncidencias">
|
||||||
|
<Content>
|
||||||
|
<div>
|
||||||
|
<Grid TItem="INCIDENCIAS"
|
||||||
|
Class="table tablaRegPers"
|
||||||
|
Data="lIncidencias"
|
||||||
|
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="INCIDENCIAS" HeaderText="Concepto">
|
||||||
|
@context.IDCONCEPTONOMINANavigation.DESCRIPCION
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="INCIDENCIAS" HeaderText="Cantidad">
|
||||||
|
@context.CANTIDAD
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="INCIDENCIAS" HeaderText="Importe">
|
||||||
|
@context.IMPORTE
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="INCIDENCIAS" HeaderText="IRPF">
|
||||||
|
@context.IRPF
|
||||||
|
</GridColumn>
|
||||||
|
|
||||||
|
</GridColumns>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</div>
|
||||||
|
</Content>
|
||||||
|
</Tab>
|
||||||
|
<Tab Title="Periodos SILTRA" Name="tabSiltra">
|
||||||
|
<Content>
|
||||||
|
<div>
|
||||||
|
<Grid TItem="PERIODOSSILTRA"
|
||||||
|
Class="table tablaRegPers"
|
||||||
|
Data="lSiltra"
|
||||||
|
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="PERIODOSSILTRA" HeaderText="Fecha inicio">
|
||||||
|
<NavLink class="btn btn-link" href="@HashRed(context.IDPERIODOSILTRA.ToString())">@context.FECHAINICIO.ToString().Substring(0,10)</NavLink>
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Fecha fin">
|
||||||
|
@context.FECHAFIN
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Días">
|
||||||
|
@context.DIAS
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Contrato">
|
||||||
|
@context.IDCONTRATONavigation?.DESCRIPCION
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Grupo tarifa">
|
||||||
|
@context.GRUPOTARIFA
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="CNAE">
|
||||||
|
@context.CNAE
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Reducción jornada">
|
||||||
|
@context.REDUCCIONJORNADA
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Tipo periodo tramo">
|
||||||
|
@context.TIPOPERIODOSTRAMOS
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Tipo liquidación">
|
||||||
|
@context.TIPOLIQUIDACION
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Nº días IRPF">
|
||||||
|
@context.NUMERODIASIRPF
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Importe IRPF">
|
||||||
|
@context.IMPORTEIRPF
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Estado">
|
||||||
|
@context.IDESTADONavigation?.DESCRIPCION
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="PERIODOSSILTRA" HeaderText="Número liquidación">
|
||||||
|
@context.NUMEROLIQUIDACION
|
||||||
|
</GridColumn>
|
||||||
|
</GridColumns>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
</div>
|
</div>
|
||||||
</Content>
|
</Content>
|
||||||
</Tab>
|
</Tab>
|
||||||
@@ -207,13 +597,18 @@
|
|||||||
public EventCallback OnPersonaActualizada { get; set; }
|
public EventCallback OnPersonaActualizada { get; set; }
|
||||||
private List<ENUMERACIONES> lSexo = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> lSexo = new List<ENUMERACIONES>();
|
||||||
private List<CONTRATOS> lTipoContra = new List<CONTRATOS>();
|
private List<CONTRATOS> lTipoContra = new List<CONTRATOS>();
|
||||||
private List<ENUMERACIONES> lSindicato= new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> lSindicato = new List<ENUMERACIONES>();
|
||||||
|
private List<ENUMERACIONES> lMutua = new List<ENUMERACIONES>();
|
||||||
|
private List<NOMINATRABAJADORLINEA> lConceptos = new List<NOMINATRABAJADORLINEA>();
|
||||||
|
private List<NOMINATRABAJADORPAGOESPECIE> lPagoEspecie= new List<NOMINATRABAJADORPAGOESPECIE>();
|
||||||
|
private List<INCIDENCIAS> lIncidencias= new List<INCIDENCIAS>();
|
||||||
|
private List<PERIODOSSILTRA> lSiltra= new List<PERIODOSSILTRA>();
|
||||||
private ValidationMessageStore? messageStore;
|
private ValidationMessageStore? messageStore;
|
||||||
private string errorMessage = "";
|
private string errorMessage = "";
|
||||||
public string? cl { get; set; } = "";
|
public string? cl { get; set; } = "";
|
||||||
public string? cn { get; set; } = "";
|
public string? cn { get; set; } = "";
|
||||||
private Tabs tabsDtsPer { get; set; } = new Tabs();
|
private Tabs tabsDtsPer { get; set; } = new Tabs();
|
||||||
|
private Tabs tabsDtsNom { get; set; } = new Tabs();
|
||||||
private async Task OnTabShownAsync(TabsEventArgs args)
|
private async Task OnTabShownAsync(TabsEventArgs args)
|
||||||
{
|
{
|
||||||
var panelActivo = args.ActiveTabName;
|
var panelActivo = args.ActiveTabName;
|
||||||
@@ -245,7 +640,7 @@
|
|||||||
|
|
||||||
var clCn = clDesencriptado.Split("-");
|
var clCn = clDesencriptado.Split("-");
|
||||||
var nifDesencriptado = clCn[0];
|
var nifDesencriptado = clCn[0];
|
||||||
var NominaDesencriptada = Int32.Parse(clCn[1]);
|
var NominaDesencriptada = Int32.Parse(clCn[1]);
|
||||||
// int NominaDesencriptada = Int32.Parse(tsUtilidades.crypt.FEncS(cn,
|
// int NominaDesencriptada = Int32.Parse(tsUtilidades.crypt.FEncS(cn,
|
||||||
// "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
// "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
// "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
// "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
@@ -263,6 +658,14 @@
|
|||||||
var resultContent = await response.Content.ReadAsStringAsync();
|
var resultContent = await response.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.");
|
||||||
Nomina = Persona.NOMINATRABAJADORCABECERA?.FirstOrDefault(x => x.IDNOMINA == NominaDesencriptada);
|
Nomina = Persona.NOMINATRABAJADORCABECERA?.FirstOrDefault(x => x.IDNOMINA == NominaDesencriptada);
|
||||||
|
lConceptos = new List<NOMINATRABAJADORLINEA>();
|
||||||
|
foreach (var lin in Nomina.NOMINATRABAJADORLINEA){lConceptos.Add(lin);}
|
||||||
|
lPagoEspecie = new List<NOMINATRABAJADORPAGOESPECIE>();
|
||||||
|
foreach(var pag in Nomina.NOMINATRABAJADORPAGOESPECIE){lPagoEspecie.Add(pag);}
|
||||||
|
lIncidencias = new List<INCIDENCIAS>();
|
||||||
|
foreach (var pag in Nomina.INCIDENCIAS) { lIncidencias.Add(pag); }
|
||||||
|
lSiltra = new List<PERIODOSSILTRA>();
|
||||||
|
foreach (var pag in Nomina.PERIODOSSILTRA) { lSiltra.Add(pag); }
|
||||||
// lblNombre = persona.NOMBRE + " " + Persona.APELLIDOS;
|
// lblNombre = persona.NOMBRE + " " + Persona.APELLIDOS;
|
||||||
|
|
||||||
|
|
||||||
@@ -277,6 +680,17 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private string HashRed(string id)
|
||||||
|
{
|
||||||
|
string link = "/PeriodoSiltra?cl=" + tsUtilidades.crypt.FEncS(
|
||||||
|
id,
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
875421649);
|
||||||
|
return link;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task CargarSelects()
|
private async Task CargarSelects()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -284,6 +698,7 @@
|
|||||||
|
|
||||||
lSexo = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(cliente, "/api/ENUMERACIONES/EnumeracionesGrupo/SEXO");
|
lSexo = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(cliente, "/api/ENUMERACIONES/EnumeracionesGrupo/SEXO");
|
||||||
lSindicato = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(cliente, "/api/ENUMERACIONES/EnumeracionesGrupo/SIND");
|
lSindicato = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(cliente, "/api/ENUMERACIONES/EnumeracionesGrupo/SIND");
|
||||||
|
lMutua = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(cliente, "/api/ENUMERACIONES/EnumeracionesGrupo/MUT");
|
||||||
// lTipoContra = await Utilidades.ObtenerObjeto<List<CONTRATOS>>(cliente, "/api/CONTRATOS");
|
// lTipoContra = await Utilidades.ObtenerObjeto<List<CONTRATOS>>(cliente, "/api/CONTRATOS");
|
||||||
var responseTipCon = await cliente.GetAsync("/api/CONTRATOS/");
|
var responseTipCon = await cliente.GetAsync("/api/CONTRATOS/");
|
||||||
if (responseTipCon.IsSuccessStatusCode) { lTipoContra = JsonConvert.DeserializeObject<List<CONTRATOS>>(await responseTipCon.Content.ReadAsStringAsync()); }
|
if (responseTipCon.IsSuccessStatusCode) { lTipoContra = JsonConvert.DeserializeObject<List<CONTRATOS>>(await responseTipCon.Content.ReadAsStringAsync()); }
|
||||||
|
|||||||
@@ -0,0 +1,272 @@
|
|||||||
|
@page "/PeriodoSiltra"
|
||||||
|
@using System.Net.Http.Headers
|
||||||
|
@using System.Linq.Expressions
|
||||||
|
@using Microsoft.AspNetCore.WebUtilities
|
||||||
|
@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="pagina">
|
||||||
|
<div class="Cabecera">
|
||||||
|
<h6><small><i class="fas fa-user"></i><b> Periodo Siltra</b></small></h6>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if (PeriodoSiltra == null)
|
||||||
|
{
|
||||||
|
<div id="cargando" class="loadingFrame">
|
||||||
|
<div class="loadingImg"></div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<div class="row" style="border:solid 1px black; padding:10px">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Fecha inicio: </label>
|
||||||
|
<input class="form-control" type="date" @bind-value="@PeriodoSiltra.FECHAINICIO" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Fecha fin: </label>
|
||||||
|
<input class="form-control" type="date" @bind-value="@PeriodoSiltra.FECHAFIN" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días: </label>
|
||||||
|
<input class="form-control" @bind-value="@PeriodoSiltra.DIAS" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtsexo" class="fw-bold widthLabel li-height50">Cuenta cotización: </label>
|
||||||
|
<InputSelect @bind-Value="PeriodoSiltra.IDCUENTACOTIZACIONPATRONAL" class="form-select">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@if (lCuentaCoti != null)
|
||||||
|
{
|
||||||
|
@foreach (var enumera in lCuentaCoti)
|
||||||
|
{
|
||||||
|
<option value="@enumera.IDCUENTACOTIZACIONPATRONAL">@enumera.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</InputSelect>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtsexo" class="fw-bold widthLabel li-height50">Tipo liquidación: </label>
|
||||||
|
<InputSelect @bind-Value="PeriodoSiltra.IDTIPOLIQUIDACION" class="form-select">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@if (lTipLiq != null)
|
||||||
|
{
|
||||||
|
@foreach (var enumera in lTipLiq)
|
||||||
|
{
|
||||||
|
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</InputSelect>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Ocupación: </label>
|
||||||
|
<input class="form-control" @bind-value="@PeriodoSiltra.OCUPACION" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">CNAE: </label>
|
||||||
|
<input class="form-control" @bind-value="@PeriodoSiltra.CNAE" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Grupo Tarifa: </label>
|
||||||
|
<input class="form-control" @bind-value="@PeriodoSiltra.GRUPOTARIFA" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Estado: </label>
|
||||||
|
<InputSelect @bind-Value="PeriodoSiltra.IDESTADO" class="form-select">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@* @if (lSexo != null)
|
||||||
|
{
|
||||||
|
@foreach (var enumera in lSexo)
|
||||||
|
{
|
||||||
|
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
} *@
|
||||||
|
</InputSelect>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Tipo periodo tramo: </label>
|
||||||
|
<InputSelect @bind-Value="PeriodoSiltra.IDTIPOPERIODOTRAMO" class="form-select">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@if (lTipPeriodo != null)
|
||||||
|
{
|
||||||
|
@foreach (var enumera in lTipPeriodo)
|
||||||
|
{
|
||||||
|
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</InputSelect>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Reducción jornada: </label>
|
||||||
|
<input class="form-control" @bind-value="@PeriodoSiltra.REDUCCIONJORNADA" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Número días IRPF: </label>
|
||||||
|
<input class="form-control" @bind-value="@PeriodoSiltra.NUMERODIASIRPF" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Importe IRPF: </label>
|
||||||
|
<input class="form-control" @bind-value="@PeriodoSiltra.IMPORTEIRPF" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mt-2">
|
||||||
|
<div style="overflow-x:auto;" class="tablaDesk">
|
||||||
|
<Grid TItem="TRAMOSSILTRA"
|
||||||
|
Class="table tablaRegPers"
|
||||||
|
Data="@lTraSil"
|
||||||
|
AllowFiltering="false"
|
||||||
|
AllowPaging="false"
|
||||||
|
AllowSorting="true"
|
||||||
|
EmptyText="No se han encontrado datos"
|
||||||
|
Height="80"
|
||||||
|
PageSizeSelectorVisible="false"
|
||||||
|
Responsive="true"
|
||||||
|
PaginationItemsTextFormat="{0} - {1} de {2} elementos">
|
||||||
|
<GridColumns>
|
||||||
|
<GridColumn TItem="TRAMOSSILTRA" HeaderText="Tipo tramo" PropertyName="IDTIPOTRAMONavigation?.DESCRIPCION" FilterButtonCSSClass="hidden" SortKeySelector="item => item.IDTIPOTRAMONavigation.DESCRIPCION">
|
||||||
|
@if (lTraSil.Any(x => x.IDTIPOTRAMO == context.IDTIPOTRAMONavigation?.IDCODIGOTRAMOACUMULA)){
|
||||||
|
<p style="color:red; font-weight:bold"> @context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION </p>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<p> @context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION </p>
|
||||||
|
}
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="TRAMOSSILTRA" HeaderText="Importe" PropertyName="IMPORTE" FilterButtonCSSClass="hidden" SortKeySelector="item => item.IMPORTE">
|
||||||
|
@context.IMPORTE
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="TRAMOSSILTRA" HeaderText="% Empresa" PropertyName="PORCENTAJEEMPRESA" FilterButtonCSSClass="hidden" SortKeySelector="item => item.PORCENTAJEEMPRESA">
|
||||||
|
@context.PORCENTAJEEMPRESA
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="TRAMOSSILTRA" HeaderText="Importe empresa" PropertyName="IMPORTEEMPRESA" FilterButtonCSSClass="hidden" SortKeySelector="item => item.IMPORTEEMPRESA">
|
||||||
|
@context.IMPORTEEMPRESA
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="TRAMOSSILTRA" HeaderText="Importe empresa" PropertyName="PORCENTAJETRABAJADOR" FilterButtonCSSClass="hidden" SortKeySelector="item => item.PORCENTAJETRABAJADOR">
|
||||||
|
@context.PORCENTAJETRABAJADOR
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="TRAMOSSILTRA" HeaderText="Importe empresa" PropertyName="IMPORTETRABAJADOR" FilterButtonCSSClass="hidden" SortKeySelector="item => item.IMPORTETRABAJADOR">
|
||||||
|
@context.IMPORTETRABAJADOR
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="TRAMOSSILTRA" HeaderText="Importe empresa" PropertyName="IMPORTEGLOBAL" FilterButtonCSSClass="hidden" SortKeySelector="item => item.IMPORTEGLOBAL">
|
||||||
|
@context.IMPORTEGLOBAL
|
||||||
|
</GridColumn>
|
||||||
|
<GridColumn TItem="TRAMOSSILTRA" HeaderText="Importe empresa" PropertyName="DESCRIPCIONTRAMOXML" FilterButtonCSSClass="hidden" SortKeySelector="item => item.IDTIPOTRAMONavigation.IDTIPOTRAMOFICHEROXMLNavigation.DESCRIPCION">
|
||||||
|
@context.IDTIPOTRAMONavigation.IDTIPOTRAMOFICHEROXMLNavigation.DESCRIPCION
|
||||||
|
</GridColumn>
|
||||||
|
</GridColumns>
|
||||||
|
</Grid>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@code {
|
||||||
|
private PERIODOSSILTRA PeriodoSiltra { get; set; }
|
||||||
|
private List<int> annos = new List<int>();
|
||||||
|
private string cl { get; set; }
|
||||||
|
private List<CUENTASCOTIZACIONPATRONAL> lCuentaCoti = new List<CUENTASCOTIZACIONPATRONAL>();
|
||||||
|
private List<ENUMERACIONES> lTipLiq = new List<ENUMERACIONES>();
|
||||||
|
private List<ENUMERACIONES> lEstados = new List<ENUMERACIONES>();
|
||||||
|
// private List<TIPOSTRAMOS> lTipPeriodo = new List<TIPOSTRAMOS>();
|
||||||
|
private List<ENUMERACIONES> lTipPeriodo = new List<ENUMERACIONES>();
|
||||||
|
private List<TRAMOSSILTRA> lTraSil = new List<TRAMOSSILTRA>();
|
||||||
|
|
||||||
|
|
||||||
|
private string _filter = "";
|
||||||
|
public string Filter
|
||||||
|
{
|
||||||
|
get => _filter;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (_filter != value)
|
||||||
|
{
|
||||||
|
_filter = value;
|
||||||
|
// AplicarFiltros();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private MarkupString FormatearNombre(string nombre)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(nombre))
|
||||||
|
{
|
||||||
|
return new MarkupString(string.Empty);
|
||||||
|
}
|
||||||
|
var palabras = nombre.Split(' ');
|
||||||
|
if (palabras.Length > 2)
|
||||||
|
{
|
||||||
|
string primeraParte = string.Join(" ", palabras.Take(2));
|
||||||
|
string resto = string.Join(" ", palabras.Skip(2));
|
||||||
|
return new MarkupString($"{primeraParte}<br/>{resto}");
|
||||||
|
}
|
||||||
|
return new MarkupString(nombre);
|
||||||
|
}
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
|
||||||
|
var token = UserState.Token;
|
||||||
|
var client = HttpClientFactory.CreateClient();
|
||||||
|
client.BaseAddress = new Uri(Utilidades.urlSwagger());
|
||||||
|
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||||||
|
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||||
|
|
||||||
|
|
||||||
|
var url = NavigationManager.ToAbsoluteUri(NavigationManager.Uri);
|
||||||
|
|
||||||
|
if (QueryHelpers.ParseQuery(url.Query).TryGetValue("cl", out var clValue))
|
||||||
|
{
|
||||||
|
cl = clValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(cl))
|
||||||
|
{
|
||||||
|
PeriodoSiltra = new PERIODOSSILTRA();
|
||||||
|
|
||||||
|
}
|
||||||
|
string idDesencriptado = tsUtilidades.crypt.FEncS(cl,
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
-875421649);
|
||||||
|
|
||||||
|
var response = await client.GetAsync($"/api/PERIODOSSILTRA/{idDesencriptado}");
|
||||||
|
if (!response.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
throw new Exception($"Error al obtener los datos de la persona. Código: {response.StatusCode}");
|
||||||
|
}
|
||||||
|
var resultContent = await response.Content.ReadAsStringAsync();
|
||||||
|
PeriodoSiltra = JsonConvert.DeserializeObject<PERIODOSSILTRA>(resultContent) ?? throw new Exception("Error al deserializar los datos del Periodo Siltra.");
|
||||||
|
|
||||||
|
foreach (var i in PeriodoSiltra.TRAMOSSILTRA) {
|
||||||
|
lTraSil.Add(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
lTipLiq = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(client, "/api/ENUMERACIONES/EnumeracionesGrupo/TIPLIQ");
|
||||||
|
var rlCuentaCoti = await client.GetAsync("/api/CUENTASCOTIZACIONPATRONAL");
|
||||||
|
var rcCuentaCoti = await rlCuentaCoti.Content.ReadAsStringAsync();
|
||||||
|
lCuentaCoti = JsonConvert.DeserializeObject<List<CUENTASCOTIZACIONPATRONAL>>(rcCuentaCoti) ?? throw new Exception("Error al deserializar los datos.");
|
||||||
|
lEstados = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(client, "/api/ENUMERACIONES/EnumeracionesGrupo/MUT");
|
||||||
|
lTipPeriodo = await Utilidades.ObtenerObjeto<List<ENUMERACIONES>>(client, "/api/ENUMERACIONES/EnumeracionesGrupo/TIPPERTRAM");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -88,7 +88,85 @@
|
|||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Modal @ref="popupGestionDatos" title="@tituloPopup" IsVerticallyCentered="true" UseStaticBackdrop="true" CloseOnEscape="false">
|
|
||||||
|
<Modal @key="ModalKey"
|
||||||
|
@ref="popupGestionDatos"
|
||||||
|
title="@tituloPopup"
|
||||||
|
IsVerticallyCentered="true"
|
||||||
|
UseStaticBackdrop="true"
|
||||||
|
CloseOnEscape="false">
|
||||||
|
|
||||||
|
<BodyTemplate>
|
||||||
|
@if (renderBody && itemSeleccionado is not null)
|
||||||
|
{
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 formatoCampos">
|
||||||
|
<label class="tituloLbl">Nombre Curso:</label>
|
||||||
|
<InputText required @bind-Value="itemSeleccionado.NOMBRE_CURSO" class="inputForm" maxlength="300"></InputText>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 formatoCampos mt-2">
|
||||||
|
<label class="tituloLbl">Centro:</label>
|
||||||
|
<InputText required @bind-Value="itemSeleccionado.CENTRO" class="inputForm" maxlength="100"></InputText>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 formatoCampos">
|
||||||
|
<label class="tituloLbl">Fecha Expedicion:</label>
|
||||||
|
<InputDate required @bind-Value="itemSeleccionado.FECHA_EXPEDICION" class="inputForm"></InputDate>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 formatoCampos mt-2">
|
||||||
|
<label class="tituloLbl">Duracion:</label>
|
||||||
|
<InputNumber required @bind-Value="itemSeleccionado.DURACION" class="inputForm" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 formatoCampos mt-2">
|
||||||
|
<label class="tituloLbl">Fichero Anterior:</label>
|
||||||
|
<InputText required @bind-Value="itemSeleccionado.RUTA" class="inputForm"></InputText>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12 formatoCampos mt-2">
|
||||||
|
<label class="tituloLbl">Subir Fichero:</label>
|
||||||
|
<InputFile class="inputForm" OnChange="LoadFile"></InputFile>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<p style="color:red; text-align:center">@mensajeArchivo</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-6 d-flex align-items-center gap-3 mt-2">
|
||||||
|
<label class="tituloLbl">Aprovechamiento:</label>
|
||||||
|
<input type="checkbox" id="chbAPOVECHAMIENTO" checked="@itemSeleccionado.APROVECHAMIENTO" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-3 d-flex align-items-center gap-3 mt-2">
|
||||||
|
<label class="tituloLbl">Oficial:</label>
|
||||||
|
<input type="checkbox" id="chbOFICIAL" checked="@itemSeleccionado.OFICIAL" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-3 d-flex align-items-center gap-3 mt-2">
|
||||||
|
<label class="tituloLbl">Apto CPH:</label>
|
||||||
|
<input type="checkbox" id="chbAPTOCPH" checked="@itemSeleccionado.APTOCPH" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</BodyTemplate>
|
||||||
|
|
||||||
|
<FooterTemplate>
|
||||||
|
<Button Color="ButtonColor.Secondary" @onclick="cerrarPopupGestionDatos">Cerrar</Button>
|
||||||
|
|
||||||
|
@if (itemSeleccionado is not null && itemSeleccionado.IDFORMACION != 0)
|
||||||
|
{
|
||||||
|
<Button @onclick="@(() => GestionarDatos("update"))" Color="ButtonColor.Primary">Modificar</Button>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<Button @onclick="@(() => GestionarDatos("create"))" Color="ButtonColor.Primary">Añadir</Button>
|
||||||
|
}
|
||||||
|
</FooterTemplate>
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
@* <Modal @ref="popupGestionDatos" title="@tituloPopup" IsVerticallyCentered="true" UseStaticBackdrop="true" CloseOnEscape="false">
|
||||||
<BodyTemplate>
|
<BodyTemplate>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 formatoCampos">
|
<div class="col-12 formatoCampos">
|
||||||
@@ -118,15 +196,18 @@
|
|||||||
<div class="col-12"><p style="color:red; text-align:center">@mensajeArchivo</p></div>
|
<div class="col-12"><p style="color:red; text-align:center">@mensajeArchivo</p></div>
|
||||||
<div class="col-6 d-flex align-items-center gap-3 mt-2">
|
<div class="col-6 d-flex align-items-center gap-3 mt-2">
|
||||||
<label class="tituloLbl">Aprovechamiento:</label>
|
<label class="tituloLbl">Aprovechamiento:</label>
|
||||||
<InputCheckbox required @bind-Value="itemSeleccionado.APROVECHAMIENTO" class="inputForm"></InputCheckbox>
|
<input type="checkbox" @bind="itemSeleccionado.APROVECHAMIENTO" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3 d-flex align-items-center gap-3 mt-2">
|
<div class="col-3 d-flex align-items-center gap-3 mt-2">
|
||||||
<label class="tituloLbl">Oficial:</label>
|
<label class="tituloLbl">Oficial:</label>
|
||||||
<InputCheckbox required @bind-Value="itemSeleccionado.OFICIAL" class="inputForm"></InputCheckbox>
|
<input type="checkbox" @bind="itemSeleccionado.OFICIAL" />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3 d-flex align-items-center gap-3 mt-2">
|
<div class="col-3 d-flex align-items-center gap-3 mt-2" @key="itemSeleccionado?.IDFORMACION">
|
||||||
<label class="tituloLbl">Apto CPH:</label>
|
<label class="tituloLbl">Apto CPH:</label>
|
||||||
<InputCheckbox required @bind-Value="itemSeleccionado.APTOCPH" class="inputForm"></InputCheckbox>
|
<input type="checkbox"
|
||||||
|
checked="@itemSeleccionado.APTOCPH"
|
||||||
|
@onchange="OnAptoCphChanged" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</BodyTemplate>
|
</BodyTemplate>
|
||||||
@@ -141,7 +222,7 @@
|
|||||||
<Button @onclick="@(() => GestionarDatos("create"))" Color="ButtonColor.Primary">Añadir</Button>
|
<Button @onclick="@(() => GestionarDatos("create"))" Color="ButtonColor.Primary">Añadir</Button>
|
||||||
}
|
}
|
||||||
</FooterTemplate>
|
</FooterTemplate>
|
||||||
</Modal>
|
</Modal> *@
|
||||||
|
|
||||||
<Modal @ref="popupConfirmarBorrado" title="" IsVerticallyCentered="true" UseStaticBackdrop="true" CloseOnEscape="false">
|
<Modal @ref="popupConfirmarBorrado" title="" IsVerticallyCentered="true" UseStaticBackdrop="true" CloseOnEscape="false">
|
||||||
<BodyTemplate>
|
<BodyTemplate>
|
||||||
@@ -157,6 +238,7 @@
|
|||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
[Parameter]
|
[Parameter]
|
||||||
public PERSONAS Persona { get; set; } = new PERSONAS();
|
public PERSONAS Persona { get; set; } = new PERSONAS();
|
||||||
@@ -176,6 +258,13 @@
|
|||||||
private List<ENUMERACIONES> listaParentescos = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> listaParentescos = new List<ENUMERACIONES>();
|
||||||
|
|
||||||
|
|
||||||
|
private void OnAptoCphChanged(ChangeEventArgs e)
|
||||||
|
{
|
||||||
|
// e.Value suele venir como "true"/"false" en checkboxes
|
||||||
|
if (e?.Value is bool b) itemSeleccionado.APTOCPH = b;
|
||||||
|
else if (e?.Value is string s && bool.TryParse(s, out var bb)) itemSeleccionado.APTOCPH = bb;
|
||||||
|
}
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
if (Persona?.IDPERSONA != null && Persona.IDPERSONA > 0)
|
if (Persona?.IDPERSONA != null && Persona.IDPERSONA > 0)
|
||||||
@@ -198,39 +287,77 @@
|
|||||||
formacionItems = await Utilidades.ObtenerObjeto<List<FORMACION>>(cliente, "/api/FORMACION/filtrar", filtro);
|
formacionItems = await Utilidades.ObtenerObjeto<List<FORMACION>>(cliente, "/api/FORMACION/filtrar", filtro);
|
||||||
formacionItems = formacionItems.OrderByDescending(x => x.FECHA_EXPEDICION).ToList();
|
formacionItems = formacionItems.OrderByDescending(x => x.FECHA_EXPEDICION).ToList();
|
||||||
}
|
}
|
||||||
|
// private async Task abrirPopupGestionDatos(FORMACION objeto)
|
||||||
|
// {
|
||||||
|
// itemSeleccionado = objeto;
|
||||||
|
|
||||||
|
// if (idItem != 0)
|
||||||
|
// {
|
||||||
|
// tituloPopup = "Modificar Formación";
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// tituloPopup = "Nueva Formación";
|
||||||
|
// }
|
||||||
|
// await popupGestionDatos.ShowAsync();
|
||||||
|
// }
|
||||||
|
private object ModalKey = new();
|
||||||
|
private bool renderBody;
|
||||||
|
|
||||||
private async Task abrirPopupGestionDatos(FORMACION objeto)
|
private async Task abrirPopupGestionDatos(FORMACION objeto)
|
||||||
{
|
{
|
||||||
itemSeleccionado = objeto;
|
itemSeleccionado = objeto;
|
||||||
|
|
||||||
if (idItem != 0)
|
if (idItem != 0)
|
||||||
{
|
|
||||||
tituloPopup = "Modificar Formación";
|
tituloPopup = "Modificar Formación";
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
tituloPopup = "Nueva Formación";
|
tituloPopup = "Nueva Formación";
|
||||||
}
|
|
||||||
|
ModalKey = itemSeleccionado?.IDFORMACION != 0 ? itemSeleccionado.IDFORMACION : Guid.NewGuid();
|
||||||
|
|
||||||
|
renderBody = false;
|
||||||
|
StateHasChanged();
|
||||||
|
|
||||||
|
await Task.Yield();
|
||||||
|
|
||||||
|
renderBody = true;
|
||||||
|
StateHasChanged();
|
||||||
|
|
||||||
await popupGestionDatos.ShowAsync();
|
await popupGestionDatos.ShowAsync();
|
||||||
}
|
}
|
||||||
|
// private async Task cerrarPopupGestionDatos()
|
||||||
|
// {
|
||||||
|
// await popupGestionDatos.HideAsync();
|
||||||
|
// }
|
||||||
private async Task cerrarPopupGestionDatos()
|
private async Task cerrarPopupGestionDatos()
|
||||||
{
|
{
|
||||||
|
renderBody = false;
|
||||||
|
StateHasChanged();
|
||||||
|
await Task.Yield();
|
||||||
await popupGestionDatos.HideAsync();
|
await popupGestionDatos.HideAsync();
|
||||||
}
|
}
|
||||||
private async Task GestionarDatos(string accion)
|
private async Task GestionarDatos(string accion)
|
||||||
{
|
{
|
||||||
itemSeleccionado.IDPERSONA = Persona.IDPERSONA;
|
itemSeleccionado.IDPERSONA = Persona.IDPERSONA;
|
||||||
itemSeleccionado.NIF = Persona.NIF;
|
itemSeleccionado.NIF = Persona.NIF;
|
||||||
|
string idAPTOCPH = "chbAPTOCPH";
|
||||||
|
itemSeleccionado.APTOCPH = await JS.InvokeAsync<bool>("obtenerCheck", idAPTOCPH);
|
||||||
|
string idAPROVECHAMIENTO = "chbAPOVECHAMIENTO";
|
||||||
|
itemSeleccionado.APROVECHAMIENTO = await JS.InvokeAsync<bool>("obtenerCheck", idAPROVECHAMIENTO);
|
||||||
|
string idOFICIAL = "chbOFICIAL";
|
||||||
|
itemSeleccionado.OFICIAL = await JS.InvokeAsync<bool>("obtenerCheck", idOFICIAL);
|
||||||
switch (accion)
|
switch (accion)
|
||||||
{
|
{
|
||||||
case "update":
|
case "update":
|
||||||
var responsea = await Utilidades.ActualizarObjeto(cliente, "/api/FORMACION/" + itemSeleccionado.IDFORMACION, itemSeleccionado);
|
var responsea = await Utilidades.ActualizarObjeto(cliente, "/api/FORMACION/" + itemSeleccionado.IDFORMACION, itemSeleccionado);
|
||||||
await SubirArchivo(itemSeleccionado);
|
await SubirArchivo(itemSeleccionado);
|
||||||
|
await cerrarPopupGestionDatos();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "create":
|
case "create":
|
||||||
var response = await Utilidades.NuevoObjeto(cliente, "/api/FORMACION", itemSeleccionado);
|
var response = await Utilidades.NuevoObjeto(cliente, "/api/FORMACION", itemSeleccionado);
|
||||||
await SubirArchivo(response);
|
await SubirArchivo(response);
|
||||||
|
await cerrarPopupGestionDatos();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "delete":
|
case "delete":
|
||||||
@@ -392,4 +519,8 @@
|
|||||||
link.click();
|
link.click();
|
||||||
document.body.removeChild(link);
|
document.body.removeChild(link);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function obtenerCheck(id){
|
||||||
|
return $("#"+id)[0].checked
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -26,13 +26,10 @@ namespace SwaggerAntifraude.Controllers
|
|||||||
using (var context = tsGestionAntifraude.NuevoContexto(SoloLectura: true, UseLazyLoadingProxies: false))
|
using (var context = tsGestionAntifraude.NuevoContexto(SoloLectura: true, UseLazyLoadingProxies: false))
|
||||||
{
|
{
|
||||||
//var dbSet = context.Set<VIDA_ADMINISTRATIVA>();
|
//var dbSet = context.Set<VIDA_ADMINISTRATIVA>();
|
||||||
var entities = context.NOMINATRABAJADORCABECERA
|
var entities = context.PERIODOSSILTRA
|
||||||
.Include(x => x.IDPERSONANavigation)
|
.Include(x => x.TRAMOSSILTRA)
|
||||||
|
|
||||||
//.Include(v => v.IDSERVICIOADSCRITONavigation)
|
|
||||||
//.Include(v => v.IDUNIDADADMINISTRATIVANavigation)
|
|
||||||
.AsNoTracking()
|
.AsNoTracking()
|
||||||
.FirstOrDefault(v => v.IDNOMINATRABAJADOR == id);
|
.FirstOrDefault(v => v.IDPERIODOSILTRA == id);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
using bdAntifraude.db;
|
||||||
|
using bdAntifraude.dbcontext;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Serialize.Linq.Serializers;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
|
||||||
|
namespace SwaggerAntifraude.Controllers
|
||||||
|
{
|
||||||
|
[ApiController]
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
public class PERIODOSSILTRAController : GenericoController<PERIODOSSILTRA, int>
|
||||||
|
{
|
||||||
|
public PERIODOSSILTRAController()
|
||||||
|
: base()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[Authorize(Policy = "LecturaPolicy")]
|
||||||
|
[HttpGet("{id}")]
|
||||||
|
public override IActionResult GetById(int id)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var context = tsGestionAntifraude.NuevoContexto(SoloLectura: true, UseLazyLoadingProxies: false))
|
||||||
|
{
|
||||||
|
//var dbSet = context.Set<VIDA_ADMINISTRATIVA>();
|
||||||
|
var entities = context.PERIODOSSILTRA
|
||||||
|
.Include(x => x.TRAMOSSILTRA)
|
||||||
|
.ThenInclude(v => v.IDTIPOTRAMONavigation)
|
||||||
|
.ThenInclude(y => y.IDTIPOTRAMOFICHEROXMLNavigation)
|
||||||
|
.Include(x => x.IDTIPOLIQUIDACIONNavigation)
|
||||||
|
.Include(x => x.IDESTADONavigation)
|
||||||
|
.AsNoTracking()
|
||||||
|
.FirstOrDefault(v => v.IDPERIODOSILTRA == id);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (entities == null)
|
||||||
|
return NotFound();
|
||||||
|
|
||||||
|
return Ok(entities);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return StatusCode(500, $"Error interno del servidor: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -92,7 +92,7 @@ namespace SwaggerAntifraude.Controllers
|
|||||||
.Include(cp => cp.ENFERMEDADES)
|
.Include(cp => cp.ENFERMEDADES)
|
||||||
.ThenInclude(y => y.IDTIPONavigation)
|
.ThenInclude(y => y.IDTIPONavigation)
|
||||||
.Include(cp => cp.MATERNIDADES)
|
.Include(cp => cp.MATERNIDADES)
|
||||||
.Include(cp=>cp.IDOCUPACIONNavigation)
|
.Include(cp => cp.IDOCUPACIONNavigation)
|
||||||
.Include(cp => cp.HUELGAS)
|
.Include(cp => cp.HUELGAS)
|
||||||
.ThenInclude(cpro => cpro.IDNOMINAORIGENDATOSNavigation)
|
.ThenInclude(cpro => cpro.IDNOMINAORIGENDATOSNavigation)
|
||||||
.Include(cp => cp.HUELGAS)
|
.Include(cp => cp.HUELGAS)
|
||||||
@@ -103,21 +103,32 @@ namespace SwaggerAntifraude.Controllers
|
|||||||
.ThenInclude(idnom => idnom.IDCONCEPTONOMINANavigation)
|
.ThenInclude(idnom => idnom.IDCONCEPTONOMINANavigation)
|
||||||
.Include(n => n.NOMINATRABAJADORCABECERA)
|
.Include(n => n.NOMINATRABAJADORCABECERA)
|
||||||
.ThenInclude(pr => pr.IDNOMINANavigation)
|
.ThenInclude(pr => pr.IDNOMINANavigation)
|
||||||
.Include(pue=>pue.OTRASRETRIBUCIONES)
|
.Include(n => n.NOMINATRABAJADORCABECERA)
|
||||||
|
.ThenInclude(pr => pr.NOMINATRABAJADORLINEA)
|
||||||
|
.ThenInclude(y => y.IDCONCEPTOGENERALNavigation)
|
||||||
|
.Include(n => n.NOMINATRABAJADORCABECERA)
|
||||||
|
.ThenInclude(pr => pr.NOMINATRABAJADORPAGOESPECIE)
|
||||||
|
.Include(n => n.NOMINATRABAJADORCABECERA)
|
||||||
|
.ThenInclude(pr => pr.PERIODOSSILTRA)
|
||||||
|
.ThenInclude(y => y.IDCONTRATONavigation)
|
||||||
|
.Include(n => n.NOMINATRABAJADORCABECERA)
|
||||||
|
.ThenInclude(pr => pr.PERIODOSSILTRA)
|
||||||
|
.ThenInclude(y => y.IDESTADONavigation)
|
||||||
|
.Include(pue => pue.OTRASRETRIBUCIONES)
|
||||||
.Include(cp => cp.PERMISOSSINRETRIBUCION)
|
.Include(cp => cp.PERMISOSSINRETRIBUCION)
|
||||||
.ThenInclude(cpro => cpro.IDNOMINAORIGENDEDATOSNavigation)
|
.ThenInclude(cpro => cpro.IDNOMINAORIGENDEDATOSNavigation)
|
||||||
.Include(cp => cp.PERMISOSSINRETRIBUCION)
|
.Include(cp => cp.PERMISOSSINRETRIBUCION)
|
||||||
.ThenInclude(cpro => cpro.IDNOMINAAPLICACIONNavigation)
|
.ThenInclude(cpro => cpro.IDNOMINAAPLICACIONNavigation)
|
||||||
.Include(pue => pue.PRESTAMOS)
|
.Include(pue => pue.PRESTAMOS)
|
||||||
.ThenInclude(pre=>pre.IDNOMINAINICIONavigation)
|
.ThenInclude(pre => pre.IDNOMINAINICIONavigation)
|
||||||
.Include(cp => cp.PUESTOSTRABAJO)
|
.Include(cp => cp.PUESTOSTRABAJO)
|
||||||
.ThenInclude(cpro => cpro.IDTIPOPUESTOTRABAJONavigation)
|
.ThenInclude(cpro => cpro.IDTIPOPUESTOTRABAJONavigation)
|
||||||
.Include(cp => cp.PUESTOSTRABAJO)
|
.Include(cp => cp.PUESTOSTRABAJO)
|
||||||
.ThenInclude(cpro => cpro.IDGRUPOFUNCIONARIONavigation)
|
.ThenInclude(cpro => cpro.IDGRUPOFUNCIONARIONavigation)
|
||||||
.Include(pue=> pue.REDUCCIONDEJORNADA)
|
.Include(pue => pue.REDUCCIONDEJORNADA)
|
||||||
.Include(pue=> pue.RETENCIONJUDICIAL)
|
.Include(pue => pue.RETENCIONJUDICIAL)
|
||||||
.ThenInclude(ret=>ret.IDPLANTILLANavigation)
|
.ThenInclude(ret => ret.IDPLANTILLANavigation)
|
||||||
.Include(pue=>pue.PRODUCTIVIDAD)
|
.Include(pue => pue.PRODUCTIVIDAD)
|
||||||
.Include(pue => pue.IDSITUACIONACTUALIRPFNavigation)
|
.Include(pue => pue.IDSITUACIONACTUALIRPFNavigation)
|
||||||
.ThenInclude(situ => situ.IDDISCAPACIDADNavigation)
|
.ThenInclude(situ => situ.IDDISCAPACIDADNavigation)
|
||||||
.Include(pue => pue.IDSITUACIONACTUALIRPFNavigation)
|
.Include(pue => pue.IDSITUACIONACTUALIRPFNavigation)
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
using bdAntifraude.db;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace SwaggerAntifraude.Controllers
|
||||||
|
{
|
||||||
|
[ApiController]
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
public class TIPOSTRAMOSController : GenericoController<TIPOSTRAMOS, int>
|
||||||
|
{
|
||||||
|
public TIPOSTRAMOSController()
|
||||||
|
: base()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
using bdAntifraude.dbcontext;
|
using bdAntifraude.dbcontext;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -9,11 +10,27 @@ namespace bdAntifraude.db
|
|||||||
{
|
{
|
||||||
public partial class TRAMOSSILTRA
|
public partial class TRAMOSSILTRA
|
||||||
{
|
{
|
||||||
|
[NotMapped]
|
||||||
public object DESCRIPCIONTRAMOXML
|
public object DESCRIPCIONTRAMOXML
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return this.IDPERIODONavigation.IDTIPOLIQUIDACIONNavigation.VALORALFABETICO1;
|
if (this.IDPERIODONavigation != null)
|
||||||
|
{
|
||||||
|
if (this.IDPERIODONavigation.IDTIPOLIQUIDACIONNavigation != null)
|
||||||
|
{
|
||||||
|
return this.IDPERIODONavigation.IDTIPOLIQUIDACIONNavigation.VALORALFABETICO1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user