diff --git a/Layout/default/AddressDB/Index.php b/Layout/default/AddressDB/Index.php index 549314120..2bb4d1447 100644 --- a/Layout/default/AddressDB/Index.php +++ b/Layout/default/AddressDB/Index.php @@ -171,7 +171,14 @@ " /> - + +
+ + +
+
@@ -225,6 +232,7 @@ Straße Hausnr. Stiege + FCP Homes/Preorders Rimo-ID Rollout Jahr @@ -244,6 +252,7 @@ strasse->name?> hausnummer?> stiege?> + rimo_fcp_name ?? 'N/A'?> wohneinheiten)?> tool_building_type == 1) ? "EFH" : "MPH")?>"> tool_building_type == 1) ? "fa-home" : "fa-building")?>"> @@ -276,29 +285,66 @@
- + const fcpSelect = $("#filter_fcp"); + const networkSelect = $("#filter_network_id"); + const apiUrl = ""; + + const updateFcpSelect = (placeholder, data = []) => { + fcpSelect.empty().select2({ data, placeholder, allowClear: true }); + }; + + updateFcpSelect("Bitte ein Netzgebiet auswählen"); + + networkSelect.on('change', function() { + const selectedNets = $(this).val() || []; + const hasNull = Array.isArray(selectedNets) && selectedNets.includes("null"); + + $('#filter-gemeinde-text, #filter-ortschaft-text').toggle(hasNull); + $('#filter-gemeinde-id, #filter-ortschaft-id').toggle(!hasNull); + $('#filter_gemeinde, #filter_ortschaft').val(""); + + if (hasNull) { + $('#filter-gemeinde-id, #filter-ortschaft-id').find('option:first').prop("selected", "selected"); + } + + if (selectedNets.length !== 1) { + updateFcpSelect(selectedNets.length > 1 ? "Bitte genau ein Netzgebiet auswählen" : "Kein Netzgebiet ausgewählt"); + return; + } + + const networkId = selectedNets[0]; + if (networkId === 'null') { + updateFcpSelect("Kein Netzgebiet ausgewählt"); + return; + } + + $.get(apiUrl, { do: "getFCPsForNetwork", network_id: networkId }, (response) => { + if (response?.status === "OK" && Array.isArray(response.result)) { + let fcpData = response.result; + fcpData.unshift({ id: "", text: "" }); + + fcpData.sort((a, b) => { + const aN = a.text.replace(/\D/g, ""), bN = b.text.replace(/\D/g, ""); + return aN && bN ? parseInt(aN, 10) - parseInt(bN, 10) : a.text.localeCompare(b.text); + }); + + updateFcpSelect("FCP auswählen", fcpData); + + const fcpValues = new URLSearchParams(window.location.search).getAll("filter[rimo_fcp_name][]"); + if (fcpValues.length > 0) { + fcpSelect.val(fcpValues).trigger("change"); + } + } else { + updateFcpSelect("Keine FCPs gefunden"); + } + }, "json").fail(() => { + updateFcpSelect("Fehler beim Laden"); + }); + }).trigger('change'); + }); + diff --git a/Layout/default/AddressDB/View.php b/Layout/default/AddressDB/View.php index 9c2bd6448..e3490844c 100644 --- a/Layout/default/AddressDB/View.php +++ b/Layout/default/AddressDB/View.php @@ -48,9 +48,12 @@ Extref extref?> - Rimo External ID - rimo_id?> - + Rimo External ID + rimo_id?> + + Rimo Type + rimo_type?> + Netzgebiet netzgebiet->name?> @@ -176,7 +179,10 @@ wohneinheiten as $unit): ?> - $unit->id])?>"> + + + $unit->id])?>"> + id?> oaid): ?> @@ -388,4 +394,7 @@ 'json'); } - \ No newline at end of file + + + + diff --git a/Layout/default/ConstructionConsent/Consentform.pdf.php b/Layout/default/ConstructionConsent/Consentform.pdf.php index badcf3aef..ccd684a06 100644 --- a/Layout/default/ConstructionConsent/Consentform.pdf.php +++ b/Layout/default/ConstructionConsent/Consentform.pdf.php @@ -483,13 +483,35 @@ foreach ($owners as $owner): -
-
Ort, Datum
-
- title) ? $owner->title . " " : "" ?>company ? $owner->company : $owner->firstname . ' ' . $owner->lastname ?> -
Unterschrift mit Geburtsdatum bzw. firmenmäßige Zeichnung des/r Liegenschaftseigentümer(s) + signature): ?> + + + + + + + + + +
+ signature_date): ?> + Graz, signature_date) ?> + + + +
Ort, Datum + signature_name ?> +
Unterschrift bzw. firmenmäßige Zeichnung des/r Liegenschaftseigentümer(s) +
+ +
+
Ort, Datum
+
+ title) ? $owner->title . " " : "" ?>company ? $owner->company : $owner->firstname . ' ' . $owner->lastname ?> +
Unterschrift mit Geburtsdatum bzw. firmenmäßige Zeichnung des/r Liegenschaftseigentümer(s) +
-
+ diff --git a/Layout/default/ConstructionConsent/Form.php b/Layout/default/ConstructionConsent/Form.php index 5a33a92e3..23139d6b4 100644 --- a/Layout/default/ConstructionConsent/Form.php +++ b/Layout/default/ConstructionConsent/Form.php @@ -216,7 +216,7 @@
Oder Plan hochladen
- +
diff --git a/Layout/default/ConstructionConsent/View.php b/Layout/default/ConstructionConsent/View.php index 51787996c..bfddd46ac 100644 --- a/Layout/default/ConstructionConsent/View.php +++ b/Layout/default/ConstructionConsent/View.php @@ -212,10 +212,14 @@ $pagination_entity_name = "Adressen"; Plan/Skizze - file && $item->file->file && $item->file->file->fileExists()): ?> - - - + file && $item->file->file && $item->file->file->fileExists()): + $dataUrl = $item->file->file->asDataUrl(); + if (str_contains($dataUrl, 'application/pdf')) { + echo ' Download PDF'; + } else { + echo 'File preview'; + } + endif; ?> diff --git a/Layout/default/Cpeprovisioning/PDF_MAIN.php b/Layout/default/Cpeprovisioning/PDF_MAIN.php index edad91437..9310875e8 100644 --- a/Layout/default/Cpeprovisioning/PDF_MAIN.php +++ b/Layout/default/Cpeprovisioning/PDF_MAIN.php @@ -1,10 +1,10 @@ setReturnValue(['filename' => "xyz." . time() . "pdf"]); ?> @@ -42,4 +42,4 @@ $this->setReturnValue(['filename' => "xyz." . time() . "pdf"]);
- \ No newline at end of file + diff --git a/Layout/default/Devicetype/Form.php b/Layout/default/Devicetype/Form.php index 83bd9c70d..2a6bc254c 100644 --- a/Layout/default/Devicetype/Form.php +++ b/Layout/default/Devicetype/Form.php @@ -2,6 +2,12 @@ +
@@ -78,7 +84,18 @@ value="power ?>">
+
+ +
+ +
+
+ +
+
diff --git a/Layout/default/Pop/Detail.php b/Layout/default/Pop/Detail.php index e914390de..e495e2868 100644 --- a/Layout/default/Pop/Detail.php +++ b/Layout/default/Pop/Detail.php @@ -97,6 +97,12 @@ background-color: #d7d7d7; opacity: 1; } + .switch-rack-side { + margin-right: 8px; + margin-top: 2px; + cursor: pointer; + } +
@@ -339,6 +345,7 @@ if (!empty(trim($pops->vlan_ipv6)))
+ + @@ -483,13 +491,15 @@ if (!empty(trim($pops->vlan_ipv6))) data-rackhe="" data-rackid=""> + class="fa-regular fa-arrows-up-down-left-right move-handle float-left"> - Vorderseite + + - + vlan_ipv6))) data-toggle="modal" data-target="#rackModuleModal" style="cursor: pointer" data-he="">He vlan_ipv6))) $extText = ""; $extTextspan = ""; foreach ($module['slots'] as $slots) { + var_dump(); $extText = ""; $title = $slots['modulname']; if ($slots['type'] == '0') { diff --git a/Layout/default/Preorder/Index.php b/Layout/default/Preorder/Index.php index e32519ad8..aa8189f53 100644 --- a/Layout/default/Preorder/Index.php +++ b/Layout/default/Preorder/Index.php @@ -24,7 +24,7 @@ $pagination_entity_name = "Vorbestellungen"; } .preorder-campaign-header-buttons { - max-width: 900px; + max-width: 1100px; } .tr-highlight { @@ -458,6 +458,8 @@ $pagination_entity_name = "Vorbestellungen";
+ +
@@ -635,6 +637,7 @@ $pagination_entity_name = "Vorbestellungen";
is(["preorderfront"]) && !$me->is("preorderreadonly")): ?> + $preorder->id])?>"> $preorder->id, "filter" => $filter])?>" class="text-danger" onclick="if(!confirm('Vorbestellung wirklich löschen?')) return false;" title="Vorbestellung Löschen"> @@ -1085,20 +1088,73 @@ $pagination_entity_name = "Vorbestellungen"; } async function getFCPs(map) { - var fcp = await $.get("", { + const fcpResponse = await $.get("", { do: "getFCPsForCampaign", campaign_id: "id?>" }); - if(fcp.status == "OK") { - fcp.result.forEach((fcp) => { - var icon = L.MakiMarkers.icon({icon: "viewpoint", color: "yellow", size: "m"}); - var marker = L.marker([fcp.lat, fcp.lng], {icon: icon}).addTo(map); - var google_maps_link = "https://www.google.com/maps/search/?api=1&query=" + fcp.lat + "," + fcp.lng; - var popup_content = "Google Maps
" + fcp.text; - marker.bindPopup(popup_content); - }); - } + if (fcpResponse.status !== "OK" || !fcpResponse.result?.length) return; + + const fcpIds = fcpResponse.result.map(fcp => fcp.real_id); + const statsResponse = await $.ajax({ + url: "?do=getRimoFcpStats", + type: 'POST', + contentType: 'application/json', // 1. Set the content type to JSON + data: JSON.stringify({ fcp_ids: fcpIds }) // 2. Stringify the data object + }); + const stats = statsResponse.status === "OK" ? statsResponse.result : []; + + fcpResponse.result.forEach(fcp => { + const icon = L.MakiMarkers.icon({ icon: "viewpoint", color: "yellow", size: "m" }); + const marker = L.marker([fcp.lat, fcp.lng], { icon }).addTo(map); + const fcpStat = stats.find(s => parseInt(s.fcp_id) === parseInt(fcp.real_id)); + + const googleMapsLink = `https://www.google.com/maps/search/?api=1&query=${fcp.lat},${fcp.lng}`; + + const statsHtml = !fcpStat ? `

Keine Statistiken gefunden.

` : ` +
+ Zusammenfassung: + Buildings: ${fcpStat.total_hausnummer_count}
+ Homes: ${fcpStat.total_wohneinheit_count}
+ Bestellungen: ${fcpStat.total_active_preorders} +
+ Details nach RIMO-Typ: + + + + + + + + + + + ${Object.entries(fcpStat.counts_by_rimo_type || {}).length ? + Object.entries(fcpStat.counts_by_rimo_type).map(([type, counts], index) => ` + + + + + + + `).join('') : + '' + } + +
TypBUWEBE
${type}${counts.hausnummer_count}${counts.wohneinheit_count}${counts.preorder_count}
Keine detaillierten Statistiken verfügbar.
+`; + + const popupContent = ` +
+

+ ${fcp.text} +

+ In Google Maps anzeigen + ${statsHtml} +
+`; + marker.bindPopup(popupContent); + }); } function centerMap() { @@ -1967,6 +2023,24 @@ $pagination_entity_name = "Vorbestellungen"; }); }); campaignSelect.trigger("change"); + + // for the Rimo-Typen Karte only show this button if a preordercampaign is selected and change the display and href dynamically + const rimoTypesLink = $("#rimo-types-link"); + function updateRimoTypesLink() { + const campaignId = campaignSelect.val(); + if (campaignId) { + rimoTypesLink.show(); + rimoTypesLink.attr("href", "?preordercampaign_id=" + campaignId); + } else { + rimoTypesLink.hide(); + rimoTypesLink.attr("href", "#"); + } + } + campaignSelect.on("change", updateRimoTypesLink); + updateRimoTypesLink(); }); + + + diff --git a/Layout/default/Preorder/export.csv.php b/Layout/default/Preorder/export.csv.php index 15ae1080a..0658bd761 100644 --- a/Layout/default/Preorder/export.csv.php +++ b/Layout/default/Preorder/export.csv.php @@ -16,7 +16,7 @@ foreach(PreorderStatusflagModel::getAll() as $sflag) { } ?> -Kampagne;Netzgebiet ID;Netzgebiet;Extref;Bestellcode;Gutscheincodes;OAID;Bestelldatum;Bestelltyp;Status Code;Status Name;ADB NE;"";Anschlusstyp;GWR Adresscode;Meridian;RW;HW;Anschluss Strasse;Anschluss Hausnummer;Anschluss PLZ;Anschluss Ort;Anschluss Wohneinheit;GPS Breite;GPS Länge;Anzahl Anschlüsse;Kunde Firma;Kunde UID;Kunde Vorname;Kunde Nachname;Kunde Strasse;Kunde PLZ;Kunde Ort;Kunde Telefon;Kunde Email;Partner;CIF Token;Cif Url;Cif Cable Url;Addon Lehrverrohrung Grundstück;Addon Hausverkabelung;BEP festgelegt;Starterpaket erhalten;Erstellt;Letzte Bearbeitung +Kampagne;Netzgebiet ID;Netzgebiet;Extref;Bestellcode;Gutscheincodes;OAID;FCP;Bestelldatum;Bestelltyp;Status Code;Status Name;ADB NE;"";Anschlusstyp;GWR Adresscode;Meridian;RW;HW;Anschluss Strasse;Anschluss Hausnummer;Anschluss PLZ;Anschluss Ort;Anschluss Wohneinheit;GPS Breite;GPS Länge;Anzahl Anschlüsse;Kunde Firma;Kunde UID;Kunde Vorname;Kunde Nachname;Kunde Strasse;Kunde PLZ;Kunde Ort;Kunde Telefon;Kunde Email;Partner;CIF Token;Cif Url;Cif Cable Url;Addon Lehrverrohrung Grundstück;Addon Hausverkabelung;BEP festgelegt;Starterpaket erhalten;Erstellt;Letzte Bearbeitung uid == "string") $data->uid = ""; + $fcp = ""; + if ($hausnummer->fcp_id) { + $fcp = ADBRimoFcp::get($hausnummer->fcp_id); + $fcp = $fcp->name; + } + ?> - "name?>";"extref?>";"name?>";"extref?>";"ucode?>";"";"oaid?>";"order_date) ? date("d.m.Y",$data->order_date) : ""?>";"type,"preorder")?>";"code?>";"name?>";"num ?>";;"connection_type,"preorder")?>";"";"meridian?>";"rw?>";"hw?>";"name?>";"hausnummer?>";"plz?>";"name?>";"";"gps_lat?>";"gps_long?>";connection_count?>;"company?>";"uid?>";"firstname?>";"lastname?>";"street?>";"zip?>";"city?>";"phone?>";"email?>";"getCompanyOrName()?>";"ciftoken?>";"cifurl?>";"cifcableurl?>";;;;;"create)?>";"edit)?>" + "name?>";"extref?>";"name?>";"extref?>";"ucode?>";"";"oaid?>";"";"order_date) ? date("d.m.Y",$data->order_date) : ""?>";"type,"preorder")?>";"code?>";"name?>";"wohneinheiten) ?>";;"connection_type,"preorder")?>";"";"meridian?>";"rw?>";"hw?>";"name?>";"hausnummer?>";"plz?>";"name?>";"";"gps_lat?>";"gps_long?>";connection_count?>;"company?>";"uid?>";"firstname?>";"lastname?>";"street?>";"zip?>";"city?>";"phone?>";"email?>";"getCompanyOrName()?>";"ciftoken?>";"cifurl?>";"cifcableurl?>";;;;;"create)?>";"edit)?>" - + status->code != "20"): ?> + status->code == "20"): ?> +
@@ -586,8 +590,10 @@ adb_wohneinheit->ftu_data["id"]?> + -

FCP

+
+

FCP

fcp): ?> @@ -610,9 +616,12 @@
-

Kein FCP zugewiesen

+
+ +
-
diff --git a/Layout/default/Preorderlogistics/Index.php b/Layout/default/Preorderlogistics/Index.php index 40cc85cb0..e40d24773 100644 --- a/Layout/default/Preorderlogistics/Index.php +++ b/Layout/default/Preorderlogistics/Index.php @@ -103,12 +103,12 @@ include(realpath(dirname(__FILE__) . "/../../$mfLayoutPackage") . "/header.php") data-ucode="ucode ?>" data-oaid="oaid ?>" data-addr-name="company ?: "{$preorder->firstname} {$preorder->lastname}", ENT_QUOTES) ?>" - data-addr-street="street} {$preorder->housenumber}"), ENT_QUOTES) ?>" - data-addr-zip="zip ?>" - data-addr-city="city, ENT_QUOTES) ?>" + data-addr-street="adb_hausnummer_id ? "{$preorder->adb_hausnummer->strasse->name} {$preorder->adb_hausnummer->hausnummer}" : trim("{$preorder->street} {$preorder->housenumber}"), ENT_QUOTES) ?>" + data-addr-zip="adb_hausnummer_id ? $preorder->adb_hausnummer->plz->plz : $preorder->zip, ENT_QUOTES) ?>" + data-addr-city="adb_hausnummer_id ? $preorder->adb_hausnummer->ortschaft->name : $preorder->city, ENT_QUOTES) ?>" data-phone="phone ?>" data-email="email ?>"> - + diff --git a/Layout/default/Preorderlogistics/Print.template.php b/Layout/default/Preorderlogistics/Print.template.php index 61795d3e7..c71a980eb 100644 --- a/Layout/default/Preorderlogistics/Print.template.php +++ b/Layout/default/Preorderlogistics/Print.template.php @@ -35,18 +35,27 @@
-

- company): ?> - company)?>
- -
- - lastname): ?> - firstname?> lastname?>
- - street?> housenumber?>
- zip?> city?> -

+

+ company): ?> + company))?>
+ +
+ + lastname): ?> + firstname)?> lastname)?>
+ + + adb_hausnummer_id): ?> + adb_hausnummer->strasse->name) ?> adb_hausnummer->hausnummer) ?>
+ adb_wohneinheit_id && (string)$preorder->adb_wohneinheit): ?> + adb_wohneinheit) ?>
+ + adb_hausnummer->plz->plz) ?> adb_hausnummer->ortschaft->name) ?> + + street)?> housenumber)?>
+ zip)?> city)?> + +

Liezen,

Liebe(r) firstname) ? $preorder->firstname : ""?> lastname) ? $preorder->lastname : ""?>,

diff --git a/Layout/default/Timerecording/Index.php b/Layout/default/Timerecording/Index.php index 7a96f9097..128067ed6 100644 --- a/Layout/default/Timerecording/Index.php +++ b/Layout/default/Timerecording/Index.php @@ -22,12 +22,20 @@ for ($i = 1; $i <= 25; $i++) { $time = $time - 604800; } -$time = time(); +$monthger = [ + 1 => 'Januar', 2 => 'Februar', 3 => 'März', 4 => 'April', + 5 => 'Mai', 6 => 'Juni', 7 => 'Juli', 8 => 'August', + 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Dezember' +]; + +$month = []; +$date = new DateTime('first day of this month'); + for ($i = 1; $i <= 12; $i++) { - $mon = date('n', $time); - $year = date('Y', $time); - $month[$time] = $monthger[$mon] . " " . $year; - $time = strtotime('-1 month', $time); + $mon = $date->format('n'); + $year = $date->format('Y'); + $month[$date->getTimestamp()] = $monthger[$mon] . " " . $year; + $date->modify('-1 month'); } $years[time() + 31536000] = date('Y', time() + 31536000); diff --git a/Layout/default/User/Form.php b/Layout/default/User/Form.php deleted file mode 100644 index 90945f6e6..000000000 --- a/Layout/default/User/Form.php +++ /dev/null @@ -1,620 +0,0 @@ - - - - -
-
-
- -

Benutzer

-
-
-
- - -
"> - -
-
-
-
-

Benutzer bearbeiten

-
-
- - - -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- -
is("employee")) ? "hidden" : ""?>> -
- - value() : ""?>" /> -
- -
- - value() : ""?>" /> -
- -
- - value() : ""?>" /> -
- -
- - value() : ""?>" /> - +43 720 123456 -
- -
- - value() : ""?>" /> -
- -
- - -
- -
- - -
-
- - -
- -
- -
- - -
-
-
- -
-
- -

Preorder

- -
- - -
- -
- - - z.B. Meridiam -
- -
- - -
- -
- - id) { - $pns = json_decode((new WorkerFlag($user->id, "preorder_networks"))->value()); - if(!$pns) { - $pns = []; - } - } - - ?> - - Beschränkt Benutzer auf Netzgebiete. Überschreibt Netzgebiete der Firma. Wenn - leer werden Netzgebiete der Firma angezeigt -
- -
- - -
- -

Preorder Module

-
-
-
- can("Preorderpricing")) ? "checked='checked'" : ""?> /> - -
-
- can("PreorderpricingReadonly") ? "checked='checked'" : ""?> /> - -
-
-
-
- can("Preorderbilling")) ? "checked='checked'" : ""?> /> - -
-
- can("PreorderbillingReadonly") ? "checked='checked'" : ""?> /> - -
-
-
-
-
- -
-
- -

Zustimmungserklärungen

- - -
- - id) { - $constructionConsent_projects = json_decode((new WorkerFlag($user->id, "constructionConsent_projects"))->value()); - if(!$constructionConsent_projects) { - $constructionConsent_projects = []; - } - } - - ?> - - Benutzer kann nur Zustimmungserklärungen in diesen Projekten sehen -
- -
-
- - -
-
- -

Modulberechtigungen

- -
-
-
- can("Building")) ? "checked='checked'" : ""?> /> - -
-
-
-
- can("Pipework") ? "checked='checked'" : ""?> /> - -
-
-
-
- can("Linework") ? "checked='checked'" : ""?> /> - -
-
-
-
-
-
- can("Patching") ? "checked='checked'" : ""?> /> - -
-
-
-
- can("Filestore") ? "checked='checked'" : ""?> /> - -
-
-
-
- can("Cpeprovisioning") ? "checked='checked'" : ""?> /> - -
-
-
-
-
-
- can("Cpeshipping") ? "checked='checked'" : ""?> /> - -
-
-
-
- can("Voipnumbering") ? "checked='checked'" : ""?> /> - -
-
-
-
- can("Preorder") ? "checked='checked'" : ""?> /> - -
-
-
-
-
-
- can("Order") ? "checked='checked'" : ""?> /> - -
-
-
-
- can("Billing") ? "checked='checked'" : ""?> /> - -
-
-
- -

Lager

- -
-
-
- can("WarehouseAdmin")) ? "checked='checked'" : ""?> /> - -
-
- -
-
- can("WarehouseUser")) ? "checked='checked'" : ""?> /> - -
-
- -
-
- can("WarehouseEShop")) ? "checked='checked'" : ""?> /> - -
-
-
- -

Zusatzberechtigungen

- -
-
-
- can("Fibu")) ? "checked='checked'" : ""?> /> - -
-
- -
-
- can("Statistics")) ? "checked='checked'" : ""?> /> - -
-
- -
-
- can("ADBExtended")) ? "checked='checked'" : ""?> /> - -
-
- -
-
- can("AssetAdmin")) ? "checked='checked'" : ""?> /> - -
-
- -
-
- can("RMLAdmin")) ? "checked='checked'" : ""?> /> - -
-
- -
-
- can("RMLCompany")) ? "checked='checked'" : ""?> /> - -
-
-
- -
- -
- -
- -
- -
-
-
-
-
-
- -id): ?> -
-
-
-
-

API Key

-
-
-
- -
-
-
"> - - apikey): ?> - - - - - -
- -
- -
-
-
- - - - - - - \ No newline at end of file diff --git a/Layout/default/VueViews/WorkorderCompanyPWA.php b/Layout/default/VueViews/WorkorderCompanyPWA.php new file mode 100644 index 000000000..27ef3c832 --- /dev/null +++ b/Layout/default/VueViews/WorkorderCompanyPWA.php @@ -0,0 +1,873 @@ + + + + + + + Workorders + + + + + + + + + + + + + + + + + + +
+ + + + + diff --git a/Layout/default/WarehouseOffer/PDF_MAIN.php b/Layout/default/WarehouseOffer/PDF_MAIN.php index 0007ea3ba..365cd1dfc 100644 --- a/Layout/default/WarehouseOffer/PDF_MAIN.php +++ b/Layout/default/WarehouseOffer/PDF_MAIN.php @@ -23,6 +23,7 @@ $texts = [ 'amount' => 'Menge', 'unit' => 'Einheit', 'unitPrice' => 'Einzelpreis', + 'discount' => 'Rabatt', 'totalPrice' => 'Gesamtpreis' ], 'summary' => [ @@ -32,6 +33,7 @@ $texts = [ 'total' => 'Gesamtbetrag', 'alternativeTotal' => 'Summe Alternativpositionen' ], + 'purpose' => 'Zweck / Projekt', 'alternativeHeader' => 'Alternativpositionen', 'notes' => 'Anmerkungen & Konditionen', 'defaultOfferText' => 'Vielen Dank für Ihre Anfrage. Es gelten unsere Allgemeinen Geschäftsbedingungen.', @@ -70,11 +72,11 @@ $formattedValidUntil = date("d.m.Y", strtotime("+14 days", $offerDate));