function divCableLine($coors, $CableLineId, $nodeInfo, $tmpT = FALSE) { $OpenGIS = "(" . $coors[0]->lon . "," . $coors[0]->lat . ")"; $wr['id'] = $CableLineId; $res = CableLine_SELECT(0, $wr, $tmpT); $CableLine = $res['rows'][0]; unset($wr); $name = $nodeInfo['name']; $NetworkBoxId = $nodeInfo['NetworkBoxId']; $note = $nodeInfo['note']; $place = $nodeInfo['place']; $SettlementGeoSpatial = "NULL"; $building = "NULL"; $apartment = "NULL"; PQuery("BEGIN WORK;"); $res = NetworkNode_Add($name, $NetworkBoxId, $note, $OpenGIS, $SettlementGeoSpatial, $building, $apartment, $place, $tmpT); if (isset($res['error'])) { PQuery("ROLLBACK WORK;"); return array('error' => $res['error']); } $NetworkNodeId = $res['rows'][0]['id']; $ins['CableType'] = $CableLine['CableType']; if ($CableLine['length'] != "") { $ins['length'] = $CableLine['length']; } else { $ins['length'] = "NULL"; } $ins['name'] = $CableLine['name'] . '_' . $nodeInfo['name']; $ins['comment'] = $CableLine['comment']; $res = CableLine_INSERT($ins, $tmpT); if (isset($res['error'])) { PQuery("ROLLBACK WORK;"); return array('error' => $res['error']); } $NCableLineId = $res['rows'][0]['id']; $wr['CableLine'] = $CableLineId; $query = 'SELECT * FROM "' . tmpTable('CableLinePoint', $tmpT) . '"' . genWhere($wr) . 'ORDER BY "sequence"'; $res2 = PQuery($query); $CableLinePoints = $res2['rows']; for ($i = 0; $i < count($CableLinePoints); $i++) { $point = $CableLinePoints[$i]; if ($point['OpenGIS'] == $OpenGIS) { $seq = $point['sequence']; $wr1 = array('sequence' => array('val' => $seq, 'sign' => '>'), 'CableLine' => $CableLineId); CableLinePoint_DELETE($wr1, $tmpT); $wr['sequence'] = $seq; $upd['OpenGIS'] = "NULL"; $upd['NetworkNode'] = $NetworkNodeId; CableLinePoint_UPDATE($upd, $wr, $tmpT); break; } } $seq = 1; for ($j = $i; $j < count($CableLinePoints); $j++) { $point = $CableLinePoints[$j]; $ins = array(); foreach ($point as $key => $value) { if ($key != "id" && $key != "sequence") { if ($value != "") { $ins[$key] = $value; } else { $ins[$key] = "NULL"; } } } $ins['CableLine'] = $NCableLineId; $ins['sequence'] = $seq++; if ($j == $i) { $ins['NetworkNode'] = $NetworkNodeId; $ins['OpenGIS'] = "NULL"; } CableLinePoint_INSERT($ins, $tmpT); } if (isset(end($CableLinePoints)['NetworkNode'])) { OpticalFiberJoin_replaceCableLine($CableLine['id'], $NCableLineId, end($CableLinePoints)['NetworkNode'], $tmpT); } $res = PQuery("COMMIT WORK;"); return array('error' => isset($res['error']) ? $res['error'] : false); }
function CableLinePoint_Add($OpenGIS, $CableLine, $meterSign, $networkNode, $note, $Apartment, $Building, $SettlementGeoSpatial, $sequence = -1) { if (CableLinePoint_Check($OpenGIS, $CableLine, $meterSign, $networkNode, $note, $Apartment, $Building, $SettlementGeoSpatial) == 0) { return 0; } if ($OpenGIS == '') { $OpenGIS = 'NULL'; } if ($networkNode == "") { $networkNode = "NULL"; } else { $OpenGIS = "NULL"; } $ins['OpenGIS'] = $OpenGIS; $ins['CableLine'] = $CableLine; $ins['meterSign'] = $meterSign; $ins['NetworkNode'] = $networkNode; $ins['note'] = $note; $ins['Apartment'] = "NULL"; $ins['Building'] = "NULL"; $ins['SettlementGeoSpatial'] = "NULL"; if ($sequence > -1) { $ins['sequence'] = $sequence; } $res = CableLinePoint_INSERT($ins); if (isset($res['error'])) { return $res; } return 1; }