PageRenderTime 46ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/protected/controllers/UsersupervisionController.php

https://bitbucket.org/efirgilius/ims-application
PHP | 949 lines | 754 code | 28 blank | 167 comment | 40 complexity | 95a4a4a892890372a6a1a38eaa15a2a5 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause
  1. <?php
  2. class UsersupervisionController extends Controller
  3. {
  4. /**
  5. * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
  6. * using two-column layout. See 'protected/views/layouts/column2.php'.
  7. */
  8. public $layout='imstheme';
  9. /**
  10. * @return array action filters
  11. */
  12. public function filters()
  13. {
  14. return array(
  15. 'accessControl', // perform access control for CRUD operations
  16. );
  17. }
  18. /**
  19. * Specifies the access control rules.
  20. * This method is used by the 'accessControl' filter.
  21. * @return array access control rules
  22. */
  23. public function accessRules()
  24. {
  25. return array(
  26. array('allow', // allow authenticated user to perform 'index' and 'view' actions
  27. 'actions'=>array('view','download','location','createlocation','viewlocation','update','deletelocation','exportword','updatereport'),
  28. //'expression'=>'Yii::app()->user->isSuperAdmin || Yii::app()->user->isStaff',
  29. 'users'=>array('@'),
  30. ),
  31. array('allow', // allow authenticated user to perform 'create', 'update' and 'delete' actions
  32. 'actions'=>array('create','delete'),
  33. 'expression'=>'Yii::app()->user->isSuperAdmin',
  34. ),
  35. array('deny', // deny all users
  36. 'users'=>array('*'),
  37. ),
  38. );
  39. }
  40. /**
  41. * Displays a particular model.
  42. * @param integer $id the ID of the model to be displayed
  43. */
  44. public function actionView($id)
  45. {
  46. $model=$this->loadModel($id);
  47. $this->render('view',array(
  48. 'model'=>$model,
  49. ));
  50. }
  51. public function actionCreatelocation($id)
  52. {
  53. $supervision= $this->loadModel($id);
  54. $model=new TLocation;
  55. $prov=$this->loadProv($id);
  56. if(isset($_POST['TLocation']))
  57. {
  58. if($_POST['TLocation']['level_loc'] === '1')
  59. {
  60. $modelProv=$this->_getProv($id,$_POST['TLocation']['prov_id'],$_POST['TLocation']['in_date'],$_POST['TLocation']['out_date']);
  61. if(empty($modelProv))
  62. {
  63. $model->attributes=$_POST['TLocation'];
  64. $model->supervision_id=$id;
  65. if($model->save())
  66. {
  67. $this->redirect(array('viewlocation','id'=>$model->id));
  68. }
  69. }
  70. else
  71. {
  72. foreach($_POST['TLocation']['staff'] as $rowStaff)
  73. {
  74. $this->save_staffs($modelProv->id,$rowStaff);
  75. }
  76. $this->redirect(array('viewlocation','id'=>$modelProv->id));
  77. }
  78. }
  79. elseif($_POST['TLocation']['level_loc'] === '2')
  80. {
  81. $modelKab=$this->_getKab($id,$_POST['TLocation']['prov_id'],$_POST['TLocation']['kab_id'],$_POST['TLocation']['in_date'],$_POST['TLocation']['out_date']);
  82. if(empty($modelKab))
  83. {
  84. $model->attributes=$_POST['TLocation'];
  85. $model->supervision_id=$id;
  86. if($model->save())
  87. {
  88. $data=$this->_getProv($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  89. if(empty($data))
  90. {
  91. $this->_saveProvLocation($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  92. }
  93. else
  94. {
  95. foreach($_POST['TLocation']['staff'] as $rowStaff)
  96. {
  97. $this->save_staffs($data->id,$rowStaff);
  98. }
  99. }
  100. $this->redirect(array('viewlocation','id'=>$model->id));
  101. }
  102. }
  103. else
  104. {
  105. foreach($_POST['TLocation']['staff'] as $rowStaff)
  106. {
  107. $this->save_staffs($modelKab->id,$rowStaff);
  108. }
  109. $this->redirect(array('viewlocation','id'=>$modelKab->id));
  110. }
  111. }
  112. elseif($_POST['TLocation']['level_loc'] === '3')
  113. {
  114. $modelKec=$this->_getKec($id,$_POST['TLocation']['prov_id'],$_POST['TLocation']['kab_id'],$_POST['TLocation']['kec_id'],$_POST['TLocation']['in_date'],$_POST['TLocation']['out_date']);
  115. if(empty($modelKec))
  116. {
  117. $model->attributes=$_POST['TLocation'];
  118. $model->supervision_id=$id;
  119. if($model->save())
  120. {
  121. $dataKab=$this->_getKab($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  122. if(empty($dataKab))
  123. {
  124. $this->_saveKabLocation($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  125. }
  126. else
  127. {
  128. foreach($_POST['TLocation']['staff'] as $rowStaff1)
  129. {
  130. $this->save_staffs($dataKab->id,$rowStaff1);
  131. }
  132. }
  133. $data=$this->_getProv($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  134. if(empty($data))
  135. {
  136. $this->_saveProvLocation($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  137. }
  138. else
  139. {
  140. foreach($_POST['TLocation']['staff'] as $rowStaff)
  141. {
  142. $this->save_staffs($data->id,$rowStaff);
  143. }
  144. }
  145. $this->redirect(array('viewlocation','id'=>$model->id));
  146. }
  147. }
  148. else
  149. {
  150. foreach($_POST['TLocation']['staff'] as $rowStaff)
  151. {
  152. $this->save_staffs($modelKec->id,$rowStaff);
  153. }
  154. $this->redirect(array('viewlocation','id'=>$modelKec->id));
  155. }
  156. }
  157. else
  158. {
  159. if(!empty($_POST['TLocation']['village_id']))
  160. $village=$_POST['TLocation']['village_id'];
  161. else
  162. $village= $this->getVillage ();
  163. $modelVil=$this->_getVil($id,$_POST['TLocation']['prov_id'],$_POST['TLocation']['kab_id'],$_POST['TLocation']['kec_id'],$village,$_POST['TLocation']['in_date'],$_POST['TLocation']['out_date']);
  164. if(empty($modelVil))
  165. {
  166. $model->attributes=$_POST['TLocation'];
  167. $model->supervision_id=$id;
  168. $model->village_id=$village;
  169. if($model->save())
  170. {
  171. $dataKec=$this->_getKec($model->supervision_id,$model->prov_id,$model->kab_id,$model->kec_id,$model->in_date,$model->out_date);
  172. if(empty($dataKec))
  173. {
  174. $this->_saveKecLocation($model->supervision_id,$model->prov_id,$model->kab_id,$model->kec_id,$model->in_date,$model->out_date);
  175. }
  176. else
  177. {
  178. foreach($_POST['TLocation']['staff'] as $rowStaff2)
  179. {
  180. $this->save_staffs($dataKec->id,$rowStaff2);
  181. }
  182. }
  183. $dataKab=$this->_getKab($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  184. if(empty($dataKab))
  185. {
  186. $this->_saveKabLocation($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  187. }
  188. else
  189. {
  190. foreach($_POST['TLocation']['staff'] as $rowStaff1)
  191. {
  192. $this->save_staffs($dataKab->id,$rowStaff1);
  193. }
  194. }
  195. $data=$this->_getProv($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  196. if(empty($data))
  197. {
  198. $this->_saveProvLocation($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  199. }
  200. else
  201. {
  202. foreach($_POST['TLocation']['staff'] as $rowStaff)
  203. {
  204. $this->save_staffs($data->id,$rowStaff);
  205. }
  206. }
  207. $this->redirect(array('viewlocation','id'=>$model->id));
  208. }
  209. }
  210. else
  211. {
  212. foreach($_POST['TLocation']['staff'] as $rowStaff)
  213. {
  214. $this->save_staffs($modelVil->id,$rowStaff);
  215. }
  216. $this->redirect(array('viewlocation','id'=>$modelVil->id));
  217. }
  218. }
  219. // $model->attributes=$_POST['TLocation'];
  220. // $model->supervision_id=$id;
  221. // //$model->village_id=$this->getVillage();
  222. // if($model->save())
  223. // {
  224. // if($model->level_loc == '2')
  225. // {
  226. // $data=$this->_getProv($model->supervision_id,$model->prov_id);
  227. // if(empty($data))
  228. // {
  229. // $this->_saveProvLocation($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  230. // }
  231. // else
  232. // {
  233. // foreach($_POST['TLocation']['staff'] as $rowStaff)
  234. // {
  235. // $this->save_staffs($data->id,$rowStaff);
  236. // }
  237. // }
  238. // }
  239. //
  240. // if($model->level_loc == '3')
  241. // {
  242. // $dataKab=$this->_getKab($model->supervision_id,$model->prov_id,$model->kab_id);
  243. // if(empty($data))
  244. // {
  245. // $this->_saveKabLocation($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  246. // }
  247. // else
  248. // {
  249. // foreach($_POST['TLocation']['staff'] as $rowStaff1)
  250. // {
  251. // $this->save_staffs($dataKab->id,$rowStaff1);
  252. // }
  253. // }
  254. //
  255. // $data=$this->_getProv($model->supervision_id,$model->prov_id);
  256. // if(empty($data))
  257. // {
  258. // $this->_saveProvLocation($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  259. // }
  260. // else
  261. // {
  262. // foreach($_POST['TLocation']['staff'] as $rowStaff)
  263. // {
  264. // $this->save_staffs($data->id,$rowStaff);
  265. // }
  266. // }
  267. // }
  268. //
  269. // if($model->level_loc == '4')
  270. // {
  271. // $dataKec=$this->_getKec($model->supervision_id,$model->prov_id,$model->kab_id,$model->kec_id);
  272. // if(empty($dataKec))
  273. // {
  274. // $this->_saveKecLocation($model->supervision_id,$model->prov_id,$model->kab_id,$model->kec_id,$model->in_date,$model->out_date);
  275. // }
  276. // else
  277. // {
  278. // foreach($_POST['TLocation']['staff'] as $rowStaff2)
  279. // {
  280. // $this->save_staffs($dataKec->id,$rowStaff2);
  281. // }
  282. // }
  283. //
  284. // $dataKab=$this->_getKab($model->supervision_id,$model->prov_id,$model->kab_id);
  285. // if(empty($dataKab))
  286. // {
  287. // $this->_saveKabLocation($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  288. // }
  289. // else
  290. // {
  291. // foreach($_POST['TLocation']['staff'] as $rowStaff1)
  292. // {
  293. // $this->save_staffs($dataKab->id,$rowStaff1);
  294. // }
  295. // }
  296. //
  297. // $data=$this->_getProv($model->supervision_id,$model->prov_id);
  298. // if(empty($data))
  299. // {
  300. // $this->_saveProvLocation($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  301. // }
  302. // else
  303. // {
  304. // foreach($_POST['TLocation']['staff'] as $rowStaff)
  305. // {
  306. // $this->save_staffs($data->id,$rowStaff);
  307. // }
  308. // }
  309. // }
  310. //
  311. // $this->redirect(array('viewlocation','id'=>$model->id));
  312. // }
  313. }
  314. $this->render('create',array(
  315. 'supervision'=>$supervision,
  316. 'model'=>$model,
  317. 'prov'=>$prov,
  318. //'staff'=>$staff
  319. ));
  320. }
  321. /**
  322. * Updates a particular model.
  323. * If update is successful, the browser will be redirected to the 'view' page.
  324. * @param integer $id the ID of the model to be updated
  325. */
  326. public function actionUpdate($id)
  327. {
  328. $model=$this->loadModelLocation($id);
  329. $supervision= $this->loadModel($model->supervision_id);
  330. $prov=$this->loadProv($model->supervision_id);
  331. $staff=$this->loadStaffName($model->id);
  332. if(isset($_POST['TLocation']))
  333. {
  334. if($_POST['TLocation']['level_loc'] === '1')
  335. {
  336. $modelProv=$this->_getProv($id,$_POST['TLocation']['prov_id'],$_POST['TLocation']['in_date'],$_POST['TLocation']['out_date']);
  337. if(empty($modelProv))
  338. {
  339. $model->attributes=$_POST['TLocation'];
  340. if($model->save())
  341. {
  342. $this->redirect(array('viewlocation','id'=>$model->id));
  343. }
  344. }
  345. else
  346. {
  347. foreach($_POST['TLocation']['staff'] as $rowStaff)
  348. {
  349. $this->save_staffs($modelProv->id,$rowStaff);
  350. }
  351. $this->redirect(array('viewlocation','id'=>$modelProv->id));
  352. }
  353. }
  354. elseif($_POST['TLocation']['level_loc'] === '2')
  355. {
  356. $modelKab=$this->_getKab($id,$_POST['TLocation']['prov_id'],$_POST['TLocation']['kab_id'],$_POST['TLocation']['in_date'],$_POST['TLocation']['out_date']);
  357. if(empty($modelKab))
  358. {
  359. $model->attributes=$_POST['TLocation'];
  360. if($model->save())
  361. {
  362. $data=$this->_getProv($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  363. if(empty($data))
  364. {
  365. $this->_saveProvLocation($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  366. }
  367. else
  368. {
  369. foreach($_POST['TLocation']['staff'] as $rowStaff)
  370. {
  371. $this->save_staffs($data->id,$rowStaff);
  372. }
  373. }
  374. $this->redirect(array('viewlocation','id'=>$model->id));
  375. }
  376. }
  377. else
  378. {
  379. foreach($_POST['TLocation']['staff'] as $rowStaff)
  380. {
  381. $this->save_staffs($modelKab->id,$rowStaff);
  382. }
  383. $this->redirect(array('viewlocation','id'=>$modelKab->id));
  384. }
  385. }
  386. elseif($_POST['TLocation']['level_loc'] === '3')
  387. {
  388. $modelKec=$this->_getKec($id,$_POST['TLocation']['prov_id'],$_POST['TLocation']['kab_id'],$_POST['TLocation']['kec_id'],$_POST['TLocation']['in_date'],$_POST['TLocation']['out_date']);
  389. if(empty($modelKec))
  390. {
  391. $model->attributes=$_POST['TLocation'];
  392. if($model->save())
  393. {
  394. $dataKab=$this->_getKab($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  395. if(empty($dataKab))
  396. {
  397. $this->_saveKabLocation($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  398. }
  399. else
  400. {
  401. foreach($_POST['TLocation']['staff'] as $rowStaff1)
  402. {
  403. $this->save_staffs($dataKab->id,$rowStaff1);
  404. }
  405. }
  406. $data=$this->_getProv($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  407. if(empty($data))
  408. {
  409. $this->_saveProvLocation($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  410. }
  411. else
  412. {
  413. foreach($_POST['TLocation']['staff'] as $rowStaff)
  414. {
  415. $this->save_staffs($data->id,$rowStaff);
  416. }
  417. }
  418. $this->redirect(array('viewlocation','id'=>$model->id));
  419. }
  420. }
  421. else
  422. {
  423. foreach($_POST['TLocation']['staff'] as $rowStaff)
  424. {
  425. $this->save_staffs($modelKec->id,$rowStaff);
  426. }
  427. $this->redirect(array('viewlocation','id'=>$modelKec->id));
  428. }
  429. }
  430. else
  431. {
  432. if(!empty($_POST['TLocation']['village_id']))
  433. $village=$_POST['TLocation']['village_id'];
  434. else
  435. $village= $this->getVillage ();
  436. $modelVil=$this->_getVil($id,$_POST['TLocation']['prov_id'],$_POST['TLocation']['kab_id'],$_POST['TLocation']['kec_id'],$village,$_POST['TLocation']['in_date'],$_POST['TLocation']['out_date']);
  437. if(empty($modelVil))
  438. {
  439. $model->attributes=$_POST['TLocation'];
  440. $model->village_id=$village;
  441. if($model->save())
  442. {
  443. $dataKec=$this->_getKec($model->supervision_id,$model->prov_id,$model->kab_id,$model->kec_id,$model->in_date,$model->out_date);
  444. if(empty($dataKec))
  445. {
  446. $this->_saveKecLocation($model->supervision_id,$model->prov_id,$model->kab_id,$model->kec_id,$model->in_date,$model->out_date);
  447. }
  448. else
  449. {
  450. foreach($_POST['TLocation']['staff'] as $rowStaff2)
  451. {
  452. $this->save_staffs($dataKec->id,$rowStaff2);
  453. }
  454. }
  455. $dataKab=$this->_getKab($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  456. if(empty($dataKab))
  457. {
  458. $this->_saveKabLocation($model->supervision_id,$model->prov_id,$model->kab_id,$model->in_date,$model->out_date);
  459. }
  460. else
  461. {
  462. foreach($_POST['TLocation']['staff'] as $rowStaff1)
  463. {
  464. $this->save_staffs($dataKab->id,$rowStaff1);
  465. }
  466. }
  467. $data=$this->_getProv($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  468. if(empty($data))
  469. {
  470. $this->_saveProvLocation($model->supervision_id,$model->prov_id,$model->in_date,$model->out_date);
  471. }
  472. else
  473. {
  474. foreach($_POST['TLocation']['staff'] as $rowStaff)
  475. {
  476. $this->save_staffs($data->id,$rowStaff);
  477. }
  478. }
  479. $this->redirect(array('viewlocation','id'=>$model->id));
  480. }
  481. }
  482. else
  483. {
  484. foreach($_POST['TLocation']['staff'] as $rowStaff)
  485. {
  486. $this->save_staffs($modelVil->id,$rowStaff);
  487. }
  488. $this->redirect(array('viewlocation','id'=>$modelVil->id));
  489. }
  490. }
  491. }
  492. $this->render('update',array(
  493. 'supervision'=>$supervision,
  494. 'model'=>$model,
  495. 'prov'=>$prov,
  496. 'staff'=>$staff
  497. ));
  498. }
  499. /**
  500. * Deletes a particular model.
  501. * If deletion is successful, the browser will be redirected to the 'admin' page.
  502. * @param integer $id the ID of the model to be deleted
  503. */
  504. public function actionDelete($id)
  505. {
  506. if(Yii::app()->request->isPostRequest)
  507. {
  508. // we only allow deletion via POST request
  509. $this->loadModel($id)->delete();
  510. // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
  511. if(!isset($_GET['ajax']))
  512. $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
  513. }
  514. else
  515. throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
  516. }
  517. public function actionDeletelocation($id)
  518. {
  519. if(Yii::app()->request->isPostRequest)
  520. {
  521. // we only allow deletion via POST request
  522. $model=TLocation::model()->findByPk($id);
  523. if($model)
  524. {
  525. $data=TIssueStaff::model()->findByAttributes(array('location_id'=>$id,'user_id'=> Yii::app()->user->id));
  526. $data->delete();
  527. }
  528. // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
  529. if(!isset($_GET['ajax']))
  530. $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
  531. }
  532. else
  533. throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
  534. }
  535. /**
  536. * Manages all models.
  537. */
  538. // public function actionIndex()
  539. // {
  540. // $dataProvider=new CActiveDataProvider('TSupervisionStaff', array(
  541. // 'criteria'=>array(
  542. // 'with'=>array('supervision'),
  543. // 'condition'=>'t.user_id=:id',
  544. // 'params'=>array(':id'=> Yii::app()->user->id)
  545. // ),
  546. // 'sort'=>array(
  547. // 'defaultOrder'=>'supervision.created_on DESC',
  548. // ),
  549. // ));
  550. // $this->render('index',array(
  551. // 'model'=>$dataProvider,
  552. // ));
  553. // }
  554. public function actionLocation($id)
  555. {
  556. $supervision= $this->loadModel($id);
  557. $dataProvider=new CActiveDataProvider('TIssueStaff', array(
  558. 'criteria'=>array(
  559. 'with'=>array('location'),
  560. 'condition'=>'location.supervision_id=:id AND t.user_id=:uId',
  561. 'params'=>array(':id'=> $id,'uId'=>Yii::app()->user->id)
  562. ),
  563. ));
  564. $this->render('location1',array(
  565. 'supervision'=>$supervision,
  566. 'model'=>$dataProvider,
  567. ));
  568. }
  569. public function actionViewlocation($id)
  570. {
  571. $model=$this->loadModelLocation($id);
  572. $supervision= $this->loadModel($model->supervision_id);
  573. $staff = $this->_getStaffs($id);
  574. $this->render('viewlocation',array(
  575. 'supervision'=>$supervision,
  576. 'model'=>$model,
  577. 'staff'=>$staff,
  578. ));
  579. }
  580. public function actionExportword($id,$action=false)
  581. {
  582. $dataProgram=array();
  583. $dataIssue=array();
  584. $datab=array();
  585. $model=$this->loadModelSupervision($id);
  586. $staff=TSupervisionStaff::model()->findByAttributes(array('supervision_id'=>$id,'user_id'=>Yii::app()->user->id));
  587. $criteria= new CDbCriteria;
  588. $criteria->with=array('location','location.supervision');
  589. $criteria->condition="supervision.id=:sid AND t.user_id=:uid";
  590. $criteria->params=array(':sid'=>$id,'uid'=> Yii::app()->user->id);
  591. $criteria->order="t.created_on desc";
  592. // $criteria->distinct=false;
  593. $criteria->group='t.program_group_id';
  594. $issues= TIssue::model()->findAll($criteria);
  595. // if($issues)
  596. // {
  597. // foreach($issues as $row)
  598. // {
  599. // $model2=$this->loadDataByProgram($id, $row->program_id);
  600. // if($model2)
  601. // {
  602. // foreach($model2 as $row2)
  603. // {
  604. // $dataIssue[]=array($row->id,$row->issue_register_number);
  605. // }
  606. // }
  607. // $dataProgram[]=array($row->program->name_program,$dataIssue);
  608. // }
  609. // //$datab=$dataIssue;
  610. // print_r($dataProgram);
  611. // exit;
  612. // }
  613. // $html2pdf = Yii::app()->ePdf->HTML2PDF();
  614. // $html2pdf->WriteHTML($this->renderPartial('pdf', array('model'=>$model), true));
  615. // $html2pdf->Output();
  616. if($action)
  617. {
  618. $div = $this->renderPartial('pdf', array('model' => $model,'issues'=>$issues,'status'=>$staff->report_status), true);
  619. header("Pragma: no-cache"); // required
  620. header("Expires: 0");
  621. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  622. header("Cache-Control: private", false); // required for certain browsers
  623. header("Content-type: application/vnd.ms-word");
  624. header("Content-Disposition: attachment; filename=\"supervision_" . Yii::app()->user->name ."_". date("Y-m-d").".doc");
  625. header("Content-Transfer-Encoding: binary");
  626. // ob_clean();
  627. // flush();
  628. echo $div;
  629. }
  630. else
  631. {
  632. // print_r($issues);
  633. // exit;
  634. $this->render('exportword',array(
  635. 'model'=>$model,
  636. 'issues'=>$issues,
  637. 'status'=>$staff->report_status
  638. ));
  639. // $this->render('tes',array(
  640. // // 'model'=>$model,
  641. // 'issues'=>$dataIssue
  642. // ));
  643. }
  644. }
  645. public function actionUpdatereport()
  646. {
  647. if(Yii::app()->request->getIsAjaxRequest())
  648. {
  649. $model=TSupervisionStaff::model()->findByAttributes(array('supervision_id'=>$_GET['sId'],'user_id'=>Yii::app()->user->id));
  650. $model->report_status=$_GET['value'];
  651. $model->save(false);
  652. Yii::app()->end();
  653. }
  654. else
  655. throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
  656. }
  657. /**
  658. * Returns the data model based on the primary key given in the GET variable.
  659. * If the data model is not found, an HTTP exception will be raised.
  660. * @param integer the ID of the model to be loaded
  661. */
  662. public function loadModel($id)
  663. {
  664. $criteria=new CDbCriteria;
  665. $criteria->with=array('supervision');
  666. $criteria->condition='t.user_id=:userId AND supervision.id=:id';
  667. $criteria->params=array(':userId'=>Yii::app()->user->id,'id'=>$id);
  668. $model=TSupervisionStaff::model()->find($criteria);
  669. if($model===null)
  670. throw new CHttpException(404,'The requested page does not exist.');
  671. return $model;
  672. }
  673. public function loadModelLocation($id)
  674. {
  675. $model= TLocation::model()->findByPk((int)$id);
  676. if($model===null)
  677. throw new CHttpException(404,'The requested page does not exist.');
  678. return $model;
  679. }
  680. public function loadModelSupervision($id)
  681. {
  682. $model= TSupervision::model()->findByPk((int)$id);
  683. if($model===null)
  684. throw new CHttpException(404,'The requested page does not exist.');
  685. return $model;
  686. }
  687. /**
  688. * Performs the AJAX validation.
  689. * @param CModel the model to be validated
  690. */
  691. protected function performAjaxValidation($model)
  692. {
  693. if(isset($_POST['ajax']) && $_POST['ajax']==='tsupervision-form')
  694. {
  695. echo CActiveForm::validate($model);
  696. Yii::app()->end();
  697. }
  698. }
  699. public function loadProv($id)
  700. {
  701. $data=TSupervisionProvinsi::model()->with('prov')->findAllByAttributes(array('supervision_id'=>$id));
  702. $data=CHtml::listData($data,'prov_id','prov.name_prov');
  703. ksort($data);
  704. return $data;
  705. }
  706. public function loadStaffName($id)
  707. {
  708. $data= TIssueStaff::model()->with(array('user'))->findAllByAttributes(array('location_id'=>$id));
  709. return $data;
  710. }
  711. protected function _getStaffs($id)
  712. {
  713. $dataProvider=new CActiveDataProvider('TIssueStaff', array(
  714. 'criteria'=>array(
  715. 'with'=>array('user'),
  716. 'condition'=>"location_id=:id",
  717. 'params'=>array(':id'=>$id),
  718. ),
  719. 'pagination'=>array(
  720. 'pageSize'=>10,
  721. ),
  722. ));
  723. return $dataProvider;
  724. }
  725. protected function _getProvince($id)
  726. {
  727. $criteria= new CDbCriteria;
  728. $criteria->with=array('prov');
  729. $criteria->condition="supervision_id=:id";
  730. $criteria->params=array(':id'=>$id);
  731. $dataProvider=TSupervisionProvinsi::model()->findAll($criteria);
  732. return $dataProvider;
  733. }
  734. protected function _getTeams($id)
  735. {
  736. $criteria= new CDbCriteria;
  737. $criteria->with=array('team');
  738. $criteria->condition="supervision_id=:id";
  739. $criteria->params=array(':id'=>$id);
  740. $dataProvider=TSupervisionTeam::model()->findAll($criteria);
  741. return $dataProvider;
  742. }
  743. protected function _getStaff($id)
  744. {
  745. $criteria= new CDbCriteria;
  746. $criteria->with=array('user');
  747. $criteria->condition="supervision_id=:id";
  748. $criteria->params=array(':id'=>$id);
  749. $dataProvider=TSupervisionStaff::model()->findAll($criteria);
  750. return $dataProvider;
  751. }
  752. protected function _getParticipants($id)
  753. {
  754. $criteria= new CDbCriteria;
  755. $criteria->with=array('organizations');
  756. $criteria->condition="supervision_id=:id";
  757. $criteria->params=array(':id'=>$id);
  758. $dataProvider=TSupervisionParticipants::model()->findAll($criteria);
  759. return $dataProvider;
  760. }
  761. protected function getVillage()
  762. {
  763. if(!empty($_POST['village_id']))
  764. {
  765. $model= TmVillage::model()->findByAttributes(array('name_village'=>$_POST['village_id'],'kec_id'=>$_POST['TLocation']['kec_id']));
  766. if($model === NULL)
  767. {
  768. $model= new TmVillage;
  769. $model->name_village=$_POST['village_id'];
  770. $model->kec_id=$_POST['TLocation']['kec_id'];
  771. $model->save(false);
  772. }
  773. $data=$model->id;
  774. }
  775. else
  776. $data = NULL;
  777. return $data;
  778. }
  779. protected function _getProv($supervision_id,$prov,$indate,$outdate)
  780. {
  781. $model=TLocation::model()->findByAttributes(array('supervision_id'=>$supervision_id,'level_loc'=>'1','prov_id'=>$prov,'in_date'=>$indate,'out_date'=>$outdate));
  782. //$model=TLocation::model()->find("supervision_id=$supervision_id AND level_loc=1 AND prov_id=$prov AND in_date=$indate ");
  783. return $model;
  784. }
  785. protected function _getKab($supervision_id,$prov,$kab_id,$indate,$outdate)
  786. {
  787. $model=TLocation::model()->findByAttributes(array('supervision_id'=>$supervision_id,'level_loc'=>'2','prov_id'=>$prov,'kab_id'=>$kab_id,'in_date'=>$indate,'out_date'=>$outdate));
  788. return $model;
  789. }
  790. protected function _getKec($supervision_id,$prov,$kab_id,$kec_id,$indate,$outdate)
  791. {
  792. $model=TLocation::model()->findByAttributes(array('supervision_id'=>$supervision_id,'level_loc'=>'3','prov_id'=>$prov,'kab_id'=>$kab_id,'kec_id'=>$kec_id,'in_date'=>$indate,'out_date'=>$outdate));
  793. return $model;
  794. }
  795. protected function _getVil($supervision_id,$prov,$kab_id,$kec_id,$vil_id,$indate,$outdate)
  796. {
  797. $model=TLocation::model()->findByAttributes(array('supervision_id'=>$supervision_id,'level_loc'=>'4','prov_id'=>$prov,'kab_id'=>$kab_id,'kec_id'=>$kec_id,'village_id'=>$vil_id,'in_date'=>$indate,'out_date'=>$outdate));
  798. return $model;
  799. }
  800. protected function save_staffs($loc,$uid)
  801. {
  802. $model=TIssueStaff::model()->findByAttributes(array('location_id'=>$loc,'user_id'=>$uid));
  803. if(empty($model))
  804. {
  805. $teamModel = new TIssueStaff;
  806. $teamModel->location_id = $loc;
  807. $teamModel->user_id = $uid;
  808. $teamModel->save();
  809. }
  810. }
  811. protected function _saveProvLocation($supervision_id,$prov,$in_date,$out_date)
  812. {
  813. $newModel=new TLocation;
  814. $newModel->supervision_id=$supervision_id;
  815. $newModel->level_loc='1';
  816. $newModel->prov_id=$prov;
  817. $newModel->in_date=$in_date;
  818. $newModel->out_date=$out_date;
  819. $newModel->save(false);
  820. }
  821. protected function _saveKabLocation($supervision_id,$prov,$kab_id,$in_date,$out_date)
  822. {
  823. $newModel=new TLocation;
  824. $newModel->supervision_id=$supervision_id;
  825. $newModel->level_loc='2';
  826. $newModel->prov_id=$prov;
  827. $newModel->kab_id=$kab_id;
  828. $newModel->in_date=$in_date;
  829. $newModel->out_date=$out_date;
  830. $newModel->save(false);
  831. }
  832. protected function _saveKecLocation($supervision_id,$prov,$kab_id,$kec_id,$in_date,$out_date)
  833. {
  834. $newModel=new TLocation;
  835. $newModel->supervision_id=$supervision_id;
  836. $newModel->level_loc='3';
  837. $newModel->prov_id=$prov;
  838. $newModel->kab_id=$kab_id;
  839. $newModel->kec_id=$kec_id;
  840. $newModel->in_date=$in_date;
  841. $newModel->out_date=$out_date;
  842. $newModel->save(false);
  843. }
  844. protected function _saveLocation($model)
  845. {
  846. $model->attributes=$_POST['TLocation'];
  847. $model->supervision_id=$id;
  848. $model->save();
  849. return $model;
  850. }
  851. public function loadDataByProgram($supId,$programId)
  852. {
  853. $criteria= new CDbCriteria;
  854. $criteria->with=array('location','location.supervision');
  855. $criteria->condition="supervision.id=:sid AND t.user_id=:uid AND t.program_group_id=:pid";
  856. $criteria->params=array(':sid'=>$supId,'uid'=> Yii::app()->user->id,':pid'=>$programId);
  857. $criteria->order="t.created_on desc";
  858. $criteria->group='t.area_id';
  859. $data= TIssue::model()->findAll($criteria);
  860. return $data;
  861. }
  862. public function loadDataByarea($supId,$programId,$areaId)
  863. {
  864. $criteria= new CDbCriteria;
  865. $criteria->with=array('location','location.supervision');
  866. $criteria->condition="supervision.id=:sid AND t.user_id=:uid AND t.program_group_id=:pid AND t.area_id=:aid";
  867. $criteria->params=array(':sid'=>$supId,'uid'=> Yii::app()->user->id,':pid'=>$programId,':aid'=>$areaId);
  868. $criteria->order="t.created_on desc";
  869. $data= TIssue::model()->findAll($criteria);
  870. return $data;
  871. }
  872. public function actionDownload($id)
  873. {
  874. if(isset($_GET['id']) && (!empty($_GET['id'])))
  875. {
  876. $model= TSupervision::model()->findByAttributes(array('id'=>$id));
  877. if($model)
  878. {
  879. $model->output_file($model->attachment);
  880. }
  881. else
  882. {
  883. throw new CHttpException(403, "You open a wrong page. Please don't call this page directly");
  884. }
  885. }
  886. else
  887. {
  888. throw new CHttpException(403, "You open a wrong page. Please don't call this page directly");
  889. }
  890. }
  891. }