promozioni_dao.dart 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import 'package:drift/drift.dart';
  2. import '../database.dart';
  3. class PromozioniDao {
  4. final AppDatabase db;
  5. PromozioniDao(this.db);
  6. Future<List<Promozione>> getActivePromos(String today) {
  7. return (db.select(db.promozioni)
  8. ..where((t) =>
  9. (t.dataInizio.isNull() | t.dataInizio.equals('').not()) &
  10. (t.stato.isNull() | t.stato.equals('A')))
  11. ..orderBy([(t) => OrderingTerm(expression: t.priorita)]))
  12. .get();
  13. }
  14. Future<List<Promozione>> getPromosForItem(
  15. int idArticolo, String today) async {
  16. final allPromos = await getActivePromos(today);
  17. final result = <Promozione>[];
  18. for (final p in allPromos) {
  19. final articles = await getPromoArticoli(p.progressivo);
  20. final has = articles.any((a) => a.idArticolo == idArticolo);
  21. if (has) result.add(p);
  22. }
  23. return result;
  24. }
  25. Future<List<PromoArticolo>> getPromoArticoli(int progressivo) {
  26. return (db.select(db.promoArticoli)
  27. ..where((t) => t.progressivo.equals(progressivo)))
  28. .get();
  29. }
  30. Future<List<PromoListino>> getPromoListini(int progressivo) {
  31. return (db.select(db.promoListini)
  32. ..where((t) => t.progressivo.equals(progressivo)))
  33. .get();
  34. }
  35. Future<List<PromoOmaggio>> getPromoOmaggi(int progressivo) {
  36. return (db.select(db.promoOmaggi)
  37. ..where((t) => t.progressivo.equals(progressivo)))
  38. .get();
  39. }
  40. Future<void> zapAll() {
  41. return db.transaction(() async {
  42. await db.delete(db.promoOmaggi).go();
  43. await db.delete(db.promoListini).go();
  44. await db.delete(db.promoArticoli).go();
  45. await db.delete(db.promozioni).go();
  46. });
  47. }
  48. Future<int> insertPromozione(Promozione promo) {
  49. return db.into(db.promozioni).insert(promo);
  50. }
  51. Future<int> insertPromoArticolo(PromoArticolo art) {
  52. return db.into(db.promoArticoli).insert(art);
  53. }
  54. Future<int> insertPromoListino(PromoListino list) {
  55. return db.into(db.promoListini).insert(list);
  56. }
  57. Future<int> insertPromoOmaggio(PromoOmaggio om) {
  58. return db.into(db.promoOmaggi).insert(om);
  59. }
  60. }