citycom import now saves service_number and status to PreorderCtag
This commit is contained in:
@@ -153,7 +153,7 @@ class PreorderCtag extends mfBaseModel {
|
||||
$model = new PreorderCtag();
|
||||
|
||||
$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"
|
||||
];
|
||||
|
||||
@@ -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();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
@@ -253,6 +258,13 @@ class PreorderCtag extends mfBaseModel {
|
||||
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) {
|
||||
//var_dump($filter);exit;
|
||||
$items = [];
|
||||
@@ -265,7 +277,6 @@ class PreorderCtag extends mfBaseModel {
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$sql = "SELECT PreorderCtag.* FROM PreorderCtag
|
||||
LEFT JOIN Preorder ON Preorder.id = PreorderCtag.preorder_id
|
||||
WHERE $where
|
||||
ORDER BY $order";
|
||||
|
||||
@@ -292,6 +303,13 @@ class PreorderCtag extends mfBaseModel {
|
||||
private static function getSqlFilter($filter) {
|
||||
$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)) {
|
||||
$stag = $filter['stag'];
|
||||
if(is_numeric($stag)) {
|
||||
@@ -312,7 +330,22 @@ class PreorderCtag extends mfBaseModel {
|
||||
$where .= " AND PreorderCtag.network = '$network'";
|
||||
}
|
||||
}
|
||||
|
||||
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";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -200,8 +200,6 @@ class CitycomImporter {
|
||||
$services = $ccapi->getServices();
|
||||
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, "sublocation") || !$service->location->sublocation || !$service->location->sublocation->id) continue;
|
||||
//var_dump($service);
|
||||
@@ -213,28 +211,49 @@ class CitycomImporter {
|
||||
$preorder = \PreorderModel::getFirst(["adb_wohneinheit_id" => $unit->id]);
|
||||
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) {
|
||||
$status_300 = \PreorderstatusModel::getFirst(["code" => 300]);
|
||||
if($preorder->status->code < 300) {
|
||||
$preorder->status_id = $status_300->id;
|
||||
$preorder->save();
|
||||
if(property_exists($service, "ont") && !$service->ont && !$service->ont->id) {
|
||||
$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) {
|
||||
$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) {
|
||||
$pco->ont_sn = $ont_sn;
|
||||
$pco->ont_gpid = $ont_gpid;
|
||||
$pco->save();
|
||||
// find ctag and update ext id and status if changed
|
||||
$stypes = array_flip(CITYCOM_OAN_API_SERVICES_FOR_ORDER);
|
||||
$stag = $unit->hausnummer->vlan_stag;
|
||||
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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user