Update QR report URLs

This commit is contained in:
sas.fajri
2026-05-24 18:14:52 +07:00
parent dbe03ffc05
commit c1fb8a8f61
8 changed files with 180 additions and 82 deletions

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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,

View File

@@ -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 ;