PageRenderTime 56ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 0ms

/application/controllers/Projects.php

https://gitlab.com/joshuacurci/swim-crm
PHP | 262 lines | 204 code | 49 blank | 9 comment | 12 complexity | 561daa17ec60eff409ffdf4f55368edb MD5 | raw file
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. class Projects extends CI_Controller {
  4. public function __construct()
  5. {
  6. parent::__construct();
  7. $this->load->library('session');
  8. $this->load->helper('form');
  9. $this->load->helper('url');
  10. $this->load->helper('html');
  11. $this->load->database();
  12. $this->load->library('form_validation');
  13. //load the login model
  14. //$this->load->model('login_model');
  15. //$this->load->model('news_model');
  16. //$this->load->model('admin_model');
  17. $this->load->model('projects_model');
  18. $this->load->model('client_model');
  19. $this->load->model('staff_model');
  20. $this->load->model('domains_model');
  21. $this->load->model('salesproposals_model');
  22. if($this->config->item('maintenance_mode') == TRUE) {
  23. $this->load->view('under_construction');
  24. $content = $this->load->view('under_construction', '', TRUE);
  25. echo $content;
  26. die();
  27. }
  28. if ( ! $this->session->userdata('loginuser'))
  29. {
  30. redirect('login/index');
  31. }
  32. }
  33. public function index()
  34. {
  35. $header['menuitem'] = '4';
  36. $header['usergroup'] = '';
  37. $header['pagetitle'] = 'Projects';
  38. $data['project'] = $this->projects_model->get_projects();
  39. $data['clientlist'] = $this->client_model->get_clients();
  40. $this->load->view('main_header', $header);
  41. $this->load->view('project/index', $data);
  42. $this->load->view('main_footer');
  43. }
  44. public function search()
  45. {
  46. $header['menuitem'] = '4';
  47. $header['usergroup'] = '';
  48. $header['pagetitle'] = 'Projects';
  49. $postdata = $this->input->post();
  50. $data['project'] = $this->projects_model->search_projects($postdata);
  51. $data['searchresults'] = $postdata;
  52. $data['clientlist'] = $this->client_model->get_clients();
  53. $this->load->view('main_header', $header);
  54. $this->load->view('project/index', $data);
  55. $this->load->view('main_footer');
  56. }
  57. public function wip()
  58. {
  59. $header['menuitem'] = '4';
  60. $header['usergroup'] = '';
  61. $header['pagetitle'] = 'Projects';
  62. $data['project'] = $this->projects_model->get_wip_projects();
  63. $data['clientlist'] = $this->client_model->get_clients();
  64. $this->load->view('main_header', $header);
  65. $this->load->view('project/wip', $data);
  66. $this->load->view('main_footer');
  67. }
  68. public function clientview($clientID)
  69. {
  70. $header['menuitem'] = '4';
  71. $header['usergroup'] = '';
  72. $header['pagetitle'] = 'Projects';
  73. $data['project'] = $this->projects_model->get_client_projects($clientID);
  74. $this->load->view('main_header', $header);
  75. $this->load->view('project/index', $data);
  76. $this->load->view('main_footer');
  77. }
  78. public function view($projectID)
  79. {
  80. $header['menuitem'] = '4';
  81. $header['usergroup'] = '';
  82. $header['pagetitle'] = 'Projects';
  83. $data['project'] = $this->projects_model->get_project_info($projectID);
  84. $data['project_tasks'] = $this->projects_model->get_project_tasks($projectID);
  85. $data['project_notes'] = $this->projects_model->get_project_notes($projectID);
  86. $data['project_hours'] = $this->projects_model->get_project_hours($projectID);
  87. $data['project_expences'] = $this->projects_model->get_project_expences($projectID);
  88. $data['project_contacts'] = $this->projects_model->get_project_contacts($projectID);
  89. $data['salesconected'] = $this->projects_model->get_salesproposals_project_conected($projectID);
  90. $this->load->view('main_header', $header);
  91. $this->load->view('project/view', $data);
  92. $this->load->view('main_footer');
  93. }
  94. public function edit($projectID)
  95. {
  96. $header['menuitem'] = '4';
  97. $header['usergroup'] = '';
  98. $header['pagetitle'] = 'Projects';
  99. $data['project'] = $this->projects_model->get_project_info($projectID);
  100. $data['assignedstaff'] = $this->projects_model->get_project_asigned_staff($projectID);
  101. $data['clientlist'] = $this->client_model->get_clients();
  102. $data['stafflist'] = $this->staff_model->get_staff();
  103. $data['domainlist'] = $this->domains_model->get_domains();
  104. $data['staffID'] = $_SESSION['userID'];
  105. $this->load->view('main_header', $header);
  106. $this->load->view('project/edit', $data);
  107. $this->load->view('main_footer');
  108. }
  109. public function add()
  110. {
  111. $header['menuitem'] = '4';
  112. $header['usergroup'] = '';
  113. $header['pagetitle'] = 'Projects';
  114. $data['clientlist'] = $this->client_model->get_clients();
  115. $data['stafflist'] = $this->staff_model->get_staff();
  116. $data['staffID'] = $_SESSION['userID'];
  117. $data['currentJB'] = $this->projects_model->get_job_id();
  118. $data['domainlist'] = $this->domains_model->get_domains();
  119. $this->load->view('main_header', $header);
  120. $this->load->view('project/add', $data);
  121. $this->load->view('main_footer');
  122. }
  123. public function propadd($salesID)
  124. {
  125. $header['menuitem'] = '4';
  126. $header['usergroup'] = '';
  127. $header['pagetitle'] = 'Projects';
  128. $data['clientlist'] = $this->client_model->get_clients();
  129. $data['stafflist'] = $this->staff_model->get_staff();
  130. $data['staffID'] = $_SESSION['userID'];
  131. $data['currentJB'] = $this->projects_model->get_job_id();
  132. $data['domainlist'] = $this->domains_model->get_domains();
  133. $data['propData'] = $this->salesproposals_model->get_salesproposals_info($salesID);
  134. $this->load->view('main_header', $header);
  135. $this->load->view('project/propadd', $data);
  136. $this->load->view('main_footer');
  137. }
  138. public function clientadd($clientID)
  139. {
  140. $header['menuitem'] = '4';
  141. $header['usergroup'] = '';
  142. $header['pagetitle'] = 'Projects';
  143. $data['clientlist'] = $this->client_model->get_clients();
  144. $data['stafflist'] = $this->staff_model->get_staff();
  145. $data['staffID'] = $_SESSION['userID'];
  146. $data['clientID'] = $clientID;
  147. $data['currentJB'] = $this->projects_model->get_job_id();
  148. $data['domainlist'] = $this->domains_model->get_domains();
  149. $this->load->view('main_header', $header);
  150. $this->load->view('project/clientadd', $data);
  151. $this->load->view('main_footer');
  152. }
  153. public function save()
  154. {
  155. $postdata = $this->input->post();
  156. $projectID = $this->input->post('projectID');
  157. $this->projects_model->update_project_info($postdata);
  158. $this->projects_model->update_project_staffassigned($postdata,$projectID);
  159. redirect('/projects/view/'.$projectID);
  160. }
  161. public function newproject()
  162. {
  163. $postdata = $this->input->post();
  164. $projectID = $this->projects_model->new_project_info($postdata);
  165. if ($projectID == 'JBE') {
  166. $header['menuitem'] = '4';
  167. $header['usergroup'] = '';
  168. $header['pagetitle'] = 'Projects';
  169. $data['project'][0] = $postdata;
  170. $data['clientlist'] = $this->client_model->get_clients();
  171. $data['stafflist'] = $this->staff_model->get_staff();
  172. $data['staffID'] = $_SESSION['userID'];
  173. $data['assignedstaff'] = $postdata['assigned_staff'];
  174. $data['currentJB'] = $this->projects_model->get_job_id();
  175. $data['error'] = $projectID;
  176. $this->load->view('main_header', $header);
  177. $this->load->view('project/edit', $data);
  178. $this->load->view('main_footer');
  179. } else {
  180. if ($postdata['propConected'] != 'N') {
  181. $this->projects_model->match_sales_project($postdata,$projectID);
  182. }
  183. $this->projects_model->new_project_staffassigned($postdata,$projectID);
  184. redirect('/projects/index/');
  185. }
  186. //print_r($projectID);
  187. }
  188. public function delete($projectID)
  189. {
  190. $this->projects_model->delete_project_info($projectID);
  191. redirect('/projects/index/');
  192. }
  193. public function quickchange($projectID, $status, $redirect)
  194. {
  195. $this->projects_model->quickupdate_project_status($projectID, $status);
  196. if ($redirect == 'index'){
  197. redirect('/projects/index');
  198. } elseif ($redirect == 'wip'){
  199. redirect('/projects/wip');
  200. } else {
  201. redirect('/projects/view/'.$projectID);
  202. }
  203. }
  204. public function quickchangesecurity($projectID, $userID, $month)
  205. {
  206. $returned = $this->projects_model->quickupdate_project_list($projectID, $userID, $month);
  207. /*echo "Project ID: ".$projectID."<br/>";
  208. echo "User ID: ".$userID."<br/>";
  209. echo "Month ID: ".$month."<br/>";
  210. echo "SQL: ".$returned."<br/>";/**/
  211. redirect('/projects/view/'.$projectID);
  212. }
  213. }