From 76d486409d986fac89943f0987c4fb2f8af059ff Mon Sep 17 00:00:00 2001 From: padmanto Date: Fri, 14 Aug 2026 13:27:30 +0700 Subject: [PATCH] ss_gw.php: clinic-service_req optional start_date/end_date filter - date range filter on T_OrderHeaderDate via prepared params - ids stays supported (gateway harvest path unchanged) - empty ids + no dates keeps legacy empty result - isset guard on ids so date-only calls emit no PHP notice --- ss_gw.php | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/ss_gw.php b/ss_gw.php index 97ee5b3..bc862b9 100644 --- a/ss_gw.php +++ b/ss_gw.php @@ -67,9 +67,27 @@ if ($p["cmd"] == "service_req") { if ($p["cmd"] == "clinic-service_req") { $resp = $dbh->connect(); $dbh->exit_if_error($resp[0], $resp[1]); - $ids = implode(",", $p["ids"]); - if ($ids == "") { - $ids = "0"; + $ids = isset($p["ids"]) ? implode(",", $p["ids"]) : ""; + $start_date = isset($p["start_date"]) ? $p["start_date"] : ""; + $end_date = isset($p["end_date"]) ? $p["end_date"] : ""; + $params = []; + $where_date = ""; + if ($start_date != "" || $end_date != "") { + if ($start_date == "") { + $start_date = date("Y-m-d"); + } + if ($end_date == "") { + $end_date = $start_date; + } + $params = [$start_date . " 00:00:00", $end_date . " 23:59:59"]; + $where_date = " and T_OrderHeaderDate >= ? and T_OrderHeaderDate <= ? "; + } + $where_ids = ""; + if ($ids != "") { + $where_ids = " and T_OrderDetailT_OrderHeaderID in ($ids) "; + } else if ($start_date == "" && $end_date == "") { + //legacy: no ids and no date -> empty result + $where_ids = " and T_OrderDetailT_OrderHeaderID in (0) "; } $sql = "select T_OrderDetailUserID, @@ -85,16 +103,17 @@ if ($p["cmd"] == "clinic-service_req") { from t_orderdetail join t_orderheader - on T_OrderDetailT_OrderHeaderID in ($ids) - and T_OrderHeaderID = T_OrderDetailT_OrderHeaderID + on T_OrderHeaderID = T_OrderDetailT_OrderHeaderID and T_OrderDetailIsActive='Y' and T_OrderDetailPrice > 0 + $where_ids + $where_date join m_user on T_OrderDetailUserID = M_UserID join t_test on T_OrderDetailT_TestID = T_TestID and T_TestIsActive = 'Y' join t_testgroup on T_TestT_TestGroupID = T_TestGroupID and T_TestGroupT_ServiceID <> 1 and T_TestGroupIsActive = 'Y'"; - $resp = $dbh->query($sql); + $resp = $dbh->query($sql, $params); $dbh->exit_if_error($resp[0], $resp[1]); $dbh->jsonReply($resp, $dbh->info()); exit;