| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import 'package:drift/drift.dart';
- import '../database.dart';
- class FilialiDao {
- final AppDatabase db;
- FilialiDao(this.db);
- Future<List<Filiale>> getDestinationsForCustomer(int idCliente) {
- return (db.select(db.filiali)
- ..where((t) => t.idCliente.equals(idCliente) & (t.attivo.equals(1) | t.attivo.isNull()))
- ..orderBy([(t) => OrderingTerm(expression: t.descrizione)])
- ).get();
- }
- Future<Filiale?> getById(int id) {
- return (db.select(db.filiali)..where((t) => t.idFiliale.equals(id))).getSingleOrNull();
- }
- Future<Filiale?> getByRemoteId(int remoteId) {
- return (db.select(db.filiali)..where((t) => t.idFilialeRemoto.equals(remoteId))).getSingleOrNull();
- }
- Future<Filiale?> getByCode(String code) {
- return (db.select(db.filiali)..where((t) => t.codFiliale.equals(code))).getSingleOrNull();
- }
- Future<List<Filiale>> getNewDestinations() {
- return (db.select(db.filiali)..where((t) => t.stato.equals('N'))).get();
- }
- Future<int> countNewDestinations() async {
- final rows = await (db.select(db.filiali)..where((t) => t.stato.equals('N'))).get();
- return rows.length;
- }
- Future<void> markAsSent(int idFiliale) {
- return (db.update(db.filiali)..where((t) => t.idFiliale.equals(idFiliale)))
- .write(FilialiCompanion(stato: const Value('T')));
- }
- Future<void> markAllAsSent() {
- return (db.update(db.filiali)..where((t) => t.stato.equals('N')))
- .write(FilialiCompanion(stato: const Value('T')));
- }
- Future<int> insertFiliale(Filiale entry) {
- return db.into(db.filiali).insert(entry);
- }
- Future<bool> checkCodeDuplicate(String code, int idCliente) async {
- final existing = await (db.select(db.filiali)
- ..where((t) => t.codFiliale.equals(code) & t.idCliente.equals(idCliente))
- ).get();
- return existing.isNotEmpty;
- }
- }
|