filiali_dao.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import 'package:drift/drift.dart';
  2. import '../database.dart';
  3. class FilialiDao {
  4. final AppDatabase db;
  5. FilialiDao(this.db);
  6. Future<List<Filiale>> getDestinationsForCustomer(int idCliente) {
  7. return (db.select(db.filiali)
  8. ..where((t) => t.idCliente.equals(idCliente) & (t.attivo.equals(1) | t.attivo.isNull()))
  9. ..orderBy([(t) => OrderingTerm(expression: t.descrizione)])
  10. ).get();
  11. }
  12. Future<Filiale?> getById(int id) {
  13. return (db.select(db.filiali)..where((t) => t.idFiliale.equals(id))).getSingleOrNull();
  14. }
  15. Future<Filiale?> getByRemoteId(int remoteId) {
  16. return (db.select(db.filiali)..where((t) => t.idFilialeRemoto.equals(remoteId))).getSingleOrNull();
  17. }
  18. Future<Filiale?> getByCode(String code) {
  19. return (db.select(db.filiali)..where((t) => t.codFiliale.equals(code))).getSingleOrNull();
  20. }
  21. Future<List<Filiale>> getNewDestinations() {
  22. return (db.select(db.filiali)..where((t) => t.stato.equals('N'))).get();
  23. }
  24. Future<int> countNewDestinations() async {
  25. final rows = await (db.select(db.filiali)..where((t) => t.stato.equals('N'))).get();
  26. return rows.length;
  27. }
  28. Future<void> markAsSent(int idFiliale) {
  29. return (db.update(db.filiali)..where((t) => t.idFiliale.equals(idFiliale)))
  30. .write(FilialiCompanion(stato: const Value('T')));
  31. }
  32. Future<void> markAllAsSent() {
  33. return (db.update(db.filiali)..where((t) => t.stato.equals('N')))
  34. .write(FilialiCompanion(stato: const Value('T')));
  35. }
  36. Future<int> insertFiliale(Filiale entry) {
  37. return db.into(db.filiali).insert(entry);
  38. }
  39. Future<bool> checkCodeDuplicate(String code, int idCliente) async {
  40. final existing = await (db.select(db.filiali)
  41. ..where((t) => t.codFiliale.equals(code) & t.idCliente.equals(idCliente))
  42. ).get();
  43. return existing.isNotEmpty;
  44. }
  45. }