diff --git a/application/controllers/mockup/closecashier/Close_v2.php b/application/controllers/mockup/closecashier/Close_v2.php index bf31850e..b04bf4d3 100644 --- a/application/controllers/mockup/closecashier/Close_v2.php +++ b/application/controllers/mockup/closecashier/Close_v2.php @@ -164,15 +164,14 @@ class Close_v2 extends MY_Controller { //# ambil parameter input $prm = $this->sys_input; - $puserid = $prm['pUserID']; - - $sql = "CALL sp_fo_send_to_cashier_v2({$puserid})"; - $query = $this->db_onedev->query($sql); - echo $this->db_onedev->last_query(); - - if ($query) { - $result = array(); - $this->sys_ok($result); + $puserid = $prm['pUserID']; + + $sql = "CALL sp_fo_send_to_cashier_v2({$puserid})"; + $query = $this->db_onedev->query($sql); + + if ($query) { + $result = array(); + $this->sys_ok($result); } else { $this->sys_error_db("payment save rows", $this->db_onedev); exit; diff --git a/application/controllers/mockup/process/westone_resultvalidation-ibl/Rv_patient.php b/application/controllers/mockup/process/westone_resultvalidation-ibl/Rv_patient.php index bc46e45a..1aba6227 100644 --- a/application/controllers/mockup/process/westone_resultvalidation-ibl/Rv_patient.php +++ b/application/controllers/mockup/process/westone_resultvalidation-ibl/Rv_patient.php @@ -198,13 +198,14 @@ class Rv_patient extends MY_Controller $sql_url = "SELECT Print_TransactionID, Print_TransactionType, - Print_TransactionCode, - Print_TransactionName, - Print_TransactionUrl, - Print_TransactionUrlWatermark, - Print_TransactionParams - FROM print_transaction - WHERE Print_TransactionCode = 'LAB-RESULT-P-01' + Print_TransactionCode, + Print_TransactionName, + Print_TransactionUrl, + Print_TransactionUrlWatermark, + Print_TransactionUrlEletronic, + Print_TransactionParams + FROM print_transaction + WHERE Print_TransactionCode = 'LAB-RESULT-P-01' LIMIT 1"; $qry_url = $this->db_smartone->query($sql_url); if (!$qry_url) { @@ -212,7 +213,8 @@ class Rv_patient extends MY_Controller exit; } $rst_url = $qry_url->row_array(); - $template_url = $rst_url['Print_TransactionUrlWatermark']; + $template_url = $rst_url['Print_TransactionUrlWatermark']; + $template_url_electronic = isset($rst_url['Print_TransactionUrlEletronic']) ? $rst_url['Print_TransactionUrlEletronic'] : ''; $sql_branch = "SELECT M_BranchID, M_BranchCode, @@ -240,15 +242,28 @@ class Rv_patient extends MY_Controller ); // Ganti parameter - $full_url = str_replace( - ['PUsername', 'PT_OrderHeaderID', 'TS'], - [ - trim($this->sys_user['M_UserUsername']), + $full_url = str_replace( + ['PUsername', 'PT_OrderHeaderID', 'TS'], + [ + trim($this->sys_user['M_UserUsername']), $order_id, time() - ], - $full_url - ); + ], + $full_url + ); + $full_url_electronic = ''; + if ($template_url_electronic !== '') { + $full_url_electronic = $base . ltrim($template_url_electronic, '/'); + $full_url_electronic = str_replace( + ['PUsername', 'PT_OrderHeaderID', 'TS'], + [ + trim($this->sys_user['M_UserUsername']), + $order_id, + time() + ], + $full_url_electronic + ); + } // ambil endpoint URL dari DB $sql_url = "SELECT QR_ReportEndpointID, @@ -293,12 +308,13 @@ class Rv_patient extends MY_Controller $params = [ 'orderHeaderID' => $order_id, 'groupResultID' => $value['T_OrderHeaderGroupResultGroup_ResultID'], - 'testID' => $value['T_OrderHeaderGroupResultT_TestID'], - 'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'], - 'verifyBaseURL' => $verify_url, - 'QR_PrintOutReportURL' => $full_url, - 'createdByUserID' => $userID - ]; + 'testID' => $value['T_OrderHeaderGroupResultT_TestID'], + 'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'], + 'verifyBaseURL' => $verify_url, + 'QR_PrintOutReportURL' => $full_url, + 'QR_PrintOutReportURLElectronic' => $full_url_electronic, + 'createdByUserID' => $userID + ]; $this->generateqrreport->saveQRPrintout($params); } diff --git a/application/controllers/mockup/process/westone_resultvalidation/Rv_patient.php b/application/controllers/mockup/process/westone_resultvalidation/Rv_patient.php index 4e566564..28343591 100644 --- a/application/controllers/mockup/process/westone_resultvalidation/Rv_patient.php +++ b/application/controllers/mockup/process/westone_resultvalidation/Rv_patient.php @@ -87,14 +87,15 @@ class Rv_patient extends MY_Controller $data = $qry_get->result_array(); $sql_url = "SELECT Print_TransactionID, - Print_TransactionType, - Print_TransactionCode, - Print_TransactionName, - Print_TransactionUrl, - Print_TransactionUrlWatermark, - Print_TransactionParams - FROM print_transaction - WHERE Print_TransactionCode = 'LAB-RESULT-P-01'"; + Print_TransactionType, + Print_TransactionCode, + Print_TransactionName, + Print_TransactionUrl, + Print_TransactionUrlWatermark, + Print_TransactionUrlEletronic, + Print_TransactionParams + FROM print_transaction + WHERE Print_TransactionCode = 'LAB-RESULT-P-01'"; $qry_url = $this->db_smartone->query($sql_url); if (!$qry_url) { $this->sys_error_db('error print_transaction', $this->db_smartone); @@ -109,13 +110,14 @@ class Rv_patient extends MY_Controller $params = [ 'orderHeaderID' => $order_id, - 'groupResultID' => $value['T_OrderHeaderGroupResultGroup_ResultID'], - 'testID' => $value['T_OrderHeaderGroupResultT_TestID'], - 'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'], - 'verifyBaseURL' => $verify_url, - 'QR_PrintOutReportURL' => $rst_url['Print_TransactionUrlWatermark'], - 'createdByUserID' => $userID - ]; + 'groupResultID' => $value['T_OrderHeaderGroupResultGroup_ResultID'], + 'testID' => $value['T_OrderHeaderGroupResultT_TestID'], + 'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'], + 'verifyBaseURL' => $verify_url, + 'QR_PrintOutReportURL' => $rst_url['Print_TransactionUrlWatermark'], + 'QR_PrintOutReportURLElectronic' => $rst_url['Print_TransactionUrlEletronic'], + 'createdByUserID' => $userID + ]; $this->generateqrreport->saveQRPrintout($params); } diff --git a/application/controllers/mockup/resultentrysoelectromedis-westone/Resultentry.php b/application/controllers/mockup/resultentrysoelectromedis-westone/Resultentry.php index c41b0ad6..84868739 100644 --- a/application/controllers/mockup/resultentrysoelectromedis-westone/Resultentry.php +++ b/application/controllers/mockup/resultentrysoelectromedis-westone/Resultentry.php @@ -1753,10 +1753,10 @@ class Resultentry extends MY_Controller $printCode = $map[$testName]; // ambil URL print - $sql_url = "SELECT Print_TransactionUrlWatermark - FROM print_transaction - WHERE Print_TransactionCode = ? - LIMIT 1"; + $sql_url = "SELECT Print_TransactionUrlWatermark, Print_TransactionUrlEletronic + FROM print_transaction + WHERE Print_TransactionCode = ? + LIMIT 1"; $qry_url = $this->db_onedev->query($sql_url, [$printCode]); if (!$qry_url) { $this->sys_error_db('error print_transaction', $this->db_onedev); @@ -1764,7 +1764,8 @@ class Resultentry extends MY_Controller } $rst_url = $qry_url->row_array(); - $template_url = $rst_url['Print_TransactionUrlWatermark']; + $template_url = $rst_url['Print_TransactionUrlWatermark']; + $template_url_electronic = isset($rst_url['Print_TransactionUrlEletronic']) ? $rst_url['Print_TransactionUrlEletronic'] : ''; // Tambah base_url di depan $full_url = $base . ltrim($template_url, '/'); @@ -1776,15 +1777,28 @@ class Resultentry extends MY_Controller ); // Ganti parameter - $full_url = str_replace( - ['PUsername', 'PT_OrderHeaderID', 'TS'], - [ - trim($this->sys_user['M_UserUsername']), + $full_url = str_replace( + ['PUsername', 'PT_OrderHeaderID', 'TS'], + [ + trim($this->sys_user['M_UserUsername']), $prm['trx']['trx_id'], time() - ], - $full_url - ); + ], + $full_url + ); + $full_url_electronic = ''; + if ($template_url_electronic !== '') { + $full_url_electronic = $base . ltrim($template_url_electronic, '/'); + $full_url_electronic = str_replace( + ['PUsername', 'PT_OrderHeaderID', 'TS'], + [ + trim($this->sys_user['M_UserUsername']), + $prm['trx']['trx_id'], + time() + ], + $full_url_electronic + ); + } // cek sudah pernah generate belum $sql_check = "SELECT QR_PrintOutID @@ -1809,12 +1823,13 @@ class Resultentry extends MY_Controller $params = [ 'orderHeaderID' => $prm['trx']['orderid'], 'groupResultID' => $value['T_OrderHeaderGroupResultGroup_ResultID'], - 'testID' => $value['T_OrderHeaderGroupResultT_TestID'], - 'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'], - 'verifyBaseURL' => $verify_url, - 'QR_PrintOutReportURL' => $full_url, - 'createdByUserID' => $userid - ]; + 'testID' => $value['T_OrderHeaderGroupResultT_TestID'], + 'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'], + 'verifyBaseURL' => $verify_url, + 'QR_PrintOutReportURL' => $full_url, + 'QR_PrintOutReportURLElectronic' => $full_url_electronic, + 'createdByUserID' => $userid + ]; $this->generateqrreport->saveQRPrintout($params); } diff --git a/application/controllers/mockup/resultentrysoothers-cpone-v9/Resultentry.php b/application/controllers/mockup/resultentrysoothers-cpone-v9/Resultentry.php index c8167568..06e96645 100644 --- a/application/controllers/mockup/resultentrysoothers-cpone-v9/Resultentry.php +++ b/application/controllers/mockup/resultentrysoothers-cpone-v9/Resultentry.php @@ -5500,7 +5500,7 @@ class Resultentry extends MY_Controller $is_per_test = isset($value['Group_ResultFlagPerTest']) && $value['Group_ResultFlagPerTest'] === 'Y'; $target_test_id = $is_per_test ? intval($trx['test_id']) : 0; - $sql_pt = "SELECT Print_TransactionUrlWatermark + $sql_pt = "SELECT Print_TransactionUrlWatermark, Print_TransactionUrlEletronic FROM print_transaction WHERE Print_TransactionCode = ? LIMIT 1"; @@ -5515,6 +5515,7 @@ class Resultentry extends MY_Controller continue; } $template_url = $rst_url['Print_TransactionUrlWatermark']; + $template_url_electronic = isset($rst_url['Print_TransactionUrlEletronic']) ? $rst_url['Print_TransactionUrlEletronic'] : ''; $full_url = $base . ltrim($template_url, '/'); $full_url = str_replace('.rptdesign', '_watermark.rptdesign', $full_url); @@ -5527,6 +5528,19 @@ class Resultentry extends MY_Controller ), $full_url ); + $full_url_electronic = ''; + if ($template_url_electronic !== '') { + $full_url_electronic = $base . ltrim($template_url_electronic, '/'); + $full_url_electronic = str_replace( + array('PUsername', 'PT_OrderHeaderID', 'TS'), + array( + trim($this->sys_user['M_UserUsername']), + $trx['orderid'], + time() + ), + $full_url_electronic + ); + } $sql_check = "SELECT QR_PrintOutID FROM qr_printout @@ -5554,6 +5568,7 @@ class Resultentry extends MY_Controller 'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'], 'verifyBaseURL' => $verify_url, 'QR_PrintOutReportURL' => $full_url, + 'QR_PrintOutReportURLElectronic' => $full_url_electronic, 'createdByUserID' => $userid ); $this->generateqrreport->saveQRPrintout($params); diff --git a/application/controllers/mockup/resultentrysoxray-westone/Resultentry.php b/application/controllers/mockup/resultentrysoxray-westone/Resultentry.php index 14d75e8a..64421bc4 100644 --- a/application/controllers/mockup/resultentrysoxray-westone/Resultentry.php +++ b/application/controllers/mockup/resultentrysoxray-westone/Resultentry.php @@ -1158,10 +1158,10 @@ class Resultentry extends MY_Controller $printCode = $map[$group_result_name]; // ambil URL print - $sql_url = "SELECT Print_TransactionUrlWatermark - FROM print_transaction - WHERE Print_TransactionCode = ? - LIMIT 1"; + $sql_url = "SELECT Print_TransactionUrlWatermark, Print_TransactionUrlEletronic + FROM print_transaction + WHERE Print_TransactionCode = ? + LIMIT 1"; $qry_url = $this->db_onedev->query($sql_url, [$printCode]); if (!$qry_url) { $this->sys_error_db('error print_transaction', $this->db_onedev); @@ -1169,7 +1169,8 @@ class Resultentry extends MY_Controller } $rst_url = $qry_url->row_array(); - $template_url = $rst_url['Print_TransactionUrlWatermark']; + $template_url = $rst_url['Print_TransactionUrlWatermark']; + $template_url_electronic = isset($rst_url['Print_TransactionUrlEletronic']) ? $rst_url['Print_TransactionUrlEletronic'] : ''; // Tambah base_url di depan $full_url = $base . ltrim($template_url, '/'); @@ -1181,15 +1182,28 @@ class Resultentry extends MY_Controller ); // Ganti parameter - $full_url = str_replace( - ['PUsername', 'PT_OrderHeaderID', 'TS'], - [ - trim($this->sys_user['M_UserUsername']), + $full_url = str_replace( + ['PUsername', 'PT_OrderHeaderID', 'TS'], + [ + trim($this->sys_user['M_UserUsername']), $prm['trx']['trx_id'], time() - ], - $full_url - ); + ], + $full_url + ); + $full_url_electronic = ''; + if ($template_url_electronic !== '') { + $full_url_electronic = $base . ltrim($template_url_electronic, '/'); + $full_url_electronic = str_replace( + ['PUsername', 'PT_OrderHeaderID', 'TS'], + [ + trim($this->sys_user['M_UserUsername']), + $prm['trx']['trx_id'], + time() + ], + $full_url_electronic + ); + } // cek sudah pernah generate belum $sql_check = "SELECT QR_PrintOutID @@ -1214,12 +1228,13 @@ class Resultentry extends MY_Controller $params = [ 'orderHeaderID' => $prm['trx']['orderid'], 'groupResultID' => $value['T_OrderHeaderGroupResultGroup_ResultID'], - 'testID' => $value['T_OrderHeaderGroupResultT_TestID'], - 'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'], - 'verifyBaseURL' => $verify_url, - 'QR_PrintOutReportURL' => $full_url, - 'createdByUserID' => $userid - ]; + 'testID' => $value['T_OrderHeaderGroupResultT_TestID'], + 'groupResultName' => $value['T_OrderHeaderGroupResultGroup_ResultName'], + 'verifyBaseURL' => $verify_url, + 'QR_PrintOutReportURL' => $full_url, + 'QR_PrintOutReportURLElectronic' => $full_url_electronic, + 'createdByUserID' => $userid + ]; $this->generateqrreport->saveQRPrintout($params); } diff --git a/application/libraries/Generateqrreport.php b/application/libraries/Generateqrreport.php index 66236f2c..25582089 100644 --- a/application/libraries/Generateqrreport.php +++ b/application/libraries/Generateqrreport.php @@ -250,6 +250,7 @@ class Generateqrreport 'QR_PrintOutUUID' => $uuid, 'QR_PrintOutVerifyURL' => $verifyURL, // URL final PDF = yang di-encode ke QR Code 'QR_PrintOutReportURL' => $params['QR_PrintOutReportURL'], // URL sumber PDF di PHP server (Golang fetch dari sini) + 'QR_PrintOutReportURLElectronic' => (string)($params['QR_PrintOutReportURLElectronic'] ?? ''), 'QR_PrintOutTempFilePath' => '', 'QR_PrintOutUploadStatus' => 'pending', 'QR_PrintOutRetryCount' => 0, diff --git a/sql/manual_changes/2026-05-24-fix-sp-fo-send-to-cashier-v2-ibl.sql b/sql/manual_changes/2026-05-24-fix-sp-fo-send-to-cashier-v2-ibl.sql new file mode 100644 index 00000000..5d3bbd87 --- /dev/null +++ b/sql/manual_changes/2026-05-24-fix-sp-fo-send-to-cashier-v2-ibl.sql @@ -0,0 +1,35 @@ +DROP PROCEDURE IF EXISTS sp_fo_send_to_cashier_v2; + +DELIMITER $$ +CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_fo_send_to_cashier_v2`(IN `pUserID` int) +MODIFIES SQL DATA +begin + DECLARE exit handler for sqlexception + BEGIN + ROLLBACK; + END; + + DECLARE exit handler for sqlwarning + BEGIN + ROLLBACK; + END; + + start transaction; + + update f_payment set F_PaymentIsPosted = 'X' + where F_PaymentM_UserID = pUserID and F_PaymentIsPosted = 'N' and F_PaymentM_UserID = pUserID; + + insert into f_payment_kasir (F_PaymentKasirNumber, F_PaymentKasirDate, F_PaymentKasirUserID) + values (fn_numbering('F2C'), now(), pUserID); + set @pkID = last_insert_id(); + + insert into f_payment_kasir_detail(F_PaymentKasirDetailF_PaymentKasirID, F_PaymentKasirDetailF_PaymentID) + select @pkID, F_PaymentID + from f_payment where F_PaymentIsPosted = 'X' and F_PaymentM_UserID = pUserID; + + update f_payment set F_PaymentIsPosted = 'S' + where F_PaymentM_UserID = pUserID and F_PaymentIsPosted = 'X' and F_PaymentIsActive = 'Y'; + + commit; +end$$ +DELIMITER ;