protected function init()
 {
     $header1 = new PerformanceEvaluationLinkHeader();
     $header2 = new ListHeader();
     $header3 = new ReviewPeriodHeader();
     $header4 = new ListHeader();
     $header6 = new ListHeader();
     $header7 = new ListHeader();
     $header8 = new ListHeader();
     $header1->populateFromArray(array('name' => 'Employee', 'width' => '20%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'performanceEvaluationLink', 'elementProperty' => array('labelGetter' => array('getEmployee', 'getFullName'), 'placeholderGetters' => array('id' => 'getId'), 'urlPattern' => 'index.php/performance/reviewEvaluate/id/{id}')));
     $header2->populateFromArray(array('name' => 'Due Date', 'width' => '10%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'label', 'elementProperty' => array('getter' => 'getDueDate')));
     $header3->populateFromArray(array('name' => 'Review Period', 'width' => '20%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'ReviewPeriod'));
     $header4->populateFromArray(array('name' => 'Job Title', 'width' => '10%', 'isSortable' => false, 'sortField' => null, 'elementType' => 'label', 'elementProperty' => array('getter' => array('getJobTitle', 'getJobTitle'))));
     $reviewStatus = array();
     $reviewStatus[ReviewStatusActivated::getInstance()->getStatusId()] = ReviewStatusActivated::getInstance()->getName();
     $reviewStatus[ReviewStatusApproved::getInstance()->getStatusId()] = ReviewStatusApproved::getInstance()->getName();
     $reviewStatus[ReviewStatusInProgress::getInstance()->getStatusId()] = ReviewStatusInProgress::getInstance()->getName();
     $reviewStatus[ReviewStatusInactive::getInstance()->getStatusId()] = ReviewStatusInactive::getInstance()->getName();
     $header6->populateFromArray(array('name' => 'Review Status', 'width' => '15%', 'isSortable' => false, 'sortField' => null, 'filters' => array('EnumCellFilter' => array('enum' => $reviewStatus, 'default' => ''), 'I18nCellFilter' => array()), 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => 'getStatusId')));
     $reviewStatus = array();
     $reviewStatus[ReviewerReviewStatusActivated::getInstance()->getStatusId()] = ReviewerReviewStatusActivated::getInstance()->getName();
     $reviewStatus[ReviewerReviewStatusCompleted::getInstance()->getStatusId()] = ReviewerReviewStatusCompleted::getInstance()->getName();
     $reviewStatus[ReviewerReviewStatusInProgress::getInstance()->getStatusId()] = ReviewerReviewStatusInProgress::getInstance()->getName();
     $header7->populateFromArray(array('name' => 'Evaluation Status', 'width' => '15%', 'isSortable' => false, 'sortField' => null, 'filters' => array('EnumCellFilter' => array('enum' => $reviewStatus, 'default' => ''), 'I18nCellFilter' => array()), 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => array('getReviewers', 'getFirst', 'getStatus'))));
     $this->headers = array($header1, $header2, $header3, $header4, $header6, $header7);
 }
 public function __toString()
 {
     $linkable = $this->getPropertyValue('linkable', true);
     if ($linkable instanceof sfOutputEscaperArrayDecorator || is_array($linkable)) {
         list($method, $params) = $linkable;
         $linkable = call_user_func_array(array($this->dataObject, $method), $params->getRawValue());
     }
     if ($linkable) {
         $placeholderGetters = $this->getPropertyValue('placeholderGetters');
         $urlPattern = $this->getPropertyValue('urlPattern');
         if ($this->dataObject->getStatusId() == ReviewStatusInactive::getInstance()->getStatusId()) {
             $urlPattern = 'saveReview?hdnEditId={id}';
         } else {
             $urlPattern = 'reviewEvaluateByAdmin?id={id}';
         }
         $url = $urlPattern;
         foreach ($placeholderGetters as $placeholder => $getter) {
             $placeholderValue = is_array($this->dataObject) ? $this->dataObject[$getter] : $this->dataObject->{$getter}();
             $url = preg_replace("/\\{{$placeholder}\\}/", $placeholderValue, $url);
         }
         if (preg_match('/^index.php/', $url)) {
             sfProjectConfiguration::getActive()->loadHelpers('Url');
             $url = public_path($url, true);
         }
         $linkAttributes = array('href' => $url);
         if ($this->hasProperty('labelGetter')) {
             $label = $this->getValue('labelGetter');
         } else {
             $label = $this->getPropertyValue('label', 'Undefined');
         }
         if ($this->dataObject->getStatusId() == ReviewStatusInactive::getInstance()->getStatusId()) {
             return content_tag('a', __('Edit Details'), $linkAttributes) . $this->getHiddenFieldHTML();
         } else {
             return content_tag('a', __('Evaluate'), $linkAttributes) . $this->getHiddenFieldHTML();
         }
     } else {
         return $this->toValue();
     }
 }
 protected function init()
 {
     $headerArray = array();
     $header1 = new ListHeader();
     $header2 = new DueDateHeader();
     $header3 = new ReviewPeriodHeader();
     $header4 = new ListHeader();
     $header6 = new ManagePerformanceActionHeader();
     $header5 = new ListHeader();
     $header1->populateFromArray(array('name' => 'Employee', 'isSortable' => true, 'sortField' => 'employeeId', 'elementType' => 'label', 'elementProperty' => array('getter' => array('getEmployee', 'getFullName'))));
     $header2->populateFromArray(array('name' => 'Due Date', 'isSortable' => true, 'sortField' => 'due_date', 'elementType' => 'DueDate'));
     $header3->populateFromArray(array('name' => 'Review Period', 'isSortable' => false, 'sortField' => null, 'elementType' => 'ReviewPeriod', 'elementProperty' => array('getter' => 'getWorkPeriodStart')));
     $header4->populateFromArray(array('name' => 'Work Period End Date', 'isSortable' => false, 'sortField' => null, 'elementType' => 'label', 'elementProperty' => array('getter' => 'getWorkPeriodEnd')));
     $header4->populateFromArray(array('name' => 'Job Title', 'isSortable' => false, 'sortField' => null, 'elementType' => 'label', 'elementProperty' => array('getter' => array('getJobTitle', 'getJobTitle'))));
     $header6->populateFromArray(array('name' => 'Action', 'isSortable' => false, 'sortField' => null, 'elementType' => 'ManagePerformanceAction', 'elementProperty' => array('placeholderGetters' => array('id' => 'getId'), 'urlPattern' => 'index.php/performance/performanceReviewProgress?id={id}')));
     $reviewStatus = array();
     $reviewStatus[ReviewStatusActivated::getInstance()->getStatusId()] = ReviewStatusActivated::getInstance()->getName();
     $reviewStatus[ReviewStatusApproved::getInstance()->getStatusId()] = ReviewStatusApproved::getInstance()->getName();
     $reviewStatus[ReviewStatusInProgress::getInstance()->getStatusId()] = ReviewStatusInProgress::getInstance()->getName();
     $reviewStatus[ReviewStatusInactive::getInstance()->getStatusId()] = ReviewStatusInactive::getInstance()->getName();
     $header5->populateFromArray(array('name' => 'Status', 'width' => '10%', 'isSortable' => false, 'sortField' => null, 'filters' => array('EnumCellFilter' => array('enum' => $reviewStatus, 'default' => ''), 'I18nCellFilter' => array()), 'elementType' => 'label', 'textAlignmentStyle' => 'left', 'elementProperty' => array('getter' => 'getStatusId')));
     $this->headers = array($header1, $header2, $header3, $header4, $header5, $header6);
 }
Пример #4
0
 /**
  *
  * @return type 
  */
 public function saveForm($postData)
 {
     $formValues = $this->getValues();
     $isSupervisorValid = true;
     $reviewers = array();
     if ($postData['saveReview360Form']['supervisorReviewerId']) {
         $reviewers['supervisors'] = array($postData['saveReview360Form']['supervisorReviewerId']);
     }
     if ($formValues['reviewId'] > 0) {
         $review = $this->getPerformanceReviewService()->searchReview(array('id' => $formValues['reviewId']));
     } else {
         $review = new PerformanceReview();
         $isSupervisorValid = $this->isSupervisorValid($formValues['employeeId'], $postData['saveReview360Form']['supervisorReviewerId']);
     }
     if ($isSupervisorValid) {
         $review->setEmployeeNumber($formValues['employeeId']);
         $review->setWorkPeriodStart(date("Y-m-d", strtotime($formValues['workPeriodStartDate'])));
         $review->setWorkPeriodEnd(date("Y-m-d", strtotime($formValues['workPeriodEndDate'])));
         $review->setDueDate(date("Y-m-d", strtotime($formValues['dueDate'])));
         $employee = $this->getEmployeeService()->getEmployee($formValues['employeeId']);
         $review->setJobTitleCode($employee->getJobTitleCode());
         $review->setDepartmentId($employee->getWorkStation());
         $review->save();
         $postData['reviewers'] = $reviewers;
         $review = $this->createReviewers($postData['reviewers'], $review);
         $review->save();
         $this->setReview($review);
         if ($formValues['formAction'] == 'save') {
             $review->setStatusId(ReviewStatusInactive::getInstance()->getStatusId());
             $review->save();
         } else {
             if ($formValues['formAction'] == 'activate') {
                 $review = $this->createRatings($review);
                 $review->save();
                 $errorMessages = array();
                 $employee = $this->getEmployeeService()->getEmployee($this->getValue('employeeId'));
                 if ($employee->getJobTitle()->getId() == null && $employee->getSubDivision()->getId() == null) {
                     $errorMessages[] = __("Cannot activate review for employees who doesn't have Job Title and/or Sub-Division");
                 }
                 if (!isset($postData['reviewers'])) {
                     $errorMessages[] = __("Cannot activate review without reviewers");
                 } else {
                     if (sizeof($review->getReviewerRating()) == 0) {
                         $errorMessages[] = __("Cannot activate review without KPIs");
                     }
                 }
                 if (sizeof($errorMessages) == 0) {
                     $review->setStatusId(ReviewStatusActivated::getInstance()->getStatusId());
                     $review->setActivatedDate(date("Y-m-d H:i:s"));
                     $review->save();
                     return true;
                 } else {
                     $this->setTemplateMessage(implode("<br/>", $errorMessages));
                     $review->setStatusId(ReviewStatusInactive::getInstance()->getStatusId());
                     $review->save();
                     return false;
                 }
             }
         }
         return true;
     } else {
         $errorMessages = array();
         $errorMessages[] = __("Invalid Supervisor");
         $this->setTemplateMessage(implode("<br/>", $errorMessages));
     }
 }
Пример #5
0
 public function testIsEvaluationsCompleateEnabledForReviewStatusInactive()
 {
     $status = new ReviewStatusInactive();
     $this->assertFalse($status->isEvaluationsCompleateEnabled());
 }
 public function getPerformanceReviewStatusAsArray($includeInactive = false)
 {
     $reviewStatus = array();
     $reviewStatus[0] = 'All';
     if ($includeInactive) {
         $reviewStatus[ReviewStatusInactive::getInstance()->getStatusId()] = ReviewStatusInactive::getInstance()->getName();
     }
     $reviewStatus[ReviewStatusActivated::getInstance()->getStatusId()] = ReviewStatusActivated::getInstance()->getName();
     $reviewStatus[ReviewStatusApproved::getInstance()->getStatusId()] = ReviewStatusApproved::getInstance()->getName();
     $reviewStatus[ReviewStatusInProgress::getInstance()->getStatusId()] = ReviewStatusInProgress::getInstance()->getName();
     return $reviewStatus;
 }