import 'package:drift/drift.dart'; import '../database.dart'; import '../tables/listini.dart'; import '../tables/listini_articolo.dart'; import '../tables/listini_cliente.dart'; class ListiniDao { final AppDatabase db; ListiniDao(this.db); Future> list() { return (db.select(db.listini) ..where((t) => t.codListino.like('OF2').not() & t.codListino.like('OF4').not() & t.codListino.like('I0').not() ) ..orderBy([(t) => OrderingTerm(expression: t.descrizione)]) ).get(); } Future> listSenzaFiltro() { return (db.select(db.listini)..orderBy([(t) => OrderingTerm(expression: t.descrizione)])).get(); } Future findByCod(String code) { return (db.select(db.listini)..where((t) => t.codListino.equals(code))).getSingleOrNull(); } Future findListinoArticolo(int idListino, int idArticolo) { return (db.select(db.listiniArticolo) ..where((t) => t.idListino.equals(idListino) & t.idArticolo.equals(idArticolo)) ).getSingleOrNull(); } Future getListinoCliente(int idCliente, int idArticolo, String date) { return (db.select(db.listiniCliente) ..where((t) => t.idCliente.equals(idCliente) & t.idArticolo.equals(idArticolo) & (t.attivo.equals(1)) & (t.annullato.equals('N')) ) ..orderBy([(t) => OrderingTerm(expression: t.validoDa, mode: OrderingMode.desc)]) ..limit(1) ).getSingleOrNull(); } }