2025-11-19 09:50:56 +07:00

130 lines
3.9 KiB
PHP

<?php
namespace App\Controllers;
class Home extends BaseController {
private function getProductList() {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'services-summit.my.id/api/getProductSites', //PROD
// CURLOPT_URL => 'https://services-summit.my.id/api/getProductSites', //DEV
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
$data = json_decode($response, true);
return $data;
}
public function dashboard() {
$db = \Config\Database::connect();
$productList = $this->getProductList(); //Get From API CRM
// Mengelompokkan Berdasarkan Jenis Product. cth(TMS30i, TMS50, dll)
foreach($productList as $item) {
// Mengelompokkan Data Khusus TMS30i/Medisys
if ( in_array($item["productaliasid"], [20, 60]) ) {
$productList30i[] = [
"productaliasid" => $item["productaliasid"],
"productnumber" => $item["productnumber"],
"sitename" => $item["sitename"]
];
// Mengelompokkan Data Khusus 1024i
}
// else if ($item["productaliasid"] == 18) {
// $productList1024i[] = [
// "productaliasid" => $item["productaliasid"],
// "productnumber" => $item["productnumber"],
// "sitename" => $item["sitename"]
// ];
// // Mengelompokkan Data Khusus 24i
// } else if ($item["productaliasid"] == 19) {
// $productList24i[] = [
// "productaliasid" => $item["productaliasid"],
// "productnumber" => $item["productnumber"],
// "sitename" => $item["sitename"]
// ];
// // Mengelompokkan Data Khusus 50i
// } else if ($item["productaliasid"] == 21) {
// $productList50i[] = [
// "productaliasid" => $item["productaliasid"],
// "productnumber" => $item["productnumber"],
// "sitename" => $item["sitename"]
// ];
// } else {
// $productList30i = null;
// $productList1024i = null;
// $productList24i = null;
// $productList50i = null;
// }
}
$timezone = 7;
if ($timezone == 7) {
$data['timezone'] = "WIB";
} else if ($timezone == 8) {
$data['timezone'] = "WITA";
} else if ($timezone == 9) {
$data['timezone'] = "WIT";
} else {
$data['timezone'] = "";
}
$sql = "SELECT EquipmentID, COUNT(*) AS patresCount,
DATE_ADD(MAX(ResultDateTime), INTERVAL $timezone HOUR) AS lastResultDate
FROM patres
GROUP BY EquipmentID
ORDER BY patresCount DESC";
$query = $db->query($sql);
$results = $query->getResultArray();
// siapkan variabel dulu biar tidak "undefined variable"
$tms30i = [];
$data = [];
// Menyamakan Data CRM dan CLQMS Berdasarkan SN Number
if (!empty($results) && !empty($productList30i)) {
foreach ($results as $itemDB) {
foreach ($productList30i as $itemCRM) {
// echo "<br>Product Alias ID CRM: " . $itemCRM["productaliasid"] . "<br>";
// echo "Product Number: " . $itemCRM["productnumber"] . "<br>";
// echo "Site Name: " . $itemCRM["sitename"] . "<br><br>";
// echo "Product Alias ID DB: " . $itemDB["EquipmentID"] . "<br>";
// echo "Product Number: " . $itemDB["patresCount"] . "<br>";
// echo "Site Name: " . $itemDB["lastResultDate"] . "<br><br>";
// echo "----------------------------<br><br>";
if ($itemDB['EquipmentID'] == $itemCRM['productnumber']) {
$tms30i[] = [
"productaliasid" => $itemCRM["productaliasid"],
"EquipmentID" => $itemDB["EquipmentID"],
"sitename" => $itemCRM["sitename"],
"patresCount" => $itemDB["patresCount"],
"lastResultDate" => $itemDB["lastResultDate"],
];
}
}
}
}
// kalau tidak ada data, $tms30i akan tetap berupa array kosong []
$data['tms30i'] = $tms30i ?? [];
return view('home_dashboard.php', $data);
}
}