Compare commits
2 Commits
337898c88f
...
b15a3a5a4f
| Author | SHA1 | Date | |
|---|---|---|---|
| b15a3a5a4f | |||
| dde6047c24 |
@@ -8,7 +8,7 @@
|
|||||||
<link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
|
<link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
|
||||||
<link rel="stylesheet" href="app.css" />
|
<link rel="stylesheet" href="app.css" />
|
||||||
<link rel="stylesheet" href="GestionPersonalWeb.styles.css" />
|
<link rel="stylesheet" href="GestionPersonalWeb.styles.css" />
|
||||||
<link rel="icon" type="image/png" href="favicon.png" />
|
<link rel="icon" type="image/png" href="/Content/imagenes/faviconOAAF.png" />
|
||||||
<HeadOutlet />
|
<HeadOutlet />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet" />
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet" />
|
||||||
<link href="_content/Blazor.Bootstrap/blazor.bootstrap.css" rel="stylesheet" />
|
<link href="_content/Blazor.Bootstrap/blazor.bootstrap.css" rel="stylesheet" />
|
||||||
<link href="_content/Blazor.Bootstrap/Blazor.Bootstrap.bundle.scp.css" rel="stylesheet" />
|
<link href="_content/Blazor.Bootstrap/Blazor.Bootstrap.bundle.scp.css" rel="stylesheet" />
|
||||||
<link rel="icon" type="image/x-icon" href="Content/imagenes/faviconParlamento.ico" />
|
<link rel="icon" type="image/x-icon" href="Content/imagenes/faviconOAAF.png" />
|
||||||
<link href="Content/Site.css?v=0.4" rel="stylesheet" />
|
<link href="Content/Site.css?v=0.4" rel="stylesheet" />
|
||||||
<link href="Content/all.min.css" rel="stylesheet" />
|
<link href="Content/all.min.css" rel="stylesheet" />
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
@using System.Linq.Expressions
|
@using System.Linq.Expressions
|
||||||
@using Serialize.Linq.Serializers
|
@using Serialize.Linq.Serializers
|
||||||
@using System.Net.Http.Headers
|
@using System.Net.Http.Headers
|
||||||
|
@using System.Text
|
||||||
@using bdAntifraude.clases
|
@using bdAntifraude.clases
|
||||||
@using bdAntifraude.db
|
@using bdAntifraude.db
|
||||||
@using System.Reflection
|
@using System.Reflection
|
||||||
@@ -37,7 +38,24 @@
|
|||||||
|
|
||||||
</FooterTemplate>
|
</FooterTemplate>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
<Modal @ref="popupCodigoPostal" Title="Seleccionar localidad" IsVerticallyCentered="true" UseStaticBackdrop="true" CloseOnEscape="false">
|
||||||
|
<BodyTemplate>
|
||||||
|
<p>Varias localidades comparten este mismo código postal, seleccione a la que se refiere</p>
|
||||||
|
<InputSelect @bind-Value="@CPSELECT" class="form-select">
|
||||||
|
@if (lposiblesLocal != null)
|
||||||
|
{
|
||||||
|
@foreach (var enumera in lposiblesLocal)
|
||||||
|
{
|
||||||
|
<option value="@enumera.IDCODIGOPOSTAL">@enumera.CODIGOPOSTAL - @enumera.CODIGOMUNICIPIONavigation.NOMBRE</option>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</InputSelect>
|
||||||
|
</BodyTemplate>
|
||||||
|
<FooterTemplate>
|
||||||
|
<Button @onclick="setCP" Color="ButtonColor.Primary">Aceptar</Button>
|
||||||
|
|
||||||
|
</FooterTemplate>
|
||||||
|
</Modal>
|
||||||
<div class="datos-personales-container mt-3">
|
<div class="datos-personales-container mt-3">
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
@@ -61,152 +79,233 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
<div class="row mb-3">
|
<Tabs @ref=tabsDtsPer style="margin-top:25px; font-size:12px; gap:0;" OnShown="@(args => OnTabShownAsync(args))">
|
||||||
<!-- Otros campos del formulario -->
|
<Tab Title="Datos Identificativos" Name="tabDatosIdentificativos" Active="true">
|
||||||
<div class="col-md-4">
|
<Content>
|
||||||
<label for="txtdni" class="fw-bold">D.N.I.: </label>
|
<div class="row mb-3 mt-4">
|
||||||
<input class="form-control" id="txtdni" @bind-value="@persona.NIF" />
|
<!-- Otros campos del formulario -->
|
||||||
</div>
|
<div class="col-md-4">
|
||||||
<!---->
|
<label for="txtdni" class="fw-bold">D.N.I.<span style="color:red">*</span> : </label>
|
||||||
<div class="col-md-4">
|
<input class="form-control" id="txtdni" @bind-value="@persona.NIF" @onblur="e => ValidarYActualizar(nameof(persona.NIF))" />
|
||||||
<label for="txtsexo" class="fw-bold">Sexo: </label>
|
<div class="validation-message">@GetExternalValidationMessage(nameof(persona.NIF))</div>
|
||||||
<InputSelect @bind-Value="persona.IDSEXO" class="form-select">
|
</div>
|
||||||
<option value="">Seleccionar</option>
|
<!---->
|
||||||
@if (lSexo != null)
|
<div class="col-md-4">
|
||||||
{
|
<label for="txtsexo" class="fw-bold">Sexo<span style="color:red">*</span> : </label>
|
||||||
@foreach (var enumera in lSexo)
|
<select class="form-select @GetCssClass(nameof(persona.IDSEXO))"
|
||||||
{
|
id="sexo"
|
||||||
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
value="@persona.IDSEXO"
|
||||||
}
|
@onchange="e => ValidarSelect(e, nameof(persona.IDSEXO))">
|
||||||
}
|
<option value="">Seleccionar</option>
|
||||||
</InputSelect>
|
@foreach (var gru in ListaSexos)
|
||||||
|
{
|
||||||
|
<option value="@gru.IDENUMERACION">@gru.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!---->
|
<!---->
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<label for="txtTipPer" class="fw-bold">Tipo Personal: </label>
|
<label for="txtTipPer" class="fw-bold">Tipo Personal<span style="color:red">*</span> : </label>
|
||||||
|
<select class="form-select @GetCssClass(nameof(persona.IDTIPO))"
|
||||||
|
id="sexo"
|
||||||
|
value="@persona.IDTIPO"
|
||||||
|
@onchange="e => ValidarSelect(e, nameof(persona.IDTIPO))">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@foreach (var gru in lTiposPers)
|
||||||
|
{
|
||||||
|
<option value="@gru.IDENUMERACION">@gru.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtFeNac" class="fw-bold">Fecha Nacimiento<span style="color:red">*</span> : </label>
|
||||||
|
<input type="date" class="form-control" id="txtFeNac" @bind-value="@persona.FECHANACIMIENTO" @onblur="e => ValidarYActualizar(nameof(persona.FECHANACIMIENTO))" />
|
||||||
|
<div class="validation-message">@GetExternalValidationMessage(nameof(persona.FECHANACIMIENTO))</div>
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtLuNac" class="fw-bold">Lugar Nacimiento: </label>
|
||||||
|
<input class="form-control" id="txtLuNac" @bind-value="@persona.LUGARNACIMIENTO" />
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtCodigoAnt" class="fw-bold">Código Antiguo: </label>
|
||||||
|
<input class="form-control" id="txtCodigoAnt" @bind-value="@persona.CODIGOANTIGUODIPUTADO" />
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtApellidos" class="fw-bold">Apellidos<span style="color:red">*</span> : </label>
|
||||||
|
<input class="form-control" id="txtApellidos" @bind-value="@persona.APELLIDOS" @onblur="e => ValidarYActualizar(nameof(persona.APELLIDOS))" />
|
||||||
|
<div class="validation-message">@GetExternalValidationMessage(nameof(persona.APELLIDOS))</div>
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtNombre" class="fw-bold">Nombre<span style="color:red">*</span> : </label>
|
||||||
|
<input class="form-control" id="txtNombre" @bind-value="@persona.NOMBRE" @onblur="e => ValidarYActualizar(nameof(persona.NOMBRE))" />
|
||||||
|
<div class="validation-message">@GetExternalValidationMessage(nameof(persona.NOMBRE))</div>
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtNivel" class="fw-bold">Nivel<span style="color:red">*</span> : </label>
|
||||||
|
<input class="form-control" id="txtNivel" @bind-value="@persona.NIVEL" @onblur="e => ValidarYActualizar(nameof(persona.NIVEL))" />
|
||||||
|
<div class="validation-message">@GetExternalValidationMessage(nameof(persona.NIVEL))</div>
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtTiCont" class="fw-bold">Tipo Contrato<span style="color:red">*</span> : </label>
|
||||||
|
<select class="form-select @GetCssClass(nameof(persona.IDCONTRATO))"
|
||||||
|
id="sexo"
|
||||||
|
value="@persona.IDCONTRATO"
|
||||||
|
@onchange="e => ValidarSelect(e, nameof(persona.IDCONTRATO))">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@foreach (var gru in lTipoContra)
|
||||||
|
{
|
||||||
|
<option value="@gru.IDCONTRATO">@gru.CODIGO - @gru.DESCRIPCION</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtGrupo" class="fw-bold">Grupo<span style="color:red">*</span> : </label>
|
||||||
|
|
||||||
<InputSelect @bind-Value="persona.IDTIPO" class="form-select">
|
<select class="form-select @GetCssClass(nameof(persona.IDGRUPOFUNCIONARIO))"
|
||||||
<option value="">Seleccionar</option>
|
id="sexo"
|
||||||
@if (lTiposPers != null)
|
value="@persona.IDGRUPOFUNCIONARIO"
|
||||||
{
|
@onchange="e => ValidarSelect(e, nameof(persona.IDGRUPOFUNCIONARIO))">
|
||||||
@foreach (var enumera in lTiposPers)
|
<option value="">Seleccionar</option>
|
||||||
{
|
@foreach (var gru in lGrupo)
|
||||||
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
{
|
||||||
}
|
<option value="@gru.IDENUMERACION">@gru.DESCRIPCION</option>
|
||||||
}
|
}
|
||||||
</InputSelect>
|
</select>
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtCuentaCotizacion" class="fw-bold">Cuenta Cotización<span style="color:red">*</span> : </label>
|
||||||
|
<select class="form-select @GetCssClass(nameof(persona.IDCUENTACOTIZACIONPATRONAL))"
|
||||||
|
id="sexo"
|
||||||
|
value="@persona.IDCUENTACOTIZACIONPATRONAL"
|
||||||
|
@onchange="e => ValidarSelect(e, nameof(persona.IDCUENTACOTIZACIONPATRONAL))">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@foreach (var gru in lCuentaCoti)
|
||||||
|
{
|
||||||
|
<option value="@gru.IDCUENTACOTIZACIONPATRONAL">@gru.CODIGO - @gru.DESCRIPCION </option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<!---->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtDepartamento" class="fw-bold">Departamento<span style="color:red">*</span> : </label>
|
||||||
|
<select class="form-select @GetCssClass(nameof(persona.IDDEPARTAMENTO))"
|
||||||
|
id="sexo"
|
||||||
|
value="@persona.IDDEPARTAMENTO"
|
||||||
|
@onchange="e => ValidarSelect(e, nameof(persona.IDDEPARTAMENTO))">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@foreach (var gru in lCuentaCoti)
|
||||||
|
{
|
||||||
|
<option value="@gru.IDCUENTACOTIZACIONPATRONAL">@gru.CODIGO - @gru.DESCRIPCION </option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<label for="txtDepartamento" class="fw-bold">Ocupación<span style="color:red">*</span> : </label>
|
||||||
|
<select class="form-select @GetCssClass(nameof(persona.IDOCUPACION))"
|
||||||
|
id="sexo"
|
||||||
|
value="@persona.IDOCUPACION"
|
||||||
|
@onchange="e => ValidarSelect(e, nameof(persona.IDOCUPACION))">
|
||||||
|
<option value="">Seleccionar</option>
|
||||||
|
@foreach (var gru in lOcupacion)
|
||||||
|
{
|
||||||
|
<option value="@gru.IDENUMERACION">@gru.DESCRIPCION </option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
@* <input class="form-control" id="txtTipPer" value="@persona.IDTIPONavigation?.DESCRIPCION" /> *@
|
</div>
|
||||||
</div>
|
</Content>
|
||||||
<!---->
|
</Tab>
|
||||||
<div class="col-md-4">
|
<Tab Title="Datos de Contacto" Name="tabDatosContacto" >
|
||||||
<label for="txtFeNac" class="fw-bold">Fecha Nacimiento: </label>
|
<Content>
|
||||||
<input type="date" class="form-control" id="txtFeNac" @bind-value="@persona.FECHANACIMIENTO" />
|
<div class="row mb-3 mt-4">
|
||||||
</div>
|
<div class="col-md-6">
|
||||||
<!---->
|
<label for="txtDireccion" class="fw-bold">Dirección<span style="color:red">*</span> : </label>
|
||||||
<div class="col-md-4">
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.DOMICILIO" @onblur="e => ValidarYActualizar(nameof(persona.DOMICILIO))" />
|
||||||
<label for="txtLuNac" class="fw-bold">Lugar Nacimiento: </label>
|
<div class="validation-message">@GetExternalValidationMessage(nameof(persona.DOMICILIO))</div>
|
||||||
<input class="form-control" id="txtLuNac" @bind-value="@persona.LUGARNACIMIENTO" />
|
</div>
|
||||||
</div>
|
<div class="col-md-6">
|
||||||
<!---->
|
<label for="txtsexo" class="fw-bold">Código postal<span style="color:red">*</span> : </label>
|
||||||
<div class="col-md-4">
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.CODIGOPOSTAL" @onfocusout="@(() => SeleccionarCP(persona.CODIGOPOSTAL, "contacto"))" @onblur="e => ValidarYActualizar(nameof(persona.CODIGOPOSTAL))" />
|
||||||
<label for="txtCodigoAnt" class="fw-bold">Código Antiguo: </label>
|
<div class="validation-message">@GetExternalValidationMessage(nameof(persona.CODIGOPOSTAL))</div>
|
||||||
<input class="form-control" id="txtCodigoAnt" @bind-value="@persona.CODIGOANTIGUODIPUTADO" />
|
</div>
|
||||||
</div>
|
<div class="col-md-6">
|
||||||
<!---->
|
<label for="txtsexo" class="fw-bold">Población: </label>
|
||||||
<div class="col-md-4">
|
<input class="form-control" id="txtDireccion" readonly="readonly" value="@nomMuni" />
|
||||||
<label for="txtApellidos" class="fw-bold">Apellidos: </label>
|
</div>
|
||||||
<input class="form-control" id="txtApellidos" @bind-value="@persona.APELLIDOS" />
|
<div class="col-md-6">
|
||||||
</div>
|
<label for="txtsexo" class="fw-bold">Provincia: </label>
|
||||||
<!---->
|
<input class="form-control" id="txtDireccion" readonly="readonly" value="@nomProv" />
|
||||||
<div class="col-md-4">
|
</div>
|
||||||
<label for="txtNombre" class="fw-bold">Nombre: </label>
|
<div class="col-md-6">
|
||||||
<input class="form-control" id="txtNombre" @bind-value="@persona.NOMBRE" />
|
<label for="txtsexo" class="fw-bold">Telefono 1: </label>
|
||||||
</div>
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.TELEFONO1" />
|
||||||
<!---->
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-6">
|
||||||
<label for="txtNivel" class="fw-bold">Nivel: </label>
|
<label for="txtsexo" class="fw-bold">Telefono 2: </label>
|
||||||
<input class="form-control" id="txtNivel" @bind-value="@persona.NIVEL" />
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.TELEFONO2" />
|
||||||
</div>
|
</div>
|
||||||
<!---->
|
<div class="col-md-6">
|
||||||
<div class="col-md-4">
|
<label for="txtsexo" class="fw-bold">Email: </label>
|
||||||
<label for="txtTiCont" class="fw-bold">Tipo Contrato: </label>
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.CORREOELECTRONICO" />
|
||||||
<InputSelect @bind-Value="persona.IDCONTRATO" class="form-select">
|
</div>
|
||||||
<option value="">Seleccionar</option>
|
<div class="col-md-6">
|
||||||
@if (lTipoContra != null)
|
<label for="txtsexo" class="fw-bold">Puestro Trabajo en Tarjeta: </label>
|
||||||
{
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.PUESTOTRABAJOENTARJETA" />
|
||||||
@foreach (var enumera in lTipoContra)
|
</div>
|
||||||
{
|
</div>
|
||||||
<option value="@enumera.IDCONTRATO"> @enumera.CODIGO - @enumera.DESCRIPCION</option>
|
</Content>
|
||||||
}
|
</Tab>
|
||||||
}
|
<Tab Title="Domicilio Notificaciones" Name="tabDomicilioNotificaciones">
|
||||||
</InputSelect>
|
<Content>
|
||||||
@* <input class="form-control" id="txtTiCont" disabled value="@persona.IDCONTRATONavigation?.DESCRIPCION" /> *@
|
<div class="row mb-3 mt-4">
|
||||||
</div>
|
<div class="col-md-6">
|
||||||
<!---->
|
<label for="txtDireccion" class="fw-bold">Dirección: </label>
|
||||||
<div class="col-md-4">
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.DOMICILIONOTIFICACIONES" />
|
||||||
<label for="txtGrupo" class="fw-bold">Grupo: </label>
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="txtsexo" class="fw-bold">Código postal: </label>
|
||||||
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.CODIGOPOSTALNOTIFICACIONES" @onfocusout="@(() => SeleccionarCP(persona.CODIGOPOSTALNOTIFICACIONES, "Notificaciones"))" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="txtsexo" class="fw-bold">Población: </label>
|
||||||
|
<input class="form-control" id="txtDireccion" readonly="readonly" value="@nomMuniNoti" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="txtsexo" class="fw-bold">Provincia: </label>
|
||||||
|
<input class="form-control" id="txtDireccion" readonly="readonly" value="@nomProvNoti" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="txtsexo" class="fw-bold">Telefono 1: </label>
|
||||||
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.TELEFONO1" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="txtsexo" class="fw-bold">Telefono 2: </label>
|
||||||
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.TELEFONO2" />
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="txtsexo" class="fw-bold">Email: </label>
|
||||||
|
<input class="form-control" id="txtDireccion" @bind-value="@persona.CORREOELECTRONICO" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Content>
|
||||||
|
</Tab>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
<InputSelect @bind-Value="persona.IDGRUPOFUNCIONARIO" class="form-select">
|
|
||||||
<option value="">Seleccionar</option>
|
|
||||||
@if (lGrupo != null)
|
|
||||||
{
|
|
||||||
@foreach (var enumera in lGrupo)
|
|
||||||
{
|
|
||||||
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</InputSelect>
|
|
||||||
|
|
||||||
@* <input class="form-control" id="txtGrupo" disabled value="@persona.IDGRUPOFUNCIONARIONavigation?.DESCRIPCION" /> *@
|
|
||||||
</div>
|
|
||||||
<!---->
|
|
||||||
<div class="col-md-4">
|
|
||||||
<label for="txtCuentaCotizacion" class="fw-bold">Cuenta Cotización: </label>
|
|
||||||
<InputSelect @bind-Value="persona.IDCUENTACOTIZACIONPATRONAL" class="form-select">
|
|
||||||
<option value="">Seleccionar</option>
|
|
||||||
@if (lCuentaCoti != null)
|
|
||||||
{
|
|
||||||
@foreach (var enumera in lCuentaCoti)
|
|
||||||
{
|
|
||||||
<option value="@enumera.IDCUENTACOTIZACIONPATRONAL">@enumera.CODIGO - @enumera.DESCRIPCION</option>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</InputSelect>
|
|
||||||
@* <input class="form-control" id="txtNivel" disabled value="@persona.IDCUENTACOTIZACIONPATRONALNavigation?.CUENTANOMBRE" /> *@
|
|
||||||
</div>
|
|
||||||
<!---->
|
|
||||||
<div class="col-md-4">
|
|
||||||
<label for="txtDepartamento" class="fw-bold">Departamento: </label>
|
|
||||||
<InputSelect @bind-Value="persona.IDDEPARTAMENTO" class="form-select">
|
|
||||||
<option value="">Seleccionar</option>
|
|
||||||
@if (lDepartamento != null)
|
|
||||||
{
|
|
||||||
@foreach (var enumera in lDepartamento)
|
|
||||||
{
|
|
||||||
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</InputSelect>
|
|
||||||
@* <input class="form-control" id="txtDepartamento" disabled value="@persona.IDDEPARTAMENTONavigation?.DESCRIPCION" /> *@
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<label for="txtDepartamento" class="fw-bold">Ocupación: </label>
|
|
||||||
<InputSelect @bind-Value="persona.IDOCUPACION" class="form-select">
|
|
||||||
<option value="">Seleccionar</option>
|
|
||||||
@if (lOcupacion != null)
|
|
||||||
{
|
|
||||||
@foreach (var enumera in lOcupacion)
|
|
||||||
{
|
|
||||||
<option value="@enumera.IDENUMERACION">@enumera.DESCRIPCION</option>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</InputSelect>
|
|
||||||
@* <input class="form-control" id="txtDepartamento" disabled value="@persona.IDDEPARTAMENTONavigation?.DESCRIPCION" /> *@
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" style="max-height:415px; overflow-y:auto; overflow-x:hidden">
|
<div class="row" style="max-height:415px; overflow-y:auto; overflow-x:hidden">
|
||||||
@@ -355,8 +454,9 @@
|
|||||||
private EditContext editContext = new EditContext(persona);
|
private EditContext editContext = new EditContext(persona);
|
||||||
private ValidationMessageStore? messageStore;
|
private ValidationMessageStore? messageStore;
|
||||||
private string errorMessage = "";
|
private string errorMessage = "";
|
||||||
|
private int CPSELECT { get; set; }
|
||||||
private List<ENUMERACIONES> lTiposPers = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> lTiposPers = new List<ENUMERACIONES>();
|
||||||
|
public List<CODIGOSPOSTALES> lposiblesLocal = new List<CODIGOSPOSTALES>();
|
||||||
private List<CONTRATOS> lTipoContra = new List<CONTRATOS>();
|
private List<CONTRATOS> lTipoContra = new List<CONTRATOS>();
|
||||||
private List<ENUMERACIONES> lGrupo = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> lGrupo = new List<ENUMERACIONES>();
|
||||||
private List<CUENTASCOTIZACIONPATRONAL> lCuentaCoti = new List<CUENTASCOTIZACIONPATRONAL>();
|
private List<CUENTASCOTIZACIONPATRONAL> lCuentaCoti = new List<CUENTASCOTIZACIONPATRONAL>();
|
||||||
@@ -365,12 +465,233 @@
|
|||||||
private List<ENUMERACIONES> lSexo = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> lSexo = new List<ENUMERACIONES>();
|
||||||
private Tabs tabsDtsPer { get; set; } = new Tabs();
|
private Tabs tabsDtsPer { get; set; } = new Tabs();
|
||||||
private Modal popupConfirmacion = default!;
|
private Modal popupConfirmacion = default!;
|
||||||
|
private Modal popupCodigoPostal = default!;
|
||||||
|
public string nomProv { get; set; }
|
||||||
|
public string nomMuni { get; set; }
|
||||||
|
public string nomProvNoti { get; set; }
|
||||||
|
public string nomMuniNoti { get; set; }
|
||||||
|
public string origenCP { get; set; }
|
||||||
|
public EventCallback<string> OnValidationStateChanged { get; set; }
|
||||||
List<ToastMessage> mensajes = new List<ToastMessage>();
|
List<ToastMessage> mensajes = new List<ToastMessage>();
|
||||||
|
List<FieldIdentifier> listaIdentificadores = new List<FieldIdentifier>();
|
||||||
|
private void ValidarSelect(ChangeEventArgs e, string fieldName)
|
||||||
|
{
|
||||||
|
if (e?.Value?.ToString() != "")
|
||||||
|
{
|
||||||
|
int value = int.Parse(e?.Value?.ToString()!);
|
||||||
|
|
||||||
|
persona?.GetType()?.GetProperty(fieldName)?.SetValue(persona, value);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
persona?.GetType()?.GetProperty(fieldName)?.SetValue(persona, null);
|
||||||
|
}
|
||||||
|
OnValidationStateChanged.InvokeAsync(fieldName);
|
||||||
|
}
|
||||||
|
private void ValidarYActualizar(string fieldName)
|
||||||
|
{
|
||||||
|
OnValidationStateChanged.InvokeAsync(fieldName);
|
||||||
|
}
|
||||||
|
private void ValidarTodos()
|
||||||
|
{
|
||||||
|
messageStore?.Clear();
|
||||||
|
foreach (var field in persona.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
|
||||||
|
{
|
||||||
|
ValidarCampo(field.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void ValidarCampo(string fieldName)
|
||||||
|
{
|
||||||
|
FieldIdentifier field;
|
||||||
|
var rr = listaIdentificadores.FirstOrDefault(x => x.FieldName == fieldName);
|
||||||
|
if (rr.FieldName != null)
|
||||||
|
{
|
||||||
|
field = rr;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
field = new FieldIdentifier(persona, fieldName);
|
||||||
|
listaIdentificadores.Add(field);
|
||||||
|
}
|
||||||
|
|
||||||
|
messageStore?.Clear(field);
|
||||||
|
|
||||||
|
switch (fieldName)
|
||||||
|
{
|
||||||
|
case nameof(persona.NIF):
|
||||||
|
var nif = persona.NIF;
|
||||||
|
if (string.IsNullOrWhiteSpace(persona.NIF))
|
||||||
|
{
|
||||||
|
messageStore?.Add(field, "El DNI es obligatorio.");
|
||||||
|
}
|
||||||
|
else if (!tsUtilidades.Utilidades.ValidateNif(ref nif))
|
||||||
|
{
|
||||||
|
messageStore?.Add(field, "El DNI es incorrecto.");
|
||||||
|
}
|
||||||
|
persona.NIF = nif;
|
||||||
|
break;
|
||||||
|
case nameof(persona.NOMBRE):
|
||||||
|
if (string.IsNullOrWhiteSpace(persona.NOMBRE))
|
||||||
|
{
|
||||||
|
messageStore?.Add(field, "El Nombre es obligatorio");
|
||||||
|
}
|
||||||
|
else if (persona.NOMBRE.Length > 45)
|
||||||
|
{
|
||||||
|
messageStore?.Add(field, "El Nombre no puede ser mayor de 45 caracteres");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case nameof(persona.APELLIDOS):
|
||||||
|
if (string.IsNullOrWhiteSpace(persona.APELLIDOS))
|
||||||
|
{
|
||||||
|
messageStore?.Add(field, "El Apellido es obligatorio");
|
||||||
|
}
|
||||||
|
else if (persona.APELLIDOS.Length > 100)
|
||||||
|
{
|
||||||
|
messageStore?.Add(field, "El Apellido no puede ser mayor de 45 caracteres");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case nameof(persona.IDSEXO):
|
||||||
|
if (persona.IDSEXO == null)
|
||||||
|
{
|
||||||
|
messageStore?.Add(field, "El Sexo es obligatorio");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fieldName == nameof(persona.CODIGOPOSTAL) && string.IsNullOrWhiteSpace(persona.CODIGOPOSTAL))
|
||||||
|
messageStore?.Add(field, "El código postal en la sección de contacto es obligatorio.");
|
||||||
|
if (fieldName == nameof(persona.CORREOELECTRONICO) &&
|
||||||
|
!string.IsNullOrWhiteSpace(persona.CORREOELECTRONICO) &&
|
||||||
|
!persona.CORREOELECTRONICO.Contains("@"))
|
||||||
|
messageStore?.Add(field, "El correo debe ser válido.");
|
||||||
|
|
||||||
|
|
||||||
|
editContext.NotifyValidationStateChanged();
|
||||||
|
}
|
||||||
|
private async void cerrarPopupCP()
|
||||||
|
{
|
||||||
|
await popupCodigoPostal.HideAsync();
|
||||||
|
}
|
||||||
|
private async Task SeleccionarCP(string cp, string origen)
|
||||||
|
{
|
||||||
|
origenCP = origen;
|
||||||
|
var serializer = new ExpressionSerializer(new Serialize.Linq.Serializers.JsonSerializer());
|
||||||
|
string codigoPostal = cp;
|
||||||
|
Expression<Func<CODIGOSPOSTALES, bool>> filtroPue = x => x.CODIGOPOSTAL == codigoPostal;
|
||||||
|
var PueExpression = serializer.SerializeText(filtroPue);
|
||||||
|
var PuejsonContent = JsonConvert.SerializeObject(new { Expression = PueExpression });
|
||||||
|
var Puecontent = new StringContent(PuejsonContent, Encoding.UTF8, "application/json");
|
||||||
|
var Pueresponse = await cliente.PostAsync("/api/CODIGOSPOSTALES/CodigosPostalesFiltrado", Puecontent);
|
||||||
|
var PueCont = await Pueresponse.Content.ReadAsStringAsync();
|
||||||
|
if (!Pueresponse.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Error al obtener CODIGOSPOSTALES: {Pueresponse.StatusCode}, {PueCont}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
lposiblesLocal = JsonConvert.DeserializeObject<List<CODIGOSPOSTALES>>(PueCont) ?? new List<CODIGOSPOSTALES>();
|
||||||
|
|
||||||
|
if (lposiblesLocal.Count == 0 && cp == "")
|
||||||
|
{
|
||||||
|
if (origenCP == "contacto")
|
||||||
|
{
|
||||||
|
persona.CODIGOPOSTAL = null;
|
||||||
|
persona.CODIGOMUNICIPIO = null;
|
||||||
|
nomMuni = "";
|
||||||
|
nomProv = "";
|
||||||
|
}
|
||||||
|
if (origenCP == "Notificaciones")
|
||||||
|
{
|
||||||
|
persona.CODIGOPOSTALNOTIFICACIONES = null;
|
||||||
|
persona.CODIGOMUNICIPIONOTIFICACION = null;
|
||||||
|
nomMuniNoti = "";
|
||||||
|
nomProvNoti = "";
|
||||||
|
}
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
else if (lposiblesLocal.Count == 0)
|
||||||
|
{
|
||||||
|
if (origenCP == "contacto")
|
||||||
|
{
|
||||||
|
persona.CODIGOPOSTAL = null;
|
||||||
|
persona.CODIGOMUNICIPIO = null;
|
||||||
|
nomMuni = "";
|
||||||
|
nomProv = "";
|
||||||
|
}
|
||||||
|
if (origenCP == "Notificaciones")
|
||||||
|
{
|
||||||
|
persona.CODIGOPOSTALNOTIFICACIONES = null;
|
||||||
|
persona.CODIGOMUNICIPIONOTIFICACION = null;
|
||||||
|
nomMuniNoti = "";
|
||||||
|
nomProvNoti = "";
|
||||||
|
}
|
||||||
|
mensajes.Add(new ToastMessage
|
||||||
|
{
|
||||||
|
Type = ToastType.Danger,
|
||||||
|
|
||||||
|
Message = "Código postal no válido",
|
||||||
|
|
||||||
|
});
|
||||||
|
editContext.NotifyValidationStateChanged();
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
else if (lposiblesLocal.Count == 1)
|
||||||
|
{
|
||||||
|
if (origenCP == "contacto")
|
||||||
|
{
|
||||||
|
persona.CODIGOPOSTAL = lposiblesLocal.First().CODIGOPOSTAL;
|
||||||
|
persona.CODIGOMUNICIPIO = lposiblesLocal.First().CODIGOMUNICIPIO;
|
||||||
|
nomMuni = lposiblesLocal.First().CODIGOMUNICIPIONavigation.NOMBRE;
|
||||||
|
nomProv = lposiblesLocal.First().CODIGOMUNICIPIONavigation.CODIGOPROVINCIANavigation.NOMBRE;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
if (origenCP == "Notificaciones")
|
||||||
|
{
|
||||||
|
persona.CODIGOPOSTALNOTIFICACIONES = lposiblesLocal.First().CODIGOPOSTAL;
|
||||||
|
persona.CODIGOMUNICIPIONOTIFICACION = lposiblesLocal.First().CODIGOMUNICIPIO;
|
||||||
|
nomMuniNoti = lposiblesLocal.First().CODIGOMUNICIPIONavigation.NOMBRE;
|
||||||
|
nomProvNoti = lposiblesLocal.First().CODIGOMUNICIPIONavigation.CODIGOPROVINCIANavigation.NOMBRE;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
await popupCodigoPostal.ShowAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
private void setCP()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
var seleccionado = lposiblesLocal.FirstOrDefault(x => x.IDCODIGOPOSTAL == CPSELECT);
|
||||||
|
if (origenCP == "contacto")
|
||||||
|
{
|
||||||
|
persona.CODIGOPOSTAL = seleccionado.CODIGOPOSTAL;
|
||||||
|
persona.CODIGOMUNICIPIO = seleccionado.CODIGOMUNICIPIO;
|
||||||
|
nomMuni = seleccionado.CODIGOMUNICIPIONavigation.NOMBRE;
|
||||||
|
nomProv = seleccionado.CODIGOMUNICIPIONavigation.CODIGOPROVINCIANavigation.NOMBRE;
|
||||||
|
cerrarPopupCP();
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
if (origenCP == "Notificaciones")
|
||||||
|
{
|
||||||
|
persona.CODIGOPOSTALNOTIFICACIONES = seleccionado.CODIGOPOSTAL;
|
||||||
|
persona.CODIGOMUNICIPIONOTIFICACION = seleccionado.CODIGOMUNICIPIO;
|
||||||
|
nomMuniNoti = seleccionado.CODIGOMUNICIPIONavigation.NOMBRE;
|
||||||
|
nomProvNoti = seleccionado.CODIGOMUNICIPIONavigation.CODIGOPROVINCIANavigation.NOMBRE;
|
||||||
|
cerrarPopupCP();
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
private async Task GuardarPersona()
|
private async Task GuardarPersona()
|
||||||
{
|
{
|
||||||
CerrarConfirmacion();
|
CerrarConfirmacion();
|
||||||
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
|
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
|
||||||
// ValidarTodos();
|
ValidarTodos();
|
||||||
if (!editContext.GetValidationMessages().Any())
|
if (!editContext.GetValidationMessages().Any())
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -445,10 +766,11 @@
|
|||||||
Message = html,
|
Message = html,
|
||||||
|
|
||||||
});
|
});
|
||||||
|
editContext.NotifyValidationStateChanged();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
private async Task CerrarConfirmacion()
|
private async Task CerrarConfirmacion()
|
||||||
{
|
{
|
||||||
await popupConfirmacion.HideAsync();
|
await popupConfirmacion.HideAsync();
|
||||||
@@ -526,6 +848,10 @@
|
|||||||
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.");
|
||||||
lblNombre = persona.NOMBRE + " " + persona.APELLIDOS;
|
lblNombre = persona.NOMBRE + " " + persona.APELLIDOS;
|
||||||
|
nomMuni = persona.NombrePoblacion;
|
||||||
|
nomProv = persona.NombreProvincia;
|
||||||
|
nomMuniNoti = persona.NombrePoblacionNotificaciones;
|
||||||
|
nomProvNoti = persona.NombreProvinciaNotificaciones;
|
||||||
editContext = new EditContext(persona);
|
editContext = new EditContext(persona);
|
||||||
messageStore = new ValidationMessageStore(editContext);
|
messageStore = new ValidationMessageStore(editContext);
|
||||||
|
|
||||||
@@ -581,6 +907,17 @@
|
|||||||
Console.WriteLine($"Error al cargar la foto: {ex.Message}");
|
Console.WriteLine($"Error al cargar la foto: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetCssClass(string fieldName)
|
||||||
|
{
|
||||||
|
if (messageStore == null)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
var field = new FieldIdentifier(persona, fieldName);
|
||||||
|
return messageStore != null && messageStore[field].Any() ? "is-invalid" : string.Empty;
|
||||||
|
}
|
||||||
private async Task ProcesarImagen(InputFileChangeEventArgs e)
|
private async Task ProcesarImagen(InputFileChangeEventArgs e)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -627,6 +964,16 @@
|
|||||||
Console.WriteLine($"Error al procesar la imagen: {ex.Message}");
|
Console.WriteLine($"Error al procesar la imagen: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private string GetExternalValidationMessage(string fieldName)
|
||||||
|
{
|
||||||
|
if (messageStore == null)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
var field = new FieldIdentifier(persona, fieldName);
|
||||||
|
return messageStore[field]?.FirstOrDefault() ?? string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,9 @@
|
|||||||
</button> *@
|
</button> *@
|
||||||
</div>
|
</div>
|
||||||
<div style="display:flex; justify-content:start; gap:15px;width:100%"></div>
|
<div style="display:flex; justify-content:start; gap:15px;width:100%"></div>
|
||||||
|
<button type="button" id="btnVerTodos" @onclick="ToggleVerTodos" title="alternar entre ver personas activas y todas" class="@(verTodosActive ? "btnOAAFAzul" : "btnOAAFBlack")">
|
||||||
|
<i class="fa-solid fa-eye"></i> Ver Todos
|
||||||
|
</button>
|
||||||
<div class="form-group mt-4 mb-4">
|
<div class="form-group mt-4 mb-4">
|
||||||
<input class="form-control" type="text" placeholder="Filtrar..."
|
<input class="form-control" type="text" placeholder="Filtrar..."
|
||||||
@bind-value="Filter" @bind-value:event="oninput" />
|
@bind-value="Filter" @bind-value:event="oninput" />
|
||||||
@@ -255,6 +258,7 @@
|
|||||||
@code {
|
@code {
|
||||||
private List<PERSONAS> listPersonas = new List<PERSONAS>();
|
private List<PERSONAS> listPersonas = new List<PERSONAS>();
|
||||||
private List<PERSONAS> personas = new List<PERSONAS>();
|
private List<PERSONAS> personas = new List<PERSONAS>();
|
||||||
|
private string textBtnTodos { get; set; }
|
||||||
private string _filter = "";
|
private string _filter = "";
|
||||||
public string Filter
|
public string Filter
|
||||||
{
|
{
|
||||||
@@ -268,10 +272,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tamaño de página
|
// Tamaño de página
|
||||||
private int pageSize = 6;
|
private int pageSize = 6;
|
||||||
|
|
||||||
// Calcula el total de páginas basado en la lista filtrada
|
// Calcula el total de páginas basado en la lista filtrada
|
||||||
private int TotalPaginas => (int)Math.Ceiling((double)listPersonas.Count / pageSize);
|
private int TotalPaginas => (int)Math.Ceiling((double)listPersonas.Count / pageSize);
|
||||||
// Índice inicial y final de elementos para la página actual
|
// Índice inicial y final de elementos para la página actual
|
||||||
@@ -311,6 +313,7 @@
|
|||||||
{
|
{
|
||||||
NavigationManager.NavigateTo("/InfoPersonas", forceLoad: true);
|
NavigationManager.NavigateTo("/InfoPersonas", forceLoad: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string HashRed(string id)
|
private string HashRed(string id)
|
||||||
{
|
{
|
||||||
string link = "/infoPers?cl=" + tsUtilidades.crypt.FEncS(
|
string link = "/infoPers?cl=" + tsUtilidades.crypt.FEncS(
|
||||||
@@ -330,39 +333,48 @@
|
|||||||
if (!verTodosActive)
|
if (!verTodosActive)
|
||||||
{
|
{
|
||||||
verTodosActive = true;
|
verTodosActive = true;
|
||||||
var token = UserState.Token;
|
// var token = UserState.Token;
|
||||||
var client = HttpClientFactory.CreateClient();
|
// var client = HttpClientFactory.CreateClient();
|
||||||
client.BaseAddress = new Uri(Utilidades.urlSwagger());
|
// client.BaseAddress = new Uri(Utilidades.urlSwagger());
|
||||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
// client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||||||
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
// client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||||
|
|
||||||
var resultPersonas = await client.GetAsync("/PERSONAS");
|
// var resultPersonas = await client.GetAsync("/PERSONAS");
|
||||||
var resultContent = await resultPersonas.Content.ReadAsStringAsync();
|
// var resultContent = await resultPersonas.Content.ReadAsStringAsync();
|
||||||
personas = JsonConvert.DeserializeObject<List<PERSONAS>>(resultContent)
|
// personas = JsonConvert.DeserializeObject<List<PERSONAS>>(resultContent)
|
||||||
?? new List<PERSONAS>();
|
// ?? new List<PERSONAS>();
|
||||||
|
|
||||||
|
// personas = personas
|
||||||
|
// .OrderBy(x => x.APELLIDOS)
|
||||||
|
// .ThenBy(x => x.NOMBRE)
|
||||||
|
// .ThenByDescending(x => x.FECHAALTA)
|
||||||
|
// .ToList();
|
||||||
|
listPersonas = personas;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
verTodosActive = false;
|
verTodosActive = false;
|
||||||
var token = UserState.Token;
|
// var token = UserState.Token;
|
||||||
var client = HttpClientFactory.CreateClient();
|
// var client = HttpClientFactory.CreateClient();
|
||||||
client.BaseAddress = new Uri(Utilidades.urlSwagger());
|
// client.BaseAddress = new Uri(Utilidades.urlSwagger());
|
||||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
// client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
|
||||||
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
// client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||||
|
|
||||||
var resultPersonas = await client.GetAsync("/api/PERSONAS");
|
// var resultPersonas = await client.GetAsync("/api/PERSONAS");
|
||||||
var resultContent = await resultPersonas.Content.ReadAsStringAsync();
|
// var resultContent = await resultPersonas.Content.ReadAsStringAsync();
|
||||||
personas = JsonConvert.DeserializeObject<List<PERSONAS>>(resultContent)
|
// personas = JsonConvert.DeserializeObject<List<PERSONAS>>(resultContent)
|
||||||
?? new List<PERSONAS>();
|
// ?? new List<PERSONAS>();
|
||||||
|
|
||||||
|
// personas = personas
|
||||||
|
// .OrderBy(x => x.APELLIDOS)
|
||||||
|
// .ThenBy(x => x.NOMBRE)
|
||||||
|
// .ThenByDescending(x => x.FECHAALTA)
|
||||||
|
// .ToList();
|
||||||
|
listPersonas = personas.Where(x => x.FECHABAJA == null).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
personas = personas
|
|
||||||
.OrderBy(x => x.APELLIDOS)
|
|
||||||
.ThenBy(x => x.NOMBRE)
|
|
||||||
.ThenByDescending(x => x.FECHAALTA)
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
listPersonas = personas;
|
|
||||||
UserState.CurrentPage = 1;
|
UserState.CurrentPage = 1;
|
||||||
Filter = "";
|
Filter = "";
|
||||||
}
|
}
|
||||||
@@ -430,7 +442,7 @@
|
|||||||
.ThenByDescending(x => x.FECHAALTA)
|
.ThenByDescending(x => x.FECHAALTA)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
listPersonas = personas;
|
listPersonas = personas.Where(x => x.FECHABAJA == null).ToList();
|
||||||
}
|
}
|
||||||
private async Task btnExportarPDF()
|
private async Task btnExportarPDF()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -536,6 +536,8 @@
|
|||||||
</Tab>
|
</Tab>
|
||||||
<Tab Title="Periodos SILTRA" Name="tabSiltra">
|
<Tab Title="Periodos SILTRA" Name="tabSiltra">
|
||||||
<Content>
|
<Content>
|
||||||
|
<input type="button" value="Nuevo Periodo SILTRA" class="btnOAAFAzul mt-2" onclick='location.replace("@HashRed("0")")' />
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<Grid TItem="PERIODOSSILTRA"
|
<Grid TItem="PERIODOSSILTRA"
|
||||||
Class="table tablaRegPers"
|
Class="table tablaRegPers"
|
||||||
@@ -702,10 +704,22 @@
|
|||||||
}
|
}
|
||||||
private string HashRed(string id)
|
private string HashRed(string id)
|
||||||
{
|
{
|
||||||
|
string idper = Persona.IDPERSONA.ToString();
|
||||||
|
string idNom = Nomina.IDNOMINATRABAJADOR.ToString();
|
||||||
string link = "/PeriodoSiltra?cl=" + tsUtilidades.crypt.FEncS(
|
string link = "/PeriodoSiltra?cl=" + tsUtilidades.crypt.FEncS(
|
||||||
id,
|
id,
|
||||||
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
875421649) + "&idp=" +
|
||||||
|
tsUtilidades.crypt.FEncS(
|
||||||
|
idper,
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
875421649) + "&idn=" +
|
||||||
|
tsUtilidades.crypt.FEncS(
|
||||||
|
idNom,
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
875421649);
|
875421649);
|
||||||
return link;
|
return link;
|
||||||
}
|
}
|
||||||
@@ -729,7 +743,7 @@
|
|||||||
Console.WriteLine($"Error durante la inicialización: {ex.Message}");
|
Console.WriteLine($"Error durante la inicialización: {ex.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
private async Task GuardarNomina()
|
private async Task GuardarNomina()
|
||||||
{
|
{
|
||||||
CerrarConfirmacion();
|
CerrarConfirmacion();
|
||||||
|
|||||||
@@ -21,31 +21,35 @@
|
|||||||
<div class="Cabecera">
|
<div class="Cabecera">
|
||||||
<h6><small><i class="fas fa-user"></i><b> Periodo Siltra</b></small></h6>
|
<h6><small><i class="fas fa-user"></i><b> Periodo Siltra</b></small></h6>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<input type="button" @onclick="GuardarPeriodoSILTRA" class="btnOAAFAzul mb-2" value="Guardar" />
|
||||||
|
</div>
|
||||||
@if (PeriodoSiltra == null)
|
@if (PeriodoSiltra == null)
|
||||||
{
|
{
|
||||||
<div id="cargando" class="loadingFrame">
|
<div id="cargando" class="loadingFrame">
|
||||||
<div class="loadingImg"></div>
|
<div class="loadingImg"></div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<div class="row" style="border:solid 1px black; padding:10px">
|
<div class="row" style="border:solid 1px black; padding:10px">
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Fecha inicio: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Fecha inicio <span style="color:red">*</span>: </label>
|
||||||
<input class="form-control" type="date" @bind-value="@PeriodoSiltra.FECHAINICIO" />
|
<input class="form-control" type="date" @bind-value="@PeriodoSiltra.FECHAINICIO"
|
||||||
|
@onblur="e => ValidarYActualizar(nameof(PeriodoSiltra.FECHAINICIO))" />
|
||||||
|
<div class="validation-message">@GetExternalValidationMessage(nameof(PeriodoSiltra.FECHAINICIO))</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Fecha fin: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Fecha fin <span style="color:red">*</span>: </label>
|
||||||
<input class="form-control" type="date" @bind-value="@PeriodoSiltra.FECHAFIN" />
|
<input class="form-control" type="date" @bind-value="@PeriodoSiltra.FECHAFIN" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Días <span style="color:red">*</span>: </label>
|
||||||
<input class="form-control" @bind-value="@PeriodoSiltra.DIAS" />
|
<input class="form-control" @bind-value="@PeriodoSiltra.DIAS" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<label for="txtsexo" class="fw-bold widthLabel li-height50">Cuenta cotización: </label>
|
<label for="txtsexo" class="fw-bold widthLabel li-height50">Cuenta cotización <span style="color:red">*</span>: </label>
|
||||||
<InputSelect @bind-Value="PeriodoSiltra.IDCUENTACOTIZACIONPATRONAL" class="form-select">
|
<InputSelect @bind-Value="PeriodoSiltra.IDCUENTACOTIZACIONPATRONAL" class="form-select">
|
||||||
<option value="">Seleccionar</option>
|
<option value="">Seleccionar</option>
|
||||||
@if (lCuentaCoti != null)
|
@if (lCuentaCoti != null)
|
||||||
@@ -59,10 +63,10 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<label for="txtsexo" class="fw-bold widthLabel li-height50">Tipo liquidación: </label>
|
<label for="txtsexo" class="fw-bold widthLabel li-height50">Tipo liquidación <span style="color:red">*</span>: </label>
|
||||||
<InputSelect @bind-Value="PeriodoSiltra.IDTIPOLIQUIDACION" class="form-select">
|
<InputSelect @bind-Value="PeriodoSiltra.IDTIPOLIQUIDACION" class="form-select">
|
||||||
<option value="">Seleccionar</option>
|
<option value="">Seleccionar</option>
|
||||||
@if (lTipLiq != null)
|
@if (lTipLiq != null)
|
||||||
{
|
{
|
||||||
@foreach (var enumera in lTipLiq)
|
@foreach (var enumera in lTipLiq)
|
||||||
{
|
{
|
||||||
@@ -72,15 +76,15 @@
|
|||||||
</InputSelect>
|
</InputSelect>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Ocupación: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Ocupación <span style="color:red">*</span>: </label>
|
||||||
<input class="form-control" @bind-value="@PeriodoSiltra.OCUPACION" />
|
<input class="form-control" @bind-value="@PeriodoSiltra.OCUPACION" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">CNAE: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">CNAE <span style="color:red">*</span>: </label>
|
||||||
<input class="form-control" @bind-value="@PeriodoSiltra.CNAE" />
|
<input class="form-control" @bind-value="@PeriodoSiltra.CNAE" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Grupo Tarifa: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Grupo Tarifa <span style="color:red">*</span>: </label>
|
||||||
<input class="form-control" @bind-value="@PeriodoSiltra.GRUPOTARIFA" />
|
<input class="form-control" @bind-value="@PeriodoSiltra.GRUPOTARIFA" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
@@ -97,10 +101,10 @@
|
|||||||
</InputSelect>
|
</InputSelect>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Tipo periodo tramo: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Tipo periodo tramo <span style="color:red">*</span>: </label>
|
||||||
<InputSelect @bind-Value="PeriodoSiltra.IDTIPOPERIODOTRAMO" class="form-select">
|
<InputSelect @bind-Value="PeriodoSiltra.IDTIPOPERIODOTRAMO" class="form-select">
|
||||||
<option value="">Seleccionar</option>
|
<option value="">Seleccionar</option>
|
||||||
@if (lTipPeriodo != null)
|
@if (lTipPeriodo != null)
|
||||||
{
|
{
|
||||||
@foreach (var enumera in lTipPeriodo)
|
@foreach (var enumera in lTipPeriodo)
|
||||||
{
|
{
|
||||||
@@ -110,7 +114,7 @@
|
|||||||
</InputSelect>
|
</InputSelect>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<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 <span style="color:red">*</span>: </label>
|
||||||
<input class="form-control" @bind-value="@PeriodoSiltra.REDUCCIONJORNADA" />
|
<input class="form-control" @bind-value="@PeriodoSiltra.REDUCCIONJORNADA" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
@@ -121,77 +125,140 @@
|
|||||||
<label for="txtNIF" class="fw-bold widthLabel li-height50">Importe IRPF: </label>
|
<label for="txtNIF" class="fw-bold widthLabel li-height50">Importe IRPF: </label>
|
||||||
<input class="form-control" @bind-value="@PeriodoSiltra.IMPORTEIRPF" />
|
<input class="form-control" @bind-value="@PeriodoSiltra.IMPORTEIRPF" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-2">
|
@if (idDesencriptado != "0")
|
||||||
<div style="overflow-x:auto;" class="tablaDesk">
|
{
|
||||||
<Grid TItem="TRAMOSSILTRA"
|
<div class="mt-2">
|
||||||
Class="table tablaRegPers"
|
<input type="button" value="nuevo tramo" class="btnOAAFAzul mb-2 mt-2" />
|
||||||
Data="@lTraSil"
|
<div style="overflow-x:auto;" class="tablaDesk">
|
||||||
AllowFiltering="false"
|
<Grid TItem="TRAMOSSILTRA"
|
||||||
AllowPaging="false"
|
Class="table tablaRegPers"
|
||||||
AllowSorting="true"
|
Data="@lTraSil"
|
||||||
EmptyText="No se han encontrado datos"
|
AllowFiltering="false"
|
||||||
Height="80"
|
AllowPaging="false"
|
||||||
PageSizeSelectorVisible="false"
|
AllowSorting="true"
|
||||||
Responsive="true"
|
EmptyText="No se han encontrado datos"
|
||||||
PaginationItemsTextFormat="{0} - {1} de {2} elementos">
|
Height="80"
|
||||||
<GridColumns>
|
PageSizeSelectorVisible="false"
|
||||||
<GridColumn TItem="TRAMOSSILTRA" HeaderText="Tipo tramo" PropertyName="IDTIPOTRAMONavigation?.DESCRIPCION" FilterButtonCSSClass="hidden" SortKeySelector="item => item.IDTIPOTRAMONavigation.DESCRIPCION">
|
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 (context.IDTIPOTRAMONavigation.MODIFICABLE == false && context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == false)
|
||||||
|
{
|
||||||
|
<p style="color:red; font-weight:bold"> @context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION </p>
|
||||||
|
}
|
||||||
|
@if (context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == true && context.IDTIPOTRAMONavigation.MODIFICABLE == true)
|
||||||
|
{
|
||||||
|
<p style="color:blue; font-weight:bold"> @context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION </p>
|
||||||
|
}
|
||||||
|
@if (context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == false && context.IDTIPOTRAMONavigation.MODIFICABLE == true)
|
||||||
|
{
|
||||||
|
<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>
|
||||||
|
|
||||||
@if (context.IDTIPOTRAMONavigation.MODIFICABLE == false && context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == false)
|
|
||||||
{
|
|
||||||
<p style="color:red; font-weight:bold"> @context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION </p>
|
|
||||||
}
|
|
||||||
@if (context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == true && context.IDTIPOTRAMONavigation.MODIFICABLE == true)
|
|
||||||
{
|
|
||||||
<p style="color:blue; font-weight:bold"> @context.IDTIPOTRAMONavigation?.CODIGO - @context.IDTIPOTRAMONavigation?.DESCRIPCION </p>
|
|
||||||
}
|
|
||||||
@if (context.IDTIPOTRAMONavigation.SOLICITADOALUSUARIO == false && context.IDTIPOTRAMONavigation.MODIFICABLE == true)
|
|
||||||
{
|
|
||||||
<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>
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
private PERIODOSSILTRA PeriodoSiltra { get; set; }
|
private static PERIODOSSILTRA PeriodoSiltra = new PERIODOSSILTRA();
|
||||||
|
public EventCallback<string> OnValidationStateChanged { get; set; }
|
||||||
private List<int> annos = new List<int>();
|
private List<int> annos = new List<int>();
|
||||||
private string cl { get; set; }
|
private string cl { get; set; }
|
||||||
|
private string idn { get; set; }
|
||||||
|
private string idDesencriptado { get; set; }
|
||||||
private List<CUENTASCOTIZACIONPATRONAL> lCuentaCoti = new List<CUENTASCOTIZACIONPATRONAL>();
|
private List<CUENTASCOTIZACIONPATRONAL> lCuentaCoti = new List<CUENTASCOTIZACIONPATRONAL>();
|
||||||
private List<ENUMERACIONES> lTipLiq = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> lTipLiq = new List<ENUMERACIONES>();
|
||||||
private List<ENUMERACIONES> lEstados = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> lEstados = new List<ENUMERACIONES>();
|
||||||
// private List<TIPOSTRAMOS> lTipPeriodo = new List<TIPOSTRAMOS>();
|
// private List<TIPOSTRAMOS> lTipPeriodo = new List<TIPOSTRAMOS>();
|
||||||
private List<ENUMERACIONES> lTipPeriodo = new List<ENUMERACIONES>();
|
private List<ENUMERACIONES> lTipPeriodo = new List<ENUMERACIONES>();
|
||||||
private List<TRAMOSSILTRA> lTraSil = new List<TRAMOSSILTRA>();
|
private List<TRAMOSSILTRA> lTraSil = new List<TRAMOSSILTRA>();
|
||||||
|
private EditContext editContext = new EditContext(PeriodoSiltra);
|
||||||
|
private HttpClient cliente = new HttpClient();
|
||||||
|
private ValidationMessageStore? messageStore;
|
||||||
|
private string errorMessage = "";
|
||||||
|
private Modal popupConfirmacion = default!;
|
||||||
|
List<ToastMessage> mensajes = new List<ToastMessage>();
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
idDesencriptado = tsUtilidades.crypt.FEncS(cl,
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
-875421649);
|
||||||
|
if (idDesencriptado != "0")
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string idnSt = "";
|
||||||
|
if (QueryHelpers.ParseQuery(url.Query).TryGetValue("idn", out var idnValue))
|
||||||
|
{
|
||||||
|
idn = idnValue;
|
||||||
|
idnSt = (tsUtilidades.crypt.FEncS(idn,
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*",
|
||||||
|
-875421649));
|
||||||
|
}
|
||||||
|
|
||||||
|
PeriodoSiltra = new PERIODOSSILTRA();
|
||||||
|
PeriodoSiltra.IDNOMINATRABAJADORCABECERA = Int32.Parse(idnSt);
|
||||||
|
}
|
||||||
|
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");
|
||||||
|
}
|
||||||
private string _filter = "";
|
private string _filter = "";
|
||||||
public string Filter
|
public string Filter
|
||||||
{
|
{
|
||||||
@@ -201,15 +268,57 @@
|
|||||||
if (_filter != value)
|
if (_filter != value)
|
||||||
{
|
{
|
||||||
_filter = value;
|
_filter = value;
|
||||||
// AplicarFiltros();
|
//AplicarFiltros();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private async Task GuardarPeriodoSILTRA()
|
||||||
|
{
|
||||||
|
// CerrarConfirmacion();
|
||||||
|
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
|
||||||
|
// ValidarTodos();
|
||||||
|
if (!editContext.GetValidationMessages().Any())
|
||||||
|
|
||||||
|
{
|
||||||
|
if (PeriodoSiltra.IDPERIODOSILTRA == 0)//Nuevo
|
||||||
|
{
|
||||||
|
|
||||||
|
var response = await Utilidades.NuevoObjeto(cliente, "/api/PERIODOSSILTRA", PeriodoSiltra);
|
||||||
|
string link = "/PeriodoSiltra?cl=" + tsUtilidades.crypt.FEncS(response.IDPERIODOSILTRA.ToString(), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", 875421649);
|
||||||
|
NavigationManager.NavigateTo(link, forceLoad: true);
|
||||||
|
|
||||||
|
}
|
||||||
|
else//Actualizar
|
||||||
|
{
|
||||||
|
var PeSilGuardar = PeriodoSiltra;
|
||||||
|
var responsea = await Utilidades.ActualizarObjeto(cliente, "/api/PERIODOSSILTRA/" + PeSilGuardar.IDPERIODOSILTRA, PeSilGuardar);
|
||||||
|
var url = NavigationManager.ToAbsoluteUri(NavigationManager.Uri);
|
||||||
|
mensajes.Add(new ToastMessage
|
||||||
|
{
|
||||||
|
Type = ToastType.Primary,
|
||||||
|
Message = $"Guardado correctamente.",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var html = "";
|
||||||
|
html += "Revise los errores antes de guardar:";
|
||||||
|
foreach (string m in editContext.GetValidationMessages())
|
||||||
|
{
|
||||||
|
html += "\n" + m + ". ";
|
||||||
|
}
|
||||||
|
|
||||||
|
mensajes.Add(new ToastMessage
|
||||||
|
{
|
||||||
|
Type = ToastType.Danger,
|
||||||
|
|
||||||
|
Message = html,
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
private MarkupString FormatearNombre(string nombre)
|
private MarkupString FormatearNombre(string nombre)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(nombre))
|
if (string.IsNullOrEmpty(nombre))
|
||||||
@@ -225,54 +334,27 @@
|
|||||||
}
|
}
|
||||||
return new MarkupString(nombre);
|
return new MarkupString(nombre);
|
||||||
}
|
}
|
||||||
protected override async Task OnInitializedAsync()
|
private string GetExternalValidationMessage(string fieldName)
|
||||||
{
|
{
|
||||||
|
var field = new FieldIdentifier(PeriodoSiltra, fieldName);
|
||||||
var token = UserState.Token;
|
return messageStore?[field].FirstOrDefault() ?? string.Empty;
|
||||||
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");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
private void ValidarYActualizar(string fieldName)
|
||||||
|
{
|
||||||
|
OnValidationStateChanged.InvokeAsync(fieldName);
|
||||||
|
}
|
||||||
|
private void ValidarSelect(ChangeEventArgs e, string fieldName)
|
||||||
|
{
|
||||||
|
if (e?.Value?.ToString() != "")
|
||||||
|
{
|
||||||
|
int value = int.Parse(e?.Value?.ToString()!);
|
||||||
|
PeriodoSiltra?.GetType()?.GetProperty(fieldName)?.SetValue(PeriodoSiltra, value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PeriodoSiltra?.GetType()?.GetProperty(fieldName)?.SetValue(PeriodoSiltra, null);
|
||||||
|
}
|
||||||
|
OnValidationStateChanged.InvokeAsync(fieldName);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
max-width: 230px;
|
/*max-width: 230px;*/
|
||||||
width:100%;
|
width:100%;
|
||||||
margin-bottom:15px;
|
margin-bottom:15px;
|
||||||
aspect-ratio: 1/1
|
aspect-ratio: 1/1
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
@@ -8,7 +8,7 @@
|
|||||||
<link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
|
<link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
|
||||||
<link rel="stylesheet" href="app.css" />
|
<link rel="stylesheet" href="app.css" />
|
||||||
<link rel="stylesheet" href="RegistroPersonalAN.styles.css" />
|
<link rel="stylesheet" href="RegistroPersonalAN.styles.css" />
|
||||||
<link rel="icon" type="image/png" href="favicon.png" />
|
<link rel="icon" type="image/png" href="~/Content/imagenes/faviconOAAF.png" />
|
||||||
<HeadOutlet />
|
<HeadOutlet />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
@inherits LayoutComponentBase
|
@inherits LayoutComponentBase
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<link rel="icon" type="image/x-icon" href="Content/imagenes/faviconOAAF.png" />
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<HeadContent>
|
||||||
|
<link rel="icon" type="image/x-icon" href="~/Content/imagenes/faviconOAAF.png">
|
||||||
|
</HeadContent>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<div class="">
|
<div class="">
|
||||||
@Body
|
@Body
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet" />
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet" />
|
||||||
<link href="_content/Blazor.Bootstrap/blazor.bootstrap.css" rel="stylesheet" />
|
<link href="_content/Blazor.Bootstrap/blazor.bootstrap.css" rel="stylesheet" />
|
||||||
<link href="_content/Blazor.Bootstrap/Blazor.Bootstrap.bundle.scp.css" rel="stylesheet" />
|
<link href="_content/Blazor.Bootstrap/Blazor.Bootstrap.bundle.scp.css" rel="stylesheet" />
|
||||||
<link rel="icon" type="image/x-icon" href="Content/imagenes/faviconParlamento.ico" />
|
<link rel="icon" type="image/x-icon" href="Content/imagenes/faviconOAAF.png" />
|
||||||
<link href="Content/Site.css?v=0.5" rel="stylesheet" />
|
<link href="Content/Site.css?v=0.5" rel="stylesheet" />
|
||||||
<link href="Content/all.min.css" rel="stylesheet" />
|
<link href="Content/all.min.css" rel="stylesheet" />
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
||||||
@@ -29,7 +29,12 @@
|
|||||||
<script src="Scripts/popper.min.js"></script>
|
<script src="Scripts/popper.min.js"></script>
|
||||||
<script src="Scripts/all.min.js"></script>
|
<script src="Scripts/all.min.js"></script>
|
||||||
<script src="Scripts/Util.js"></script>
|
<script src="Scripts/Util.js"></script>
|
||||||
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
<HeadContent>
|
||||||
|
<link rel="icon" type="image/x-icon" href="~/Content/imagenes/faviconOAAF.png">
|
||||||
|
</HeadContent>
|
||||||
|
|
||||||
@if (UserState.Mostrar == true)
|
@if (UserState.Mostrar == true)
|
||||||
{
|
{
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
@@ -77,5 +77,48 @@ namespace SwaggerAntifraude.Controllers
|
|||||||
return StatusCode(500, $"Error interno del servidor: {ex.Message}");
|
return StatusCode(500, $"Error interno del servidor: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Authorize(Policy = "LecturaPolicy")]
|
||||||
|
[HttpPost("CodigosPostalesFiltrado")] // Cambié a POST ya que estás usando [FromBody]
|
||||||
|
public virtual async Task<IActionResult> CodigosPostalesFiltrado([FromBody] ExpressionWrapper request)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var context = tsGestionAntifraude.NuevoContexto(SoloLectura: true, UseLazyLoadingProxies: false))
|
||||||
|
{
|
||||||
|
// Crear el deserializador
|
||||||
|
var serializer = new ExpressionSerializer(new Serialize.Linq.Serializers.JsonSerializer());
|
||||||
|
|
||||||
|
// Deserializar la expresión
|
||||||
|
var deserializedExpression = serializer.DeserializeText(request.Expression) as Expression<Func<CODIGOSPOSTALES, bool>>;
|
||||||
|
if (deserializedExpression == null)
|
||||||
|
{
|
||||||
|
return BadRequest("La expresión deserializada es nula o incorrecta.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var entities = await context.Set<CODIGOSPOSTALES>()
|
||||||
|
.Where(deserializedExpression)
|
||||||
|
.Include(v => v.CODIGOMUNICIPIONavigation)
|
||||||
|
.ThenInclude(x => x.CODIGOPROVINCIANavigation)// Incluyendo la navegación principal
|
||||||
|
.AsNoTracking()
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
// Verificar si el resultado es vacío
|
||||||
|
if (entities.Count == 0)
|
||||||
|
{
|
||||||
|
Console.WriteLine("La consulta no devolvió resultados.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return Ok(entities);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return StatusCode(500, $"Error interno del servidor: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,9 +111,13 @@ namespace SwaggerAntifraude.Controllers
|
|||||||
.Include(n => n.NOMINATRABAJADORCABECERA)
|
.Include(n => n.NOMINATRABAJADORCABECERA)
|
||||||
.ThenInclude(pr => pr.PERIODOSSILTRA)
|
.ThenInclude(pr => pr.PERIODOSSILTRA)
|
||||||
.ThenInclude(y => y.IDCONTRATONavigation)
|
.ThenInclude(y => y.IDCONTRATONavigation)
|
||||||
.Include(n => n.NOMINATRABAJADORCABECERA)
|
.Include(n => n.NOMINATRABAJADORCABECERA)
|
||||||
.ThenInclude(pr => pr.PERIODOSSILTRA)
|
.ThenInclude(pr => pr.PERIODOSSILTRA)
|
||||||
.ThenInclude(y => y.IDESTADONavigation)
|
.ThenInclude(y => y.IDESTADONavigation)
|
||||||
|
.Include(n => n.NOMINATRABAJADORCABECERA)
|
||||||
|
.ThenInclude(y => y.IDSINDICATO1Navigation)
|
||||||
|
.Include(n => n.NOMINATRABAJADORCABECERA)
|
||||||
|
.ThenInclude(y => y.IDSINDICATO2Navigation)
|
||||||
.Include(pue => pue.OTRASRETRIBUCIONES)
|
.Include(pue => pue.OTRASRETRIBUCIONES)
|
||||||
.Include(cp => cp.PERMISOSSINRETRIBUCION)
|
.Include(cp => cp.PERMISOSSINRETRIBUCION)
|
||||||
.ThenInclude(cpro => cpro.IDNOMINAORIGENDEDATOSNavigation)
|
.ThenInclude(cpro => cpro.IDNOMINAORIGENDEDATOSNavigation)
|
||||||
|
|||||||
@@ -5,15 +5,15 @@
|
|||||||
"Audience": "TuDominio.com",
|
"Audience": "TuDominio.com",
|
||||||
"ExpiresInMinutes": 60
|
"ExpiresInMinutes": 60
|
||||||
},
|
},
|
||||||
//"ConnectionStrings": {
|
|
||||||
// "WriteConnection": "DATA SOURCE=192.168.41.203:21521/XE;PASSWORD=antifraude2022;PERSIST SECURITY INFO=True;USER ID=ANTIFRAUDEDESARROLLO",
|
|
||||||
// "ReadOnlyConnection": "DATA SOURCE=192.168.41.203:21521/XE;PASSWORD=antifraude2022;PERSIST SECURITY INFO=True;USER ID=ANTIFRAUDEDESARROLLO"
|
|
||||||
//},
|
|
||||||
//PRODUCCION
|
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"WriteConnection": "DATA SOURCE=192.168.41.203:21521/XE;PASSWORD=antifraude2022;PERSIST SECURITY INFO=True;USER ID=ANTIFRAUDE",
|
"WriteConnection": "DATA SOURCE=192.168.41.203:21521/XE;PASSWORD=antifraude2022;PERSIST SECURITY INFO=True;USER ID=ANTIFRAUDEDESARROLLO",
|
||||||
"ReadOnlyConnection": "DATA SOURCE=192.168.41.203:21521/XE;PASSWORD=antifraude2022;PERSIST SECURITY INFO=True;USER ID=ANTIFRAUDE"
|
"ReadOnlyConnection": "DATA SOURCE=192.168.41.203:21521/XE;PASSWORD=antifraude2022;PERSIST SECURITY INFO=True;USER ID=ANTIFRAUDEDESARROLLO"
|
||||||
},
|
},
|
||||||
|
//PRODUCCION
|
||||||
|
//"ConnectionStrings": {
|
||||||
|
// "WriteConnection": "DATA SOURCE=192.168.41.203:21521/XE;PASSWORD=antifraude2022;PERSIST SECURITY INFO=True;USER ID=ANTIFRAUDE",
|
||||||
|
// "ReadOnlyConnection": "DATA SOURCE=192.168.41.203:21521/XE;PASSWORD=antifraude2022;PERSIST SECURITY INFO=True;USER ID=ANTIFRAUDE"
|
||||||
|
//},
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"LogLevel": {
|
"LogLevel": {
|
||||||
"Default": "Information",
|
"Default": "Information",
|
||||||
|
|||||||
@@ -130,5 +130,54 @@ namespace bdAntifraude.db
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string NombrePoblacionNotificaciones
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var municipio = this.CODIGOMUNICIPIONOTIFICACIONNavigation;
|
||||||
|
if (municipio == null)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (this.CODIGOPOSTALNOTIFICACIONES != null &&
|
||||||
|
municipio.CODIGOSPOSTALES.Any(x => x.CODIGOPOSTAL == this.CODIGOPOSTALNOTIFICACIONES))
|
||||||
|
{
|
||||||
|
var cp = municipio.CODIGOSPOSTALES
|
||||||
|
.First(x => x.CODIGOPOSTAL == this.CODIGOPOSTALNOTIFICACIONES);
|
||||||
|
|
||||||
|
if (cp.DESCRIPCIONADICIONAL != null)
|
||||||
|
{
|
||||||
|
return municipio.NOMBRE + " (" + cp.DESCRIPCIONADICIONAL + ")";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return municipio.NOMBRE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string NombreProvinciaNotificaciones
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var municipio = this.CODIGOMUNICIPIONOTIFICACIONNavigation;
|
||||||
|
|
||||||
|
if (municipio == null)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return municipio.CODIGOPROVINCIANavigation.NOMBRE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user