public function addTempDisciplinesToRequest() { $this->load->model('temporaryrequest_model'); $courseId = $this->input->post('courseId'); $userId = $this->input->post('userId'); $dataIsOk = $this->validateTempDisciplineData(); if ($dataIsOk) { $disciplineCode = $this->input->post('discipline_code_search'); $semesterId = $this->input->post('semesterId'); $offer = new Offer(); $courseOffer = $offer->getOfferBySemesterAndCourse($semesterId, $courseId); if ($courseOffer !== FALSE) { $disciplineExistsInOfferList = $offer->disciplineExistsInOffer($disciplineCode, $courseOffer['id_offer']); } else { $disciplineExistsInOfferList = FALSE; } if ($disciplineExistsInOfferList) { $disciplineClass = $this->input->post('discipline_class_search'); $classExists = $offer->checkIfClassExistsInDiscipline($courseOffer['id_offer'], $disciplineCode, $disciplineClass); if ($classExists) { $offerDiscipline = $offer->getCourseOfferDisciplineByClass($disciplineCode, $courseOffer['id_offer'], $disciplineClass); if ($offerDiscipline !== FALSE) { $idOfferDiscipline = $offerDiscipline['id_offer_discipline']; $userTempRequest = $this->getUserTempRequest($userId, $courseId, $semesterId); $tryToSave = FALSE; if ($userTempRequest !== FALSE) { // Get the requested discipline hours $schedule = new Schedule(); $schedule->getDisciplineHours($idOfferDiscipline); $requestedDisciplineSchedule = $schedule->getDisciplineSchedule(); // Get disciplines hours from already inserted to resquest disciplines $insertedDisciplines = array(); foreach ($userTempRequest as $registeredRequest) { $schedule = new Schedule(); $schedule->getDisciplineHours($registeredRequest['discipline_class']); $disciplineSchedule = $schedule->getDisciplineSchedule(); $insertedDisciplines[] = $disciplineSchedule; } $conflicts = $schedule->checkHourConflits($requestedDisciplineSchedule, $insertedDisciplines); $tryToSave = FALSE; if ($conflicts !== FALSE) { $status = "danger"; $message = "Não foi possível adicionar a disciplina pedida porque houve conflito de horários com disciplinas já adicionadas.<br>\n\t\t\t\t\t\t\t\t<i>Conflito no horário <b>" . $conflicts->getDayHourPair() . "</b>.</i>"; } else { $tryToSave = TRUE; } } else { // In this case there is no discipline added to temp request, so is not a problem to add $tryToSave = TRUE; } if ($tryToSave) { $requestWasSaved = $this->saveTempRequest($userId, $courseId, $semesterId, $disciplineCode, $idOfferDiscipline); if ($requestWasSaved) { $status = "success"; $message = "Disciplina adicionada com sucesso à solicitação"; } else { $status = "danger"; $message = "Não foi possível adicionar a disciplina informada.\n\t\t\t\t\t\t\t\t\t\t\t Cheque os dados informados e tente novamente.<br>\t\n\t\t\t\t\t\t\t\t\t\t\t Não é possível adicionar a mesma turma de uma disciplina várias vezes."; } } } else { $status = "danger"; $message = "Não foi possível adicionar a disciplina informada.\n\t\t\t\t\t\t\t\t\t Cheque os dados informados e tente novamente.<br>\t\n\t\t\t\t\t\t\t\t\t Não é possível adicionar a mesma turma de uma disciplina várias vezes."; } } else { $status = "danger"; $message = "Turma não encontrada para disciplina informada."; } } else { $status = "danger"; $message = "Disciplina não encontrada na lista de oferta do seu curso."; } } else { $status = "danger"; $message = "Dados na forma incorreta. Informe apenas números para o código e letras para a turma."; } $this->session->set_flashdata($status, $message); redirect("request/studentEnrollment/{$courseId}/{$userId}"); }