listini_dao.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 'package:drift/drift.dart';
  2. import '../database.dart';
  3. import '../tables/listini.dart';
  4. import '../tables/listini_articolo.dart';
  5. import '../tables/listini_cliente.dart';
  6. class ListiniDao {
  7. final AppDatabase db;
  8. ListiniDao(this.db);
  9. Future<List<Listino>> list() {
  10. return (db.select(db.listini)
  11. ..where((t) =>
  12. t.codListino.like('OF2').not() &
  13. t.codListino.like('OF4').not() &
  14. t.codListino.like('I0').not()
  15. )
  16. ..orderBy([(t) => OrderingTerm(expression: t.descrizione)])
  17. ).get();
  18. }
  19. Future<List<Listino>> listSenzaFiltro() {
  20. return (db.select(db.listini)..orderBy([(t) => OrderingTerm(expression: t.descrizione)])).get();
  21. }
  22. Future<Listino?> findByCod(String code) {
  23. return (db.select(db.listini)..where((t) => t.codListino.equals(code))).getSingleOrNull();
  24. }
  25. Future<ListinoArticolo?> findListinoArticolo(int idListino, int idArticolo) {
  26. return (db.select(db.listiniArticolo)
  27. ..where((t) => t.idListino.equals(idListino) & t.idArticolo.equals(idArticolo))
  28. ).getSingleOrNull();
  29. }
  30. Future<ListinoCliente?> getListinoCliente(int idCliente, int idArticolo, String date) {
  31. return (db.select(db.listiniCliente)
  32. ..where((t) =>
  33. t.idCliente.equals(idCliente) &
  34. t.idArticolo.equals(idArticolo) &
  35. (t.attivo.equals(1)) &
  36. (t.annullato.equals('N'))
  37. )
  38. ..orderBy([(t) => OrderingTerm(expression: t.validoDa, mode: OrderingMode.desc)])
  39. ..limit(1)
  40. ).getSingleOrNull();
  41. }
  42. }