diff --git a/application/controllers/jobs/SponsionJob.php b/application/controllers/jobs/SponsionJob.php index ef5f6c880..2ac2c4aa9 100644 --- a/application/controllers/jobs/SponsionJob.php +++ b/application/controllers/jobs/SponsionJob.php @@ -11,44 +11,80 @@ if (!defined('BASEPATH')) exit('No direct script access allowed'); class SponsionJob extends JOB_Controller { - /** - * Constructor - */ - public function __construct() - { + /** + * Constructor + */ + public function __construct() + { parent::__construct(); // Load models - $this->load->model('education/Abschlusspruefung_model', 'AbschlusspruefungModel'); $this->load->model('crm/Prestudent_model', 'PrestudentModel'); - } + $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + } - public function insertDate() - { - $countBewerbungen = 0; + public function insertDate() + { + $countBewerbungen = 0; - //Bewerbungen vom aktuellen Semester + nächstes Semester berücksichtigen - $date_actual = new DateTime('first day of this month midnight'); // date obj of actual date - $month = $date_actual->format('m'); // string month of actual timesheet - $year = $date_actual->format('Y'); // string year of actual timesheet - $nextYear = $year+1; - - print_r("-----------------------------------------------------------------\n"); - $semester1 = "WS" . $year; - $semester2 = ($month>= 6) ? "SS" . $nextYear : "SS" . $year; - - $allInteressenten = $this->PrestudentModel->getAllInteressentenWithMasterSponsion($semester1, $semester2)->retval; - - foreach($allInteressenten as $interessent) + $semester = $this->StudiensemesterModel->getAkt(); + if (isSuccess($semester) && hasData($semester)) { - $this->AbschlusspruefungModel->insertDatumSponsionAsZgvmadatum($interessent->prestudent_id, $interessent->sponsion); - $countBewerbungen++; + $semester = $semester->retval[0]; + $semester = $semester->studiensemester_kurzbz; + } + else + { + $semester = ''; + } + $nextSemester = $this->StudiensemesterModel->getNext(); + if (isSuccess($nextSemester) && hasData($nextSemester)) + { + $nextSemester = $nextSemester->retval[0]; + $nextSemester = $nextSemester->studiensemester_kurzbz; + } + else + { + $nextSemester = ''; } - print_r("Anzahl Inserts Bewerbungen: " . $countBewerbungen); - print_r("\n-----------------------------------------------------------------\n"); + $this->logInfo('Start Sponsion Job'); + $this->logInfo('Check Applications of Semester ' . $semester . 'and '. $nextSemester); - return true; - } + $allInteressenten = $this->PrestudentModel->getAllInteressentenWithMasterSponsion($semester, $nextSemester); + if (isSuccess($allInteressenten) && hasData($allInteressenten)) + { + $allInteressenten = $allInteressenten->retval; + foreach($allInteressenten as $interessent) + { + // $this->AbschlusspruefungModel->insertDatumSponsionAsZgvmadatum($interessent->prestudent_id, $interessent->sponsion); + + $updateArray = array( + 'zgvmadatum' => $interessent->sponsion, + 'updateamum' => date('Y-m-d H:i:s'), + 'updatevon' => 'sponsionJob' + ); + + $prestresult = $this->PrestudentModel->update( + $interessent->prestudent_id, + $updateArray + ); + + if (isSuccess($prestresult)) + { + $this->logInfo('ZGV Master Date for prestudent ID ' . $interessent->prestudent_id . ' was updated to ' . $interessent->sponsion); + } + else + { + $this->logError('Update for prestudent ID ' . $interessent->prestudent_id . ' to ' . $interessent->sponsion . ' failed'); + } + + $countBewerbungen++; + } + } + $this->logInfo('Count Total of inserted ZGV Master Dates: '. $countBewerbungen); + $this->logInfo('End Sponsion Job'); + return true; + } } diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index f5dfceb21..6c5a9f9c2 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -669,11 +669,11 @@ class Prestudent_model extends DB_Model /** - * get all Interessenten without ZGVmasdatum and with Sponsionsdate - * @param $semesterkurzbz1 und $semesterkurzbz2 - * @return array all prestudents with sponsionsdate - */ - public function getAllInteressentenWithMasterSponsion($semesterkurzbz1, $semesterkurzbz2=null) + * get all Interessenten without ZGVmasdatum and with Sponsionsdate + * @param $semesterkurzbz1 und $semesterkurzbz2 + * @return array all prestudents with sponsionsdate + */ + public function getAllInteressentenWithMasterSponsion($semesterkurzbz1, $semesterkurzbz2 = null) { return $this->execQuery( 'SELECT ps.prestudent_id, person_id, ap.sponsion @@ -697,6 +697,4 @@ class Prestudent_model extends DB_Model ) ); } - - } diff --git a/application/models/education/Abschlusspruefung_model.php b/application/models/education/Abschlusspruefung_model.php index 8ad6a3343..7440ec493 100644 --- a/application/models/education/Abschlusspruefung_model.php +++ b/application/models/education/Abschlusspruefung_model.php @@ -113,22 +113,4 @@ class Abschlusspruefung_model extends DB_Model return success($abschlusspruefungdata); } - - -/** - * update ZGV Master - */ -public function insertDatumSponsionAsZgvmadatum($prestudentId, $datumSponsion) -{ - return $this->execQuery( - 'UPDATE public.tbl_prestudent - SET zgvmadatum = ? - WHERE prestudent_id = ?', - array( - $datumSponsion, - $prestudentId - ) - ); -} - }