Merge branch 'fronkdev' into 'master'

citycom oan: Always trying to update cc service when snopp sends order

See merge request fronk/thetool!2095
This commit is contained in:
Frank Schubert
2026-02-12 14:04:00 +00:00
3 changed files with 10 additions and 83 deletions

View File

@@ -76,6 +76,13 @@ class SnoppCitycom extends Modules\ApiControllerModule
return \mfResponse::Ok(["status" => $status]); return \mfResponse::Ok(["status" => $status]);
} }
/**
* @param $req_id
* @return array
*
* Takes Order from SNOPP and updates CC service with correct product and
* if service is finished, updates billing_date of cc service and preorder status to 500
*/
public function orderService($req_id) { public function orderService($req_id) {
if(!$req_id) { if(!$req_id) {
return \mfResponse::BadRequest(["message" => "id missing"]); return \mfResponse::BadRequest(["message" => "id missing"]);
@@ -125,55 +132,7 @@ class SnoppCitycom extends Modules\ApiControllerModule
return \mfResponse::NotFound(["message" => "Home not found"]); return \mfResponse::NotFound(["message" => "Home not found"]);
} }
if($ctag->ext_id && $ctag->ext_status == "finished") {
if($preorder->status->code < 500) {
$preorder->setNewStatusCode(500);
$preorder->save();
}
// update billing_date if nessecary
$this->log->debug(__METHOD__.": Updating billing_date for {$ctag->ext_name} (Preorder {$preorder->id} {$preorder->oaid})");
$cc_api->updateService($ctag->ext_id, ["billing_date" => (new \DateTime("now"))->format("Y-m-d")]);
return \mfResponse::Ok(["message" => "Service active already", "activation_status" => "active"]);
}
// Home must have Status 300, else return deferred
/*if($wohneinheit->status->code < 300) {
return \mfResponse::Ok(["message" => "ONT not yet installed. Deferred", "activation_status" => "deferred"]);
}*/
/*
$cc_home_id = \Citycom_OanApiHelper::hausnummerExtrefToCitycomId($wohneinheit->extref);
$data["up"] = $bb_up;
$data["down"] = $bb_down;
$data["product_name"] = false;
$data["execution_date"] = ($execution_date) ? $execution_date->format("Y-m-d") : false;
$data["services"] = CITYCOM_OAN_API_SERVICES_FOR_ORDER;
// check if mgmt ctag is set
// so we use the same ctag set for the real services
$mgmt_ctag = \PreorderCtag::getFirstActive(["preorder_id" => $preorder->id, "service_type" => "mgmt"]);
if($mgmt_ctag) {
$data["ctag_range_search"] = $mgmt_ctag->ctag;
}
if($preorder->campaign->fulfillment == "citycom_oan") {
$data["product_name"] = "Estmk Greenstream OAN $bb_down/$bb_up";
}
$cc_api_client = new \Citycom_OanApiClient(CITYCOM_OAN_API_USER, CITYCOM_OAN_API_PASS);
$cc_api = new \Citycom_OanApiHelper($cc_api_client);
// order Service at Citycom and set Preorder to 500 Finished
if(!$cc_api->orderServices($preorder, $cc_home_id, $data)) {
return \mfResponse::InternalServerError(["message" => "Error activating service"]);
}*/
// update product at citycom
//$cc_home_id = \Citycom_OanApiHelper::hausnummerExtrefToCitycomId($wohneinheit->extref);
$data["up"] = $bb_up; $data["up"] = $bb_up;
$data["down"] = $bb_down; $data["down"] = $bb_down;
$data["product_name"] = false; $data["product_name"] = false;
@@ -187,13 +146,10 @@ class SnoppCitycom extends Modules\ApiControllerModule
$data["product_name"] = "Estmk Greenstream OAN $bb_down/$bb_up"; $data["product_name"] = "Estmk Greenstream OAN $bb_down/$bb_up";
} }
// try to update product with bandwidth provided by snopp. // try to update product with bandwidth provided by snopp.
// updateService() only updates if values are changed. // updateService() only updates if values are changed.
if(!$cc_api->updateService($ctag->ext_id, $data)) { if(!$cc_api->updateService($ctag->ext_id, $data)) {
$this->log->error(__METHOD__.": Error updating service {$ctag->ext_id} for preorder {$preorder->id}"); $this->log->error(__METHOD__.": Error updating service {$ctag->ext_id} for preorder {$preorder->id}");
//return \mfResponse::InternalServerError(["message" => "Error activating service"]);
} }
// check if service is active, if not return deferred // check if service is active, if not return deferred

View File

@@ -95,10 +95,6 @@ class Citycom_OanApiHelper {
$phone = $data["phone"]; $phone = $data["phone"];
$mobile = $data["mobile"]; $mobile = $data["mobile"];
if(!$execution_date) {
$execution_date = date("Y-m-d");
}
$ctag_range_search = false; $ctag_range_search = false;
if(array_key_exists("ctag_range_search", $data) && $data["ctag_range_search"]) { if(array_key_exists("ctag_range_search", $data) && $data["ctag_range_search"]) {
@@ -192,7 +188,6 @@ class Citycom_OanApiHelper {
"sublocation" => $sublocation_id, "sublocation" => $sublocation_id,
"service_type" => $stype->id, "service_type" => $stype->id,
"product" => $product_id, "product" => $product_id,
"billing_date" => $execution_date,
"ctag" => $ctag, "ctag" => $ctag,
"company" => $company, "company" => $company,
"firstname" => $firstname, "firstname" => $firstname,
@@ -200,10 +195,11 @@ class Citycom_OanApiHelper {
"phone" => $phone, "phone" => $phone,
"mobile" => $mobile, "mobile" => $mobile,
]; ];
if($execution_date) {
$service_data["billing_date"] = $execution_date;
}
//echo "Creating Service ".$stype->name." on sublocation $sublocation_id with product_id $product_id and ctag $ctag\n";
$this->log->info(__METHOD__.": Creating Service ".$stype->name." on sublocation $sublocation_id with product_id $product_id and ctag $ctag"); $this->log->info(__METHOD__.": Creating Service ".$stype->name." on sublocation $sublocation_id with product_id $product_id and ctag $ctag");
//continue;
// register new Service with Citycom // register new Service with Citycom
$new_service = $this->api->createService($service_data); $new_service = $this->api->createService($service_data);
@@ -214,28 +210,6 @@ class Citycom_OanApiHelper {
return false; return false;
} }
/*$service_return[] = [
"service_number" => $new_service->service_number,
"sublocation_id" => $sublocation_id,
"service_type" => $ctag_service_type,
"ctag" => $ctag,
"ont" => [
"serial" => $new_service->ont->serial,
"fsan" => $new_service->ont->fsan,
],
];*/
/*$service_return[] = [
"sublocation_id" => $sublocation_id,
"service_number" => "30-fggreger-01",
"service_type" => $ctag_service_type,
"ctag" => $ctag,
"ont" => [
"serial" => "ONT123456",
"fsan" => "FSAN7890",
],
];*/
// save ctag // save ctag
$ctag_data = $preorder_ctag_data; $ctag_data = $preorder_ctag_data;
$ctag_data["ctag"] = $ctag; $ctag_data["ctag"] = $ctag;

View File

@@ -67,9 +67,6 @@ foreach(PreordercampaignModel::search(["fulfillment" => "citycom_oan"]) as $camp
$data["ctag_range_search"] = $existing_ctag->ctag; $data["ctag_range_search"] = $existing_ctag->ctag;
} }
//echo "{$preorder->id}\n";
//var_dump($data);exit;
$log->info(__FILE__.": Ordering Citycom services for preorder ".$preorder->id); $log->info(__FILE__.": Ordering Citycom services for preorder ".$preorder->id);
if(!$cc_helper->orderServices($preorder, $sublocation_id, $data)) { if(!$cc_helper->orderServices($preorder, $sublocation_id, $data)) {
$log->error(__FILE__.": Error ordering Citycom services for preorder ".$preorder->id); $log->error(__FILE__.": Error ordering Citycom services for preorder ".$preorder->id);