| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import 'package:drift/drift.dart';
- import '../database.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);
- }
- }
|