feat-add-files-from-qr (#8)

Reviewed-on: http://catelliub.zapto.org:3000/brontomark/flux/pulls/8
Co-authored-by: Mark M2 Macbook <marco@catelli.it>
Co-committed-by: Mark M2 Macbook <marco@catelli.it>
This commit is contained in:
2026-04-26 10:15:34 +02:00
committed by brontomark
parent 90bd5ecacf
commit 1c2bcf9df7
46 changed files with 2376 additions and 327 deletions

View File

@@ -37,39 +37,6 @@ class _CustomersContentState extends State<CustomersContent> {
}
}
/// Funzione unica per gestire Creazione e Modifica
void _openCustomerForm({CustomerModel? customer}) {
showDialog(
context: context,
builder: (dialogContext) => AlertDialog(
backgroundColor: context.background,
content: SizedBox(
width: 500, // Larghezza ottimale per desktop
child: CustomerForm(
customer: customer,
onSave: (customerFromForm) {
final session = context.read<SessionCubit>().state;
final companyId = session.company?.id;
if (companyId == null) return;
if (customer == null) {
// CASO NUOVO: Iniettiamo il companyId e inviamo l'evento create
context.read<CustomerCubit>().createCustomer(
customerFromForm.copyWith(companyId: companyId),
);
} else {
// CASO MODIFICA: L'ID e il companyId sono già nel modello
context.read<CustomerCubit>().updateCustomer(customerFromForm);
}
Navigator.pop(dialogContext);
},
),
),
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -85,7 +52,7 @@ class _CustomersContentState extends State<CustomersContent> {
Padding(
padding: const EdgeInsets.only(right: 16),
child: ElevatedButton.icon(
onPressed: () => _openCustomerForm(),
onPressed: () => openCustomerForm(context: context),
icon: const Icon(Icons.person_add_alt_1_rounded, size: 20),
label: const Text('NUOVO'),
style: ElevatedButton.styleFrom(
@@ -244,8 +211,48 @@ class _CustomerTile extends StatelessWidget {
],
),
),
trailing: Icon(Icons.edit_note_rounded, color: context.accent),
trailing: IconButton(
onPressed: () =>
openCustomerForm(context: context, customer: customer),
icon: Icon(Icons.edit_note_rounded, color: context.accent),
),
),
);
}
}
/// Funzione unica per gestire Creazione e Modifica
void openCustomerForm({
CustomerModel? customer,
required BuildContext context,
}) {
showDialog(
context: context,
builder: (dialogContext) => AlertDialog(
backgroundColor: context.background,
content: SizedBox(
width: 500, // Larghezza ottimale per desktop
child: CustomerForm(
customer: customer,
onSave: (customerFromForm) {
final session = context.read<SessionCubit>().state;
final companyId = session.company?.id;
if (companyId == null) return;
if (customer == null) {
// CASO NUOVO: Iniettiamo il companyId e inviamo l'evento create
context.read<CustomerCubit>().createCustomer(
customerFromForm.copyWith(companyId: companyId),
);
} else {
// CASO MODIFICA: L'ID e il companyId sono già nel modello
context.read<CustomerCubit>().updateCustomer(customerFromForm);
}
Navigator.pop(dialogContext);
},
),
),
),
);
}