Added FttxLocation ex state circles to PreorderMap

This commit is contained in:
Frank Schubert
2025-12-17 16:41:11 +01:00
parent 78a0431cad
commit f3e9f9c6a5
2 changed files with 139 additions and 35 deletions

View File

@@ -1490,10 +1490,19 @@ class PreorderController extends mfBaseController {
private function getFilteredPreordersApi() {
$preorders = [];
$fttxlocations = [];
$filter = [];
$type = ["preorders", "fttx"];
if(is_array($this->request->filter)) {
$filter = $this->request->filter;
}
if($this->request->type == "preorders") {
$type = ["preorders"];
}
if($this->request->type == "fttxlocations") {
$type = ["fttx"];
}
$filter = $this->getPreparedFilter($filter);
@@ -1558,40 +1567,104 @@ class PreorderController extends mfBaseController {
if(!$filter['preordercampaign_id']) $filter['preordercampaign_id'] = 0;
//var_dump($filter);exit;
$results = PreorderModel::searchActive($filter);
foreach($results as $preorder) {
//$this->log->debug("building status: ".print_r($building->status,true));
$data = clone($preorder->data);
unset($data->workorder_export_data);
unset($data->submit_request);
unset($data->addon_services);
$data->id = $preorder->id;
$data->status_code = $preorder->status->code;
$data->adrcd = $preorder->adb_hausnummer->adrcd;
$data->extref = $preorder->adb_hausnummer->extref;
$data->adb_strasse = $preorder->adb_hausnummer->strasse->name;
$data->adb_hausnummer = $preorder->adb_hausnummer->hausnummer;
$data->adb_plz = $preorder->adb_hausnummer->plz->plz;
$data->adb_ort = $preorder->adb_hausnummer->ortschaft->name;
$data->adb_gemeinde = $preorder->adb_hausnummer->strasse->gemeinde->name;
$data->gps_lat = $preorder->adb_hausnummer->gps_lat;
$data->gps_long = $preorder->adb_hausnummer->gps_long;
if($this->me->is("Admin")) {
$data->borderpoint_lat = ($preorder->adb_hausnummer->borderpoint_lat) ? json_decode($preorder->adb_hausnummer->borderpoint_lat) : null;
$data->borderpoint_long = ($preorder->adb_hausnummer->borderpoint_long) ? json_decode($preorder->adb_hausnummer->borderpoint_long) : null;
//$data->trenches = ($preorder->adb_hausnummer->trenches) ? json_decode($preorder->adb_hausnummer->trenches) : null;
$data->home_trench = ($preorder->adb_hausnummer->home_trench) ? json_decode($preorder->adb_hausnummer->home_trench) : null;
if(in_array("preorders", $type)) {
$this->log->debug(__METHOD__.": requested preorders");
//var_dump($filter);exit;
$results = PreorderModel::searchActive($filter);
foreach($results as $preorder) {
//$this->log->debug("building status: ".print_r($building->status,true));
$data = clone($preorder->data);
unset($data->workorder_export_data);
unset($data->submit_request);
unset($data->addon_services);
$data->id = $preorder->id;
$data->status_code = $preorder->status->code;
$data->adrcd = $preorder->adb_hausnummer->adrcd;
$data->extref = $preorder->adb_hausnummer->extref;
$data->adb_strasse = $preorder->adb_hausnummer->strasse->name;
$data->adb_hausnummer = $preorder->adb_hausnummer->hausnummer;
$data->adb_plz = $preorder->adb_hausnummer->plz->plz;
$data->adb_ort = $preorder->adb_hausnummer->ortschaft->name;
$data->adb_gemeinde = $preorder->adb_hausnummer->strasse->gemeinde->name;
$data->gps_lat = $preorder->adb_hausnummer->gps_lat;
$data->gps_long = $preorder->adb_hausnummer->gps_long;
if($this->me->is("Admin")) {
$data->borderpoint_lat = ($preorder->adb_hausnummer->borderpoint_lat) ? json_decode($preorder->adb_hausnummer->borderpoint_lat) : null;
$data->borderpoint_long = ($preorder->adb_hausnummer->borderpoint_long) ? json_decode($preorder->adb_hausnummer->borderpoint_long) : null;
//$data->trenches = ($preorder->adb_hausnummer->trenches) ? json_decode($preorder->adb_hausnummer->trenches) : null;
$data->home_trench = ($preorder->adb_hausnummer->home_trench) ? json_decode($preorder->adb_hausnummer->home_trench) : null;
}
$data->type_label = __($data->type, "preorder");
$data->connection_type_label = __($data->connection_type, "preorder");
$preorders[] = $data;
}
$data->type_label = __($data->type, "preorder");
$data->connection_type_label = __($data->connection_type, "preorder");
$preorders[] = $data;
}
return ["preorders" => $preorders];
if(in_array("fttx", $type)) {
$this->log->debug(__METHOD__.": requested fttxlocations");
// get all fttp locations in current campaign network with status
if($filter["preordercampaign_id"]) {
$my_adb_networks = [];
$campaign = new Preordercampaign($filter["preordercampaign_id"]);
if($campaign->id) {
$salesclusters = $campaign->salesclusters;
if(is_array($salesclusters) && count($salesclusters)) {
foreach($salesclusters as $sc) {
$my_adb_networks[] = new ADBNetzgebiet($sc->id);
}
} else {
$my_adb_networks[] = $campaign->adb_netzgebiet;
}
}
foreach($my_adb_networks as $adb_network) {
if(!$adb_network->isLoaded()) continue;
/*foreach(ADBHausnummerModel::search(['netzgebiet_id' => $adb_network->id]) as $hausnummer) {
$loc = [];
$loc["street"] = $hausnummer->strasse->name . " " . $hausnummer->hausnummer;
$loc["zip"] = $hausnummer->plz->plz;
$loc["city"] = $hausnummer->strasse->gemeinde->name;
$loc["gps_lat"] = $hausnummer->gps_lat;
$loc["gps_long"] = $hausnummer->gps_long;
$loc["ex_state"] = $hausnummer->rimo_ex_state;
$loc["op_state"] = $hausnummer->rimo_op_state;
$fttxlocations[] = $loc;
}*/
$adb = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$sql = "SELECT * FROM view_hausnummer WHERE netzgebiet_id=".$adb_network->id;
$res = $adb->query($sql);
while($data = $adb->fetch_object($res)) {
$loc = [];
$loc["street"] = $data->strasse . " " . $data->hausnummer;
$loc["zip"] = $data->plz;
$loc["city"] = $data->gemeinde;
$loc["gps_lat"] = $data->gps_lat;
$loc["gps_long"] = $data->gps_long;
$loc["ex_state"] = $data->rimo_ex_state;
$loc["op_state"] = $data->rimo_op_state;
$fttxlocations[] = $loc;
}
}
}
}
return [
"preorders" => $preorders,
"fttxlocations" => $fttxlocations
];
}
private function saveAttributeApi() {