diff --git a/Layout/default/Contract/CancelForm.php b/Layout/default/Contract/CancelForm.php index e6cbc91f3..c70e1472a 100644 --- a/Layout/default/Contract/CancelForm.php +++ b/Layout/default/Contract/CancelForm.php @@ -116,6 +116,8 @@ links as $link): ?> billing_period) continue; + if($link->contract_id == $contract->id) { $linkcontract = $link->origin; } else { diff --git a/application/Contract/ContractController.php b/application/Contract/ContractController.php index 5470fbd3d..359043f38 100644 --- a/application/Contract/ContractController.php +++ b/application/Contract/ContractController.php @@ -135,14 +135,22 @@ class ContractController extends mfBaseController $this->redirect("Contract"); } + if(!$contract->billing_period) { + $this->layout()->setFlash("Kündigung nicht möglich, Produkt ist Einmalprodukt!", "error"); + $this->redirect("Contract", "view", ["contract_id" => $contract->id]); + } + if($contract->finish_date) { $today = new DateTime(); $tomorrow = clone($today); $tomorrow->modify("+1 day"); + $finish_date = new DateTime("@".$contract->finish_date); $finish_date->setTimezone(new DateTimeZone("Europe/Vienna")); + $period_end_date = clone($finish_date); $period_end_date->modify("+".$contract->contract_term." months"); + while($period_end_date->format("Y-m-d") <= $today->format("Y-m-d")) { $period_end_date = $finish_date->modify("+".$contract->billing_period." months");