From 76cffdc374a42db351dca672c167a52ea2f8a0f9 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 2 Jul 2024 16:52:37 +0200 Subject: [PATCH] WIP Billing/Invoice 02.06.2024 --- Layout/default/Invoice/Print.pdf.php | 4 +++- application/Admin/functions/IvtContractImport.php | 1 + application/Admin/functions/IvtCreditImport.php | 1 + application/Billing/BillingController.php | 13 ++++++++----- application/Billing/BillingModel.php | 1 + 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Layout/default/Invoice/Print.pdf.php b/Layout/default/Invoice/Print.pdf.php index 7eecd7ddc..44939f411 100644 --- a/Layout/default/Invoice/Print.pdf.php +++ b/Layout/default/Invoice/Print.pdf.php @@ -93,7 +93,9 @@ $is_credit = $net_total < 0; one-position"> product_name?> - format("d.m.Y") != $end_date->format("d.m.Y")): ?> + billing_period > 1): ?> +  (format("m/Y")?> - format("m/Y")?>) + format("d.m.Y") != $end_date->format("d.m.Y")): ?>  (format("d.m.Y")?> - format("d.m.Y")?>) matchcode) ? "
".$p->matchcode."
" : ""?> diff --git a/application/Admin/functions/IvtContractImport.php b/application/Admin/functions/IvtContractImport.php index 0b7750b21..d69d7c013 100644 --- a/application/Admin/functions/IvtContractImport.php +++ b/application/Admin/functions/IvtContractImport.php @@ -212,6 +212,7 @@ class Admin_IvtContractImport { $finish_date->modify("first day of this month"); $finish_date->setTime(2,0,0); + $finish_date->modify("+1 month"); // XXX for debugging only; must be removed //$finish_date->setDate($finish_date->format("Y"), $finish_date->format("m"), 1); //$finish_date->modify("+1 hours"); diff --git a/application/Admin/functions/IvtCreditImport.php b/application/Admin/functions/IvtCreditImport.php index cc90709cc..45948c217 100644 --- a/application/Admin/functions/IvtCreditImport.php +++ b/application/Admin/functions/IvtCreditImport.php @@ -165,6 +165,7 @@ class Admin_IvtCreditImport { $finish_date = new DateTime($cust_cred->lastdate); $finish_date->modify("first day of this month"); $finish_date->setTime(2,0,0); + $finish_date->modify("+ 1 month"); // XXX for debugging only; must be removed //$finish_date->setDate($finish_date->format("Y"), $finish_date->format("m"), 1); $data["orderproduct_id"] = null; diff --git a/application/Billing/BillingController.php b/application/Billing/BillingController.php index 15db0aec9..1f81e7f37 100644 --- a/application/Billing/BillingController.php +++ b/application/Billing/BillingController.php @@ -107,8 +107,9 @@ class BillingController extends mfBaseController { $now_year = date("Y"); $now_month = date("m"); $now_day = date("d"); - $now_year = 2024; - $now_month = 7; + //$now_year = 2024; + //$now_month = 6; + $now_day = 3; // XXX for debugging only, must be removed // XXX only for 1st Billing after IVT Import //$yearly_not_before = new DateTime("$now_year-$now_month-01"); @@ -123,7 +124,7 @@ class BillingController extends mfBaseController { $this->log->notice(__METHOD__.": $del Billing records deleted"); //$stop = false; - foreach(ContractModel::search(["finish_date<" => mktime(0,0,0,$now_month, $now_day, $now_year), "cancel_date" => null]) as $contract) { + foreach(ContractModel::search(["finish_date<" => mktime(0,1,0,$now_month, $now_day, $now_year), "cancel_date" => null]) as $contract) { //while(!$stop) { //$stop = true; //$contract = new Contract(1475); @@ -238,8 +239,10 @@ class BillingController extends mfBaseController { } if($create_date->format("Y") == $finish_year && $create_date->format("m") == $finish_month) { - // this is the finish month, so set day back to day of finish_date - $create_date->setDate($finish_year, $finish_month, $finish_day); + // this is the finish month, so set day back to day of finish_date, unless billing_period is more than 1 month + if($contract->billing_period == 1) { + $create_date->setDate($finish_year, $finish_month, $finish_day); + } $last_create_date = true; } diff --git a/application/Billing/BillingModel.php b/application/Billing/BillingModel.php index b0bbc08af..23a72bb44 100644 --- a/application/Billing/BillingModel.php +++ b/application/Billing/BillingModel.php @@ -31,6 +31,7 @@ class BillingModel { public $price; public $price_setup; public $vatrate; + public $billing_period; public $create_by; public $edit_by;