diff options
author | Sebastian Reichel <sre@ring0.de> | 2013-06-15 22:29:34 +0200 |
---|---|---|
committer | Sebastian Reichel <sre@ring0.de> | 2013-06-15 22:29:34 +0200 |
commit | 8504754a40d47b69b0aa1e786f0b1db45405a3fd (patch) | |
tree | aa9387f754a8e6566ba62851e81e69e89f420675 /src/database/database.vala | |
parent | 62aef7b43e682d632749c716b64c496f1f70ca2b (diff) | |
download | serial-barcode-scanner-8504754a40d47b69b0aa1e786f0b1db45405a3fd.tar.bz2 |
cashbox tracking
Diffstat (limited to 'src/database/database.vala')
-rw-r--r-- | src/database/database.vala | 27 |
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); + } + + } } |