Added preorder map (visible for admins only)

This commit is contained in:
Frank Schubert
2023-03-14 15:55:00 +01:00
parent d919553808
commit 4edc9bc99f
7 changed files with 260 additions and 10 deletions
@@ -676,6 +676,9 @@ class PreorderController extends mfBaseController {
case "saveAttribute":
$return = $this->saveAttributeApi();
break;
case "getFilteredPreorders":
$return = $this->getFilteredPreordersApi();
break;
default:
$return = false;
}
@@ -689,6 +692,59 @@ class PreorderController extends mfBaseController {
$this->returnJson($data);
}
private function getFilteredPreordersApi() {
$preorders = [];
$filter = [];
if(is_array($this->request->filter)) {
$filter = $this->request->filter;
}
$filter = $this->getPreparedFilter($filter);
$my_campaign_ids = [];
if($this->me->is("Admin")) {
$my_networks = NetworkModel::getAll();
} else {
$my_networks = $this->me->myNetworks(['netowner','salespartner']);
}
foreach($my_networks as $network) {
foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) {
$my_campaigns[] = $campaign;
if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id;
}
}
$filter['preordercampaign_id'] = $my_campaign_ids;
$results = PreorderModel::search($filter);
foreach($results as $preorder) {
//$this->log->debug("building status: ".print_r($building->status,true));
$data = clone($preorder->data);
$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;
$data->type_label = __($data->type, "preorder");
$data->connection_type_label = __($data->connection_type, "preorder");
$preorders[] = $data;
}
return ["preorders" => $preorders];
}
private function saveAttributeApi() {
$preorder_id = $this->request->id;
if(!is_numeric($preorder_id) || $preorder_id < 1) {