Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dd9ab3736b |
@@ -584,23 +584,6 @@ export default function Configurator({ vorwahlProdukt }: { vorwahlProdukt?: stri
|
||||
useEffect(() => { setPreviewSession(null); },
|
||||
[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=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
|
||||
@@ -806,6 +789,27 @@ export default function Configurator({ vorwahlProdukt }: { vorwahlProdukt?: stri
|
||||
const eigeneImText = genutztePlatzhalter.filter((p) => !standardSet.has(p.toLowerCase()));
|
||||
/** Platzhalter im individuellen Umschlagtext – analog zur Text-Tabelle. */
|
||||
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
|
||||
* Platzhalter explizit auf (Standard-Platzhalter aus der Adresse via standardWert,
|
||||
|
||||
Reference in New Issue
Block a user