db_onedev = $this->load->database("onedev", true); } function searchproject() { try { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $q = [ 'search' => '%' ]; if ($prm['search_project'] != '') { $q['search'] = "%{$prm['search_project']}%"; } $q['details'] = ""; if (!empty($prm['details']) && count($prm['details']) > 0 && $prm['type'] == "project") { $mgm_mcu_numbers = []; foreach ($prm['details'] as $detail) { $mgm_mcu_numbers[] = "'".$detail['Mgm_McuNumber']."'"; $q['details'] .= "AND Mgm_McuGroupDetailMgm_McuID IS NULL AND Mgm_McuNumber NOT IN (".implode(',', $mgm_mcu_numbers).")"; } } $sql = "SELECT Mgm_McuID, Mgm_McuNumber, Mgm_McuLabel FROM mgm_mcu JOIN corporate ON Mgm_McuCorporateID = CorporateID AND CorporateIsActive = 'Y' LEFT JOIN mgm_mcugroupdetail ON Mgm_McuGroupDetailMgm_McuID = Mgm_McuID AND Mgm_McuGroupDetailIsActive = 'Y' WHERE Mgm_McuIsActive = 'Y' AND ( Mgm_McuNumber LIKE ? OR Mgm_McuLabel LIKE ? ) {$q['details']} LIMIT 20;"; $query = $this->db_onedev->query($sql, array($q['search'], $q['search'])); //echo $this->db_onedev->last_query(); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("last_query" => $this->db_onedev->last_query(), "records" => $rows); $this->sys_ok($result); } else { $this->sys_error_db("Test rows", $this->db_onedev, array( "last_query" => $this->db_onedev->last_query() )); exit; } } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function searchcorporate() { try { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $q = [ 'search' => '%' ]; if ($prm['search_corporate'] != '') { $q['search'] = "%{$prm['search_corporate']}%"; } $sql = "SELECT CorporateID, CorporateName FROM corporate WHERE CorporateIsActive = 'Y' AND ( CorporateName LIKE ? ) LIMIT 20;"; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("last_query" => $this->db_onedev->last_query(), "records" => $rows); $this->sys_ok($result); } else { $this->sys_error_db("Test rows", $this->db_onedev, array( "last_query" => $this->db_onedev->last_query() )); exit; } } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function searchgroupproject() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $filter_corporate = $prm["filter_corporate"] ?? []; $filter_project = $prm["filter_project"] ?? []; $current_page = $prm["current_page"] ?? 1; $number_limit = 10; $number_offset = ($current_page - 1) * $number_limit; $params_count = []; $params = []; // hitung total $sql_count = "SELECT COUNT(*) as total FROM ( SELECT DISTINCT Mgm_McuGroupID FROM mgm_mcugroup JOIN mgm_mcugroupdetail ON Mgm_McuGroupDetailMgm_McuGroupID = Mgm_McuGroupID AND Mgm_McuGroupDetailIsActive = 'Y' JOIN mgm_mcu ON Mgm_McuGroupDetailMgm_McuID = Mgm_McuID JOIN corporate ON Mgm_McuCorporateID = CorporateID AND CorporateIsActive = 'Y' WHERE Mgm_McuGroupIsActive = 'Y' ) x"; if(!empty($filter_corporate)){ $sql_count .= " AND Mgm_McuCorporateID = ?"; $params_count[] = $filter_corporate['CorporateID']; } if(!empty($filter_project)){ $sql_count .= " AND Mgm_McuGroupDetailMgm_McuID = ?"; $params_count[] = $filter_project['Mgm_McuID']; } $query = $this->db_onedev->query($sql_count, $params_count); $tot_count = $query ? $query->row()->total : 0; $tot_page = ceil($tot_count / $number_limit); // ambil data $sql = "SELECT DISTINCT Mgm_McuGroupID,mgm_mcugroup.*, '' as details FROM mgm_mcugroup JOIN mgm_mcugroupdetail ON Mgm_McuGroupDetailMgm_McuGroupID = Mgm_McuGroupID AND Mgm_McuGroupDetailIsActive = 'Y' JOIN mgm_mcu ON Mgm_McuGroupDetailMgm_McuID = Mgm_McuID JOIN corporate ON Mgm_McuCorporateID = CorporateID AND CorporateIsActive = 'Y' WHERE Mgm_McuGroupIsActive = 'Y' "; if(count($filter_corporate) > 0){ $sql .= " AND Mgm_McuCorporateID = ?"; $params[] = $filter_corporate['CorporateID']; } if(count($filter_project) > 0){ $sql .= " AND Mgm_McuGroupDetailMgm_McuID = ?"; $params[] = $filter_project['Mgm_McuID']; } $sql .= " LIMIT ? OFFSET ?"; $params_data = array_merge($params, [$number_limit, $number_offset]); // print_r($params_data); $query = $this->db_onedev->query($sql, $params_data); //echo $this->db_onedev->last_query(); $rows = $query ? $query->result_array() : []; if(!empty($rows)){ foreach($rows as $key => $row){ $sql = "SELECT * FROM mgm_mcugroupdetail JOIN mgm_mcu ON Mgm_McuGroupDetailMgm_McuID = Mgm_McuID JOIN corporate ON Mgm_McuCorporateID = CorporateID AND CorporateIsActive = 'Y' WHERE Mgm_McuGroupDetailMgm_McuGroupID = ? AND Mgm_McuGroupDetailIsActive = 'Y' "; $query = $this->db_onedev->query($sql, [$row['Mgm_McuGroupID']]); // echo $this->db_onedev->last_query(); $rows_detail = $query ? $query->result_array() : []; $rows[$key]['details'] = $rows_detail; } } $result = [ "last_query" => $this->db_onedev->last_query(), "message" => $rows ? "Data Ditemukan" : "Data Tidak Ditemukan", "total" => $tot_count, "total_page" => $tot_page, "records" => $rows ]; $this->sys_ok($result); } catch (Exception $exc) { $this->sys_error($exc->getMessage()); } } function addresultflag() { try { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $name = $prm["name"]; $details = $prm["details"]; $userid = $this->sys_user["M_UserID"]; $this->db_onedev->trans_begin(); $sql = "SELECT * FROM mgm_mcugroup WHERE Mgm_McuGroupIsActive = 'Y' AND Mgm_McuGroupName = ?"; $query = $this->db_onedev->query($sql, [$name]); if (!$query) { $this->db_onedev->trans_rollback(); $this->sys_error_db("Mgm_McuGroup Select Error"); exit; } $rows = $query->result_array(); if(count($rows) > 0){ $this->sys_error("Nama sudah ada"); exit; } $sql = "INSERT INTO mgm_mcugroup (Mgm_McuGroupName, Mgm_McuGroupCreatedUserID, Mgm_McuGroupCreated) VALUES (?, ?, NOW())"; $query = $this->db_onedev->query($sql, [$name, $userid]); if (!$query) { $this->db_onedev->trans_rollback(); $this->sys_error_db("Mgm_McuGroup Insert Error"); exit; } $mcu_group_id = $this->db_onedev->insert_id(); if(count($details) > 0){ foreach($details as $detail){ $sql = "INSERT INTO mgm_mcugroupdetail ( Mgm_McuGroupDetailMgm_McuID, Mgm_McuGroupDetailMgm_McuGroupID, Mgm_McuGroupDetailCreated, Mgm_McuGroupDetailCreatedUserID) VALUES (?, ?, NOW(), ?)"; $query = $this->db_onedev->query($sql, [$detail['Mgm_McuID'], $mcu_group_id, $userid]); if (!$query) { $this->db_onedev->trans_rollback(); //echo $this->db_onedev->last_query(); $this->sys_error_db("Mgm_McuGroupDetail Insert Error"); exit; } } } $result = [ "message" => "Berhasil Tambah Data", "records" => $mcu_group_id ]; $this->db_onedev->trans_commit(); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function deletegroupproject() { try { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $this->db_onedev->trans_begin(); $id = $prm["id"]; $userid = $this->sys_user["M_UserID"]; $sql = "SELECT * FROM mgm_mcugroup WHERE Mgm_McuGroupID = ? AND Mgm_McuGroupIsActive= 'Y'"; $query = $this->db_onedev->query($sql, [$id]); $rows = $query->result_array(); if (!$rows) { $data = $this->sys_ok("Tidak Ada yang Didelete"); return $data; } $sql = "UPDATE mgm_mcugroup SET Mgm_McuGroupIsActive = 'N', Mgm_McuGroupDeleted = NOW(), Mgm_McuGroupDeletedUserID = ? WHERE Mgm_McuGroupID = ? AND Mgm_McuGroupIsActive= 'Y'"; $query = $this->db_onedev->query($sql, [$userid, $id]); if (!$query) { $this->db_onedev->trans_rollback(); $this->sys_error_db("Result Flag Delete | " . $this->db_onedev->last_query()); exit; } $result = array("last_query" => $this->db_onedev->last_query(), "message" => "Berhasil Delete"); $this->db_onedev->trans_commit(); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function updateresultflag() { try { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $this->db_onedev->trans_begin(); $resultid = $prm["resultid"]; $resulttest = $prm["nattestid"]; $resultname = $prm["resultname"]; $resultflag = $prm["resultflag"]; $sql = "SELECT * FROM m_resultflag WHERE M_ResultFlagID = ? AND M_ResultFlagIsActive= 'Y'"; $query = $this->db_onedev->query($sql, [$resultid]); $rows = $query->result_array(); if (!$rows) { $data = $this->sys_ok("Tidak Ada yang Didelete"); return $data; } $row = $rows[0]; $message = [ "Nat_ID" => $row['M_ResultFlagNat_TestID'], "Nama" => $row['M_ResultFlagName'], "Flag" => $row['M_ResultFlagFlag'] ]; $sql = "UPDATE m_resultflag SET M_ResultFlagNat_TestID = ?, M_ResultFlagName = ?, M_ResultFlagFlag = ?, M_ResultFlagLasUpdated = NOW() WHERE M_ResultFlagID = ? AND M_ResultFlagIsActive= 'Y'"; $query = $this->db_onedev->query($sql, [$resulttest,$resultname,$resultflag,$resultid]); if (!$query) { $this->db_onedev->trans_rollback(); $result = [ "message" => "Data Gagal Diupdate", "last_query" => $this->db_onedev->last_query(), ]; $this->sys_error_db($result); exit; } $result = array("last_query" => $this->db_onedev->last_query(), "message" => "Berhasil Update"); $this->db_onedev->trans_commit(); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }