diff --git a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php index b214916cd..12b3f63f7 100644 --- a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php +++ b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php @@ -24,17 +24,27 @@ class Lehrauftrag extends Auth_Controller // Set required permissions parent::__construct( array( - 'index' => 'lehre/lehrauftrag_bestellen:r' + 'index' => 'lehre/lehrauftrag_bestellen:r', + 'orderLehrauftrag' => 'lehre/lehrauftrag_bestellen:rw' ) ); // Load models + $this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel'); + $this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel'); $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); + $this->load->model('accounting/Vertrag_model', 'VertragModel'); // Load libraries $this->load->library('WidgetLib'); $this->load->library('PermissionLib'); + // Load helpers + $this->load->helper('array'); + $this->load->helper('url'); + $this->load->helper('hlp_sancho_helper'); + // Load language phrases $this->loadPhrases( array( @@ -60,15 +70,12 @@ class Lehrauftrag extends Auth_Controller $studiengang_kz = ($studiengang_kz == 'null' ? null : $studiengang_kz); // Retrieve studiengaenge the user is entitled for to populate studiengang dropdown - if (!$studiengang_kz_arr = $this->permissionlib->getSTG_isEntitledFor(self::BERECHTIGUNG_LEHRAUFTRAG_BESTELLEN)) - { + if (!$studiengang_kz_arr = $this->permissionlib->getSTG_isEntitledFor(self::BERECHTIGUNG_LEHRAUFTRAG_BESTELLEN)) { show_error('Fehler bei Berechtigungsprüfung'); } - // Set studiensemester selected for studiengang dropdown $studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester - if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value { $studiensemester = $this->StudiensemesterModel->getNext(); @@ -91,6 +98,49 @@ class Lehrauftrag extends Auth_Controller $this->load->view('lehre/lehrauftrag/lehrauftrag.php', $view_data); } + public function orderLehrauftrag() + { + $result = array(); + $new_lehrvertrag_data_arr = array(); // information of new lehrvertraege to be used in mail + + foreach ($_POST as $lehrauftrag) + { + if (!isEmptyArray($lehrauftrag)) { + if ($this->VertragModel->save( + element('Person_ID', $lehrauftrag), + element('LV_ID', $lehrauftrag), + element('LE_ID', $lehrauftrag), + element('PA_ID', $lehrauftrag), + element('Stunden', $lehrauftrag), + element('Betrag', $lehrauftrag), + element('Studiensemester', $lehrauftrag) + )->retval) + { + $result []= array( + 'id' => $lehrauftrag['id'], + 'Bestellt' => date('Y-m-d') + ); + + $new_lehrvertrag_data_arr[] = array( + 'studiensemester_kurzbz' => $lehrauftrag['Studiensemester'], + 'studiengang_kz' => $lehrauftrag['studiengang_kz'], + 'lv_oe_kurzbz' => $lehrauftrag['lv_oe_kurzbz'] + ); + } + } + } + + if (!isEmptyArray($result)) + { + $this->outputJsonSuccess($result); + } + + // Send email to Mitarbeiter + // if(!$this->_sendMail($new_lehrvertrag_data_arr)) // TODO: slows down Bestell-process -> better chronjob? + { + // return error information // TODO: implement after decision regarding communication process + } + } // ----------------------------------------------------------------------------------------------------------------- // Private methods