From a79d89ad7a6d51ba36a79a74f969c5076862e338 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Mon, 16 Jul 2018 16:49:27 +0200 Subject: database: add add_category(name) --- src/database/database.vala | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/database/database.vala') diff --git a/src/database/database.vala b/src/database/database.vala index cd2b947..ab9c5d2 100644 --- a/src/database/database.vala +++ b/src/database/database.vala @@ -127,6 +127,7 @@ public class DataBase : Object { queries["user_disable"] = "UPDATE users SET disabled = ? WHERE id = ?"; queries["last_timestamp"] = "SELECT timestamp FROM sales ORDER BY timestamp DESC LIMIT 1"; queries["category_list"] = "SELECT id, name FROM categories"; + queries["category_add"] = "INSERT INTO categories('name') VALUES (?)"; 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 (?, ?, ?, ?, ?, ?)"; @@ -966,6 +967,23 @@ public class DataBase : Object { return result; } + public void add_category(string name) throws DBusError, IOError, DatabaseError { + /* check if category already exists */ + foreach(var c in get_category_list()) { + if(name == c.name) { + return; + } + } + + statements["category_add"].reset(); + statements["category_add"].bind_text(1, name); + int rc = statements["category_add"].step(); + + if(rc != Sqlite.DONE) { + throw new DatabaseError.INTERNAL_ERROR(_("internal error: %d"), rc); + } + } + public Supplier[] get_supplier_list() throws DBusError, IOError, DatabaseError { Supplier[] result = {}; -- cgit v1.2.3