forked from mahdahar/crm-summit
513 lines
26 KiB
PHP
513 lines
26 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
class Dashboard extends BaseController {
|
|
|
|
protected array $data;
|
|
|
|
function __construct() {
|
|
$this->data['stats'] = array('O'=>'Open', 'A'=>'Accepted', 'P'=>'Pending', 'C'=> 'Close', 'S' => 'Suspend');
|
|
}
|
|
|
|
public function index ($userid = null) {
|
|
$db = \Config\Database::connect();
|
|
|
|
if(!isset($userid) || $userid == 0) {
|
|
$userid = $_SESSION['userid'];
|
|
}
|
|
$data['userid'] = $userid;
|
|
|
|
$year = date('Y');
|
|
$month = date('n');
|
|
|
|
$sql = "SELECT * FROM users";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['users'] = $results;
|
|
$data['stats'] = $this->data['stats'];
|
|
|
|
// act status counter - open, accept, pending all time - suspend and close this year
|
|
$sql = "SELECT
|
|
-- status counter
|
|
SUM(CASE WHEN a.activitystatus='O' AND a.userid_owner='$userid' THEN 1 ELSE 0 END) AS act_open,
|
|
SUM(CASE WHEN a.activitystatus='A' AND a.userid_owner='$userid' THEN 1 ELSE 0 END) AS act_accept,
|
|
SUM(CASE WHEN a.activitystatus='P' AND a.userid_owner='$userid' THEN 1 ELSE 0 END) AS act_pending,
|
|
SUM(CASE WHEN a.activitystatus='S' AND a.userid_owner='$userid' THEN 1 ELSE 0 END) AS act_suspend,
|
|
SUM(CASE WHEN a.activitystatus='C' AND a.userid_owner='$userid' AND YEAR(a.closedate)='$year' THEN 1 ELSE 0 END) AS act_close,
|
|
-- year type counter user
|
|
SUM(CASE WHEN aty.`acttypecode`='IR' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS ir_y,
|
|
SUM(CASE WHEN aty.`acttypecode`='MN' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS mn_y,
|
|
SUM(CASE WHEN aty.`acttypecode`='CR' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS cr_y,
|
|
SUM(CASE WHEN aty.`acttypecode`='PR' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS pr_y,
|
|
SUM(CASE WHEN aty.`acttypecode`='SP' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS sp_y,
|
|
SUM(CASE WHEN aty.`acttypecode`='TR' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS tr_y,
|
|
SUM(CASE WHEN aty.`acttypecode`='RF' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS rf_y,
|
|
-- year type counter all
|
|
SUM(CASE WHEN aty.`acttypecode`='IR' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS ir_ya,
|
|
SUM(CASE WHEN aty.`acttypecode`='MN' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS mn_ya,
|
|
SUM(CASE WHEN aty.`acttypecode`='CR' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS cr_ya,
|
|
SUM(CASE WHEN aty.`acttypecode`='PR' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS pr_ya,
|
|
SUM(CASE WHEN aty.`acttypecode`='SP' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS sp_ya,
|
|
SUM(CASE WHEN aty.`acttypecode`='TR' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS tr_ya,
|
|
SUM(CASE WHEN aty.`acttypecode`='RF' AND YEAR(a.`closedate`)='$year' THEN 1 ELSE 0 END) AS rf_ya,
|
|
-- month type counter user
|
|
SUM(CASE WHEN aty.`acttypecode`='IR' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS ir_m,
|
|
SUM(CASE WHEN aty.`acttypecode`='MN' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS mn_m,
|
|
SUM(CASE WHEN aty.`acttypecode`='CR' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS cr_m,
|
|
SUM(CASE WHEN aty.`acttypecode`='PR' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS pr_m,
|
|
SUM(CASE WHEN aty.`acttypecode`='SP' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS sp_m,
|
|
SUM(CASE WHEN aty.`acttypecode`='TR' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS tr_m,
|
|
SUM(CASE WHEN aty.`acttypecode`='RF' AND a.userid_owner='$userid' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS rf_m,
|
|
-- month type counter all
|
|
SUM(CASE WHEN aty.`acttypecode`='IR' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS ir_ma,
|
|
SUM(CASE WHEN aty.`acttypecode`='MN' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS mn_ma,
|
|
SUM(CASE WHEN aty.`acttypecode`='CR' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS cr_ma,
|
|
SUM(CASE WHEN aty.`acttypecode`='PR' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS pr_ma,
|
|
SUM(CASE WHEN aty.`acttypecode`='SP' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS sp_ma,
|
|
SUM(CASE WHEN aty.`acttypecode`='TR' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS tr_ma,
|
|
SUM(CASE WHEN aty.`acttypecode`='RF' AND YEAR(a.`closedate`)='$year' AND MONTH(a.`closedate`)='$month' THEN 1 ELSE 0 END) AS rf_ma
|
|
FROM activities a
|
|
LEFT JOIN acttype aty ON aty.`acttypeid`=a.`acttypeid`";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['act_counter'] = $results;
|
|
|
|
$sql = "SELECT COUNT(userid) as nuser FROM users
|
|
WHERE enddate IS NULL
|
|
AND userposid = ( SELECT userposid FROM users WHERE userid='$userid' ) ";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['nuser'] = $results;
|
|
|
|
$sql = "select level from users where userid='$userid'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$level = $results[0]['level'];
|
|
|
|
// Tanggal Kurun Waktu 1 Bulan
|
|
$lastday = cal_days_in_month(CAL_GREGORIAN,$month,$year);
|
|
$opendate = $year.'-'.($month).'-01';
|
|
$closedate = $year.'-'.$month.'-'.$lastday;
|
|
|
|
// Cari User Position
|
|
$sql = "SELECT userposid FROM users WHERE userid = '$userid'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['user_position'] = $results[0]['userposid'];
|
|
$user_position = $data['user_position'];
|
|
|
|
// Tampilan Untuk Recent Activity semua User
|
|
$sql = "SELECT s.sitename, pc.productname, v.vendorname, u.firstname as username, u.userposid, uc.firstname as creator_name, at.fulltext, a.*
|
|
FROM `activities` a
|
|
left join sites s on s.siteid=a.siteid
|
|
left join products p on a.productid=p.productid
|
|
left join productcatalog pc on pc.catalogid=p.catalogid
|
|
left join vendors v on v.vendorid=a.vendorid
|
|
left join productalias pa on pa.productaliasid=pc.productaliasid
|
|
left join users u on u.userid=a.userid_owner
|
|
left JOIN (select userid, firstname from users) as uc on uc.userid=a.userid_creator
|
|
left join acttype at on at.acttypeid=a.acttypeid
|
|
where
|
|
(( a.closedate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
OR ( a.reportdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
OR ( a.activitystatus='O')
|
|
OR (a.activitystatus = 'P'))
|
|
AND (a.activitystatus <> 'S')
|
|
order by field(a.activitystatus,'O','C','R'), a.closedate desc, a.reportdate desc";
|
|
$query = $db->query($sql);
|
|
$result = $query->getResultArray();
|
|
$data['tampildata'] = $result;
|
|
|
|
// Menu Table TSS/TSM dan TSO
|
|
if(in_array($level,[1,2])) {
|
|
$firstdate = date("Y-m-01");
|
|
$lastdate = cal_days_in_month(CAL_GREGORIAN,date('m'),date('Y'));
|
|
$lastdate = date('Y-m-'.$lastdate);
|
|
|
|
$sql_pos = '';
|
|
if($user_position == '1') { $sql_pos = 'AND u.userposid in (1,2,3,4,5)'; }
|
|
elseif($user_position == '2') { $sql_pos = 'AND u.userposid in (2,4)'; }
|
|
elseif($user_position == '3') { $sql_pos = 'AND u.userposid in (3,5)'; }
|
|
|
|
$sql = "SELECT u.firstname, u.lastname, u.userdeptid, u.reportto, u.userid,
|
|
SUM(CASE WHEN aty.acttypecode='CR' THEN 1 ELSE 0 END) AS CR,
|
|
SUM(CASE WHEN aty.acttypecode='IR' THEN 1 ELSE 0 END) AS IR,
|
|
SUM(CASE WHEN aty.acttypecode='MN' THEN 1 ELSE 0 END) AS MN,
|
|
SUM(CASE WHEN aty.acttypecode='SP' THEN 1 ELSE 0 END) AS SP,
|
|
SUM(CASE WHEN aty.acttypecode='PR' THEN 1 ELSE 0 END) AS PR,
|
|
SUM(CASE WHEN aty.acttypecode='RF' THEN 1 ELSE 0 END) AS RF,
|
|
SUM(CASE WHEN aty.acttypecode='TR' THEN 1 ELSE 0 END) AS TR,
|
|
COUNT(a.actid) AS total
|
|
FROM users u
|
|
LEFT JOIN activities a ON u.userid = a.userid_owner AND a.closedate BETWEEN '$firstdate 00:00:00' AND '$lastdate 23:59:59'
|
|
LEFT JOIN acttype aty ON aty.acttypeid = a.acttypeid
|
|
WHERE u.userdeptid = 1 and ( u.enddate is null OR u.enddate < a.opendate )
|
|
$sql_pos
|
|
GROUP BY u.userid, u.firstname, u.lastname
|
|
ORDER BY u.userid ASC, total DESC, u.firstname";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['count'] = $results;
|
|
|
|
// MENU TSM & TSS
|
|
// Menu Table TOP 3 PART REPLACED
|
|
$sql = "SELECT pr.catalognumber, pr.productname, SUM( CAST(inv.qty as decimal(10,2))) as total_qty
|
|
FROM productcatalog pr
|
|
LEFT JOIN unitgroup ug ON ug.catalogid=pr.catalogid
|
|
LEFT JOIN invtrans inv ON inv.unitgroupid=ug.unitgroupid
|
|
WHERE inv.purpose IN ('PR', 'PB', 'PU', 'PF') AND pr.productaliasid<>0
|
|
GROUP BY pr.catalognumber
|
|
ORDER BY total_qty DESC
|
|
LIMIT 3";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['most_part_replaced'] = $results;
|
|
|
|
// Menu Table SPARE PARTS REPLACEMENT THIS MONTH
|
|
// Menu TSO BARAT
|
|
$sql = "SELECT vn.vendorid, vn.vendorname, SUM( CAST(inv.qty as decimal(10,0))) as total_qty
|
|
FROM productcatalog pr
|
|
LEFT JOIN vendors vn ON vn.vendorid=pr.vendorid
|
|
LEFT JOIN unitgroup ug ON ug.catalogid=pr.catalogid
|
|
LEFT JOIN invtrans inv ON inv.unitgroupid=ug.unitgroupid
|
|
LEFT JOIN activities act ON act.actid=inv.actid
|
|
LEFT JOIN sites st ON st.siteid=act.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE inv.purpose IN ('PR', 'PB', 'PU', 'PF') AND pr.productaliasid <> 0
|
|
AND ars.areaid IN (8)
|
|
AND (inv.itxdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
GROUP BY vn.vendorid
|
|
ORDER BY total_qty DESC;";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['replacement_barat'] = $results;
|
|
$vendorid_filtersql=''; // Untuk Filter Vendorid
|
|
foreach($data['replacement_barat'] as $row) { // Perulangan untuk menyimpan data vendor id ke string vendorid_filtersql
|
|
if($row['vendorid']==null){continue;}
|
|
$vendorid_filtersql .= $row['vendorid'];
|
|
$vendorid_filtersql .= ',';
|
|
}
|
|
$vendorid_filtersql = substr_replace($vendorid_filtersql, "", -1); // Untuk menghilangkan tanda koma pada bagian akhir
|
|
$vendorid_filtersql == "" ? "" : $vendorid_filtersql = sprintf("%s%s%s", "AND vn.vendorid IN (", $vendorid_filtersql, ")");
|
|
$sql = "SELECT vn.vendorid, COUNT(pr.siteid) as banyak_vendor
|
|
FROM vendors vn
|
|
LEFT JOIN productcatalog prct ON vn.vendorid=prct.vendorid
|
|
LEFT JOIN products pr ON prct.catalogid=pr.catalogid
|
|
LEFT JOIN sites st ON pr.siteid=st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE ars.areaid IN (8) $vendorid_filtersql
|
|
GROUP BY vn.vendorid";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['replacement_vendor_barat'] = $results;
|
|
// Menu TSO TENGAH
|
|
$sql = "SELECT vn.vendorid, vn.vendorname, SUM( CAST(inv.qty as decimal(10,0))) as total_qty
|
|
FROM productcatalog pr
|
|
LEFT JOIN vendors vn ON vn.vendorid=pr.vendorid
|
|
LEFT JOIN unitgroup ug ON ug.catalogid=pr.catalogid
|
|
LEFT JOIN invtrans inv ON inv.unitgroupid=ug.unitgroupid
|
|
LEFT JOIN activities act ON act.actid=inv.actid
|
|
LEFT JOIN sites st ON st.siteid=act.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE inv.purpose IN ('PR', 'PB', 'PU', 'PF') AND pr.productaliasid <> 0
|
|
AND ars.areaid IN (9)
|
|
AND (inv.itxdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
GROUP BY vn.vendorid
|
|
ORDER BY total_qty DESC;";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['replacement_tengah'] = $results;
|
|
$vendorid_filtersql=''; // Untuk Filter Vendorid
|
|
foreach($data['replacement_tengah'] as $row) { // Perulangan untuk menyimpan data vendor id ke string vendorid_filtersql
|
|
if($row['vendorid']==null){continue;}
|
|
$vendorid_filtersql .= $row['vendorid'];
|
|
$vendorid_filtersql .= ',';
|
|
}
|
|
$vendorid_filtersql = substr_replace($vendorid_filtersql, "", -1); // Untuk menghilangkan tanda koma pada bagian akhir
|
|
$vendorid_filtersql == "" ? "" : $vendorid_filtersql = sprintf("%s%s%s", "AND vn.vendorid IN (", $vendorid_filtersql, ")");
|
|
$sql = "SELECT vn.vendorid, COUNT(pr.siteid) as banyak_vendor
|
|
FROM vendors vn
|
|
LEFT JOIN productcatalog prct ON vn.vendorid=prct.vendorid
|
|
LEFT JOIN products pr ON prct.catalogid=pr.catalogid
|
|
LEFT JOIN sites st ON pr.siteid=st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE ars.areaid IN (9) $vendorid_filtersql
|
|
GROUP BY vn.vendorid";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['replacement_vendor_tengah'] = $results;
|
|
// Menu TSO TIMUR
|
|
$sql = "SELECT vn.vendorid, vn.vendorname, SUM( CAST(inv.qty as decimal(10,0))) as total_qty
|
|
FROM productcatalog pr
|
|
LEFT JOIN vendors vn ON vn.vendorid=pr.vendorid
|
|
LEFT JOIN unitgroup ug ON ug.catalogid=pr.catalogid
|
|
LEFT JOIN invtrans inv ON inv.unitgroupid=ug.unitgroupid
|
|
LEFT JOIN activities act ON act.actid=inv.actid
|
|
LEFT JOIN sites st ON st.siteid=act.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE inv.purpose IN ('PR', 'PB', 'PU', 'PF') AND pr.productaliasid <> 0
|
|
AND ars.areaid IN (10)
|
|
AND (inv.itxdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
GROUP BY vn.vendorid
|
|
ORDER BY total_qty DESC;";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['replacement_timur'] = $results;
|
|
$vendorid_filtersql=''; // Untuk Filter Vendorid
|
|
foreach($data['replacement_timur'] as $row) { // Perulangan untuk menyimpan data vendor id ke string vendorid_filtersql
|
|
if($row['vendorid']==null){continue;}
|
|
$vendorid_filtersql .= $row['vendorid'];
|
|
$vendorid_filtersql .= ',';
|
|
}
|
|
$vendorid_filtersql = substr_replace($vendorid_filtersql, "", -1); // Untuk menghilangkan tanda koma pada bagian akhir
|
|
$vendorid_filtersql == "" ? "" : $vendorid_filtersql = sprintf("%s%s%s", "AND vn.vendorid IN (", $vendorid_filtersql, ")");
|
|
$sql = "SELECT vn.vendorid, COUNT(pr.siteid) as banyak_vendor
|
|
FROM vendors vn
|
|
LEFT JOIN productcatalog prct ON vn.vendorid=prct.vendorid
|
|
LEFT JOIN products pr ON prct.catalogid=pr.catalogid
|
|
LEFT JOIN sites st ON pr.siteid=st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE ars.areaid IN (10) $vendorid_filtersql
|
|
GROUP BY vn.vendorid";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['replacement_vendor_timur'] = $results;
|
|
|
|
// ACTIVITIES BY PRINCIPLE - THIS MONTH
|
|
// TSO BARAT
|
|
$sql = "SELECT vn.vendorid, vn.vendorname, COUNT(vn.vendorid) as banyak_act
|
|
FROM activities act
|
|
LEFT JOIN sites st ON st.siteid=act.siteid
|
|
LEFT JOIN products pr ON pr.productid=act.productid
|
|
LEFT JOIN productcatalog prct ON prct.catalogid=pr.catalogid
|
|
LEFT JOIN vendors vn ON vn.vendorid=prct.vendorid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE act.productid IS NOT NULL
|
|
AND ars.areaid IN (8)
|
|
AND (act.reportdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
AND ( act.opendate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
GROUP BY vn.vendorid
|
|
ORDER BY banyak_act DESC
|
|
LIMIT 5";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['act_principle_barat'] = $results;
|
|
$vendorid_filtersql=''; // Untuk Filter Vendorid
|
|
foreach($data['act_principle_barat'] as $row) { // Perulangan untuk menyimpan data vendor id ke string vendorid_filtersql
|
|
if($row['vendorid']==null){continue;}
|
|
$vendorid_filtersql .= $row['vendorid'];
|
|
$vendorid_filtersql .= ',';
|
|
}
|
|
$vendorid_filtersql = substr_replace($vendorid_filtersql, "", -1); // Untuk menghilangkan tanda koma pada bagian akhir
|
|
$vendorid_filtersql == "" ? "" : $vendorid_filtersql = sprintf("%s%s%s", "AND vn.vendorid IN (", $vendorid_filtersql, ")");
|
|
$sql = "SELECT vn.vendorid, COUNT(pr.siteid) as banyak_vendor
|
|
FROM vendors vn
|
|
LEFT JOIN productcatalog prct ON vn.vendorid=prct.vendorid
|
|
LEFT JOIN products pr ON prct.catalogid=pr.catalogid
|
|
LEFT JOIN sites st ON pr.siteid=st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE ars.areaid IN (8) $vendorid_filtersql
|
|
GROUP BY vn.vendorid
|
|
LIMIT 5";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['act_vendor_barat'] = $results;
|
|
// TSO TENGAH
|
|
$sql = "SELECT vn.vendorid, vn.vendorname, COUNT(vn.vendorid) as banyak_act
|
|
FROM activities act
|
|
LEFT JOIN sites st ON st.siteid=act.siteid
|
|
LEFT JOIN products pr ON pr.productid=act.productid
|
|
LEFT JOIN productcatalog prct ON prct.catalogid=pr.catalogid
|
|
LEFT JOIN vendors vn ON vn.vendorid=prct.vendorid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE act.productid IS NOT NULL
|
|
AND ars.areaid IN (9)
|
|
AND (act.reportdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
AND ( act.opendate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
GROUP BY vn.vendorid
|
|
ORDER BY banyak_act DESC
|
|
LIMIT 5";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['act_principle_tengah'] = $results;
|
|
$vendorid_filtersql=''; // Untuk Filter Vendorid
|
|
foreach($data['act_principle_tengah'] as $row) { // Perulangan untuk menyimpan data vendor id ke string vendorid_filtersql
|
|
if($row['vendorid']==null){continue;}
|
|
$vendorid_filtersql .= $row['vendorid'];
|
|
$vendorid_filtersql .= ',';
|
|
}
|
|
$vendorid_filtersql = substr_replace($vendorid_filtersql, "", -1); // Untuk menghilangkan tanda koma pada bagian akhir
|
|
$vendorid_filtersql == "" ? "" : $vendorid_filtersql = sprintf("%s%s%s", "AND vn.vendorid IN (", $vendorid_filtersql, ")");
|
|
$sql = "SELECT vn.vendorid, COUNT(pr.siteid) as banyak_vendor
|
|
FROM vendors vn
|
|
LEFT JOIN productcatalog prct ON vn.vendorid=prct.vendorid
|
|
LEFT JOIN products pr ON prct.catalogid=pr.catalogid
|
|
LEFT JOIN sites st ON pr.siteid=st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE ars.areaid IN (9) $vendorid_filtersql
|
|
GROUP BY vn.vendorid
|
|
LIMIT 5";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['act_vendor_tengah'] = $results;
|
|
// TSO TIMUR
|
|
$sql = "SELECT vn.vendorid, vn.vendorname, COUNT(vn.vendorid) as banyak_act
|
|
FROM activities act
|
|
LEFT JOIN sites st ON st.siteid=act.siteid
|
|
LEFT JOIN products pr ON pr.productid=act.productid
|
|
LEFT JOIN productcatalog prct ON prct.catalogid=pr.catalogid
|
|
LEFT JOIN vendors vn ON vn.vendorid=prct.vendorid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE act.productid IS NOT NULL
|
|
AND ars.areaid IN (10)
|
|
AND (act.reportdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
AND ( act.opendate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
GROUP BY vn.vendorid
|
|
ORDER BY banyak_act DESC
|
|
LIMIT 5";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['act_principle_timur'] = $results;
|
|
$vendorid_filtersql=''; // Untuk Filter Vendorid
|
|
foreach($data['act_principle_timur'] as $row) { // Perulangan untuk menyimpan data vendor id ke string vendorid_filtersql
|
|
if($row['vendorid']==null){continue;}
|
|
$vendorid_filtersql .= $row['vendorid'];
|
|
$vendorid_filtersql .= ',';
|
|
}
|
|
$vendorid_filtersql = substr_replace($vendorid_filtersql, "", -1); // Untuk menghilangkan tanda koma pada bagian akhir
|
|
$vendorid_filtersql == "" ? "" : $vendorid_filtersql = sprintf("%s%s%s", "AND vn.vendorid IN (", $vendorid_filtersql, ")");
|
|
$sql = "SELECT vn.vendorid, COUNT(pr.siteid) as banyak_vendor
|
|
FROM vendors vn
|
|
LEFT JOIN productcatalog prct ON vn.vendorid=prct.vendorid
|
|
LEFT JOIN products pr ON prct.catalogid=pr.catalogid
|
|
LEFT JOIN sites st ON pr.siteid=st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE ars.areaid IN (10) $vendorid_filtersql
|
|
GROUP BY vn.vendorid
|
|
LIMIT 5";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['act_vendor_timur'] = $results;
|
|
|
|
// TOP 3 SITES WITH INCIDENTS - THIS MONTH
|
|
// Menu Table TOP 3 SITES WITH INCIDENTS TSS IT
|
|
$sql = "SELECT act.siteid ,st.sitename, acty.fulltext, COUNT(act.siteid) AS total, ars.description
|
|
FROM activities act
|
|
LEFT JOIN users us on us.userid = act.userid_owner
|
|
LEFT JOIN acttype acty ON act.acttypeid = acty.acttypeid
|
|
LEFT JOIN sites st ON act.siteid = st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE act.acttypeid = 1 AND ars.areaid IN (8,9,10) AND us.userid IN (5,9,12,15,36)
|
|
AND (act.reportdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
AND ( act.opendate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
GROUP BY st.sitename
|
|
ORDER BY total DESC
|
|
LIMIT 3";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['incidents_site_tsoit'] = $results;
|
|
// Menu Table TOP 3 SITES WITH INCIDENTS TSS IVD BARAT
|
|
$sql = "SELECT act.siteid ,st.sitename, acty.fulltext, COUNT(act.siteid) AS total, ars.description
|
|
FROM activities act
|
|
LEFT JOIN users us on us.userid = act.userid_owner
|
|
LEFT JOIN acttype acty ON act.acttypeid = acty.acttypeid
|
|
LEFT JOIN sites st ON act.siteid = st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE act.acttypeid = 1 AND ars.areaid=8 AND us.userid IN (3,6,13,16,19,44,45)
|
|
AND (act.reportdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
AND ( act.opendate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
GROUP BY st.sitename
|
|
ORDER BY total DESC
|
|
LIMIT 3";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['incidents_site_tsobarat'] = $results;
|
|
// Menu Table TOP 3 SITES WITH INCIDENTS TSS IVD TENGAH
|
|
$sql = "SELECT act.siteid ,st.sitename, acty.fulltext, COUNT(act.siteid) AS total, ars.description
|
|
FROM activities act
|
|
LEFT JOIN users us on us.userid = act.userid_owner
|
|
LEFT JOIN acttype acty ON act.acttypeid = acty.acttypeid
|
|
LEFT JOIN sites st ON act.siteid = st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
AND (act.reportdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
AND ( act.opendate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
WHERE act.acttypeid = 1 AND ars.areaid=9 AND us.userid IN (10,11,18,20)
|
|
GROUP BY st.sitename
|
|
ORDER BY total DESC
|
|
LIMIT 3";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['incidents_site_tsotengah'] = $results;
|
|
// Menu Table TOP 3 SITES WITH INCIDENTS TSS IVD TIMUR
|
|
$sql = "SELECT act.siteid ,st.sitename, acty.fulltext, COUNT(act.siteid) AS total, ars.description
|
|
FROM activities act
|
|
LEFT JOIN users us on us.userid = act.userid_owner
|
|
LEFT JOIN acttype acty ON act.acttypeid = acty.acttypeid
|
|
LEFT JOIN sites st ON act.siteid = st.siteid
|
|
LEFT JOIN accounts acc ON st.accountid = acc.accountid
|
|
LEFT JOIN zones zs ON acc.zoneid = zs.zoneid
|
|
LEFT JOIN areazone ae ON zs.zoneid = ae.zoneid
|
|
LEFT JOIN areas ars ON ae.areaid = ars.areaid
|
|
WHERE act.acttypeid = 1 AND ars.areaid=10 AND us.userid IN (2,14,17,21,46,47)
|
|
AND (act.reportdate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
AND ( act.opendate between '$opendate 00:00:00' and '$closedate 23:59:59')
|
|
GROUP BY st.sitename
|
|
ORDER BY total DESC
|
|
LIMIT 3";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
$data['incidents_site_tsotimur'] = $results;
|
|
|
|
}
|
|
|
|
return view('dashboard',$data);
|
|
}
|
|
|
|
}
|