diff --git a/Layout/default/WarehouseOffer/PDF_MAIN.php b/Layout/default/WarehouseOffer/PDF_MAIN.php index 88888077d..37bde4d2f 100644 --- a/Layout/default/WarehouseOffer/PDF_MAIN.php +++ b/Layout/default/WarehouseOffer/PDF_MAIN.php @@ -61,8 +61,10 @@ if ($includeTax) { } $formattedOfferDate = date("d.m.Y", $offerDate); -$validityDays = isset($validity) ? (int)$validity : 14; -$formattedValidUntil = date("d.m.Y", strtotime("+$validityDays days", $offerDate)); +$validityDays = isset($validity) ? (int)$validity : 31; +// Use versionDate (when this version was created) for validity calculation, fallback to offerDate +$validityBaseDate = isset($versionDate) ? $versionDate : $offerDate; +$formattedValidUntil = date("d.m.Y", strtotime("+$validityDays days", $validityBaseDate)); ?> diff --git a/application/WarehouseOffer/WarehouseOfferController.php b/application/WarehouseOffer/WarehouseOfferController.php index 8658804f4..771e3ae58 100644 --- a/application/WarehouseOffer/WarehouseOfferController.php +++ b/application/WarehouseOffer/WarehouseOfferController.php @@ -56,7 +56,7 @@ class WarehouseOfferController extends TTCrud $this->postData['offerNumber'] = 'AN' . date('Y') . '-' . str_pad($currentCount + 1, 4, '0', STR_PAD_LEFT); $this->postData['status'] = 'new'; $this->postData['version'] = 1; - $this->postData['validity'] = 14; + $this->postData['validity'] = 31; $this->postData['alternativePositions'] = json_encode([]); return true; } @@ -366,10 +366,13 @@ class WarehouseOfferController extends TTCrud $version = $this->request->version ?? null; $offerData = null; + $versionDate = null; // Date when this version was created (for validity calculation) + if ($version) { $historyEntry = WarehouseHistoryModel::getOneByVersion($id, $this->mod, $version); if ($historyEntry && !empty($historyEntry->data)) { $offerData = json_decode($historyEntry->data); + $versionDate = $historyEntry->create; // Use version creation date } } @@ -377,6 +380,10 @@ class WarehouseOfferController extends TTCrud $offer = WarehouseOfferModel::get($id); if (!$offer || !$offer->id) self::sendError('Angebot nicht gefunden'); $offerData = $offer; + + // Get latest history entry for current version's date + $latestHistory = WarehouseHistoryModel::getOneByVersion($id, $this->mod, $offer->version); + $versionDate = $latestHistory ? $latestHistory->create : $offer->create; } @@ -432,11 +439,12 @@ class WarehouseOfferController extends TTCrud "alternativeTotal" => $alternativeTotal, "offerNumber" => $offerData->offerNumber, "offerDate" => $offerData->create, + "versionDate" => $versionDate ?? $offerData->create, // Date for validity calculation "offerEditorName" => $editor ? $editor->name : 'Unbekannt', "includeTax" => true, "vatRate" => 0.20, "offerText" => $offerData->notes ?? '', - "validity" => $offerData->validity ?? 14, + "validity" => $offerData->validity ?? 31, "closingText" => $offerData->closingText ?? '', "bank_iban" => TT_INVOICE_BANK_IBAN, "bank_bic" => TT_INVOICE_BANK_BIC,