Merge branch 'fronkdev' of code.fronk.at:fronk/thetool into fronkdev
This commit is contained in:
@@ -17,6 +17,65 @@ class SnoppCitycom extends Modules\ApiControllerModule
|
||||
|
||||
}
|
||||
|
||||
public function getOntStatus($req_id) {
|
||||
if(!$req_id) {
|
||||
return \mfResponse::BadRequest(["message" => "id missing"]);
|
||||
}
|
||||
|
||||
$wohneinheit = false;
|
||||
if(is_numeric($req_id)) {
|
||||
$id = $req_id;
|
||||
$wohneinheit = new \ADBWohneinheit($id);
|
||||
}
|
||||
if(!$wohneinheit || !$wohneinheit->id) {
|
||||
$oaid = $req_id;
|
||||
$wohneinheit = \ADBWohneinheitModel::getFirst(["oaid" => $oaid]);
|
||||
if (!$wohneinheit) {
|
||||
return \mfResponse::NotFound(["message" => "Home not found"]);
|
||||
}
|
||||
}
|
||||
|
||||
$cc = new \Citycom_OanApiClient(CITYCOM_OAN_API_USER, CITYCOM_OAN_API_PASS);
|
||||
$data = $cc->getOntStatus($wohneinheit->oaid);
|
||||
|
||||
$status = [];
|
||||
$status["online"] = ($data->{"oper-status"} == "present" && $data->status == "Confirmed") ? 1 : 0;
|
||||
$status["uptime"] = ($data->up_time) ? (date('U') - $data->up_time) : null;
|
||||
$status["downtime"] = null;
|
||||
$status["rx"] = $data->{"opt-signal-level"};
|
||||
$status["tx"] = $data->tx_opt_level_dbm;
|
||||
$status["distance"] = null;
|
||||
|
||||
|
||||
return \mfResponse::Ok(["status" => $status]);
|
||||
}
|
||||
|
||||
public function getOntTelemetry($req_id) {
|
||||
if(!$req_id) {
|
||||
return \mfResponse::BadRequest(["message" => "id missing"]);
|
||||
}
|
||||
|
||||
$wohneinheit = false;
|
||||
if(is_numeric($req_id)) {
|
||||
$id = $req_id;
|
||||
$wohneinheit = new \ADBWohneinheit($id);
|
||||
}
|
||||
if(!$wohneinheit || !$wohneinheit->id) {
|
||||
$oaid = $req_id;
|
||||
$wohneinheit = \ADBWohneinheitModel::getFirst(["oaid" => $oaid]);
|
||||
if (!$wohneinheit) {
|
||||
return \mfResponse::NotFound(["message" => "Home not found"]);
|
||||
}
|
||||
}
|
||||
|
||||
$cc = new \Citycom_OanApiClient(CITYCOM_OAN_API_USER, CITYCOM_OAN_API_PASS);
|
||||
$data = $cc->getOntStatusDetail($wohneinheit->oaid);
|
||||
|
||||
print_r($data);exit;
|
||||
|
||||
return \mfResponse::Ok(["status" => $status]);
|
||||
}
|
||||
|
||||
public function orderService($req_id) {
|
||||
if(!$req_id) {
|
||||
return \mfResponse::BadRequest(["message" => "id missing"]);
|
||||
|
||||
@@ -50,8 +50,9 @@ class OperationaldataApicontroller extends mfBaseApicontroller
|
||||
$this->addRoute("/operationaldata/home/:id/connected", [$modules["Snopp"], "setPreorderConnected"], "POST");
|
||||
$this->addRoute("/operationaldata/home/:id/active", [$modules["Snopp"], "setPreorderActive"], "POST");
|
||||
|
||||
//$this->addRoute("/operationaldata/preorder/:id/orderServiceTest", [$modules["SnoppCitycom"], "orderServiceTest"], "POST");
|
||||
$this->addRoute("/operationaldata/preorder/:id/orderService", [$modules["SnoppCitycom"], "orderService"], "POST");
|
||||
$this->addRoute("/operationaldata/preorder/:id/ontStatus", [$modules["SnoppCitycom"], "getOntStatus"], "GET");
|
||||
$this->addRoute("/operationaldata/preorder/:id/ontTelemetry", [$modules["SnoppCitycom"], "getOntTelemetry"], "GET");
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -446,7 +446,7 @@ class PreorderBillingController extends mfBaseController {
|
||||
die("fibu_revenue code not found for preorder ".$preorder->id);
|
||||
}
|
||||
|
||||
$change_to_active = PreorderHistoryModel::getFirstStatusChangeTo($preorder->id, 500);
|
||||
$change_to_active = PreorderHistoryModel::getLastStatusChangeTo($preorder->id, 500);
|
||||
if($change_to_active) {
|
||||
$status_change_date = new DateTime("@".$change_to_active->changed);
|
||||
$billing_data["start_date"] = $status_change_date->format("Y-m-d");
|
||||
@@ -637,7 +637,14 @@ class PreorderBillingController extends mfBaseController {
|
||||
//var_dump($existing_bill);
|
||||
if(!$existing_bill) {
|
||||
if($netoperator_config["billing-period"] == "quarterly" && $create_date->format("Ymd") > $latest_quarter_bill_date->format("Ymd")) {
|
||||
$this->log->debug(__METHOD__.": Skipping operator_usage ".$create_date->format("m/Y")." for preorder ".$preorder->id." because Billing date ".$create_date->format("Y-m-d")." is after latest_quarter_bill_date ".$latest_quarter_bill_date->format("Y-m-d"));
|
||||
// if this preorder was never billed before and activation date is before latest quarterly billing date, we still need to consider earlier months
|
||||
$any_previous_bill = PreorderBilling::getFirst(["product_id" => $product->id, "preorder_id" => $preorder->id]);
|
||||
if(!$any_previous_bill && $status_change_date->format("Ym") < $latest_quarter_bill_date->format("Ym")) {
|
||||
$create_date->modify("-1 months");
|
||||
continue;
|
||||
}
|
||||
// otherwise if activation was this month, then we need not bill anything now
|
||||
$this->log->debug(__METHOD__.": Skipping operator_usage blubb ".$create_date->format("m/Y")." for preorder ".$preorder->id." because Billing date ".$create_date->format("Y-m-d")." is after latest_quarter_bill_date ".$latest_quarter_bill_date->format("Y-m-d")." (status 500 change date: ".$status_change_date->format("Y-m-d").")");
|
||||
return true;
|
||||
}
|
||||
$new_create_date = clone $create_date;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
class User extends mfBaseModel {
|
||||
public $permissions;
|
||||
public $flags;
|
||||
public $flags = [];
|
||||
public $address;
|
||||
protected $forcestr = ['mobile','twofactorcode'];
|
||||
|
||||
|
||||
@@ -266,6 +266,122 @@ class Citycom_OanApiClient {
|
||||
return $types;
|
||||
}
|
||||
|
||||
public function getOntStatus($oan_id) {
|
||||
if(!$this->token) {
|
||||
$this->getAuthToken();
|
||||
if(!$this->token) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$url = $this->baseurl.CITYCOM_OAN_API_EP_GET_ONT_STATUS;
|
||||
$url = str_replace("{oan_id}", $oan_id, $url);
|
||||
$ctx_options = [
|
||||
"http" => [
|
||||
"ignore_errors" => true,
|
||||
"method" => "GET",
|
||||
"header" => [
|
||||
"Accept: application/json",
|
||||
"Authorization: Bearer ".$this->token,
|
||||
],
|
||||
]
|
||||
];
|
||||
|
||||
$ctx = stream_context_create($ctx_options);
|
||||
$output = file_get_contents($url, false, $ctx);
|
||||
|
||||
$resp = json_decode($output);
|
||||
if(!is_object($resp)) {
|
||||
return false;
|
||||
}
|
||||
if(!property_exists($resp, "success") || !$resp->success || !property_exists($resp, "data")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $resp->data;
|
||||
}
|
||||
|
||||
public function getOntPortStatus($oan_id) {
|
||||
if(!$this->token) {
|
||||
$this->getAuthToken();
|
||||
if(!$this->token) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$url = $this->baseurl.CITYCOM_OAN_API_EP_GET_ONT_PORTSTATUS;
|
||||
$url = str_replace("{oan_id}", $oan_id, $url);
|
||||
$ctx_options = [
|
||||
"http" => [
|
||||
"ignore_errors" => true,
|
||||
"method" => "GET",
|
||||
"header" => [
|
||||
"Accept: application/json",
|
||||
"Authorization: Bearer ".$this->token,
|
||||
],
|
||||
]
|
||||
];
|
||||
|
||||
$ctx = stream_context_create($ctx_options);
|
||||
$output = file_get_contents($url, false, $ctx);
|
||||
|
||||
$resp = json_decode($output);
|
||||
if(!is_object($resp)) {
|
||||
return false;
|
||||
}
|
||||
if(!property_exists($resp, "success") || !$resp->success || !property_exists($resp, "data")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $resp->data;
|
||||
}
|
||||
|
||||
public function getOntMacAddresses($oan_id) {
|
||||
if(!$this->token) {
|
||||
$this->getAuthToken();
|
||||
if(!$this->token) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$url = $this->baseurl.CITYCOM_OAN_API_EP_GET_ONT_MACADDRESSES;
|
||||
$url = str_replace("{oan_id}", $oan_id, $url);
|
||||
$ctx_options = [
|
||||
"http" => [
|
||||
"ignore_errors" => true,
|
||||
"method" => "GET",
|
||||
"header" => [
|
||||
"Accept: application/json",
|
||||
"Authorization: Bearer ".$this->token,
|
||||
],
|
||||
]
|
||||
];
|
||||
|
||||
$ctx = stream_context_create($ctx_options);
|
||||
$output = file_get_contents($url, false, $ctx);
|
||||
|
||||
$resp = json_decode($output);
|
||||
if(!is_object($resp)) {
|
||||
return false;
|
||||
}
|
||||
if(!property_exists($resp, "success") || !$resp->success || !property_exists($resp, "data")) {
|
||||
return false;
|
||||
}
|
||||
return $resp->data;
|
||||
}
|
||||
|
||||
public function getOntStatusDetail($oan_id) {
|
||||
$ont_status = $this->getOntStatus($oan_id);
|
||||
$ont_port_status = $this->getOntPortStatus($oan_id);
|
||||
$ont_mac_addresses = $this->getOntMacAddresses($oan_id);
|
||||
|
||||
return [
|
||||
$ont_status,
|
||||
$ont_port_status,
|
||||
$ont_mac_addresses
|
||||
];
|
||||
}
|
||||
|
||||
private function getAuthToken() {
|
||||
$token = new mfConfig("adb.import.citycom.auth.token");
|
||||
if($token && $token->value()) {
|
||||
|
||||
Reference in New Issue
Block a user