1<?php 2 3/* 4 * To change this template, choose Tools | Templates 5 * and open the template in the editor. 6 */ 7 8/** 9 * Description of basePeformanceAction 10 * 11 * @author nadeera 12 */ 13abstract class basePeformanceAction extends ohrmBaseAction { 14 15 public $kpiService; 16 public $performanceReviewService; 17 public $reviewStatusFactory; 18 19 /** 20 * 21 * @return ReviewStatusFactory 22 */ 23 public function getReviewStatusFactory() { 24 if ($this->reviewStatusFactory == null) { 25 return new ReviewStatusFactory(); 26 } else { 27 return $this->reviewStatusFactory; 28 } 29 } 30 31 /** 32 * 33 * @param ReviewStatusFactory $reviewStatusFactory 34 */ 35 public function setReviewStatusFactory($reviewStatusFactory) { 36 $this->reviewStatusFactory = $reviewStatusFactory; 37 } 38 39 protected function _checkAuthentication($request = null) { 40 $isReviewer = $this->checkIsReviwer($request->getParameter('id')); 41 $user = $this->getUser()->getAttribute('user'); 42 if (!($user->isAdmin() || $isReviewer)) { 43 $this->forward(sfConfig::get('sf_secure_module'), sfConfig::get('sf_secure_action')); 44 } 45 } 46 47 /** 48 * 49 * @return \PerformanceReviewService 50 */ 51 public function getPerformanceReviewService() { 52 if ($this->performanceReviewService == null) { 53 return new PerformanceReviewService(); 54 } else { 55 return $this->performanceReviewService; 56 } 57 } 58 59 /** 60 * 61 * @param \PerformanceReviewService $performanceReviewService 62 */ 63 public function setPerformanceReviewService($performanceReviewService) { 64 $this->performanceReviewService = $performanceReviewService; 65 } 66 67 /** 68 * 69 * @return \KpiService 70 */ 71 public function getKpiService() { 72 if ($this->kpiService == null) { 73 return new KpiService(); 74 } else { 75 return $this->kpiService; 76 } 77 } 78 79 /** 80 * 81 * @param \KpiService $kpiService 82 */ 83 public function setKpiService($kpiService) { 84 $this->kpiService = $kpiService; 85 } 86 87 public function checkIsReviwer($reviewId = null) { 88 if ($reviewId != null) { 89 $review = $this->getPerformanceReviewService()->getReviewById($reviewId); 90 if ($review instanceof PerformanceReview) { 91 if ($review->getStatusId() == 1) { 92 return false; 93 } else { 94 $reviwers = $review->getReviewers(); 95 foreach ($reviwers as $reviwer) { 96 if ($this->getUser()->getAttribute('auth.empNumber') == $reviwer->getEmployeeNumber() && $reviwer->getReviewerGroupId() == 1) { 97 return true; 98 } 99 } 100 } 101 } 102 } 103 return false; 104 } 105 106} 107