Importing Workorders from salescluster instead of from building now
This commit is contained in:
@@ -823,10 +823,16 @@ class PreordercampaignController extends mfBaseController {
|
||||
$this->log->error("Cannot create RimoWorkorder! Invalid Response! (Preorder code: ".$preorder->ucode.") | Response: \n$response");
|
||||
throw new Exception("Cannot create RimoWorkorder! Invalid Response! (Preorder code: ".$preorder->ucode.")");
|
||||
}
|
||||
|
||||
|
||||
$rimo_status = $resp_data->status->userLabel;
|
||||
if(!$rimo_status) {
|
||||
$rimo_status = "";
|
||||
}
|
||||
|
||||
$wo = RimoWorkorderModel::create([
|
||||
"rimo_id" => $resp_data->id,
|
||||
"rimo_name" => $resp_data->name,
|
||||
"rimo_status" => $rimo_status,
|
||||
"adb_wohneinheit_id" => $preorder->adb_wohneinheit_id,
|
||||
"create_data" => $response
|
||||
]);
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
<?php
|
||||
|
||||
class RimoWorkorderModel {
|
||||
public $rimo_id;
|
||||
public $rimo_name;
|
||||
public $adb_wohneinheit_id;
|
||||
public $termination_id;
|
||||
public $rimo_id;
|
||||
public $rimo_name;
|
||||
public $rimo_status;
|
||||
public $rimo_team_id;
|
||||
public $rimo_team_name;
|
||||
public $create_data;
|
||||
|
||||
|
||||
public $create_by;
|
||||
public $edit_by;
|
||||
public $create;
|
||||
|
||||
@@ -537,83 +537,7 @@ foreach ($clusters as $cluster_data) {
|
||||
|
||||
}
|
||||
//continue;
|
||||
/*
|
||||
* get workorders
|
||||
*/
|
||||
|
||||
$params = $baseParams;
|
||||
$params["buildingId"] = $rimo_building_id;
|
||||
$qs = http_build_query($params);
|
||||
|
||||
$req_url = $epGetWorkorders . "?" . $qs;
|
||||
$req_ctx = stream_context_create($ctxOptsGet);
|
||||
|
||||
//echo $req_url."\n";
|
||||
$responseText = file_get_contents($req_url, false, $req_ctx);
|
||||
|
||||
if ($responseText === false) {
|
||||
//echo "Error fetching Workorders for building $rimo_building_id\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
$workordersResponse = json_decode($responseText);
|
||||
|
||||
//print_r($workordersResponse);exit;
|
||||
|
||||
if (is_object($workordersResponse) && property_exists($workordersResponse, "item") && is_array($workordersResponse->item) && count($workordersResponse->item)) {
|
||||
foreach ($workordersResponse->item as $workorder) {
|
||||
$rimo_workorder_id = $workorder->id;
|
||||
$rimo_workorder_name = $workorder->name;
|
||||
$workorder_status = $workorder->state->userLabel;
|
||||
$workorder_home_id = $workorder->home->id;
|
||||
$team_id = (is_array($workorder->teams->item) && count($workorder->teams->item)) ? $workorder->teams->item[0]->id : null;
|
||||
$team_name = (is_array($workorder->teams->item) && count($workorder->teams->item)) ? $workorder->teams->item[0]->name : null;
|
||||
|
||||
$wo = \RimoWorkorderModel::getFirst(["rimo_id" => $rimo_workorder_id]);
|
||||
|
||||
if ($wo) {
|
||||
//echo "Updating Workorder $rimo_workorder_id ($workorder_home_id)\n";
|
||||
if ($workorder_status != $wo->rimo_status) {
|
||||
\mfValuecache::singleton()->set("adbhausnummer-save-nesting-level-".$hausnummer->id, 0);
|
||||
\mfValuecache::singleton()->set("adbwohneinheit-save-nesting-level-".$unit->id, 0);
|
||||
$wo->rimo_status = $workorder_status;
|
||||
$wo->save();
|
||||
}
|
||||
if ($team_id != $wo->rimo_team_id) {
|
||||
$wo->rimo_team_id = $team_id;
|
||||
$wo->save();
|
||||
}
|
||||
if ($team_name != $wo->rimo_team_name) {
|
||||
$wo->rimo_team_name = $team_name;
|
||||
$wo->save();
|
||||
}
|
||||
}
|
||||
|
||||
if (!$wo) {
|
||||
$wo_home = \ADBWohneinheitModel::getFirst(["extref" => $workorder_home_id]);
|
||||
|
||||
if (!$wo_home) {
|
||||
//echo "Home zu Workorder $rimo_workorder_id ($workorder_home_id) nicht gefunden\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
\mfValuecache::singleton()->set("adbhausnummer-save-nesting-level-".$hausnummer->id, 0);
|
||||
\mfValuecache::singleton()->set("adbwohneinheit-save-nesting-level-".$unit->id, 0);
|
||||
//echo "Creating Workorder $rimo_workorder_id ($workorder_home_id)\n";
|
||||
$wo = \RimoWorkorderModel::create([
|
||||
"adb_wohneinheit_id" => $wo_home->id,
|
||||
"rimo_id" => $rimo_workorder_id,
|
||||
"rimo_name" => $rimo_workorder_name,
|
||||
"rimo_status" => $workorder_status,
|
||||
"rimo_team_id" => $team_id,
|
||||
"rimo_team_name" => $team_name
|
||||
]);
|
||||
if (!$wo->save()) {
|
||||
echo "Fehler beim Erstellen der RimoWorkorder $rimo_workorder_id ($workorder_home_id)\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get Geodata
|
||||
@@ -695,6 +619,93 @@ foreach ($clusters as $cluster_data) {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* get workorders
|
||||
*/
|
||||
|
||||
$params = $baseParams;
|
||||
$params["clusterId"] = $cluster_rimo_id;
|
||||
$qs = http_build_query($params);
|
||||
|
||||
$req_url = $epGetWorkorders . "?" . $qs;
|
||||
$req_ctx = stream_context_create($ctxOptsGet);
|
||||
|
||||
//echo $req_url."\n";
|
||||
$responseText = file_get_contents($req_url, false, $req_ctx);
|
||||
|
||||
if ($responseText === false) {
|
||||
//echo "Error fetching Workorders for building $rimo_building_id\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
$workordersResponse = json_decode($responseText);
|
||||
|
||||
//print_r($workordersResponse);exit;
|
||||
|
||||
if (is_object($workordersResponse) && property_exists($workordersResponse, "item") && is_array($workordersResponse->item) && count($workordersResponse->item)) {
|
||||
foreach ($workordersResponse->item as $workorder) {
|
||||
//$wo_building_external_id = $workorder->location->id;
|
||||
$wo_home_external_id = $workorder->home->id;
|
||||
$rimo_workorder_id = $workorder->id;
|
||||
$rimo_workorder_name = $workorder->name;
|
||||
$workorder_status = $workorder->state->userLabel;
|
||||
$workorder_home_id = $workorder->home->id;
|
||||
$team_id = (is_array($workorder->teams->item) && count($workorder->teams->item)) ? $workorder->teams->item[0]->id : null;
|
||||
$team_name = (is_array($workorder->teams->item) && count($workorder->teams->item)) ? $workorder->teams->item[0]->name : null;
|
||||
|
||||
$wo = \RimoWorkorderModel::getFirst(["rimo_id" => $rimo_workorder_id]);
|
||||
|
||||
if($wo) {
|
||||
if($wo_home_external_id) {
|
||||
$wo_home = \ADBWohneinheitModel::getFirst(["extref" => $wo_home_external_id]);
|
||||
if($wo_home != $wo->adb_wohneinheit_id) {
|
||||
$addressErrors[] = "Wohneinheit für Workorder ".$wo->name." hat sich geändert von ".$wo->adb_wohneinheit_id." auf ".$wo_home->extref." (aber wurde nicht im Tool übernommen)";
|
||||
}
|
||||
} else {
|
||||
$addressErrors[] = "Wohneinheit für Workorder ".$wo->name." ist jetzt leer";
|
||||
}
|
||||
|
||||
//echo "Updating Workorder $rimo_workorder_id ($workorder_home_id)\n";
|
||||
if ($workorder_status != $wo->rimo_status) {
|
||||
\mfValuecache::singleton()->set("adbhausnummer-save-nesting-level-".$hausnummer->id, 0);
|
||||
\mfValuecache::singleton()->set("adbwohneinheit-save-nesting-level-".$unit->id, 0);
|
||||
$wo->rimo_status = $workorder_status ?: "";
|
||||
$wo->save();
|
||||
}
|
||||
if ($team_id != $wo->rimo_team_id) {
|
||||
$wo->rimo_team_id = $team_id;
|
||||
$wo->save();
|
||||
}
|
||||
if ($team_name != $wo->rimo_team_name) {
|
||||
$wo->rimo_team_name = $team_name;
|
||||
$wo->save();
|
||||
}
|
||||
} else {
|
||||
$wo_home = \ADBWohneinheitModel::getFirst(["extref" => $workorder_home_id]);
|
||||
|
||||
if (!$wo_home) {
|
||||
//echo "Home zu Workorder $rimo_workorder_id ($workorder_home_id) nicht gefunden\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
\mfValuecache::singleton()->set("adbhausnummer-save-nesting-level-".$hausnummer->id, 0);
|
||||
\mfValuecache::singleton()->set("adbwohneinheit-save-nesting-level-".$unit->id, 0);
|
||||
//echo "Creating Workorder $rimo_workorder_id ($workorder_home_id)\n";
|
||||
$wo = \RimoWorkorderModel::create([
|
||||
"adb_wohneinheit_id" => $wo_home->id,
|
||||
"rimo_id" => $rimo_workorder_id,
|
||||
"rimo_name" => $rimo_workorder_name,
|
||||
"rimo_status" => $workorder_status ?: "",
|
||||
"rimo_team_id" => $team_id,
|
||||
"rimo_team_name" => $team_name
|
||||
]);
|
||||
if (!$wo->save()) {
|
||||
echo "Fehler beim Erstellen der RimoWorkorder $rimo_workorder_id ($workorder_home_id)\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// save address errors
|
||||
if ($addressErrors) {
|
||||
$netzname = preg_replace('/[^a-z0-9.-]/i', "_", $adb_netzgebiet->name);
|
||||
|
||||
Reference in New Issue
Block a user