+function bank_month_sql($ctx, $month=false) {
+ global $bank_table;
+ $month_sql = 'TRUE';
+ if(!is_bool($month)) {
+ $month_q = $ctx->db->quote($month);
+ $month_sql .= " AND DATE_FORMAT(${bank_table}_time, '%Y-%m') = ".$month_q;
+ }
+ return $month_sql;
+}
+
+function bank_get_total($ctx, $account, $month, $string=false) {
+ global $bank_table;
+ $account_sql=$ctx->db->quote($account);
+ $result = $ctx->db->safe_query_fetch("SELECT SUM(${bank_table}_amount) FROM `${bank_table}` WHERE `${bank_table}_to`=$account_sql AND ".bank_month_sql($ctx,$month).';');
+ $deposits = $result[0]["SUM(${bank_table}_amount)"];
+ $result = $ctx->db->safe_query_fetch("SELECT SUM(${bank_table}_amount) FROM `${bank_table}` WHERE `${bank_table}_from`=$account_sql AND (".bank_month_sql($ctx,$month).');');
+ $withdrawals = $result[0]["SUM(${bank_table}_amount)"];
+ if($string) return "$deposits-$withdrawals";
+ return $deposits-$withdrawals;
+}
+function bank_rename_account($ctx, $old, $new) {
+ global $bank_table;
+ if(in_array($new, bank_get_accounts($ctx, true))) return false;
+ $old=$ctx->db->quote($old);
+ $new=$ctx->db->quote($new);
+
+ return $ctx->db->safe_query(
+ "START TRANSACTION;".
+ "UPDATE ${bank_table} SET `${bank_table}_to`=$new WHERE `${bank_table}_to`=$old;".
+ "UPDATE ${bank_table} SET `${bank_table}_from`=$new WHERE `${bank_table}_from`=$old;".
+ "COMMIT;"
+ );
+}
+
+function bank_get_overview($ctx,$prefix='',$month=false) {
+ global $bank_table;
+ $accounts = bank_get_accounts($ctx);
+ foreach($accounts as $acc) {
+ $total=bank_get_total($ctx, $acc, $month);
+ $overview['table'][]=array("${prefix}account"=>$acc,"${prefix}total"=>$total);
+ $overview['array'][$acc]=$total;
+ }
+ return $overview;
+}
+
+if(isset($bank_json_only) && $bank_json_only) {
+ $overview=bank_get_overview($this,'');
+ die(json_encode(array(
+ 'overview'=>$overview['array']
+ )));
+}
+