| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- Lib::loadClass('RouteBase');
- class Route_Mufy extends RouteBase {
- public function defaultAction() {
- UI::gora();
- UI::menu();
- UI::startTag('div', ['class'=>"container"]);
- try {
- echo UI::h('h3', [], "Mufy - raport dla uke (TODO)");
- DB::getPDO()->execSql("
- update opt_przelacznice_mufy m
- join TELBOXES t on (t.ID = m.ID_TELBOXES)
- set m.TELBOXES_X =
- IF( t.the_geom is NULL, NULL,
- SUBSTRING(
- AsWKT( ST_Centroid(t.the_geom) ),
- 7, -- 'POINT('
- INSTR(AsWKT( ST_Centroid(t.the_geom) ), ' ') - 7
- )
- )
- , m.TELBOXES_Y =
- IF( t.the_geom is NULL, NULL,
- REPLACE( SUBSTRING(
- AsWKT( ST_Centroid(t.the_geom) ),
- INSTR( AsWKT( ST_Centroid(t.the_geom) ), ' ')
- ), ')', '')
- )
- where m.ID_TELBOXES > 0
- ");
- DB::getPDO()->execSql("
- update opt_przelacznice_mufy m
- set m.TELBOXES_X = NULL
- , m.TELBOXES_Y = NULL
- where m.ID_TELBOXES = 0
- ");
- UI::alert('info', "Poprawiono dane w polach TELBOXES_X, TELBOXES_Y w tabeli `opt_przelacznice_mufy` na podstawie powiązanej studni (tabela TELBOXES, pole ID_TELBOXES)");
- $todo = DB::getPDO()->fetchAll("
- select m.ID, m.Nazwa, m.ID_TELBOXES, m.TELBOXES_X, m.TELBOXES_Y
- , AsWKT( m.the_geom ) as mufa_the_geom
- , AsWKT( t.the_geom ) as studnia_the_geom
- , AsWKT( ST_Centroid(t.the_geom) ) as centerXY
- , NULL as centerX
- , NULL as centerY
- , IF(t.the_geom is NULL, NULL,
- SUBSTRING(
- AsWKT( ST_Centroid(t.the_geom) ),
- 7, -- 'POINT('
- INSTR(AsWKT( ST_Centroid(t.the_geom) ), ' ') - 7
- )
- ) as testX
- , IF(t.the_geom is NULL, NULL,
- REPLACE(SUBSTRING(
- AsWKT( ST_Centroid(t.the_geom) ),
- INSTR(AsWKT( ST_Centroid(t.the_geom) ), ' ')
- ), ')', '')
- ) as testY
- from `opt_przelacznice_mufy` m
- left join `TELBOXES` t on(t.ID = m.ID_TELBOXES)
- where m.ID_TELBOXES > 0
- or m.ID < 10
- ");
- UI::table([
- 'rows' => array_map(function ($row) {
- list($row['centerX'], $row['centerY']) = ('POINT(' == substr($row['centerXY'], 0, strlen('POINT(')))
- ? explode(' ', substr($row['centerXY'], strlen('POINT('), -1))
- : ['NULL', 'NULL'];
- $row['notes'] = '';
- if ($row['ID_TELBOXES'] > 0) {
- if ($row['centerX'] != $row['TELBOXES_X'] || $row['centerY'] != $row['TELBOXES_Y']) {
- $row['notes'] = "TODO udpate...";
- // $affected = DB::getPDO()->update('opt_przelacznice_mufy', 'ID', $row['ID'], [
- // 'TELBOXES_X' => ($row['centerX'] > 0) ? $row['centerX'] : 'NULL',
- // 'TELBOXES_Y' => ($row['centerY'] > 0) ? $row['centerY'] : 'NULL',
- // ]);
- // $row['notes'] = ($affected) ? "Zaktualizowano TELBOXES X, Y" : "Bez zmian";
- }
- } else {
- }
- $row['testX'] = (null === $row['testX']) ? 'NULL' : $row['testX'];
- $row['testY'] = (null === $row['testY']) ? 'NULL' : $row['testY'];
- return $row;
- }, $todo)
- ]);
- } catch (Exception $e) {
- UI::alert('danger', "Error #" . $e->getCode() . "|" . $e->getLine() . ": " . $e->getMessage());
- DBG::log($e);
- }
- UI::endTag('div');
- UI::dol();
- }
- }
|