/**
  * @Route("/result/create", name="result_create")
  */
 public function createAction(Request $request)
 {
     $result = new student_module_grade();
     // generating data for the form
     $students = Student::getAll();
     $studentIds = array();
     foreach ($students as $student) {
         $studentIds[$student->getIndexNo()] = $student->getIndexNo();
         //array_push($studentIds, $student->getIndexNo());
     }
     $modules = Module::getAll();
     $moduleIds = array();
     foreach ($modules as $module) {
         $moduleIds[$module->getCode()] = $module->getCode();
         //array_push($moduleIds, $module->getCode());
     }
     $grades = Grade::getAll();
     $gradeIds = array();
     foreach ($grades as $grade) {
         $gradeIds[$grade->getGrade()] = $grade->getGrade();
         //array_push($gradeIds, $grade->getGrade());
     }
     $form = $this->createFormBuilder($result)->add('s_id', ChoiceType::class, array('choices' => $studentIds, 'choices_as_values' => true, 'label' => 'Index No'))->add('m_code', ChoiceType::class, array('choices' => $moduleIds, 'choices_as_values' => true, 'label' => 'Module'))->add('grade', ChoiceType::class, array('choices' => $gradeIds, 'choices_as_values' => true, 'label' => 'Grade'))->add('save', SubmitType::class, array('label' => 'Add Marks'))->getForm();
     $form->handleRequest($request);
     if ($form->isSubmitted() && $form->isValid()) {
         // ... perform some action, such as saving the task to the database
         $result->save();
         return $this->redirectToRoute('result_create');
     }
     ////////////////////////form 2 for add multiple//////////////////////////////////
     $form2Data = array('message' => 'Type your message here');
     $form2 = $this->createFormBuilder($form2Data)->add('m_code', ChoiceType::class, array('choices' => $moduleIds, 'choices_as_values' => true, 'label' => 'Module'))->add('marks', TextType::class)->add('save', SubmitType::class, array('label' => 'Add Marks'))->getForm();
     $form2->handleRequest($request);
     if ($form2->isSubmitted() && $form2->isValid()) {
         // ... perform some action, such as saving the task to the database
         $data = $form2->getData();
         //die($data['marks']);
         $module = $data['m_code'];
         $marks = $data['marks'];
         //$em = $this->getDoctrine()->getManager();
         $doc = $this->getDoctrine();
         student_module_grade::saveAll($module, $marks, $doc);
         return $this->redirectToRoute('result_create');
     }
     //////////////////////////////////////////////////////////
     // ADDED THE FORM2 array
     return $this->render('result/create.html.twig', array('form' => $form->createView(), 'form2' => $form2->createView()));
 }
 public static function updateGpa($semester_id)
 {
     $con = Connection::getConnectionObject()->getConnection();
     // Check connection
     if (mysqli_connect_errno()) {
         echo "Failed to connect to MySQL: " . mysqli_connect_error();
     }
     $students = Student::getAll();
     $results = Semester_results::getAllSemester($semester_id);
     //check student in semester_resultsr
     foreach ($students as $student) {
         $inResults = false;
         foreach ($results as $result) {
             if ($student->getId() == $result->stuId) {
                 $inResults = true;
                 break;
             }
         }
         if ($inResults == false) {
             $result = new Semester_results();
             $result->setStuId($student->getId());
             $result->setSemId($semester_id);
             array_push($results, $result);
         }
     }
     foreach ($results as $result) {
         //vars for calculate gpa
         $totalMark = 0.0;
         $totalCredits = 0.0;
         //die($result->stuId);
         //query to get the marks and credits
         $stmt = $con->prepare('SELECT module.credits,grade.mark FROM module,student_module_grade,grade,student WHERE module.code = student_module_grade.m_code AND student_module_grade.grade = grade.grade AND student_module_grade.s_id = student.index_no AND module.gpa = true AND student.id = ?');
         $stmt->bind_param("s", $result->stuId);
         $stmt->execute();
         $stmt->bind_result($credits, $mark);
         while ($stmt->fetch()) {
             $totalMark += $mark * $credits;
             $totalCredits += $credits;
         }
         //adding the gpa to the result object
         if ($totalCredits > 0) {
             $result->gPA = $totalMark / $totalCredits;
         }
     }
     return $results;
 }
 /**
  * @Route("/student/view", name="student_viewAll")
  */
 public function viewallAction(Request $request)
 {
     $students = Student::getAll();
     return $this->render('student/viewall.html.twig', array('students' => $students));
 }