<?php

//Session Start
session_start();

//Ajax Init
include "ajax-init.php";
// storing  request (ie, get/post) global array to a variable
$requestData= $_REQUEST;
$columns = array(
// datatable column index  => database column name
    0 => 'created_at',
    2 =>'phoneNum',
    3 => 'fullName',
    1 => 'countryCode',
    5 => 'companyName',

);
// getting total number records without any search
//$sql = "SELECT employee_name, employee_salary, employee_age ";  WHERE countryCode LIKE '$_SESSION[userCountry]%'
//$sql.=" FROM tree_tbl";
$query=mysqli_query($dbc, "SELECT count(*) as total from customer_tbl where accountType <> '2'") or die("ajax-list-customers.php: get total number of customers");
$totalData = mysqli_fetch_assoc($query);
$totalFiltered = $totalData['total'];  // when there is no search parameter then total number rows = total number filtered rows.

if( !empty($requestData['search']['value']) ) {
    // if there is a search parameter
    $sql = "SELECT * ";
    $sql.=" FROM customer_tbl WHERE accountType <> '2' and ";
    $sql.=" (phoneNum LIKE '%".$requestData['search']['value']."%' ";    // $requestData['search']['value'] contains search parameter
    $sql.=" OR companyName LIKE '%".$requestData['search']['value']."%' ";
    $sql.=" OR created_at LIKE '%".$requestData['search']['value']."%' ";
    $sql.=" OR fullName LIKE '%".$requestData['search']['value']."%' ";
    $sql.=" OR countryCode LIKE '%".$requestData['search']['value']."%' )";
    $query=mysqli_query($dbc, $sql) or die("ajax-list-customers.php: get customers");
    $totalFiltered = mysqli_num_rows($query); // when there is a search parameter then we have to modify total number filtered rows as per search result without limit in the query
    $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]."   ".$requestData['order'][0]['dir']."   LIMIT ".$requestData['start']." ,".$requestData['length']."   "; // $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc , $requestData['start'] contains start row number ,$requestData['length'] contains limit length.
    $query=mysqli_query($dbc, $sql) or die("ajax-list-customers.php: get Customers1"); // again run query with limit

} else {
    $sql = "SELECT * ";// WHERE countryCode LIKE '$_SESSION[userCountry]%
    $sql.=" FROM customer_tbl where accountType <> '2'";
    $sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]."   ".$requestData['order'][0]['dir']."   LIMIT ".$requestData['start']." ,".$requestData['length']."   ";
    $query=mysqli_query($dbc, $sql) or die("ajax-list-customers.php: get Customers22");

}

$data = array();

while( $row=mysqli_fetch_array($query) ) {  // preparing an array
    $accountType = get_accountType_by_id($dbc,$row["accountType"]);
    $uGroup = get_uGroup_by_id($dbc,$row["uGroup"]);
	$kyc = get_all_from_kyc_by_Id($dbc, $row["accountKYC"]);
    $nestedData = array();
    $nestedData[] = $row["created_at"];
    $nestedData[] = $row["countryCode"];
    $nestedData[] = $row["phoneNum"];
    $nestedData[] = isset($row["fullName"])?ucwords($row["fullName"]):ucwords($row["surname"])." ".ucwords($row["firstName"])." ".ucwords($row["middleName"]);
    $nestedData[] = $row["addressLine1"];
	$nestedData[] = $row["addressLine2"];
    $nestedData[] = $accountType['accountType'];
    $nestedData[] = strtoupper($kyc["name"]);
    $nestedData[] = $row["status"];
    $nestedData[] = "<a href='cus-profile.php?user={$row["id"]}'><i class='fa fa-eye'></i></a>";
    $data[] = $nestedData;
}

$json_data = array(
    "draw"            => intval( $requestData['draw'] ),   // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw.
    "recordsTotal"    => intval( $totalData ),  // total number of records
    "recordsFiltered" => intval( $totalFiltered ), // total number of records after searching, if there is no searching then totalFiltered = totalData
    "data"            => $data   // total data array
);
echo json_encode($json_data);  // send data as json format