Merge branch 'fronkdev' into 'master'

citycom import now saves service_number and status to PreorderCtag

See merge request fronk/thetool!1603
This commit is contained in:
Frank Schubert
2025-08-05 12:52:59 +00:00
2 changed files with 74 additions and 22 deletions
+36 -3
View File
@@ -153,7 +153,7 @@ class PreorderCtag extends mfBaseModel {
$model = new PreorderCtag(); $model = new PreorderCtag();
$table_fields = [ $table_fields = [
"preorder_id", "network", "stag", "ctag", "service_type", "deleted", "preorder_id", "network", "stag", "ctag", "service_type", "ext_id", "ext_status", "deleted",
"create_by","edit_by","create","edit" "create_by","edit_by","create","edit"
]; ];
@@ -192,7 +192,12 @@ class PreorderCtag extends mfBaseModel {
} }
public static function getFirst($filter) { public static function getFirstActive($filter) {
$filter["deleted"] = false;
return self::getFirst($filter);
}
public static function getFirst($filter = []) {
$db = FronkDB::singleton(); $db = FronkDB::singleton();
$where = self::getSqlFilter($filter); $where = self::getSqlFilter($filter);
@@ -253,6 +258,13 @@ class PreorderCtag extends mfBaseModel {
return 0; return 0;
} }
public static function searchActive($filter, $limit = false, $order = false) {
$filter["deleted"] = false;
return self::search($filter, $limit, $order);
}
public static function search($filter, $limit = false, $order = false) { public static function search($filter, $limit = false, $order = false) {
//var_dump($filter);exit; //var_dump($filter);exit;
$items = []; $items = [];
@@ -265,7 +277,6 @@ class PreorderCtag extends mfBaseModel {
$where = self::getSqlFilter($filter); $where = self::getSqlFilter($filter);
$sql = "SELECT PreorderCtag.* FROM PreorderCtag $sql = "SELECT PreorderCtag.* FROM PreorderCtag
LEFT JOIN Preorder ON Preorder.id = PreorderCtag.preorder_id
WHERE $where WHERE $where
ORDER BY $order"; ORDER BY $order";
@@ -292,6 +303,13 @@ class PreorderCtag extends mfBaseModel {
private static function getSqlFilter($filter) { private static function getSqlFilter($filter) {
$where = "1=1 "; $where = "1=1 ";
if(array_key_exists("preorder_id", $filter)) {
$preorder_id = $filter['preorder_id'];
if(is_numeric($preorder_id)) {
$where .= " AND PreorderCtag.preorder_id=$preorder_id";
}
}
if(array_key_exists("stag", $filter)) { if(array_key_exists("stag", $filter)) {
$stag = $filter['stag']; $stag = $filter['stag'];
if(is_numeric($stag)) { if(is_numeric($stag)) {
@@ -313,6 +331,21 @@ class PreorderCtag extends mfBaseModel {
} }
} }
if(array_key_exists("service_type", $filter)) {
$service_type = FronkDB::singleton()->escape($filter['service_type']);
if($service_type) {
$where .= " AND PreorderCtag.service_type = '$service_type'";
}
}
if(array_key_exists("deleted", $filter)) {
$deleted = $filter['deleted'];
if($deleted === false || $deleted === null || $deleted === 0) {
$where .= " AND (PreorderCtag.deleted=0 OR PreorderCtag.deleted IS NULL)";
} elseif($deleted === true) {
$where .= " AND PreorderCtag.deleted > 0";
}
}
+38 -19
View File
@@ -200,8 +200,6 @@ class CitycomImporter {
$services = $ccapi->getServices(); $services = $ccapi->getServices();
foreach($services as $service) { foreach($services as $service) {
if(!property_exists($service, "ont") || !$service->ont || !$service->ont->id) continue;
if(!property_exists($service, "location") || !$service->location || !$service->location->id) continue; if(!property_exists($service, "location") || !$service->location || !$service->location->id) continue;
if(!property_exists($service->location, "sublocation") || !$service->location->sublocation || !$service->location->sublocation->id) continue; if(!property_exists($service->location, "sublocation") || !$service->location->sublocation || !$service->location->sublocation->id) continue;
//var_dump($service); //var_dump($service);
@@ -213,28 +211,49 @@ class CitycomImporter {
$preorder = \PreorderModel::getFirst(["adb_wohneinheit_id" => $unit->id]); $preorder = \PreorderModel::getFirst(["adb_wohneinheit_id" => $unit->id]);
if(!$preorder) continue; if(!$preorder) continue;
$pco = \PreorderCitycomOan::getFirst(["preorder_id" => $preorder->id]);
if(!$pco) {
$pco = \PreorderCitycomOan::create([
"preorder_id" => $preorder->id
]);
}
$ont_sn = $service->ont->serial;
$ont_gpid = $service->ont->fsan;
if($ont_sn || $ont_gpid) { if(property_exists($service, "ont") && !$service->ont && !$service->ont->id) {
$status_300 = \PreorderstatusModel::getFirst(["code" => 300]); $pco = \PreorderCitycomOan::getFirst(["preorder_id" => $preorder->id]);
if($preorder->status->code < 300) { if(!$pco) {
$preorder->status_id = $status_300->id; $pco = \PreorderCitycomOan::create([
$preorder->save(); "preorder_id" => $preorder->id
]);
}
$ont_sn = $service->ont->serial;
$ont_gpid = $service->ont->fsan;
if($ont_sn || $ont_gpid) {
$status_300 = \PreorderstatusModel::getFirst(["code" => 300]);
if($preorder->status->code < 300) {
$preorder->status_id = $status_300->id;
$preorder->save();
}
}
if($pco->ont_sn != $ont_sn || $pco->ont_gpid != $ont_gpid) {
$pco->ont_sn = $ont_sn;
$pco->ont_gpid = $ont_gpid;
$pco->save();
} }
} }
if($pco->ont_sn != $ont_sn || $pco->ont_gpid != $ont_gpid) { // find ctag and update ext id and status if changed
$pco->ont_sn = $ont_sn; $stypes = array_flip(CITYCOM_OAN_API_SERVICES_FOR_ORDER);
$pco->ont_gpid = $ont_gpid; $stag = $unit->hausnummer->vlan_stag;
$pco->save(); if(!$stag) continue;
$ctag = \PreorderCtag::getFirstActive(["preorder_id" => $preorder->id, "stag" => $stag, "service_type" => $stypes[$service->service_type]]);
//echo "====\n";
//echo $preorder->id." - ".$service->service_number." - ".$service->location->sublocation->id." - ".$service->service_type." - $stag\n";
if($ctag->ext_id != $service->service_number) {
$ctag->ext_id = $service->service_number;
$ctag->save();
}
if($ctag->ext_status != $service->state) {
$ctag->ext_status = $service->state;
$ctag->save();
} }
} }