getUsersByGroup(); $orderPaid = $orderModel->getPaidOrderData(); $newData = []; for ($i = 0; $i < count($orderPaid); $i++) { $transitionData = []; for ($k = 0; $k < count($allUsers); $k++) { if ($allUsers[$k]['id'] == $orderPaid[$i]['user_id']) { $transitionData2 = [ 'userId' => $allUsers[$k]['id'], 'userName' => $allUsers[$k]['username'], 'billId' => $orderPaid[$i]['id'], 'billNo' => $orderPaid[$i]['bill_no'], 'dateVente' => $orderPaid[$i]['date_time'], 'montantNet' => $orderPaid[$i]['net_amount'], ]; $transitionData[] = $transitionData2; } } $newData[] = $transitionData; } // filter to keep non empty array $filteredArray = array_filter($newData, function ($item) { return !empty($item); // Keep only non-empty arrays }); // Re-index the array (optional, if you want sequential keys) $userWhoSoldProducts = array_values($filteredArray); // Count occurrences of each userId $userIdCounts = array_reduce($userWhoSoldProducts, function($carry, $item) { $userId = $item[0]['userId']; if (!isset($carry[$userId])) { $carry[$userId] = 0; } $carry[$userId]++; return $carry; }, []); foreach ($allUsers as &$user) { $userId = (int)$user['id']; if (isset($userIdCounts[$userId])) { $user['totalVente'] = $userIdCounts[$userId]; } else { $user['totalVente'] = 0; // or any default value you want to assign if the user ID is not found in $userIdCount } } $data['allUsers'] = $allUsers; $data['page_title'] = 'Statistique'; // Check if the user is an Conseil $session = session(); $user_id = $session->get('user'); // $data['is_admin'] = ($user_id['id'] == 1); // echo '
';
// var_dump($allUsers);
// echo '';
$data['is_admin'] = false;
if ($user_id['group_name'] == "Direction" || $user_id['group_name'] == "Conseil") {
$data['is_admin'] = true;
}
// echo '';
// die(var_dump($newData));
return $this->render_template('statistic/index', $data);
}
public function testindex()
{
// Sample data
$data = [
[
[
"userId" => "7",
"userName" => "Billy",
"billId" => "10",
"billNo" => "BILPR-500F",
"dateVente" => "2025-01-25 14:33:54",
"montantNet" => "638580.96"
]
],
// [
// [
// "userId" => "9",
// "userName" => "john does",
// "billId" => "5",
// "billNo" => "BILPR-3D87",
// "dateVente" => "2025-01-19 14:33:54",
// "montantNet" => "12.90"
// ]
// ],
[
[
"userId" => "7",
"userName" => "Billy",
"billId" => "4",
"billNo" => "BILPR-A004",
"dateVente" => "2025-01-18 14:33:54",
"montantNet" => "12.90"
]
]
// [
// [
// "userId" => "9",
// "userName" => "john does",
// "billId" => "3",
// "billNo" => "BILPR-7C26",
// "dateVente" => "2025-01-17 14:33:54",
// "montantNet" => "438.60"
// ]
// ]
];
// Process data
$userData = [];
foreach ($data as $entry) {
$record = $entry[0];
$userId = $record['userId'];
$userName = $record['userName'];
// Ensure user exists in the array
if (!isset($userData[$userId])) {
$userData[$userId] = [
'name' => $userName,
'dates' => [],
'values' => []
];
}
// Store date and montantNet
$userData[$userId]['dates'][] = $record['dateVente'];
$userData[$userId]['values'][] = (float) $record['montantNet'];
}
$data['userData'] = json_encode($userData);
$data['page_title'] = 'Statistique';
// die(var_dump($data));
// return view('chart_view', ['userData' => json_encode($userData)]);
return $this->render_template('statistic/single', $data);
}
public function singleStat(int $id)
{
$Order = new Orders();
$data['user_order'] = json_encode($Order->getSingleStat($id), JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP);
$data['page_title'] = 'Statistique';
return $this->render_template('statistic/single', $data);
}
}