/**
  * Memperbarui kehadiran siswa.
  *
  * @Route("/update", name="kehadiran-siswa_update")
  * @Method("POST")
  * @Secure(roles="ROLE_GURU_PIKET")
  */
 public function updateAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $data = $request->request->get('sisdik_kehadiransiswa');
     foreach ($data as $keys => $values) {
         if (preg_match('/kehadiran_(\\d+)$/', $keys, $matches) !== false) {
             if (array_key_exists(1, $matches)) {
                 $kehadiran = $em->getRepository('LanggasSisdikBundle:KehadiranSiswa')->find($matches[1]);
                 if (is_object($kehadiran) && $kehadiran instanceof KehadiranSiswa) {
                     $kehadiran->setStatusKehadiran($values);
                     $kehadiran->setPermulaan(false);
                     $kehadiran->setTervalidasi(true);
                     $kehadiran->setKeteranganStatus($data['kehadiran_keterangan_' . $matches[1]]);
                     $em->persist($kehadiran);
                 }
             }
         }
     }
     $return = [];
     if (is_object($kehadiran) && $kehadiran instanceof KehadiranSiswa) {
         $prosesKehadiranSiswa = $em->getRepository('LanggasSisdikBundle:ProsesKehadiranSiswa')->findOneBy(['sekolah' => $kehadiran->getSekolah(), 'tahunAkademik' => $kehadiran->getTahunAkademik(), 'kelas' => $kehadiran->getKelas(), 'tanggal' => $kehadiran->getTanggal()]);
         if (is_object($prosesKehadiranSiswa) && $prosesKehadiranSiswa instanceof ProsesKehadiranSiswa) {
             $prosesKehadiranSiswa->setBerhasilValidasi(true);
         } else {
             $prosesKehadiranSiswa = new ProsesKehadiranSiswa();
             $prosesKehadiranSiswa->setSekolah($kehadiran->getSekolah());
             $prosesKehadiranSiswa->setTahunAkademik($kehadiran->getTahunAkademik());
             $prosesKehadiranSiswa->setKelas($kehadiran->getKelas());
             $prosesKehadiranSiswa->setTanggal($kehadiran->getTanggal());
             $prosesKehadiranSiswa->setBerhasilValidasi(true);
         }
         $em->persist($prosesKehadiranSiswa);
         $return['berhasilValidasi'] = 1;
     }
     $em->flush();
     $return['responseCode'] = 200;
     $return['responseText'] = $this->get('translator')->trans('flash.presence.student.updated');
     $return['matches'] = $matches;
     $return['data'] = $data;
     $return = json_encode($return);
     return new Response($return, 200, ['Content-Type' => 'application/json']);
 }