d076a4b77a
Uscendo da una scheda a meta' (tasto indietro del dispositivo o "Annulla")
il lavoro veniva scartato. Il tasto indietro non era nemmeno gestito: non
arriva alla WebView e non c'e' stack di navigazione, quindi mandava l'app
in background con i dati solo in memoria.
Nuovo stato Bozza ("Da completare"): salvata in locale, mai inviabile
finche' non viene conclusa.
- Scheda.Bozza + migration additiva (default false: le schede esistenti
non cambiano stato).
- SchedaSyncHelper: terzo SyncState, CountBozze(). CountDaInviare()
esclude le bozze, quindi il badge "da inviare" resta corretto.
- ModalFormScheda: SaveDraft() salva solo in locale senza validazione;
Save() azzera il flag; Submit() avvisa quando il form e' invalido
(prima il tocco su "Salva" sembrava non fare nulla se i campi mancanti
erano fuori schermo); Update() prende preserveActivityId cosi' una
bozza di scheda gia' inviata mantiene il link al server e al
completamento lo aggiorna invece di duplicarlo.
- ConfirmUpdateActivity: il pulsante bozza sta su NoText, non CancelText
(CancelText ritorna null, NoText ritorna false).
- BackButtonService + MainActivity.OnBackPressed: il tasto indietro passa
dallo stesso percorso di "Annulla". Ignorato mentre e' aperto un dialog
figlio, per non mostrare il prompt sotto un altro dialog.
- IspezionePage: "Concludi ispezione" si blocca se ci sono bozze,
"Esporta reparto" le salta, chip "N da completare" per reparto.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
61 lines
1.7 KiB
C#
61 lines
1.7 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using SteUp.Shared.Core.Dto;
|
|
|
|
namespace SteUp.Shared.Core.Entities;
|
|
|
|
public class Scheda : EntityBase<Scheda>
|
|
{
|
|
[Key]
|
|
public int Id { get; set; }
|
|
public string? ActivityId { get; set; }
|
|
public string? CodJfas { get; set; }
|
|
|
|
[Required]
|
|
public string CodMdep { get; set; } = string.Empty;
|
|
public DateTime Data { get; set; }
|
|
[Required]
|
|
public string Rilevatore { get; set; } = string.Empty;
|
|
public Ispezione? Ispezione { get; set; }
|
|
|
|
public List<SchedaArticolo> Articoli { get; set; } = [];
|
|
public List<string>? ImageNames { get; set; }
|
|
|
|
/// <summary>
|
|
/// Scheda salvata in locale ma non ancora completata (es. uscita dal form con lavoro in corso).
|
|
/// Non viene mai inviata al server finché il rilevatore non la conclude.
|
|
/// </summary>
|
|
public bool Bozza { get; set; }
|
|
|
|
public string? DescrizioneReparto { get; set; }
|
|
public string? ActivityTypeId { get; set; }
|
|
public string? Note { get; set; }
|
|
public string? Responsabile { get; set; }
|
|
public int Scadenza { get; set; }
|
|
|
|
[NotMapped]
|
|
public JtbFasiDto? Reparto
|
|
{
|
|
get
|
|
{
|
|
if (field == null && CodJfas != null)
|
|
{
|
|
field = new JtbFasiDto
|
|
{
|
|
CodJfas = CodJfas,
|
|
Descrizione = DescrizioneReparto
|
|
};
|
|
}
|
|
|
|
return field;
|
|
}
|
|
set
|
|
{
|
|
field = value;
|
|
if (value == null) return;
|
|
|
|
CodJfas = value.CodJfas;
|
|
DescrizioneReparto = value.Descrizione;
|
|
}
|
|
}
|
|
} |