Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dd9ab3736b |
@@ -584,23 +584,6 @@ export default function Configurator({ vorwahlProdukt }: { vorwahlProdukt?: stri
|
|||||||
useEffect(() => { setPreviewSession(null); },
|
useEffect(() => { setPreviewSession(null); },
|
||||||
[textTemplate, font, format, realistisch, labeling, needsEnvelope, umschlagText, entries]);
|
[textTemplate, font, format, realistisch, labeling, needsEnvelope, umschlagText, entries]);
|
||||||
|
|
||||||
// Empfängerzeilen an die Menge angleichen (nur im Tabellenmodus). Gilt auch im
|
|
||||||
// Extern-Modus: die (vom Betreiber vorgegebene) Menge erzeugt die passende
|
|
||||||
// Anzahl Zeilen – egal ob mit oder ohne Kuvert/Empfänger.
|
|
||||||
useEffect(() => {
|
|
||||||
// Bei vielen Empfängern (Tabelle unpraktisch) wird auf Excel verwiesen und
|
|
||||||
// nicht synchronisiert – AUSSER im Extern-Modus ohne Empfänger-Schritt, wo die
|
|
||||||
// Menge einfach N Blanko-Dokumente erzeugen muss (auch über der Tabellengrenze).
|
|
||||||
if (nurUpload && (!externModus || empfaengerSchritt)) return;
|
|
||||||
setEntries((prev) => {
|
|
||||||
if (prev.length === quantity) return prev;
|
|
||||||
if (prev.length < quantity) {
|
|
||||||
return [...prev, ...Array.from({ length: quantity - prev.length }, leereEntry)];
|
|
||||||
}
|
|
||||||
return prev.slice(0, quantity);
|
|
||||||
});
|
|
||||||
}, [quantity, nurUpload, externModus, empfaengerSchritt]);
|
|
||||||
|
|
||||||
// Extern-Preset (vom Betreiber im Direktlink gesetzt) – der Kunde wählt nichts:
|
// Extern-Preset (vom Betreiber im Direktlink gesetzt) – der Kunde wählt nichts:
|
||||||
// ?extern=1&versand=sammel|einzeln&kuvert=0|1&beschriftung=empfaenger|freitext|keine&menge=N
|
// ?extern=1&versand=sammel|einzeln&kuvert=0|1&beschriftung=empfaenger|freitext|keine&menge=N
|
||||||
// Die Menge ist maßgeblich (greift immer); nur ein Excel-Import passt sie an die
|
// Die Menge ist maßgeblich (greift immer); nur ein Excel-Import passt sie an die
|
||||||
@@ -806,6 +789,27 @@ export default function Configurator({ vorwahlProdukt }: { vorwahlProdukt?: stri
|
|||||||
const eigeneImText = genutztePlatzhalter.filter((p) => !standardSet.has(p.toLowerCase()));
|
const eigeneImText = genutztePlatzhalter.filter((p) => !standardSet.has(p.toLowerCase()));
|
||||||
/** Platzhalter im individuellen Umschlagtext – analog zur Text-Tabelle. */
|
/** Platzhalter im individuellen Umschlagtext – analog zur Text-Tabelle. */
|
||||||
const genutztePlatzhalterUmschlag = useMemo(() => textPlatzhalter(umschlagText), [umschlagText]);
|
const genutztePlatzhalterUmschlag = useMemo(() => textPlatzhalter(umschlagText), [umschlagText]);
|
||||||
|
|
||||||
|
// Müssen pro Dokument eigene Daten erfasst werden? Das ist der Fall bei einem
|
||||||
|
// Empfänger-/Individualtext-Schritt oder bei eigenen Platzhaltern im Brieftext
|
||||||
|
// (jede Zeile trägt andere Werte → oberhalb der Tabellengrenze via Excel).
|
||||||
|
const zeilenDatenNoetig = !!empfaengerSchritt || eigeneImText.length > 0;
|
||||||
|
|
||||||
|
// Empfängerzeilen an die Menge angleichen. Unterhalb der Tabellengrenze immer;
|
||||||
|
// darüber nur, wenn KEINE Pflicht-Zeilendaten nötig sind (z. B. identische
|
||||||
|
// Sammelkarten ohne Empfängerliste) – dann erzeugt die Menge N Blanko-Zeilen.
|
||||||
|
// Werden pro Zeile Daten gebraucht, bleibt es beim Excel-Upload (nicht syncen).
|
||||||
|
// Im Extern-Modus wie bisher: syncen außer bei Empfänger-/Individualtext-Schritt.
|
||||||
|
useEffect(() => {
|
||||||
|
if (nurUpload && (externModus ? empfaengerSchritt : zeilenDatenNoetig)) return;
|
||||||
|
setEntries((prev) => {
|
||||||
|
if (prev.length === quantity) return prev;
|
||||||
|
if (prev.length < quantity) {
|
||||||
|
return [...prev, ...Array.from({ length: quantity - prev.length }, leereEntry)];
|
||||||
|
}
|
||||||
|
return prev.slice(0, quantity);
|
||||||
|
});
|
||||||
|
}, [quantity, nurUpload, externModus, empfaengerSchritt, zeilenDatenNoetig]);
|
||||||
/**
|
/**
|
||||||
* Entry für den Versand ans Backend: löst ALLE im Text/Umschlag genutzten
|
* Entry für den Versand ans Backend: löst ALLE im Text/Umschlag genutzten
|
||||||
* Platzhalter explizit auf (Standard-Platzhalter aus der Adresse via standardWert,
|
* Platzhalter explizit auf (Standard-Platzhalter aus der Adresse via standardWert,
|
||||||
|
|||||||
Reference in New Issue
Block a user