summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/database/database.vala14
-rw-r--r--src/database/db-interface.vala1
2 files changed, 15 insertions, 0 deletions
diff --git a/src/database/database.vala b/src/database/database.vala
index 31b0ad4..28abb00 100644
--- a/src/database/database.vala
+++ b/src/database/database.vala
@@ -121,6 +121,7 @@ public class DataBase : Object {
queries["supplier_list"] = "SELECT id, name, postal_code, city, street, phone, website FROM supplier";
queries["supplier_get"] = "SELECT id, name, postal_code, city, street, phone, website FROM supplier WHERE id = ?";
queries["supplier_add"] = "INSERT INTO supplier('name', 'postal_code', 'city', 'street', 'phone', 'website') VALUES (?, ?, ?, ?, ?, ?)";
+ queries["users_with_sales"] = "SELECT user FROM sales WHERE timestamp > ? AND timestamp < ? GROUP BY user;";
/* compile queries into statements */
foreach(var entry in queries.entries) {
@@ -838,4 +839,17 @@ public class DataBase : Object {
throw new DatabaseError.INTERNAL_ERROR("internal error: %d", rc);
}
}
+
+ public int[] get_users_with_sales(int64 timestamp_from, int64 timestamp_to) {
+ var result = new int[0];
+ statements["users_with_sales"].reset();
+ statements["users_with_sales"].bind_int64(1, timestamp_from);
+ statements["users_with_sales"].bind_int64(2, timestamp_to);
+
+ while(statements["users_with_sales"].step() == Sqlite.ROW) {
+ result += statements["users_with_sales"].column_int(0);
+ }
+
+ return result;
+ }
}
diff --git a/src/database/db-interface.vala b/src/database/db-interface.vala
index f90069a..115dd81 100644
--- a/src/database/db-interface.vala
+++ b/src/database/db-interface.vala
@@ -47,6 +47,7 @@ public interface Database : Object {
public abstract Supplier[] get_supplier_list() throws IOError;
public abstract Supplier get_supplier(int id) throws IOError;
public abstract bool add_supplier(string name, string postal_code, string city, string street, string phone, string website) throws IOError, DatabaseError;
+ public abstract int[] get_users_with_sales(int64 timestamp_from, int64 timestamp_to) throws IOError;
}
public struct StockEntry {