ULLYZB - add payment status to patient list

This commit is contained in:
sas.fajri
2026-05-28 14:08:08 +07:00
parent 08d08e6bca
commit 512f649616

View File

@@ -186,18 +186,18 @@ class Patient extends MY_Controller
$enddate = $prm['enddate']; $enddate = $prm['enddate'];
$search = $prm["search"]; $search = $prm["search"];
$search = str_replace("'", "\\'", $search); $search = str_replace("'", "\\'", $search);
$status = $prm["status"]; $status = $prm["status"];
$branchid = $prm["branchid"]; $branchid = $prm["branchid"];
$number_limit = 20; $number_limit = 20;
$number_offset = ($prm['current_page'] - 1) * $number_limit; $number_offset = ($prm['current_page'] - 1) * $number_limit;
$filter_date = " AND DATE(T_OrderHeaderDate) BETWEEN '{$startdate}' AND '{$enddate}'"; $filter_date = " AND DATE(T_OrderHeaderDate) BETWEEN '{$startdate}' AND '{$enddate}'";
if ($search != '' || ($doctorid != 0 || $doctorid != '0')) { if ($search != '' || ($doctorid != 0 || $doctorid != '0')) {
$prev_date = date('Y-m-d', strtotime('-30 day', strtotime($xdate))); $prev_date = date('Y-m-d', strtotime('-30 day', strtotime($xdate)));
//echo $prev_date; //echo $prev_date;
//$filter_date = " AND DATE(T_OrderHeaderDate) BETWEEN '{$prev_date}' AND '{$xdate}'"; //$filter_date = " AND DATE(T_OrderHeaderDate) BETWEEN '{$prev_date}' AND '{$xdate}'";
} }
$where = " T_OrderHeaderIsActive = 'Y' $filter_date "; $where = " T_OrderHeaderIsActive = 'Y' $filter_date ";
if ($search != '') if ($search != '')
$where .= " AND ( M_PatientName LIKE '%{$search}%' OR T_OrderHeaderLabNumber LIKE '%{$search}%' )"; $where .= " AND ( M_PatientName LIKE '%{$search}%' OR T_OrderHeaderLabNumber LIKE '%{$search}%' )";
@@ -208,39 +208,43 @@ class Patient extends MY_Controller
$filter_doctor_code_search = ''; $filter_doctor_code_search = '';
if ($doctorcode != '') { if ($doctorcode != '') {
$filter_doctor_code_count = " UNION $filter_doctor_code_count = " UNION
SELECT T_OrderHeaderID SELECT T_OrderHeaderID
FROM t_orderheader FROM t_orderheader
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID AND Last_StatusPaymentIsActive = 'Y'
WHERE
T_OrderHeaderIsActive = 'Y' WHERE
$filter_date T_OrderHeaderIsActive = 'Y'
group by T_OrderHeaderID"; $filter_date
$filter_doctor_code_search = " UNION group by T_OrderHeaderID";
SELECT T_OrderHeaderID, T_OrderHeaderLabNumber, '' as cito, $filter_doctor_code_search = " UNION
'' as rownumber, SELECT T_OrderHeaderID, T_OrderHeaderLabNumber, '' as cito,
M_PatientNoReg, '' as rownumber,
M_PatientNoReg,
DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') as M_PatientDOB, DATE_FORMAT(M_PatientDOB, '%d-%m-%Y') as M_PatientDOB,
concat(M_TitleName,'. ',M_PatientName) as patient_fullname, concat(M_TitleName,'. ',M_PatientName) as patient_fullname,
CorporateName AS M_CompanyName, CorporateName AS M_CompanyName,
Mgm_McuLabel AS M_MouName, Mgm_McuLabel AS M_MouName,
DATE(T_OrderHeaderDate) as order_date, DATE(T_OrderHeaderDate) as order_date,
T_OrderHeaderTotal as totalbill, T_OrderHeaderTotal as totalbill,
0 as paid, IFNULL(Last_StatusPaymentPaid,0) as paid,
'' as unpaid, IFNULL(Last_StatusPaymentUnpaid,T_OrderHeaderTotal) as unpaid,
'' as flaglunas, IFNULL(Last_StatusPaymentIsLunas,'N') as flaglunas,
'' as last_status, '' as last_status,
'' as notes, '' as notes,
'' as T_OrderHeaderIsCito, '' as T_OrderHeaderIsCito,
'' as mindp_percent, '' as mindp_percent,
'' as test , '' as test ,
'' as janji, '' as janji,
'' as mindp_amount, '' as mindp_amount,
'' as status, CASE
'' as delivery, WHEN IFNULL(Last_StatusPaymentIsLunas,'N') = 'Y' THEN 'LUNAS'
'' as bahan_belum, ELSE 'BELUM LUNAS'
'' as external_numbering, END as status,
'' as delivery,
'' as bahan_belum,
'' as external_numbering,
'N' as not_sampled, 'N' as not_sampled,
'' as username, '' as username,
'' as status_coming, '' as status_coming,
@@ -248,17 +252,18 @@ class Patient extends MY_Controller
'' as date_coming_ina, '' as date_coming_ina,
'' as order_datetime '' as order_datetime
FROM t_orderheader FROM t_orderheader
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
JOIN corporate ON T_OrderHeaderCorporateID = CorporateID JOIN corporate ON T_OrderHeaderCorporateID = CorporateID
left JOIN m_title ON M_PatientM_TitleID = M_TitleID LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID AND Last_StatusPaymentIsActive = 'Y'
LEFT JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y' left JOIN m_title ON M_PatientM_TitleID = M_TitleID
LEFT JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
WHERE
T_OrderHeaderIsActive = 'Y' WHERE
$filter_date T_OrderHeaderIsActive = 'Y'
group by T_OrderHeaderID"; $filter_date
} group by T_OrderHeaderID";
}
if ($companyid != 0 || $companyid != '0') { if ($companyid != 0 || $companyid != '0') {
$filter_company = " AND T_OrderHeaderCorporateID = {$companyid}"; $filter_company = " AND T_OrderHeaderCorporateID = {$companyid}";
@@ -274,17 +279,18 @@ class Patient extends MY_Controller
} }
$sql = " SELECT count(*) as total $sql = " SELECT count(*) as total
FROM( FROM(
SELECT T_OrderHeaderID SELECT T_OrderHeaderID
FROM t_orderheader FROM t_orderheader
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
LEFT JOIN m_branch ON M_BranchID = T_OrderHeaderM_BranchID LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID AND Last_StatusPaymentIsActive = 'Y'
$filter_test LEFT JOIN m_branch ON M_BranchID = T_OrderHeaderM_BranchID
WHERE $filter_test
$where $filter_doctor $filter_company $filter_branch WHERE
group by T_OrderHeaderID $where $filter_doctor $filter_company $filter_branch
$filter_doctor_code_count group by T_OrderHeaderID
)x"; $filter_doctor_code_count
)x";
//echo $sql; //echo $sql;
$query = $this->db_onedev->query($sql, $sql_param); $query = $this->db_onedev->query($sql, $sql_param);
@@ -310,22 +316,25 @@ class Patient extends MY_Controller
CONCAT(IFNULL(M_TitleName, ''), IF(M_TitleName IS NULL, '', '. '), M_PatientName) AS patient_fullname, CONCAT(IFNULL(M_TitleName, ''), IF(M_TitleName IS NULL, '', '. '), M_PatientName) AS patient_fullname,
CONCAT(CorporateName,' (', Mgm_McuLabel ,')') as CorporateName, CONCAT(CorporateName,' (', Mgm_McuLabel ,')') as CorporateName,
Mgm_McuLabel AS M_MouName, Mgm_McuLabel AS M_MouName,
DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y %H:%i') as order_date, DATE_FORMAT(T_OrderHeaderDate, '%d-%m-%Y %H:%i') as order_date,
T_OrderHeaderTotal as totalbill, T_OrderHeaderTotal as totalbill,
0 as paid, IFNULL(Last_StatusPaymentPaid,0) as paid,
'' as unpaid, IFNULL(Last_StatusPaymentUnpaid,T_OrderHeaderTotal) as unpaid,
'' as flaglunas, IFNULL(Last_StatusPaymentIsLunas,'N') as flaglunas,
'' as last_status, '' as last_status,
'' as notes, '' as notes,
'' as T_OrderHeaderIsCito, '' as T_OrderHeaderIsCito,
'' as mindp_percent, '' as mindp_percent,
'' as test , '' as test ,
GROUP_CONCAT(distinct CONCAT(DATE_FORMAT(T_OrderPromisesDateTime, '%d-%m-%Y %H:%i'), ' - ', T_OrderPromisesID) SEPARATOR ', ') as promises, GROUP_CONCAT(distinct CONCAT(DATE_FORMAT(T_OrderPromisesDateTime, '%d-%m-%Y %H:%i'), ' - ', T_OrderPromisesID) SEPARATOR ', ') as promises,
'' as mindp_amount, '' as mindp_amount,
'' as status, CASE
'' as delivery, WHEN IFNULL(Last_StatusPaymentIsLunas,'N') = 'Y' THEN 'LUNAS'
'' as bahan_belum, ELSE 'BELUM LUNAS'
'' as external_numbering, END as status,
'' as delivery,
'' as bahan_belum,
'' as external_numbering,
'N' as not_sampled, 'N' as not_sampled,
M_StaffName as username, M_StaffName as username,
'' as status_coming, '' as status_coming,
@@ -344,12 +353,13 @@ class Patient extends MY_Controller
IFNULL(M_OrderTypeName, '-') as order_type_name, IFNULL(M_OrderTypeName, '-') as order_type_name,
IFNULL(M_OrderTypeCode, '-') as order_type_code IFNULL(M_OrderTypeCode, '-') as order_type_code
FROM t_orderheader FROM t_orderheader
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
JOIN corporate ON T_OrderHeaderCorporateID = CorporateID JOIN corporate ON T_OrderHeaderCorporateID = CorporateID
LEFT JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID AND CorporateTypeIsActive = 'Y' LEFT JOIN corporate_type ON CorporateCorporateTypeID = CorporateTypeID AND CorporateTypeIsActive = 'Y'
LEFT JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderAddOnIsActive = 'Y' LEFT JOIN last_statuspayment ON Last_StatusPaymentT_OrderHeaderID = T_OrderHeaderID AND Last_StatusPaymentIsActive = 'Y'
LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID LEFT JOIN t_orderheaderaddon ON T_OrderHeaderAddOnT_OrderHeaderID = T_OrderHeaderID AND T_OrderHeaderAddOnIsActive = 'Y'
LEFT JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y' LEFT JOIN m_title ON M_PatientM_TitleID = M_TitleID
LEFT JOIN mgm_mcu ON T_OrderHeaderMgm_McuID = Mgm_McuID AND Mgm_McuIsActive = 'Y'
LEFT JOIN t_priceheader priceheader_mgm ON Mgm_McuT_PriceHeaderID = priceheader_mgm.T_PriceHeaderID AND priceheader_mgm.T_PriceHeaderIsActive = 'Y' LEFT JOIN t_priceheader priceheader_mgm ON Mgm_McuT_PriceHeaderID = priceheader_mgm.T_PriceHeaderID AND priceheader_mgm.T_PriceHeaderIsActive = 'Y'
LEFT JOIN t_priceheader priceheader_addon ON T_OrderHeaderAddOnT_PriceHeaderID = priceheader_addon.T_PriceHeaderID AND priceheader_addon.T_PriceHeaderIsActive = 'Y' LEFT JOIN t_priceheader priceheader_addon ON T_OrderHeaderAddOnT_PriceHeaderID = priceheader_addon.T_PriceHeaderID AND priceheader_addon.T_PriceHeaderIsActive = 'Y'
LEFT JOIN form_riwayat_pasien ON FormRiwayatPasienT_OrderHeaderID = T_OrderHeaderID AND FormRiwayatPasienIsActive = 'Y' LEFT JOIN form_riwayat_pasien ON FormRiwayatPasienT_OrderHeaderID = T_OrderHeaderID AND FormRiwayatPasienIsActive = 'Y'
@@ -360,10 +370,10 @@ class Patient extends MY_Controller
LEFT JOIN t_ordertype ON T_OrderTypeT_OrderHeaderID = T_OrderHeaderID LEFT JOIN t_ordertype ON T_OrderTypeT_OrderHeaderID = T_OrderHeaderID
LEFT JOIN m_ordertype ON T_OrderTypeM_OrderTypeID = M_OrderTypeID AND M_OrderTypeIsActive = 'Y' LEFT JOIN m_ordertype ON T_OrderTypeM_OrderTypeID = M_OrderTypeID AND M_OrderTypeIsActive = 'Y'
$filter_test $filter_test
WHERE $where $filter_doctor $filter_company $filter_branch WHERE $where $filter_doctor $filter_company $filter_branch
group by T_OrderHeaderID group by T_OrderHeaderID
$filter_doctor_code_search $filter_doctor_code_search
) x ) x
ORDER BY T_OrderHeaderID ASC ORDER BY T_OrderHeaderID ASC
limit $number_limit offset $number_offset limit $number_limit offset $number_offset
"; ";