summaryrefslogtreecommitdiffstats
path: root/src/database/database.vala
diff options
context:
space:
mode:
authorSebastian Reichel <sre@ring0.de>2013-06-15 22:29:34 +0200
committerSebastian Reichel <sre@ring0.de>2013-06-15 22:29:34 +0200
commit8504754a40d47b69b0aa1e786f0b1db45405a3fd (patch)
treeaa9387f754a8e6566ba62851e81e69e89f420675 /src/database/database.vala
parent62aef7b43e682d632749c716b64c496f1f70ca2b (diff)
downloadserial-barcode-scanner-8504754a40d47b69b0aa1e786f0b1db45405a3fd.tar.bz2
cashbox tracking
Diffstat (limited to 'src/database/database.vala')
-rw-r--r--src/database/database.vala27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/database/database.vala b/src/database/database.vala
index 05c789d..8c48588 100644
--- a/src/database/database.vala
+++ b/src/database/database.vala
@@ -123,6 +123,8 @@ public class DataBase : Object {
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";
queries["user_invoice_sum"] = "SELECT SUM(price) FROM invoice WHERE user = ? AND timestamp > ? AND timestamp < ?";
+ queries["cashbox_status"] = "SELECT amount FROM current_cashbox_status";
+ queries["cashbox_add"] = "INSERT INTO cashbox_diff ('user', 'amount', 'timestamp') VALUES (?, ?, ?)";
/* compile queries into statements */
foreach(var entry in queries.entries) {
@@ -867,4 +869,29 @@ public class DataBase : Object {
return result;
}
+
+ public Price cashbox_status() {
+ Price result = 0;
+
+ statements["cashbox_status"].reset();
+
+ if(statements["cashbox_status"].step() == Sqlite.ROW)
+ result = statements["cashbox_status"].column_int(0);
+
+ return result;
+ }
+
+ public void cashbox_add(int user, Price amount, int64 timestamp) throws DatabaseError {
+ statements["cashbox_add"].reset();
+ statements["cashbox_add"].bind_int(1, user);
+ statements["cashbox_add"].bind_int(2, amount);
+ statements["cashbox_add"].bind_int64(3, timestamp);
+
+ int rc = statements["cashbox_add"].step();
+
+ if(rc != Sqlite.DONE) {
+ throw new DatabaseError.INTERNAL_ERROR("internal error: %d", rc);
+ }
+
+ }
}