- Edit nel form della home
This commit is contained in:
@ -59,128 +59,166 @@
|
||||
{
|
||||
<EditForm Model="iscrizione" OnValidSubmit="onIscrizioneSave" FormName="iscrizioneForm">
|
||||
<DataAnnotationsValidator />
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Nome</RadzenText>
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.Nome" />
|
||||
<ValidationMessage For="@(() => iscrizione.Nome)" />
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Cognome</RadzenText>
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Cognome" @bind-Value="@iscrizione.Cognome" />
|
||||
<ValidationMessage For="@(() => iscrizione.Cognome)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">E-mail</RadzenText>
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Email" @bind-Value="@iscrizione.Email" />
|
||||
<ValidationMessage For="@(() => iscrizione.Email)" />
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Telefono</RadzenText>
|
||||
<RadzenTextBox Style="width: 100%" aria-label="NumeroTelefono" @bind-Value="@iscrizione.NumeroTelefono" />
|
||||
<ValidationMessage For="@(() => iscrizione.NumeroTelefono)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Comune</RadzenText>
|
||||
<RadzenDropDown @bind-Value="@iscrizione.Comune" Style="width: 100%" TextProperty="" Placeholder="Seleziona il comune"
|
||||
Data="@comuneList" Size="ButtonSize.Small" />
|
||||
<ValidationMessage For="@(() => iscrizione.Comune)" />
|
||||
</div>
|
||||
<div class="col-4 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Cap</RadzenText>
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Cap" @bind-Value="@iscrizione.Cap" />
|
||||
<ValidationMessage For="@(() => iscrizione.Cap)" />
|
||||
</div>
|
||||
<div class="col-4 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Provincia</RadzenText>
|
||||
<RadzenDropDown @bind-Value="@iscrizione.Provincia" Style="width: 100%" TextProperty="" Placeholder="Seleziona la provincia"
|
||||
Data="@provinciaList" Size="ButtonSize.Small" />
|
||||
<ValidationMessage For="@(() => iscrizione.Provincia)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Ragione Sociale</RadzenText>
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.RagioneSociale" />
|
||||
<ValidationMessage For="@(() => iscrizione.RagioneSociale)" />
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Tipologia</RadzenText>
|
||||
<RadzenDropDown @bind-Value="@iscrizione.TipologiaClienteId" TValue="Guid?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona la tipologia"
|
||||
Data="@tipologiaList" Size="ButtonSize.Small" />
|
||||
<ValidationMessage For="@(() => iscrizione.TipologiaClienteId)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Hai già avuto un'esperienza con DAC?</RadzenText>
|
||||
<RadzenDropDown @bind-Value="@iscrizione.EsperienzaConDAC" Style="width: 100%" TextProperty="" Placeholder="Scegli dal menù"
|
||||
Data="@esperienzaList" Size="ButtonSize.Small" />
|
||||
<ValidationMessage For="@(() => iscrizione.EsperienzaConDAC)" />
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Ruolo</RadzenText>
|
||||
<RadzenDropDown @bind-Value="@iscrizione.RuoloInt" TValue="int?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona il ruolo"
|
||||
Data="@ruoloList" Size="ButtonSize.Small" />
|
||||
<ValidationMessage For="@(() => iscrizione.RuoloInt)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Destinazione</RadzenText>
|
||||
<RadzenDropDown @bind-Value="@iscrizione.DestinazioneId" TValue="Guid ?" Style="width: 100%" ValueProperty="Id" TextProperty="RagioneSociale" Placeholder="Seleziona la destinazione"
|
||||
Data="@destinazioniList" Size="ButtonSize.Small" />
|
||||
<ValidationMessage For="@(() => iscrizione.DestinazioneId)" />
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Numero di partecipanti</RadzenText>
|
||||
<RadzenNumeric ShowUpDown="false" TValue="int" TextAlign="TextAlign.Right" Style="width: 100%" aria-label="Partecipanti" @bind-Value="@iscrizione.Partecipanti" />
|
||||
<ValidationMessage For="@(() => iscrizione.Partecipanti)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 mb-3">
|
||||
<RadzenText TextStyle="TextStyle.Subtitle2" TagName="TagName.H3">Note</RadzenText>
|
||||
<RadzenTextArea @bind-Value="@iscrizione.Note" Style="width: 100%;" Rows="3" />
|
||||
<ValidationMessage For="@(() => iscrizione.Note)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<RadzenCheckBox class="form-check-input" @bind-Value=@iscrizione.PresaVisionePrivacy Name="PresaVisionePrivacy" TValue="bool" />
|
||||
<label class="rz-ms-2" for="PresaVisionePrivacy" style="cursor: pointer;">
|
||||
Presa visione dell'informativa Privacy* (<a href="/" target="_blank">leggi</a>)
|
||||
</label>
|
||||
<div class="col-12">
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="Nome" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.Nome" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.Nome)" />
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center">
|
||||
<RadzenCheckBox class="form-check-input" @bind-Value=@iscrizione.PresaVisioneDatiPersonali Name="PresaVisioneDatiPersonali" TValue="bool" />
|
||||
<label class="rz-ms-2" for="PresaVisioneDatiPersonali" style="cursor: pointer;">
|
||||
Autorizzazione al trattamento dati* (<a href="/" target="_blank">leggi</a>)
|
||||
</label>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="Cognome" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Cognome" @bind-Value="@iscrizione.Cognome" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.Cognome)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3 mb-3">
|
||||
<button type="button" class="btn btn-default w-100" @onclick="backToHome">
|
||||
Indietro
|
||||
</button>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="E-mail" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Email" @bind-Value="@iscrizione.Email" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.Email)" />
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="Telefono" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenTextBox Style="width: 100%" aria-label="NumeroTelefono" @bind-Value="@iscrizione.NumeroTelefono" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.NumeroTelefono)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3 mb-3">
|
||||
<button type="submit" class="btn btn-primary w-100" disabled="@(!iscrizione.PresaVisionePrivacy || !iscrizione.PresaVisioneDatiPersonali)">
|
||||
Invia
|
||||
</button>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4 mb-3">
|
||||
<RadzenFormField Text="Provincia" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenDropDown @bind-Value="@iscrizione.Provincia" Style="width: 100%" TextProperty="" Placeholder="Seleziona la provincia"
|
||||
Data="@provinciaList" Size="ButtonSize.Small" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.Provincia)" />
|
||||
</div>
|
||||
<div class="col-4 mb-3">
|
||||
<RadzenFormField Text="CAP" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Cap" @bind-Value="@iscrizione.Cap" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.Cap)" />
|
||||
</div>
|
||||
<div class="col-4 mb-3">
|
||||
<RadzenFormField Text="Comune" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenDropDown @bind-Value="@iscrizione.Comune" Style="width: 100%" TextProperty="" Placeholder="Seleziona il comune"
|
||||
Data="@comuneList" Size="ButtonSize.Small" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.Comune)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="Ragione Sociale" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Nome" @bind-Value="@iscrizione.RagioneSociale" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.RagioneSociale)" />
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="Tipologia" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenDropDown @bind-Value="@iscrizione.TipologiaClienteId" TValue="Guid?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona la tipologia"
|
||||
Data="@tipologiaList" Size="ButtonSize.Small" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.TipologiaClienteId)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="Hai già avuto un'esperienza con DAC?" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenDropDown @bind-Value="@iscrizione.EsperienzaConDAC" Style="width: 100%" TextProperty="" Placeholder="Scegli dal menù"
|
||||
Data="@esperienzaList" Size="ButtonSize.Small" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.EsperienzaConDAC)" />
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="Ruolo" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenDropDown @bind-Value="@iscrizione.RuoloInt" TValue="int?" Style="width: 100%" TextProperty="Description" ValueProperty="Key" Placeholder="Seleziona il ruolo"
|
||||
Data="@ruoloList" Size="ButtonSize.Small" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.RuoloInt)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="Destinazione" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenDropDown @bind-Value="@iscrizione.DestinazioneId" TValue="Guid?" Style="width: 100%" ValueProperty="Id" TextProperty="RagioneSociale" Placeholder="Seleziona la destinazione"
|
||||
Data="@destinazioniList" Size="ButtonSize.Small" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.DestinazioneId)" />
|
||||
</div>
|
||||
<div class="col-6 mb-3">
|
||||
<RadzenFormField Text="Numero di partecipanti" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenNumeric ShowUpDown="false" TValue="int" TextAlign="TextAlign.Right" Style="width: 100%" aria-label="Partecipanti" @bind-Value="@iscrizione.Partecipanti" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.Partecipanti)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 mb-3">
|
||||
<RadzenFormField Text="Note" Variant="Variant.Flat" Style="width: 100%; border: none !important; box-shadow: none !important; background-color: transparent !important;">
|
||||
<RadzenTextArea @bind-Value="@iscrizione.Note" Style="width: 100%;" Rows="3" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.Note)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-4 mb-3">
|
||||
<RadzenFormField Text="Data Iscrizione Dal" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenDatePicker @bind-Value=@iscrizione.GiornoPresenzaDal Name="GiornoPresenzaDal" ShowCalendarWeek ShowTime="false" DateFormat="dd/MM/yyyy" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.GiornoPresenzaDal)" />
|
||||
</div>
|
||||
<div class="col-4 mb-3">
|
||||
<RadzenFormField Text="Data Iscrizione Al" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenDatePicker @bind-Value=@iscrizione.GiornoPresenzaAl Name="GiornoPresenzaAl" ShowCalendarWeek ShowTime="false" DateFormat="dd/MM/yyyy" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.GiornoPresenzaAl)" />
|
||||
</div>
|
||||
<div class="col-4 mb-3">
|
||||
<RadzenFormField Text="Partita IVA" Variant="Variant.Flat" Style="width: 100%;">
|
||||
<RadzenTextBox Style="width: 100%" aria-label="Cap" @bind-Value="@iscrizione.PartitaIva" />
|
||||
</RadzenFormField>
|
||||
<ValidationMessage For="@(() => iscrizione.PartitaIva)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 mb-3">
|
||||
<div class="d-flex align-items-center mb-2">
|
||||
<RadzenCheckBox class="form-check-input" @bind-Value="PresaVisionePrivacy" Name="PresaVisionePrivacy" TValue="bool" />
|
||||
<label class="rz-ms-2" for="PresaVisionePrivacy" style="cursor: pointer;">
|
||||
Presa visione dell'informativa Privacy* (<a href="/" target="_blank">leggi</a>)
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="d-flex align-items-center">
|
||||
<RadzenCheckBox class="form-check-input" @bind-Value="PresaVisioneDatiPersonali" Name="PresaVisioneDatiPersonali" TValue="bool" />
|
||||
<label class="rz-ms-2" for="PresaVisioneDatiPersonali" style="cursor: pointer;">
|
||||
Autorizzazione al trattamento dati* (<a href="/" target="_blank">leggi</a>)
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3 mb-3">
|
||||
<button type="button" class="btn btn-default w-100" @onclick="backToHome">
|
||||
Torna all'inserimento codice
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-3 mb-3">
|
||||
<button type="submit" class="btn btn-danger w-100" disabled="@(!PresaVisionePrivacy || !PresaVisioneDatiPersonali)">
|
||||
Invia
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</EditForm>
|
||||
@ -258,6 +296,8 @@
|
||||
|
||||
public string invitationCode { get; set; } = string.Empty;
|
||||
private string invalidCode = string.Empty;
|
||||
private bool PresaVisionePrivacy { get; set; }
|
||||
private bool PresaVisioneDatiPersonali { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
@ -271,7 +311,6 @@
|
||||
invalidCode = "Il codice inserito non risulta corretto";
|
||||
else
|
||||
{
|
||||
iscrizione.RagioneSociale = invito?.Cliente?.RagioneSociale ?? "";
|
||||
var destinazioniIds = invito.IscrizioniEvento?.Select(x => x.DestinazioneId).ToList() ?? new List<Guid?>();
|
||||
destinazioniList = (await _managerService.DestinazioneService.RicercaQueryable(filtro: x => x.ClienteId == invito.ClienteId && !destinazioniIds.Any(y => y == x.Id))).Select(x => (DestinazioneViewModel)x).ToList();
|
||||
comuneList = new List<string>() { "Brescia" };
|
||||
@ -279,9 +318,14 @@
|
||||
esperienzaList = new List<string>() { "Si", "No" };
|
||||
var eUtils = new EnumUtils();
|
||||
|
||||
tipologiaList = (await _managerService.TipologiaClienteService.RicercaQueryable(x => x.Eliminato == false))
|
||||
tipologiaList = (await _managerService.TipologiaClienteService.RicercaQueryable(x => x.Eliminato == false, ordinamento: x => x.OrderBy(y => y.Nome)))
|
||||
.Select(x => new LookupViewModel<Guid>(x.Id, x.Nome)).ToList();
|
||||
ruoloList = eUtils.GetEnumList<RuoloTipo>();
|
||||
|
||||
// Compilazione automatica campi iscrizione
|
||||
iscrizione.RagioneSociale = invito?.Cliente?.RagioneSociale ?? "";
|
||||
if (destinazioniList.Count() == 1)
|
||||
iscrizione.DestinazioneId = destinazioniList.First()?.Id;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -15,8 +15,7 @@ public class IscrizioneEventoViewModel
|
||||
[Range(1, int.MaxValue, ErrorMessage = "Inserire un numero di partecipanti validi")]
|
||||
public int Partecipanti { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "Le note sono obbligatorie")]
|
||||
public string Note { get; set; }
|
||||
public string? Note { get; set; }
|
||||
public bool ScanCompleto { get; set; }
|
||||
public DateTime? DataScan { get; set; }
|
||||
[Required(ErrorMessage = "Il nome è obbigatorio")]
|
||||
@ -42,9 +41,11 @@ public class IscrizioneEventoViewModel
|
||||
public RuoloTipo Ruolo { get; set; }
|
||||
[Required(ErrorMessage = "Il ruolo è obbigatorio")]
|
||||
public int? RuoloInt { get; set; }
|
||||
public bool PresaVisionePrivacy { get; set; }
|
||||
public bool PresaVisioneDatiPersonali { get; set; }
|
||||
|
||||
public string? PartitaIva { get; set; }
|
||||
[Required(ErrorMessage = "Bisogna inserire una data iscrizione")]
|
||||
public DateTime? GiornoPresenzaDal { get; set; }
|
||||
[Required(ErrorMessage = "Bisogna inserire una data iscrizione")]
|
||||
public DateTime? GiornoPresenzaAl { get; set; }
|
||||
|
||||
public IscrizioneEvento Map(IscrizioneEvento model)
|
||||
{
|
||||
@ -61,6 +62,9 @@ public class IscrizioneEventoViewModel
|
||||
model.Cap = Cap;
|
||||
model.RagioneSociale = RagioneSociale;
|
||||
model.EsperienzaConDAC = EsperienzaConDAC;
|
||||
model.PartitaIva = PartitaIva;
|
||||
model.GiornoPresenzaDal = GiornoPresenzaDal.Value;
|
||||
model.GiornoPresenzaAl = GiornoPresenzaAl.Value;
|
||||
|
||||
return model;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user