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