From c7a7d6ce1e96cb5a9153f6c88ed58c3da3b09652 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 20 Aug 2025 16:56:30 +0200 Subject: [PATCH] Added citycom-mgmt-order cron script --- .../PreordercampaignModel.php | 7 +++ scripts/citycom/order-service.php | 59 ------------------- .../preorder/citycom/order-mgmt-services.php | 57 ++++++++++++++++++ 3 files changed, 64 insertions(+), 59 deletions(-) delete mode 100644 scripts/citycom/order-service.php create mode 100644 scripts/preorder/citycom/order-mgmt-services.php diff --git a/application/Preordercampaign/PreordercampaignModel.php b/application/Preordercampaign/PreordercampaignModel.php index 5603d9c73..4dd79bc08 100644 --- a/application/Preordercampaign/PreordercampaignModel.php +++ b/application/Preordercampaign/PreordercampaignModel.php @@ -157,6 +157,13 @@ class PreordercampaignModel { $where .= " AND Network.owner_id IN (". implode(",", $owner_id).")"; } } + + if(array_key_exists("fulfillment", $filter)) { + $fulfillment = FronkDB::singleton()->escape($filter['fulfillment']); + if($fulfillment) { + $where .= " AND `Preordercampaign`.`fulfillment` = '$fulfillment'"; + } + } if(array_key_exists("name", $filter)) { $name = FronkDB::singleton()->escape($filter['name']); diff --git a/scripts/citycom/order-service.php b/scripts/citycom/order-service.php deleted file mode 100644 index 8dfcb98f1..000000000 --- a/scripts/citycom/order-service.php +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/php -id); -define("INTERNAL_USER_USERNAME", $me->username); -define("MFBASE_BYPASS_LOGIN", true); - -$cc = new Citycom_OanApiClient(CITYCOM_OAN_API_USER, CITYCOM_OAN_API_PASS); -$cc_helper = new Citycom_OanApiHelper($cc); - -$default_data = [ - "execution_date" => false, - "services" => CITYCOM_OAN_API_SERVICES_FOR_ORDER, -]; - -$services = [ - [ // Max Haidvogl, Schillerstraße 11, Tür 1 - "preorder" => new Preorder(22688), - "down" => 600, - "up" => 300, - "product_name" => "Estmk Greenstream OAN 600/300", - ], - /*[ // Gerd Haidvogl, Schillerstraße 11, Tür 6 - "preorder" => new Preorder(22682), - "down" => 300, - "up" => 150, - "product_name" => "Greenstream OAN 300/150", - ],*/ - /*[ // Robert Rottmann, Lange Gasse 7, Tür 1 - "preorder" => new Preorder(22679), - "down" => 300, - "up" => 150, - "product_name" => "Greenstream OAN 300/150", - ]*/ -]; - -foreach($services as $service) { - $preorder = $service["preorder"]; - - $data = $default_data; - $data["down"] = $service["down"]; - $data["up"] = $service["up"]; - $data["product_name"] = $service["product_name"]; - $sublocation_id = \Citycom_OanApiHelper::hausnummerExtrefToCitycomId($preorder->adb_wohneinheit->extref); - - var_dump($cc_helper->orderServices($preorder, $sublocation_id, $data)); -} - diff --git a/scripts/preorder/citycom/order-mgmt-services.php b/scripts/preorder/citycom/order-mgmt-services.php new file mode 100644 index 000000000..5561b77f4 --- /dev/null +++ b/scripts/preorder/citycom/order-mgmt-services.php @@ -0,0 +1,57 @@ +#!/usr/bin/php +id); +define("INTERNAL_USER_USERNAME", $me->username); +define("MFBASE_BYPASS_LOGIN", true); + +$log = mfLoghandler::singleton(); + +$cc = new Citycom_OanApiClient(CITYCOM_OAN_API_USER, CITYCOM_OAN_API_PASS); +$cc_helper = new Citycom_OanApiHelper($cc); + +foreach(PreordercampaignModel::search(["fulfillment" => "citycom_oan"]) as $campaign) { + foreach($campaign->active_preorders as $preorder) { + if(!$preorder->adb_wohneinheit_id) continue; + + $has_inet_service = false; + $has_mgmt_service = false; + + if(is_array($preorder->ctags) && count($preorder->ctags)) { + foreach ($preorder->ctags as $ctag) { + if ($ctag->network != "citycom-oan") continue; + + if ($ctag->service_type == "inet") $has_inet_service = true; + if ($ctag->service_type == "mgmt") $has_mgmt_service = true; + } + } + + if($has_inet_service || $has_mgmt_service) continue; + + $sublocation_id = \Citycom_OanApiHelper::hausnummerExtrefToCitycomId($preorder->adb_wohneinheit->extref); + $data = [ + "down" => 100, + "up" => 100, + "product_name" => "Estmk Greenstream OAN Mgmt", + "execution_date" => false, + "services" => ["mgmt"], + + ]; + + $log->info(__METHOD__.": Ordering mgmt service for preorder ".$preorder->id); + if(!$cc_helper->orderServices($preorder, $sublocation_id, $data)) { + $log->error(__METHOD__.": Error ordering mgmt service for preorder ".$preorder->id); + } + } +} \ No newline at end of file