diff --git a/ddbank.sh b/ddbank.sh index 76a64e3..a2dcd27 100755 --- a/ddbank.sh +++ b/ddbank.sh @@ -72,7 +72,7 @@ list_balance() { echo "2) Exact User Search" echo "3) User Search" echo "" - echo "0) Go back." + echo "q) Go back." echo "" read -n1 -p "*Balance Menu: Select from the above: " ii echo "" @@ -102,7 +102,7 @@ do echo "3) Transfer" echo "4) Quick balance check" echo "" - echo "0) Go Back" + echo "q) Go Back" echo "" read -n1 -p "*Banking Menu: Select from the above: " ii_bank echo "" @@ -137,24 +137,59 @@ do read -p "Transer to user: " tran_user2 read -p "Amount to transfer: " tran_amt # Grabs user IDs. - tran_user1_id=$($db_conn "select id,username,balance from account join balance using (id) where username='$tran_user1';" | awk 'FNR == 3' | awk -F\| '{print $1}') - tran_user2_id=$($db_conn "select id,username,balance from account join balance using (id) where username='$tran_user2';" | awk 'FNR == 3' | awk -F\| '{print $1}') + tran_user1_id=$($db_conn "select id,username,balance from account join balance using (id) where username='$tran_user1';" | awk 'FNR == 3' | awk -F\| '{print $1}') || echo "Invalid user!"; + tran_user2_id=$($db_conn "select id,username,balance from account join balance using (id) where username='$tran_user2';" | awk 'FNR == 3' | awk -F\| '{print $1}') || echo "Invalid user!"; # Does the math to complete the transfer. tran1_new_amt=$($db_conn "select balance - '$tran_amt' from balance where id = '$tran_user1_id';" | awk 'FNR ==3') tran2_new_amt=$($db_conn "select balance + '$tran_amt' from balance where id = '$tran_user2_id';" | awk 'FNR ==3') # Updates the database with the new amounts. $db_conn "update balance set balance = '$tran1_new_amt' where id = '$tran_user1_id';" - $db_conn "update balance set balance = '$tran2_new_amt' where id = '$tran_user2_id';" ;; - 4 ) $db_conn "select id,username,balance from account join balance using (id) where username='$LAST_USER';" ;; - - + $db_conn "update balance set balance = '$tran2_new_amt' where id = '$tran_user2_id';" + # Transactioning + $db_conn "insert into transaction (id,username,amount,timestamp) values ('$tran_user1_id','$tran_user1','-$tran_amt','now');" + LAST_USER=$tran_user1 ;; + + 4 ) $db_conn "select id,username,balance from account join balance using (id) where username='$LAST_USER';" ;; - * ) clear ;; esac done } +tran_menu() { +clear +while true +do + echo "" + echo "1) Show Transactions for user" + echo "2) Show last # Transactions." + echo "" + echo "q) Go back." + echo :: + read -n1 -p "*Transaction Menu: Select from above: " ii_tmenu + case $ii_tmenu in + 1 ) echo "" + read -p "Transactions for user: " tmenu_user + read -p "Number of transactions: (0 for no limit) " tmenu_num1 + if [ $tmenu_num1 = 0 ]; then { + tmenu_num1=all + } fi + $db_conn "select id,username,amount,timestamp from transaction where username = '$tmenu_user' order by timestamp DESC limit $tmenu_num1;" ;; + 2 ) echo "" + read -p "Number of transactions: " tmenu_num2 + if [ $tmenu_num2 = 0 ]; then { + tmenu_num2=all + } fi + $db_conn "select id,username,amount,timestamp from transaction order by timestamp DESC limit $tmenu_num2;" +;; + [0q] ) break ;; + * ) clear ;; + + esac +done +} + + clear while true do @@ -165,6 +200,7 @@ do echo "2) List user accounts." echo "3) List user(s) balance." echo "4) Banking Menu (Deposit, withdraw, transfer)" + echo "5) Transaction Menu" echo "" echo "9) Clear contents of screen" echo "0) Exit" @@ -175,6 +211,7 @@ do 2 ) list_user ;; 3 ) list_balance ;; 4 ) bank_menu ;; + 5 ) tran_menu ;; 9 ) clear ;; 0 ) break ;; * ) clear ;;