private function _sendPayment($marker, $marks, $assessmentAssoc, $assessmentFix = 0) { if (count($marks) === 0 && empty($assessmentAssoc)) { return false; } foreach ($marks as $markAssoc) { $mark = new Mark(); $mark->setKey($markAssoc[$mark->getKeyField()]); $mark->paid(); $mark->update(); $markKeys[] = $markAssoc[$mark->getKeyField()]; } $assessmentAmount = 0; if (!empty($assessmentAssoc)) { $assessment = new Assessment(); $assessment->setKey($assessmentAssoc[$assessment->getKeyField()]); $assessment->paid(); $assessment->update(); $markKeys[] = 'Assessment script'; $assessmentAmount = 1; } if ($assessmentFix) { $assessmentFix = new AssessmentFix(); $assessmentFix->setKey($this->_getUser()); $assessmentFix->paid(); $assessmentFix->update(); $markKeys[] = 'Assessment bounty'; } $this->load->model('wage'); $amount = ($assessmentFix + count($marks) + $assessmentAmount) * 1.5; $wage = new Wage(); $wage->paid($marker, $amount, $markKeys); $wage->create(); return $amount; }
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'))); }