From bfff0267f6ddf184404feb0db92663e0e1126555 Mon Sep 17 00:00:00 2001 From: "sas.fajri" Date: Wed, 10 Jun 2026 17:17:04 +0700 Subject: [PATCH] 10062601CPONE - sync filter tanggal result entry electromedis v9 --- .../Resultentry.php | 120 ++++++++---------- 1 file changed, 50 insertions(+), 70 deletions(-) diff --git a/application/controllers/mockup/resultentrysoelectromedis-v9-cpone/Resultentry.php b/application/controllers/mockup/resultentrysoelectromedis-v9-cpone/Resultentry.php index 82af79d..750f73b 100644 --- a/application/controllers/mockup/resultentrysoelectromedis-v9-cpone/Resultentry.php +++ b/application/controllers/mockup/resultentrysoelectromedis-v9-cpone/Resultentry.php @@ -179,15 +179,17 @@ class Resultentry extends MY_Controller $search = $prm["search"]; $status = $prm["stationid"]; $startdate = $prm["startdate"]; - $enddate = $prm["enddate"]; - $groupid = 2; - $subgroupid = $prm["subgroupid"]; - $companyid = $prm['companyid']; - $filter_company = ''; - $filter_company_exclude = ""; - if (($companyid != 0 || $companyid != '0') && $prm["switch_exclude"]) - // $filter_company_exclude = "WHERE CorporateID <> {$companyid}"; - $filter_company = "AND T_OrderHeaderCorporateID <> {$companyid}"; + $enddate = $prm["enddate"]; + $groupid = 2; + $subgroupid = $prm["subgroupid"]; + $companyid = $prm['companyid']; + $dateFilter = "(T_OrderHeaderDate >= '{$startdate} 00:00:00' +AND T_OrderHeaderDate < '{$startdate} 23:59:59' )"; + $filter_company = ''; + $filter_company_exclude = ""; + if (($companyid != 0 || $companyid != '0') && $prm["switch_exclude"]) + // $filter_company_exclude = "WHERE CorporateID <> {$companyid}"; + $filter_company = "AND T_OrderHeaderCorporateID <> {$companyid}"; if (($companyid != 0 || $companyid != '0') && !$prm["switch_exclude"]) { $filter_company = " AND T_OrderHeaderCorporateID = {$companyid}"; } @@ -200,28 +202,23 @@ class Resultentry extends MY_Controller //$join_group = "JOIN nat_subgroup ON T_TestNat_SubgroupID = Nat_SubgroupID AND Nat_SubgroupID = {$subgroupid}"; } - if (!isset($prm['current_page'])) - $prm['current_page'] = 1; - - $sql_where = "WHERE (T_SamplingSoDoneDate >= '{$startdate} 00:00:00' -AND T_SamplingSoDoneDate < '{$startdate} 23:59:59' ) AND T_OrderDetailIsActive = 'Y' "; - $number_limit = 10; - $number_offset = ($prm['current_page'] - 1) * $number_limit; - //$sql_param = array(); - /*if ($search != "") { - $sql_where = " WHERE (T_OrderHeaderLabNumber like '%$search%' OR M_PatientName like '%$search%' ) "; - }*/ - $filterTanpaKeyword = ''; - if ($search == "") { - $filterTanpaKeyword = "AND (T_OrderHeaderDate >= '{$startdate} 00:00:00' -AND T_OrderHeaderDate < '{$startdate} 23:59:59' ) "; - } - $filterDenganKeyword = ''; - if ($search != "") { - $filterDenganKeyword = " AND (T_OrderHeaderDate >= '{$startdate} 00:00:00' -AND T_OrderHeaderDate < '{$startdate} 23:59:59' ) AND (T_OrderHeaderLabNumber like '%$search%' OR M_PatientName like '%$search%' ) "; - - } + if (!isset($prm['current_page'])) + $prm['current_page'] = 1; + $number_limit = 10; + $number_offset = ($prm['current_page'] - 1) * $number_limit; + //$sql_param = array(); + /*if ($search != "") { + $sql_where = " WHERE (T_OrderHeaderLabNumber like '%$search%' OR M_PatientName like '%$search%' ) "; + }*/ + $filterTanpaKeyword = ''; + if ($search == "") { + $filterTanpaKeyword = "AND {$dateFilter} "; + } + $filterDenganKeyword = ''; + if ($search != "") { + $filterDenganKeyword = " AND {$dateFilter} AND (T_OrderHeaderLabNumber like '%$search%' OR M_PatientName like '%$search%' ) "; + + } $sql = "SELECT count(*) as total @@ -1233,19 +1230,9 @@ AND T_OrderHeaderDate < '{$startdate} 23:59:59' ) AND (T_OrderHeaderLabNumber li exit; } - $search = $prm["search"]; - //$status = $prm["stationid"]; - $startdate = $prm["startdate"]; - $enddate = $prm["enddate"]; - - $sql_where = "WHERE - DATE(T_SamplingSoDoneDate) = '{$startdate}' AND - T_OrderDetailIsActive = 'Y' AND - T_OrderDetailT_TestIsResult = 'Y' AND - T_OrderDetailT_TestIsActive = 'Y' - "; - - $rows = []; + $startdate = $prm["startdate"]; + + $rows = []; // $query = "SELECT // T_TestID as id, // T_TestName as name @@ -1290,43 +1277,36 @@ AND T_OrderHeaderDate < '{$startdate} 23:59:59' ) AND (T_OrderHeaderLabNumber li JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID ";*/ - $query = "WITH active_sampling AS ( - SELECT s.T_SamplingSoT_OrderHeaderID AS order_header_id - FROM t_samplingso s - WHERE s.T_SamplingSoFlag = 'D' - AND s.T_SamplingSoDoneDate = '{$startdate}' - ), - eligible_tests AS ( - SELECT DISTINCT grd.Group_ResultDetailT_TestID AS test_id - FROM group_result gr - JOIN group_resultdetail grd - ON grd.Group_ResultDetailGroup_ResultID = gr.Group_ResultID + $query = "WITH eligible_tests AS ( + SELECT DISTINCT grd.Group_ResultDetailT_TestID AS test_id + FROM group_result gr + JOIN group_resultdetail grd + ON grd.Group_ResultDetailGroup_ResultID = gr.Group_ResultID WHERE gr.Group_ResultIsActive = 'Y' AND grd.Group_ResultDetailIsActive = 'Y' AND gr.Group_ResultName IN ('Elektromedik','Spirometri','Audiometri') ) SELECT DISTINCT t.T_TestID AS id, t.T_TestName AS name - FROM t_orderdetail od - JOIN t_test t - ON t.T_TestID = od.T_OrderDetailT_TestID - JOIN t_orderheader oh - ON oh.T_OrderHeaderID = od.T_OrderDetailT_OrderHeaderID - JOIN active_sampling sas - ON sas.order_header_id = oh.T_OrderHeaderID - JOIN eligible_tests et - ON et.test_id = t.T_TestID - LEFT JOIN so_resultentry sr - ON sr.So_ResultEntryT_OrderDetailID = od.T_OrderDetailID + FROM t_orderdetail od + JOIN t_test t + ON t.T_TestID = od.T_OrderDetailT_TestID + JOIN t_orderheader oh + ON oh.T_OrderHeaderID = od.T_OrderDetailT_OrderHeaderID + JOIN eligible_tests et + ON et.test_id = t.T_TestID + LEFT JOIN so_resultentry sr + ON sr.So_ResultEntryT_OrderDetailID = od.T_OrderDetailID AND sr.So_ResultEntryIsActive = 'Y' LEFT JOIN m_doctor d ON d.M_DoctorID = sr.So_ResultEntryM_DoctorID JOIN corporate c ON c.CorporateID = oh.T_OrderHeaderCorporateID - JOIN m_patient p - ON p.M_PatientID = oh.T_OrderHeaderM_PatientID - WHERE od.T_OrderDetailIsActive = 'Y' - AND od.T_OrderDetailT_TestIsResult = 'Y';"; + JOIN m_patient p + ON p.M_PatientID = oh.T_OrderHeaderM_PatientID + WHERE od.T_OrderDetailIsActive = 'Y' + AND od.T_OrderDetailT_TestIsResult = 'Y' + AND DATE(oh.T_OrderHeaderDate) = '{$startdate}';"; //echo $query; $rows = $this->db_onedev->query($query)->result_array(); //print_r($statuses);