示例#1
0
 public function pay(Marker $marker, $marks, $amount)
 {
     if (!is_numeric($amount)) {
         throw new Exception('ContractPayment requires amount as a number');
     }
     if (!is_array($marks)) {
         if (!$marks instanceof Mark) {
             throw new Exception('ContractPayment requires either an array of Marks, or a Mark as second argument');
         }
         // put the single script in an array
         $marks = array($marks);
     }
     // get each mark's key, and set status to paid
     foreach ($marks as $mark) {
         if (!$marks instanceof Mark) {
             throw new Exception('ContractPayment requires either an array of Marks as second argument');
         }
         $markIDs[] = $mark->getKey();
     }
     $markIDs = serialize($markIDs);
     $this->set('marker', $marker->getKey());
     $this->set('marks', $markIDs);
     $this->set('amount', $amount);
     $this->set('dateSent', null);
     if (!($result = $this->create())) {
         throw new Exception('Could not create new contract payment');
     }
     foreach ($marks as $mark) {
         $mark->paid();
         $mark->update();
     }
     return $result;
 }
示例#2
0
 function panel()
 {
     $this->load->model('marker');
     $this->load->model('assessment');
     $this->load->library('validation');
     $this->load->model('mark');
     $this->load->model('markerPref');
     // form submit names
     $updatePref = 'updatePref';
     $markerEmail = $this->session->userdata($this->_sessionAuthVar);
     $marker = new Marker();
     $marker->retrieve($markerEmail);
     $markerPref = new MarkerPref();
     $markerPref->retrieve($markerEmail);
     // do this first due to the hacky implementation - it will result in doubled validation
     // messages for every other form
     if ($this->_updatePref($marker, $markerPref)) {
         $viewData['checkpoints'][] = 'You have successfully updated your job update preferences';
     }
     // assessment fix required?
     $requireFix = array("*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**");
     $viewData['assessmentFix'] = false;
     if (in_array($this->_getUser(), $requireFix)) {
         $viewData['assessmentFix'] = true;
     }
     $this->load->model('assessmentFix');
     if ($viewData['assessmentFix']) {
         $assessmentFix = new AssessmentFix();
         $assessmentFix->setKey($this->_getUser());
         if ($assessmentFix->retrieve()) {
             $viewData['assessmentFix'] = false;
         }
     }
     if ($this->input->post('assessmentFix')) {
         if ($this->_checkToken()) {
             $this->load->library('validation');
             $rules['requireFix'] = 'required';
             $fields['requireFix'] = 'yes or no';
             $this->validation->set_rules($rules);
             $this->validation->set_fields($fields);
             if ($this->validation->run() === true) {
                 $assessmentFix = new AssessmentFix();
                 $assessmentFix->requireFix($this->input->post('requireFix'));
                 $assessmentFix->setKey($this->_getUser());
                 $assessmentFix->create();
                 $viewData['checkpoints'][] = 'You have registered for the assessment fix. You will paid a re-assessment bounty when you submit your assessment.';
                 $viewData['assessmentFix'] = false;
             }
         }
     }
     if ($this->input->post('changePassword')) {
         if ($this->_checkToken()) {
             $this->load->library('validation');
             $rules['currentPassword'] = '******';
             $rules['newPassword'] = '******';
             $rules['newPasswordRepeat'] = 'required|matches[newPassword]';
             $fields['currentPassword'] = '******';
             $fields['newPassword'] = '******';
             $fields['newPasswordRepeat'] = 'new password repeated';
             $this->validation->set_rules($rules);
             $this->validation->set_fields($fields);
             if ($this->validation->run() === true) {
                 $marker = new Marker();
                 $marker->setKey($this->_getUser());
                 $marker->retrieve();
                 if ($marker->get('password') === $marker->makePass($this->input->post('currentPassword'))) {
                     $marker->set('password', $marker->makePass($this->input->post('newPassword')));
                     $viewData['checkpoints'][] = 'You have successfully changed your password.';
                     $marker->update();
                 } else {
                     $viewData['errors'][] = 'You did not enter your current password correctly.';
                 }
             }
         }
     }
     $viewData['token'] = $this->_token();
     $viewData['markerPref'] = $markerPref;
     if ($this->session->flashdata('action')) {
         $viewData['checkpoints'][] = $this->session->flashdata('action');
     }
     $viewData['marker'] = $marker;
     $headData['js'][] = 'eb_ui';
     $viewData['assessment'] = false;
     $viewData[$updatePref] = $updatePref;
     if ($this->assessment->retrieve($marker->getKey())) {
         $viewData['assessment'] = true;
     }
     $this->load->view('html_head.php', $headData);
     $this->load->view('page_head.php', array('bodyId' => 'my account', 'userAuth' => @$this->session->userdata('email'), 'markerAuth' => @$this->session->userdata('markerEmail'), 'site_pages' => $this->config->item('site_pages')));
     $this->load->view('marker/panel', $viewData);
     $this->load->view('footer.php', array('site_base' => $this->config->item('base_url')));
 }