/plugins/wasserrecht/model/FestsetzungsSammelbescheidDaten.php

https://github.com/srahn/kvwmap · PHP · 420 lines · 256 code · 68 blank · 96 comment · 25 complexity · 62cd0eb2949d0b605b036ebc49dc6356 MD5 · raw file

  1. <?php
  2. class FestsetzungsSammelbescheidDaten
  3. {
  4. use CommonClassTrait;
  5. private $erhebungsjahr = null;
  6. private $wrzs = array();
  7. private $gewaesserbenutzungen = array();
  8. private $freitext = null;
  9. function __construct($gui) {
  10. $this->log = $gui->log;
  11. }
  12. /**
  13. * @return mixed
  14. */
  15. public function getErhebungsjahr()
  16. {
  17. return $this->erhebungsjahr;
  18. }
  19. /**
  20. * @param mixed $erhebungsjahr
  21. */
  22. public function setErhebungsjahr($erhebungsjahr)
  23. {
  24. $this->erhebungsjahr = $erhebungsjahr;
  25. }
  26. /**
  27. * @return mixed
  28. */
  29. public function getWrzs()
  30. {
  31. return $this->wrzs;
  32. }
  33. /**
  34. * @param mixed $wrz
  35. */
  36. public function setWrzs($wrz)
  37. {
  38. $this->wrzs = $wrz;
  39. }
  40. public function addWrz($wrz)
  41. {
  42. $this->wrzs[] = $wrz;
  43. }
  44. /**
  45. * @return multitype:
  46. */
  47. public function getGewaesserbenutzungen()
  48. {
  49. return $this->gewaesserbenutzungen;
  50. }
  51. // public function getGewaesserbenutzungenById($gewaesserbenutzungsId)
  52. // {
  53. // if(!empty($gewaesserbenutzungsId))
  54. // {
  55. // $gewaesserbenutzungen = $this->gewaesserbenutzungen;
  56. // if(!empty($gewaesserbenutzungen))
  57. // {
  58. // foreach ($gewaesserbenutzungen as $gewaesserbenutzung)
  59. // {
  60. // if(!empty($gewaesserbenutzung) && $gewaesserbenutzung->getId() === $gewaesserbenutzungsId)
  61. // {
  62. // return $gewaesserbenutzung;
  63. // }
  64. // }
  65. // }
  66. // }
  67. // return null;
  68. // }
  69. /**
  70. * @param multitype: $gewaesserbenutzungen
  71. */
  72. public function setGewaesserbenutzungen($gewaesserbenutzungen)
  73. {
  74. $this->gewaesserbenutzungen = $gewaesserbenutzungen;
  75. }
  76. public function addGewaesserbenutzungen($gewaesserbenutzung)
  77. {
  78. $this->gewaesserbenutzungen[] = $gewaesserbenutzung;
  79. }
  80. // public function getTeilGewaesserbenutzungenByGewaesserbenutzungsId($gewaesserbenutzungsId)
  81. // {
  82. // $gewaesserbentzung = $this->getGewaesserbenutzungenById($gewaesserbenutzungsId);
  83. // if(!empty($gewaesserbentzung))
  84. // {
  85. // $teilgewaesserbenutzungen = $gewaesserbenutzung->getTeilgewaesserbenutzungenByErhebungsjahr($this->erhebungsjahr);
  86. // if(!empty($teilgewaesserbenutzungen) && count($teilgewaesserbenutzungen) > 0)
  87. // {
  88. // $teilgewaesserbenutzungenReturnArray = array();
  89. // foreach ($teilgewaesserbenutzungen as $teilgewaesserbenutzung)
  90. // {
  91. // if(!empty($teilgewaesserbenutzung))
  92. // {
  93. // $teilgewaesserbenutzungenReturnArray[] = $teilgewaesserbenutzung;
  94. // }
  95. // }
  96. // return $teilgewaesserbenutzungenReturnArray;
  97. // }
  98. // }
  99. // return null;
  100. // }
  101. public function getAllTeilGewaesserbenutzungen()
  102. {
  103. $gewaesserbenutzungen = $this->getGewaesserbenutzungen();
  104. if(!empty($gewaesserbenutzungen) && count($gewaesserbenutzungen) > 0)
  105. {
  106. $teilgewaesserbenutzungenReturnArray = array();
  107. foreach ($gewaesserbenutzungen as $gewaesserbenutzung)
  108. {
  109. if(!empty($gewaesserbenutzung))
  110. {
  111. $teilgewaesserbenutzungen = $gewaesserbenutzung->getTeilgewaesserbenutzungenByErhebungsjahr($this->erhebungsjahr);
  112. if(!empty($teilgewaesserbenutzungen) && count($teilgewaesserbenutzungen) > 0)
  113. {
  114. foreach ($teilgewaesserbenutzungen as $teilgewaesserbenutzung)
  115. {
  116. if(!empty($teilgewaesserbenutzung))
  117. {
  118. $teilgewaesserbenutzungenReturnArray[] = $teilgewaesserbenutzung;
  119. }
  120. }
  121. }
  122. }
  123. }
  124. return $teilgewaesserbenutzungenReturnArray;
  125. }
  126. return null;
  127. }
  128. /**
  129. * @return multitype:
  130. */
  131. public function getAnlagen()
  132. {
  133. return $this->getWrZArray("getAnlage");
  134. }
  135. /**
  136. * @return multitype:
  137. */
  138. public function getEntnahmemengen()
  139. {
  140. return $this->getGewaesserbenutzungsArrayWithErhebungsjahr("getFestsetzungSummeEntnahmemengen");
  141. }
  142. /**
  143. * @return multitype:
  144. */
  145. public function getEntgelte()
  146. {
  147. return $this->getGewaesserbenutzungsArrayWithErhebungsjahr("getFestsetzungSummeEntgelt");
  148. }
  149. /**
  150. * @return mixed
  151. */
  152. public function getFreitext()
  153. {
  154. return $this->freitext;
  155. }
  156. /**
  157. * @param mixed $freitext
  158. */
  159. public function setFreitext($freitext)
  160. {
  161. $this->freitext = $freitext;
  162. }
  163. public function setFreitextFromAllEntries()
  164. {
  165. $this->log->log_info('*** FestsetzungsSammelbescheidDaten->setFreitextFromAllEntries ***');
  166. $teilgewaesserbenutzungen = $this->getAllTeilGewaesserbenutzungen();
  167. if(!empty($teilgewaesserbenutzungen) && count($teilgewaesserbenutzungen) > 0)
  168. {
  169. $this->log->log_debug('teilgewaesserbenutzungen: ' . count($teilgewaesserbenutzungen));
  170. foreach ($teilgewaesserbenutzungen as $teilgewaesserbenutzung)
  171. {
  172. if(!empty($teilgewaesserbenutzung))
  173. {
  174. $freitext = $teilgewaesserbenutzung->getFreitext();
  175. if(!empty($freitext))
  176. {
  177. $this->setFreitext($freitext);
  178. break;
  179. }
  180. }
  181. }
  182. }
  183. }
  184. /**
  185. * @return multitype:
  186. */
  187. public function getErklaerung_datum()
  188. {
  189. return $this->getGewaesserbenutzungsArrayWithErhebungsjahr("getErklaerungDatum");
  190. }
  191. public function getErklaerung_datum_String()
  192. {
  193. $daten = $this->getErklaerung_datum();
  194. if(!empty($daten))
  195. {
  196. $returnString = null;
  197. foreach ($daten as $date)
  198. {
  199. if(!empty($date))
  200. {
  201. if(!empty($returnString))
  202. {
  203. $returnString = $returnString . " " . $date;
  204. }
  205. else
  206. {
  207. $returnString = $date;
  208. }
  209. }
  210. }
  211. return $returnString;
  212. }
  213. return null;
  214. }
  215. /**
  216. * @return multitype:
  217. */
  218. public function getZugelassene_entgelte()
  219. {
  220. return $this->getGewaesserbenutzungsArrayWithErhebungsjahr("getFestsetzungSummeZugelassenesEntgelt");
  221. }
  222. /**
  223. * @return multitype:
  224. */
  225. public function getNicht_zugelassene_entgelte()
  226. {
  227. return $this->getGewaesserbenutzungsArrayWithErhebungsjahr("getFestsetzungSummeNichtZugelassenesEntgelt");
  228. }
  229. /**
  230. * @return mixed
  231. */
  232. public function getErlaubterOderReduzierterUmfang()
  233. {
  234. $gewaesserbenutzungen = $this->gewaesserbenutzungen;
  235. if(!empty($gewaesserbenutzungen))
  236. {
  237. $returnArray = array();
  238. foreach ($gewaesserbenutzungen as $gewaesserbenutzung)
  239. {
  240. if(!empty($gewaesserbenutzung))
  241. {
  242. $erlaubterOderReduzierterUmfang = $gewaesserbenutzung->getErlaubterOderReduzierterUmfang();
  243. $returnArray[] = $erlaubterOderReduzierterUmfang;
  244. }
  245. }
  246. return $returnArray;
  247. }
  248. return null;
  249. }
  250. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  251. public function toString() {
  252. $this->log->log_info('*** FestsetzungsSammelbescheidDaten ***');
  253. $this->log->log_debug('count anlagen: ' . count($this->getAnlagen()));
  254. $this->log->log_debug('entnahmemengen: ' . var_export($this->getEntnahmemengen(), true));
  255. $this->log->log_debug('entgelte: ' . var_export($this->getEntgelte(), true));
  256. $this->log->log_debug('zugelassene entgelte: ' . var_export($this->getZugelassene_entgelte(), true));
  257. $this->log->log_debug('nicht zugelassene entgelte: ' . var_export($this->getNicht_zugelassene_entgelte(), true));
  258. $this->log->log_debug('erlaubterOderReduzierterUmfang: ' . var_export($this->getErlaubterOderReduzierterUmfang(), true));
  259. $this->log->log_debug('freitext: ' . $this->getFreitext());
  260. $this->log->log_debug('Erklärung Datum String: ' . $this->getErklaerung_datum_String());
  261. }
  262. public function isValid()
  263. {
  264. if(!empty($this->getWrzs()) && !empty($this->getWrzs()[0]))
  265. {
  266. if(!empty($this->getAnlagen()) && !empty($this->getEntnahmemengen()) && !empty($this->getEntgelte()))
  267. {
  268. $countAnlagen = count($this->getAnlagen());
  269. $this->log->log_debug('countAnlagen: ' . $countAnlagen);
  270. $countEntnahmemengen = count($this->getEntnahmemengen());
  271. $this->log->log_debug('countEntnahmemengen: ' . $countEntnahmemengen);
  272. $countEntgelte = count($this->getEntgelte());
  273. $this->log->log_debug('countEntgelte: ' . $countEntgelte);
  274. // $countZugelasseneEntgelte = count($this->getZugelassene_entgelte());
  275. // $this->log->log_debug('countZugelasseneEntgelte: ' . $countZugelasseneEntgelte, 4);
  276. // $countNichtZugelasseneEntgelte = count($this->getNicht_zugelassene_entgelte());
  277. // $this->log->log_debug('countNichtZugelasseneEntgelte: ' . $countNichtZugelasseneEntgelte, 4);
  278. if($countAnlagen === $countEntnahmemengen && $countAnlagen === $countEntgelte && $countEntnahmemengen === $countEntgelte)
  279. // && $countEntgelte === $countZugelasseneEntgelte && $countEntgelte === $countNichtZugelasseneEntgelte)
  280. {
  281. return true;
  282. }
  283. else
  284. {
  285. $this->log->log_error('Counts are not equal');
  286. }
  287. }
  288. else
  289. {
  290. $this->log->log_error('Arrays are empty');
  291. }
  292. }
  293. else
  294. {
  295. $this->log->log_error('WrZs are null');
  296. }
  297. return false;
  298. }
  299. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  300. public function getSummeEntgelte()
  301. {
  302. $entgelte = $this->getEntgelte();
  303. return $this->getSumme($entgelte);
  304. }
  305. public function getSummeNichtZugelasseneEntgelte()
  306. {
  307. $nicht_zugelassene_entgelte = $this->getNicht_zugelassene_entgelte();
  308. return $this->getSumme($nicht_zugelassene_entgelte);
  309. }
  310. public function getSummeZugelasseneEntgelte()
  311. {
  312. $zugelassene_entgelte = $this->getZugelassene_entgelte();
  313. return $this->getSumme($zugelassene_entgelte);
  314. }
  315. public function getSumme(&$entgelte)
  316. {
  317. $this->log->log_debug('entgelte: ' . var_export($entgelte, true));
  318. if(!empty($entgelte) && count($entgelte) > 0)
  319. {
  320. $summe_entgelte = 0;
  321. foreach ($entgelte as $entgelt)
  322. {
  323. $this->log->log_debug('summe_entgelte: ' . $summe_entgelte . ' + entgelt: ' . $entgelt);
  324. $summe_entgelte = $summe_entgelte + $entgelt;
  325. }
  326. $this->log->log_debug('summe_entgelte return: ' . $summe_entgelte);
  327. return $summe_entgelte;
  328. }
  329. return null;
  330. }
  331. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  332. public static function formatNumber(&$number)
  333. {
  334. return number_format($number, 0, '', ' ');
  335. }
  336. public static function formatCurrencyNumber(&$number)
  337. {
  338. return number_format($number, 2, ',', ' ');
  339. }
  340. // public function getGewaesserbenutzungFirstEntry($functionName, $erhebungsjahr = NULL)
  341. // {
  342. // return $this->getFirstEntry('getGewaesserbenutzungen', $functionName, $erhebungsjahr);
  343. // }
  344. public function getGewaesserbenutzungsArrayWithErhebungsjahr($functionName)
  345. {
  346. return $this->getArray('getGewaesserbenutzungen', $functionName, $this->erhebungsjahr);
  347. }
  348. public function getWrZArray($functionName)
  349. {
  350. return $this->getArray('getWrzs', $functionName, null);
  351. }
  352. }