<?php if( $user["access"]["dripfeed"] != 1 ): header("Location:".site_url("admin")); exit(); endif; if( $_SESSION["client"]["data"] ): $data = $_SESSION["client"]["data"]; foreach ($data as $key => $value) { $$key = $value; } unset($_SESSION["client"]); endif; if( route(2) && is_numeric(route(2)) ): $page = route(2); else: $page = 1; endif; $titleAdmin = "Drip-feed"; $statusList = ["all","active","paused","completed","canceled","expired","limit"]; if( route(3) && in_array(route(3),$statusList) ): $status = route(3); elseif( !route(3) || !in_array(route(3),$statusList) ): $status = "all"; endif; if( $_GET["search_type"] == "username" && $_GET["search"] ): $search_where = $_GET["search_type"]; $search_word = urldecode($_GET["search"]); $clients = $conn->prepare("SELECT client_id FROM clients WHERE username LIKE '%".$search_word."%' "); $clients -> execute(array()); $clients = $clients->fetchAll(PDO::FETCH_ASSOC); $id= "("; foreach ($clients as $client) { $id.=$client["client_id"].","; } if( substr($id,-1) == "," ): $id = substr($id,0,-1); endif; $id.=")"; $search = " orders.client_id IN ".$id; $count = $conn->prepare("SELECT * FROM orders INNER JOIN clients ON clients.client_id = orders.client_id WHERE {$search} && orders.dripfeed='2' && orders.subscriptions_type='1' "); $count -> execute(array()); $count = $count->rowCount(); $search = "WHERE {$search} && orders.dripfeed='2' && orders.subscriptions_type='1' "; $search_link = "?search=".$search_word."&search_type=".$search_where; elseif( $_GET["search_type"] == "order_id" && $_GET["search"] ): $search_where = $_GET["search_type"]; $search_word = urldecode($_GET["search"]); $count = $conn->prepare("SELECT * FROM orders INNER JOIN clients ON clients.client_id = orders.client_id WHERE orders.order_id LIKE '%".$search_word."%' && orders.dripfeed='2' && orders.subscriptions_type='1' "); $count -> execute(array()); $count = $count->rowCount(); $search = "WHERE orders.order_id LIKE '%".$search_word."%' && orders.dripfeed='2' && orders.subscriptions_type='1' "; $search_link = "?search=".$search_word."&search_type=".$search_where; elseif( $_GET["search_type"] == "order_url" && $_GET["search"] ): $search_where = $_GET["search_type"]; $search_word = urldecode($_GET["search"]); $count = $conn->prepare("SELECT * FROM orders INNER JOIN clients ON clients.client_id = orders.client_id WHERE orders.order_url LIKE '%".$search_word."%' && orders.dripfeed='2' && orders.subscriptions_type='1' "); $count -> execute(array()); $count = $count->rowCount(); $search = "WHERE orders.order_url LIKE '%".$search_word."%' && orders.dripfeed='2' && orders.subscriptions_type='1' "; $search_link = "?search=".$search_word."&search_type=".$search_where; elseif( $status != "all" ): $count = $conn->prepare("SELECT * FROM orders WHERE dripfeed_status=:status && dripfeed=:dripfeed && subscriptions_type=:sub "); $count ->execute(array("dripfeed"=>1,"sub"=>2,"status"=>$status)); $count = $count->rowCount(); $search = "WHERE orders.dripfeed_status='".$status."' && orders.dripfeed='2' && orders.subscriptions_type='1' "; elseif( $status == "all" ): $count = $conn->prepare("SELECT * FROM orders WHERE dripfeed=:dripfeed && subscriptions_type=:sub "); $count ->execute(array("dripfeed"=>2,"sub"=>1)); $count = $count->rowCount(); $search = "WHERE orders.dripfeed='2' && orders.subscriptions_type='1' "; endif; $to = 50; $pageCount = ceil($count/$to); if( $page > $pageCount ): $page = 1; endif; $where = ($page*$to)-$to; $paginationArr = ["count"=>$pageCount,"current"=>$page,"next"=>$page+1,"previous"=>$page-1]; $orders = $conn->prepare("SELECT * FROM orders INNER JOIN clients ON clients.client_id=orders.client_id LEFT JOIN services ON services.service_id=orders.service_id $search ORDER BY orders.order_id DESC LIMIT $where,$to "); $orders -> execute(array()); $orders = $orders->fetchAll(PDO::FETCH_ASSOC); function orderStatu($statu){ switch ($statu) { case 'active': $statu = "Active"; break; case 'completed': $statu = "Completed"; break; case 'canceled': $statu = "Cancel"; break; } return $statu; } require admin_view('dripfeeds'); if( route(2) == "dripfeed_canceled" ): $update = $conn->prepare("UPDATE orders SET dripfeed_status=:status WHERE order_id=:id "); $update->execute(array("status"=>"canceled","id"=>route(3))); header("Location:".site_url("admin/dripfeeds")); elseif( route(2) == "dripfeed_completed" ): $update = $conn->prepare("UPDATE orders SET dripfeed_status=:status WHERE order_id=:id "); $update->execute(array("status"=>"completed","id"=>route(3))); header("Location:".site_url("admin/dripfeeds")); elseif( route(2) == "dripfeed_canceledbalance" ): $id = route(3); $order = $conn->prepare("SELECT * FROM orders INNER JOIN clients ON clients.client_id = orders.client_id WHERE orders.order_id=:id "); $order ->execute(array("id"=>$id)); $order = $order->fetch(PDO::FETCH_ASSOC); $price = ($order["dripfeed_totalcharges"]/$order["dripfeed_runs"])*($order["dripfeed_runs"]-$order["dripfeed_delivery"]); ## İade edilecek tutar $conn->beginTransaction(); $update = $conn->prepare("UPDATE orders SET dripfeed_status=:status, dripfeed_totalcharges=:charges, dripfeed_runs=:runs, dripfeed_totalquantity=:quantity WHERE order_id=:id "); $update = $update->execute(array("status"=>"canceled","id"=>route(3),"charges"=>$order["dripfeed_totalcharges"]-$price,"runs"=>$order["dripfeed_delivery"],"quantity"=>$order["dripfeed_delivery"]*$order["order_quantity"] )); $update2= $conn->prepare("UPDATE clients SET balance=:balance, spent=:spent WHERE client_id=:id "); $update2= $update2->execute(array("id"=>$order["client_id"],"spent"=>$order["spent"]-$price,"balance"=>$order["balance"]+$price )); if( $update && $update2 ): $conn->commit(); else: $conn->rollBack(); endif; header("Location:".site_url("admin/dripfeeds")); elseif( route(2) == "multi-action" ): $orders = $_POST["order"]; $action = $_POST["bulkStatus"]; if( $action == "canceled" ): foreach ($orders as $id => $value): $update = $conn->prepare("UPDATE orders SET dripfeed_status=:status WHERE order_id=:id "); $update->execute(array("status"=>"canceled","id"=>$id)); endforeach; elseif( $action == "completed" ): foreach ($orders as $id => $value): $update = $conn->prepare("UPDATE orders SET dripfeed_status=:status WHERE order_id=:id "); $update->execute(array("status"=>"completed","id"=>$id)); endforeach; elseif( $action == "canceledbalance" ): foreach ($orders as $id => $value): $order = $conn->prepare("SELECT * FROM orders INNER JOIN clients ON clients.client_id = orders.client_id WHERE orders.order_id=:id "); $order ->execute(array("id"=>$id)); $order = $order->fetch(PDO::FETCH_ASSOC); $price = ($order["dripfeed_totalcharges"]/$order["dripfeed_runs"])*($order["dripfeed_runs"]-$order["dripfeed_delivery"]); ## İade edilecek tutar $conn->beginTransaction(); $update = $conn->prepare("UPDATE orders SET dripfeed_status=:status, dripfeed_totalcharges=:charges, dripfeed_runs=:runs, dripfeed_totalquantity=:quantity WHERE order_id=:id "); $update = $update->execute(array("status"=>"canceled","id"=>$id,"charges"=>$order["dripfeed_totalcharges"]-$price,"runs"=>$order["dripfeed_delivery"],"quantity"=>$order["dripfeed_delivery"]*$order["order_quantity"] )); $update2= $conn->prepare("UPDATE clients SET balance=:balance, spent=:spent WHERE client_id=:id "); $update2= $update2->execute(array("id"=>$order["client_id"],"spent"=>$order["spent"]-$price,"balance"=>$order["balance"]+$price )); if( $update && $update2 ): $conn->commit(); else: $conn->rollBack(); endif; endforeach; endif; header("Location:".site_url("admin/dripfeeds")); endif;