158 lines
6.1 KiB
Plaintext
158 lines
6.1 KiB
Plaintext
@using HerramientaCASA.Components.Pages.HerramientaCASATabs.DespachoProfesionalComponents
|
|
@using HerramientaCASA.Model
|
|
@using Microsoft.EntityFrameworkCore
|
|
@using bdHerramientaCACOA
|
|
@using bdHerramientaCACOA.HerramientaURBAN
|
|
@using bdHerramientaCACOA.db
|
|
@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage
|
|
@inject ProtectedSessionStorage ProtectedSessionStore
|
|
@inject NavigationManager Navigation
|
|
@inject UserState UserState
|
|
|
|
|
|
@if (listadoSimulaciones.Count > 0)
|
|
{
|
|
<Modal @ref="popupGestionDatos" title="Copiar Despacho de otra Simulación" IsVerticallyCentered="false" UseStaticBackdrop="true" CloseOnEscape="false">
|
|
<BodyTemplate>
|
|
<div class="row">
|
|
<p>
|
|
Esta opción le permite copiar <b>sólo los datos de la pestaña despacho profesional</b> de una simulacion existente.
|
|
</p>
|
|
<p>
|
|
<b>Se reemplazarán los datos</b> del despacho profesional <b>de la simulación actual</b>.<br />Los cambios no se almacenarán hasta que pulse en el botón Guardar/Modificar.
|
|
</p>
|
|
</div>
|
|
<div class="row mt-2 mb-3">
|
|
|
|
<div class="col-12 formatoCampos">
|
|
<label class="tituloLbl mb-2">¿De que simulación desea obtener los datos?</label>
|
|
<InputSelect @bind-Value="@idFicheroObtenido" class="inputForm selectTabla">
|
|
@foreach (var simulacion in listadoSimulaciones)
|
|
{
|
|
<option value="@simulacion.idFicheroJSON">@simulacion.Descripcion</option>
|
|
}
|
|
</InputSelect>
|
|
</div>
|
|
</div>
|
|
</BodyTemplate>
|
|
<FooterTemplate>
|
|
<Button Color="ButtonColor.Secondary" @onclick="cerrarPopupGestionDatos">Cerrar</Button>
|
|
<Button @onclick="clonarDespacho" Color="ButtonColor.Primary">Copiar Despacho</Button>
|
|
</FooterTemplate>
|
|
</Modal>
|
|
|
|
|
|
<div>
|
|
<div>
|
|
<button @onclick="@(() => abrirPopupGestionDatos())" class="btnBlue ms-auto" style="background-color: #65b7c3 !important;"><i class="fas fa-file-import me-2"></i> Copiar despacho de otra simulación</button>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
|
|
@code {
|
|
[Parameter]
|
|
public ClonarDespachoVM datosDespachoClonado { get; set; } = new ClonarDespachoVM();
|
|
|
|
[CascadingParameter]
|
|
public HerramientaCASA.Components.Pages.HerramientaCASATabs.DespachoProfesional _Parent { get; set; }
|
|
|
|
|
|
// CAMBIAR POR LA OTRA PAGINA QUE LLAMA A CLONAR DESPACHO Y CAMBIAR ABAJO EN LA FUNCION
|
|
[CascadingParameter]
|
|
public HerramientaCASA.Components.Pages.HerramientaURBANTabs.DespachoProfesionalURBAN _OtroParent { get; set; }
|
|
|
|
private List<simulaciones> listadoSimulaciones = new List<simulaciones>();
|
|
private int idFicheroObtenido;
|
|
private Modal popupGestionDatos = default!;
|
|
|
|
public tsHerramientasCACOA bd;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
bd = tsHerramientasCACOA.NuevoContexto(SoloLectura: false);
|
|
|
|
cargarListaSimulaciones();
|
|
|
|
idFicheroObtenido = listadoSimulaciones.Count > 0 ? listadoSimulaciones.First().idFicheroJSON : 0;
|
|
}
|
|
|
|
private async void cargarListaSimulaciones()
|
|
{
|
|
|
|
var idUser = await ProtectedSessionStore.GetAsync<int>("idUsuario");
|
|
|
|
listadoSimulaciones = bd.simulaciones.Include(x => x.idTipoSimulacionNavigation).Where(x => x.idCodigo == idUser.Value && (x.idTipoSimulacionNavigation.Codigo == "TIPOHERRAMIENTA.CASA" || x.idTipoSimulacionNavigation.Codigo == "TIPOHERRAMIENTA.URBAND") && x.idSimulacion != datosDespachoClonado.idSimulacion).ToList();
|
|
|
|
}
|
|
public void RefreshState()
|
|
{
|
|
this.StateHasChanged();
|
|
}
|
|
|
|
private async Task cerrarPopupGestionDatos()
|
|
{
|
|
await popupGestionDatos.HideAsync();
|
|
}
|
|
private async Task abrirPopupGestionDatos()
|
|
{
|
|
StateHasChanged();
|
|
await popupGestionDatos.ShowAsync();
|
|
}
|
|
|
|
private void clonarDespacho()
|
|
{
|
|
if (_Parent != null)
|
|
{
|
|
var byteFichero = bd.ficheros.First(x => x.idFichero == idFicheroObtenido).Fichero;
|
|
|
|
string CASAJson = System.Text.Encoding.UTF8.GetString(byteFichero);
|
|
|
|
var casaCopiada = System.Text.Json.JsonSerializer.Deserialize<CASA>(CASAJson);
|
|
|
|
datosDespachoClonado.despachoProf.Trabajadores = casaCopiada.DespachoProfesional.Trabajadores;
|
|
datosDespachoClonado.despachoProf.CostesIndirectos = casaCopiada.DespachoProfesional.CostesIndirectos;
|
|
datosDespachoClonado.despachoProf.CostesPersonal = casaCopiada.DespachoProfesional.CostesPersonal;
|
|
|
|
refrescarPadre();
|
|
StateHasChanged();
|
|
cerrarPopupGestionDatos();
|
|
// Navigation.NavigateTo("/HerramientaCASAS?idClonado=" + tsUtilidades.crypt.FEncS(idFicheroObtenido.ToString(), "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:/-*", 875421649), true);
|
|
|
|
}
|
|
else if (_OtroParent != null)
|
|
{
|
|
|
|
var byteFichero = bd.ficheros.First(x => x.idFichero == idFicheroObtenido).Fichero;
|
|
|
|
string CASAURBANJson = System.Text.Encoding.UTF8.GetString(byteFichero);
|
|
|
|
var casaCopiada = System.Text.Json.JsonSerializer.Deserialize<URBAN>(CASAURBANJson);
|
|
|
|
datosDespachoClonado.despachoProf.Trabajadores = casaCopiada.DespachoProfesional.Trabajadores;
|
|
datosDespachoClonado.despachoProf.CostesIndirectos = casaCopiada.DespachoProfesional.CostesIndirectos;
|
|
datosDespachoClonado.despachoProf.CostesPersonal = casaCopiada.DespachoProfesional.CostesPersonal;
|
|
|
|
|
|
refrescarPadre();
|
|
StateHasChanged();
|
|
cerrarPopupGestionDatos();
|
|
}
|
|
}
|
|
|
|
|
|
private void refrescarPadre()
|
|
{
|
|
if (_Parent != null)
|
|
{
|
|
_Parent.hacerCalculos();
|
|
_Parent.RefreshState();
|
|
}
|
|
else if (_OtroParent != null)
|
|
{
|
|
_OtroParent.hacerCalculos();
|
|
_OtroParent.RefreshState();
|
|
}
|
|
}
|
|
}
|