db_smartone = $this->load->database("onedev", true); } function _add_mou(&$companies) { if (count($companies) == 0) { return; } $company_list= "-1"; foreach($companies as $idx => $c) { $company_list .= ", " . $c["M_PatientTypeID"]; if (! isset($companies[$idx]["mou"])) $companies[$idx]["mou"] = array(); } $sql = "select * from m_moucompany where M_MouCompanyM_PatientTypeID in ( $company_list ) and ( M_MouCompanyStartDate <= now() and M_MouCompanyEndDate >= now() ) and M_MouCompanyIsActive = 'Y'"; $query = $this->db_smartone->query($sql); if ($query) { $rows= $query->result_array(); foreach($rows as $r) { $patientTypeID= $r["M_MouCompanyM_PatientTypeID"]; foreach($companies as $idx => $c) { if($c["M_PatientTypeID"] == $patientTypeID) { $companies[$idx]["mou"][] = $r; } } } } else { $this->sys_error_db("m_moucompany mou",$this->db_smartone); exit; } } public function search() { $prm = $this->sys_input; $max_rst = 12; $tot_count =0; $q = [ 'search' => '%' ]; if ($prm['search'] != '') { $q['search'] = "%{$prm['search']}%"; } // QUERY TOTAL $sql = "select count(*) total from m_company join m_mou on M_MouM_CompanyID = M_CompanyID and M_MouIsActive = 'Y' and M_MouIsApproved = 'Y' and M_MouStartDate <= date(now()) and M_MouEndDate >= date(now()) AND M_MouIsReleased = 'Y' where M_CompanyIsActive = 'Y' and M_CompanyName like ?"; $query = $this->db_smartone->query($sql, array($q['search'])); if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_patient count",$this->db_smartone); exit; } $sql = "select M_CompanyID, M_CompanyName, IFNULL( concat('[', group_concat( json_object('M_MouID', M_MouID, 'M_MouName', M_MouName, 'M_MouStartDate', M_MouStartDate, 'M_MouEndDate', M_MouEndDate, 'M_MouNote', M_MouNote, 'M_MouIsBill', M_MouIsBill, 'M_MouEmail', M_MouEmail, 'M_MouIsDefault', M_MouIsDefault, 'M_MouEmailIsDefault', M_MouEmailIsDefault, 'delivery_email_code', `fn_fo_delivery_code`('MOU', 'EMAIL', '0')) ), ']'), '[]') as mou from m_company join m_mou on M_MouM_CompanyID = M_CompanyID and M_MouIsActive = 'Y' and M_MouIsApproved = 'Y' and M_MouStartDate <= date(now()) and M_MouEndDate >= date(now()) AND M_MouIsReleased = 'Y' where M_CompanyIsActive = 'Y' and M_CompanyName like ? group by m_companyid"; $query = $this->db_smartone->query($sql, array($q['search'])); if ($query) { $rows = $query->result_array(); foreach ($rows as $k => $v) $rows[$k]['mou'] = json_decode($v['mou']); $result = array("total" => $tot_count, "records" => $rows, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_company rows",$this->db_smartone); exit; } } public function search_default() { $prm = $this->sys_input; $sql = "SELECT M_MouID, M_MouM_CompanyID FROM m_mou JOIN m_company ON M_CompanyID = M_MouM_CompanyID ANd M_CompanyIsDefault = 'Y' ANd M_CompanyIsActive = 'Y' WHERE M_MouIsActive = 'Y' ANd M_MouIsDefault = 'Y' AND M_MouIsApproved = 'Y' AND M_MouIsReleased = 'Y' AND M_MouStartDate <= date(now()) AND M_MouEndDate >= date(now())"; $query = $this->db_smartone->query($sql); if ($query) { $rows = $query->row(); $sql = "select M_CompanyID, M_CompanyName, IFNULL( concat('[', group_concat( json_object('M_MouID', M_MouID, 'M_MouName', M_MouName, 'M_MouStartDate', M_MouStartDate, 'M_MouEndDate', M_MouEndDate, 'M_MouNote', M_MouNote, 'M_MouIsBill', M_MouIsBill, 'M_MouEmail', M_MouEmail, 'M_MouIsDefault', M_MouIsDefault, 'M_MouEmailIsDefault', M_MouEmailIsDefault, 'delivery_email_code', `fn_fo_delivery_code`('MOU', 'EMAIL', '0')) ), ']'), '[]') as mou from m_company join m_mou on M_MouM_CompanyID = M_CompanyID and M_MouIsActive = 'Y' and M_MouIsApproved = 'Y' and M_MouStartDate <= date(now()) and M_MouEndDate >= date(now()) AND M_MouIsReleased = 'Y' where M_CompanyID = ? group by m_companyid"; $query = $this->db_smartone->query($sql, array($rows->M_MouM_CompanyID)); $rows2 = $query->result_array(); foreach ($rows2 as $k => $v) $rows2[$k]['mou'] = json_decode($v['mou']); $result = array("total" => 1, "records" => $rows2, "total_display" => sizeof($rows)); $this->sys_ok($result); } else { $this->sys_error_db("m_company rows", $this->db_smartone); exit; } } public function search_() { $prm = $this->sys_input; $search = $prm["search"]; $sql_param = array("%$search%"); $sql = "select count(*) total from m_patienttype where M_PatientTypeName like ? and M_PatientTypeIsActive = 'Y'"; $query = $this->db_smartone->query($sql, $sql_param); $tot_count =0; if ($query) { $tot_count = $query->result_array()[0]["total"]; } else { $this->sys_error_db("m_patienttype count", $this->db_smartone); exit; } $sql = "select M_PatientTypeID, M_PatientTypeName from m_patienttype where M_PatientTypeName like ? and M_PatientTypeIsActive = 'Y' limit 0,10"; $query = $this->db_smartone->query($sql,$sql_param); $rows = $query->result_array(); $this->_add_mou($rows); $result = array("total" => $tot_count, "records" => $rows ); $this->sys_ok($result); exit; } }