Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.07 KB | None | 0 0
  1. public function approveSurat(NdSurat $surat)
  2. {
  3. $this->entityManager->beginTransaction();
  4. $ab = $this->getStatus($surat->getIdSurat()) - 1;
  5. $kode_masalah = $surat->getIdMasalah()->getKodeMasalah();
  6. $ads = $this->getUser()->getIdEmployee()->getId();
  7. $kodeUnit = $this->userInfo->getJabatan($ads)->getIdOrganizationStructure()->getIdJobUnit()->getKodeUnit();
  8. if ($surat->getStep() === $ab) {
  9. $this->getNoSurattt($kodeUnit, $kode_masalah, $bulan = null, $klasifikasi_keamanan = 2);
  10. $surat->setNoSurat($this->getNoSurattt($kodeUnit, $kode_masalah, $bulan = null, $klasifikasi_keamanan = 2));
  11. $this->entityManager->persist($surat);
  12. $this->entityManager->flush($surat);
  13. $agenda = $this->entityManager->getRepository(NdAgenda::class);
  14. $agen = $agenda->findBy(['refid' => $surat->getIdSurat()]);
  15. $datas = $surat->getKepadadaftar();
  16.  
  17. $ags = new NdAgenda();
  18. $ags->setAgendaType($tipe = 2);
  19. $ags->setRefid($surat);
  20. $ags->setNoAgenda($this->getAgenda($kodeUnit, $tipe = null, $bulan = null));
  21. $ags->setAgendaCreated(new \Datetime());
  22. $ajb = $this->getUser()->getIdEmployee()->getId();
  23. $ab = $this->userInfo->getJabatan($ajb)->getIdOrganizationStructure()->getIdDivision()->getCode();
  24. $ags->setAgendaKey($kodeUnit . "-" . $ab);
  25. $this->entityManager->persist($ags);
  26. // $this->entityManager->flush($ags);
  27.  
  28. for ($i = 0; $i < count($datas); $i++) {
  29. $pen = $this->entityManager->getRepository(CommonOrganizationStructure::class)->findBy(['id' => $datas[$i]]);
  30. foreach ($pen as $pens) {
  31. $ajb = new NdAgenda();
  32. $ajb->setAgendaType($tipe = 1);
  33. $ajb->setRefid($surat);
  34. $ajb->setNoAgenda($this->getAgenda($kodeUnit, $tipe = 'MASUK', $bulan = null));
  35. $ajb->setAgendaCreated(new \DateTime());
  36. $ajb->setAgendaKey($kodeUnit . "-" . $pens->getIdDivision()->getCode());
  37. $this->entityManager->persist($ajb);
  38. //$this->entityManager->flush($ajb);
  39. }
  40. }
  41.  
  42. foreach ($surat->getKepadadaftar() as $kpd) {
  43. /*$apnes = $this->getkepadadaftar2($kpd,$surat->getidSurat());
  44. dd($apnes);
  45. die();*/
  46. $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
  47. $penerima = new NdPenerima();
  48. $penerima->setTypePenerima(1);
  49. $penerima->setPenerimaJabatan($kpd);
  50. $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
  51. $penerima->setPenerimaText($strukturpenerima->
  52. getIdOrganizationStructure()->getIdJobPosition()->getNames());
  53. $penerima->setRefid($surat);
  54. $this->entityManager->persist($penerima);
  55.  
  56. }
  57. foreach ($surat->getTembusandaftar() as $kpd) {
  58. $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
  59. $penerima = new NdPenerima();
  60. $penerima->setTypePenerima(3);
  61. $penerima->setPenerimaJabatan($kpd);
  62. $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
  63. $penerima->setPenerimaText($strukturpenerima->
  64. getIdOrganizationStructure()->getIdJobPosition()->getNames());
  65. $penerima->setRefid($surat);
  66. $this->entityManager->persist($penerima);
  67. }
  68. $res = $this->entityManager->getRepository(NdPenerima::class);
  69. $penerima = $res->findBy(['refid' => $surat->getIdSurat()]);
  70. foreach ($penerima as $kpd) {
  71. $kepada = new NdReader();
  72. $kepada->setRefid($surat);
  73. $kepada->setReadStatus(1);
  74. $kepada->setReaderJabatan($kpd->getPenerimaJabatan());
  75. $kepada->setReaderNama($kpd->getPenerimaNama());
  76. $this->entityManager->persist($kepada);
  77. //$this->entityManager->flush($kepada);
  78. }
  79. $suratstatus = $this->entityManager->getRepository(NdSuratStatus::class)->
  80. find(3);
  81. $surat->setIdSuratStatus($suratstatus);
  82. $surat->setTglSelesai(new \DateTime());
  83. $this->entityManager->persist($surat);
  84.  
  85. }
  86. else {
  87. $surat->setStep($surat->getStep() + 1);
  88. $step = $surat->getStep();
  89. $pemeriksa = $this->entityManager->
  90. getRepository(NdApprover::class)->
  91. findBy(['refid' => $surat->getIdSurat()]);
  92. ////////// dimulai dari siini
  93.  
  94. $badang = $surat->getKepadadaftar();
  95. // $balung = $surat->getTembusandaftar();
  96. foreach ($surat->getKepadadaftar() as $kpd)
  97. {
  98. $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
  99. $penerima = new NdPenerima();
  100. $penerima->setTypePenerima(1);
  101. $penerima->setPenerimaJabatan($kpd);
  102. $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
  103. $penerima->setPenerimaText($strukturpenerima->
  104. getIdOrganizationStructure()->getIdJobPosition()->getNames());
  105. $penerima->setRefid($surat);
  106. //$this->entityManager->persist($penerima);
  107. /* if($badang++)
  108. {
  109. $penerima = $this->entityManager->getRepository(NdPenerima::class)->findOneBy(['refid'=>$surat->getIdSurat()]);
  110. $this->entityManager->remove($penerima);
  111. $this->entityManager->flush();
  112. $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
  113. $penerima = new NdPenerima();
  114. $penerima->setTypePenerima(1);
  115. $penerima->setPenerimaJabatan($kpd);
  116. $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
  117. $penerima->setPenerimaText($strukturpenerima->
  118. getIdOrganizationStructure()->getIdJobPosition()->getNames());
  119. $penerima->setRefid($surat);
  120. $this->entityManager->persist($penerima);
  121. }
  122. else
  123. {
  124. $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
  125. $penerima = new NdPenerima();
  126. $penerima->setTypePenerima(1);
  127. $penerima->setPenerimaJabatan($kpd);
  128. $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
  129. $penerima->setPenerimaText($strukturpenerima->
  130. getIdOrganizationStructure()->getIdJobPosition()->getNames());
  131. }*/
  132. }
  133.  
  134. foreach ($surat->getTembusandaftar() as $kpd) {
  135. $strukturpenerima = $this->userInfo->getJabatanByIdStruktur($kpd);
  136. $penerima = new NdPenerima();
  137. $penerima->setTypePenerima(3);
  138. $penerima->setPenerimaJabatan($kpd);
  139. $penerima->setPenerimaNama($strukturpenerima->getIdEmployee()->getId());
  140. $penerima->setPenerimaText($strukturpenerima->
  141. getIdOrganizationStructure()->getIdJobPosition()->getNames());
  142. $penerima->setRefid($surat);
  143. // $this->entityManager->persist($penerima);
  144. }
  145.  
  146. if ($step >= count($pemeriksa)) {
  147. //pemeriksa terakhir
  148. //menambahkan ndreader
  149. $res = $this->entityManager->getRepository(NdPenerima::class);
  150. $penerima = $res->findBy(['refid' => $surat->getIdSurat()]);
  151. foreach ($penerima as $kpd) {
  152. $kepada = new NdReader();
  153. $kepada->setRefid($surat);
  154. $kepada->setReadStatus(1);
  155. $kepada->setReaderJabatan($kpd->getPenerimaJabatan());
  156. $kepada->setReaderNama($kpd->getPenerimaNama());
  157. $this->entityManager->persist($kepada);
  158. // $this->entityManager->flush($kepada);
  159. $delegasi = $this->userInfo->getDelegasi($kpd->getPenerimaNama(), new \Datetime());
  160. if ($delegasi) {
  161. $kepada = new NdReader();
  162. $kepada->setRefid($surat->getIdSurat());
  163. $kepada->setReadStatus(1);
  164. $kepada->setReaderJabatan($delegasi->getDelegasiTo());
  165. $kepada->setReaderNama($this->userInfo->
  166. getJabatanByIdStruktur($delegasi->getDelegasiTo())->
  167. getIdEmployee());
  168. $this->entityManager->persist($kepada);
  169. $this->entityManager->flush($kepada);
  170. }
  171. $sekretaris = $this->userInfo->
  172. getSekretaris($kpd->getPenerimaNama());
  173. if ($sekretaris) {
  174. if ($sekretaris->getAktif()) {
  175. $kepada = new NdReader();
  176. $kepada->setRefid($surat);
  177. $kepada->setReadStatus(1);
  178. $kepada->setReaderJabatan($this->userInfo
  179. ->getJabatan($sekretaris->getSekretaris()
  180. )->getIdOrganizationStructure()->getId());
  181. $kepada->setReaderNama($sekretaris->getSekretaris());
  182. $this->entityManager->persist($kepada);
  183. $this->entityManager->flush($kepada);
  184. }
  185. }
  186. }
  187. $suratstatus = $this->entityManager->getRepository(NdSuratStatus::class)->
  188. find(3);
  189. $surat->setIdSuratStatus($suratstatus);
  190. $surat->setTglSelesai(new \DateTime());
  191. } else {
  192. //masukan pemeriksa ke ndauthor
  193. $auth = $this->entityManager->
  194. getRepository(NdAuthor::class)->findOneBy(['refid' => $surat->getIdSurat()]);
  195. if (!$auth) {
  196. $auth = new NdAuthor();
  197. }
  198. $auth->setAuthorJabatan($pemeriksa[$step]->getApproverJabatan());
  199. $auth->setAuthorTimeStamp(new \DateTime());
  200. $auth->setRefid($surat);
  201. $auth->setAuthorNama($pemeriksa[$step]->getApproverNama());
  202. $this->entityManager->persist($auth);
  203. $this->entityManager->flush($auth);
  204. $idauth = $auth->getIdAuthor();
  205. if ($pemeriksa[$surat->getStep()]->getTypeApprover() == 1) {
  206. //cek punya delegasi kah
  207. //cek delegasi
  208. $strukturpertama = $this->userInfo->
  209. getJabatanByIdStruktur($pemeriksa[$step]->getApproverJabatan());
  210. $delegasi = $this->userInfo->getDelegasi($strukturpertama->getIdEmployee()
  211. , new \Datetime());
  212. if ($delegasi) {
  213. $auth = $this->entityManager->
  214. getRepository(NdAuthor::class)->findOtherAuthorByIdSurat(
  215. $surat->getIdSurat(), $idauth);
  216. if (!$auth) {
  217. $auth = new NdAuthor();
  218. }
  219. $auth->setAuthorJabatan(null);
  220. $auth->setAuthorNama($this->userInfo->
  221. getJabatanByIdStruktur($delegasi->getDelegasiTo())->getIdEmployee());
  222. $auth->setRefid($surat->getIdSurat());
  223. $auth->setAuthorTimeStamp(new \Datetime());
  224. $this->entityManager->persist($auth);
  225. // $this->entityManager->flush($auth);
  226. }/*else{
  227. $auth = $this->entityManager->
  228. getRepository(NdAuthor::class)->findOtherAuthorByIdSurat(
  229. $surat->getIdSurat(),$idauth);
  230. if($auth){
  231. $this->entityManager->remove($auth);
  232. $this->entityManager->flush($auth);
  233. }
  234. }*/
  235. }
  236. $suratstatus = $this->entityManager->getRepository(NdSuratStatus::class)->
  237. find(2);
  238. $surat->setIdSuratStatus($suratstatus);
  239. $this->entityManager->persist($surat);
  240. }
  241. $idemployee = $this->getUser()->getIdEmployee()->getId();
  242. $jabatan = $this->userInfo->getJabatan($idemployee)->getIdOrganizationStructure()->getId();
  243. $ad = new NdHistory();
  244. $ad->setIduser($idemployee);
  245. $ad->setIdjabatan($jabatan);
  246. $ad->setRefid($surat);
  247. $ad->setKomentar($surat->getKomentar());
  248. $ad->setAction('Approve');
  249. $ad->setTimestamp(new \Datetime());
  250. $this->entityManager->persist($ad);
  251. }
  252. $this->entityManager->flush();
  253. $this->entityManager->commit();
  254. }
  255.  
  256. public function returnSurat(NdSurat $surat)
  257. {
  258. $this->entityManager->beginTransaction();
  259. $surat->setStep($surat->getStep() - 1);
  260. $step = $surat->getStep();
  261. $pemeriksa = $this->entityManager->
  262. getRepository(NdApprover::class)->
  263. findBy(['refid' => $surat->getIdSurat()]);
  264. //masukan pemeriksa ke ndauthor
  265. $auth = $this->entityManager->
  266. getRepository(NdAuthor::class)->findOneBy(['refid' => $surat->getIdSurat()]);
  267. if (!$auth) {
  268. $auth = new NdAuthor();
  269. $auth->setAuthorJabatan($pemeriksa[$step]->getApproverJabatan());
  270. $auth->setAuthorTimeStamp(new \DateTime());
  271. $auth->setRefid($surat);
  272. $auth->setAuthorNama($pemeriksa[$step]->getApproverNama());
  273. $this->entityManager->persist($auth);
  274. // $this->entityManager->flush($auth);
  275. $idauth = $auth->getIdAuthor();
  276. if ($pemeriksa[$step]->getTypeApprover() == 1) {
  277. //cek punya delegasi kah
  278. //cek delegasi
  279. $strukturpertama = $this->userInfo->
  280. getJabatanByIdStruktur($pemeriksa[$step]->getApproverJabatan());
  281. $delegasi = $this->userInfo->getDelegasi($strukturpertama->getIdEmployee()
  282. , new \Datetime());
  283. if ($delegasi) {
  284. $auth = $this->entityManager->
  285. getRepository(NdAuthor::class)->findOtherAuthorByIdSurat(
  286. $surat->getIdSurat(), $idauth);
  287. if (!$auth) {
  288. $auth = new NdAuthor();
  289. }
  290. $auth->setAuthorJabatan(null);
  291. $auth->setAuthorNama($this->userInfo->
  292. getJabatanByIdStruktur($delegasi->getDelegasiTo())->getIdEmployee());
  293. $auth->setRefid($surat->getIdSurat());
  294. $auth->setAuthorTimeStamp(new \Datetime());
  295. $this->entityManager->persist($auth);
  296. }
  297. $suratstatus = $this->entityManager->getRepository(NdSuratStatus::class)->
  298. find(4);
  299. $surat->setIdSuratStatus($suratstatus);
  300. $this->entityManager->persist($surat);
  301.  
  302. }
  303. $idemployee = $this->getUser()->getIdEmployee()->getId();
  304. $jabatan = $this->userInfo->getJabatan($idemployee)->getIdOrganizationStructure()->getId();
  305. $ad = new NdHistory();
  306. $ad->setIduser($idemployee);
  307. $ad->setIdjabatan($jabatan);
  308. $ad->setRefid($surat);
  309. $ad->setKomentar($surat->getKomentar());
  310. $ad->setAction('returned');
  311. $ad->setTimestamp(new \Datetime());
  312. $this->entityManager->persist($ad);
  313. }
  314. $this->entityManager->flush();
  315. $this->entityManager->commit();
  316. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement