/** * @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); } } }