Fix aggiunta nuova persona di riferimento

This commit is contained in:
2025-08-06 16:00:37 +02:00
parent c93b0c9bec
commit b561405ddc
4 changed files with 69 additions and 9 deletions

View File

@@ -156,19 +156,15 @@ else
{ {
var clie = (await ManageData.GetTable<AnagClie>(x => x.CodAnag.Equals(CodContact))).Last(); var clie = (await ManageData.GetTable<AnagClie>(x => x.CodAnag.Equals(CodContact))).Last();
Anag = Mapper.Map<ContactDTO>(clie); Anag = Mapper.Map<ContactDTO>(clie);
var pers = await ManageData.GetTable<VtbCliePersRif>(x => x.CodAnag.Equals(Anag.CodContact));
PersRif = Mapper.Map<List<PersRifDTO>>(pers);
} }
else else
{ {
var pros = (await ManageData.GetTable<PtbPros>(x => x.CodPpro.Equals(CodContact))).Last(); var pros = (await ManageData.GetTable<PtbPros>(x => x.CodPpro.Equals(CodContact))).Last();
Anag = Mapper.Map<ContactDTO>(pros); Anag = Mapper.Map<ContactDTO>(pros);
var pers = await ManageData.GetTable<PtbProsRif>(x => x.CodPpro.Equals(Anag.CodContact));
PersRif = Mapper.Map<List<PersRifDTO>>(pers);
} }
await LoadPersRif();
Commesse = await ManageData.GetTable<JtbComt>(x => x.CodAnag != null && x.CodAnag.Equals(CodContact)); Commesse = await ManageData.GetTable<JtbComt>(x => x.CodAnag != null && x.CodAnag.Equals(CodContact));
if (Anag.CodVage != null) if (Anag.CodVage != null)
@@ -180,9 +176,28 @@ else
StateHasChanged(); StateHasChanged();
} }
private async Task LoadPersRif()
{
if (IsContact)
{
var pers = await ManageData.GetTable<VtbCliePersRif>(x => x.CodAnag.Equals(Anag.CodContact));
PersRif = Mapper.Map<List<PersRifDTO>>(pers);
}
else
{
var pers = await ManageData.GetTable<PtbProsRif>(x => x.CodPpro.Equals(Anag.CodContact));
PersRif = Mapper.Map<List<PersRifDTO>>(pers);
}
}
private async Task OpenPersRifForm() private async Task OpenPersRifForm()
{ {
var result = await ModalHelpers.OpenPersRifForm(Dialog, null); var result = await ModalHelpers.OpenPersRifForm(Dialog, null, Anag, PersRif);
if (result is { Canceled: false, Data: not null } && result.Data.GetType() == typeof(PersRifDTO))
{
await LoadPersRif();
}
} }
private async Task OpenUserForm(ContactDTO anag) private async Task OpenUserForm(ContactDTO anag)

View File

@@ -112,6 +112,9 @@
[CascadingParameter] private IMudDialogInstance MudDialog { get; set; } [CascadingParameter] private IMudDialogInstance MudDialog { get; set; }
[Parameter] public PersRifDTO? OriginalModel { get; set; } [Parameter] public PersRifDTO? OriginalModel { get; set; }
[Parameter] public ContactDTO? ContactModel { get; set; }
[Parameter] public List<PersRifDTO>? PersRifList { get; set; }
private PersRifDTO PersRifModel { get; set; } = new(); private PersRifDTO PersRifModel { get; set; } = new();
private bool IsNew => OriginalModel is null; private bool IsNew => OriginalModel is null;
@@ -137,6 +140,42 @@
VisibleOverlay = true; VisibleOverlay = true;
StateHasChanged(); StateHasChanged();
if (ContactModel != null && PersRifList != null)
{
PersRifList.Add(PersRifModel);
var requestDto = new CRMCreateContactRequestDTO
{
TipoAnag = ContactModel.IsContact ? "C" : "P",
Cliente = ContactModel,
PersRif = PersRifList,
CodVage = ContactModel.CodVage,
CodAnag = ContactModel.CodContact
};
var response = await IntegryApiService.SaveContact(requestDto);
switch (response)
{
case null:
VisibleOverlay = false;
StateHasChanged();
return;
case {AnagClie: null, PtbPros: not null}:
await ManageData.InsertOrUpdate(response.PtbPros);
await ManageData.InsertOrUpdate(response.PtbProsRif);
break;
case { AnagClie: not null, PtbPros: null }:
await ManageData.InsertOrUpdate(response.AnagClie);
await ManageData.InsertOrUpdate(response.VtbCliePersRif);
break;
default:
VisibleOverlay = false;
StateHasChanged();
return;
}
}
SuccessAnimation = true; SuccessAnimation = true;
StateHasChanged(); StateHasChanged();

View File

@@ -4,6 +4,9 @@ namespace salesbook.Shared.Core.Dto;
public class CRMCreateContactRequestDTO public class CRMCreateContactRequestDTO
{ {
[JsonPropertyName("codAnag")]
public string? CodAnag { get; set; }
[JsonPropertyName("codVdes")] [JsonPropertyName("codVdes")]
public string? CodVdes { get; set; } public string? CodVdes { get; set; }

View File

@@ -45,13 +45,16 @@ public class ModalHelpers
return await modal.Result; return await modal.Result;
} }
public static async Task<DialogResult?> OpenPersRifForm(IDialogService dialog, PersRifDTO? persRif) public static async Task<DialogResult?> OpenPersRifForm(IDialogService dialog, PersRifDTO? persRif,
ContactDTO? contactModel = null, List<PersRifDTO>? persRifList = null)
{ {
var modal = await dialog.ShowAsync<PersRifForm>( var modal = await dialog.ShowAsync<PersRifForm>(
"Pers rif form", "Pers rif form",
new DialogParameters<PersRifForm> new DialogParameters<PersRifForm>
{ {
{ x => x.OriginalModel, persRif } { x => x.OriginalModel, persRif },
{ x => x.ContactModel, contactModel},
{ x => x.PersRifList, persRifList }
}, },
new DialogOptions new DialogOptions
{ {