From c9565eee544b84c0c6726e83556901c14d0e7103 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Mon, 7 Apr 2025 17:22:46 +0200 Subject: [PATCH] RML PreorderBilling --- .../PreorderBillingController.php | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/application/PreorderBilling/PreorderBillingController.php b/application/PreorderBilling/PreorderBillingController.php index 4b3ca32ef..c96e65615 100644 --- a/application/PreorderBilling/PreorderBillingController.php +++ b/application/PreorderBilling/PreorderBillingController.php @@ -335,19 +335,19 @@ class PreorderBillingController extends mfBaseController { } if($status_change) { - $status_change_date = new DateTime("@".$status_change->changed); + $status_244_change_date = new DateTime("@".$status_change->changed); } else { $this->log->debug(__METHOD__.": No status change found for preorder ".$preorder->id." so using creation date"); - $status_change_date = new DateTime("@".$preorder->create); + $status_244_change_date = new DateTime("@".$preorder->create); } - if($status_change_date < $earliest_bill_date) { + /*if($status_change_date < $earliest_bill_date) { $this->log->debug(__METHOD__.": Not billing setups for preorder ".$preorder->id." because status change date ".$status_change_date->format("Y-m-d")." is before earliest_bill_date ".$earliest_bill_date->format("Y-m-d")); return true; - } + }*/ - if($status_change_date->format("Ymd") > $latest_bill_date->format("Ymd")) { - $this->log->debug(__METHOD__.": Skipping setup for preorder ".$preorder->id." because billing date (status change date) ".$status_change_date->format("Y-m-d")." is after latest_bill_date ".$latest_bill_date->format("Y-m-d")); + if($status_244_change_date->format("Ymd") > $latest_bill_date->format("Ymd")) { + $this->log->debug(__METHOD__.": Skipping setup for preorder ".$preorder->id." because billing date (status change date) ".$status_244_change_date->format("Y-m-d")." is after latest_bill_date ".$latest_bill_date->format("Y-m-d")); return true; } @@ -358,8 +358,8 @@ class PreorderBillingController extends mfBaseController { "adb_wohneinheit_id" => $preorder->adb_wohneinheit_id, "extref" => ($preorder->extref) ?: null, "order_date" => $order_date->format("Y-m-d"), - "start_date" => $status_change_date->format("Y-m-d"), - "end_date" => $status_change_date->format("Y-m-d"), + "start_date" => $status_244_change_date->format("Y-m-d"), + "end_date" => $status_244_change_date->format("Y-m-d"), "billing_delivery" => "email", "product_id" => $product->id, "product_type" => $product->type, @@ -379,6 +379,11 @@ class PreorderBillingController extends mfBaseController { if($type == "enduser_setup") { // Endkunde Setup Gebühr + if($status_244_change_date < $earliest_bill_date) { + $this->log->debug(__METHOD__.": Not billing enduser_setup for preorder ".$preorder->id." because status change date ".$status_244_change_date->format("Y-m-d")." is before earliest_bill_date ".$earliest_bill_date->format("Y-m-d")); + return true; + } + $fibu_revenue_code = $netowner_config["fibu-revenue-code"]; if(!$fibu_revenue_code) { die("fibu_revenue_code not found for preorder ".$preorder->id); @@ -443,6 +448,10 @@ class PreorderBillingController extends mfBaseController { $billing_data["end_date"] = $status_change_date->format("Y-m-d"); } + if(!$status_change_date) { + $status_change_date = $status_244_change_date; + } + if($netoperator_config["billing-period"] == "quarterly" && $status_change_date->format("Ymd") > $latest_quarter_bill_date->format("Ymd")) { $this->log->debug(__METHOD__.": Skipping operator_setup for preorder ".$preorder->id." because Billing date ".$status_change_date->format("Y-m-d")." is after latest_quarter_bill_date ".$latest_quarter_bill_date->format("Y-m-d")); return true;