Пример #1
0
 /**
  * @Route("/new", name="siswa-kelas_new")
  * @Template()
  */
 public function newAction($idsiswa)
 {
     $this->setCurrentMenu();
     $em = $this->getDoctrine()->getManager();
     $siswa = $em->getRepository('LanggasSisdikBundle:Siswa')->find($idsiswa);
     if (!(is_object($siswa) && $siswa instanceof Siswa)) {
         throw $this->createNotFoundException('Entity Siswa tak ditemukan.');
     }
     if ($this->get('security.authorization_checker')->isGranted('create', $siswa) === false) {
         throw new AccessDeniedException($this->get('translator')->trans('akses.ditolak'));
     }
     $entity = new SiswaKelas();
     $entity->setSiswa($siswa);
     $form = $this->createForm('sisdik_siswakelas', $entity);
     return ['entity' => $entity, 'form' => $form->createView(), 'siswa' => $siswa];
 }
 /**
  * @param  array         $content
  * @param  array         $fieldnames
  * @param  Sekolah       $sekolah
  * @param  TahunAkademik $tahunAkademik
  * @param  Kelas         $kelas
  * @param  boolean       $andFlush
  * @throws \Exception
  */
 private function menempatkanSiswa($content, $fieldnames, $sekolah, $tahunAkademik, $kelas, $andFlush = false)
 {
     $em = $this->getDoctrine()->getManager();
     $keyNomorIndukSistem = array_search('nomorIndukSistem', $fieldnames);
     if (is_int($keyNomorIndukSistem)) {
         $siswa = $em->getRepository('LanggasSisdikBundle:Siswa')->findOneBy(['nomorIndukSistem' => $content[$keyNomorIndukSistem], 'sekolah' => $sekolah]);
         if (!$siswa && !$siswa instanceof Siswa) {
             return;
         }
         $siswaKelas = $em->getRepository('LanggasSisdikBundle:SiswaKelas')->findOneBy(['siswa' => $siswa, 'tahunAkademik' => $tahunAkademik, 'kelas' => $kelas]);
         if (!$siswaKelas instanceof SiswaKelas) {
             $siswaKelas = new SiswaKelas();
             $siswaKelas->setSiswa($siswa);
             $siswaKelas->setTahunAkademik($tahunAkademik);
             $siswaKelas->setKelas($kelas);
         }
         $keyKodeJurusan = array_search('kodeJurusan', $fieldnames);
         if (is_int($keyKodeJurusan)) {
             $penjurusan = $em->getRepository('LanggasSisdikBundle:Penjurusan')->findOneBy(['kode' => $content[$keyKodeJurusan], 'sekolah' => $sekolah]);
             if (!$penjurusan) {
                 $siswaKelas->setPenjurusan(null);
             } else {
                 $siswaKelas->setPenjurusan($penjurusan);
             }
         }
         $keyKeterangan = array_search('keterangan', $fieldnames);
         if (is_int($keyKeterangan)) {
             $siswaKelas->setKeterangan($content[$keyKeterangan]);
         }
         $keyAktif = array_search('aktif', $fieldnames);
         if (is_int($keyAktif)) {
             $siswaKelas->setAktif($content[$keyAktif]);
         } else {
             throw $this->createNotFoundException('Status aktif/non-aktif siswa di suatu kelas harus ditentukan.');
         }
         $keyHapus = array_search('hapus', $fieldnames);
         if (is_int($keyHapus) && $content[$keyHapus] == 1) {
             $em->remove($siswaKelas);
         } else {
             $em->persist($siswaKelas);
         }
         $this->siswaDitempatkanJumlah++;
         if ($andFlush) {
             $em->flush();
             $em->clear($siswaKelas);
         }
     }
 }