Auto-create missing group result mapping
This commit is contained in:
@@ -4627,7 +4627,7 @@ class Resultentry extends MY_Controller
|
||||
return $row_dt_group[0];
|
||||
}
|
||||
|
||||
$sql = "SELECT T_OrderDetailT_OrderHeaderID
|
||||
$sql = "SELECT T_OrderDetailT_OrderHeaderID, T_OrderDetailT_TestID
|
||||
FROM t_orderdetail
|
||||
WHERE T_OrderDetailID = ? AND T_OrderDetailIsActive = 'Y' LIMIT 1";
|
||||
$query = $this->db_onedev->query($sql, [$orderdetail_id]);
|
||||
@@ -4639,14 +4639,21 @@ class Resultentry extends MY_Controller
|
||||
return [];
|
||||
}
|
||||
$orderheader_id = $rows[0]['T_OrderDetailT_OrderHeaderID'];
|
||||
$test_id = $rows[0]['T_OrderDetailT_TestID'];
|
||||
|
||||
$sql = "SELECT T_OrderHeaderGroupResultID, T_OrderHeaderGroupResultDetails
|
||||
FROM t_orderheader_group_result
|
||||
$sql = "SELECT
|
||||
gr.Group_ResultID,
|
||||
gr.Group_ResultName
|
||||
FROM group_resultdetail grd
|
||||
JOIN group_result gr
|
||||
ON grd.Group_ResultDetailGroup_ResultID = gr.Group_ResultID
|
||||
AND gr.Group_ResultIsActive = 'Y'
|
||||
WHERE
|
||||
T_OrderHeaderGroupResultT_OrderHeaderID = ? AND
|
||||
T_OrderHeaderGroupResultIsActive = 'Y'
|
||||
ORDER BY T_OrderHeaderGroupResultID ASC LIMIT 1";
|
||||
$query = $this->db_onedev->query($sql, [$orderheader_id]);
|
||||
grd.Group_ResultDetailT_TestID = ? AND
|
||||
grd.Group_ResultDetailIsActive = 'Y'
|
||||
ORDER BY gr.Group_ResultID ASC
|
||||
LIMIT 1";
|
||||
$query = $this->db_onedev->query($sql, [$test_id]);
|
||||
if (!$query) {
|
||||
return false;
|
||||
}
|
||||
@@ -4654,8 +4661,54 @@ class Resultentry extends MY_Controller
|
||||
if (count($rows) <= 0) {
|
||||
return [];
|
||||
}
|
||||
$group_result_id = $rows[0]['T_OrderHeaderGroupResultID'];
|
||||
$group_result_details = trim((string)$rows[0]['T_OrderHeaderGroupResultDetails']);
|
||||
$target_group_result_id = $rows[0]['Group_ResultID'];
|
||||
$target_group_result_name = $rows[0]['Group_ResultName'];
|
||||
|
||||
$sql = "SELECT
|
||||
T_OrderHeaderGroupResultID,
|
||||
T_OrderHeaderGroupResultDetails
|
||||
FROM t_orderheader_group_result
|
||||
WHERE
|
||||
T_OrderHeaderGroupResultT_OrderHeaderID = ? AND
|
||||
T_OrderHeaderGroupResultGroup_ResultID = ? AND
|
||||
(T_OrderHeaderGroupResultT_TestID = ? OR T_OrderHeaderGroupResultT_TestID = 0) AND
|
||||
T_OrderHeaderGroupResultIsActive = 'Y'
|
||||
ORDER BY IF(T_OrderHeaderGroupResultT_TestID = ?, 0, 1), T_OrderHeaderGroupResultID ASC
|
||||
LIMIT 1";
|
||||
$query = $this->db_onedev->query($sql, [$orderheader_id, $target_group_result_id, $test_id, $test_id]);
|
||||
if (!$query) {
|
||||
return false;
|
||||
}
|
||||
$rows = $query->result_array();
|
||||
$group_result_id = 0;
|
||||
$group_result_details = '';
|
||||
if (count($rows) > 0) {
|
||||
$group_result_id = $rows[0]['T_OrderHeaderGroupResultID'];
|
||||
$group_result_details = trim((string)$rows[0]['T_OrderHeaderGroupResultDetails']);
|
||||
}
|
||||
else {
|
||||
$sql = "INSERT INTO t_orderheader_group_result (
|
||||
T_OrderHeaderGroupResultT_OrderHeaderID,
|
||||
T_OrderHeaderGroupResultGroup_ResultID,
|
||||
T_OrderHeaderGroupResultGroup_ResultName,
|
||||
T_OrderHeaderGroupResultT_TestID,
|
||||
T_OrderHeaderGroupResultDetails,
|
||||
T_OrderHeaderGroupResultCreated
|
||||
) VALUES (?, ?, ?, ?, ?, NOW())";
|
||||
$query = $this->db_onedev->query($sql, [
|
||||
$orderheader_id,
|
||||
$target_group_result_id,
|
||||
$target_group_result_name,
|
||||
$test_id,
|
||||
(string)$orderdetail_id
|
||||
]);
|
||||
if (!$query) {
|
||||
return false;
|
||||
}
|
||||
$group_result_id = intval($this->db_onedev->insert_id());
|
||||
$group_result_details = (string)$orderdetail_id;
|
||||
}
|
||||
|
||||
$details_list = $group_result_details === '' ? [] : explode(',', str_replace(' ', '', $group_result_details));
|
||||
if (!in_array((string)$orderdetail_id, $details_list, true)) {
|
||||
$details_list[] = (string)$orderdetail_id;
|
||||
|
||||
Reference in New Issue
Block a user