PageRenderTime 25ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 1ms

/application/controllers/Reports.php

https://gitlab.com/dmsapiens/physicians
PHP | 327 lines | 269 code | 56 blank | 2 comment | 40 complexity | fe9bdd4c710f7ed9d0d1ff3cc73e34ba MD5 | raw file
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. class Reports extends CI_Controller {
  3. function __construct()
  4. {
  5. parent::__construct();
  6. $this->data = array();
  7. $this->template->set_layout('baseTemplate');
  8. }
  9. public function doctors()
  10. {
  11. if (!$this->session->userdata('logged_in')) {
  12. redirect('/');
  13. }
  14. $id = (int)$_GET['id'];
  15. if ($id == 0) {
  16. $id = 'all';
  17. } else {
  18. if (!$id) return;
  19. if (!is_numeric($id)) return;
  20. }
  21. if ($id == 'all') {
  22. $q = $this->db->query("SELECT * FROM sr_doctors WHERE client_id = ?",array($this->session->userdata['logged_in']['client_id']));
  23. } else {
  24. $q = $this->db->query("SELECT * FROM sr_doctors WHERE FIND_IN_SET($id,location) AND client_id = ?",array($this->session->userdata['logged_in']['client_id']));
  25. }
  26. $h = '<option value="all">All</option>';
  27. if ($q) {
  28. $r = $q->result_array();
  29. foreach ($r as $row) {
  30. $h .= '<option value="'.$row['id'].'">'.$row['firstname'].' '.$row['lastname'].'</option>';
  31. }
  32. }
  33. echo $h;
  34. exit;
  35. }
  36. public function index()
  37. {
  38. if (!$this->session->userdata('logged_in')) {
  39. redirect('/');
  40. }
  41. $this->data = array('rating1'=> 0,'rating2'=> 0,'rating3'=> 0,'rating4'=> 0,'rating5'=> 0);
  42. $ratinglist = $this->misc->getratinglist();
  43. foreach($ratinglist as $row) {
  44. $rating = 'rating'.$row['rating_no'];
  45. $this->data[$rating] = $row['counts'];
  46. }
  47. $searchdata['timeframe'] = "";
  48. if($this->input->get_post('timeframe')!='')
  49. {
  50. $searchdata['timeframe'] = $this->input->post('timeframe');
  51. }
  52. $this->data['timeframe'] = $searchdata['timeframe'];
  53. $searchdata['fromdate'] = "";
  54. if($this->input->get_post('fromdate')!='')
  55. {
  56. $searchdata['fromdate'] = $this->input->post('fromdate');
  57. }
  58. $this->data['fromdate'] = $searchdata['fromdate'];
  59. $searchdata['todate'] = "";
  60. if($this->input->get_post('todate')!='')
  61. {
  62. $searchdata['todate'] = $this->input->post('todate');
  63. }
  64. $this->data['todate'] = $searchdata['todate'];
  65. $searchdata['rating'] = "";
  66. if($this->input->get_post('rating')!='')
  67. {
  68. $searchdata['rating'] = $this->input->post('rating');
  69. }
  70. $this->data['rating'] = $searchdata['rating'];
  71. $searchdata['havemail'] = "";
  72. if($this->input->get_post('havemail')!='')
  73. {
  74. $searchdata['havemail'] = $this->input->post('havemail');
  75. }
  76. $this->data['havemail'] = $searchdata['havemail'];
  77. $searchdata['format'] = "";
  78. if($this->input->get_post('format')!='')
  79. {
  80. $searchdata['format'] = $this->input->post('format');
  81. }
  82. $this->data['format'] = $searchdata['format'];
  83. if($this->input->get_post('filterterm')=='')
  84. {
  85. $filterterm=0;
  86. $this->session->unset_userdata('searchterm');
  87. }
  88. $searchdata['doctor'] = "";
  89. if($this->input->get_post('doctor')!='')
  90. {
  91. $searchdata['doctor'] = $this->input->post('doctor');
  92. }
  93. $this->data['doctor'] = $searchdata['doctor'];
  94. if($this->input->get_post('doctor')=='')
  95. {
  96. $searchdata['doctor']='';
  97. $this->session->unset_userdata('doctor');
  98. }
  99. $searchdata['patient'] = "";
  100. if($this->input->get_post('patient')!='')
  101. {
  102. $searchdata['patient'] = $this->input->post('patient');
  103. }
  104. $this->data['patient'] = $searchdata['patient'];
  105. if($this->input->get_post('patient')=='')
  106. {
  107. $searchdata['patient']='';
  108. $this->session->unset_userdata('patient');
  109. }
  110. $searchdata['location'] = "";
  111. if($this->input->get_post('location')!='')
  112. {
  113. $searchdata['location'] = $this->input->post('location');
  114. }
  115. $this->data['location'] = $searchdata['location'];
  116. $this->session->set_userdata('searchdata', $searchdata);
  117. /** Get locations, move this to misc **/
  118. $l = $this->db->query("SELECT id,name FROM sr_locations WHERE client_id = ? ORDER BY id ASC",array($this->session->userdata['logged_in']['client_id']));
  119. $this->data['loc'] = $l->result_array();
  120. $l = $this->db->query("SELECT id,firstname,lastname FROM sr_doctors WHERE client_id = ? ORDER BY id ASC",array($this->session->userdata['logged_in']['client_id']));
  121. $this->data['doctors'] = $l->result_array();
  122. $l = $this->db->query("SELECT DISTINCT(phone_no),id,firstname,lastname FROM sr_newuser WHERE client_id = ? ORDER BY id ASC",array($this->session->userdata['logged_in']['client_id']));
  123. $this->data['patients'] = $l->result_array();
  124. $this->data['total_rows'] = $this->misc->getreportlisttotal($searchdata);
  125. $this->data['starting_no'] = $this->uri->segment(4);
  126. $this->data['reportlist'] = false;
  127. $this->data['default'] = true;
  128. $this->template->build('reports',$this->data);
  129. }
  130. public function showreport()
  131. {
  132. if (!$this->session->userdata('logged_in')) {
  133. redirect('/');
  134. }
  135. $this->data = array('rating1'=> 0,'rating2'=> 0,'rating3'=> 0,'rating4'=> 0,'rating5'=> 0);
  136. $ratinglist = $this->misc->getratinglist();
  137. foreach($ratinglist as $row) {
  138. $rating = 'rating'.$row['rating_no'];
  139. $this->data[$rating] = $row['counts'];
  140. }
  141. $searchdata['timeframe'] = "";
  142. if($this->input->get_post('timeframe')!='')
  143. {
  144. $searchdata['timeframe'] = $this->input->post('timeframe');
  145. }
  146. $this->data['timeframe'] = $searchdata['timeframe'];
  147. $searchdata['fromdate'] = "";
  148. if($this->input->get_post('fromdate')!='')
  149. {
  150. $searchdata['fromdate'] = $this->input->post('fromdate');
  151. }
  152. $this->data['fromdate'] = $searchdata['fromdate'];
  153. $searchdata['todate'] = "";
  154. if($this->input->get_post('todate')!='')
  155. {
  156. $searchdata['todate'] = $this->input->post('todate');
  157. }
  158. $this->data['todate'] = $searchdata['todate'];
  159. $searchdata['rating'] = "";
  160. if($this->input->get_post('rating')!='')
  161. {
  162. $searchdata['rating'] = $this->input->post('rating');
  163. }
  164. $this->data['rating'] = $searchdata['rating'];
  165. $searchdata['havemail'] = "";
  166. if($this->input->get_post('havemail')!='')
  167. {
  168. $searchdata['havemail'] = $this->input->post('havemail');
  169. }
  170. $this->data['havemail'] = $searchdata['havemail'];
  171. $searchdata['format'] = "";
  172. if($this->input->get_post('format')!='')
  173. {
  174. $searchdata['format'] = $this->input->post('format');
  175. }
  176. $this->data['format'] = $searchdata['format'];
  177. if($this->input->get_post('filterterm')=='')
  178. {
  179. $filterterm=0;
  180. $this->session->unset_userdata('searchterm');
  181. }
  182. $searchdata['location'] = "";
  183. if($this->input->get_post('location')!='')
  184. {
  185. $searchdata['location'] = $this->input->post('location');
  186. }
  187. $this->data['location'] = $searchdata['location'];
  188. $searchdata['doctor'] = "";
  189. if($this->input->get_post('doctor')!='')
  190. {
  191. $searchdata['doctor'] = $this->input->post('doctor');
  192. }
  193. $this->data['doctor'] = $searchdata['doctor'];
  194. if($this->input->get_post('doctor')=='')
  195. {
  196. $searchdata['doctor']='';
  197. $this->session->unset_userdata('doctor');
  198. }
  199. $searchdata['patient'] = "";
  200. if($this->input->get_post('patient')!='')
  201. {
  202. $searchdata['patient'] = $this->input->post('patient');
  203. }
  204. $this->data['patient'] = $searchdata['patient'];
  205. if($this->input->get_post('patient')=='')
  206. {
  207. $searchdata['patient']='';
  208. $this->session->unset_userdata('patient');
  209. }
  210. $this->session->set_userdata('searchdata', $searchdata);
  211. /** Get locations, move this to misc **/
  212. $l = $this->db->query("SELECT id,name FROM sr_locations ORDER BY id ASC");
  213. $this->data['loc'] = $l->result_array();
  214. $l = $this->db->query("SELECT id,firstname,lastname FROM sr_doctors WHERE client_id = ? ORDER BY id ASC",array($this->session->userdata['logged_in']['client_id']));
  215. $this->data['doctors'] = $l->result_array();
  216. $l = $this->db->query("SELECT DISTINCT(phone_no),id,firstname,lastname FROM sr_newuser WHERE client_id = ? ORDER BY id ASC",array($this->session->userdata['logged_in']['client_id']));
  217. $this->data['patients'] = $l->result_array();
  218. $this->data['total_rows'] = $this->misc->getreportlisttotal($searchdata);
  219. $this->data['starting_no'] = $this->uri->segment(4);
  220. $this->data['reportlist'] = $this->misc->getreportlist($searchdata);
  221. $this->data['default'] = false;
  222. $this->template->build('reports',$this->data);
  223. }
  224. public function exportXls()
  225. {
  226. if (!$this->session->userdata('logged_in')) {
  227. redirect('/');
  228. }
  229. $this->load->library("excel");
  230. $this->excel->setActiveSheetIndex(0);
  231. $searchdata = $this->session->userdata('searchdata');
  232. $reportdata['reportlist'] = $this->misc->getreportlistXls($searchdata);
  233. $this->excel->stream('report_'.date('m_d_Y').'.xls', $reportdata,$searchdata);
  234. }
  235. function genratepdf()
  236. {
  237. if (!$this->session->userdata('logged_in')) {
  238. redirect('/');
  239. }
  240. $this->load->helper('pdf_helper');
  241. $searchdata = $this->session->userdata('searchdata');
  242. $this->data['reportlist'] = $this->misc->getreportlist($searchdata);
  243. $this->data['search'] = $searchdata;
  244. $this->load->view('pdfreport', $this->data);
  245. }
  246. public function genratecsv()
  247. {
  248. if (!$this->session->userdata('logged_in')) {
  249. redirect('/');
  250. }
  251. $filename = "_" . date('m_d_Y') . ".csv";
  252. $searchdata = $this->session->userdata('searchdata');
  253. $result = $this->misc->getreportlistXls($searchdata);
  254. $attachment = false;
  255. $headers = true;
  256. header( 'Content-Type: text/csv;charset=utf-8' );
  257. header( 'Content-Disposition: attachment;filename=report'.$filename);
  258. $fp = fopen('php://output', 'w');
  259. foreach($result as $row)
  260. {
  261. $title=array_keys($row);
  262. }
  263. fputcsv($fp, $title);
  264. foreach($result as $row)
  265. {
  266. fputcsv($fp, $row);
  267. }
  268. fclose($fp);
  269. exit;
  270. }
  271. }