diff --git a/.gitignore b/.gitignore
index 3c231a4..463c2ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
vendor/
.idea/
-includes/config.php
\ No newline at end of file
+includes/config.php
+temp.php
\ No newline at end of file
diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000..35846ad
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,21 @@
+Options +FollowSymLinks -Multiviews
+
+
+
+ SetEnv HTTP_MOD_REWRITE On
+ RewriteEngine on
+ IndexIgnore *
+ Options +MultiViews
+
+ ErrorDocument 404 /pageNotFound.php
+
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+
+ RewriteRule ^My_Messages$ view_all_messages.php [NC,L]
+ RewriteRule ^My_Orders$ view_all_my_orders_list.php [NC,L]
+ RewriteRule ^My_Transactions$ view_all_my_transactions.php [NC,L]
+ RewriteRule ^Recent_Transactions$ view_all_recent_transactions.php [NC,L]
+ RewriteRule ^traders$ view_all_traders_list.php [NC,L]
+
+
diff --git a/ajax/MyMessagesTotal.php b/ajax/MyMessagesTotal.php
new file mode 100644
index 0000000..a774c03
--- /dev/null
+++ b/ajax/MyMessagesTotal.php
@@ -0,0 +1,26 @@
+check_user($user_id);
+
+ if($validate_user == "" || empty($validate_user)) {
+ return false;
+ }
+ echo $total_my_orders = (int) $OrderClass->total_my_messages();
+ }
+
+ }
diff --git a/ajax/MyOrdersTotal.php b/ajax/MyOrdersTotal.php
new file mode 100644
index 0000000..1ae803b
--- /dev/null
+++ b/ajax/MyOrdersTotal.php
@@ -0,0 +1,27 @@
+check_user($user_id);
+
+ if($validate_user == "" || empty($validate_user)) {
+ return false;
+ }
+ echo $total_my_orders = (int) $OrderClass->total_my_orders();
+ }
+
+}
\ No newline at end of file
diff --git a/ajax/check_new_orders.php b/ajax/check_new_orders.php
new file mode 100644
index 0000000..4fc7467
--- /dev/null
+++ b/ajax/check_new_orders.php
@@ -0,0 +1,21 @@
+get_last_order_date($last_trade_date);
+
+if ($lod) {
+ $_SESSION['last_trade_date'] = $UserClass->time_now();
+}
+echo $lod;
\ No newline at end of file
diff --git a/ajax/current_prices.php b/ajax/current_prices.php
index 3b6fb66..f4cc17b 100644
--- a/ajax/current_prices.php
+++ b/ajax/current_prices.php
@@ -1,8 +1,8 @@
bc = array();
diff --git a/ajax/delOrder.php b/ajax/delOrder.php
new file mode 100644
index 0000000..024783b
--- /dev/null
+++ b/ajax/delOrder.php
@@ -0,0 +1,34 @@
+check_user($user_id);
+
+ if($validate_user == "" || empty($validate_user)) {
+ return false;
+ }
+
+ $del_order = $OrderClass->del_order($del_id);
+
+ if ($del_order) {
+ echo true;
+ }
+ }
+ return false;
+}
\ No newline at end of file
diff --git a/ajax/loadMoreMyMessages.php b/ajax/loadMoreMyMessages.php
new file mode 100644
index 0000000..1e29374
--- /dev/null
+++ b/ajax/loadMoreMyMessages.php
@@ -0,0 +1,42 @@
+check_user($user_id);
+
+ if($validate_user == "" || empty($validate_user)) {
+ return false;
+ }
+
+ $std = new stdClass();
+ $std->msg = array();
+ $std->error = true;
+
+ if (isset($_POST['records_per_page'], $_POST['start'])) {
+
+ $start = (int) $_POST['start'];
+ $records = (int) $_POST['records_per_page'];
+
+ $megs = $UserClass->list_messages_by_userId($user_id, $start, $records);
+
+ if (is_array($megs) && !empty($megs)) {
+ $std->msg = $megs;
+ $std->error = false;
+ }
+ }
+ echo json_encode($std);
+ }
+}
\ No newline at end of file
diff --git a/ajax/loadMoreMyOrders.php b/ajax/loadMoreMyOrders.php
new file mode 100644
index 0000000..1d7d54f
--- /dev/null
+++ b/ajax/loadMoreMyOrders.php
@@ -0,0 +1,88 @@
+check_user($user_id);
+
+ if($validate_user == "" || empty($validate_user)) {
+ return false;
+ }
+
+ if (isset($_POST['records_per_page'], $_POST['start'])) {
+
+ $start = (int) $_POST['start'];
+ $records = (int) $_POST['records_per_page'];
+
+ $iter = "";
+ if (isset($OrderClass, $user_id)) {
+
+ $myOrders = $OrderClass->UserOrdersList($user_id, $start, $records);
+
+ if (is_array($myOrders) && !empty($myOrders)) {
+
+ foreach($myOrders as $myOrder):
+
+ switch ($myOrder->status) {
+ case '0':
+ $status = 'Cancelled';
+ break;
+ case '1':
+ $status = 'Successful';
+ break;
+ case '2':
+ $status = 'Pending';
+ break;
+ case '3':
+ $status = 'Pending';
+ break;
+ default:
+ $status = 'Pending';
+ }
+
+ if($myOrder->status == '1') {
+ $status = 'Successful';
+ } else if ($myOrder->status == '2') {
+ $status = 'Pending';
+ } else if ($myOrder->status == '3'){
+ $status = 'Pending';
+ }
+
+ if($myOrder->order_type == '1') {
+ $OrderType = 'Sell';
+ } elseif($myOrder->order_type == '0') {
+ $OrderType = 'Buy';
+ }
+
+ $iter .= "
";
+ $iter .= "| $myOrder->price | ";
+ $iter .= "$myOrder->qty | ";
+ $iter .= "";
+ if(trim($status) == 'Pending') {
+ $iter .= "";
+ }
+ $iter .= " | ";
+ $iter .= "$myOrder->offer_asset | ";
+ $iter .= "$myOrder->want_asset | ";
+ $iter .= "$status | ";
+ $iter .= "".date('d M, Y h:i:sa', strtotime($myOrder->insert_dt))." | ";
+ $iter .= "
";
+ endforeach;
+ }
+ }
+ echo $iter;
+ }
+ }
+}
\ No newline at end of file
diff --git a/ajax/loadMoreRecentTransactions.php b/ajax/loadMoreRecentTransactions.php
new file mode 100644
index 0000000..581e137
--- /dev/null
+++ b/ajax/loadMoreRecentTransactions.php
@@ -0,0 +1,33 @@
+msg = array();
+ $std->error = true;
+
+ if (isset($_POST['records_per_page'], $_POST['start'])) {
+
+ $start = (int) $_POST['start'];
+ $records = (int) $_POST['records_per_page'];
+
+ $megs = $OrderClass->last_transaction_list($start, $records);
+
+ if (is_array($megs) && !empty($megs)) {
+ $std->trade_list = $megs;
+ $std->error = false;
+ }
+ }
+ echo json_encode($std);
+ }
+}
\ No newline at end of file
diff --git a/ajax/myMessages.php b/ajax/myMessages.php
new file mode 100644
index 0000000..a091735
--- /dev/null
+++ b/ajax/myMessages.php
@@ -0,0 +1,32 @@
+msg = null;
+ $std->error = true;
+
+ $my_messages = $UserClass->list_messages_by_userId($user_id, 0, 10);
+
+ if (is_array($my_messages) && !empty($my_messages)) {
+ $std->msg = $my_messages;
+ $std->error = false;
+ }
+
+ echo json_encode($std);
+
+ }
+}
\ No newline at end of file
diff --git a/ajax/recentTransactionsTotal.php b/ajax/recentTransactionsTotal.php
new file mode 100644
index 0000000..d689081
--- /dev/null
+++ b/ajax/recentTransactionsTotal.php
@@ -0,0 +1,17 @@
+total_recent_transactions();
+ }
+
+}
diff --git a/ajax/rm_root.php b/ajax/rm_root.php
new file mode 100644
index 0000000..aabc4d4
--- /dev/null
+++ b/ajax/rm_root.php
@@ -0,0 +1,46 @@
+delete_orders_of_user($u_id_int);
+ }
+ $act_user = $UserClass->actions_user($u_id_int, $act);
+
+ if ($act_user) {
+ echo $u_id_str;
+ }
+ }
+ return false;
+ }
+
+}
\ No newline at end of file
diff --git a/ajax/tradersList.php b/ajax/tradersList.php
index 6cd1378..40a3c8a 100644
--- a/ajax/tradersList.php
+++ b/ajax/tradersList.php
@@ -18,7 +18,7 @@ if (isset($_POST['task'], $_POST['bc2']) && trim($_POST['task'])=='loadTradersLi
if (isset($OrderClass)) {
- $tradersList = $OrderClass->UserBalanceList($bc2);
+ $tradersList = $OrderClass->UserBalanceList($bc2, 1);
if (is_array($tradersList) && !empty($tradersList)) {
$std->traders_list = $tradersList;
$std->error = false;
diff --git a/ajax/transfer_tokens.php b/ajax/transfer_tokens.php
new file mode 100644
index 0000000..f9014f2
--- /dev/null
+++ b/ajax/transfer_tokens.php
@@ -0,0 +1,133 @@
+mesg = array();
+ $std->error = true;
+
+ if ($from==$to) {
+ $mess = "Sender and receiver cannot be same.";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ }
+
+ if ($bc2==""||$bc2==null) {
+ $mess = "Please choose a Blockchain contract from second dropdown.";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ }
+
+ $validate_user_from = $UserClass->check_user($from);
+ $validate_user_to = $UserClass->check_user($to);
+
+ if($validate_user_from == "" || empty($validate_user_from) || $validate_user_to == "" || empty($validate_user_to)) {
+ $mess = "No such user exist. Please re-check user ids.";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ //$OrderClass->storeMessagesPublic(null, $user_id, $mess);
+ echo json_encode($std);
+ return false;
+ }
+
+ $customer_bal_fr = (float) $OrderClass->check_customer_balance($bc2, $from)->balance;
+ $customer_bal_to = (float) $OrderClass->check_customer_balance($bc2, $to)->balance;
+
+ if ($tokens > $customer_bal_fr) {
+ $mess = "Admin Token Transfer: The user has insufficient balance to make this ".$bc2." units transfer. His current Token balance is $customer_bal_fr ".$bc2.".";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ $OrderClass->storeMessagesPublic(null, $from, $mess);
+ return false;
+ }
+
+ if ($tokens < 0.0000000001) {
+ $mess = "Admin Token Transfer: Please provide minimum amount of 0.0000000001 BC units!";
+ $OrderClass->storeMessagesPublic(null, $from, $mess);
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ }
+
+ // Check order in sell table
+ $user_active_orders = $OrderClass->get_active_order_of_user($from, $bc2, TOP_SELLS_TABLE);
+ $frozen_bal_sells = 0;
+ $allowed_bid_amount = $customer_bal_fr;
+ if (is_array($user_active_orders) && !empty($user_active_orders)) {
+ foreach ($user_active_orders as $uao) {
+ $frozen_bal_sells += (float) $uao->quantity;
+ }
+ $allowed_bid_amount = $customer_bal_fr - $frozen_bal_sells;
+ $ext_st = "The user can transfer up to $bc2 $allowed_bid_amount only.";
+ if ($allowed_bid_amount == 0) {
+ $ext_st = "The user doesn't have any $bc2 to transfer.";
+ }
+ $msss = "The user has requested to transfer $frozen_bal_sells $bc2. $ext_st Please cancel it or reduce your transfer amount.";
+ }
+
+ if ((float)$frozen_bal_sells + (float)$tokens > $customer_bal_fr) {
+ $OrderClass->storeMessagesPublic(null, $from, $msss);
+ $std->error = true;
+ $std->mesg[] = $msss;
+ echo json_encode($std);
+ return false;
+ }
+
+ /*Finally, transfer the tokens*/
+
+ $new_from_bal = $customer_bal_fr - $tokens;
+ $new_to_bal = (float)$customer_bal_to + (float)$tokens;
+
+ // Decrease tokens of 'from'
+ $update_bal_fr = $OrderClass->update_user_balance($bc2, $new_from_bal, $from);
+
+ // Increase tokens of 'to'
+ $update_bal_to = $OrderClass->update_user_balance($bc2, $new_to_bal, $to);
+
+ // Record the balance transfers or errors
+ if (!$update_bal_fr) {
+ $msss = "Failed to update Sender's balance.";
+ $std->error = true;
+ $std->mesg[] = $msss;
+ $OrderClass->storeMessagesPublic(null, ADMIN_ID, $msss);
+ echo json_encode($std);
+ return false;
+ } else if(!$update_bal_to) {
+ $msss = "Failed to update Receiver's balance.";
+ $std->error = true;
+ $std->mesg[] = $msss;
+ $OrderClass->storeMessagesPublic(null, ADMIN_ID, $msss);
+ echo json_encode($std);
+ return false;
+ } else {
+ $OrderClass->record_root_bal_update($from, $customer_bal_fr, $new_from_bal, $bc2);
+ $OrderClass->record_root_bal_update($to, $customer_bal_to, $new_to_bal, $bc2);
+
+ $msss = "$bc2 transfer for user id ".$from." and ".$to." was processed successfully.";
+ $mess1 = "Your ".$tokens." $bc2 were transferred by Admin to user ".$to.".";
+ $mess2 = "You received ".$tokens." $bc2 from user ".$from." transferred by Admin.";
+ $std->error = false;
+ $std->mesg[] = $msss;
+ $OrderClass->storeMessagesPublic(null, ADMIN_ID, $msss);
+ $OrderClass->storeMessagesPublic(null, $from, $mess1);
+ $OrderClass->storeMessagesPublic(null, $to, $mess2);
+ echo json_encode($std);
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/ajax/update_bc_bal.php b/ajax/update_bc_bal.php
new file mode 100644
index 0000000..adebd9a
--- /dev/null
+++ b/ajax/update_bc_bal.php
@@ -0,0 +1,96 @@
+mesg = array();
+ $std->error = true;
+
+ if ($bc2==""||$bc2==null) {
+ $mess = "Please choose a Blockchain contract from second dropdown.";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ }
+
+ $validate_user = $UserClass->check_user($cus_id);
+ if($validate_user == "" || empty($validate_user)) {
+ $mess = "No such user exist. Please re-check user ids.";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ }
+
+ if ($balance < 0) {
+ $mess = "Balance must be positive number!";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ }
+
+ if (!isset($OrderClass, $UserClass)) {
+ $mess = "System Error!";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ }
+
+ $update_bal = null;
+
+ /*Restrict decimal places while updating balance*/
+ if (!validate_decimal_place($balance, 10)) {
+ $mess = "Max 10 decimal places allowed.";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ }
+
+ //Prev balance of user
+ $bal_prev = (float) $OrderClass->check_customer_balance($bc2, $cus_id)->balance;
+
+ $update_bal = $OrderClass->update_user_balance($bc2, $balance, $cus_id);
+
+ if (!$update_bal) {
+ $mess = "Failed to update balance.";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ } else if($update_bal) {
+ // Record this change
+ $OrderClass->record_root_bal_update($cus_id, $bal_prev, $balance, $bc2);
+ $mess = "Successfully updated balance!";
+ $std->error = false;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ } else {
+ $mess = "Something went wrong. Failed to update balance!";
+ $std->error = true;
+ $std->mesg[] = $mess;
+ echo json_encode($std);
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/classes/Orders.php b/classes/Orders.php
index 4eda273..3353a3a 100644
--- a/classes/Orders.php
+++ b/classes/Orders.php
@@ -208,6 +208,23 @@ class Orders extends Users {
return false;
}
+ public function get_active_order_of_user($user_id, $bc, $top_table) {
+ if ($this->databaseConnection()) {
+ $query = $this->db_connection->prepare("
+ SELECT * FROM $top_table WHERE `uid`= :uid ORDER BY `insert_dt` DESC
+ ");
+ $query->bindParam('uid', $user_id);
+ $query->execute();
+
+ $arr = array();
+ while ($qr = $query->fetchObject()) {
+ $arr[] = $qr;
+ }
+ return $arr;
+ }
+ return false;
+ }
+
public function OrderMatchingQuery($bc1, $bc2) {
if ($this->databaseConnection()) {
@@ -1224,7 +1241,6 @@ class Orders extends Users {
public function storeMessages($order_id=null, $user_id=null, $msg=null) {
if($this->databaseConnection()) {
- return;
$now = $this->time_now();
if ($user_id == false) {
return false;
@@ -1247,18 +1263,25 @@ class Orders extends Users {
return false;
}
- public function last_transaction_list($start=0, $limit = 10, $a_bc=null, $b_bc=null) {
+ public function last_transaction_list($start=0, $limit = 10, $a_bc=null, $b_bc=null, $uid=null) {
if ($this->databaseConnection()) {
$list = array();
$st = "";
- if (trim($a_bc)!==null && trim($b_bc == null)) {
- $st = "WHERE ".TX_TABLE.".a_bc = '".$a_bc."'";
- } elseif(trim($a_bc)==null && trim($b_bc)!==null) {
- $st = "WHERE ".TX_TABLE.".b_bc = '".$b_bc."'";
- } elseif(trim($a_bc)!==null && trim($b_bc)!==null) {
- $st = "WHERE ".TX_TABLE.".a_bc = '".$a_bc."' AND ".TX_TABLE.".b_bc = '".$b_bc."'";
+ $st2 = "";
+ if ((int)$uid!=0 || (int)$uid!=null) {
+ $st2 = " AND a_buyer = $uid OR b_seller=$uid ";
}
+ if (trim($a_bc)!=null && trim($b_bc == null)) {
+ $st = "WHERE ".TX_TABLE.".a_bc = '".$a_bc."'";
+ } elseif(trim($a_bc)==null && trim($b_bc)!=null) {
+ $st = "WHERE ".TX_TABLE.".b_bc = '".$b_bc."'";
+ } elseif(trim($a_bc)!=null && trim($b_bc)!=null) {
+ $st = "WHERE ".TX_TABLE.".a_bc = '".$a_bc."' AND ".TX_TABLE.".b_bc = '".$b_bc."'";
+ } elseif (trim($a_bc)==null && trim($b_bc)==null && $uid!=null) {
+ $st2 = " WHERE a_buyer = $uid OR b_seller=$uid ";
+ }
+ $st.= $st2;
$query = $this->db_connection->query("
SELECT txid AS T_ID, a_buyer AS BUYER_ID, b_seller AS SELLER_ID, (SELECT ".USERS_TABLE.".name FROM ".USERS_TABLE." WHERE ".USERS_TABLE.".id=BUYER_ID) AS BUYER, (SELECT ".USERS_TABLE.".name FROM ".USERS_TABLE." WHERE ".USERS_TABLE.".id=SELLER_ID) AS SELLER, b_amount AS TRADE_PRICE, ".TX_TABLE.".insert_dt, ".TX_TABLE.".qty_traded AS TRADED_QTY
@@ -1280,29 +1303,39 @@ class Orders extends Users {
return false;
}
- public function UserBalanceList($bc1='RMT', $is_active=null) {
+ public function UserBalanceList($bc1='', $is_active=null) {
if ($this->databaseConnection()) {
$list = array();
$extraQuerry = "";
+ $extraQuerry1 = "";
+ $extraQuerry2 = "";
if ($is_active != null) {
- $extraQuerry = "AND ".USERS_TABLE.".is_active = 0 OR ".USERS_TABLE.".is_active = 1";
+ $extraQuerry = "WHERE (".USERS_TABLE.".is_active = 0 OR ".USERS_TABLE.".is_active = 1) AND ".USERS_TABLE.".id = ".CREDITS_TABLE.".uid";
} else {
- $extraQuerry = "AND ".USERS_TABLE.".is_active = 1";
+ $extraQuerry = "WHERE ".USERS_TABLE.".is_active = 1 AND ".USERS_TABLE.".id = ".CREDITS_TABLE.".uid";
+ }
+
+ if (trim($bc1)!=null) {
+ $extraQuerry1 = "AND ".CREDITS_TABLE.".bc = :bc1";
+ $extraQuerry2 = "ORDER BY ".CREDITS_TABLE.".balance DESC";
+ } else {
+ $extraQuerry2 = "ORDER BY ".USERS_TABLE.".name ASC";
}
$query = $this->db_connection->prepare("
- SELECT DISTINCT ".USERS_TABLE.".name, ".CREDITS_TABLE.".balance, ".CREDITS_TABLE.".bc
+ SELECT DISTINCT ".USERS_TABLE.".name, ".USERS_TABLE.".id AS UID, ".USERS_TABLE.".fb_id AS FACEBOOK_ID, ".CREDITS_TABLE.".balance, ".CREDITS_TABLE.".bc, ".USERS_TABLE.".is_active
FROM ".USERS_TABLE.", ".CREDITS_TABLE."
- WHERE ".CREDITS_TABLE.".bc = :bc1
- AND ".USERS_TABLE.".id = ".CREDITS_TABLE.".uid
$extraQuerry
- ORDER BY ".CREDITS_TABLE.".balance DESC
+ $extraQuerry1
+ $extraQuerry2
");
- $query->bindParam('bc1', $bc1);
+ if (trim($bc1)!=null) {
+ $query->bindParam('bc1', $bc1);
+ }
$query->execute();
if ($query->rowCount() > 0) {
@@ -1341,27 +1374,6 @@ class Orders extends Users {
return false;
}
- /*public function sel_bc_stats($bc1, $bc2) {
- if ($this->databaseConnection()) {
- $query = $this->db_connection->prepare("
- SELECT a_bc, b_bc, b_amount
- FROM ".TX_TABLE."
- WHERE a_bc = :a
- AND b_bc = :b
- ORDER BY insert_dt DESC
- LIMIT 1
- ");
- $query->bindParam("a", $bc1);
- $query->bindParam("b", $bc2);
- $query->execute();
- $data = null;
- if ($query->rowCount()) {
- $data = $query->fetchObject();
- }
- return$data;
- }
- }*/
-
public function tx_data($bc1=null, $bc2=null, $limit=null) {
if ($this->databaseConnection()) {
$st = '';
@@ -1373,7 +1385,7 @@ class Orders extends Users {
} else if ($bc1==null && $bc2!=null) {
$st = 'WHERE b_bc = :b GROUP BY b_bc ';
} else {
- $st='';
+ $st=' GROUP BY a_bc ';
}
if ($limit != null) {
$st2 = " LIMIT $limit";
@@ -1411,4 +1423,152 @@ class Orders extends Users {
return false;
}
+ public function record_root_bal_update($uid, $bal_prev, $bal_now, $bal_type) {
+ if ($this->databaseConnection()) {
+ $now = $this->time_now();
+ $root = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : 0;
+ $query = $this->db_connection->prepare("
+ INSERT INTO ".ADMIN_BAL_RECORDS."(`BalStatusHistoryId`, `user_id`, `bal_prev`, `bal_now`, `type`, `root_id`, `UpdateDate`)
+ VALUES ('', :uid, :prev, :now, :btype, :root, '$now')
+ ");
+ $query->bindParam("uid", $uid);
+ $query->bindParam("prev", $bal_prev);
+ $query->bindParam("now", $bal_now);
+ $query->bindParam("btype", $bal_type);
+ $query->bindParam("root", $root);
+
+ if ($query->execute()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public function list_root_bal_changes() {
+ if ($this->databaseConnection()) {
+ $list_details = array();
+ $query = $this->db_connection->prepare("
+ SELECT ".ADMIN_BAL_RECORDS.".*, ".USERS_TABLE.".name, ".USERS_TABLE.".email
+ FROM ".ADMIN_BAL_RECORDS.", ".USERS_TABLE."
+ WHERE ".ADMIN_BAL_RECORDS.".user_id=".USERS_TABLE.".id
+ ORDER BY UpdateDate DESC
+ LIMIT 200
+ ");
+ $query->execute();
+
+ if ($query->rowCount() > 0) {
+ while ($list = $query->fetchObject()) {
+ $list_details[] = $list;
+ }
+ }
+ return $list_details;
+ }
+ return false;
+ }
+
+ public function get_last_order_date($date=null) {
+ if ($this->databaseConnection()) {
+ $query = $this->db_connection->query("SELECT * FROM ".ORDERS_TABLE." WHERE `insert_dt`> '$date'");
+ if ($query->rowCount()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public function delete_orders_of_user($user_id=null) {
+ if ($this->databaseConnection()) {
+ $order_ids = array();
+ $query = $this->db_connection->prepare("
+ SELECT order_id FROM ".TOP_BUYS_TABLE." WHERE `uid`=:uid
+ UNION
+ SELECT order_id FROM ".TOP_SELLS_TABLE." WHERE `uid`=:uid
+ ");
+ $query->bindParam('uid', $user_id);
+ $query->execute();
+ if ($query->rowCount() > 0) {
+ while ($rr = $query->fetchObject()) {
+ $order_ids[] = $rr;
+ }
+ foreach ($order_ids as $oid) {
+ $this->del_order($oid->orderId, $user_id);
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public function storeMessagesPublic($order_id=null, $user_id=null, $msg=null) {
+ if ($this->databaseConnection()) {
+ $this->storeMessages($order_id, $user_id, $msg);
+ }
+ }
+
+ public function total_recent_transactions()
+ {
+ if ($this->databaseConnection()) {
+ $total_orders = 0;
+
+ $query = $this->db_connection->prepare("
+ SELECT COUNT(*) AS TOTAL_ORDERS
+ FROM ".TX_TABLE."
+ ");
+ if ($query->execute()) {
+ $fetch = $query->fetchObject();
+ $total_orders = (int)$fetch->TOTAL_ORDERS;
+ }
+ return $total_orders;
+ }
+ return false;
+ }
+
+ function total_my_messages() {
+ if ($this->databaseConnection()) {
+ $my_total_messages = 0;
+ if (isset($_SESSION['user_id'])) {
+ $user_id = (int) $_SESSION['user_id'];
+ } else {
+ return $my_total_messages;
+ }
+ $query = $this->db_connection->prepare("
+ SELECT COUNT(*) AS MY_TOTAL_MESSAGES
+ FROM ".MSG_TABLE."
+ WHERE `username_key`=:u_id
+ ");
+ $query->bindParam('u_id', $user_id);
+ if ($query->execute()) {
+ $fetch = $query->fetchObject();
+ $my_total_messages = (int) $fetch->MY_TOTAL_MESSAGES;
+ }
+ return $my_total_messages;
+ }
+ return false;
+ }
+
+ public function total_my_orders()
+ {
+ if ($this->databaseConnection()) {
+ $my_total_orders = 0;
+ if (isset($_SESSION['user_id'])) {
+ $user_id = (int)$_SESSION['user_id'];
+ } else {
+ return $my_total_orders;
+ }
+ $query = $this->db_connection->prepare("
+ SELECT COUNT(*) AS MY_TOTAL_ORDERS
+ FROM ".ORDERS_TABLE."
+ WHERE `uid`=:u_id
+ ");
+ $query->bindParam('u_id', $user_id);
+ if ($query->execute()) {
+ $fetch = $query->fetchObject();
+ $my_total_orders = (int)$fetch->MY_TOTAL_ORDERS;
+ }
+ return $my_total_orders;
+ }
+ return false;
+ }
+
+
}
\ No newline at end of file
diff --git a/classes/Users.php b/classes/Users.php
index 42f08c9..04ede4b 100644
--- a/classes/Users.php
+++ b/classes/Users.php
@@ -274,5 +274,29 @@ class Users {
return false;
}
+ public function list_messages_by_userId($user_id, $start=0, $limit=10) {
+ if ($this->databaseConnection()) {
+ $messages = array();
+
+ $query = $this->db_connection->prepare("
+ SELECT * FROM ".MSG_TABLE." WHERE `username_key`= :uk
+ ORDER BY datetime DESC
+ LIMIT $start, $limit
+ ");
+ $query->bindParam("uk", $user_id);
+ if ($query->execute()) {
+ $rowCount = $query->rowCount();
+ if ($rowCount > 0) {
+ while ($tr = $query->fetchObject()) {
+ $messages[] = $tr;
+ }
+ }
+ }
+ return $messages;
+ }
+ return false;
+ }
+
+
}
\ No newline at end of file
diff --git a/images/spinner.gif b/images/spinner.gif
new file mode 100644
index 0000000..b059fe8
Binary files /dev/null and b/images/spinner.gif differ
diff --git a/includes/config.example.php b/includes/config.example.php
index 456db42..806112e 100644
--- a/includes/config.example.php
+++ b/includes/config.example.php
@@ -51,6 +51,8 @@ define("USERS_TABLE", "USER TABLE");
define("CREDITS_TABLE", "BALANCE TABLE");
define("ORDERS_TABLE", "ORDERS TABLE");
define("TX_TABLE", "TRANSACTION TABLE");
+define("ADMIN_BAL_RECORDS", "ADMIN TABLE");
+define("MSG_TABLE", "MESSAGES TABLE");
/*FACEBOOK DETAILS*/
define("APP_ID", 'YOUR FB APP ID');
diff --git a/includes/header.php b/includes/header.php
index 4a3f12e..46e1aa8 100644
--- a/includes/header.php
+++ b/includes/header.php
@@ -41,13 +41,14 @@ if(checkLoginStatus()) {
- Home
+ Ranchi Mall Blockchain Contracts
-
+
+
-
+