| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import 'package:drift/drift.dart';
- import '../database.dart';
- import '../tables/promozioni.dart';
- import '../tables/promo_articoli.dart';
- import '../tables/promo_listini.dart';
- import '../tables/promo_omaggi.dart';
- class PromozioniDao {
- final AppDatabase db;
- PromozioniDao(this.db);
- Future<List<Promozione>> getActivePromos(String today) {
- return (db.select(db.promozioni)
- ..where((t) =>
- (t.dataInizio.isNull() | t.dataInizio.equals('').not()) &
- (t.stato.isNull() | t.stato.equals('A'))
- )
- ..orderBy([(t) => OrderingTerm(expression: t.priorita)])
- ).get();
- }
- Future<List<Promozione>> getPromosForItem(int idArticolo, String today) async {
- final allPromos = await getActivePromos(today);
- final result = <Promozione>[];
- for (final p in allPromos) {
- final articles = await getPromoArticoli(p.progressivo);
- final has = articles.any((a) => a.idArticolo == idArticolo);
- if (has) result.add(p);
- }
- return result;
- }
- Future<List<PromoArticolo>> getPromoArticoli(int progressivo) {
- return (db.select(db.promoArticoli)..where((t) => t.progressivo.equals(progressivo))).get();
- }
- Future<List<PromoListino>> getPromoListini(int progressivo) {
- return (db.select(db.promoListini)..where((t) => t.progressivo.equals(progressivo))).get();
- }
- Future<List<PromoOmaggio>> getPromoOmaggi(int progressivo) {
- return (db.select(db.promoOmaggi)..where((t) => t.progressivo.equals(progressivo))).get();
- }
- Future<void> zapAll() {
- return db.transaction(() async {
- await db.delete(db.promoOmaggi).go();
- await db.delete(db.promoListini).go();
- await db.delete(db.promoArticoli).go();
- await db.delete(db.promozioni).go();
- });
- }
- Future<int> insertPromozione(Promozione promo) {
- return db.into(db.promozioni).insert(promo);
- }
- Future<int> insertPromoArticolo(PromoArticolo art) {
- return db.into(db.promoArticoli).insert(art);
- }
- Future<int> insertPromoListino(PromoListino list) {
- return db.into(db.promoListini).insert(list);
- }
- Future<int> insertPromoOmaggio(PromoOmaggio om) {
- return db.into(db.promoOmaggi).insert(om);
- }
- }
|