Beispiel #1
0
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);
}
Beispiel #2
0
function CableLine_Add($CableTypes, $length, $name, $comment)
{
    if (CableLine_Check($CableTypes, $length, $name, $comment) == 0) {
        return 0;
    }
    if ($length == "") {
        $ins['length'] = "NULL";
    } else {
        $ins['length'] = $length;
    }
    $ins['CableType'] = $CableTypes;
    $ins['comment'] = $comment;
    $ins['name'] = $name;
    $res = CableLine_INSERT($ins);
    if (isset($res['error'])) {
        return $res;
    }
    $id = $res['rows'][0]['id'];
    $wr['id'] = $CableTypes;
    $res2 = CableType_SELECT(1, $wr);
    $fibersCount = $res2['rows'][0]['tubeQuantity'] * $res2['rows'][0]['fiberPerTube'];
    CableLine_AddDeleteFibers($fibersCount, $id);
    return 1;
}