MICHELE: progresivi + models vincoli lunghezza
This commit is contained in:
parent
92eca245f8
commit
8dfbad66ab
@ -370,6 +370,7 @@ namespace VirtualTask.Controllers
|
|||||||
#endregion DELETE
|
#endregion DELETE
|
||||||
|
|
||||||
#region metodi interni
|
#region metodi interni
|
||||||
|
|
||||||
private List<SelectListItem> getImpianti()
|
private List<SelectListItem> getImpianti()
|
||||||
{
|
{
|
||||||
SessionHelper helper = new SessionHelper(this);
|
SessionHelper helper = new SessionHelper(this);
|
||||||
@ -574,9 +575,6 @@ namespace VirtualTask.Controllers
|
|||||||
return numero;
|
return numero;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
||||||
public IActionResult Error()
|
public IActionResult Error()
|
||||||
{
|
{
|
||||||
@ -584,5 +582,7 @@ namespace VirtualTask.Controllers
|
|||||||
string e = helper.GetStringValue("errMsg");
|
string e = helper.GetStringValue("errMsg");
|
||||||
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrMsg = e });
|
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrMsg = e });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,34 +18,42 @@ namespace VirtualTask.Models
|
|||||||
public string? ancodazi { get; set; }
|
public string? ancodazi { get; set; }
|
||||||
|
|
||||||
[Display(Name = "EMAIL")]
|
[Display(Name = "EMAIL")]
|
||||||
|
[StringLength(254)]
|
||||||
/// <summary>email</summary>
|
/// <summary>email</summary>
|
||||||
public string? an_email { get; set; }
|
public string? an_email { get; set; }
|
||||||
|
|
||||||
[Display(Name = "CODICE FISCALE")]
|
[Display(Name = "CODICE FISCALE")]
|
||||||
|
[StringLength(16)]
|
||||||
/// <summary>codice fiscale</summary>
|
/// <summary>codice fiscale</summary>
|
||||||
public string? ancodfis { get; set; }
|
public string? ancodfis { get; set; }
|
||||||
|
|
||||||
[Display(Name = "PARTITA IVA")]
|
[Display(Name = "PARTITA IVA")]
|
||||||
|
[StringLength(12)]
|
||||||
/// <summary>partita iva</summary>
|
/// <summary>partita iva</summary>
|
||||||
public string? anpariva { get; set; }
|
public string? anpariva { get; set; }
|
||||||
|
|
||||||
[Display(Name = "INDIRIZZO")]
|
[Display(Name = "INDIRIZZO")]
|
||||||
|
[StringLength(35)]
|
||||||
/// <summary>indirizzo</summary>
|
/// <summary>indirizzo</summary>
|
||||||
public string? anindiri { get; set; }
|
public string? anindiri { get; set; }
|
||||||
|
|
||||||
[Display(Name = "TELEFONO")]
|
[Display(Name = "TELEFONO")]
|
||||||
|
[StringLength(36)]
|
||||||
/// <summary>telefono</summary>
|
/// <summary>telefono</summary>
|
||||||
public string? antelefo { get; set; }
|
public string? antelefo { get; set; }
|
||||||
|
|
||||||
[Display(Name = "CELLULARE")]
|
[Display(Name = "CELLULARE")]
|
||||||
|
[StringLength(36)]
|
||||||
/// <summary>cellulare</summary>
|
/// <summary>cellulare</summary>
|
||||||
public string? annumcel { get; set; }
|
public string? annumcel { get; set; }
|
||||||
|
|
||||||
[Display(Name = "PEC")]
|
[Display(Name = "PEC")]
|
||||||
|
[StringLength(254)]
|
||||||
/// <summary>pec</summary>
|
/// <summary>pec</summary>
|
||||||
public string? an_empec { get; set; }
|
public string? an_empec { get; set; }
|
||||||
|
|
||||||
[Display(Name = "RAGIONE SOCIALE"), Required(ErrorMessage = "Ragione sociale obbligatoria")]
|
[Display(Name = "RAGIONE SOCIALE"), Required(ErrorMessage = "Ragione sociale obbligatoria")]
|
||||||
|
[StringLength(60)]
|
||||||
/// <summary>descrizione </summary>
|
/// <summary>descrizione </summary>
|
||||||
public string? andescri { get; set; }
|
public string? andescri { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace VirtualTask.Models
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace VirtualTask.Models
|
||||||
{
|
{
|
||||||
public class AziendaRif
|
public class AziendaRif
|
||||||
{
|
{
|
||||||
@ -11,9 +13,11 @@
|
|||||||
/// <summary>tecnico</summary>
|
/// <summary>tecnico</summary>
|
||||||
public string? pirifazi { get; set; }
|
public string? pirifazi { get; set; }
|
||||||
|
|
||||||
|
[StringLength(50)]
|
||||||
/// <summary>Nome azienda collegata</summary>
|
/// <summary>Nome azienda collegata</summary>
|
||||||
public string? pinomede { get; set; }
|
public string? pinomede { get; set; }
|
||||||
|
|
||||||
|
[StringLength(254)]
|
||||||
/// <summary>url logo</summary>
|
/// <summary>url logo</summary>
|
||||||
public string? pilogurl { get; set; }
|
public string? pilogurl { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -35,6 +35,7 @@ namespace VirtualTask.Models
|
|||||||
public string? chrifer { get; set; }
|
public string? chrifer { get; set; }
|
||||||
|
|
||||||
[Display(Name = "TELEFONO")]
|
[Display(Name = "TELEFONO")]
|
||||||
|
[StringLength(18)]
|
||||||
public string? chtelef { get; set; }
|
public string? chtelef { get; set; }
|
||||||
|
|
||||||
[Display(Name = "COD. SEGNALAZIONE")]
|
[Display(Name = "COD. SEGNALAZIONE")]
|
||||||
|
|||||||
@ -9,9 +9,12 @@ namespace VirtualTask.Models
|
|||||||
[Display(Name = "AZIENDA")]
|
[Display(Name = "AZIENDA")]
|
||||||
public string? cccodazi { get; set; }
|
public string? cccodazi { get; set; }
|
||||||
|
|
||||||
|
[StringLength(15)]
|
||||||
[Display(Name = "CODICE"), Required(ErrorMessage = "Inserire codice chiamata")]
|
[Display(Name = "CODICE"), Required(ErrorMessage = "Inserire codice chiamata")]
|
||||||
|
|
||||||
public string? cccodice { get; set; }
|
public string? cccodice { get; set; }
|
||||||
|
|
||||||
|
[StringLength(50)]
|
||||||
[Display(Name = "DESCRIZIONE"), Required(ErrorMessage = "Inserire descrizione")]
|
[Display(Name = "DESCRIZIONE"), Required(ErrorMessage = "Inserire descrizione")]
|
||||||
public string? ccdescr { get; set; }
|
public string? ccdescr { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,9 @@ namespace VirtualTask.Models
|
|||||||
{
|
{
|
||||||
public class Impianto
|
public class Impianto
|
||||||
{
|
{
|
||||||
|
|
||||||
[Display(Name = "Codice Impianto"), Required(ErrorMessage = "Inserire codice impianto")]
|
[Display(Name = "Codice Impianto"), Required(ErrorMessage = "Inserire codice impianto")]
|
||||||
|
[StringLength(10)]
|
||||||
/// <summary>Codice Impianto</summary>
|
/// <summary>Codice Impianto</summary>
|
||||||
public string? imcodimp { get; set; }
|
public string? imcodimp { get; set; }
|
||||||
|
|
||||||
@ -14,15 +16,18 @@ namespace VirtualTask.Models
|
|||||||
public string? imcodazi { get; set; }
|
public string? imcodazi { get; set; }
|
||||||
|
|
||||||
[Display(Name = "Descrizione"), Required(ErrorMessage = "Inserire descrizione")]
|
[Display(Name = "Descrizione"), Required(ErrorMessage = "Inserire descrizione")]
|
||||||
|
[StringLength(40)]
|
||||||
/// <summary>Descrizione Impianto</summary>
|
/// <summary>Descrizione Impianto</summary>
|
||||||
public string? imdescri { get; set; }
|
public string? imdescri { get; set; }
|
||||||
|
|
||||||
/// <summary>Tipo indirizzo (Via, piazza..)</summary>
|
/// <summary>Tipo indirizzo (Via, piazza..)</summary>
|
||||||
[Display(Name = "Via,piazza,..")]
|
[Display(Name = "Via,piazza,..")]
|
||||||
|
[StringLength(10)]
|
||||||
public string? imindiri1 { get; set; }
|
public string? imindiri1 { get; set; }
|
||||||
|
|
||||||
/// <summary> indirizzo </summary>
|
/// <summary> indirizzo </summary>
|
||||||
[Display(Name = "Indirizzo")]
|
[Display(Name = "Indirizzo")]
|
||||||
|
[StringLength(30)]
|
||||||
public string? imindiri2 { get; set; }
|
public string? imindiri2 { get; set; }
|
||||||
|
|
||||||
/// <summary> numero civico </summary>
|
/// <summary> numero civico </summary>
|
||||||
@ -31,26 +36,33 @@ namespace VirtualTask.Models
|
|||||||
|
|
||||||
/// <summary> sottonumero </summary>
|
/// <summary> sottonumero </summary>
|
||||||
[Display(Name = "Interno")]
|
[Display(Name = "Interno")]
|
||||||
|
[StringLength(4)]
|
||||||
public string? imindiri4 { get; set; }
|
public string? imindiri4 { get; set; }
|
||||||
|
|
||||||
/// <summary>scala</summary>
|
/// <summary>scala</summary>
|
||||||
[Display(Name = "Scala")]
|
[Display(Name = "Scala")]
|
||||||
|
[StringLength(3)]
|
||||||
public string? imindiri5 { get; set; }
|
public string? imindiri5 { get; set; }
|
||||||
|
|
||||||
/// <summary> localita </summary>
|
/// <summary> localita </summary>
|
||||||
[Display(Name = "Località")]
|
[Display(Name = "Località")]
|
||||||
|
[StringLength(30)]
|
||||||
public string? imlocali { get; set; }
|
public string? imlocali { get; set; }
|
||||||
|
|
||||||
/// <summary> Cap </summary>
|
/// <summary> Cap </summary>
|
||||||
[Display(Name = "Cap")]
|
[Display(Name = "Cap")]
|
||||||
|
[StringLength(5)]
|
||||||
public string? imcodcap { get; set; }
|
public string? imcodcap { get; set; }
|
||||||
|
|
||||||
/// <summary> Comune </summary>
|
/// <summary> Comune </summary>
|
||||||
[Display(Name = "Comune")]
|
[Display(Name = "Comune")]
|
||||||
|
[StringLength(20)]
|
||||||
public string? imcomune { get; set; }
|
public string? imcomune { get; set; }
|
||||||
|
|
||||||
/// <summary> Provincia </summary>
|
/// <summary> Provincia </summary>
|
||||||
[Display(Name = "Provincia")]
|
[Display(Name = "Provincia")]
|
||||||
|
[StringLength(2)]
|
||||||
|
|
||||||
public string? improvin { get; set; }
|
public string? improvin { get; set; }
|
||||||
|
|
||||||
[Display(Name = "Cliente")]
|
[Display(Name = "Cliente")]
|
||||||
|
|||||||
@ -1,10 +1,14 @@
|
|||||||
namespace VirtualTask.Models
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace VirtualTask.Models
|
||||||
{
|
{
|
||||||
public class Progressivo
|
public class Progressivo
|
||||||
{
|
{
|
||||||
|
[StringLength(5)]
|
||||||
/// <summary>Azienda</summary>
|
/// <summary>Azienda</summary>
|
||||||
public string? azienda { get; set; }
|
public string? azienda { get; set; }
|
||||||
|
|
||||||
|
[StringLength(10)]
|
||||||
/// <summary>stringa definisce il tipo di progressivo da gestire</summary>
|
/// <summary>stringa definisce il tipo di progressivo da gestire</summary>
|
||||||
public string? tipo_prog { get; set; }
|
public string? tipo_prog { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@ namespace VirtualTask.Models
|
|||||||
public string? azienda_impianto { get; set; }
|
public string? azienda_impianto { get; set; }
|
||||||
|
|
||||||
[Display(Name = "CODICE IMPIANTO"), Required(ErrorMessage = "Inserisci codice impianto")]
|
[Display(Name = "CODICE IMPIANTO"), Required(ErrorMessage = "Inserisci codice impianto")]
|
||||||
|
[StringLength(10)]
|
||||||
public string? codice_impianto { get; set; }
|
public string? codice_impianto { get; set; }
|
||||||
|
|
||||||
[Display(Name = "AZ. CHIAMATA")]
|
[Display(Name = "AZ. CHIAMATA")]
|
||||||
@ -32,15 +33,19 @@ namespace VirtualTask.Models
|
|||||||
public DateTime data_rapportino { get; set; }
|
public DateTime data_rapportino { get; set; }
|
||||||
|
|
||||||
[Display(Name = "ORA INIZIO")]
|
[Display(Name = "ORA INIZIO")]
|
||||||
|
[StringLength(2)]
|
||||||
public string? ora_ini_rapportino { get; set; }
|
public string? ora_ini_rapportino { get; set; }
|
||||||
|
|
||||||
|
[StringLength(2)]
|
||||||
[Display(Name = "MINUTO INIZIO")]
|
[Display(Name = "MINUTO INIZIO")]
|
||||||
public string? min_ini_rapportino { get; set; }
|
public string? min_ini_rapportino { get; set; }
|
||||||
|
|
||||||
[Display(Name = "ORA FINE")]
|
[Display(Name = "ORA FINE")]
|
||||||
|
[StringLength(2)]
|
||||||
public string? ora_fin_rapportino { get; set; }
|
public string? ora_fin_rapportino { get; set; }
|
||||||
|
|
||||||
[Display(Name = "MINUTO FINE")]
|
[Display(Name = "MINUTO FINE")]
|
||||||
|
[StringLength(2)]
|
||||||
public string? min_fin_rapportino { get; set; }
|
public string? min_fin_rapportino { get; set; }
|
||||||
|
|
||||||
[Display(Name = "CODICE CHIUSURA 1")]
|
[Display(Name = "CODICE CHIUSURA 1")]
|
||||||
@ -119,18 +124,21 @@ namespace VirtualTask.Models
|
|||||||
public string? lavoro_eseguito { get; set; }
|
public string? lavoro_eseguito { get; set; }
|
||||||
|
|
||||||
[Display(Name = "ESITO")]
|
[Display(Name = "ESITO")]
|
||||||
|
[StringLength(1)]
|
||||||
public string? esito_intervento { get; set; }
|
public string? esito_intervento { get; set; }
|
||||||
|
|
||||||
[Display(Name = "NOTE")]
|
[Display(Name = "NOTE")]
|
||||||
public string? note_intervento { get; set; }
|
public string? note_intervento { get; set; }
|
||||||
|
|
||||||
[Display(Name = "NUOVO CONTRATTO")]
|
[Display(Name = "NUOVO CONTRATTO")]
|
||||||
|
[StringLength(2)]
|
||||||
public string? nuovo_contratto { get; set; }
|
public string? nuovo_contratto { get; set; }
|
||||||
|
|
||||||
[Display(Name = "ORE LAVORO")]
|
[Display(Name = "ORE LAVORO")]
|
||||||
public double? ore_lavoro { get; set; }
|
public double? ore_lavoro { get; set; }
|
||||||
|
|
||||||
[Display(Name = "CAUSALE")]
|
[Display(Name = "CAUSALE")]
|
||||||
|
[StringLength(5)]
|
||||||
public string? causale { get; set; }
|
public string? causale { get; set; }
|
||||||
|
|
||||||
[Display(Name = "MATERIALE")]
|
[Display(Name = "MATERIALE")]
|
||||||
@ -146,6 +154,7 @@ namespace VirtualTask.Models
|
|||||||
public double? spese_viaggio { get; set; }
|
public double? spese_viaggio { get; set; }
|
||||||
|
|
||||||
[Display(Name = "PAGAMENTO")]
|
[Display(Name = "PAGAMENTO")]
|
||||||
|
[StringLength(20)]
|
||||||
public string? pagamento { get; set; }
|
public string? pagamento { get; set; }
|
||||||
|
|
||||||
[Display(Name = "ANTICIPO")]
|
[Display(Name = "ANTICIPO")]
|
||||||
|
|||||||
@ -8,18 +8,23 @@ namespace VirtualTask.Models
|
|||||||
public int id { get; set; }
|
public int id { get; set; }
|
||||||
|
|
||||||
[Display(Name = "Nome"), Required(ErrorMessage = "Nome obbligatorio")]
|
[Display(Name = "Nome"), Required(ErrorMessage = "Nome obbligatorio")]
|
||||||
|
[StringLength(50)]
|
||||||
public string? nome { get; set; }
|
public string? nome { get; set; }
|
||||||
|
|
||||||
[Display(Name = "Cognome"), Required(ErrorMessage = "Cognome obbligatorio")]
|
[Display(Name = "Cognome"), Required(ErrorMessage = "Cognome obbligatorio")]
|
||||||
|
[StringLength(50)]
|
||||||
public string? cognome { get; set; }
|
public string? cognome { get; set; }
|
||||||
|
|
||||||
[Display(Name = "Telefono"), Required(ErrorMessage = "Telefono obbligatorio")]
|
[Display(Name = "Telefono"), Required(ErrorMessage = "Telefono obbligatorio")]
|
||||||
|
[StringLength(50)]
|
||||||
public string? telefono { get; set;}
|
public string? telefono { get; set;}
|
||||||
|
|
||||||
[Display(Name = "Cellulare"), Required(ErrorMessage = "Cellulare obbligatorio")]
|
[Display(Name = "Cellulare"), Required(ErrorMessage = "Cellulare obbligatorio")]
|
||||||
|
[StringLength(50)]
|
||||||
public string? cellulare { get; set;}
|
public string? cellulare { get; set;}
|
||||||
|
|
||||||
[RegularExpression("^[a-zA-Z0-9_\\.-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$", ErrorMessage = "formato campo Email non valido")]
|
[RegularExpression("^[a-zA-Z0-9_\\.-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$", ErrorMessage = "formato campo Email non valido")]
|
||||||
|
[StringLength(100)]
|
||||||
[Display(Name = "Email"), Required(ErrorMessage = "Email obbligatorio")]
|
[Display(Name = "Email"), Required(ErrorMessage = "Email obbligatorio")]
|
||||||
public string? email { get; set;}
|
public string? email { get; set;}
|
||||||
|
|
||||||
@ -28,17 +33,27 @@ namespace VirtualTask.Models
|
|||||||
public string? emailConf { get; set;}
|
public string? emailConf { get; set;}
|
||||||
|
|
||||||
[Display(Name = "Azienda"), Required(ErrorMessage = "Azienda obbligatorio")]
|
[Display(Name = "Azienda"), Required(ErrorMessage = "Azienda obbligatorio")]
|
||||||
|
[StringLength(5)]
|
||||||
public string? azienda { get; set; }
|
public string? azienda { get; set; }
|
||||||
|
|
||||||
[Display(Name = "Username"), Required(ErrorMessage = "Username obbligatorio")]
|
[Display(Name = "Username"), Required(ErrorMessage = "Username obbligatorio")]
|
||||||
|
[StringLength(20)]
|
||||||
public string? username { get; set; }
|
public string? username { get; set; }
|
||||||
|
|
||||||
[Display(Name = "Password"), Required(ErrorMessage = "Password obbligatorio")]
|
[Display(Name = "Password"), Required(ErrorMessage = "Password obbligatorio")]
|
||||||
|
[StringLength(20)]
|
||||||
public string? passwd { get; set;}
|
public string? passwd { get; set;}
|
||||||
|
|
||||||
|
[StringLength(50)]
|
||||||
public string? citta { get; set;}
|
public string? citta { get; set;}
|
||||||
|
|
||||||
|
[StringLength(2)]
|
||||||
public string? provincia { get; set;}
|
public string? provincia { get; set;}
|
||||||
|
|
||||||
|
[StringLength(2)]
|
||||||
public string? nazione { get; set;}
|
public string? nazione { get; set;}
|
||||||
|
|
||||||
|
[StringLength(1)]
|
||||||
public string? attivato { get; set;}
|
public string? attivato { get; set;}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,18 +10,23 @@ namespace VirtualTask.Models
|
|||||||
public string? tccodazi { get; set; }
|
public string? tccodazi { get; set; }
|
||||||
|
|
||||||
[Display(Name = "CODICE"), Required(ErrorMessage = "Inserire codice tecnico")]
|
[Display(Name = "CODICE"), Required(ErrorMessage = "Inserire codice tecnico")]
|
||||||
|
[StringLength(15)]
|
||||||
public string? tccodice { get; set; }
|
public string? tccodice { get; set; }
|
||||||
|
|
||||||
[Display(Name = "DESCRIZIONE"), Required(ErrorMessage = "Inserire descrizione")]
|
[Display(Name = "DESCRIZIONE"), Required(ErrorMessage = "Inserire descrizione")]
|
||||||
|
[StringLength(40)]
|
||||||
public string? tcdescri { get; set;}
|
public string? tcdescri { get; set;}
|
||||||
|
|
||||||
[Display(Name = "TELEFONO")]
|
[Display(Name = "TELEFONO")]
|
||||||
|
[StringLength(18)]
|
||||||
public string? tctelef1 { get; set;}
|
public string? tctelef1 { get; set;}
|
||||||
|
|
||||||
[Display(Name = "UTENTE"), Required(ErrorMessage = "Inserire Utente")]
|
[Display(Name = "UTENTE"), Required(ErrorMessage = "Inserire Utente")]
|
||||||
|
[StringLength(20)]
|
||||||
public string? tcuser { get; set;}
|
public string? tcuser { get; set;}
|
||||||
|
|
||||||
[Display(Name = "PASSWORD")]
|
[Display(Name = "PASSWORD")]
|
||||||
|
[StringLength(20)]
|
||||||
public string? tcpwd { get; set;}
|
public string? tcpwd { get; set;}
|
||||||
|
|
||||||
[Display(Name = "COSTO ORDINARIO")]
|
[Display(Name = "COSTO ORDINARIO")]
|
||||||
|
|||||||
@ -26,12 +26,6 @@
|
|||||||
<span asp-validation-for="picodtec" class="text-danger"></span>
|
<span asp-validation-for="picodtec" class="text-danger"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6 col-md-6 col-sm-12 col-12"> </div>
|
<div class="col-lg-6 col-md-6 col-sm-12 col-12"> </div>
|
||||||
<div class="form-group">
|
|
||||||
@* <label asp-for="pirifazi" class="control-label"></label> *@
|
|
||||||
<input asp-for="picodtec" class="agy-form-field require" placeholder="Tecnico" />
|
|
||||||
<span asp-validation-for="pirifazi" class="text-danger"></span>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-6 col-md-6 col-sm-12 col-12"> </div>
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@* <label asp-for="pinomede" class="control-label"></label> *@
|
@* <label asp-for="pinomede" class="control-label"></label> *@
|
||||||
<input asp-for="pinomede" class="agy-form-field require" placeholder="Azienda coll." />
|
<input asp-for="pinomede" class="agy-form-field require" placeholder="Azienda coll." />
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user