ComuneIstat
This commit is contained in:
Binary file not shown.
@ -40,4 +40,4 @@ public enum ClienteStato
|
|||||||
Cliente = 0,
|
Cliente = 0,
|
||||||
[Description("Potenziale cliente")]
|
[Description("Potenziale cliente")]
|
||||||
Lead = 99
|
Lead = 99
|
||||||
}
|
}
|
||||||
13
StandManager.Domain/Entita/ComuneIstat.cs
Normal file
13
StandManager.Domain/Entita/ComuneIstat.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using StandManager.Domain.Entita.Base;
|
||||||
|
|
||||||
|
namespace StandManager.Domain.Entita;
|
||||||
|
|
||||||
|
public class ComuneIstat : EntitaBase
|
||||||
|
{
|
||||||
|
public string Istat { get; set; }
|
||||||
|
public string Comune { get; set; }
|
||||||
|
public string Regione { get; set; }
|
||||||
|
public string Provincia { get; set; }
|
||||||
|
public string Prefisso { get; set; }
|
||||||
|
public string CodFisco { get; set; }
|
||||||
|
}
|
||||||
@ -24,6 +24,8 @@ public class Utente : EntitaBase
|
|||||||
[ForeignKey(nameof(Capoarea))]
|
[ForeignKey(nameof(Capoarea))]
|
||||||
public Guid? CapoareaId { get; set; }
|
public Guid? CapoareaId { get; set; }
|
||||||
public Utente Capoarea { get; set; }
|
public Utente Capoarea { get; set; }
|
||||||
|
public bool IsCapoarea { get; set; }
|
||||||
|
public string Info => $"{Nome} {Cognome}";
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -12,6 +12,7 @@ public class StandManagerDbContext : OAServiceContext
|
|||||||
|
|
||||||
|
|
||||||
public DbSet<Cliente> Cliente { get; set; }
|
public DbSet<Cliente> Cliente { get; set; }
|
||||||
|
public DbSet<ComuneIstat> ComuneIstat { get; set; }
|
||||||
public DbSet<Destinazione> Destinazione { get; set; }
|
public DbSet<Destinazione> Destinazione { get; set; }
|
||||||
public DbSet<Evento> Evento { get; set; }
|
public DbSet<Evento> Evento { get; set; }
|
||||||
public DbSet<InvitoEvento> InvitoEvento { get; set; }
|
public DbSet<InvitoEvento> InvitoEvento { get; set; }
|
||||||
|
|||||||
1028
StandManager.Infrastructure/Migrations/20251219074430_UtenteECapoarea.Designer.cs
generated
Normal file
1028
StandManager.Infrastructure/Migrations/20251219074430_UtenteECapoarea.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,29 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace StandManager.Infrastructure.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class UtenteECapoarea : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<bool>(
|
||||||
|
name: "IsCapoarea",
|
||||||
|
table: "Utente",
|
||||||
|
type: "bit",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "IsCapoarea",
|
||||||
|
table: "Utente");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1097
StandManager.Infrastructure/Migrations/20251219093752_ComuneIstat.Designer.cs
generated
Normal file
1097
StandManager.Infrastructure/Migrations/20251219093752_ComuneIstat.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,64 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace StandManager.Infrastructure.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class ComuneIstat : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.CreateTable(
|
||||||
|
name: "ComuneIstat",
|
||||||
|
columns: table => new
|
||||||
|
{
|
||||||
|
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||||
|
Istat = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
Comune = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
Regione = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
Provincia = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
Prefisso = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
CodFisco = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||||
|
DataCreazione = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
DataModifica = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
Eliminato = table.Column<bool>(type: "bit", nullable: false),
|
||||||
|
IdUtenteCreazione = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
IdUtenteModifica = table.Column<Guid>(type: "uniqueidentifier", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_ComuneIstat", x => x.Id);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_ComuneIstat_Utente_IdUtenteCreazione",
|
||||||
|
column: x => x.IdUtenteCreazione,
|
||||||
|
principalTable: "Utente",
|
||||||
|
principalColumn: "Id");
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_ComuneIstat_Utente_IdUtenteModifica",
|
||||||
|
column: x => x.IdUtenteModifica,
|
||||||
|
principalTable: "Utente",
|
||||||
|
principalColumn: "Id");
|
||||||
|
});
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_ComuneIstat_IdUtenteCreazione",
|
||||||
|
table: "ComuneIstat",
|
||||||
|
column: "IdUtenteCreazione");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_ComuneIstat_IdUtenteModifica",
|
||||||
|
table: "ComuneIstat",
|
||||||
|
column: "IdUtenteModifica");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "ComuneIstat");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -102,6 +102,60 @@ namespace StandManager.Infrastructure.Migrations
|
|||||||
b.ToTable("Cliente");
|
b.ToTable("Cliente");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("StandManager.Domain.Entita.ComuneIstat", b =>
|
||||||
|
{
|
||||||
|
b.Property<Guid>("Id")
|
||||||
|
.ValueGeneratedOnAdd()
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<string>("CodFisco")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("Comune")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DataCreazione")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DataModifica")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<bool>("Eliminato")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
|
b.Property<Guid?>("IdUtenteCreazione")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<Guid?>("IdUtenteModifica")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<string>("Istat")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("Prefisso")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("Provincia")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<string>("Regione")
|
||||||
|
.IsRequired()
|
||||||
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.HasKey("Id");
|
||||||
|
|
||||||
|
b.HasIndex("IdUtenteCreazione");
|
||||||
|
|
||||||
|
b.HasIndex("IdUtenteModifica");
|
||||||
|
|
||||||
|
b.ToTable("ComuneIstat");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b =>
|
modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
@ -670,6 +724,9 @@ namespace StandManager.Infrastructure.Migrations
|
|||||||
b.Property<Guid?>("IdUtenteModifica")
|
b.Property<Guid?>("IdUtenteModifica")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<bool>("IsCapoarea")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
b.Property<string>("Nome")
|
b.Property<string>("Nome")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("nvarchar(max)");
|
.HasColumnType("nvarchar(max)");
|
||||||
@ -731,6 +788,21 @@ namespace StandManager.Infrastructure.Migrations
|
|||||||
b.Navigation("UtenteModifica");
|
b.Navigation("UtenteModifica");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("StandManager.Domain.Entita.ComuneIstat", b =>
|
||||||
|
{
|
||||||
|
b.HasOne("StandManager.Domain.Entita.Utente", "UtenteCreazione")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("IdUtenteCreazione");
|
||||||
|
|
||||||
|
b.HasOne("StandManager.Domain.Entita.Utente", "UtenteModifica")
|
||||||
|
.WithMany()
|
||||||
|
.HasForeignKey("IdUtenteModifica");
|
||||||
|
|
||||||
|
b.Navigation("UtenteCreazione");
|
||||||
|
|
||||||
|
b.Navigation("UtenteModifica");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b =>
|
modelBuilder.Entity("StandManager.Domain.Entita.Destinazione", b =>
|
||||||
{
|
{
|
||||||
b.HasOne("StandManager.Domain.Entita.Utente", "Agente")
|
b.HasOne("StandManager.Domain.Entita.Utente", "Agente")
|
||||||
|
|||||||
@ -5,5 +5,5 @@ namespace StandManager.Service.Interfaces;
|
|||||||
|
|
||||||
public interface IUtenteService : ITService<Utente>
|
public interface IUtenteService : ITService<Utente>
|
||||||
{
|
{
|
||||||
|
Task<List<Utente>> ListaCapoarea();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
using OAService.Service.Repository;
|
using OAService.Service.Repository;
|
||||||
using OAService.Service.Servizi.Implementazioni;
|
using OAService.Service.Servizi.Implementazioni;
|
||||||
using StandManager.Domain.Entita;
|
using StandManager.Domain.Entita;
|
||||||
@ -14,4 +15,13 @@ public class UtenteService : TService<Utente>, IUtenteService
|
|||||||
{
|
{
|
||||||
_unitOfWork = unitOfWork;
|
_unitOfWork = unitOfWork;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<List<Utente>> ListaCapoarea()
|
||||||
|
{
|
||||||
|
return (await _unitOfWork.UtenteRepository.RicercaQueryable(x => x.IsCapoarea, skip:0, take:0)).ToList();
|
||||||
|
/*return (await _unitOfWork.UtenteRepository.RicercaQueryable(x =>
|
||||||
|
x.Ruolo.Permessi.Any(y => y.Feature.Type == FeatureType.Capoarea || y.Feature.Type == FeatureType.AdminGlobal),
|
||||||
|
includi:x => x.Include(y => y.Ruolo).ThenInclude(z => z.Permessi).ThenInclude(u => u.Feature),
|
||||||
|
skip: 0, take: 0)).ToList();*/
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,10 +37,11 @@
|
|||||||
AllowPaging="true" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true"
|
AllowPaging="true" PagerHorizontalAlign="HorizontalAlign.Left" ShowPagingSummary="true"
|
||||||
Data="@clienti" LogicalFilterOperator="LogicalFilterOperator.Or" SelectionMode="DataGridSelectionMode.Single">
|
Data="@clienti" LogicalFilterOperator="LogicalFilterOperator.Or" SelectionMode="DataGridSelectionMode.Single">
|
||||||
<Columns>
|
<Columns>
|
||||||
<RadzenDataGridColumn Property="@nameof(ClienteViewModel.Id)" Filterable="false" Title="ID" Width="200px" TextAlign="TextAlign.Center" />
|
<RadzenDataGridColumn Property="@nameof(Cliente.Id)" Filterable="false" Title="ID" Width="200px" TextAlign="TextAlign.Center" />
|
||||||
<RadzenDataGridColumn Property="@nameof(ClienteViewModel.RagioneSociale)" Title="Ragione sociale" Width="250px" />
|
<RadzenDataGridColumn Property="@nameof(Cliente.RagioneSociale)" Title="Ragione sociale" Width="250px" />
|
||||||
<RadzenDataGridColumn Property="@nameof(ClienteViewModel.PartitaIva)" Title="Partita IVA" Width="250px" />
|
<RadzenDataGridColumn Property="@nameof(Cliente.PartitaIva)" Title="Partita IVA" Width="250px" />
|
||||||
<RadzenDataGridColumn Property="@nameof(ClienteViewModel.NomeAgente)" Title="Agente" Width="250px" />
|
<RadzenDataGridColumn Property="Agente.Info" Title="Agente" Width="250px" />
|
||||||
|
<RadzenDataGridColumn Property="Capoarea.Info" Title="Capoarea" Width="250px" />
|
||||||
|
|
||||||
<RadzenDataGridColumn Context="cliente" Filterable="false" Sortable="false" TextAlign="TextAlign.Right" Width="250px">
|
<RadzenDataGridColumn Context="cliente" Filterable="false" Sortable="false" TextAlign="TextAlign.Right" Width="250px">
|
||||||
<Template Context="cliente">
|
<Template Context="cliente">
|
||||||
@ -59,8 +60,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
List<ClienteViewModel> clienti;
|
List<Cliente> clienti;
|
||||||
RadzenDataGrid<ClienteViewModel> clientiGrid;
|
RadzenDataGrid<Cliente> clientiGrid;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Carica l’elenco dei clienti non eliminati, includendo l’agente,
|
/// Carica l’elenco dei clienti non eliminati, includendo l’agente,
|
||||||
@ -72,9 +73,9 @@
|
|||||||
|
|
||||||
clienti = (await _managerService.ClienteService.RicercaQueryable(
|
clienti = (await _managerService.ClienteService.RicercaQueryable(
|
||||||
x => x.Eliminato == false,
|
x => x.Eliminato == false,
|
||||||
includi: x => x.Include(y => y.Agente),
|
includi: x => x.Include(y => y.Agente).Include(y => y.Capoarea),
|
||||||
ordinamento: x => x.OrderBy(y => y.RagioneSociale)))
|
ordinamento: x => x.OrderBy(y => y.RagioneSociale)))
|
||||||
.Select(x => (ClienteViewModel)x).ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -97,7 +98,7 @@
|
|||||||
{
|
{
|
||||||
await _managerService.ClienteService.Elimina(cliente.Id, await MembershipUtils.GetUserId(auth));
|
await _managerService.ClienteService.Elimina(cliente.Id, await MembershipUtils.GetUserId(auth));
|
||||||
clienti = (await _managerService.ClienteService.RicercaQueryable(x => x.Eliminato == false, includi: x => x.Include(y => y.Agente)))
|
clienti = (await _managerService.ClienteService.RicercaQueryable(x => x.Eliminato == false, includi: x => x.Include(y => y.Agente)))
|
||||||
.Select(x => (ClienteViewModel)x).ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -38,20 +38,48 @@
|
|||||||
foreach (var row in usedRange.RowsUsed().Skip(1))
|
foreach (var row in usedRange.RowsUsed().Skip(1))
|
||||||
rows.Add(new ClienteExcelViewModel(row));
|
rows.Add(new ClienteExcelViewModel(row));
|
||||||
|
|
||||||
|
var codiciAgente = rows.Select(r => new { CodiceAgente = r.Agente, Nome = r.DescrizioneAgente, Capoarea = r.CapoArea }).Distinct().ToList();
|
||||||
|
var codiciCapoarea = rows.Select(r => new { CodiceCapoarea = r.CapoArea, Nome = r.DescrizioneCapoArea }).Distinct().ToList();
|
||||||
|
|
||||||
|
var capoareaList = await _managerService.UtenteService.ListaCapoarea();
|
||||||
|
foreach (var fileCapoarea in codiciCapoarea)
|
||||||
|
{
|
||||||
|
var capoarea = await _managerService.UtenteService.RicercaPer(x => x.CodiceAgente == fileCapoarea.CodiceCapoarea);
|
||||||
|
if ((capoarea?.Id ?? new Guid()) != Guid.Empty)
|
||||||
|
continue;
|
||||||
|
capoarea = await mapCapoArea(new Utente(), fileCapoarea.CodiceCapoarea, fileCapoarea.Nome);
|
||||||
|
await _managerService.UtenteService.Salva(capoarea, idClaim);
|
||||||
|
capoareaList.Add(capoarea);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var fileAgente in codiciAgente)
|
||||||
|
{
|
||||||
|
var agente = await _managerService.UtenteService.RicercaPer(x => x.CodiceAgente == fileAgente.CodiceAgente);
|
||||||
|
if ((agente?.Id ?? new Guid()) != Guid.Empty)
|
||||||
|
continue;
|
||||||
|
var capoarea = capoareaList.FirstOrDefault(x => x.CodiceAgente == fileAgente.Capoarea);
|
||||||
|
agente = await mapAgente(new Utente(), fileAgente.CodiceAgente, fileAgente.Nome, capoarea.Id);
|
||||||
|
await _managerService.UtenteService.Salva(agente, idClaim);
|
||||||
|
}
|
||||||
|
|
||||||
var ragioniSociali = rows.Select(r => new { Rid = r.CodCli, RagioneSociale = r.RagSocCliente }).Distinct().ToList();
|
var ragioniSociali = rows.Select(r => new { Rid = r.CodCli, RagioneSociale = r.RagSocCliente }).Distinct().ToList();
|
||||||
clientiTotali = ragioniSociali.Count;
|
clientiTotali = ragioniSociali.Count;
|
||||||
counterLabel = " di " + clientiTotali;
|
counterLabel = " di " + clientiTotali;
|
||||||
|
|
||||||
foreach (var cliente in ragioniSociali)
|
foreach (var cliente in ragioniSociali)
|
||||||
{
|
{
|
||||||
var righeCliente = rows.Where(r => r.CodCli == cliente.Rid).ToList();
|
var righeCliente = rows.Where(r => r.CodCli == cliente.Rid).ToList();
|
||||||
|
|
||||||
var clienteDb = await _managerService.ClienteService.RicercaPer(
|
var clienteDb = await _managerService.ClienteService.RicercaPer(
|
||||||
x => x.Rid == cliente.Rid && x.Eliminato == false,
|
x => x.Rid == cliente.Rid && x.Eliminato == false,
|
||||||
includi: x => x.Include(i => i.Destinazioni),
|
includi: x => x.Include(i => i.Destinazioni).Include(y => y.Agente).Include(z => z.Capoarea),
|
||||||
solaLettura: false) ?? new Cliente();
|
solaLettura: false) ?? new Cliente();
|
||||||
|
|
||||||
clienteDb = await mapCliente(clienteDb, righeCliente);
|
clienteDb = await mapCliente(clienteDb, righeCliente, capoareaList, idClaim);
|
||||||
|
var codiceCapoarea = righeCliente.FirstOrDefault().CapoArea;
|
||||||
|
var codiceAgente = righeCliente.FirstOrDefault().Agente;
|
||||||
|
clienteDb.CapoareaId = (await _managerService.UtenteService.RicercaPer(x => x.CodiceAgente == codiceCapoarea))?.Id;
|
||||||
|
clienteDb.AgenteId = (await _managerService.UtenteService.RicercaPer(x => x.CodiceAgente == codiceAgente))?.Id;
|
||||||
await _managerService.ClienteService.Salva(clienteDb, idClaim);
|
await _managerService.ClienteService.Salva(clienteDb, idClaim);
|
||||||
counter += 1;
|
counter += 1;
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
@ -61,25 +89,18 @@
|
|||||||
_dialogService.Close();
|
_dialogService.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<Cliente> mapCliente(Cliente model, List<ClienteExcelViewModel> rows)
|
private async Task<Cliente> mapCliente(Cliente model, List<ClienteExcelViewModel> rows, List<Utente> capoareaList, Guid idClaim)
|
||||||
{
|
{
|
||||||
var idClaim = await MembershipUtils.GetUserId(auth);
|
|
||||||
var firstRow = rows.First();
|
var firstRow = rows.First();
|
||||||
model.Rid = firstRow.CodCli;
|
model.Rid = firstRow.CodCli;
|
||||||
model.RagioneSociale = firstRow.RagSocCliente;
|
model.RagioneSociale = firstRow.RagSocCliente;
|
||||||
model.PartitaIva = firstRow.PartitaIva;
|
model.PartitaIva = firstRow.PartitaIva;
|
||||||
|
|
||||||
var capoArea = await _managerService.UtenteService.RicercaPer(filtro: x => x.CodiceAgente == firstRow.CapoArea && x.Eliminato == false, solaLettura: false) ?? new Utente();
|
/*var agente = await _managerService.UtenteService.RicercaPer(filtro: x => x.CodiceAgente == firstRow.Agente && x.Eliminato == false, solaLettura: false) ?? new Utente();
|
||||||
capoArea = await mapCapoArea(capoArea, firstRow);
|
|
||||||
if (capoArea.Id == Guid.Empty) capoArea.Password = "";
|
|
||||||
var savedCapoArea = await _managerService.UtenteService.Salva(capoArea, idClaim);
|
|
||||||
model.CapoareaId = savedCapoArea.Id;
|
|
||||||
|
|
||||||
var agente = await _managerService.UtenteService.RicercaPer(filtro: x => x.CodiceAgente == firstRow.Agente && x.Eliminato == false, solaLettura: false) ?? new Utente();
|
|
||||||
agente = await mapAgente(agente, firstRow, model.CapoareaId);
|
agente = await mapAgente(agente, firstRow, model.CapoareaId);
|
||||||
if (agente.Id == Guid.Empty) agente.Password = "";
|
if (agente.Id == Guid.Empty) agente.Password = "";
|
||||||
var savedAgente = await _managerService.UtenteService.Salva(agente, idClaim);
|
var savedAgente = await _managerService.UtenteService.Salva(agente, idClaim);
|
||||||
model.AgenteId = savedAgente.Id;
|
model.AgenteId = savedAgente.Id;*/
|
||||||
|
|
||||||
// TODO: Problema nel salvataggio delle destinazioni
|
// TODO: Problema nel salvataggio delle destinazioni
|
||||||
model.Destinazioni ??= new();
|
model.Destinazioni ??= new();
|
||||||
@ -111,25 +132,28 @@
|
|||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<Utente> mapCapoArea(Utente model, ClienteExcelViewModel row)
|
private async Task<Utente> mapCapoArea(Utente model, string codice, string nome)
|
||||||
{
|
{
|
||||||
model.Username = row.DescrizioneCapoArea;
|
model.Username = nome;
|
||||||
model.CodiceAgente = row.CapoArea;
|
model.CodiceAgente = codice;
|
||||||
model.Nome = row.DescrizioneCapoArea;
|
model.Nome = nome;
|
||||||
model.Cognome = "";
|
model.Cognome = string.Empty;
|
||||||
model.Email = "";
|
model.Email = string.Empty;
|
||||||
|
model.Password = string.Empty;
|
||||||
|
model.IsCapoarea = true;
|
||||||
|
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<Utente> mapAgente(Utente model, ClienteExcelViewModel row, Guid? capoareaId)
|
private async Task<Utente> mapAgente(Utente model, string codice, string nome, Guid? capoareaId)
|
||||||
{
|
{
|
||||||
model.Username = row.DescrizioneAgente;
|
model.Username = nome;
|
||||||
model.CodiceAgente = row.Agente;
|
model.CodiceAgente = codice;
|
||||||
model.Nome = row.DescrizioneAgente;
|
model.Nome = nome;
|
||||||
model.Cognome = "";
|
model.Cognome = "";
|
||||||
model.Email = "";
|
model.Email = "";
|
||||||
model.CapoareaId = capoareaId;
|
model.Password = string.Empty;
|
||||||
|
/*model.CapoareaId = capoareaId;*/
|
||||||
|
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,6 +17,7 @@ public class ClienteViewModel
|
|||||||
public string EmailInvito { get; set; }
|
public string EmailInvito { get; set; }
|
||||||
public string NumeroTelefono { get; set; }
|
public string NumeroTelefono { get; set; }
|
||||||
public string NomeAgente { get; set; }
|
public string NomeAgente { get; set; }
|
||||||
|
public string NomeCapoarea { get; set; }
|
||||||
public Guid? AgenteId { get; set; }
|
public Guid? AgenteId { get; set; }
|
||||||
public UtenteViewModel Agente { get; set; }
|
public UtenteViewModel Agente { get; set; }
|
||||||
public List<DestinazioneViewModel> Destinazioni { get; set; }
|
public List<DestinazioneViewModel> Destinazioni { get; set; }
|
||||||
@ -35,6 +36,7 @@ public class ClienteViewModel
|
|||||||
: new ClienteViewModel()
|
: new ClienteViewModel()
|
||||||
{
|
{
|
||||||
NomeAgente = model.Agente?.Nome.ToString(),
|
NomeAgente = model.Agente?.Nome.ToString(),
|
||||||
|
NomeCapoarea = model.Capoarea?.Nome.ToString(),
|
||||||
Agente = model.Agente,
|
Agente = model.Agente,
|
||||||
AgenteId = model.AgenteId,
|
AgenteId = model.AgenteId,
|
||||||
Cap = model.Cap,
|
Cap = model.Cap,
|
||||||
|
|||||||
Reference in New Issue
Block a user