3Z4LPN - ganti flag stemcell ke table baru
This commit is contained in:
@@ -490,7 +490,7 @@ class Transactionv4 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'N'
|
||||
AND NOT EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND `M_PatientName` NOT LIKE '%coba%'
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -547,7 +547,7 @@ class Transactionv4 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'N'
|
||||
AND NOT EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND `M_PatientName` NOT LIKE '%coba%'
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -1055,7 +1055,7 @@ class Transactionv4 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'N'
|
||||
AND NOT EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND `M_PatientName` NOT LIKE '%coba%'
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -1111,7 +1111,7 @@ class Transactionv4 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'N'
|
||||
AND NOT EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND `M_PatientName` NOT LIKE '%coba%'
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -1863,7 +1863,7 @@ class Transactionv4 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'N'
|
||||
AND NOT EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -1919,7 +1919,7 @@ class Transactionv4 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'N'
|
||||
AND NOT EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -2388,7 +2388,7 @@ class Transactionv4 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'N'
|
||||
AND NOT EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -2443,7 +2443,7 @@ class Transactionv4 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'N'
|
||||
AND NOT EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -2888,7 +2888,7 @@ class Transactionv4 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'N'
|
||||
AND NOT EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -3801,7 +3801,7 @@ class Transactionv4 extends MY_Controller
|
||||
b.M_BranchCode AS branch_code,
|
||||
b.M_BranchName AS branch_name,
|
||||
b.M_BranchCodeLab AS branch_code_lab,
|
||||
b.M_BranchIsSteemCell AS is_stemcell,
|
||||
IF(os.T_OrderStemcellID IS NOT NULL, 'Y', 'N') AS is_stemcell,
|
||||
oh.T_OrderHeaderTotal AS total,
|
||||
at.Ais_TransactionStatus AS Ais_TransactionStatus,
|
||||
c.CorporateID AS corporate_id,
|
||||
@@ -3814,6 +3814,7 @@ class Transactionv4 extends MY_Controller
|
||||
FROM t_orderheader oh
|
||||
JOIN m_patient p ON p.M_PatientID = oh.T_OrderHeaderM_PatientID
|
||||
JOIN m_branch b ON b.M_BranchID = oh.T_OrderHeaderM_BranchID
|
||||
LEFT JOIN t_orderstemcell os ON os.T_OrderStemcellT_OrderHeaderID = oh.T_OrderHeaderID
|
||||
LEFT JOIN corporate c ON c.CorporateID = oh.T_OrderHeaderCorporateID
|
||||
LEFT JOIN mgm_mcu ON mgm_mcu.Mgm_McuID = oh.T_OrderHeaderMgm_McuID
|
||||
LEFT JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -3866,8 +3867,11 @@ class Transactionv4 extends MY_Controller
|
||||
}
|
||||
|
||||
if ($is_stemcell !== null && $is_stemcell !== '' && $is_stemcell !== 'A') {
|
||||
$where_clauses[] = "b.M_BranchIsSteemCell = ?";
|
||||
$params[] = $is_stemcell;
|
||||
if ($is_stemcell === 'Y') {
|
||||
$where_clauses[] = "os.T_OrderStemcellID IS NOT NULL";
|
||||
} else {
|
||||
$where_clauses[] = "os.T_OrderStemcellID IS NULL";
|
||||
}
|
||||
}
|
||||
|
||||
// Build WHERE
|
||||
@@ -3881,6 +3885,7 @@ class Transactionv4 extends MY_Controller
|
||||
FROM t_orderheader oh
|
||||
JOIN m_patient p ON p.M_PatientID = oh.T_OrderHeaderM_PatientID
|
||||
JOIN m_branch b ON b.M_BranchID = oh.T_OrderHeaderM_BranchID
|
||||
LEFT JOIN t_orderstemcell os ON os.T_OrderStemcellT_OrderHeaderID = oh.T_OrderHeaderID
|
||||
LEFT JOIN " . $this->db_log->database . ".ais_transaction at
|
||||
ON at.Ais_TransactionOrderHeaderLabNumber = oh.T_OrderHeaderLabNumber
|
||||
LEFT JOIN corporate c ON c.CorporateID = oh.T_OrderHeaderCorporateID
|
||||
|
||||
@@ -490,7 +490,7 @@ class Transactionv5 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'Y'
|
||||
AND EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND `M_PatientName` NOT LIKE '%coba%'
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -547,7 +547,7 @@ class Transactionv5 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'Y'
|
||||
AND EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND `M_PatientName` NOT LIKE '%coba%'
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -1055,7 +1055,7 @@ class Transactionv5 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'Y'
|
||||
AND EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND `M_PatientName` NOT LIKE '%coba%'
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -1111,7 +1111,7 @@ class Transactionv5 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'Y'
|
||||
AND EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID AND `M_PatientName` NOT LIKE '%coba%'
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -1863,7 +1863,7 @@ class Transactionv5 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'Y'
|
||||
AND EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -1919,7 +1919,7 @@ class Transactionv5 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'Y'
|
||||
AND EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -2391,7 +2391,7 @@ class Transactionv5 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'Y'
|
||||
AND EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -2446,7 +2446,7 @@ class Transactionv5 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'Y'
|
||||
AND EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
@@ -2909,7 +2909,7 @@ class Transactionv5 extends MY_Controller
|
||||
'' as PaketDispenser
|
||||
FROM t_orderheader
|
||||
JOIN m_branch branch_order ON branch_order.M_BranchID = T_OrderHeaderM_BranchID
|
||||
AND M_BranchIsSteemCell = 'Y'
|
||||
AND EXISTS (SELECT 1 FROM t_orderstemcell WHERE T_OrderStemcellT_OrderHeaderID = T_OrderHeaderID)
|
||||
JOIN m_patient ON M_PatientID = T_OrderHeaderM_PatientID
|
||||
JOIN corporate ON CorporateID = T_OrderHeaderCorporateID
|
||||
JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID
|
||||
|
||||
@@ -250,7 +250,7 @@ class Order extends MY_Controller
|
||||
}
|
||||
|
||||
$userid = $this->sys_user["M_UserID"];
|
||||
$sql = "SELECT M_UserLoginM_BranchID as branch_id, M_BranchCodeLab as branch_code_lab, M_BranchCodeBridging as branch_code_bridging
|
||||
$sql = "SELECT M_UserLoginM_BranchID as branch_id, M_BranchCodeLab as branch_code_lab, M_BranchCodeBridging as branch_code_bridging, M_BranchIsSteemCell as is_stemcell
|
||||
FROM m_user
|
||||
JOIN m_branch ON M_UserLoginM_BranchID = M_BranchID AND M_BranchIsActive = 'Y'
|
||||
WHERE M_UserID = $userid";
|
||||
@@ -263,6 +263,7 @@ class Order extends MY_Controller
|
||||
$branch_id = $dt_branch['branch_id'];
|
||||
$branch_code_lab = $dt_branch['branch_code_lab'];
|
||||
$branch_code_bridging = $dt_branch['branch_code_bridging'];
|
||||
$branch_is_stemcell = isset($dt_branch['is_stemcell']) ? $dt_branch['is_stemcell'] : 'N';
|
||||
$pre_registerid = isset($prm['preid']) ? $prm['preid'] : 0;
|
||||
$header = $prm['header'];
|
||||
$header['pre_register_id'] = $pre_registerid;
|
||||
@@ -311,6 +312,32 @@ class Order extends MY_Controller
|
||||
}
|
||||
}
|
||||
|
||||
if ($branch_is_stemcell == 'Y') {
|
||||
$test_ids_to_check = array_values(array_unique(array_map('intval', array_column($details, 't_id'))));
|
||||
$test_ids_to_check = array_filter($test_ids_to_check, function($id) { return $id > 0; });
|
||||
|
||||
if (!empty($test_ids_to_check)) {
|
||||
$ids_str = implode(',', $test_ids_to_check);
|
||||
$sql_check = "SELECT T_TestID, T_TestName, T_TestNat_GroupID FROM t_test WHERE T_TestID IN ($ids_str)";
|
||||
$query_check = $this->db_smartone->query($sql_check);
|
||||
if (!$query_check) {
|
||||
$this->sys_error_db(["status" => "ERR", "message" => "check nat_group stemcell | " . $this->db_smartone->error()["message"], "debug" => $this->db_smartone->last_query()]);
|
||||
exit;
|
||||
}
|
||||
$rows_check = $query_check->result_array();
|
||||
$invalid_tests = [];
|
||||
foreach ($rows_check as $row_check) {
|
||||
if ((int)$row_check['T_TestNat_GroupID'] !== 7) {
|
||||
$invalid_tests[] = $row_check['T_TestName'];
|
||||
}
|
||||
}
|
||||
if (!empty($invalid_tests)) {
|
||||
$this->sys_error("Cabang dan pemeriksaan tidak sesuai. Cek pemeriksaan, harus group stemcell. Pemeriksaan tidak valid: " . implode(', ', $invalid_tests));
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->db_smartone->trans_begin();
|
||||
|
||||
$sql = "SELECT M_DoctorID, M_DoctorName, M_DoctorPjIsDefaultPJ
|
||||
@@ -384,6 +411,24 @@ class Order extends MY_Controller
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($branch_is_stemcell == 'Y') {
|
||||
$sql_stemcell = "INSERT INTO t_orderstemcell (
|
||||
T_OrderStemcellT_OrderHeaderID,
|
||||
T_OrderStemcellCreated,
|
||||
T_OrderStemcellCreatedUserID
|
||||
) VALUES (?, NOW(), ?)";
|
||||
$query_stemcell = $this->db_smartone->query($sql_stemcell, [$header_id, $userid]);
|
||||
if (!$query_stemcell) {
|
||||
$this->db_smartone->trans_rollback();
|
||||
$this->insert_log_error($this->db_smartone->last_query(), ['INSERT_T_ORDERSTEMCELL', 'order/save'], [
|
||||
'header_id' => $header_id,
|
||||
'error' => $this->db_smartone->error()
|
||||
]);
|
||||
$this->sys_error_db(["status" => "ERR", "message" => "error insert t_orderstemcell | " . $this->db_smartone->error()["message"], "debug" => $this->db_smartone->last_query()]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$references = [];
|
||||
if (isset($prm['reference'])) {
|
||||
$references = $prm['reference'];
|
||||
|
||||
12
sql/t_orderstemcell.sql
Normal file
12
sql/t_orderstemcell.sql
Normal file
@@ -0,0 +1,12 @@
|
||||
-- Tabel untuk menyimpan flag bahwa order ini adalah order stemcell.
|
||||
-- Disimpan saat order dibuat agar tidak terpengaruh perubahan flag M_BranchIsSteCell di masa mendatang.
|
||||
-- Tanggal: 2026-06-30
|
||||
|
||||
CREATE TABLE IF NOT EXISTS t_orderstemcell (
|
||||
T_OrderStemcellID INT NOT NULL AUTO_INCREMENT,
|
||||
T_OrderStemcellT_OrderHeaderID INT NOT NULL,
|
||||
T_OrderStemcellCreated DATETIME NOT NULL,
|
||||
T_OrderStemcellCreatedUserID INT NOT NULL,
|
||||
PRIMARY KEY (T_OrderStemcellID),
|
||||
UNIQUE KEY uq_orderstemcell_header (T_OrderStemcellT_OrderHeaderID)
|
||||
);
|
||||
Reference in New Issue
Block a user