Migliorati form Cliente e PersonaRif

This commit is contained in:
2025-07-16 17:24:41 +02:00
parent 8c521dc81e
commit b2064ad71e
14 changed files with 381 additions and 94 deletions

View File

@@ -1,12 +1,17 @@
@page "/User/{CodAnag}"
@page "/User/{CodContact}/{IsContact:bool}"
@attribute [Authorize]
@using AutoMapper
@using salesbook.Shared.Components.Layout
@using salesbook.Shared.Core.Entity
@using salesbook.Shared.Core.Interface
@using salesbook.Shared.Components.Layout.Spinner
@using salesbook.Shared.Core.Dto
@using salesbook.Shared.Components.SingleElements
@inject IManageDataService ManageData
@inject IMapper Mapper
@inject IDialogService Dialog
<HeaderLayout BackTo="Indietro" Back="true" BackOnTop="true" Title="" ShowProfile="false"/>
<HeaderLayout BackTo="Indietro" LabelSave="Modifica" OnSave="() => OpenUserForm(Anag)" Back="true" BackOnTop="true" Title="" ShowProfile="false" />
@if (IsLoading)
{
@@ -45,50 +50,42 @@ else
</div>
}
<div>
<span class="info-title">P. IVA</span>
<span class="info-text">
@if (string.IsNullOrEmpty(Anag.PartIva))
{
@("Nessuna partita iva configurata")
}
else
{
@if (!string.IsNullOrEmpty(Anag.PartIva))
{
<div>
<span class="info-title">P. IVA</span>
<span class="info-text">
@Anag.PartIva
}
</span>
</div>
</span>
</div>
}
</div>
<div class="section-personal-info">
<div>
<span class="info-title">E-mail</span>
<span class="info-text">
@if (string.IsNullOrEmpty(Anag.EMail))
{
@("Nessuna mail configurata")
}
else
{
@if (!string.IsNullOrEmpty(Anag.EMail))
{
<div>
<span class="info-title">E-mail</span>
<span class="info-text">
@Anag.EMail
}
</span>
</div>
</span>
</div>
}
</div>
</div>
</div>
<MudTabs Elevation="2" Rounded="true" PanelClass="pt-6" Style="width: 100%" Centered="true">
<MudTabs TabPanelClass="custom-tab-panel" Elevation="2" Rounded="true" PanelClass="pt-2" Centered="true">
<MudTabPanel Text="Contatti">
@if (PersRif is { Count: > 0 })
{
<div class="container-pers-rif">
<div style="margin-top: 1rem;" class="container-pers-rif">
<Virtualize Items="PersRif" Context="person">
@{
var index = PersRif.IndexOf(person);
var isLast = index == PersRif.Count - 1;
}
<ContactCard Contact="person" />
<ContactCard Contact="person"/>
@if (!isLast)
{
<div class="divider"></div>
@@ -101,25 +98,34 @@ else
<MudButton Class="button-settings infoText"
FullWidth="true"
Size="Size.Medium"
OnClick="OpenPersRifForm"
Variant="Variant.Outlined">
Aggiungi contatto
</MudButton>
</div>
</MudTabPanel>
<MudTabPanel Text="Commesse">
<Virtualize Items="Commesse" Context="commessa">
<CommessaCard Commessa="commessa" />
</Virtualize>
@if (Commesse.IsNullOrEmpty())
{
<NoDataAvailable Text="Nessuna commessa presente"/>
}
else
{
<Virtualize Items="Commesse" Context="commessa">
<CommessaCard Commessa="commessa"/>
</Virtualize>
}
</MudTabPanel>
</MudTabs>
</div>
}
@code {
[Parameter] public string CodAnag { get; set; }
[Parameter] public string CodContact { get; set; }
[Parameter] public bool IsContact { get; set; }
private AnagClie Anag { get; set; } = new();
private List<VtbCliePersRif>? PersRif { get; set; }
private ContactDTO Anag { get; set; } = new();
private List<PersRifDTO>? PersRif { get; set; }
private List<JtbComt> Commesse { get; set; }
private bool IsLoading { get; set; } = true;
@@ -131,12 +137,37 @@ else
private async Task LoadData()
{
Anag = (await ManageData.GetTable<AnagClie>(x => x.CodAnag.Equals(CodAnag))).Last();
PersRif = await ManageData.GetTable<VtbCliePersRif>(x => x.CodAnag.Equals(Anag.CodAnag));
Commesse = await ManageData.GetTable<JtbComt>(x => x.CodAnag != null && x.CodAnag.Equals(CodAnag));
if (IsContact)
{
var clie = (await ManageData.GetTable<AnagClie>(x => x.CodAnag.Equals(CodContact))).Last();
Anag = Mapper.Map<ContactDTO>(clie);
var pers = await ManageData.GetTable<VtbCliePersRif>(x => x.CodAnag.Equals(Anag.CodContact));
PersRif = Mapper.Map<List<PersRifDTO>>(pers);
}
else
{
var pros = (await ManageData.GetTable<PtbPros>(x => x.CodPpro.Equals(CodContact))).Last();
Anag = Mapper.Map<ContactDTO>(pros);
var pers = await ManageData.GetTable<PtbProsRif>(x => x.CodPpro.Equals(Anag.CodContact));
PersRif = Mapper.Map<List<PersRifDTO>>(pers);
}
Commesse = await ManageData.GetTable<JtbComt>(x => x.CodAnag != null && x.CodAnag.Equals(CodContact));
IsLoading = false;
StateHasChanged();
}
private async Task OpenPersRifForm()
{
var result = await ModalHelpers.OpenPersRifForm(Dialog, null);
}
private async Task OpenUserForm(ContactDTO anag)
{
var result = await ModalHelpers.OpenUserForm(Dialog, anag);
}
}