WIP Preorder Billing 2025-03-27
This commit is contained in:
@@ -47,13 +47,6 @@ class PreorderBillingController extends mfBaseController {
|
||||
$pagination['start'] = intval($this->request->s);
|
||||
}
|
||||
|
||||
/*$my_campaigns = [];
|
||||
$my_networks = $this->me->myNetworks(["netowner", "salespartner"]);
|
||||
foreach($my_networks as $network) {
|
||||
foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) {
|
||||
if(!array_key_exists($campaign->id, $my_campaigns)) $my_campaigns[] = $campaign;
|
||||
}
|
||||
}*/
|
||||
$my_campaigns = PreordercampaignModel::search(["owner_id" => $this->me->address_id]);
|
||||
//var_dump($my_network_ids,$my_campaign_ids);exit;
|
||||
$this->layout()->set("my_campaigns", $my_campaigns);
|
||||
@@ -275,6 +268,7 @@ class PreorderBillingController extends mfBaseController {
|
||||
$order_date = $options['order_date'];
|
||||
$today = $options['today'];
|
||||
$bill_date = $options['bill_date'];
|
||||
$latest_bill_date = $options['latest_bill_date'];
|
||||
$earliest_bill_date = $options['earliest_bill_date'];
|
||||
$latest_quarter_bill_date = $options["latest_quarter_bill_date"];
|
||||
|
||||
@@ -329,6 +323,16 @@ class PreorderBillingController extends mfBaseController {
|
||||
$status_change_date = new DateTime("@".$preorder->create);
|
||||
}
|
||||
|
||||
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"));
|
||||
return true;
|
||||
}
|
||||
|
||||
$billing_data = [
|
||||
"netowner_id" => $netowner->id,
|
||||
"preorder_id" => $preorder->id,
|
||||
@@ -390,10 +394,11 @@ class PreorderBillingController extends mfBaseController {
|
||||
$billing_data[$key] = $value;
|
||||
}
|
||||
|
||||
$address = $preorder->adb_hausnummer->strasse->name." ".$preorder->adb_hausnummer->hausnummer." ".($preorder->adb_hausnummer->stiege ? "/".$preorder->adb_hausnummer->stiege : "").", ".$preorder->adb_hausnummer->plz->plz." ".$preorder->adb_hausnummer->ortschaft->name;
|
||||
$billing_data["preorderbillingcustomer_id"] = $customer->id;
|
||||
$billing_data["fibu_account_number"] = $customer->fibu_account_number;
|
||||
$billing_data["product_name"] = "Herstellungsentgelt Glasfaser-Internetanschluss";
|
||||
$billing_data["product_info"] = "Bestellung vom ".$order_date->format("d.m.Y");
|
||||
$billing_data["product_info"] = $address;
|
||||
|
||||
} elseif($type == "operator_setup") {
|
||||
$change_to_active = PreorderHistoryModel::getFirstStatusChangeTo($preorder->id, 500);
|
||||
@@ -408,6 +413,11 @@ class PreorderBillingController extends mfBaseController {
|
||||
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"));
|
||||
return true;
|
||||
}
|
||||
|
||||
// Netzbetreiber Setup Gebühr
|
||||
$billing_data["product_name"] = "Brereitstellungsentgelt ".$status_change_date->format("m/Y");
|
||||
$billing_data["owner_id"] = $netoperator->id;
|
||||
@@ -449,6 +459,7 @@ class PreorderBillingController extends mfBaseController {
|
||||
$order_date = $options['order_date'];
|
||||
$today = $options['today'];
|
||||
$bill_date = $options['bill_date'];
|
||||
$latest_bill_date = $options['latest_bill_date'];
|
||||
$earliest_bill_date = $options['earliest_bill_date'];
|
||||
$latest_quarter_bill_date = $options["latest_quarter_bill_date"];
|
||||
|
||||
@@ -470,7 +481,7 @@ class PreorderBillingController extends mfBaseController {
|
||||
|
||||
if($preorder->status->code >= 899) {
|
||||
$this->log->debug(__METHOD__.": Preorder ".$preorder->id." / ".$preorder->oaid." is cancelled");
|
||||
// TODO is cancelled, so determine if refund is necessary
|
||||
// TODO: is cancelled, so determine if refund is necessary
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -502,6 +513,11 @@ class PreorderBillingController extends mfBaseController {
|
||||
$earliest_bill_date = $status_change_date;
|
||||
}
|
||||
|
||||
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"));
|
||||
return true;
|
||||
}
|
||||
|
||||
$first_bill_date = clone $status_change_date;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user