diff --git a/application/OpenAccessId/OpenAccessId.php b/application/OpenAccessId/OpenAccessId.php index 4cbd1887e..252dc159a 100644 --- a/application/OpenAccessId/OpenAccessId.php +++ b/application/OpenAccessId/OpenAccessId.php @@ -95,8 +95,8 @@ class OpenAccessId extends mfBaseModel { $qs = http_build_query($params); //echo $qs."\n"; - $createOrderEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_QUERY_HOME; - $get_url = $createOrderEp."?".$qs; + $queryHomeEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_QUERY_HOME; + $get_url = $queryHomeEp."?".$qs; $ctx = stream_context_create($ctx_opts); $this->log->debug(__METHOD__.": Getting Home to fetch FTU: $get_url"); //exit; @@ -190,8 +190,84 @@ class OpenAccessId extends mfBaseModel { $this->save(); } else { $this->log->debug(__METHOD__.": OAID ".$this->oaid.": Already created in RIMO"); + + /************************************************************************* + * get OAID from rimo and check if it's the same FTU as our Wohneinheit + */ + + $ftu_data = $wohneinheit->ftu_data; + if($ftu_data['id'] && $ftu_data['name']) { + + $params = []; + $params['apiKey'] = RIMO_API_JSON_APIKEY; + + $ctx_opts = [ + 'http' => [ + 'method' => 'GET', + 'header' => 'accept: application/json' + ] + ]; + + $qs = http_build_query($params); + //echo $qs."\n"; + + $getOaidEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_GET_OAID; + $getOaidEp .= "/".$this->oaid; + $get_url = $getOaidEp."?".$qs; + $ctx = stream_context_create($ctx_opts); + $this->log->debug(__METHOD__.": Getting OAID from Rimo: $get_url"); + $response = file_get_contents($get_url, false, $ctx); + //var_dump($response);exit; + if($response === false) { + $this->log->error("Fehler beim abfragen der OAID in RIMO ".$this->oaid."\n"); + return false; + } + + $resp_data = json_decode($response); + if($resp_data->terminiationUnit && $resp_data->terminiationUnit->id) { + if($ftu_data['id'] != $resp_data->terminiationUnit->id) { + $old_ftu_id = $resp_data->terminiationUnit->id; + + + // unassign oaid from FTU + $ctx_opts["http"]["method"] = "DELETE"; + $unassignEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_UNASSIGN_OAID_TO_FTU; + $unassignEp = str_replace("{oaidName}", $this->oaid, $unassignEp); + $unassignEp = str_replace("{ftuExternalId}", $old_ftu_id, $unassignEp); + + $delete_url = $unassignEp."?".$qs; + $ctx = stream_context_create($ctx_opts); + $this->log->debug(__METHOD__.": Unassigning OAID from FTU $old_ftu_id: $delete_url"); + $response = file_get_contents($delete_url, false, $ctx); + + + // assign oaid to Wohneinheit FTU + $ctx_opts["http"]["method"] = "POST"; + $assignEp = RIMO_API_JSON_URL.RIMO_API_JSON_EP_ASSIGN_OAID_TO_FTU; + $assignEp = str_replace("{oaidName}", $this->oaid, $assignEp); + $assignEp = str_replace("{ftuExternalId}", $ftu_data['id'], $assignEp); + + $post_url = $assignEp."?".$qs; + $ctx = stream_context_create($ctx_opts); + $this->log->debug(__METHOD__.": Assigning OAID to current FTU ".$ftu_data['id'].": $post_url"); + $response = file_get_contents($post_url, false, $ctx); + + // update OAID export data + $exp_data_update = json_decode($this->export_data); + $exp_data_update->rimo->ftu_id = $ftu_data['id']; + $exp_data_update->rimo->ftu_name = $ftu_data['name']; + $exp_data_update->rimo->ftu_assigned_date = date("U"); + $this->export_data = json_encode($ext_data_update); + $this-save(); + } + } + } } + + + + /************************************************************************* * assign OAID to FTU - POST /v1/oaid-management/oaids/{oaidName}/ftu/{ftuExternalId} */