summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/database/database.vala7
-rw-r--r--src/database/db-interface.vala2
-rw-r--r--src/scanner-session/scannersession.vala5
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");