src/Model/AmtsblattausgabenManager.php line 172

Open in your IDE?
  1. <?php
  2. /**
  3. * Erstellt die Moduspezifischen Amtsblattinhalte, welche gerendert abgelegt werden
  4. *
  5. * User: bruno.ziegler
  6. * Date: 17.12.13 10:51
  7. */
  8. namespace App\Model;
  9. use App\Entity\Amtsblattausgabe;
  10. use App\Entity\Baugesuch;
  11. use App\Entity\Baugesuchausnahmebewilligung;
  12. use App\Entity\Einbuergerungsgesuch;
  13. use App\Entity\Erdsonde;
  14. use App\Entity\Gestaltungsplan;
  15. use App\Entity\Konzessionsbewilligung;
  16. use App\Entity\Konzessionsgesuch;
  17. use App\Entity\KonzessionsgesuchGewaesser;
  18. use App\Entity\KonzessionsgesuchUmwelt;
  19. use App\Entity\Module;
  20. use App\Entity\Nutzungsplanung;
  21. use App\Entity\Rodungsgesuch;
  22. use App\Entity\Schutzzonenplan;
  23. use App\Event\FilterBaugesuchausnahmebewilligungEvent;
  24. use App\Event\FilterBaugesuchEvent;
  25. use App\Event\FilterEinbuergerungsgesuchEvent;
  26. use App\Event\FilterErdsondeEvent;
  27. use App\Event\FilterGestaltungsplanEvent;
  28. use App\Event\FilterKonzessionsbewilligungEvent;
  29. use App\Event\FilterKonzessionsgesuchEvent;
  30. use App\Event\FilterKonzessionsgesuchGewaesserEvent;
  31. use App\Event\FilterKonzessionsgesuchUmweltEvent;
  32. use App\Event\FilterNutzungsplanungEvent;
  33. use App\Event\FilterRodungsgesuchEvent;
  34. use App\Event\FilterSchutzzonenplanEvent;
  35. use Doctrine\ORM\EntityManagerInterface;
  36. class AmtsblattausgabenManager
  37. {
  38. public function __construct(protected EntityManagerInterface $em)
  39. {
  40. }
  41. /**
  42. * Publikation Baugesuch in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  43. *
  44. * ACHTUNG:
  45. * Listener Klasse (wird automatisch aufgerufen)
  46. */
  47. public function onBaugesuchChange(FilterBaugesuchEvent $event): void
  48. {
  49. $baugesuch = $event->getBaugesuch();
  50. $module = $this->em->getRepository(Module::class)->findOneByCode(Baugesuch::MODULE_CODE);
  51. // --- GEMEINDE-ANSICHT ----------------------------------------------------------------------------------------
  52. // Checken, ob Record existiert, sonst neue gemeindespezifische Amtsblattausgabe erstellen
  53. $gdeAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getGemeindeAusgabe(
  54. $baugesuch->getAmtsblatt(),
  55. $baugesuch->getGemeinde(),
  56. $module
  57. );
  58. if (!$gdeAmtsblattAusgabe) {
  59. // Erstelle neuen Record
  60. $gdeAmtsblattAusgabe = new Amtsblattausgabe($baugesuch->getAmtsblatt(), $module, $baugesuch->getGemeinde());
  61. }
  62. // Ende
  63. $html = '';
  64. $baugesuche = $this->em->getRepository(Baugesuch::class)->findAllByAmtsblattAndGemeinde(
  65. $baugesuch->getAmtsblatt(),
  66. $baugesuch->getGemeinde(),
  67. [Baugesuch::STATUS_REDIGIERT, Baugesuch::STATUS_ERFASST]
  68. );
  69. if ($baugesuche) {
  70. $bauzonenChar = 'a';
  71. $bauzonenTitelSave = null;
  72. foreach ($baugesuche as $row) {
  73. if ($bauzonenTitelSave <> $row->getBauzone()) {
  74. $bauzonenTitelSave = $row->getBauzone();
  75. $html = Util::rStringTrim($html, '<div class="spacerEineZeile"></div>') . $row->formatBauzone('html', $bauzonenChar);
  76. $bauzonenChar++;
  77. }
  78. $html .= $row->getDataHtml();
  79. $html .= '<div class="spacerEineZeile"></div>';
  80. }
  81. $html = Util::rStringTrim($html, '<div class="spacerEineZeile"></div>') . $baugesuche[0]->formatFooter('html', 'gemeinde', $bauzonenChar);
  82. }
  83. // Persistierung
  84. if (!$html){
  85. // lösche Entity da kein Inhalt
  86. $this->em->remove($gdeAmtsblattAusgabe);
  87. $this->em->flush();
  88. } else {
  89. $gdeAmtsblattAusgabe->setContentHtml($html);
  90. $this->em->persist($gdeAmtsblattAusgabe);
  91. $this->em->flush();
  92. }
  93. // ENDE --------------------------------------------------------------------------------------------------------
  94. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  95. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  96. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  97. $baugesuch->getAmtsblatt(),
  98. $module
  99. );
  100. if (!$kantonAmtsblattAusgabe) {
  101. // Erstelle neuen Record
  102. $kantonAmtsblattAusgabe = new Amtsblattausgabe($baugesuch->getAmtsblatt(), $module, null);
  103. $this->em->persist($kantonAmtsblattAusgabe);
  104. $this->em->flush();
  105. }
  106. // Ende
  107. $html = '';
  108. $baugesuche = $this->em->getRepository(Baugesuch::class)->findAllByAmtsblattAndGemeinde(
  109. $baugesuch->getAmtsblatt(),
  110. null,
  111. [Baugesuch::STATUS_REDIGIERT, Baugesuch::STATUS_ERFASST]
  112. );
  113. if ($baugesuche) {
  114. $bauzonenChar = 'a';
  115. $bauzonenTitelSave = null;
  116. $gemeindeSave = null;
  117. foreach ($baugesuche as $row) {
  118. if ($bauzonenTitelSave <> $row->getBauzone()) {
  119. $bauzonenTitelSave = $row->getBauzone();
  120. $gemeindeSave = null;
  121. $html = Util::rStringTrim($html, '<div class="spacerEineZeile"></div>') . $row->formatBauzone('html', $bauzonenChar);
  122. $bauzonenChar++;
  123. }
  124. if ($gemeindeSave != $row->getGemeinde()->getId()) {
  125. $gemeindeSave = $row->getGemeinde()->getId();
  126. $html = Util::rStringTrim($html, '<div class="spacerEineZeile"></div>') . $row->formatGemeindeName('html');
  127. }
  128. $html .= $row->getDataHtml();
  129. $html .= '<div class="spacerEineZeile"></div>';
  130. }
  131. $html = Util::rStringTrim($html, '<div class="spacerEineZeile"></div>') . $baugesuche[0]->formatFooter('html', 'kanton', $bauzonenChar);
  132. }
  133. // Persistierung
  134. if (!$html){
  135. // lösche Entity da kein Inhalt
  136. $this->em->remove($kantonAmtsblattAusgabe);
  137. $this->em->flush();
  138. } else {
  139. $kantonAmtsblattAusgabe->setContentHtml($html);
  140. $this->em->persist($kantonAmtsblattAusgabe);
  141. $this->em->flush();
  142. }
  143. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  144. }
  145. /**
  146. * Publikation Baugesuchausnahmebewilligung in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  147. *
  148. * ACHTUNG:
  149. * Listener Klasse (wird automatisch aufgerufen)
  150. */
  151. public function onBaugesuchausnahmebewilligungChange(FilterBaugesuchausnahmebewilligungEvent $event): void
  152. {
  153. $baugesuchausnahmebewilligung = $event->getBaugesuchausnahmebewilligung();
  154. $module = $this->em->getRepository(Module::class)->findOneByCode(Baugesuchausnahmebewilligung::MODULE_CODE);
  155. // --- GEMEINDE-ANSICHT ----------------------------------------------------------------------------------------
  156. // Checken, ob Record existiert, sonst neue gemeindespezifische Amtsblattausgabe erstellen
  157. $gdeAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getGemeindeAusgabe(
  158. $baugesuchausnahmebewilligung->getAmtsblatt(),
  159. $baugesuchausnahmebewilligung->getGemeinde(),
  160. $module
  161. );
  162. if (!$gdeAmtsblattAusgabe) {
  163. // Erstelle neuen Record
  164. $gdeAmtsblattAusgabe = new Amtsblattausgabe($baugesuchausnahmebewilligung->getAmtsblatt(), $module, $baugesuchausnahmebewilligung->getGemeinde());
  165. }
  166. // Ende
  167. $html = '';
  168. $baugesuchausnahmebewilligungen = $this->em->getRepository(Baugesuchausnahmebewilligung::class)->findAllByAmtsblattAndGemeinde(
  169. $baugesuchausnahmebewilligung->getAmtsblatt(),
  170. $baugesuchausnahmebewilligung->getGemeinde(),
  171. [Baugesuchausnahmebewilligung::STATUS_REDIGIERT, Baugesuchausnahmebewilligung::STATUS_ERFASST]
  172. );
  173. if ($baugesuchausnahmebewilligungen) {
  174. $html .= $baugesuchausnahmebewilligungen[0]->formatGemeindename('html');
  175. foreach ($baugesuchausnahmebewilligungen as $row) {
  176. $html .= $row->getDataHtml();
  177. $html .= '<div class="spacerEineZeile"></div>';
  178. }
  179. $html .= $baugesuchausnahmebewilligungen[0]->formatFooter('html');
  180. }
  181. // Persistierung
  182. if (!$html){
  183. // lösche Entity da kein Inhalt
  184. $this->em->remove($gdeAmtsblattAusgabe);
  185. $this->em->flush();
  186. } else {
  187. $gdeAmtsblattAusgabe->setContentHtml($html);
  188. $this->em->persist($gdeAmtsblattAusgabe);
  189. $this->em->flush();
  190. }
  191. // ENDE --------------------------------------------------------------------------------------------------------
  192. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  193. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  194. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  195. $baugesuchausnahmebewilligung->getAmtsblatt(),
  196. $module
  197. );
  198. if (!$kantonAmtsblattAusgabe) {
  199. // Erstelle neuen Record
  200. $kantonAmtsblattAusgabe = new Amtsblattausgabe($baugesuchausnahmebewilligung->getAmtsblatt(), $module, null);
  201. $this->em->persist($kantonAmtsblattAusgabe);
  202. $this->em->flush();
  203. }
  204. // Ende
  205. $html = '';
  206. $baugesuchausnahmebewilligungen = $this->em->getRepository(Baugesuchausnahmebewilligung::class)->findAllByAmtsblattAndGemeinde(
  207. $baugesuchausnahmebewilligung->getAmtsblatt(),
  208. null,
  209. [Baugesuchausnahmebewilligung::STATUS_REDIGIERT, Baugesuchausnahmebewilligung::STATUS_ERFASST]
  210. );
  211. if ($baugesuchausnahmebewilligungen) {
  212. $gemeindeSave = null;
  213. foreach ($baugesuchausnahmebewilligungen as $key => $row) {
  214. if ($gemeindeSave != $row->getGemeinde()->getId()) {
  215. $gemeindeSave = $row->getGemeinde()->getId();
  216. $html .= $row->formatGemeindeName('html');
  217. } elseif ($key > 0) {
  218. $html .= '<div class="spacerEineZeile"></div>';
  219. }
  220. $html .= $row->getDataHtml();
  221. }
  222. $html .= '<div class="spacerEineZeile"></div>';
  223. $html .= $baugesuchausnahmebewilligungen[0]->formatFooter('html');
  224. }
  225. // Persistierung
  226. if (!$html){
  227. // lösche Entity da kein Inhalt
  228. $this->em->remove($kantonAmtsblattAusgabe);
  229. $this->em->flush();
  230. } else {
  231. $kantonAmtsblattAusgabe->setContentHtml($html);
  232. $this->em->persist($kantonAmtsblattAusgabe);
  233. $this->em->flush();
  234. }
  235. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  236. }
  237. /**
  238. * Publikation Rodungsgesuch in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  239. *
  240. * ACHTUNG:
  241. * Listener Klasse (wird automatisch aufgerufen)
  242. */
  243. public function onRodungsgesuchChange(FilterRodungsgesuchEvent $event): void
  244. {
  245. $rodungsgesuch = $event->getRodungsgesuch();
  246. $module = $this->em->getRepository(Module::class)->findOneByCode(Rodungsgesuch::MODULE_CODE);
  247. // --- GEMEINDE-ANSICHT ----------------------------------------------------------------------------------------
  248. // Checken, ob Record existiert, sonst neue gemeindespezifische Amtsblattausgabe erstellen
  249. $gdeAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getGemeindeAusgabe(
  250. $rodungsgesuch->getAmtsblatt(),
  251. $rodungsgesuch->getGemeinde(),
  252. $module
  253. );
  254. if (!$gdeAmtsblattAusgabe) {
  255. // Erstelle neuen Record
  256. $gdeAmtsblattAusgabe = new Amtsblattausgabe($rodungsgesuch->getAmtsblatt(), $module, $rodungsgesuch->getGemeinde());
  257. }
  258. // Ende
  259. $html = '';
  260. $rodungsgesuche = $this->em->getRepository(Rodungsgesuch::class)->findAllByAmtsblattAndGemeinde(
  261. $rodungsgesuch->getAmtsblatt(),
  262. $rodungsgesuch->getGemeinde(),
  263. [Rodungsgesuch::STATUS_REDIGIERT, Rodungsgesuch::STATUS_ERFASST]
  264. );
  265. if ($rodungsgesuche) {
  266. foreach ($rodungsgesuche as $row) {
  267. $html .= $row->getDataHtml();
  268. }
  269. }
  270. // Persistierung
  271. if (!$html){
  272. // lösche Entity da kein Inhalt
  273. $this->em->remove($gdeAmtsblattAusgabe);
  274. $this->em->flush();
  275. } else {
  276. $gdeAmtsblattAusgabe->setContentHtml($html);
  277. $this->em->persist($gdeAmtsblattAusgabe);
  278. $this->em->flush();
  279. }
  280. // ENDE --------------------------------------------------------------------------------------------------------
  281. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  282. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  283. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  284. $rodungsgesuch->getAmtsblatt(),
  285. $module
  286. );
  287. if (!$kantonAmtsblattAusgabe) {
  288. // Erstelle neuen Record
  289. $kantonAmtsblattAusgabe = new Amtsblattausgabe($rodungsgesuch->getAmtsblatt(), $module, null);
  290. $this->em->persist($kantonAmtsblattAusgabe);
  291. $this->em->flush();
  292. }
  293. // Ende
  294. $html = '';
  295. $rodungsgesuche = $this->em->getRepository(Rodungsgesuch::class)->findAllByAmtsblattAndGemeinde(
  296. $rodungsgesuch->getAmtsblatt(),
  297. null,
  298. [Rodungsgesuch::STATUS_REDIGIERT, Rodungsgesuch::STATUS_ERFASST]
  299. );
  300. if ($rodungsgesuche) {
  301. foreach ($rodungsgesuche as $row) {
  302. $html .= $row->getDataHtml();
  303. }
  304. }
  305. // Persistierung
  306. if (!$html){
  307. // lösche Entity da kein Inhalt
  308. $this->em->remove($kantonAmtsblattAusgabe);
  309. $this->em->flush();
  310. } else {
  311. $kantonAmtsblattAusgabe->setContentHtml($html);
  312. $this->em->persist($kantonAmtsblattAusgabe);
  313. $this->em->flush();
  314. }
  315. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  316. }
  317. /**
  318. * Publikation Einbuergerungsgesuch in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  319. *
  320. * ACHTUNG:
  321. * Listener Klasse (wird automatisch aufgerufen)
  322. */
  323. public function onEinbuergerungsgesuchChange(FilterEinbuergerungsgesuchEvent $event): void
  324. {
  325. $einbuergerungsgesuch = $event->getEinbuergerungsgesuch();
  326. $module = $this->em->getRepository(Module::class)->findOneByCode(Einbuergerungsgesuch::MODULE_CODE);
  327. // --- GEMEINDE-ANSICHT ----------------------------------------------------------------------------------------
  328. // Checken, ob Record existiert, sonst neue gemeindespezifische Amtsblattausgabe erstellen
  329. $gdeAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getGemeindeAusgabe(
  330. $einbuergerungsgesuch->getAmtsblatt(),
  331. $einbuergerungsgesuch->getGemeinde(),
  332. $module
  333. );
  334. if (!$gdeAmtsblattAusgabe) {
  335. // Erstelle neuen Record
  336. $gdeAmtsblattAusgabe = new Amtsblattausgabe($einbuergerungsgesuch->getAmtsblatt(), $module, $einbuergerungsgesuch->getGemeinde());
  337. }
  338. // Ende
  339. $html = '';
  340. $baugesuche = $this->em->getRepository(Einbuergerungsgesuch::class)->findAllByAmtsblattAndGemeinde(
  341. $einbuergerungsgesuch->getAmtsblatt(),
  342. $einbuergerungsgesuch->getGemeinde(),
  343. [Einbuergerungsgesuch::STATUS_REDIGIERT, Einbuergerungsgesuch::STATUS_ERFASST]
  344. );
  345. if ($baugesuche) {
  346. $html .= $baugesuche[0]->formatTitel('html');
  347. $html .= $baugesuche[0]->formatGemeindeName('html');
  348. foreach ($baugesuche as $row) {
  349. $html .= $row->getDataHtml();
  350. $html .= '<div class="spacerEineZeile"></div>';
  351. }
  352. $html = Util::rStringTrim($html, '<div class="spacerEineZeile"></div>') . $baugesuche[0]->formatFooter('html');
  353. }
  354. // Persistierung
  355. if (!$html){
  356. // lösche Entity da kein Inhalt
  357. $this->em->remove($gdeAmtsblattAusgabe);
  358. $this->em->flush();
  359. } else {
  360. $gdeAmtsblattAusgabe->setContentHtml($html);
  361. $this->em->persist($gdeAmtsblattAusgabe);
  362. $this->em->flush();
  363. }
  364. // ENDE --------------------------------------------------------------------------------------------------------
  365. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  366. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  367. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  368. $einbuergerungsgesuch->getAmtsblatt(),
  369. $module
  370. );
  371. if (!$kantonAmtsblattAusgabe) {
  372. // Erstelle neuen Record
  373. $kantonAmtsblattAusgabe = new Amtsblattausgabe($einbuergerungsgesuch->getAmtsblatt(), $module, null);
  374. $this->em->persist($kantonAmtsblattAusgabe);
  375. $this->em->flush();
  376. }
  377. // Ende
  378. $html = '';
  379. $baugesuche = $this->em->getRepository(Einbuergerungsgesuch::class)->findAllByAmtsblattAndGemeinde(
  380. $einbuergerungsgesuch->getAmtsblatt(),
  381. null,
  382. [Einbuergerungsgesuch::STATUS_REDIGIERT, Einbuergerungsgesuch::STATUS_ERFASST]
  383. );
  384. if ($baugesuche) {
  385. $html .= $baugesuche[0]->formatTitel('html');
  386. $gemeindeSave = null;
  387. foreach ($baugesuche as $row) {
  388. if ($gemeindeSave != $row->getGemeinde()->getId()) {
  389. $gemeindeSave = $row->getGemeinde()->getId();
  390. $html = Util::rStringTrim($html, '<div class="spacerEineZeile"></div>') . $row->formatGemeindeName('html');
  391. }
  392. $html .= $row->getDataHtml();
  393. $html .= '<div class="spacerEineZeile"></div>';
  394. }
  395. $html = Util::rStringTrim($html, '<div class="spacerEineZeile"></div>') . $baugesuche[0]->formatFooter('html');
  396. }
  397. // Persistierung
  398. if (!$html){
  399. // lösche Entity da kein Inhalt
  400. $this->em->remove($kantonAmtsblattAusgabe);
  401. $this->em->flush();
  402. } else {
  403. $kantonAmtsblattAusgabe->setContentHtml($html);
  404. $this->em->persist($kantonAmtsblattAusgabe);
  405. $this->em->flush();
  406. }
  407. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  408. }
  409. /**
  410. * Publikation Schutzzonenplan in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  411. *
  412. * ACHTUNG:
  413. * Listener Klasse (wird automatisch aufgerufen)
  414. */
  415. public function onSchutzzonenplanChange(FilterSchutzzonenplanEvent $event): void
  416. {
  417. $schutzzonenplan = $event->getSchutzzonenplan();
  418. $module = $this->em->getRepository(Module::class)->findOneByCode(Schutzzonenplan::MODULE_CODE);
  419. // --- GEMEINDE-ANSICHT ----------------------------------------------------------------------------------------
  420. // Checken, ob Record existiert, sonst neue gemeindespezifische Amtsblattausgabe erstellen
  421. $gdeAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getGemeindeAusgabe(
  422. $schutzzonenplan->getAmtsblatt(),
  423. $schutzzonenplan->getGemeinde(),
  424. $module
  425. );
  426. if (!$gdeAmtsblattAusgabe) {
  427. // Erstelle neuen Record
  428. $gdeAmtsblattAusgabe = new Amtsblattausgabe($schutzzonenplan->getAmtsblatt(), $module, $schutzzonenplan->getGemeinde());
  429. }
  430. // Ende
  431. $html = '';
  432. $schutzzonenplaene = $this->em->getRepository(Schutzzonenplan::class)->findAllByAmtsblattAndGemeinde(
  433. $schutzzonenplan->getAmtsblatt(),
  434. $schutzzonenplan->getGemeinde(),
  435. [Schutzzonenplan::STATUS_REDIGIERT, Schutzzonenplan::STATUS_ERFASST]
  436. );
  437. if ($schutzzonenplaene) {
  438. foreach ($schutzzonenplaene as $row) {
  439. $html .= $row->getDataHtml();
  440. }
  441. }
  442. // Persistierung
  443. if (!$html){
  444. // lösche Entity da kein Inhalt
  445. $this->em->remove($gdeAmtsblattAusgabe);
  446. $this->em->flush();
  447. } else {
  448. $gdeAmtsblattAusgabe->setContentHtml($html);
  449. $this->em->persist($gdeAmtsblattAusgabe);
  450. $this->em->flush();
  451. }
  452. // ENDE --------------------------------------------------------------------------------------------------------
  453. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  454. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  455. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  456. $schutzzonenplan->getAmtsblatt(),
  457. $module
  458. );
  459. if (!$kantonAmtsblattAusgabe) {
  460. // Erstelle neuen Record
  461. $kantonAmtsblattAusgabe = new Amtsblattausgabe($schutzzonenplan->getAmtsblatt(), $module, null);
  462. $this->em->persist($kantonAmtsblattAusgabe);
  463. $this->em->flush();
  464. }
  465. // Ende
  466. $html = '';
  467. $schutzzonenplaene = $this->em->getRepository(Schutzzonenplan::class)->findAllByAmtsblattAndGemeinde(
  468. $schutzzonenplan->getAmtsblatt(),
  469. null,
  470. [Schutzzonenplan::STATUS_REDIGIERT, Schutzzonenplan::STATUS_ERFASST]
  471. );
  472. if ($schutzzonenplaene) {
  473. foreach ($schutzzonenplaene as $row) {
  474. $html .= $row->getDataHtml();
  475. }
  476. }
  477. // Persistierung
  478. if (!$html){
  479. // lösche Entity da kein Inhalt
  480. $this->em->remove($kantonAmtsblattAusgabe);
  481. $this->em->flush();
  482. } else {
  483. $kantonAmtsblattAusgabe->setContentHtml($html);
  484. $this->em->persist($kantonAmtsblattAusgabe);
  485. $this->em->flush();
  486. }
  487. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  488. }
  489. /**
  490. * Publikation Gestaltungsplan in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  491. *
  492. * ACHTUNG:
  493. * Listener Klasse (wird automatisch aufgerufen)
  494. */
  495. public function onGestaltungsplanChange(FilterGestaltungsplanEvent $event): void
  496. {
  497. $gestaltungsplan = $event->getGestaltungsplan();
  498. $module = $this->em->getRepository(Module::class)->findOneByCode(Gestaltungsplan::MODULE_CODE);
  499. // --- GEMEINDE-ANSICHT ----------------------------------------------------------------------------------------
  500. // Checken, ob Record existiert, sonst neue gemeindespezifische Amtsblattausgabe erstellen
  501. $gdeAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getGemeindeAusgabe(
  502. $gestaltungsplan->getAmtsblatt(),
  503. $gestaltungsplan->getGemeinde(),
  504. $module
  505. );
  506. if (!$gdeAmtsblattAusgabe) {
  507. // Erstelle neuen Record
  508. $gdeAmtsblattAusgabe = new Amtsblattausgabe($gestaltungsplan->getAmtsblatt(), $module, $gestaltungsplan->getGemeinde());
  509. }
  510. // Ende
  511. $html = '';
  512. $gestaltungsplaene = $this->em->getRepository(Gestaltungsplan::class)->findAllByAmtsblattAndGemeinde(
  513. $gestaltungsplan->getAmtsblatt(),
  514. $gestaltungsplan->getGemeinde(),
  515. [Gestaltungsplan::STATUS_REDIGIERT, Gestaltungsplan::STATUS_ERFASST]
  516. );
  517. if ($gestaltungsplaene) {
  518. foreach ($gestaltungsplaene as $row) {
  519. $html .= $row->getDataHtml();
  520. }
  521. }
  522. // Persistierung
  523. if (!$html){
  524. // lösche Entity da kein Inhalt
  525. $this->em->remove($gdeAmtsblattAusgabe);
  526. $this->em->flush();
  527. } else {
  528. $gdeAmtsblattAusgabe->setContentHtml($html);
  529. $this->em->persist($gdeAmtsblattAusgabe);
  530. $this->em->flush();
  531. }
  532. // ENDE --------------------------------------------------------------------------------------------------------
  533. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  534. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  535. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  536. $gestaltungsplan->getAmtsblatt(),
  537. $module
  538. );
  539. if (!$kantonAmtsblattAusgabe) {
  540. // Erstelle neuen Record
  541. $kantonAmtsblattAusgabe = new Amtsblattausgabe($gestaltungsplan->getAmtsblatt(), $module, null);
  542. $this->em->persist($kantonAmtsblattAusgabe);
  543. $this->em->flush();
  544. }
  545. // Ende
  546. $html = '';
  547. $gestaltungsplaene = $this->em->getRepository(Gestaltungsplan::class)->findAllByAmtsblattAndGemeinde(
  548. $gestaltungsplan->getAmtsblatt(),
  549. null,
  550. [Gestaltungsplan::STATUS_REDIGIERT, Gestaltungsplan::STATUS_ERFASST]
  551. );
  552. if ($gestaltungsplaene) {
  553. foreach ($gestaltungsplaene as $row) {
  554. $html .= $row->getDataHtml();
  555. }
  556. }
  557. // Persistierung
  558. if (!$html){
  559. // lösche Entity da kein Inhalt
  560. $this->em->remove($kantonAmtsblattAusgabe);
  561. $this->em->flush();
  562. } else {
  563. $kantonAmtsblattAusgabe->setContentHtml($html);
  564. $this->em->persist($kantonAmtsblattAusgabe);
  565. $this->em->flush();
  566. }
  567. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  568. }
  569. /**
  570. * Publikation Nutzungsplanung in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  571. *
  572. * ACHTUNG:
  573. * Listener Klasse (wird automatisch aufgerufen)
  574. */
  575. public function onNutzungsplanungChange(FilterNutzungsplanungEvent $event): void
  576. {
  577. $nutzungsplanung = $event->getNutzungsplanung();
  578. $module = $this->em->getRepository(Module::class)->findOneByCode(Nutzungsplanung::MODULE_CODE);
  579. // --- GEMEINDE-ANSICHT ----------------------------------------------------------------------------------------
  580. // Checken, ob Record existiert, sonst neue gemeindespezifische Amtsblattausgabe erstellen
  581. $gdeAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getGemeindeAusgabe(
  582. $nutzungsplanung->getAmtsblatt(),
  583. $nutzungsplanung->getGemeinde(),
  584. $module
  585. );
  586. if (!$gdeAmtsblattAusgabe) {
  587. // Erstelle neuen Record
  588. $gdeAmtsblattAusgabe = new Amtsblattausgabe($nutzungsplanung->getAmtsblatt(), $module, $nutzungsplanung->getGemeinde());
  589. }
  590. // Ende
  591. $html = '';
  592. $nutzungsplanungen = $this->em->getRepository(Nutzungsplanung::class)->findAllByAmtsblattAndGemeinde(
  593. $nutzungsplanung->getAmtsblatt(),
  594. $nutzungsplanung->getGemeinde(),
  595. [Nutzungsplanung::STATUS_REDIGIERT, Nutzungsplanung::STATUS_ERFASST]
  596. );
  597. if ($nutzungsplanungen) {
  598. foreach ($nutzungsplanungen as $row) {
  599. $html .= $row->getDataHtml();
  600. }
  601. }
  602. // Persistierung
  603. if (!$html){
  604. // lösche Entity da kein Inhalt
  605. $this->em->remove($gdeAmtsblattAusgabe);
  606. $this->em->flush();
  607. } else {
  608. $gdeAmtsblattAusgabe->setContentHtml($html);
  609. $this->em->persist($gdeAmtsblattAusgabe);
  610. $this->em->flush();
  611. }
  612. // ENDE --------------------------------------------------------------------------------------------------------
  613. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  614. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  615. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  616. $nutzungsplanung->getAmtsblatt(),
  617. $module
  618. );
  619. if (!$kantonAmtsblattAusgabe) {
  620. // Erstelle neuen Record
  621. $kantonAmtsblattAusgabe = new Amtsblattausgabe($nutzungsplanung->getAmtsblatt(), $module, null);
  622. $this->em->persist($kantonAmtsblattAusgabe);
  623. $this->em->flush();
  624. }
  625. // Ende
  626. $html = '';
  627. $nutzungsplanungen = $this->em->getRepository(Nutzungsplanung::class)->findAllByAmtsblattAndGemeinde(
  628. $nutzungsplanung->getAmtsblatt(),
  629. null,
  630. [Nutzungsplanung::STATUS_REDIGIERT, Nutzungsplanung::STATUS_ERFASST]
  631. );
  632. if ($nutzungsplanungen) {
  633. foreach ($nutzungsplanungen as $row) {
  634. $html .= $row->getDataHtml();
  635. }
  636. }
  637. // Persistierung
  638. if (!$html){
  639. // lösche Entity da kein Inhalt
  640. $this->em->remove($kantonAmtsblattAusgabe);
  641. $this->em->flush();
  642. } else {
  643. $kantonAmtsblattAusgabe->setContentHtml($html);
  644. $this->em->persist($kantonAmtsblattAusgabe);
  645. $this->em->flush();
  646. }
  647. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  648. }
  649. /**
  650. * Publikation Erdsonde in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  651. *
  652. * ACHTUNG:
  653. * Listener Klasse (wird automatisch aufgerufen)
  654. */
  655. public function onErdsondeChange(FilterErdsondeEvent $event): void
  656. {
  657. $erdsonde = $event->getErdsonde();
  658. $module = $this->em->getRepository(Module::class)->findOneByCode(Erdsonde::MODULE_CODE);
  659. // --- GEMEINDE-ANSICHT ----------------------------------------------------------------------------------------
  660. // Checken, ob Record existiert, sonst neue gemeindespezifische Amtsblattausgabe erstellen
  661. $gdeAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getGemeindeAusgabe(
  662. $erdsonde->getAmtsblatt(),
  663. $erdsonde->getGemeinde(),
  664. $module
  665. );
  666. if (!$gdeAmtsblattAusgabe) {
  667. // Erstelle neuen Record
  668. $gdeAmtsblattAusgabe = new Amtsblattausgabe($erdsonde->getAmtsblatt(), $module, $erdsonde->getGemeinde());
  669. }
  670. // Ende
  671. $html = '';
  672. $erdsonden = $this->em->getRepository(Erdsonde::class)->findAllByAmtsblattAndGemeinde(
  673. $erdsonde->getAmtsblatt(),
  674. $erdsonde->getGemeinde(),
  675. [Erdsonde::STATUS_REDIGIERT, Erdsonde::STATUS_ERFASST]
  676. );
  677. if ($erdsonden) {
  678. $html .= $erdsonden[0]->formatTitel('html');
  679. $html .= $erdsonden[0]->formatGemeindename('html');
  680. foreach ($erdsonden as $row) {
  681. $html .= $row->getDataHtml();
  682. $html .= '<div class="spacerHalbeZeile"></div>';
  683. }
  684. $html = Util::rStringTrim($html, '<div class="spacerHalbeZeile"></div>') . $erdsonden[0]->formatFooter('html');
  685. }
  686. // Persistierung
  687. if (!$html){
  688. // lösche Entity da kein Inhalt
  689. $this->em->remove($gdeAmtsblattAusgabe);
  690. $this->em->flush();
  691. } else {
  692. $gdeAmtsblattAusgabe->setContentHtml($html);
  693. $this->em->persist($gdeAmtsblattAusgabe);
  694. $this->em->flush();
  695. }
  696. // ENDE --------------------------------------------------------------------------------------------------------
  697. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  698. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  699. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  700. $erdsonde->getAmtsblatt(),
  701. $module
  702. );
  703. if (!$kantonAmtsblattAusgabe) {
  704. // Erstelle neuen Record
  705. $kantonAmtsblattAusgabe = new Amtsblattausgabe($erdsonde->getAmtsblatt(), $module, null);
  706. $this->em->persist($kantonAmtsblattAusgabe);
  707. $this->em->flush();
  708. }
  709. // Ende
  710. $html = '';
  711. $erdsonden = $this->em->getRepository(Erdsonde::class)->findAllByAmtsblattAndGemeinde(
  712. $erdsonde->getAmtsblatt(),
  713. null,
  714. [Erdsonde::STATUS_REDIGIERT, Erdsonde::STATUS_ERFASST]
  715. );
  716. if ($erdsonden) {
  717. $html .= $erdsonden[0]->formatTitel('html');
  718. $gemeindeSave = null;
  719. foreach ($erdsonden as $row) {
  720. if ($gemeindeSave != $row->getGemeinde()->getId()) {
  721. $gemeindeSave = $row->getGemeinde()->getId();
  722. // erster Eintrag dieser Gemeinde
  723. $html .= $row->formatGemeindename('html');
  724. $html .= $row->getDataHtml();
  725. } else {
  726. // erneuter Eintrag dieser Gemeinde
  727. $html .= '<div class="spacerHalbeZeile"></div>';
  728. $html .= $row->getDataHtml();
  729. }
  730. }
  731. $html .= $erdsonden[0]->formatFooter('html');
  732. }
  733. // Persistierung
  734. if (!$html){
  735. // lösche Entity da kein Inhalt
  736. $this->em->remove($kantonAmtsblattAusgabe);
  737. $this->em->flush();
  738. } else {
  739. $kantonAmtsblattAusgabe->setContentHtml($html);
  740. $this->em->persist($kantonAmtsblattAusgabe);
  741. $this->em->flush();
  742. }
  743. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  744. }
  745. /**
  746. * Publikation Konzessionsgesuch in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  747. *
  748. * ACHTUNG:
  749. * Listener Klasse (wird automatisch aufgerufen)
  750. */
  751. public function onKonzessionsgesuchChange(FilterKonzessionsgesuchEvent $event): void
  752. {
  753. $konzessionsgesuch = $event->getKonzessionsgesuch();
  754. $module = $this->em->getRepository(Module::class)->findOneByCode(Konzessionsgesuch::MODULE_CODE);
  755. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  756. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  757. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  758. $konzessionsgesuch->getAmtsblatt(),
  759. $module
  760. );
  761. if (!$kantonAmtsblattAusgabe) {
  762. // Erstelle neuen Record
  763. $kantonAmtsblattAusgabe = new Amtsblattausgabe($konzessionsgesuch->getAmtsblatt(), $module, null);
  764. $this->em->persist($kantonAmtsblattAusgabe);
  765. $this->em->flush();
  766. }
  767. // Ende
  768. $html = '';
  769. $konzessionsgesuche = $this->em->getRepository(Konzessionsgesuch::class)->findAllByAmtsblatt(
  770. $konzessionsgesuch->getAmtsblatt(),
  771. [Konzessionsgesuch::STATUS_REDIGIERT, Konzessionsgesuch::STATUS_ERFASST]
  772. );
  773. if ($konzessionsgesuche) {
  774. foreach ($konzessionsgesuche as $row) {
  775. $html .= $row->getDataHtml();
  776. }
  777. }
  778. // Persistierung
  779. if (!$html){
  780. // lösche Entity da kein Inhalt
  781. $this->em->remove($kantonAmtsblattAusgabe);
  782. $this->em->flush();
  783. } else {
  784. $kantonAmtsblattAusgabe->setContentHtml($html);
  785. $this->em->persist($kantonAmtsblattAusgabe);
  786. $this->em->flush();
  787. }
  788. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  789. }
  790. /**
  791. * Publikation Konzessionsgesuch AFG in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  792. *
  793. * ACHTUNG:
  794. * Listener Klasse (wird automatisch aufgerufen)
  795. */
  796. public function onKonzessionsgesuchGewaesserChange(FilterKonzessionsgesuchGewaesserEvent $event): void
  797. {
  798. $konzessionsgesuch = $event->getKonzessionsgesuchGewaesser();
  799. $module = $this->em->getRepository(Module::class)->findOneByCode(KonzessionsgesuchGewaesser::MODULE_CODE);
  800. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  801. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  802. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  803. $konzessionsgesuch->getAmtsblatt(),
  804. $module
  805. );
  806. if (!$kantonAmtsblattAusgabe) {
  807. // Erstelle neuen Record
  808. $kantonAmtsblattAusgabe = new Amtsblattausgabe($konzessionsgesuch->getAmtsblatt(), $module, null);
  809. $this->em->persist($kantonAmtsblattAusgabe);
  810. $this->em->flush();
  811. }
  812. // Ende
  813. $html = '';
  814. $konzessionsgesuche = $this->em->getRepository(KonzessionsgesuchGewaesser::class)->findAllByAmtsblatt(
  815. $konzessionsgesuch->getAmtsblatt(),
  816. [Konzessionsgesuch::STATUS_REDIGIERT, Konzessionsgesuch::STATUS_ERFASST]
  817. );
  818. if ($konzessionsgesuche) {
  819. foreach ($konzessionsgesuche as $row) {
  820. $html .= $row->getDataHtml();
  821. }
  822. }
  823. // Persistierung
  824. if (!$html){
  825. // lösche Entity da kein Inhalt
  826. $this->em->remove($kantonAmtsblattAusgabe);
  827. $this->em->flush();
  828. } else {
  829. $kantonAmtsblattAusgabe->setContentHtml($html);
  830. $this->em->persist($kantonAmtsblattAusgabe);
  831. $this->em->flush();
  832. }
  833. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  834. }
  835. /**
  836. * Publikation Konzessionsgesuch AFU in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  837. *
  838. * ACHTUNG:
  839. * Listener Klasse (wird automatisch aufgerufen)
  840. */
  841. public function onKonzessionsgesuchUmweltChange(FilterKonzessionsgesuchUmweltEvent $event): void
  842. {
  843. $konzessionsgesuch = $event->getKonzessionsgesuchUmwelt();
  844. $module = $this->em->getRepository(Module::class)->findOneByCode(KonzessionsgesuchUmwelt::MODULE_CODE);
  845. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  846. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  847. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  848. $konzessionsgesuch->getAmtsblatt(),
  849. $module
  850. );
  851. if (!$kantonAmtsblattAusgabe) {
  852. // Erstelle neuen Record
  853. $kantonAmtsblattAusgabe = new Amtsblattausgabe($konzessionsgesuch->getAmtsblatt(), $module, null);
  854. $this->em->persist($kantonAmtsblattAusgabe);
  855. $this->em->flush();
  856. }
  857. // Ende
  858. $html = '';
  859. $konzessionsgesuche = $this->em->getRepository(KonzessionsgesuchUmwelt::class)->findAllByAmtsblatt(
  860. $konzessionsgesuch->getAmtsblatt(),
  861. [KonzessionsgesuchUmwelt::STATUS_REDIGIERT, KonzessionsgesuchUmwelt::STATUS_ERFASST]
  862. );
  863. if ($konzessionsgesuche) {
  864. foreach ($konzessionsgesuche as $row) {
  865. $html .= $row->getDataHtml();
  866. }
  867. }
  868. // Persistierung
  869. if (!$html){
  870. // lösche Entity da kein Inhalt
  871. $this->em->remove($kantonAmtsblattAusgabe);
  872. $this->em->flush();
  873. } else {
  874. $kantonAmtsblattAusgabe->setContentHtml($html);
  875. $this->em->persist($kantonAmtsblattAusgabe);
  876. $this->em->flush();
  877. }
  878. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  879. }
  880. /**
  881. * Publikation Konzessionsbewilligung in Amtsblattausgaben Tabelle (Gemeinde- und Kantons Ansicht zur Archivierung ablegen)
  882. *
  883. * ACHTUNG:
  884. * Listener Klasse (wird automatisch aufgerufen)
  885. */
  886. public function onKonzessionsbewilligungChange(FilterKonzessionsbewilligungEvent $event): void
  887. {
  888. $konzessionsbewilligung = $event->getKonzessionsbewilligung();
  889. $module = $this->em->getRepository(Module::class)->findOneByCode(Konzessionsbewilligung::MODULE_CODE);
  890. // KANTONS-ANSICHT ---------------------------------------------------------------------------------------------
  891. // Checken, ob Record existiert, sonst neue kantonsspezifische Amtsblattausgabe erstellen
  892. $kantonAmtsblattAusgabe = $this->em->getRepository(Amtsblattausgabe::class)->getKantonAusgabe(
  893. $konzessionsbewilligung->getAmtsblatt(),
  894. $module
  895. );
  896. if (!$kantonAmtsblattAusgabe) {
  897. // Erstelle neuen Record
  898. $kantonAmtsblattAusgabe = new Amtsblattausgabe($konzessionsbewilligung->getAmtsblatt(), $module, null);
  899. $this->em->persist($kantonAmtsblattAusgabe);
  900. $this->em->flush();
  901. }
  902. // Ende
  903. $html = '';
  904. $konzessionsbewilligungen = $this->em->getRepository(Konzessionsbewilligung::class)->findAllByAmtsblatt(
  905. $konzessionsbewilligung->getAmtsblatt(),
  906. [Konzessionsbewilligung::STATUS_REDIGIERT, Konzessionsbewilligung::STATUS_ERFASST]
  907. );
  908. if ($konzessionsbewilligungen) {
  909. foreach ($konzessionsbewilligungen as $row) {
  910. $html .= $row->getDataHtml();
  911. }
  912. }
  913. // Persistierung
  914. if (!$html){
  915. // lösche Entity da kein Inhalt
  916. $this->em->remove($kantonAmtsblattAusgabe);
  917. $this->em->flush();
  918. } else {
  919. $kantonAmtsblattAusgabe->setContentHtml($html);
  920. $this->em->persist($kantonAmtsblattAusgabe);
  921. $this->em->flush();
  922. }
  923. // Ende KANTONS-ANSICHT ----------------------------------------------------------------------------------------
  924. }
  925. }