Creados Ficheros maestros funcionando (pendientes de validaciones)
This commit is contained in:
@@ -0,0 +1,304 @@
|
||||
@page "/Contrato"
|
||||
@page "/Contrato/{cl}"
|
||||
@using BlazorBootstrap
|
||||
@using GestionPersonalWeb.Components.Pages.FicherosMaestros.TipoPuestoTrabajoComponents
|
||||
@using Newtonsoft.Json
|
||||
@using GestionPersonalWeb.Components.Layout
|
||||
@using Microsoft.AspNetCore.WebUtilities
|
||||
@using GestionPersonalWeb.Components.Pages.InfoPersComponents
|
||||
@using GestionPersonalWeb.Models
|
||||
@using System.Linq.Expressions
|
||||
@using Serialize.Linq.Serializers
|
||||
@using System.Net.Http.Headers
|
||||
@using bdAntifraude.clases
|
||||
@using bdAntifraude.db
|
||||
@using System.Reflection
|
||||
@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage
|
||||
@inject IJSRuntime JSRuntime
|
||||
@inject IJSRuntime JS
|
||||
@rendermode InteractiveServer
|
||||
@inject NavigationManager NavigationManager
|
||||
@inject IHttpClientFactory HttpClientFactory
|
||||
@inject IHttpContextAccessor HttpContextAccessor
|
||||
@inject UserState UserState
|
||||
@inject ProtectedSessionStorage ProtectedSessionStore
|
||||
@inject NavigationManager Navigation
|
||||
|
||||
|
||||
@* <div class="Cabecera">
|
||||
<h6><small><i class="fas fa-user"></i><b> Tipo puesto de trabajo: @puestoTrabajo.DESCRIPCION </b></small></h6>
|
||||
</div> *@
|
||||
<Toasts class="p-3 font-weight-bold" Style="color:white;" AutoHide="true" Delay="4000" Messages="mensajes" Placement="ToastsPlacement.BottomCenter" />
|
||||
<div class="datos-personales-container mt-3">
|
||||
<div>
|
||||
<div>
|
||||
<div><input type="button" class="btnOAAFAzul mb-2" value="Guardar Contrato" @onclick="GuardarPuestoTrabajo" /></div>
|
||||
<div class="" style=" padding: 20px;border:solid 1px grey">
|
||||
<div class="col-md-12 mb-3">
|
||||
<h6><b> Contrato </b></h6>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Codigo: </label>
|
||||
<input class="form-control" id="txtCodigo" @bind-value="@iContrato.CODIGO" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Descripcion: </label>
|
||||
<input class="form-control" id="txtDescripcion" @bind-value="@iContrato.DESCRIPCION" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3" style=" padding: 20px;border:solid 1px grey">
|
||||
<div class="col-md-12 mb-3">
|
||||
<h6><b> Contigencias Comunes </b></h6>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.CONTCOMUNPORCENTEMPR" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.CONTCOMUNIMPORTEEMPR" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.CONTCOMUNPORCENTTRAB" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.CONTCOMUNIMPORTEEMPR" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3" style=" padding: 20px;border:solid 1px grey">
|
||||
<div class="col-md-12 mb-3">
|
||||
<h6><b> Formación Profesional </b></h6>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.FORMACIONPROFPORCENTEMPR" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.FORMACIONPROFIMPORTEEMPR" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.FORMACIONPROFPORCENTTRAB" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.FORMACIONPROFIMPORTETRAB" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3" style=" padding: 20px;border:solid 1px grey">
|
||||
<div class="col-md-12 mb-3">
|
||||
<h6><b> Desempleo </b></h6>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.DESEMPLEOPORCENTAJEEMPRESA" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.DESEMPLEOIMPORTEEMPRESA" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.DESEMPLEOPORCENTAJETRABAJADOR" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.DESEMPLEOIMPORTETRABAJADOR" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3" style=" padding: 20px;border:solid 1px grey">
|
||||
<div class="col-md-12 mb-3">
|
||||
<h6><b> FOGASA </b></h6>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.FOGASAPORCENTAJEEMPRESA" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.FOGASAIMPORTEEMPRESA" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.FOGASAPORCENTAJETRABAJADOR" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.FOGASAIMPORTETRABAJADOR" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-3" style=" padding: 20px;border:solid 1px grey">
|
||||
<div class="col-md-12 mb-3">
|
||||
<h6><b> MEI </b></h6>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.MEIPORCENTAJEEMPRESA" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.MEIIMPORTEEMPRESA" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">% Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.MEIPORCENTAJETRABAJADOR" />
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<label for="txtdni" class="fw-bold">Importe Empresa: </label>
|
||||
<input class="form-control" id="txtdni" @bind-value="@iContrato.MEIIMPORTETRABAJADOR" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public string? cl { get; set; } = "";
|
||||
private static bdAntifraude.db.CONTRATOS iContrato = new CONTRATOS();
|
||||
private EditContext editContext = new EditContext(iContrato);
|
||||
|
||||
private HttpClient cliente = new HttpClient();
|
||||
private ValidationMessageStore? messageStore;
|
||||
private string errorMessage = "";
|
||||
List<ToastMessage> mensajes = new List<ToastMessage>();
|
||||
public bool mostrar { get; set; } = true;
|
||||
public bool mostrarBtn { get; set; } = false;
|
||||
|
||||
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
var url = NavigationManager.ToAbsoluteUri(NavigationManager.Uri);
|
||||
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
|
||||
|
||||
if (QueryHelpers.ParseQuery(url.Query).TryGetValue("cl", out var clValue))
|
||||
{
|
||||
cl = clValue;
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(cl))
|
||||
{
|
||||
iContrato = new CONTRATOS();
|
||||
mostrarBtn = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
string idDesencriptado = Utilidades.Desencriptar(cl);
|
||||
int id = int.Parse(idDesencriptado);
|
||||
|
||||
var response = await cliente.GetAsync($"/api/CONTRATOS/{id}");
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
throw new Exception($"Error al obtener los datos del Contrato. Código: {response.StatusCode}");
|
||||
}
|
||||
var resultContent = await response.Content.ReadAsStringAsync();
|
||||
iContrato = JsonConvert.DeserializeObject<CONTRATOS>(resultContent) ?? throw new Exception("Error al deserializar los datos de la persona.");
|
||||
}
|
||||
editContext = new EditContext(iContrato);
|
||||
messageStore = new ValidationMessageStore(editContext);
|
||||
|
||||
mostrar = false;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
errorMessage = ex.Message;
|
||||
Console.WriteLine($"Error durante la inicialización: {ex.Message}");
|
||||
mostrar = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
mostrar = false;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task GuardarPuestoTrabajo()
|
||||
{
|
||||
cliente = Utilidades.ObtenerCliente(UserState.Token, HttpClientFactory);
|
||||
if (!editContext.GetValidationMessages().Any())
|
||||
{
|
||||
if (iContrato.IDCONTRATO == 0)//Nuevo
|
||||
{
|
||||
var response = await Utilidades.NuevoObjeto(cliente, "/api/CONTRATOS", iContrato, mensajes);
|
||||
if (response != null)
|
||||
{
|
||||
iContrato = response;
|
||||
}
|
||||
else
|
||||
{
|
||||
mensajes.Add(new ToastMessage
|
||||
{
|
||||
Type = ToastType.Success,
|
||||
Message = $"Guardado Correctamente.",
|
||||
});
|
||||
}
|
||||
await InvokeAsync(StateHasChanged);
|
||||
}
|
||||
else//Guardar
|
||||
{
|
||||
var response = await Utilidades.ActualizarObjeto(cliente, "/api/CONTRATOS/" + iContrato.IDCONTRATO, iContrato, mensajes);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mensajes.Add(new ToastMessage
|
||||
{
|
||||
Type = ToastType.Danger,
|
||||
Message = Utilidades.ListaErroresHtml(editContext.GetValidationMessages()),
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user