From 36cf19638ec05693c88bd6b984e3691769c85803 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Sun, 28 Apr 2013 21:58:08 +0200 Subject: report sale removal to UI --- src/database/database.vala | 7 ++++--- src/database/db-interface.vala | 2 +- src/scanner-session/scannersession.vala | 5 ++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/database/database.vala b/src/database/database.vala index fc5c6bf..31b0ad4 100644 --- a/src/database/database.vala +++ b/src/database/database.vala @@ -386,9 +386,10 @@ public class DataBase : Object { } } - public bool undo(int32 user) throws DatabaseError { + public string undo(int32 user) throws DatabaseError { uint64 pid = 0; int rc = 0; + string pname; statements["last_purchase"].reset(); statements["last_purchase"].bind_int(1, user); @@ -397,7 +398,7 @@ public class DataBase : Object { switch(rc) { case Sqlite.ROW: pid = uint64.parse(statements["last_purchase"].column_text(0)); - string pname = get_product_name(pid); + pname = get_product_name(pid); write_to_log("Remove purchase of %s", pname); break; case Sqlite.DONE: @@ -413,7 +414,7 @@ public class DataBase : Object { if(rc != Sqlite.DONE) throw new DatabaseError.INTERNAL_ERROR("internal error: %d", rc); - return true; + return pname; } public void restock(int user, uint64 product, uint amount, uint price, int supplier, int64 best_before_date) throws DatabaseError { diff --git a/src/database/db-interface.vala b/src/database/db-interface.vala index be9ffba..d01e9c3 100644 --- a/src/database/db-interface.vala +++ b/src/database/db-interface.vala @@ -22,7 +22,7 @@ public interface Database : Object { public abstract string get_product_name(uint64 article) throws IOError, DatabaseError; public abstract int get_product_amount(uint64 article) throws IOError, DatabaseError; public abstract Price get_product_price(int user, uint64 article) throws IOError, DatabaseError; - public abstract bool undo(int32 user) throws IOError, DatabaseError; + public abstract string undo(int32 user) throws IOError, DatabaseError; public abstract bool restock(int user, uint64 product, uint amount, uint price, int supplier, int64 best_before_date) throws IOError, DatabaseError; public abstract bool new_product(uint64 id, string name, int memberprice, int guestprice) throws IOError, DatabaseError; public abstract bool new_price(uint64 product, int64 timestamp, int memberprice, int guestprice) throws IOError, DatabaseError; diff --git a/src/scanner-session/scannersession.vala b/src/scanner-session/scannersession.vala index 99264fc..9cc3e26 100644 --- a/src/scanner-session/scannersession.vala +++ b/src/scanner-session/scannersession.vala @@ -129,8 +129,11 @@ public class ScannerSessionImplementation { send_message(MessageType.ERROR, "Can't undo if not logged in!"); return false; } else { - if(db.undo(user)) { + string product = db.undo(user); + + if(product != "") { audio.play_user(theme, "purchase"); + send_message(MessageType.INFO, "Removed purchase of %s", product); return true; } else { audio.play_user(theme, "error"); -- cgit v1.2.3