Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function approveSurat(NdSurat $surat)
- {
- $this->entityManager->beginTransaction();
- $ab = $this->getStatus($surat->getIdSurat()) - 1;
- $kode_masalah = $surat->getIdMasalah()->getKodeMasalah();
- $ads = $this->getUser()->getIdEmployee()->getId();
- $kodeUnit = $this->userInfo->getJabatan($ads)->getIdOrganizationStructure()->getIdJobUnit()->getKodeUnit();
- if ($surat->getStep() === $ab) {
- $this->getNoSurattt($kodeUnit, $kode_masalah, $bulan = null, $klasifikasi_keamanan = 2);
- $surat->setNoSurat($this->getNoSurattt($kodeUnit, $kode_masalah, $bulan = null, $klasifikasi_keamanan = 2));
- $this->entityManager->persist($surat);
- $this->entityManager->flush($surat);
- $agenda = $this->entityManager->getRepository(NdAgenda::class);
- $agen = $agenda->findBy(['refid' => $surat->getIdSurat()]);
- $datas = $surat->getKepadadaftar();
- $ags = new NdAgenda();
- $ags->setAgendaType($tipe = 2);
- $ags->setRefid($surat);
- $ags->setNoAgenda($this->getAgenda($kodeUnit, $tipe = null, $bulan = null));
- $ags->setAgendaCreated(new \Datetime());
- $ajb = $this->getUser()->getIdEmployee()->getId();
- $ab = $this->userInfo->getJabatan($ajb)->getIdOrganizationStructure()->getIdDivision()->getCode();
- $ags->setAgendaKey($kodeUnit . "-" . $ab);
- $this->entityManager->persist($ags);
- // $this->entityManager->flush($ags);
- for ($i = 0; $i < count($datas); $i++) {
- $pen = $this->entityManager->getRepository(CommonOrganizationStructure::class)->findBy(['id' => $datas[$i]]);
- foreach ($pen as $pens) {
- $ajb = new NdAgenda();
- $ajb->setAgendaType($tipe = 1);
- $ajb->setRefid($surat);
- $ajb->setNoAgenda($this->getAgenda($kodeUnit, $tipe = 'MASUK', $bulan = null));
- $ajb->setAgendaCreated(new \DateTime());
- $ajb->setAgendaKey($kodeUnit . "-" . $pens->getIdDivision()->getCode());
- $this->entityManager->persist($ajb);
- //$this->entityManager->flush($ajb);
- }
- }
- foreach ($surat->getKepadadaftar() as $kpd) {
- /*$apnes = $this->getkepadadaftar2($kpd,$surat->getidSurat());
- dd($apnes);
- die();*/
- $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
- $penerima = new NdPenerima();
- $penerima->setTypePenerima(1);
- $penerima->setPenerimaJabatan($kpd);
- $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
- $penerima->setPenerimaText($strukturpenerima->
- getIdOrganizationStructure()->getIdJobPosition()->getNames());
- $penerima->setRefid($surat);
- $this->entityManager->persist($penerima);
- }
- foreach ($surat->getTembusandaftar() as $kpd) {
- $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
- $penerima = new NdPenerima();
- $penerima->setTypePenerima(3);
- $penerima->setPenerimaJabatan($kpd);
- $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
- $penerima->setPenerimaText($strukturpenerima->
- getIdOrganizationStructure()->getIdJobPosition()->getNames());
- $penerima->setRefid($surat);
- $this->entityManager->persist($penerima);
- }
- $res = $this->entityManager->getRepository(NdPenerima::class);
- $penerima = $res->findBy(['refid' => $surat->getIdSurat()]);
- foreach ($penerima as $kpd) {
- $kepada = new NdReader();
- $kepada->setRefid($surat);
- $kepada->setReadStatus(1);
- $kepada->setReaderJabatan($kpd->getPenerimaJabatan());
- $kepada->setReaderNama($kpd->getPenerimaNama());
- $this->entityManager->persist($kepada);
- //$this->entityManager->flush($kepada);
- }
- $suratstatus = $this->entityManager->getRepository(NdSuratStatus::class)->
- find(3);
- $surat->setIdSuratStatus($suratstatus);
- $surat->setTglSelesai(new \DateTime());
- $this->entityManager->persist($surat);
- }
- else {
- $surat->setStep($surat->getStep() + 1);
- $step = $surat->getStep();
- $pemeriksa = $this->entityManager->
- getRepository(NdApprover::class)->
- findBy(['refid' => $surat->getIdSurat()]);
- ////////// dimulai dari siini
- $badang = $surat->getKepadadaftar();
- // $balung = $surat->getTembusandaftar();
- foreach ($surat->getKepadadaftar() as $kpd)
- {
- $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
- $penerima = new NdPenerima();
- $penerima->setTypePenerima(1);
- $penerima->setPenerimaJabatan($kpd);
- $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
- $penerima->setPenerimaText($strukturpenerima->
- getIdOrganizationStructure()->getIdJobPosition()->getNames());
- $penerima->setRefid($surat);
- //$this->entityManager->persist($penerima);
- /* if($badang++)
- {
- $penerima = $this->entityManager->getRepository(NdPenerima::class)->findOneBy(['refid'=>$surat->getIdSurat()]);
- $this->entityManager->remove($penerima);
- $this->entityManager->flush();
- $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
- $penerima = new NdPenerima();
- $penerima->setTypePenerima(1);
- $penerima->setPenerimaJabatan($kpd);
- $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
- $penerima->setPenerimaText($strukturpenerima->
- getIdOrganizationStructure()->getIdJobPosition()->getNames());
- $penerima->setRefid($surat);
- $this->entityManager->persist($penerima);
- }
- else
- {
- $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
- $penerima = new NdPenerima();
- $penerima->setTypePenerima(1);
- $penerima->setPenerimaJabatan($kpd);
- $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
- $penerima->setPenerimaText($strukturpenerima->
- getIdOrganizationStructure()->getIdJobPosition()->getNames());
- }*/
- }
- foreach ($surat->getTembusandaftar() as $kpd) {
- $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
- $penerima = new NdPenerima();
- $penerima->setTypePenerima(3);
- $penerima->setPenerimaJabatan($kpd);
- $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
- $penerima->setPenerimaText($strukturpenerima->
- getIdOrganizationStructure()->getIdJobPosition()->getNames());
- $penerima->setRefid($surat);
- // $this->entityManager->persist($penerima);
- }
- if ($step >= count($pemeriksa)) {
- //pemeriksa terakhir
- //menambahkan ndreader
- $res = $this->entityManager->getRepository(NdPenerima::class);
- $penerima = $res->findBy(['refid' => $surat->getIdSurat()]);
- foreach ($penerima as $kpd) {
- $kepada = new NdReader();
- $kepada->setRefid($surat);
- $kepada->setReadStatus(1);
- $kepada->setReaderJabatan($kpd->getPenerimaJabatan());
- $kepada->setReaderNama($kpd->getPenerimaNama());
- $this->entityManager->persist($kepada);
- // $this->entityManager->flush($kepada);
- $delegasi = $this->userInfo->getDelegasi($kpd->getPenerimaNama(), new \Datetime());
- if ($delegasi) {
- $kepada = new NdReader();
- $kepada->setRefid($surat->getIdSurat());
- $kepada->setReadStatus(1);
- $kepada->setReaderJabatan($delegasi->getDelegasiTo());
- $kepada->setReaderNama($this->userInfo->
- getJabatanByIdStruktur($delegasi->getDelegasiTo())->
- getIdEmployee());
- $this->entityManager->persist($kepada);
- $this->entityManager->flush($kepada);
- }
- $sekretaris = $this->userInfo->
- getSekretaris($kpd->getPenerimaNama());
- if ($sekretaris) {
- if ($sekretaris->getAktif()) {
- $kepada = new NdReader();
- $kepada->setRefid($surat);
- $kepada->setReadStatus(1);
- $kepada->setReaderJabatan($this->userInfo
- ->getJabatan($sekretaris->getSekretaris()
- )->getIdOrganizationStructure()->getId());
- $kepada->setReaderNama($sekretaris->getSekretaris());
- $this->entityManager->persist($kepada);
- $this->entityManager->flush($kepada);
- }
- }
- }
- $suratstatus = $this->entityManager->getRepository(NdSuratStatus::class)->
- find(3);
- $surat->setIdSuratStatus($suratstatus);
- $surat->setTglSelesai(new \DateTime());
- } else {
- //masukan pemeriksa ke ndauthor
- $auth = $this->entityManager->
- getRepository(NdAuthor::class)->findOneBy(['refid' => $surat->getIdSurat()]);
- if (!$auth) {
- $auth = new NdAuthor();
- }
- $auth->setAuthorJabatan($pemeriksa[$step]->getApproverJabatan());
- $auth->setAuthorTimeStamp(new \DateTime());
- $auth->setRefid($surat);
- $auth->setAuthorNama($pemeriksa[$step]->getApproverNama());
- $this->entityManager->persist($auth);
- $this->entityManager->flush($auth);
- $idauth = $auth->getIdAuthor();
- if ($pemeriksa[$surat->getStep()]->getTypeApprover() == 1) {
- //cek punya delegasi kah
- //cek delegasi
- $strukturpertama = $this->userInfo->
- getJabatanByIdStruktur($pemeriksa[$step]->getApproverJabatan());
- $delegasi = $this->userInfo->getDelegasi($strukturpertama->getIdEmployee()
- , new \Datetime());
- if ($delegasi) {
- $auth = $this->entityManager->
- getRepository(NdAuthor::class)->findOtherAuthorByIdSurat(
- $surat->getIdSurat(), $idauth);
- if (!$auth) {
- $auth = new NdAuthor();
- }
- $auth->setAuthorJabatan(null);
- $auth->setAuthorNama($this->userInfo->
- getJabatanByIdStruktur($delegasi->getDelegasiTo())->getIdEmployee());
- $auth->setRefid($surat->getIdSurat());
- $auth->setAuthorTimeStamp(new \Datetime());
- $this->entityManager->persist($auth);
- // $this->entityManager->flush($auth);
- }/*else{
- $auth = $this->entityManager->
- getRepository(NdAuthor::class)->findOtherAuthorByIdSurat(
- $surat->getIdSurat(),$idauth);
- if($auth){
- $this->entityManager->remove($auth);
- $this->entityManager->flush($auth);
- }
- }*/
- }
- $suratstatus = $this->entityManager->getRepository(NdSuratStatus::class)->
- find(2);
- $surat->setIdSuratStatus($suratstatus);
- $this->entityManager->persist($surat);
- }
- $idemployee = $this->getUser()->getIdEmployee()->getId();
- $jabatan = $this->userInfo->getJabatan($idemployee)->getIdOrganizationStructure()->getId();
- $ad = new NdHistory();
- $ad->setIduser($idemployee);
- $ad->setIdjabatan($jabatan);
- $ad->setRefid($surat);
- $ad->setKomentar($surat->getKomentar());
- $ad->setAction('Approve');
- $ad->setTimestamp(new \Datetime());
- $this->entityManager->persist($ad);
- }
- $this->entityManager->flush();
- $this->entityManager->commit();
- }
- public function returnSurat(NdSurat $surat)
- {
- $this->entityManager->beginTransaction();
- $surat->setStep($surat->getStep() - 1);
- $step = $surat->getStep();
- $pemeriksa = $this->entityManager->
- getRepository(NdApprover::class)->
- findBy(['refid' => $surat->getIdSurat()]);
- //masukan pemeriksa ke ndauthor
- $auth = $this->entityManager->
- getRepository(NdAuthor::class)->findOneBy(['refid' => $surat->getIdSurat()]);
- if (!$auth) {
- $auth = new NdAuthor();
- $auth->setAuthorJabatan($pemeriksa[$step]->getApproverJabatan());
- $auth->setAuthorTimeStamp(new \DateTime());
- $auth->setRefid($surat);
- $auth->setAuthorNama($pemeriksa[$step]->getApproverNama());
- $this->entityManager->persist($auth);
- // $this->entityManager->flush($auth);
- $idauth = $auth->getIdAuthor();
- if ($pemeriksa[$step]->getTypeApprover() == 1) {
- //cek punya delegasi kah
- //cek delegasi
- $strukturpertama = $this->userInfo->
- getJabatanByIdStruktur($pemeriksa[$step]->getApproverJabatan());
- $delegasi = $this->userInfo->getDelegasi($strukturpertama->getIdEmployee()
- , new \Datetime());
- if ($delegasi) {
- $auth = $this->entityManager->
- getRepository(NdAuthor::class)->findOtherAuthorByIdSurat(
- $surat->getIdSurat(), $idauth);
- if (!$auth) {
- $auth = new NdAuthor();
- }
- $auth->setAuthorJabatan(null);
- $auth->setAuthorNama($this->userInfo->
- getJabatanByIdStruktur($delegasi->getDelegasiTo())->getIdEmployee());
- $auth->setRefid($surat->getIdSurat());
- $auth->setAuthorTimeStamp(new \Datetime());
- $this->entityManager->persist($auth);
- }
- $suratstatus = $this->entityManager->getRepository(NdSuratStatus::class)->
- find(4);
- $surat->setIdSuratStatus($suratstatus);
- $this->entityManager->persist($surat);
- }
- $idemployee = $this->getUser()->getIdEmployee()->getId();
- $jabatan = $this->userInfo->getJabatan($idemployee)->getIdOrganizationStructure()->getId();
- $ad = new NdHistory();
- $ad->setIduser($idemployee);
- $ad->setIdjabatan($jabatan);
- $ad->setRefid($surat);
- $ad->setKomentar($surat->getKomentar());
- $ad->setAction('returned');
- $ad->setTimestamp(new \Datetime());
- $this->entityManager->persist($ad);
- }
- $this->entityManager->flush();
- $this->entityManager->commit();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement