db_onedev = $this->load->database("onedev", true); $this->load->library("SsPriceMou"); } // cpone public function searchv0() { $prm = $this->sys_input; if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } // $search = $prm['search']; // if (isset($prm['search'])) { // $search = trim($prm["search"]); // if ($search != "") { // $search = '%' . $prm['search'] . '%'; // }else{ // $search = '%%'; // } // } $limit = ''; $filter_paket = $prm['searchPacket']; if ($all == 'N') { $limit = ' LIMIT 10'; } $number_limit = 10; $number_offset = ($prm['current_page'] - 1) * $number_limit; $sql_where = " WHERE ( Mgm_McuNumber LIKE '%{$prm['search']}%' OR CorporateName LIKE '%{$prm['search']}%' OR Mgm_McuLabel LIKE '%{$prm['search']}%' )"; $sql = "SELECT COUNT(*) AS total FROM ( SELECT mgm.Mgm_McuID FROM mgm_mcu mgm LEFT JOIN corporate corp ON mgm.Mgm_McuCorporateID = corp.CorporateID AND corp.CorporateIsActive = 'Y' AND mgm.Mgm_McuIsActive = 'Y' JOIN t_priceheader price ON mgm.Mgm_McuT_PriceHeaderID = price.T_PriceHeaderID AND price.T_PriceHeaderIsActive = 'Y' JOIN mgm_mcupacket packet ON mgm.Mgm_McuID = packet.Mgm_McuPacketMgm_McuID AND packet.Mgm_McuPacketIsActive = 'Y' LEFT JOIN mgm_mcutemplate template ON mgm.Mgm_McuID = template.Mgm_McuTemplateMgm_McuID AND template.Mgm_McuTemplateIsActive = 'Y' LEFT JOIN fisik_template_mapping fisik ON template.Mgm_McuTemplateFisikTemplateMappingID = fisik.FisikTemplateMappingID AND fisik.FisikTemplateMappingIsActive = 'Y' LEFT JOIN m_branch branch ON mgm.Mgm_McuM_BranchID = branch.M_BranchID AND branch.M_BranchIsActive = 'Y' $sql_where GROUP BY mgm.Mgm_McuID ) subquery;"; $sql_param = array(); $query = $this->db_onedev->query($sql, $sql_param); $tot_count = 0; $tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; $tot_page = ceil($tot_count / $number_limit); } else { $this->sys_error_db("mgmmcu count", $this->db_onedev); exit; } // sql data $sql = "SELECT -- mgm_mcu IFNULL(mgm.Mgm_McuID, 0) AS Mgm_McuID, IFNULL(mgm.Mgm_McuLabel, '') AS Mgm_McuLabel, IFNULL(mgm.Mgm_McuPicName,'') AS Mgm_McuPicName, -- IFNULL(mgm.Mgm_McuFlagRelasiBayarSendiri, '') AS Mgm_McuFlagRelasiBayarSendiri, -- IFNULL(mgm.Mgm_McuBisaTambahPemeriksaan, '') AS Mgm_McuBisaTambahPemeriksaan, mgm.Mgm_McuFlagRelasiBayarSendiri, mgm.Mgm_McuBisaTambahPemeriksaan, IFNULL(mgm.Mgm_McuCorporateID, 0) AS Mgm_McuCorporateID, IFNULL(mgm.Mgm_McuNumber, '') AS Mgm_McuNumber, IFNULL(mgm.Mgm_McuNumberNational, '') AS Mgm_McuNumberNational, IFNULL(mgm.Mgm_McuNote, '') AS Mgm_McuNote, IFNULL(mgm.Mgm_McuStartDate, '0000-00-00') AS Mgm_McuStartDate, IFNULL(mgm.Mgm_McuEndDate, '0000-00-00') AS Mgm_McuEndDate, IFNULL(DATE_FORMAT(mgm.Mgm_McuStartDate, '%d-%m-%Y'), '00-00-0000') AS Mgm_McuStartDateTxt, IFNULL(DATE_FORMAT(mgm.Mgm_McuEndDate, '%d-%m-%Y'), '00-00-0000') AS Mgm_McuEndDateTxt, IFNULL(mgm.Mgm_McuIsActive, '') AS Mgm_McuIsActive, IFNULL(mgm.Mgm_McuTotalParticipant, 0) AS Mgm_McuTotalParticipant, IFNULL(mgm.Mgm_McuPicEmail, '') AS Mgm_McuPicEmail, IFNULL(mgm.Mgm_McuPicPassword, '') AS Mgm_McuPicPassword, IFNULL(mgm.Mgm_McuT_PriceHeaderID, 0) AS Mgm_McuT_PriceHeaderID, IFNULL(mgm.Mgm_McuReportHasil, '1') AS Mgm_McuReportHasil, IFNULL(mgm.Mgm_McuGeneratePasswordBY, '') AS generatepasswordbycode, CASE WHEN Mgm_McuGeneratePasswordBY = 'hrd' THEN 'Generate password pasien oleh HRD' WHEN Mgm_McuGeneratePasswordBY = 'cpone' THEN 'Generate password pasien oleh CPONE' ELSE '' END AS generatepasswordbyname, -- corporate IFNULL(corp.CorporateID, 0) AS CorporateID, IFNULL(corp.CorporateCode, '') AS CorporateCode, IFNULL(corp.CorporateName, '') AS CorporateName, IFNULL(corp.CorporateAddress, '') AS CorporateAddress, IFNULL(corp.CorporateAddressRegionalCd, '') AS CorporateAddressRegionalCd, IFNULL(corp.CorporateAddressRT, '') AS CorporateAddressRT, IFNULL(corp.CorporateAddressRW, '') AS CorporateAddressRW, IFNULL(corp.CorporateAddressVillage, '') AS CorporateAddressVillage, IFNULL(corp.CorporateAddressDistrict, '') AS CorporateAddressDistrict, IFNULL(corp.CorporateAddressCity, '') AS CorporateAddressCity, IFNULL(corp.CorporateAddressState, '') AS CorporateAddressState, IFNULL(corp.CorporateAddressCountry, '') AS CorporateAddressCountry, IFNULL(corp.CorporateEmail, '') AS CorporateEmail, IFNULL(corp.CorporatePhone, '') AS CorporatePhone, IFNULL(corp.CorporatePICName, '') AS CorporatePICName, IFNULL(corp.CorporatePICEmail, '') AS CorporatePICEmail, IFNULL(corp.CorporatePICPhone, '') AS CorporatePICPhone, IFNULL(corp.CorporateFlagHolding, '') AS CorporateFlagHolding, IFNULL(corp.CorporateHoldingCorporateID, 0) AS CorporateHoldingCorporateID, IFNULL(corp.CorporatePICBillName, '') AS CorporatePICBillName, IFNULL(corp.CorporatePICBillEmail, '') AS CorporatePICBillEmail, IFNULL(corp.CorporatePICBillPhone, '') AS CorporatePICBillPhone, IFNULL(corp.CorporateDueDate, 0) AS CorporateDueDate, IFNULL(corp.CorporateFlagJPA, '') AS CorporateFlagJPA, IFNULL(corp.CorporateUsername, '') AS CorporateUsername, IFNULL(corp.CorporatePassword, '') AS CorporatePassword, IFNULL(corp.CorporateIsActive, '') AS CorporateIsActive, -- t_priceheader IFNULL(price.T_PriceHeaderID, 0) AS T_PriceHeaderID, IFNULL(price.T_PriceHeaderName, '') AS T_PriceHeaderName, IFNULL(price.T_PriceHeaderStartDate, '0000-00-00') AS T_PriceHeaderStartDate, IFNULL(price.T_PriceHeaderEndDate, '0000-00-00') AS T_PriceHeaderEndDate, IFNULL(price.T_PriceHeaderIsActive, '') AS T_PriceHeaderIsActive, -- mgm_mcupacket IFNULL(packet.Mgm_McuPacketID, 0) AS Mgm_McuPacketID, IFNULL(packet.Mgm_McuPacketT_PacketID, 0) AS Mgm_McuPacketT_PacketID, IFNULL(packet.Mgm_McuPacketIsActive, '') AS Mgm_McuPacketIsActive, IFNULL(template.Mgm_McuTemplateID, 0) AS Mgm_McuTemplateID, IFNULL(template.Mgm_McuTemplateFisikTemplateMappingID, 0) AS Mgm_McuTemplateFisikTemplateMappingID, IFNULL(template.Mgm_McuTemplateIsActive, '') AS Mgm_McuTemplateIsActive, -- fisik_template_mapping IFNULL(fisik.FisikTemplateMappingID, 0) AS FisikTemplateMappingID, IFNULL(fisik.FisikTemplateMappingName, '') AS FisikTemplateMappingName, IFNULL(fisik.FisikTemplateMappingIsActive, '') AS FisikTemplateMappingIsActive, IFNULL(fisik.FisikTemplateMappingCreated, '0000-00-00 00:00:00') AS FisikTemplateMappingCreated, IFNULL(fisik.FisikTemplateMappingCreatedUserID, 0) AS FisikTemplateMappingCreatedUserID, IFNULL(fisik.FisikTemplateMappingLastUpdated, '0000-00-00 00:00:00') AS FisikTemplateMappingLastUpdated, IFNULL(fisik.FisikTemplateMappingLastUpdatedUserID, 0) AS FisikTemplateMappingLastUpdatedUserID, IFNULL(fisik.FisikTemplateMappingDeleted, '0000-00-00 00:00:00') AS FisikTemplateMappingDeleted, IFNULL(fisik.FisikTemplateMappingDeletedUserID, 0) AS FisikTemplateMappingDeletedUserID, -- branch IFNULL(branch.M_BranchID, 0) AS M_BranchID, IFNULL(branch.M_BranchCode, '') AS M_BranchCode, --IFNULL(branch.M_BranchName, '') AS M_BranchName, CONCAT(IFNULL(M_BranchCode, ''), ' - ', IFNULL(M_BranchName, '')) AS M_BranchName, IFNULL(branch.M_BranchAddress, '') AS M_BranchAddress, IFNULL(branch.M_BranchIsActive, '') AS M_BranchIsActive, IFNULL(branch.M_BranchCreated, '0000-00-00 00:00:00') AS M_BranchCreated, IFNULL(branch.M_BranchCreatedUserID, 0) AS M_BranchCreatedUserID, IFNULL(branch.M_BranchLastUpdated, '0000-00-00 00:00:00') AS M_BranchLastUpdated, IFNULL(branch.M_BranchLastUpdatedUserID, 0) AS M_BranchLastUpdatedUserID, IFNULL(branch.M_BranchDeleted, '0000-00-00 00:00:00') AS M_BranchDeleted, IFNULL(branch.M_BranchDeletedUserID, 0) AS M_BranchDeletedUserID, '' as packets FROM mgm_mcu mgm left join corporate corp ON mgm.Mgm_McuCorporateID = corp.CorporateID AND corp.CorporateIsActive = 'Y' AND mgm.Mgm_McuIsActive = 'Y' JOIN t_priceheader price ON mgm.Mgm_McuT_PriceHeaderID = price.T_PriceHeaderID AND price.T_PriceHeaderIsActive = 'Y' JOIN mgm_mcupacket packet ON mgm.Mgm_McuID = packet.Mgm_McuPacketMgm_McuID AND packet.Mgm_McuPacketIsActive = 'Y' LEFT JOIN mgm_mcutemplate template ON mgm.Mgm_McuID = template.Mgm_McuTemplateMgm_McuID AND template.Mgm_McuTemplateIsActive = 'Y' LEFT JOIN fisik_template_mapping fisik ON template.Mgm_McuTemplateFisikTemplateMappingID = fisik.FisikTemplateMappingID AND fisik.FisikTemplateMappingIsActive = 'Y' LEFT JOIN m_branch branch ON mgm.Mgm_McuM_BranchID = branch.M_BranchID AND branch.M_BranchIsActive = 'Y' $sql_where GROUP BY mgm.Mgm_McuID ORDER BY mgm.Mgm_McuID DESC limit $number_limit offset $number_offset "; $query = $this->db_onedev->query($sql, $sql_param); if ($query === false) { // If query failed, log the error and exit $this->sys_error_db("select mgmmcu data", $this->db_onedev); exit; } $rows = $query->result_array(); if (count($rows) > 0) { foreach ($rows as $k => $v) { $rows[$k]['packets'] = array(); // query dapatkan paket $sql_paket = "SELECT group_concat(Mgm_McuPacketT_PacketID) as Mgm_McuPacketT_PacketID from mgm_mcupacket WHERE Mgm_McuPacketMgm_McuID = {$v['Mgm_McuID']} AND Mgm_McuPacketIsActive = 'Y'"; $query_paket = $this->db_onedev->query($sql_paket); if (!$query_paket) { // If query failed, log the error and exit $this->sys_error_db("select mgmmcu data", $this->db_onedev); exit; } $row_paket = $query_paket->row_array(); $where_in_T_PacketID = "AND T_PacketID IN ({$row_paket['Mgm_McuPacketT_PacketID']})"; // $where_in_T_PacketID = "AND T_PacketID IN ('')"; // if($v['Mgm_McuPacketT_PacketID'] != ''){ // $xjoin_packets = explode(',',$v['Mgm_McuPacketT_PacketID']); // //print_r($xjoin_packets); // if($xjoin_packets){ // foreach($xjoin_packets as $kjt => $vjt){ // if($join_packet != '') // $join_packet .= ","; // $join_packet .= "'{$vjt}'"; // } // } // //echo $join_packet; // $where_in_T_PacketID = "AND T_PacketID IN ({$join_packet})"; // } $sql = "SELECT T_PacketID as id, T_PacketID, T_PacketT_PriceHeaderID, T_PacketSasCode, T_PacketName, T_PriceHeaderStartDate, T_PriceHeaderEndDate, T_PacketSasCode as code, T_PacketName as name, 'Y' as T_PacketIsActive from t_packet join t_priceheader ON T_PacketT_PriceHeaderID = T_PriceHeaderID AND T_PacketIsActive = 'Y' AND T_PriceHeaderIsActive = 'Y' AND T_PacketT_PriceHeaderID = {$v['Mgm_McuT_PriceHeaderID']} AND ( T_PacketSasCode LIKE '%$filter_paket%' OR T_PacketName LIKE '%$filter_paket%' ) $where_in_T_PacketID"; //echo $sql; $qry_paket_data = $this->db_onedev->query($sql); if (!$qry_paket_data) { $this->sys_error_db("select packet where in data", $this->db_onedev); exit; } $datapaket = $qry_paket_data->result_array(); $dataNew = []; if (count($datapaket) > 0) { foreach ($datapaket as $key => $vx) { $dataNew[] = $vx; } } // echo "datapaket\n"; // print_r($datapaket); // echo "\ndataNew\n"; // print_r($dataNew); $rows[$k]['packets'] = $dataNew; // $rows[$k]['packets'] = $this->db_onedev->query($sql)->result_array(); } } $result = array( "total" => $tot_page, "records" => $rows, "sql" => $this->db_onedev->last_query() ); $this->sys_ok($result); exit; } function getTemplateFisikMapping() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $sql = "SELECT FisikTemplateMappingID, FisikTemplateMappingName FROM fisik_template_mapping WHERE FisikTemplateMappingIsActive = 'Y'"; $qry = $this->db_onedev->query($sql); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db("template fisik select error", $this->db_onedev); exit; } $result = array( "records" => $rows, "sql" => $this->db_onedev->last_query() ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function searchcorporate() { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count = 0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM corporate WHERE CorporateName like ? AND CorporateIsActive = 'Y'"; $query = $this->db_onedev->query($sql, $q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("corporate count", $this->db_onedev); exit; } $sql = " SELECT CorporateID as id, CorporateName as name FROM corporate WHERE CorporateName like ? AND CorporateIsActive = 'Y' ORDER BY CorporateName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("corporate rows", $this->db_onedev); exit; } } function changeShow(){ if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; if($prm['newval'] == false){ $query = "UPDATE mgm_mcugrafik SET Mgm_McuGrafikIsActive = 'N' WHERE Mgm_McuGrafikMgm_McuID = {$prm['mgm_mcuid']} AND Mgm_McuGrafikMcu_ImageGrafikID = {$prm['id']} AND Mgm_McuGrafikIsActive = 'Y'"; //echo $query; $this->db_onedev->query($query); }else{ $query = "INSERT INTO mgm_mcugrafik (Mgm_McuGrafikMgm_McuID,Mgm_McuGrafikMcu_ImageGrafikID,Mgm_McuGrafikCreated,Mgm_McuGrafikCreatedUserID) VALUES ({$prm['mgm_mcuid']},{$prm['id']},NOW(),{$userid})"; //echo $query; $this->db_onedev->query($query); } $result = array( "status" => "OK" ); $this->sys_ok($result); exit; } function getgrafik(){ if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $query = "SELECT mcu_image_grafik.*, REPLACE(Mcu_ImageGrafikUrl, '[mgmmcuid]',IFNULL(Mgm_McuGrafikID,0) ) as Mcu_ImageGrafikUrl, IFNULL(Mgm_McuGrafikID,0) as Mgm_McuGrafikID, IF(Mgm_McuGrafikID IS NULL, 'N','Y') as selected FROM mcu_image_grafik LEFT JOIN mgm_mcugrafik ON Mgm_McuGrafikMgm_McuID = Mcu_ImageGrafikMgm_McuID AND Mgm_McuGrafikMcu_ImageGrafikID = Mcu_ImageGrafikID AND Mgm_McuGrafikIsActive = 'Y' WHERE Mcu_ImageGrafikIsActive = 'Y' AND Mcu_ImageGrafikMgm_McuID = {$prm['patient']['Mgm_McuID']}"; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); foreach ($rows as $key => $value) { $rows[$key]['selected'] = $value['selected'] == 'N'?false:true; } $result = array( "total" => $tot_page, "records" => $rows, ); $this->sys_ok($result); exit; } function getPackets() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = $prm["searchPacket"]; $T_PriceHeaderID = $prm["T_PriceHeaderID"]; $number_limit = 10; $number_offset = ($prm['current_page'] - 1) * $number_limit; $sql = "SELECT count(*) as total FROM ( select T_PacketID as id, T_PacketID, T_PacketT_PriceHeaderID, T_PacketSasCode, T_PacketName, T_PriceHeaderStartDate, T_PriceHeaderEndDate, T_PacketSasCode as code, T_PacketName as name, 'N' as T_PacketIsActive from t_packet join t_priceheader ON T_PacketT_PriceHeaderID = T_PriceHeaderID AND T_PacketIsActive = 'Y' AND T_PriceHeaderIsActive = 'Y' AND ( T_PacketSasCode LIKE '%$search%' OR T_PacketName LIKE '%$search%' ) AND T_PacketT_PriceHeaderID = $T_PriceHeaderID ) x "; //echo $sql; $query = $this->db_onedev->query($sql); $tot_count = 0; $tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; $tot_page = ceil($tot_count / $number_limit); } else { $this->sys_error_db("m_doctor count", $this->db_onedev); exit; } $query = "SELECT T_PacketID as id, T_PacketID, T_PacketT_PriceHeaderID, T_PacketSasCode, T_PacketName, T_PriceHeaderStartDate, T_PriceHeaderEndDate, T_PacketSasCode as code, T_PacketName as name, 'N' as T_PacketIsActive from t_packet join t_priceheader ON T_PacketT_PriceHeaderID = T_PriceHeaderID AND T_PacketIsActive = 'Y' AND T_PriceHeaderIsActive = 'Y' AND ( T_PacketSasCode LIKE '%$search%' OR T_PacketName LIKE '%$search%' ) AND T_PacketT_PriceHeaderID = $T_PriceHeaderID ORDER BY T_PacketSasCode ASC limit $number_limit offset $number_offset "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); // if($rows){ // foreach($rows as $kp => $vp){ // $rows[$kp]['nat_test'] = json_decode($vp['nat_test']); // } // } $result = array( "total" => $tot_page, "records" => $rows, ); $this->sys_ok($result); exit; } function getusermcu() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; $Mgm_McuID = $prm["Mgm_McuID"]; $sql = "SELECT Mgm_McuUserID, Mgm_McuUserMgm_McuID, Mgm_McuUserEmail, Mgm_McuUserPassword, 'N' as chex FROM mgm_mcuuser WHERE Mgm_McuUserIsActive = 'Y' AND Mgm_McuUserMgm_McuID = ?"; $qry = $this->db_onedev->query($sql, array($Mgm_McuID)); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db('select mgm_mcuuser error', $this->db_onedev); exit; } if ($rows) { foreach ($rows as $k => $v) { $rows[$k]['chex'] = $v['chex'] == 'N' ? false : true; } } $result = array( "total" => count($rows), "records" => $rows, "xdate" => date("Y-m-d H:i:s") ); $this->sys_ok($result); } function savesetupv0() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; $priceheaderid = array(); // $Packetid = array(); if (count($prm['selected_packets']) > 0) { foreach ($prm['selected_packets'] as $kp => $vp) { array_push($priceheaderid, $vp['T_PacketT_PriceHeaderID']); // array_push($Packetid,$vp['T_PacketID']); } } // if(count($priceheaderid) > 0){ // $Mgm_McuT_PriceHeaderID = join(',',$priceheaderid); // } // if(count($Packetid) > 0){ // $Mgm_McuPacketT_PacketID = join(',',$Packetid); // } $Mgm_McuTemplateFisikTemplateMappingID = $prm['Mgm_McuTemplateFisikTemplateMappingID']['FisikTemplateMappingID']; $password = $prm['Mgm_McuPicPassword']; $Mgm_McuPicPassword = md5($this->one_salt . $password . $this->one_salt); $Mgm_McuFlagRelasiBayarSendiri = "N"; $Mgm_McuBisaTambahPemeriksaan = "N"; if ($prm['Mgm_McuBisaTambahPemeriksaan'] == true) { $Mgm_McuBisaTambahPemeriksaan = "Y"; } if ($prm['Mgm_McuFlagRelasiBayarSendiri'] == true) { $Mgm_McuFlagRelasiBayarSendiri = "Y"; } $Mgm_McuCorporateID = $prm['Mgm_McuCorporateID']['id']; $Mgm_McuNumber = ""; $Mgm_McuNumberNational = ""; $Mgm_McuNote = $prm['Mgm_McuNote']; $Mgm_McuLabel = strtoupper($prm['Mgm_McuLabel']); $Mgm_McuPicName = strtoupper($prm['Mgm_McuPicName']); $Mgm_McuStartDate = date('Y-m-d', strtotime($prm["Mgm_McuStartDate"])); $Mgm_McuEndDate = date('Y-m-d', strtotime($prm["Mgm_McuEndDate"])); $Mgm_McuPicEmail = $prm['Mgm_McuPicEmail']; // $Mgm_McuTotalParticipant = $prm['Mgm_McuTotalParticipant']; $Mgm_McuTotalParticipant = 0; $Mgm_McuT_PriceHeaderID = $prm['Mgm_McuT_PriceHeaderID']; $Mgm_McuM_BranchID = $prm['Mgm_McuM_BranchID']; $Mgm_McuReportHasil = $prm['Mgm_McuReportHasil']; $Mgm_McuGeneratePasswordBY = $prm['Mgm_McuGeneratePasswordBY']; if ($prm["act"] == 'new') { $sqlCheck = "SELECT * FROM mgm_mcu WHERE Mgm_McuIsActive = 'Y' AND Mgm_McuLabel = '$Mgm_McuLabel'"; $qryCheck = $this->db_onedev->query($sqlCheck); if (!$qryCheck) { $this->sys_error_db("t_packet check", $this->db_onedev); exit; } $rowCheck = $qryCheck->result_array(); if (count($rowCheck) > 0) { $this->sys_error("Data dengan setup mcu " . $Mgm_McuLabel . " Sudah Ada"); exit; } // get numbering $sql_get_numbering = "SELECT fn_numbering_cpone('SM') as numberx"; $qry_get_numbering = $this->db_onedev->query($sql_get_numbering); if (!$qry_get_numbering) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcu numbering cpone", $this->db_onedev); exit; } $data_numbering = $qry_get_numbering->result_array(); $Mgm_McuNumber = $data_numbering[0]['numberx']; // insert mgm_mcu $sql_mgmmcu = "INSERT INTO mgm_mcu ( Mgm_McuReportHasil, Mgm_McuT_PriceHeaderID, Mgm_McuLabel, Mgm_McuPicName, Mgm_McuFlagRelasiBayarSendiri, Mgm_McuBisaTambahPemeriksaan, Mgm_McuCorporateID, Mgm_McuNumber, Mgm_McuNumberNational, Mgm_McuNote, Mgm_McuStartDate, Mgm_McuEndDate, Mgm_McuPicEmail, Mgm_McuPicPassword, Mgm_McuGeneratePasswordBY, Mgm_McuIsActive, Mgm_McuCreated, Mgm_McuCreatedUserID, Mgm_McuTotalParticipant, Mgm_McuM_BranchID ) VALUES ( '{$Mgm_McuReportHasil}', '{$Mgm_McuT_PriceHeaderID}', '{$Mgm_McuLabel}', '{$Mgm_McuPicName}', '{$Mgm_McuFlagRelasiBayarSendiri}', '{$Mgm_McuBisaTambahPemeriksaan}', {$Mgm_McuCorporateID}, '{$Mgm_McuNumber}', '{$Mgm_McuNumberNational}', '{$Mgm_McuNote}', '{$Mgm_McuStartDate}', '{$Mgm_McuEndDate}', '{$Mgm_McuPicEmail}', '{$Mgm_McuPicPassword}', '{$Mgm_McuGeneratePasswordBY}', 'Y', NOW(), {$userid}, {$Mgm_McuTotalParticipant}, {$Mgm_McuM_BranchID} ) "; $qry = $this->db_onedev->query($sql_mgmmcu); if (!$qry) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcu insert", $this->db_onedev); exit; } $last_id = $this->db_onedev->insert_id(); // insert mgm_mcupacket if (count($prm['selected_packets']) > 0) { foreach ($prm['selected_packets'] as $kp => $vp) { $Mgm_McuPacketT_PacketID = $vp['T_PacketID']; $sql_mgm_mcupacket = "INSERT INTO mgm_mcupacket ( Mgm_McuPacketMgm_McuID, Mgm_McuPacketT_PacketID, Mgm_McuPacketIsActive, Mgm_McuPacketCreated, Mgm_McuPacketCreatedUserID ) VALUES ( $last_id, '{$Mgm_McuPacketT_PacketID}', 'Y', NOW(), $userid )"; $qry_mgm_mcupacket = $this->db_onedev->query($sql_mgm_mcupacket); if (!$qry_mgm_mcupacket) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcupacket insert", $this->db_onedev); exit; } } } // insert mgm_mcutemplate $mgm_mcutemplate = "INSERT INTO mgm_mcutemplate ( Mgm_McuTemplateMgm_McuID, Mgm_McuTemplateFisikTemplateMappingID, Mgm_McuTemplateIsActive, Mgm_McuTemplateCreated, Mgm_McuTemplateCreatedUserID ) VALUES ( $last_id, $Mgm_McuTemplateFisikTemplateMappingID, 'Y', NOW(), $userid )"; $qry_mgm_mcutemplate = $this->db_onedev->query($mgm_mcutemplate); if (!$qry_mgm_mcutemplate) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcutemplate insert", $this->db_onedev); exit; } // insert mgm_mcuuser if (count($prm["arrUserMcu"]) > 0) { foreach ($prm["arrUserMcu"] as $key => $val) { $passwordUserMcu = $val['Mgm_McuUserPassword']; $Mgm_McuUserPassword = md5($this->one_salt . $passwordUserMcu . $this->one_salt); $Mgm_McuUserEmail = $val["Mgm_McuUserEmail"]; $sql_mgm_mcuuser = "INSERT INTO mgm_mcuuser( Mgm_McuUserMgm_McuID, Mgm_McuUserEmail, Mgm_McuUserPassword, Mgm_McuUserIsActive, Mgm_McuUserCreated, Mgm_McuUserCreatedUserID ) VALUES( $last_id, '{$Mgm_McuUserEmail}', '{$Mgm_McuUserPassword}', 'Y', NOW(), $userid )"; $qry_mgm_mcuuser = $this->db_onedev->query($sql_mgm_mcuuser); if (!$qry_mgm_mcuuser) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcuuser insert", $this->db_onedev); exit; } } } } // kalau edit yg mgm_mcupacket di N kan sesuai // Mgm_McuPacketMgm_McuID // baru di insert yg baru else { // var_dump($prm); // check data password for update // check paket exists or not $sqlCheck = "SELECT * FROM mgm_mcu WHERE Mgm_McuIsActive = 'Y' AND Mgm_McuLabel = '$Mgm_McuLabel' AND Mgm_McuID <> {$prm["xid"]}"; $qryCheck = $this->db_onedev->query($sqlCheck); if (!$qryCheck) { $this->sys_error_db("mgm_mcu check", $this->db_onedev); exit; } $rowCheck = $qryCheck->result_array(); if (count($rowCheck) > 0) { // echo $sqlCheck; // exit; $this->sys_error("Data dengan setup mcu " . $Mgm_McuLabel . " Sudah Ada"); exit; } $sql_check = "SELECT * FROM mgm_mcu WHERE Mgm_McuID = {$prm["xid"]}"; $qry_check = $this->db_onedev->query($sql_check); if (!$qry_check) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcu select check", $this->db_onedev); exit; } $rowx = $qry_check->row_array(); $passwordOld = $rowx['Mgm_McuPicPassword']; if ($passwordOld == $password) { $Mgm_McuPicPassword = $passwordOld; } // echo $passwordOld; // echo "\n".$password; // echo "\n".$Mgm_McuPicPassword; // exit; // update mgmmcu $sql_mgmmcu = "UPDATE mgm_mcu SET Mgm_McuReportHasil = '{$Mgm_McuReportHasil}', Mgm_McuT_PriceHeaderID = '{$Mgm_McuT_PriceHeaderID}', Mgm_McuLabel = '{$Mgm_McuLabel}', Mgm_McuPicName = '{$Mgm_McuPicName}', Mgm_McuFlagRelasiBayarSendiri = '{$Mgm_McuFlagRelasiBayarSendiri}', Mgm_McuBisaTambahPemeriksaan = '{$Mgm_McuBisaTambahPemeriksaan}', Mgm_McuCorporateID = {$Mgm_McuCorporateID}, -- Mgm_McuNumber = '{$Mgm_McuNumber}', -- Mgm_McuNumberNational = '{$Mgm_McuNumberNational}', Mgm_McuNote = '{$Mgm_McuNote}', Mgm_McuStartDate = '{$Mgm_McuStartDate}', Mgm_McuEndDate = '{$Mgm_McuEndDate}', Mgm_McuPicEmail = '{$Mgm_McuPicEmail}', Mgm_McuPicPassword = '{$Mgm_McuPicPassword}', Mgm_McuGeneratePasswordBY = '{$Mgm_McuGeneratePasswordBY}', Mgm_McuIsActive = 'Y', Mgm_McuLastUpdated = NOW(), Mgm_McuLastUpdatedUserID = {$userid}, Mgm_McuTotalParticipant = {$Mgm_McuTotalParticipant}, Mgm_McuM_BranchID = {$Mgm_McuM_BranchID} WHERE Mgm_McuID = {$prm["xid"]} "; $qry = $this->db_onedev->query($sql_mgmmcu); if (!$qry) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcu update", $this->db_onedev); exit; } $last_id = $prm["xid"]; // // update packets // // update isActive N kan semua $sqlUpdatePacket = "UPDATE mgm_mcupacket SET Mgm_McuPacketIsActive = 'N', Mgm_McuPacketLastUpdated = NOW(), Mgm_McuPacketLastUpdatedUserID = $userid WHERE Mgm_McuPacketMgm_McuID = $last_id"; // echo $sqlUpdatePacket; $qry_mgm_update_mcupacket = $this->db_onedev->query($sqlUpdatePacket); if (!$qry_mgm_update_mcupacket) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcupacket update", $this->db_onedev); exit; } if (count($prm['selected_packets']) > 0) { foreach ($prm['selected_packets'] as $kp => $vp) { $Mgm_McuPacketT_PacketID = $vp['T_PacketID']; $sql_mgm_mcupacket = "INSERT INTO mgm_mcupacket ( Mgm_McuPacketMgm_McuID, Mgm_McuPacketT_PacketID, Mgm_McuPacketIsActive, Mgm_McuPacketCreated, Mgm_McuPacketCreatedUserID ) VALUES ( $last_id, '{$Mgm_McuPacketT_PacketID}', 'Y', NOW(), $userid )"; $qry_mgm_mcupacket = $this->db_onedev->query($sql_mgm_mcupacket); if (!$qry_mgm_mcupacket) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcupacket insert", $this->db_onedev); exit; } } } // update mgm_mcutemplate $mgm_mcutemplate = "UPDATE mgm_mcutemplate SET Mgm_McuTemplateFisikTemplateMappingID = $Mgm_McuTemplateFisikTemplateMappingID, Mgm_McuTemplateLastUpdated = NOW(), Mgm_McuTemplateLastUpdatedUserID = $userid WHERE Mgm_McuTemplateMgm_McuID = $last_id AND Mgm_McuTemplateIsActive = 'Y' "; $qry_mgm_mcutemplate = $this->db_onedev->query($mgm_mcutemplate); if (!$qry_mgm_mcutemplate) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcutemplate update", $this->db_onedev); exit; } // insert mgm_mcuuser if (count($prm["arrUserMcu"]) > 0) { foreach ($prm["arrUserMcu"] as $key => $val) { $passwordUserMcu = $val['Mgm_McuUserPassword']; $Mgm_McuUserPassword = md5($this->one_salt . $passwordUserMcu . $this->one_salt); $Mgm_McuUserEmail = $val["Mgm_McuUserEmail"]; if ($val["Mgm_McuUserID"] == '0' || $val["Mgm_McuUserID"] == 0) { $sql_mgm_mcuuser = "INSERT INTO mgm_mcuuser( Mgm_McuUserMgm_McuID, Mgm_McuUserEmail, Mgm_McuUserPassword, Mgm_McuUserIsActive, Mgm_McuUserCreated, Mgm_McuUserCreatedUserID ) VALUES( $last_id, '{$Mgm_McuUserEmail}', '{$Mgm_McuUserPassword}', 'Y', NOW(), $userid )"; $qry_mgm_mcuuser = $this->db_onedev->query($sql_mgm_mcuuser); if (!$qry_mgm_mcuuser) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcuuser insert", $this->db_onedev); exit; } } } } // update mgm_mcuuser if ($prm["deleted_usermcus"]) { foreach ($prm["deleted_usermcus"] as $k => $v) { $sql = "UPDATE mgm_mcuuser SET Mgm_McuUserIsActive = 'N', Mgm_McuUserLastUpdated = NOW(), Mgm_McuUserLastUpdatedUserID = $userid WHERE Mgm_McuUserID = {$v['Mgm_McuUserID']}"; $qry = $this->db_onedev->query($sql); if (!$qry) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcuuser update", $this->db_onedev); exit; } } } } $sql = "SELECT Mgm_McuNumber as xnumber FROM mgm_mcu WHERE Mgm_McuID = {$last_id}"; //echo $sql; $row = $this->db_onedev->query($sql)->row_array(); $result = array( "total" => 1, "records" => $row, ); $this->sys_ok($result); exit; } function deletemcuv0() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; // mcu $query_mgmmcu = $this->db_onedev->query("UPDATE mgm_mcu SET Mgm_McuIsActive = 'N', Mgm_McuLastDeletedUserID = {$userid}, Mgm_McuLastDeleted = NOW() WHERE Mgm_McuID = '{$prm['id']}' "); if (!$query_mgmmcu) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcu delete cpone eror", $this->db_onedev); exit; } // packet $query_mgmmcu_packet = $this->db_onedev->query("UPDATE mgm_mcupacket SET Mgm_McuPacketIsActive = 'N', Mgm_McuPacketDeleted = NOW(), Mgm_McuPacketDeletedUserID = {$userid} WHERE Mgm_McuPacketMgm_McuID = '{$prm['id']}' "); if (!$query_mgmmcu_packet) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcu paket delete cpone eror", $this->db_onedev); exit; } // template $query_mgm_mcutemplate = $this->db_onedev->query("UPDATE mgm_mcutemplate SET Mgm_McuTemplateIsActive = 'N', Mgm_McuTemplateDelete = NOW(), Mgm_McuTemplateDeletedUserID = {$userid} WHERE Mgm_McuTemplateMgm_McuID = '{$prm['id']}' "); if (!$query_mgm_mcutemplate) { $this->db_onedev->trans_rollback(); $this->sys_error_db("mgm_mcu templete delete cpone eror", $this->db_onedev); exit; } // $rows = $this->db_onedev->query($query_mgmmcu); $result = array( "total" => 1, "records" => array('status' => 'OK') ); $this->sys_ok($result); exit; } function getDetailPacketByID() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; $T_PacketID = $prm['T_PacketID']; $sql = "SELECT pd.T_PacketDetailID, pd.T_PacketDetailT_PacketID, pd.T_PacketDetailT_TestID, pd.T_PacketDetailOriginalPrice, pd.T_PacketDetailPrice, pd.T_PacketDetailIsActive, pd.T_PacketDetailCreated, pd.T_PacketDetailLastUpdated, pd.T_PacketDetailPriceAmount, pd.T_PacketDetailPriceDisc, pd.T_PacketDetailPriceDiscRp, pd.T_PacketDetailPriceSubTotal, t.T_TestID, t.T_TestNat_GroupID, t.T_TestNat_SubgroupID, t.T_TestParentT_TestID, t.T_TestCode, t.T_TestSasCode, t.T_TestName, t.T_TestShortName, t.T_TestShortNameBarcode, t.T_TestWorklistName, t.T_TestNat_TestID, t.T_TestRequirement, t.T_TestIsParent, t.T_TestFontSize, t.T_TestFontColor, t.T_TestIsBold, t.T_TestIsItalic, t.T_TestT_SampleTypeID, t.T_TestResultPosition, t.T_TestNormalValue, t.T_TestFlagGluc, t.T_TestIsQuantitative, t.T_TestIsPrintNota, t.T_TestIsResult, t.T_TestIsPrintResult, t.T_TestIsPrice, t.T_TestForceSell, t.T_TestIsWorklist, t.T_TestIsNonLab, t.T_TestIsDeltaCheck, t.T_TestIsTrendAnalysis, t.T_TestLeftMargin, t.T_TestCreated, t.T_TestLastUpdated, t.T_TestIsActive, t.T_TestMaxDiscount, t.T_TestFlagLow, t.T_TestFlagHigh, t.T_TestUserID, t.T_TestFlagMCU, t.T_TestNat_SubSubGroupID, t.T_TestCreatedUserID, t.T_TestLastUpdatedUserID, t.T_TestDeleted, t.T_TestDeletedUserID FROM t_packetdetail as pd JOIN t_test as t ON pd.T_PacketDetailT_TestID = t.T_TestID AND t.T_TestIsActive = 'Y' AND pd.T_PacketDetailIsActive = 'Y' AND pd.T_PacketDetailT_PacketID = $T_PacketID"; $qry = $this->db_onedev->query($sql); if (!$qry) { $this->sys_error_db("list packet", $this->db_onedev); exit; } $rows = $qry->result_array(); $result = array( // "total" => $tot_page, "records" => $rows, ); $this->sys_ok($result); exit; } function getTPriceHeaderCurrent() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $sql = "SELECT IFNULL(T_PriceHeaderID, 0) AS T_PriceHeaderID, IFNULL(T_PriceHeaderName, '') AS T_PriceHeaderName, IFNULL(T_PriceHeaderStartDate, '0000-00-00') AS T_PriceHeaderStartDate, IFNULL(T_PriceHeaderEndDate, '0000-00-00') AS T_PriceHeaderEndDate, IFNULL(T_PriceHeaderIsActive, 'Y') AS T_PriceHeaderIsActive, IFNULL(T_PriceHeaderUserID, 0) AS T_PriceHeaderUserID, IFNULL(T_PriceHeaderCreated, '0000-00-00 00:00:00') AS T_PriceHeaderCreated, IFNULL(T_PriceHeaderCraetdUserID, 0) AS T_PriceHeaderCraetdUserID, IFNULL(T_PriceHeaderLastUpdated, '0000-00-00 00:00:00') AS T_PriceHeaderLastUpdated, IFNULL(T_PriceHeaderLastUpdatedUserID, 0) AS T_PriceHeaderLastUpdatedUserID, IFNULL(T_PriceHeaderDeleted, '0000-00-00 00:00:00') AS T_PriceHeaderDeleted, IFNULL(T_PriceHeaderDeletedUserID, 0) AS T_PriceHeaderDeletedUserID FROM t_priceheader WHERE T_PriceHeaderIsActive = 'Y' -- AND CURDATE() BETWEEN T_PriceHeaderStartDate AND T_PriceHeaderEndDate "; $qry = $this->db_onedev->query($sql); if (!$qry) { $this->sys_error_db("t_priceheader select error", $this->db_onedev); exit; } $rows = $qry->result_array(); $result = array( "records" => $rows, "sql" => $this->db_onedev->last_query() ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } function getBranch() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $sql = "SELECT M_BranchID, IFNULL(M_BranchCode, '') AS M_BranchCode, -- IFNULL(M_BranchName, '') AS M_BranchName, CONCAT(IFNULL(M_BranchCode, ''), ' - ', IFNULL(M_BranchName, '')) AS M_BranchName, IFNULL(M_BranchAddress, '') AS M_BranchAddress, IFNULL(M_BranchIsActive, 'Y') AS M_BranchIsActive, IFNULL(M_BranchCreated, '0000-00-00 00:00:00') AS M_BranchCreated, IFNULL(M_BranchCreatedUserID, 0) AS M_BranchCreatedUserID, IFNULL(M_BranchLastUpdated, '0000-00-00 00:00:00') AS M_BranchLastUpdated, IFNULL(M_BranchLastUpdatedUserID, 0) AS M_BranchLastUpdatedUserID, IFNULL(M_BranchDeleted, '0000-00-00 00:00:00') AS M_BranchDeleted, IFNULL(M_BranchDeletedUserID, 0) AS M_BranchDeletedUserID FROM m_branch WHERE M_BranchIsActive = 'Y'"; $qry = $this->db_onedev->query($sql); if (!$qry) { $this->sys_error_db("m_branch select error", $this->db_onedev); exit; } $rows = $qry->result_array(); $result = array( "records" => $rows, "sql" => $this->db_onedev->last_query() ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } // function createSSMou() // { // if (! $this->isLogin) { // $this->sys_error("Invalid Token"); // exit; // } // $userid = $this->sys_user["M_UserID"]; // $prm = $this->sys_input; // $id = $prm['T_PriceHeaderID']; // if(empty($id) || !isset($prm['T_PriceHeaderID'])){ // $this->sys_error("Belum ada price header id"); // exit; // } else{ // $x = $this->sspricemou->create($id); // if($x){ // $result = array( // "records" => $id, // "sql" => $this->db_onedev->last_query() // ); // $this->sys_ok($result); // exit; // } // } // } // cpone public function search() { $prm = $this->sys_input; if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $status = isset($prm["status"]["id"]) ? $prm["status"]["id"] : 'N'; $company = isset($prm["company"]) ? intval($prm["company"]) : 0; // echo $norm; $filter_company = ''; if ($company > 0) { $filter_company = " AND McuOfflinePrepareM_CompanyID = {$company}"; } $sql_where = "WHERE McuOfflinePrepareIsActive = 'Y' AND McuOfflinePrepareIsDownloaded = '{$status}' $filter_company"; $sql_param = array(); $limit = ''; if ($all == 'N') { $limit = ' LIMIT 10'; } $number_limit = 10; $number_offset = ($prm['current_page'] - 1) * $number_limit; $sql = " SELECT count(*) as total FROM mcu_offline_prepare JOIN m_company ON McuOfflinePrepareM_CompanyID = M_CompanyID $sql_where "; //echo $sql; $query = $this->db_onedev->query($sql, $sql_param); //echo $this->db_onedev->last_query(); $tot_count = 0; $tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; $tot_page = ceil($tot_count / $number_limit); } else { $this->sys_error_db("m_patient count", $this->db_onedev); exit; } $sql = " SELECT mcu_offline_prepare.*, M_CompanyName, DATE_FORMAT(McuOfflinePrepareStartDate, '%d.%m.%Y') as start_date, DATE_FORMAT(McuOfflinePrepareEndDate, '%d.%m.%Y') as end_date, McuOfflinePreparePromiseDate as promise_date, McuOfflinePreparePromiseTime as promise_time, McuOfflinePrepareDoctors as doctors, McuOfflinePrepareMous as mous, McuOfflinePrepareDeliveries as deliveries, '' as allmous, McuOfflinePrepareM_MouDefaultID as mou_default_id, M_MouName as mou_default_name, CONCAT('[ ',M_DoctorCode,' ] ',IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as doctor_default_name, McuOfflinePrepareM_DoctorDefaultID as doctor_default_id, '' as default_mou, '' as default_doctor, '' as default_doctor_address, M_DoctorAddressID as doctor_address_id, M_DoctorAddressNote as doctor_address_label, M_DoctorAddressDescription as doctor_address_description, '' as doctor_address, '' as packets, '' as tests FROM mcu_offline_prepare JOIN m_company ON McuOfflinePrepareM_CompanyID = M_CompanyID JOIN m_mou ON McuOfflinePrepareM_MouDefaultID = M_MouID JOIN m_doctor ON McuOfflinePrepareM_DoctorDefaultID = M_DoctorID JOIN m_doctoraddress ON McuOfflinePrepareM_DoctorAddressDefaultID = M_DoctorAddressID $sql_where ORDER BY McuOfflinePrepareCode ASC limit $number_limit offset $number_offset "; //echo $sql; $query = $this->db_onedev->query($sql, $sql_param); $rows = $query->result_array(); if ($rows) { foreach ($rows as $k => $v) { $v['doctors'] = preg_replace("/\\n/", "___n___", $v['doctors']); $rows[$k]['doctors'] = json_decode($v['doctors']); //print_r($v['doctors']); $v['mous'] = preg_replace("/\\n/", "___n___", $v['mous']); $rows[$k]['mous'] = json_decode($v['mous']); $v['deliveries'] = preg_replace("/\\n/", "___n___", $v['deliveries']); $rows[$k]['deliveries'] = json_decode($v['deliveries']); $rows[$k]['default_mou'] = array('id' => $v['mou_default_id'], 'name' => $v['mou_default_name']); $rows[$k]['packets'] = array(); $rows[$k]['tests'] = array(); $join_test = ''; $filter_paket = "AND T_PacketSasCode IN ('')"; $filter_test = "AND T_TestSasCode IN ('')"; if ($v['McuOfflinePrepareTests'] != '') { $xjoin_tests = explode(',', $v['McuOfflinePrepareTests']); //print_r($xjoin_tests); if ($xjoin_tests) { foreach ($xjoin_tests as $kjt => $vjt) { if ($join_test != '') $join_test .= ","; $join_test .= "'{$vjt}'"; } } //echo $join_test; $filter_paket = "AND T_PacketSasCode IN ({$join_test})"; $filter_test = "AND T_TestSasCode IN ({$join_test}) "; } $sql = "SELECT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test FROM ss_price_mou JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' WHERE Ss_PriceMouM_MouID = {$v['mou_default_id']} AND is_packet = 'Y' $filter_paket"; //echo $sql; $rows[$k]['packets'] = $this->db_onedev->query($sql)->result_array(); if ($rows[$k]['packets']) { foreach ($rows[$k]['packets'] as $kp => $vp) { $rows[$k]['packets'][$kp]['nat_test'] = json_decode($vp['nat_test']); } } $sql = "SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test FROM ss_price_mou JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND T_TestIsActive = 'Y' WHERE Ss_PriceMouM_MouID = {$v['mou_default_id']} AND is_packet = 'N' AND T_PriceIsCito = 'N' $filter_test"; //echo $sql; $rows[$k]['tests'] = $this->db_onedev->query($sql)->result_array(); if ($rows[$k]['tests']) { foreach ($rows[$k]['tests'] as $kp => $vp) { $rows[$k]['tests'][$kp]['nat_test'] = json_decode($vp['nat_test']); } } $sql = "SELECT M_MouID as id, M_MouName as name FROM m_mou WHERE M_MouM_CompanyID = {$v['McuOfflinePrepareM_CompanyID']} AND ( '{$v['McuOfflinePrepareStartDate']}' >= M_MouStartDate) AND ( '{$v['McuOfflinePrepareEndDate']}' <= M_MouEndDate ) AND M_MouIsActive = 'Y' AND M_MouIsReleased = 'Y'"; //echo $sql; $rows[$k]['allmous'] = $this->db_onedev->query($sql)->result_array(); $rows[$k]['default_doctor_address'] = array('id' => $v['doctor_address_id'], 'label' => $v['doctor_address_label'], 'description' => $v['doctor_address_description']); $sql = "SELECT M_DoctorAddressID as id, M_DoctorAddressNote as label, M_DoctorAddressDescription as description FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorID = {$v['doctor_default_id']} AND M_DoctorAddressIsActive = 'Y'"; //echo $sql; $rows[$k]['doctor_address'] = $this->db_onedev->query($sql)->result_array(); $rows[$k]['default_doctor'] = array('id' => $v['doctor_default_id'], 'name' => $v['doctor_default_name'], 'xaddress' => $rows[$k]['doctor_address']); } } //$this->_add_address($rows); $result = array("total" => $tot_page, "records" => $rows, "sql" => $this->db_onedev->last_query()); $this->sys_ok($result); exit; } function getdatapackets() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = $prm["search"]; $number_limit = 10; $number_offset = ($prm['current_page'] - 1) * $number_limit; $sql = "SELECT count(*) as total FROM ( SELECT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code FROM ss_price_mou JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' WHERE Ss_PriceMouM_MouID = {$prm['id']} AND is_packet = 'Y' AND ( T_TestName LIKE CONCAT('%','{$search}','%') ) ) x "; //echo $sql; $query = $this->db_onedev->query($sql, $sql_param); $tot_count = 0; $tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; $tot_page = ceil($tot_count / $number_limit); } else { $this->sys_error_db("m_doctor count", $this->db_onedev); exit; } $query = " SELECT T_PacketID as id, T_PacketName as name, T_PacketSasCode as code, nat_test FROM ss_price_mou JOIN t_packet ON T_TestID = T_PacketID AND T_PacketIsActive = 'Y' WHERE Ss_PriceMouM_MouID = {$prm['id']} AND is_packet = 'Y' AND ( T_TestName LIKE CONCAT('%','{$search}','%') ) ORDER BY T_PacketSasCode ASC limit $number_limit offset $number_offset "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if ($rows) { foreach ($rows as $kp => $vp) { $rows[$kp]['nat_test'] = json_decode($vp['nat_test']); } } $result = array( "total" => $tot_page, "records" => $rows, ); $this->sys_ok($result); exit; } function getdatatests() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = $prm["search"]; $number_limit = 10; $number_offset = ($prm['current_page'] - 1) * $number_limit; $sql = "SELECT count(*) as total FROM ( SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test FROM ss_price_mou JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID WHERE Ss_PriceMouM_MouID = {$prm['id']} AND ( ss_price_mou.T_TestName LIKE CONCAT('%','{$search}','%') ) AND T_PriceIsCito = 'N' GROUP BY Ss_PriceMouID ) x "; //echo $sql; $query = $this->db_onedev->query($sql, $sql_param); $tot_count = 0; $tot_page = 0; if ($query) { $tot_count = $query->result_array()[0]["total"]; $tot_page = ceil($tot_count / $number_limit); } else { $this->sys_error_db("m_doctor count", $this->db_onedev); exit; } $query = " SELECT test.T_TestID as id, test.T_TestName as name, test.T_TestSasCode as code, nat_test FROM ss_price_mou JOIN t_test test ON test.T_TestID = ss_price_mou.T_TestID AND is_packet = 'N' WHERE Ss_PriceMouM_MouID = {$prm['id']} AND ( ss_price_mou.T_TestName LIKE CONCAT('%','{$search}','%') ) AND T_PriceIsCito = 'N' GROUP BY Ss_PriceMouID ORDER BY T_TestSasCode ASC limit $number_limit offset $number_offset "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); if ($rows) { foreach ($rows as $kp => $vp) { $rows[$kp]['nat_test'] = json_decode($vp['nat_test']); } } $result = array( "total" => $tot_page, "records" => $rows, ); $this->sys_ok($result); exit; } function getmou() { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; //$prm['start_date'] = strtotime($prm['start_date']); //$prm['end_date'] = strtotime($prm['end_date']); $query = " SELECT M_MouID as id, M_MouName as name, M_MouNumber as code FROM m_mou WHERE M_MouM_CompanyID = {$prm['id']} AND M_MouIsActive = 'Y' AND ( ( '{$prm['start_date']}' BETWEEN M_MouStartDate AND M_MouEndDate ) AND ( '{$prm['end_date']}' BETWEEN M_MouStartDate AND M_MouEndDate ) ) AND M_MouIsReleased = 'Y' "; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows), "records" => $rows, ); $this->sys_ok($result); exit; } function getdeliveries() { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $id = $prm['id']; //$prm['start_date'] = strtotime($prm['start_date']); //$prm['end_date'] = strtotime($prm['end_date']); $type = 'mou'; $sql = "SELECT * FROM m_mou WHERE M_MouID = {$id}"; $data_mou = $this->db_onedev->query($sql)->row_array(); $sql = " SELECT 0 as kelurahan, 0 as address_id, M_DeliveryM_DeliveryTypeID as delivery_type, M_DeliveryID as delivery_id, M_DeliveryName as delivery_name, '' as description, 'N' as chex, '' as note, 'origin' as typeform, 'patient' as type, M_DeliveryTypeCode as delivery_code FROM m_delivery JOIN m_deliverytype ON M_DeliveryTypeCode = 'PICKUP' AND M_DeliveryM_DeliveryTypeID = M_DeliveryTypeID WHERE M_DeliverySource = 'patient' AND M_DeliveryIsActive = 'Y' UNION SELECT M_CompanyM_KelurahanID as kelurahan, M_CompanyID as address_id, M_DeliveryM_DeliveryTypeID as delivery_type, M_DeliveryID as delivery_id, M_DeliveryName as delivery_name, CONCAT(M_CompanyAddress,' ',M_KelurahanName,', ',M_DistrictName,', ',M_CityName) as description, 'N' as chex, '' as note, 'origin' as typeform, '{$type}' as type, M_DeliveryTypeCode as delivery_code FROM m_company JOIN m_delivery ON M_DeliverySource = 'COMPANY' AND M_DeliveryIsActive = 'Y' JOIN m_deliverytype ON M_DeliveryTypeCode = 'ADDRESS' AND M_DeliveryM_DeliveryTypeID = M_DeliveryTypeID JOIN m_kelurahan ON M_CompanyM_KelurahanID = M_KelurahanID JOIN m_district ON M_KelurahanM_DistrictID = M_DistrictID JOIN m_city ON M_DistrictM_CityID = M_CityID WHERE M_CompanyID = {$data_mou['M_MouM_CompanyID']} UNION SELECT 0 as kelurahan, 0 as address_id, M_DeliveryM_DeliveryTypeID as delivery_type, M_DeliveryID as delivery_id, M_DeliveryName as delivery_name, IFNULL(M_MouEmail,'Belum ada email agreement') as description, IFNULL(M_MouEmailIsDefault,'N') as chex, '' as note, 'origin' as typeform, '{$type}' as type, M_DeliveryTypeCode as delivery_code FROM m_mou JOIN m_delivery ON M_DeliverySource = 'mou' AND M_DeliveryIsActive = 'Y' JOIN m_deliverytype ON M_DeliveryTypeCode = 'EMAIL' AND M_DeliveryM_DeliveryTypeID = M_DeliveryTypeID WHERE M_MouID = {$id}"; //echo $sql; $rows = $this->db_onedev->query($sql)->result_array(); $result = array( "total" => count($rows), "records" => $rows, ); $this->sys_ok($result); exit; } function getsexreg() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $rows = []; $query = " SELECT * FROM m_title WHERE M_TitleIsActive = 'Y' "; //echo $query; $rows['titles'] = $this->db_onedev->query($query)->result_array(); $query = " SELECT * FROM m_sex WHERE M_SexIsActive = 'Y' "; //echo $query; $rows['sexes'] = $this->db_onedev->query($query)->result_array(); $query = " SELECT * FROM m_religion WHERE M_ReligionIsActive = 'Y' "; //echo $query; $rows['religions'] = $this->db_onedev->query($query)->result_array(); $query = " SELECT * FROM m_idtype WHERE M_IdTypeIsActive = 'Y' "; //echo $query; $rows['kartuidentitass'] = $this->db_onedev->query($query)->result_array(); $result = array( "total" => count($rows), "records" => $rows, ); $this->sys_ok($result); exit; } function searchcity() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count = 0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_city WHERE M_CityName like ? AND M_CityIsActive = 'Y'"; $query = $this->db_onedev->query($sql, $q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_city count", $this->db_onedev); exit; } $sql = " SELECT * FROM m_city WHERE M_CityName like ? AND M_CityIsActive = 'Y' ORDER BY M_CityName DESC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_city rows", $this->db_onedev); exit; } } function searchcompany() { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count = 0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_company WHERE M_CompanyName like ? AND M_CompanyIsActive = 'Y'"; $query = $this->db_onedev->query($sql, $q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_company count", $this->db_onedev); exit; } $sql = " SELECT M_CompanyID as id, M_CompanyName as name FROM m_company WHERE M_CompanyName like ? AND M_CompanyIsActive = 'Y' ORDER BY M_CompanyName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_company rows", $this->db_onedev); exit; } } function filtersearchcompany() { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count = 0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_company WHERE M_CompanyName like ? AND M_CompanyIsActive = 'Y'"; $query = $this->db_onedev->query($sql, $q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_company count", $this->db_onedev); exit; } $sql = " SELECT M_CompanyID as id, M_CompanyName as name FROM m_company WHERE M_CompanyName like ? AND M_CompanyIsActive = 'Y' ORDER BY M_CompanyName ASC "; $query = $this->db_onedev->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); array_push($rows, array('id' => 0, 'name' => 'Semua')); //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_company rows", $this->db_onedev); exit; } } function searchdoctor() { //# cek token valid if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $max_rst = 12; $tot_count = 0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "SELECT count(*) as total FROM m_doctor WHERE M_DoctorName like ? AND M_DoctorIsActive = 'Y'"; $query = $this->db_onedev->query($sql, $q['search']); //echo $query; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_doctor count", $this->db_onedev); exit; } $sql = " SELECT M_DoctorID as id, CONCAT('[ ',M_DoctorCode,' ] ',IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) as name, '' as xaddress FROM m_doctor WHERE CONCAT('[ ',M_DoctorCode,' ] ',IFNULL(M_DoctorPrefix,''),'',IFNULL(M_DoctorPrefix2,''),' ',M_DoctorName,' ',IFNULL(M_DoctorSufix,''),IFNULL(M_DoctorSufix2,''),IFNULL(M_DoctorSufix3,'')) like '{$q['search']}' AND M_DoctorIsActive = 'Y' group by M_DoctorID ORDER BY M_DoctorName ASC LIMIT 20 "; // echo $sql; $query = $this->db_onedev->query($sql); if ($query) { $rows = $query->result_array(); foreach ($rows as $k => $v) { $sql = "SELECT M_DoctorAddressID as id, M_DoctorAddressNote as label, M_DoctorAddressDescription as description FROM m_doctoraddress WHERE M_DoctorAddressM_DoctorID = {$v['id']} AND M_DoctorAddressIsActive = 'Y'"; $rows[$k]['xaddress'] = $this->db_onedev->query($sql)->result(); } //echo $this->db_onedev->last_query(); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_doctor rows", $this->db_onedev); exit; } } function savesetup() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; $sdate = date('Y-m-d', strtotime($prm["startdate"])); $edate = date('Y-m-d', strtotime($prm["enddate"])); $promise_date = date('Y-m-d', strtotime($prm["promise_date"])); $promise_time = date('H:i:s', strtotime($prm["promise_time"])); $mous = json_encode($prm["mous"]); $deliveries = json_encode($prm["deliveries"]); $doctors = addslashes(str_replace('\n', '\\\n', json_encode($prm["doctors"]))); $packettests = array(); if (count($prm['selected_packets']) > 0) { foreach ($prm['selected_packets'] as $kp => $vp) { array_push($packettests, $vp['code']); } } if (count($prm['selected_tests']) > 0) { foreach ($prm['selected_tests'] as $kt => $vt) { array_push($packettests, $vt['code']); } } if (count($packettests) > 0) { $McuOfflinePrepareTests = join(',', $packettests); } if ($prm["act"] == 'new') { $query = " INSERT INTO mcu_offline_prepare( McuOfflinePrepareStartDate, McuOfflinePrepareEndDate, McuOfflinePrepareM_CompanyID, McuOfflinePrepareMous, McuOfflinePrepareDoctors, McuOfflinePrepareM_MouDefaultID, McuOfflinePrepareM_DoctorDefaultID, McuOfflinePrepareM_DoctorAddressDefaultID, McuOfflinePreparePromiseDate, McuOfflinePreparePromiseTime, McuOfflinePrepareDeliveries, McuOfflinePrepareTests, McuOfflinePrepareUserID, McuOfflinePrepareCreated ) VALUES( '{$sdate}', '{$edate}', {$prm["company"]["id"]}, '{$mous}', '{$doctors}', {$prm["default_mou"]["id"]}, {$prm["default_doctor"]["id"]}, {$prm["default_doctor_address"]["id"]}, '{$promise_date}', '{$promise_time}', '{$deliveries}', '{$McuOfflinePrepareTests}', {$userid}, NOW() ) "; //echo $query; $this->db_onedev->query($query); $last_id = $this->db_onedev->insert_id(); } else { $query = " UPDATE mcu_offline_prepare SET McuOfflinePrepareStartDate = '{$sdate}', McuOfflinePrepareEndDate = '{$edate}', McuOfflinePrepareM_CompanyID = {$prm["company"]["id"]}, McuOfflinePrepareMous = '{$mous}', McuOfflinePrepareDeliveries = '{$deliveries}', McuOfflinePrepareDoctors = '{$doctors}', McuOfflinePreparePromiseDate = '{$promise_date}', McuOfflinePreparePromiseTime = '{$promise_time}', McuOfflinePrepareM_MouDefaultID = {$prm["default_mou"]["id"]}, McuOfflinePrepareM_DoctorDefaultID = {$prm["default_doctor"]["id"]}, McuOfflinePrepareM_DoctorAddressDefaultID = {$prm["default_doctor_address"]["id"]}, McuOfflinePrepareUserID = {$userid} WHERE McuOfflinePrepareID = {$prm["xid"]} "; $this->db_onedev->query($query); $last_id = $prm["xid"]; } //echo $query; $sql = "SELECT McuOfflinePrepareCode as xnumber FROM mcu_offline_prepare WHERE McuOfflinePrepareID = {$last_id}"; //echo $sql; $row = $this->db_onedev->query($sql)->row_array(); $result = array( "total" => 1, "records" => $row, ); $this->sys_ok($result); exit; } function getdistrict() { $prm = $this->sys_input; $query = " SELECT * FROM m_district WHERE M_DistrictIsActive = 'Y' AND M_DistrictM_CityID = ? "; //echo $query; $rows = $this->db_onedev->query($query, array($prm['id']))->result_array(); $result = array( "total" => count($rows), "records" => $rows, ); $this->sys_ok($result); exit; } function getkelurahan() { $prm = $this->sys_input; $query = " SELECT * FROM m_kelurahan WHERE M_KelurahanIsActive = 'Y' AND M_KelurahanM_DistrictID = ? "; //echo $query; $rows = $this->db_onedev->query($query, array($prm['id']))->result_array(); $result = array( "total" => count($rows), "records" => $rows, ); $this->sys_ok($result); exit; } function save() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; $pdob = date('Y-m-d', strtotime($prm['M_PatientDOB'])); $query = "UPDATE m_patient SET M_PatientM_TitleID = '{$prm['M_PatientM_TitleID']}', M_PatientPrefix = '{$prm['M_PatientPrefix']}', M_PatientName = '{$prm['M_PatientName']}', M_PatientSuffix = '{$prm['M_PatientSuffix']}', M_PatientDOB = '{$pdob}', M_PatientM_SexID = '{$prm['M_PatientM_SexID']}', M_PatientM_ReligionID = '{$prm['M_PatientM_ReligionID']}', M_PatientEmail = '{$prm['M_PatientEmail']}', M_PatientPOB = '{$prm['M_PatientPOB']}', M_PatientHP = '{$prm['M_PatientHP']}', M_PatientPhone = '{$prm['M_PatientPhone']}', M_PatientM_IdTypeID = '{$prm['M_PatientM_IdTypeID']}', M_PatientIDNumber = '{$prm['M_PatientIDNumber']}', M_PatientNote = '{$prm['M_PatientNote']}', M_PatientNIK = '{$prm['M_PatientNIK']}', M_PatientJabatan = '{$prm['M_PatientJabatan']}', M_PatientKedudukan = '{$prm['M_PatientKedudukan']}', M_PatientPJ = '{$prm['M_PatientPJ']}', M_PatientLocation = '{$prm['M_PatientLocation']}', M_PatientJob = '{$prm['M_PatientJob']}' WHERE M_PatientID = '{$prm['M_PatientID']}' "; //echo $query; $rows = $this->db_onedev->query($query); $result = array( "total" => 1, "records" => array('status' => 'OK') ); $ptn = $prm; $ptn["M_PatientDOB"] = $pdob; $ptn = json_encode($ptn); $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.EDIT', '{$ptn}', $userid)"); $this->sys_ok($result); exit; } function newpatient() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $pdob = date('Y-m-d', strtotime($prm['M_PatientDOB'])); $query = "INSERT INTO m_patient ( M_PatientM_TitleID, M_PatientPrefix, M_PatientName, M_PatientSuffix, M_PatientDOB, M_PatientM_SexID, M_PatientM_ReligionID, M_PatientEmail, M_PatientPOB, M_PatientHP, M_PatientPhone, M_PatientM_IdTypeID, M_PatientIDNumber, M_PatientNote, M_PatientNIK, M_PatientJabatan, M_PatientKedudukan, M_PatientPJ, M_PatientLocation, M_PatientJob, M_PatientUserID ) VALUES( '{$prm['M_PatientM_TitleID']}', '{$prm['M_PatientPrefix']}', '{$prm['M_PatientName']}', '{$prm['M_PatientSuffix']}', '{$pdob}', '{$prm['M_PatientM_SexID']}', '{$prm['M_PatientM_ReligionID']}', '{$prm['M_PatientEmail']}', '{$prm['M_PatientPOB']}', '{$prm['M_PatientHP']}', '{$prm['M_PatientPhone']}', '{$prm['M_PatientM_IdTypeID']}', '{$prm['M_PatientIDNumber']}', '{$prm['M_PatientNote']}', '{$prm['M_PatientNIK']}', '{$prm['M_PatientJabatan']}', '{$prm['M_PatientKedudukan']}', '{$prm['M_PatientPJ']}', '{$prm['M_PatientLocation']}', '{$prm['M_PatientJob']}', $userid ) "; //echo $query; $rows = $this->db_onedev->query($query); $last_id = $this->db_onedev->insert_id(); $result = array( "total" => 1, "records" => array('status' => 'OK'), "id" => $last_id ); $ptn = $prm; $ptn["M_PatientID"] = $last_id; $ptn["M_PatientDOB"] = $pdob; $ptn = json_encode($ptn); $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADD', '{$ptn}', $userid)"); $this->sys_ok($result); exit; } function deletepatient() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; $query = "UPDATE mcu_offline_prepare SET McuOfflinePrepareIsActive = 'N' WHERE McuOfflinePrepareID = '{$prm['id']}' "; //echo $query; $rows = $this->db_onedev->query($query); $result = array( "total" => 1, "records" => array('status' => 'OK') ); $this->sys_ok($result); exit; } function getaddress() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $query = " SELECT m_patientaddress.*, M_KelurahanName, M_DistrictID, M_DistrictName, M_CityID, M_CityName, '' as action FROM m_patientaddress JOIN m_kelurahan ON M_PatientAddressM_KelurahanID = M_KelurahanID JOIN m_district ON M_KelurahanM_DistrictID = M_DistrictID JOIN m_city ON M_DistrictM_CityID = M_CityID WHERE M_PatientAddressIsActive = 'Y' AND M_PatientAddressM_PatientID = ? "; //echo $query; $rows = $this->db_onedev->query($query, array($prm['id']))->result_array(); if ($rows) { foreach ($rows as $k => $v) { $rows[$k]['action'] = 'delete'; $rows[$k]['action'] .= 'edit'; } } $result = array( "total" => count($rows), "records" => $rows, ); $this->sys_ok($result); exit; } function savenewaddress() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; $count_addrs = $this->db_onedev->query("SELECT COUNT(*) as countx FROM m_patientaddress WHERE M_PatientAddressM_PatientID = '{$prm['M_PatientAddressM_PatientID']}' AND M_PatientAddressIsActive = 'Y'")->row()->countx; //echo $this->db_onedev->last_query(); if ($count_addrs == 0) { $prm['M_PatientAddressNote'] = 'Utama'; } else { $count_addrs_utama = $this->db_onedev->query("SELECT COUNT(*) as countx FROM m_patientaddress WHERE M_PatientAddressM_PatientID = '{$prm['M_PatientAddressM_PatientID']}' AND M_PatientAddressNote = 'Utama' AND M_PatientAddressIsActive = 'Y'")->row()->countx; if ($count_addrs_utama > 0 && strtolower($prm['M_PatientAddressNote']) == 'utama') { $rx = date('YmdHis'); $prm['M_PatientAddressNote'] = 'Utama_' . $rx; } } $query = "INSERT INTO m_patientaddress ( M_PatientAddressM_PatientID, M_PatientAddressNote, M_PatientAddressDescription, M_PatientAddressM_KelurahanID, M_PatientAddressCreated ) VALUES( '{$prm['M_PatientAddressM_PatientID']}', '{$prm['M_PatientAddressNote']}', '{$prm['M_PatientAddressDescription']}', '{$prm['M_PatientAddressM_KelurahanID']}', NOW() ) "; //echo $query; $rows = $this->db_onedev->query($query); $result = array( "total" => 1, "records" => array('status' => 'OK') ); $ptn = $prm; $ptn["M_UserID"] = $pdob; $ptn = json_encode($ptn); $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADDR_ADD', '{$ptn}', $userid)"); $this->sys_ok($result); exit; } function saveeditaddress() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; $query = "UPDATE m_patientaddress SET M_PatientAddressM_PatientID = '{$prm['M_PatientAddressM_PatientID']}', M_PatientAddressNote = '{$prm['M_PatientAddressNote']}', M_PatientAddressDescription = '{$prm['M_PatientAddressDescription']}', M_PatientAddressM_KelurahanID = '{$prm['M_PatientAddressM_KelurahanID']}' WHERE M_PatientAddressID = '{$prm['M_PatientAddressID']}' "; //echo $query; $rows = $this->db_onedev->query($query); $result = array( "total" => 1, "records" => array('status' => 'OK') ); $ptn = $prm; $ptn["M_UserID"] = $pdob; $ptn = json_encode($ptn); $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADDR_EDIT', '{$ptn}', $userid)"); $this->sys_ok($result); exit; } function deleteaddress() { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $userid = $this->sys_user["M_UserID"]; $prm = $this->sys_input; $query = "UPDATE m_patientaddress SET M_PatientAddressIsActive = 'N' WHERE M_PatientAddressID = '{$prm['M_PatientAddressID']}' "; //echo $query; $rows = $this->db_onedev->query($query); $result = array( "total" => 1, "records" => array('status' => 'OK') ); $ptn = $prm; $ptn["M_UserID"] = $pdob; $ptn = json_encode($ptn); $this->db_onedev->query("CALL one_log.log_me('PATIENT', 'PATIENT.ADDR_DELETE', '{$ptn}', $userid)"); $this->sys_ok($result); exit; } }