listini_dao.dart 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import 'package:drift/drift.dart';
  2. import '../database.dart';
  3. class ListiniDao {
  4. final AppDatabase db;
  5. ListiniDao(this.db);
  6. Future<List<Listino>> list() {
  7. return (db.select(db.listini)
  8. ..where(
  9. (t) =>
  10. t.codListino.like('OF2').not() &
  11. t.codListino.like('OF4').not() &
  12. t.codListino.like('I0').not() &
  13. t.codListino.like('A0').not(),
  14. )
  15. ..orderBy([(t) => OrderingTerm(expression: t.codListino)]))
  16. .get();
  17. }
  18. Future<List<Listino>> listSenzaFiltro() {
  19. return (db.select(
  20. db.listini,
  21. )..orderBy([(t) => OrderingTerm(expression: t.descrizione)])).get();
  22. }
  23. Future<Listino?> findByCod(String code) {
  24. return (db.select(
  25. db.listini,
  26. )..where((t) => t.codListino.equals(code))).getSingleOrNull();
  27. }
  28. Future<ListinoArticolo?> findListinoArticolo(int idListino, int idArticolo) {
  29. return (db.select(db.listiniArticolo)..where(
  30. (t) =>
  31. t.idListino.equals(idListino) & t.idArticolo.equals(idArticolo),
  32. ))
  33. .getSingleOrNull();
  34. }
  35. Future<ListinoCliente?> getListinoCliente(
  36. int idCliente,
  37. int idArticolo,
  38. String date,
  39. ) {
  40. return (db.select(db.listiniCliente)
  41. ..where(
  42. (t) =>
  43. t.idCliente.equals(idCliente) &
  44. t.idArticolo.equals(idArticolo) &
  45. (t.attivo.equals(1)) &
  46. (t.annullato.equals('N')),
  47. )
  48. ..orderBy([
  49. (t) =>
  50. OrderingTerm(expression: t.validoDa, mode: OrderingMode.desc),
  51. ])
  52. ..limit(1))
  53. .getSingleOrNull();
  54. }
  55. Future<List<Listino>> getListiniPerArticolo(
  56. int idArticolo,
  57. String dataOrdine,
  58. ) {
  59. return (db.select(db.listini)
  60. ..join([
  61. innerJoin(
  62. db.listiniArticolo,
  63. db.listiniArticolo.idListino.equalsExp(db.listini.idListino) &
  64. db.listiniArticolo.idArticolo.equals(idArticolo),
  65. ),
  66. ])
  67. ..where(
  68. (t) =>
  69. db.listiniArticolo.attivo.equals(1) &
  70. db.listiniArticolo.validoDa.isSmallerOrEqualValue(dataOrdine) &
  71. db.listiniArticolo.validoA.isBiggerOrEqualValue(dataOrdine) &
  72. t.codListino.isNotNull() &
  73. t.codListino.like('OF2').not() &
  74. t.codListino.like('OF4').not() &
  75. t.codListino.like('I0').not(),
  76. ))
  77. .get();
  78. }
  79. }