PageRenderTime 63ms CodeModel.GetById 34ms RepoModel.GetById 0ms app.codeStats 0ms

/plugins/wasserrecht/control/index.php

https://github.com/srahn/kvwmap
PHP | 350 lines | 211 code | 55 blank | 84 comment | 18 complexity | 94f242dffe3339c07373bf30c1382927 MD5 | raw file
  1. <?php
  2. include_once(CLASSPATH . 'PgObject.php');
  3. include_once(CLASSPATH . 'Layer.php');
  4. // include('funktionen/input_check_functions.php');
  5. include_once(PLUGINS . 'wasserrecht/config/config.php');
  6. include(PLUGINS . 'wasserrecht/helper/Log.php');
  7. include(PLUGINS . 'wasserrecht/helper/CommonClassTrait.php');
  8. include(PLUGINS . 'wasserrecht/helper/DateHelper.php');
  9. // include(PLUGINS . 'wasserrecht/helper/LayerNames.php');
  10. include(PLUGINS . 'wasserrecht/model/FestsetzungsSammelbescheidDaten.php');
  11. include(PLUGINS . 'wasserrecht/model/AufforderungsBescheidDaten.php');
  12. include(PLUGINS . 'wasserrecht/model/WRZProGueltigkeitsJahre.php');
  13. include(PLUGINS . 'wasserrecht/model/WRZProGueltigkeitsJahreArray.php');
  14. include(PLUGINS . 'wasserrecht/model/db/WrPgObject.php');
  15. include(PLUGINS . 'wasserrecht/model/db/anlage.php');
  16. include(PLUGINS . 'wasserrecht/model/db/personen.php');
  17. include(PLUGINS . 'wasserrecht/model/db/adresse.php');
  18. include(PLUGINS . 'wasserrecht/model/db/konto.php');
  19. include(PLUGINS . 'wasserrecht/model/db/behoerde.php');
  20. include(PLUGINS . 'wasserrecht/model/db/behoerde_art.php');
  21. include(PLUGINS . 'wasserrecht/model/db/dokument.php');
  22. include(PLUGINS . 'wasserrecht/model/db/bescheid.php');
  23. include(PLUGINS . 'wasserrecht/model/db/aufforderung.php');
  24. include(PLUGINS . 'wasserrecht/model/db/erklaerung.php');
  25. include(PLUGINS . 'wasserrecht/model/db/festsetzung.php');
  26. include(PLUGINS . 'wasserrecht/model/db/gewaesserbenutzungen.php');
  27. include(PLUGINS . 'wasserrecht/model/db/gewaesserbenutzungen_umfang_name.php');
  28. include(PLUGINS . 'wasserrecht/model/db/gewaesserbenutzungen_umfang_einheiten.php');
  29. include(PLUGINS . 'wasserrecht/model/db/gewaesserbenutzungen_umfang.php');
  30. include(PLUGINS . 'wasserrecht/model/db/gewaesserbenutzungen_art.php');
  31. include(PLUGINS . 'wasserrecht/model/db/gewaesserbenutzungen_zweck.php');
  32. include(PLUGINS . 'wasserrecht/model/db/gewaesserbenutzungen_wee_satz.php');
  33. include(PLUGINS . 'wasserrecht/model/db/gewaesserbenutzungen_art_benutzung.php');
  34. include(PLUGINS . 'wasserrecht/model/db/mengenbestimmung.php');
  35. include(PLUGINS . 'wasserrecht/model/db/teilgewaesserbenutzungen.php');
  36. include(PLUGINS . 'wasserrecht/model/db/teilgewaesserbenutzungen_art.php');
  37. include(PLUGINS . 'wasserrecht/model/db/wasserrechtliche_zulassungen.php');
  38. require_once (CLASSPATH . '/../vendor/autoload.php');
  39. // include(PLUGINS . 'wasserrecht/view/KvwmapJodDocumentConverter.class.php');
  40. include(PLUGINS . 'wasserrecht/bescheide/create_bescheide.php');
  41. function startsWith($haystack, $needle)
  42. {
  43. $length = strlen($needle);
  44. return (substr($haystack, 0, $length) === $needle);
  45. }
  46. function endsWith($haystack, $needle)
  47. {
  48. $length = strlen($needle);
  49. if ($length == 0) {
  50. return true;
  51. }
  52. return (substr($haystack, -$length) === $needle);
  53. }
  54. // function findIdFromValueString(&$gui, $valueEscaped)
  55. // {
  56. // $gui->log->log_info('*** findIdFromValueString ***');
  57. // $gui->log->log_debug('valueEscaped: ' . $valueEscaped);
  58. // $lastIndex = strripos($valueEscaped, "_");
  59. // $gewaesserbenutzungId = substr($valueEscaped, $lastIndex + 1);
  60. // $wrzId = substr($valueEscaped, 0, $lastIndex);
  61. // $returnArray = array(
  62. // "wrz_id" => $wrzId,
  63. // "gewaesserbenutzung_id" => $gewaesserbenutzungId
  64. // );
  65. // $gui->log->log_debug('returnArray: ' . var_export($returnArray, true));
  66. // return $returnArray;
  67. // }
  68. function findIdAndYearFromValueString(&$gui, $valueEscaped)
  69. {
  70. $gui->log->log_info('*** findIdAndYearFromValueString ***');
  71. $gui->log->log_debug('valueEscaped: ' . $valueEscaped);
  72. $lastIndex = strripos($valueEscaped, "_");
  73. $firstIndex = strpos($valueEscaped, "_");
  74. $wrzId = substr($valueEscaped, 0, $firstIndex);
  75. $gewaesserbenutzungId = substr($valueEscaped, $firstIndex + 1, $lastIndex - 2);
  76. $erhebungsjahr = substr($valueEscaped, $lastIndex + 1);
  77. $returnArray = array(
  78. "wrz_id" => $wrzId,
  79. "gewaesserbenutzung_id" => $gewaesserbenutzungId,
  80. "erhebungsjahr" => $erhebungsjahr
  81. );
  82. $gui->log->log_debug('returnArray: ' . var_export($returnArray, true));
  83. return $returnArray;
  84. }
  85. function getDocumentUrlFromPath(&$gui, $documentPath)
  86. {
  87. $document_full_path = WASSERRECHT_DOCUMENT_PATH . $documentPath;
  88. $gui->log->log_debug('dokument_full_path: ' . var_export($document_full_path, true));
  89. $gui->allowed_documents[] = addslashes($document_full_path);
  90. $gui->log->log_debug('this->allowed_documents: ' . var_export($gui->allowed_documents, true));
  91. $url = IMAGEURL . $gui->document_loader_name . '?dokument=';
  92. $gui->log->log_debug('url: ' . var_export($url, true));
  93. $absoluteURL = $url . $document_full_path;
  94. $gui->log->log_debug('absoluteURL: ' . var_export($absoluteURL, true));
  95. return $absoluteURL;
  96. }
  97. $GUI->actual_link = parse_url((isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]", PHP_URL_PATH);
  98. /**
  99. * LOG
  100. */
  101. $GUI->log = new Log($GUI->debug);
  102. /**
  103. * Date
  104. */
  105. $GUI->date = new DateHelper($GUI);
  106. /**
  107. * Layer Names
  108. */
  109. // $GUI->layer_names = new LayerNames($GUI, Layer::find($GUI, "true"));
  110. // print_r($_POST);
  111. // print_r($_REQUEST);
  112. // if(!empty($_POST["post_action"]))
  113. // {
  114. // $parts = parse_url($url);
  115. // print_r($_GET);
  116. // $GUI->go=htmlspecialchars($_POST["post_action"]);
  117. // }
  118. if($_SERVER ["REQUEST_METHOD"] == "POST")
  119. {
  120. // print_r($_POST);
  121. foreach($_POST as $key => $value)
  122. {
  123. $keyEscaped = htmlspecialchars($key);
  124. if(is_array($value)) //skip arrays
  125. {
  126. break;
  127. }
  128. $valueEscaped = htmlspecialchars($value);
  129. if(startsWith($keyEscaped, ERKLAERUNG_URL))
  130. {
  131. $GUI->go = WASSERENTNAHMEENTGELT_ERKLAERUNG_DER_ENTNAHME_URL;
  132. break;
  133. }
  134. elseif($keyEscaped === VERWALTUNGSAUFWAND_BEANTRAGEN_URL)
  135. {
  136. $GUI->go = ERSTATTUNG_DES_VERWALTUNGSAUFWANDS_URL;
  137. }
  138. }
  139. }
  140. function go_switch_wasserrecht($go){
  141. global $GUI;
  142. switch($GUI->go){
  143. case WASSERENTNAHMEBENUTZER: {
  144. $GUI->log->log_debug(WASSERENTNAHMEBENUTZER . ' called!');
  145. $GUI->main = PLUGINS . 'wasserrecht/view/'. WASSERENTNAHMEBENUTZER_AUFFORDERUNG_ZUR_ERKLAERUNG_URL . '.php';
  146. $GUI->output();
  147. } break;
  148. case WASSERENTNAHMEBENUTZER_AUFFORDERUNG_ZUR_ERKLAERUNG_URL: {
  149. $GUI->log->log_debug(WASSERENTNAHMEBENUTZER_AUFFORDERUNG_ZUR_ERKLAERUNG_URL . ' called!');
  150. $GUI->main = PLUGINS . 'wasserrecht/view/'. WASSERENTNAHMEBENUTZER_AUFFORDERUNG_ZUR_ERKLAERUNG_URL . '.php';
  151. $GUI->output();
  152. } break;
  153. case WASSERENTNAHMEBENUTZER_ENTGELTBESCHEID_URL: {
  154. $GUI->log->log_debug(WASSERENTNAHMEBENUTZER_ENTGELTBESCHEID_URL . ' called!');
  155. $GUI->main = PLUGINS . 'wasserrecht/view/' . WASSERENTNAHMEBENUTZER_ENTGELTBESCHEID_URL .'.php';
  156. $GUI->output();
  157. } break;
  158. case WASSERENTNAHMEENTGELT_URL: {
  159. $GUI->log->log_debug(WASSERENTNAHMEENTGELT_URL . ' called!');
  160. $GUI->main = PLUGINS . 'wasserrecht/view/' . WASSERENTNAHMEENTGELT_ERKLAERUNG_DER_ENTNAHME_URL . '.php';
  161. $GUI->output();
  162. } break;
  163. case WASSERENTNAHMEENTGELT_ERKLAERUNG_DER_ENTNAHME_URL: {
  164. $GUI->log->log_debug(WASSERENTNAHMEENTGELT_ERKLAERUNG_DER_ENTNAHME_URL . ' called!');
  165. $GUI->main = PLUGINS . 'wasserrecht/view/' . WASSERENTNAHMEENTGELT_ERKLAERUNG_DER_ENTNAHME_URL .'.php';
  166. $GUI->output();
  167. } break;
  168. case WASSERENTNAHMEENTGELT_FESTSETZUNG_URL: {
  169. $GUI->log->log_debug(WASSERENTNAHMEENTGELT_FESTSETZUNG_URL . 'called!');
  170. $GUI->main = PLUGINS . 'wasserrecht/view/' . WASSERENTNAHMEENTGELT_FESTSETZUNG_URL . '.php';
  171. $GUI->output();
  172. } break;
  173. case ZENTRALE_STELLE_URL: {
  174. $GUI->log->log_debug(ZENTRALE_STELLE_URL . ' called!');
  175. // if ($GUI->user->funktion === 'admin')
  176. // {
  177. $GUI->log->log_debug(ZENTRALE_STELLE_URL . ' Zugriff erlaubt');
  178. $GUI->main = PLUGINS . 'wasserrecht/view/' . ZENTRALE_STELLE_URL . '.php';
  179. $GUI->output();
  180. // }
  181. // else
  182. // {
  183. // $GUI->log->log_debug(ZENTRALE_STELLE_URL . ' Zugriff verweigert');
  184. // echo 'Zugriff verweigert';
  185. // }
  186. } break;
  187. case ERSTATTUNG_DES_VERWALTUNGSAUFWANDS_URL: {
  188. $GUI->log->log_debug(ERSTATTUNG_DES_VERWALTUNGSAUFWANDS_URL . ' called!');
  189. $GUI->main = PLUGINS . 'wasserrecht/view/'. ERSTATTUNG_DES_VERWALTUNGSAUFWANDS_URL . '.php';
  190. $GUI->output();
  191. } break;
  192. case 'wasserrecht_deploy': {
  193. $GUI->checkCaseAllowed($GUI->go);
  194. if ($GUI->user->funktion == 'admin') {
  195. $GUI->main = PLUGINS . 'wasserrecht/view/deploy_form.php';
  196. $GUI->output();
  197. }
  198. else {
  199. echo 'Zugriff verweigert';
  200. };
  201. } break;
  202. case 'wasserrecht_deploy_Starten': {
  203. $GUI->checkCaseAllowed('wasserrecht_deploy');
  204. if ($GUI->user->funktion == 'admin') {
  205. $result = array(
  206. 'update_mysql' => 'Fehler',
  207. 'pull_git' => 'Fehlgeschlagen',
  208. 'reset_pgsql_schema' => 'Fehler',
  209. 'reset_pgsql_data' => 'Fehler'
  210. );
  211. # update MySQL-Database
  212. {
  213. $mysqli = new mysqli("mysql", "kvwmap", "Laridae_Moewe1", "kvwmapdb_wr");
  214. if (mysqli_connect_errno()) {
  215. $GUI->result['update_mysql'] = 'Datenbankverbindung fehlgeschlagen<br>' . mysqli_connect_error();
  216. $GUI->main = PLUGINS . 'wasserrecht/view/deploy_results.php';
  217. $GUI->output();
  218. exit();
  219. }
  220. $sql_dump .= file_get_contents($_FILES['file']['tmp_name']);
  221. $msg = array();
  222. if (strpos($sql_dump, 'phpMyAdmin SQL Dump') === false) {
  223. $msg[] = 'Datei ' . $_FILES['file']['name'] . ' ist MySQL-Dump.';
  224. }
  225. else {
  226. $sql .= "DROP DATABASE kvwmapdb_wr;";
  227. $msg[] = 'Lösche Datenbank kvwmapdb_wr.';
  228. $sql .= "CREATE DATABASE kvwmapdb_wr;";
  229. $msg[] = 'Erzeuge neue Datenbank kvwmapdb_wr.';
  230. $sql .= "USE kvwmapdb_wr;";
  231. $sql .= $sql_dump;
  232. $msg[] = 'Befülle Datenbank kvwmapdb_wr.';
  233. if ($mysqli->multi_query($sql)) {
  234. do {
  235. /* store first result set */
  236. if ($result = $mysqli->store_result()) {
  237. while ($row = $result->fetch_row()) {
  238. $msg[] = $row[0];
  239. }
  240. $result->free();
  241. }
  242. } while ($mysqli->next_result());
  243. }
  244. }
  245. $mysqli->close();
  246. $msg[] = 'MySQL-Datenbank kvwmapdb_wr erfolgreich ausgetauscht.';
  247. $result['update_mysql'] = implode('<p>', $msg);
  248. }
  249. # pull git repository
  250. {
  251. $GUI->formvars['func'] = 'update_code';
  252. $ausgabe = $GUI->adminFunctions();
  253. $result['pull_git'] = $ausgabe[0];
  254. $result['pull_git'] .= "<br>Git Repository aktualisiert";
  255. }
  256. # reset pgsql schema
  257. {
  258. $msg = array();
  259. foreach (glob(PLUGINS . "wasserrecht/db/postgresql/schema/*.sql") as $filename) {
  260. $sql = file_get_contents($filename);
  261. $GUI->pgdatabase->execSQL($sql, 4, 1);
  262. $msg[] = basename($filename) . ' eingelesen.';
  263. }
  264. $result['reset_pgsql_schema'] = implode('<br>', $msg);
  265. }
  266. # reset_pgsql_data
  267. {
  268. $msg = array();
  269. foreach (glob(PLUGINS . "wasserrecht/db/postgresql/data/*.sql") as $filename) {
  270. $sql = file_get_contents($filename);
  271. $GUI->pgdatabase->execSQL($sql, 4, 1);
  272. $msg[] = basename($filename) . ' eingelesen.';
  273. }
  274. $result['reset_pgsql_data'] = implode('<br>', $msg);
  275. }
  276. $GUI->result = $result;
  277. $GUI->main = PLUGINS . 'wasserrecht/view/deploy_results.php';
  278. $GUI->output();
  279. }
  280. else {
  281. echo 'Zugriff verweigert';
  282. };
  283. } break;
  284. default : {
  285. $GUI->goNotExecutedInPlugins = true; // in diesem Plugin wurde go nicht ausgeführt
  286. }
  287. }
  288. }
  289. ?>