hostname = 'devcpone.aplikasi.web.id'; // $this->db = $this->load->database("cpone", true); } public function index() { // $cek = $this->db->query("select database() as current_db")->result(); // print_r($cek); echo "SPK HOME SERVICE API"; } function reply($resp) { echo json_encode($resp); } function reply_gz($resp, $debug = "") { if ($debug != "") { echo json_encode($resp); } else { echo gzcompress(json_encode($resp)); } } function get_param() { $body = file_get_contents("php://input"); return json_decode($body, true); } function get_param_z($debug = 'N') { $body_z = file_get_contents("php://input"); $body = ''; if ($debug == 'Y') { $body = $body_z; } else { $body = gzuncompress($body_z); } return json_decode($body, true); } public function post($url, $data) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Content-Type: application/text", "Content-Length: " . strlen($data), ]); $result = curl_exec($ch); if (curl_error($ch) != "") { echo json_encode([ "status" => "ERR", "message" => "Http Error : " . curl_error($ch), ]); curl_close($ch); exit(); } curl_close($ch); return $result; } function getstaff() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $rows = []; if ($prm['spkHomeServiceId']) { $sql = "SELECT M_StaffID as id, M_StaffName as name FROM m_staff WHERE M_StaffIsActive = 'Y' AND M_StaffID NOT IN ( SELECT M_StaffID FROM spk_home_service_staff JOIN m_staff ON SpkHomeServiceStaffM_StaffID = M_StaffID AND M_StaffIsActive = 'Y' WHERE SpkHomeServiceStaffSpkHomeServiceID = {$prm['spkHomeServiceId']} AND SpkHomeServiceStaffIsActive = 'Y' ) ORDER BY M_StaffName ASC"; $qry = $this->db->query($sql); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db('select staff header error', $this->db); exit; } } else { $query = " SELECT M_StaffID as id, M_StaffName as name FROM m_staff WHERE M_StaffIsActive = 'Y' ORDER BY M_StaffName ASC "; //echo $query; $qry_hsl = $this->db->query($query); if ($qry_hsl) { $rows = $qry_hsl->result_array(); } else { $this->sys_error_db('select staff error', $this->db); exit; } } $result = array( "total" => count($rows), "records" => $rows, "xdate" => date("Y-m-d H:i:s") ); $this->sys_ok($result); exit; } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function getorder() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $number_offset = 0; $number_limit = 10; if ($prm["current_page"] > 0) { $number_offset = ($prm["current_page"] - 1) * $number_limit; } $sql_tot = "SELECT count(*) as total FROM ( SELECT SpkHomeServiceOrderID, M_PatientID, M_PatientName, M_BranchID, M_BranchCode, M_BranchCodeLab, PreregisterOnlineID, PreregisterOnlineQRCode, PreregisterOnlineOrderNumber, PreregisterOnlineBranchCode FROM preregister_online JOIN m_patient ON M_PatientID = PreregisterOnlineM_PatientID AND M_PatientIsActive = 'Y' JOIN m_branch ON PreregisterOnlineBranchCode = M_BranchCodeLab AND M_BranchIsActive = 'Y' LEFT JOIN spk_home_service_order ON SpkHomeServiceOrderPreregisterOnlineID = PreregisterOnlineID AND SpkHomeServiceOrderIsActive = 'Y' LEFT JOIN spk_home_service ON SpkHomeServiceOrderSpkHomeServiceID = SpkHomeServiceID AND SpkHomeServiceIsActive = 'Y' WHERE PreregisterOnlineIsActive = 'Y' AND ( -- Ambil yang SPK-nya N (baru) dan sudah ada order (SpkHomeServiceStatus = 'N' AND SpkHomeServiceOrderID IS NOT NULL) OR -- Atau SPK-nya sudah R (release) tapi belum diorder (SpkHomeServiceOrderID IS NULL) ) GROUP BY PreregisterOnlineID) x "; $qry_tot = $this->db->query($sql_tot); $tot_count = 0; $tot_page = 0; if ($qry_tot) { $tot_count = $qry_tot->result_array()[0]["total"]; $tot_page = ceil($tot_count / $number_limit); } else { $this->sys_error_db("order count", $this->db); exit; } $sql = "SELECT SpkHomeServiceOrderID, M_PatientID, M_PatientName, M_BranchID, M_BranchCode, M_BranchCodeLab, PreregisterOnlineID, PreregisterOnlineQRCode, PreregisterOnlineOrderNumber, PreregisterOnlineBranchCode, -- PreregisterOnlineJSON, '' as test_name FROM preregister_online JOIN m_patient ON M_PatientID = PreregisterOnlineM_PatientID AND M_PatientIsActive = 'Y' JOIN m_branch ON PreregisterOnlineBranchCode = M_BranchCodeLab AND M_BranchIsActive = 'Y' LEFT JOIN spk_home_service_order ON SpkHomeServiceOrderPreregisterOnlineID = PreregisterOnlineID AND SpkHomeServiceOrderIsActive = 'Y' LEFT JOIN spk_home_service ON SpkHomeServiceOrderSpkHomeServiceID = SpkHomeServiceID AND SpkHomeServiceIsActive = 'Y' WHERE PreregisterOnlineIsActive = 'Y' AND ( -- Ambil yang SPK-nya N (baru) dan sudah ada order (SpkHomeServiceStatus = 'N' AND SpkHomeServiceOrderID IS NOT NULL) OR -- Atau SPK-nya sudah R (release) tapi belum diorder (SpkHomeServiceOrderID IS NULL) ) GROUP BY PreregisterOnlineID LIMIT ? OFFSET ?"; $qry = $this->db->query($sql, [$number_limit, $number_offset]); // echo $this->db->last_query(); // exit; if ($qry) { $rows = $qry->result_array(); foreach ($rows as $key => $value) { $sql_ol = "SELECT PreregisterOnlineJSON FROM preregister_online WHERE PreregisterOnlineIsActive = 'Y' AND PreregisterOnlineID = ?"; $qry_ol = $this->db_onedev->query($sql_ol, [$value['PreregisterOnlineID']]); if (!$qry_ol) { $this->sys_error_db("Error json preregister", $this->db_onedev); exit; } $dataJson = $qry_ol->result_array(); $tempTestName = []; foreach ($dataJson as $k => $json) { $parsed = json_decode($json["PreregisterOnlineJSON"], true); if (json_last_error() === JSON_ERROR_NONE && is_array($parsed)) { foreach ($parsed as $item) { $nametest = $item['test_name'] ?? ''; $fullName = trim("$nametest"); $tempTestName[] = $fullName; } } } $rows[$key]["test_name"] = implode(', ', $tempTestName); } } else { $this->sys_error_db("select order", $this->db); exit; } $result = array( "total_page" => $tot_page, "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function saveOrder() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $this->db->trans_begin(); $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $arrOrders = $prm["arrOrders"]; $arrStaff = $prm["arrStaff"]; $date = $prm["date"]; $spkHomeServiceId = $prm["spkHomeServiceId"]; $numbering = $this->db->query("SELECT fn_numbering('SPK') as numbering")->row()->numbering; if ($prm["act"] == "new") { $sql_sh = "INSERT INTO spk_home_service( SpkHomeServiceNumber, SpkHomeServiceDate, SpkHomeServiceIsActive, SpkHomeServiceCreated, SpkHomeServiceCreatedUserID) VALUES(?,?,'Y',NOW(),?)"; $qry_sh = $this->db->query($sql_sh, [ $numbering, $date, $userid ]); if (!$qry_sh) { $this->db->trans_rollback(); $this->sys_error_db("Error insert spk home service", $this->db); exit; } $lastid_spk = $this->db->insert_id(); if (count($prm["arrOrders"]) > 0) { foreach ($arrOrders as $key => $vsh) { $sql_sho = "INSERT INTO spk_home_service_order( SpkHomeServiceOrderSpkHomeServiceID, SpkHomeServiceOrderBranchCode, SpkHomeServiceOrderPreregisterOnlineID, SpkHomeServiceOrderIsActive, SpkHomeServiceOrderCreated, SpkHomeServiceOrderCreatedUserID) VALUES(?,?,?,'Y',NOW(),?)"; $qry_sho = $this->db->query($sql_sho, [ $lastid_spk, $vsh["PreregisterOnlineBranchCode"], $vsh["PreregisterOnlineID"], $userid ]); if (!$qry_sho) { $this->db->trans_rollback(); $this->sys_error_db("Error insert spk home service order", $this->db); exit; } } } if (count($prm["arrStaff"]) > 0) { foreach ($arrStaff as $key => $value) { $sql_staff = "INSERT INTO spk_home_service_staff( SpkHomeServiceStaffM_StaffID, SpkHomeServiceStaffSpkHomeServiceID, SpkHomeServiceStaffIsActive, SpkHomeServiceStaffCreated, SpkHomeServiceStaffCreatedUserID) VALUES(?,?,'Y',NOW(),?)"; $qry_staff = $this->db->query($sql_staff, [ $value["staffid"], $lastid_spk, $userid ]); if (!$qry_staff) { $this->db->trans_rollback(); $this->sys_error_db("Error insert spk home service staff", $this->db); exit; } } } } else { // Step 1: Ambil semua order aktif dari DB untuk SPK ini $sql_db_orders = "SELECT SpkHomeServiceOrderID FROM spk_home_service_order WHERE SpkHomeServiceOrderSpkHomeServiceID = ? AND SpkHomeServiceOrderIsActive = 'Y'"; $qry_db_orders = $this->db->query($sql_db_orders, [$spkHomeServiceId]); $db_orders = $qry_db_orders->result_array(); // Siapkan array order aktif dari DB $db_order_ids = array_column($db_orders, 'SpkHomeServiceOrderID'); // print_r($db_order_ids); // exit; // Step 2: Ambil semua ID dari data frontend $order_ids = []; foreach ($arrOrders as $order) { if (!empty($order['SpkHomeServiceOrderID'])) { $order_ids[] = $order['SpkHomeServiceOrderID']; } } // Step 3: Cek data yang dihapus (ada di DB tapi tidak ada di frontend) $deleted_ids = array_diff($db_order_ids, $order_ids); // Step 4: Update ke IsActive = 'N' foreach ($deleted_ids as $deleted_id) { $sql_update = "UPDATE spk_home_service_order SET SpkHomeServiceOrderIsActive = 'N', SpkHomeServiceOrderLastUpdated = NOW(), SpkHomeServiceOrderLastUpdatedUserID = ? WHERE SpkHomeServiceOrderID = ?"; $qry_update = $this->db->query($sql_update, [$userid, $deleted_id]); if (!$qry_update) { $this->db->trans_rollback(); $this->sys_error_db("Error update spk order", $this->db); exit; } } // spk home service staff // Ambil data staff lama dari database (yang aktif) $sql_old = "SELECT SpkHomeServiceStaffID, SpkHomeServiceStaffM_StaffID FROM spk_home_service_staff WHERE SpkHomeServiceStaffSpkHomeServiceID = ? AND SpkHomeServiceStaffIsActive = 'Y'"; $qry_old = $this->db->query($sql_old, [$spkHomeServiceId]); $oldStaffs = $qry_old->result_array(); // Buat array id lama dan baru $oldStaffMap = []; foreach ($oldStaffs as $old) { $oldStaffMap[$old['SpkHomeServiceStaffM_StaffID']] = $old['SpkHomeServiceStaffID']; } // print_r($oldStaffMap); // exit; $newStaffIDs = []; // Simpan semua staff ID baru dari frontend foreach ($arrStaff as $staff) { $staffID = isset($staff['staffid']) ? $staff['staffid'] : $staff['SpkHomeServiceStaffM_StaffID']; $newStaffIDs[] = $staffID; if (!isset($oldStaffMap[$staffID])) { // Insert jika staff baru // print_r("insert baru"); $sql_insert = "INSERT INTO spk_home_service_staff( SpkHomeServiceStaffM_StaffID, SpkHomeServiceStaffSpkHomeServiceID, SpkHomeServiceStaffIsActive, SpkHomeServiceStaffCreated, SpkHomeServiceStaffCreatedUserID ) VALUES (?, ?, 'Y', NOW(), ?)"; $qry_insert = $this->db->query($sql_insert, [$staffID, $spkHomeServiceId, $userid]); if (!$qry_insert) { $this->db->trans_rollback(); $this->sys_error_db("Error insert spk home service staff", $this->db); exit; } } } // Update yang dihapus (jika M_StaffID lama tidak ada di list baru) foreach ($oldStaffMap as $m_staff_id => $spk_staff_id) { if (!in_array($m_staff_id, $newStaffIDs)) { // print_r("hapus"); $sql_update = "UPDATE spk_home_service_staff SET SpkHomeServiceStaffIsActive = 'N', SpkHomeServiceStaffLastUpdated = NOW(), SpkHomeServiceStaffLastUpdatedUserID = ? WHERE SpkHomeServiceStaffID = ?"; $qry_update = $this->db->query($sql_update, [$userid, $spk_staff_id]); if (!$qry_update) { $this->db->trans_rollback(); $this->sys_error_db("Error update (nonaktifkan) spk staff", $this->db); exit; } } } } $this->db->trans_commit(); $result = array( "total" => 1, "records" => array('status' => 'OK'), "number" => $numbering, "id" => $lastid_spk ); $this->sys_ok($result); exit; } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function search() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $search = ""; if (isset($prm['search'])) { $search = trim($prm["search"]); if ($search != "") { $search = '%' . $prm['search'] . '%'; } else { $search = '%%'; } } $number_offset = 0; $number_limit = 20; if ($prm["current_page"] > 0) { $number_offset = ($prm["current_page"] - 1) * $number_limit; } $sql_tot = "SELECT count(*) as total FROM spk_home_service WHERE SpkHomeServiceIsActive = 'Y' AND (SpkHomeServiceNumber LIKE ?) "; $qry_tot = $this->db->query($sql_tot, [ $search ]); $tot_count = 0; $tot_page = 0; if ($qry_tot) { $tot_count = $qry_tot->result_array()[0]["total"]; $tot_page = ceil($tot_count / $number_limit); } else { $this->sys_error_db("error spk home service count", $this->db); exit; } $sql = "SELECT SpkHomeServiceID, SpkHomeServiceNumber, DATE_FORMAT(SpkHomeServiceDate, '%d-%m-%Y') as SpkHomeServiceDate, SpkHomeServiceStatus, SpkHomeServiceIsActive FROM spk_home_service WHERE SpkHomeServiceIsActive = 'Y' AND (SpkHomeServiceNumber LIKE ?) ORDER BY SpkHomeServiceID DESC LIMIT ? OFFSET ?"; $qry = $this->db->query($sql, [ $search, $number_limit, $number_offset ]); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db("Error lookup spk home service", $this->db); exit; } $result = array( "total" => $tot_page, "records" => $rows, "sql" => $this->db->last_query() ); $this->sys_ok($result); exit; } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function getorderbyid() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $spkHomeServiceId = $prm["spkHomeServiceId"]; $number_offset = 0; $number_limit = 10; if ($prm["current_page"] > 0) { $number_offset = ($prm["current_page"] - 1) * $number_limit; } $sql_tot = "SELECT count(*) as total FROM ( SELECT SpkHomeServiceOrderID, SpkHomeServiceOrderSpkHomeServiceID, SpkHomeServiceOrderBranchCode, M_PatientID, M_PatientName, M_BranchID, M_BranchCode, M_BranchCodeLab, PreregisterOnlineID, PreregisterOnlineQRCode, PreregisterOnlineOrderNumber, '' as test_name FROM spk_home_service_order JOIN preregister_online ON SpkHomeServiceOrderPreregisterOnlineID = PreregisterOnlineID AND PreregisterOnlineIsActive = 'Y' JOIN m_patient ON M_PatientID = PreregisterOnlineM_PatientID AND M_PatientIsActive = 'Y' JOIN m_branch ON PreregisterOnlineBranchCode = M_BranchCodeLab AND M_BranchIsActive = 'Y' WHERE SpkHomeServiceOrderIsActive = 'Y' AND SpkHomeServiceOrderSpkHomeServiceID = ?) x "; $qry_tot = $this->db->query($sql_tot, [$spkHomeServiceId]); $tot_count = 0; $tot_page = 0; if ($qry_tot) { $tot_count = $qry_tot->result_array()[0]["total"]; $tot_page = ceil($tot_count / $number_limit); } else { $this->sys_error_db("order count", $this->db); exit; } $sql = "SELECT SpkHomeServiceOrderID, SpkHomeServiceOrderSpkHomeServiceID, SpkHomeServiceOrderBranchCode, M_PatientID, M_PatientName, M_BranchID, M_BranchCode, M_BranchCodeLab, PreregisterOnlineID, PreregisterOnlineQRCode, PreregisterOnlineOrderNumber, '' as test_name FROM spk_home_service_order JOIN preregister_online ON SpkHomeServiceOrderPreregisterOnlineID = PreregisterOnlineID AND PreregisterOnlineIsActive = 'Y' JOIN m_patient ON M_PatientID = PreregisterOnlineM_PatientID AND M_PatientIsActive = 'Y' JOIN m_branch ON PreregisterOnlineBranchCode = M_BranchCodeLab AND M_BranchIsActive = 'Y' WHERE SpkHomeServiceOrderIsActive = 'Y' AND SpkHomeServiceOrderSpkHomeServiceID = ? LIMIT ? OFFSET ?"; $qry = $this->db->query($sql, [$spkHomeServiceId, $number_limit, $number_offset]); // echo $this->db->last_query(); // exit; if ($qry) { $rows = $qry->result_array(); foreach ($rows as $key => $value) { $sql_ol = "SELECT PreregisterOnlineJSON FROM preregister_online WHERE PreregisterOnlineIsActive = 'Y' AND PreregisterOnlineID = ?"; $qry_ol = $this->db_onedev->query($sql_ol, [$value['PreregisterOnlineID']]); if (!$qry_ol) { $this->sys_error_db("Error json preregister", $this->db_onedev); exit; } $dataJson = $qry_ol->result_array(); $tempTestName = []; foreach ($dataJson as $k => $json) { $parsed = json_decode($json["PreregisterOnlineJSON"], true); if (json_last_error() === JSON_ERROR_NONE && is_array($parsed)) { foreach ($parsed as $item) { $nametest = $item['test_name'] ?? ''; $fullName = trim("$nametest"); $tempTestName[] = $fullName; } } } $rows[$key]["test_name"] = implode(', ', $tempTestName); } } else { $this->sys_error_db("select order", $this->db); exit; } $result = array( "total_page" => $tot_page, "records" => $rows ); $this->sys_ok($result); } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function getstaffbyid() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $spkHomeServiceId = $prm["spkHomeServiceId"]; $sql = "SELECT SpkHomeServiceStaffID, SpkHomeServiceStaffM_StaffID, SpkHomeServiceStaffSpkHomeServiceID, M_StaffID as id, M_StaffName as name FROM spk_home_service_staff JOIN m_staff ON SpkHomeServiceStaffM_StaffID = M_StaffID AND M_StaffIsActive = 'Y' WHERE SpkHomeServiceStaffIsActive = 'Y' AND SpkHomeServiceStaffSpkHomeServiceID = ?"; $qry = $this->db->query($sql, [$spkHomeServiceId]); if ($qry) { $rows = $qry->result_array(); } else { $this->sys_error_db("error get staff by id", $this->db); exit; } $result = array( "total" => count($rows), "records" => $rows, "xdate" => date("Y-m-d H:i:s") ); $this->sys_ok($result); exit; } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function releaseOrder() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $this->db->trans_begin(); $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $spkHomeServiceId = $prm["spkHomeServiceId"]; $sql = "UPDATE spk_home_service SET SpkHomeServiceStatus = 'R', SpkHomeServiceLastUpdated = NOW(), SpkHomeServiceLastUpdatedUserID = ? WHERE SpkHomeServiceID = ?"; $qry = $this->db->query($sql, [$userid, $spkHomeServiceId]); if (!$qry) { $this->db->trans_rollback(); $this->sys_error_db("Error release spk home service", $this->db); exit; } $sql_order = "SELECT SpkHomeServiceOrderID, SpkHomeServiceOrderSpkHomeServiceID, SpkHomeServiceOrderBranchCode, SpkHomeServiceOrderPreregisterOnlineID, PreregisterOnlineID, PreregisterOnlinePreregisterID, PreregisterOnlineTrxDateTime, PreregisterOnlineQRCode, PreregisterOnlineOrderNumber, PreregisterOnlineBranchCode, PreregisterOnlineM_PatientID, PreregisterOnlineMgm_McuID, PreregisterOnlineCorporateID, PreregisterOnlineDiagnose, PreregisterOnlineFoNote, PreregisterOnlineStatus, PreregisterOnlineType, M_PatientID, M_PatientNoReg, M_PatientName, M_PatientGender, M_PatientDOB, '' as details FROM spk_home_service_order JOIN preregister_online ON SpkHomeServiceOrderPreregisterOnlineID = PreregisterOnlineID AND PreregisterOnlineIsActive = 'Y' JOIN m_patient ON PreregisterOnlineM_PatientID = M_PatientID AND M_PatientIsActive = 'Y' WHERE SpkHomeServiceOrderIsActive = 'Y' AND SpkHomeServiceOrderSpkHomeServiceID = ?"; $qry_order = $this->db->query($sql_order, [$spkHomeServiceId]); if ($qry_order) { $rows = $qry_order->result_array(); foreach ($rows as $k => $v) { $sql_ol = "SELECT PreregisterOnlineJSON FROM preregister_online WHERE PreregisterOnlineIsActive = 'Y' AND PreregisterOnlineID = ?"; $qry_ol = $this->db_onedev->query($sql_ol, [$v['PreregisterOnlineID']]); if (!$qry_ol) { $this->sys_error_db("Error json preregister", $this->db_onedev); exit; } $dataJson = $qry_ol->row_array(); // print_r($dataJson); // exit; $data = json_decode($dataJson["PreregisterOnlineJSON"], true); $rows[$k]["details"] = $data; } } else { $this->db->trans_rollback(); $this->sys_error_db("Error get data order", $this->db); exit; } foreach ($rows as $key => $value) { $data = array( "branch_code_lab" => $value["PreregisterOnlineBranchCode"], "trx_datetime" => $value["PreregisterOnlineTrxDateTime"], "diagnose" => $value["PreregisterOnlineDiagnose"], "fo_note" => $value["PreregisterOnlineFoNote"], "patient_id" => $value["PreregisterOnlineM_PatientID"], "patient_corporate_id" => $value["PreregisterOnlineCorporateID"], "mgm_mcuID" => $value["PreregisterOnlineMgm_McuID"], "patient_birthdate" => $value["M_PatientDOB"], "preregister_id" => $value["PreregisterOnlinePreregisterID"], "details" => $value["details"] ); $jsonEncode = json_encode($data); // print_r($data); // $param = gzcompress($jsonEncode); $url = "https://" . $this->hostname . "/one-api/website/order/register/"; $post_rst = $this->post($url, $jsonEncode); $rst = json_decode($post_rst, true); // print_r($rst["branch_code_lab"]); $sql_update_order = "UPDATE spk_home_service_order SET SpkHomeServiceOrderT_OrderHeaderID = ?, SpkHomeServiceOrderLastUpdated = NOW(), SpkHomeServiceOrderLastUpdatedUserID = ? WHERE SpkHomeServiceOrderID = ?"; $qry = $this->db->query($sql_update_order, [$rst["order_id"], $userid, $value["SpkHomeServiceOrderID"]]); if (!$qry) { $this->db->trans_rollback(); $this->sys_error_db("Error update orerheaderid spk home service order", $this->db); exit; } } $this->db->trans_commit(); $result = array("total" => 1, "id" => $spkHomeServiceId); $this->sys_ok($result); exit; } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } public function deleteOrder() { try { if (!$this->isLogin) { $this->sys_error("Invalid Token"); exit; } $this->db->trans_begin(); $prm = $this->sys_input; $userid = $this->sys_user["M_UserID"]; $spkHomeServiceId = $prm["spkHomeServiceId"]; $sql_sh = "UPDATE spk_home_service SET SpkHomeServiceIsActive = 'N', SpkHomeServiceDeleted = NOW(), SpkHomeServiceDeletedUserID = ? WHERE SpkHomeServiceID = ?"; $qry_sh = $this->db->query($sql_sh, [$userid, $spkHomeServiceId]); if (!$qry_sh) { $this->db->trans_rollback(); $this->sys_error_db("Error delete spk home service", $this->db); exit; } $sql_sho = "UPDATE spk_home_service_order SET SpkHomeServiceOrderIsActive = 'N', SpkHomeServiceOrderDeleted = NOW(), SpkHomeServiceOrderDeletedUserID = ? WHERE SpkHomeServiceOrderSpkHomeServiceID = ?"; $qry_sho = $this->db->query($sql_sho, [$userid, $spkHomeServiceId]); if (!$qry_sho) { $this->db->trans_rollback(); $this->sys_error_db("Error delete spk home service order", $this->db); exit; } $sql_staff = "UPDATE spk_home_service_staff SET SpkHomeServiceStaffIsActive = 'N', SpkHomeServiceStaffDeleted = NOW(), SpkHomeServiceStaffDeletedUserID = ? WHERE SpkHomeServiceStaffSpkHomeServiceID = ?"; $qry_staff = $this->db->query($sql_staff, [$userid, $spkHomeServiceId]); if (!$qry_staff) { $this->db->trans_rollback(); $this->sys_error_db("Error delete spk home service staff", $this->db); exit; } $this->db->trans_commit(); $result = array("total" => 1, "id" => $spkHomeServiceId); $this->sys_ok($result); exit; } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }