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