Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
25547df815 |
@@ -44,8 +44,10 @@ const PRODUKT_TEXT: Record<string, string> = {
|
|||||||
follow_ups: 'Automatisierte handschriftliche Nachfass-Mailings für mehr Rücklauf.',
|
follow_ups: 'Automatisierte handschriftliche Nachfass-Mailings für mehr Rücklauf.',
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Standard-Platzhalter der strukturierten Adresse (werden automatisch befüllt). */
|
/** Standard-Platzhalter der strukturierten Adresse (werden automatisch befüllt).
|
||||||
const STANDARD_STRUKTUR = ['Anrede', 'Vorname', 'Nachname', 'Strasse', 'PLZ', 'Ort', 'Land'];
|
* Ohne „Anrede" – dafür gibt es kein Empfängerfeld; als [[Anrede]] ist es ein
|
||||||
|
* frei befüllbarer eigener Platzhalter. */
|
||||||
|
const STANDARD_STRUKTUR = ['Vorname', 'Nachname', 'Strasse', 'PLZ', 'Ort', 'Land'];
|
||||||
/** Standard-Platzhalter der Freitext-Adresse. */
|
/** Standard-Platzhalter der Freitext-Adresse. */
|
||||||
const STANDARD_FREITEXT = ['Zeile1', 'Zeile2', 'Zeile3', 'Zeile4', 'Zeile5'];
|
const STANDARD_FREITEXT = ['Zeile1', 'Zeile2', 'Zeile3', 'Zeile4', 'Zeile5'];
|
||||||
|
|
||||||
@@ -792,6 +794,22 @@ 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]);
|
||||||
|
/**
|
||||||
|
* Entry für den Versand ans Backend: löst ALLE im Text/Umschlag genutzten
|
||||||
|
* Platzhalter explizit auf (Standard-Platzhalter aus der Adresse via standardWert,
|
||||||
|
* eigene aus e.placeholders). So wird je Empfänger sicher ersetzt – unabhängig
|
||||||
|
* davon, wie das Backend die Adressfelder interpretiert.
|
||||||
|
*/
|
||||||
|
const mitPlatzhaltern = (e: Entry): Entry => {
|
||||||
|
const used = [...new Set([...genutztePlatzhalter, ...genutztePlatzhalterUmschlag])];
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
placeholders: {
|
||||||
|
...Object.fromEntries(used.map((p) => [p, standardWert(e, p)])),
|
||||||
|
...e.placeholders,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* Werden Platzhalterwerte NICHT bereits in einem Empfänger-Schritt erfasst
|
* Werden Platzhalterwerte NICHT bereits in einem Empfänger-Schritt erfasst
|
||||||
* (kein Adress-Schritt, kein Umschlag-Freitext)? Dann muss der Text-Schritt
|
* (kein Adress-Schritt, kein Umschlag-Freitext)? Dann muss der Text-Schritt
|
||||||
@@ -932,7 +950,7 @@ export default function Configurator({ vorwahlProdukt }: { vorwahlProdukt?: stri
|
|||||||
realistic: realistisch,
|
realistic: realistisch,
|
||||||
envelope_labeling: needsEnvelope ? labeling : 'keine',
|
envelope_labeling: needsEnvelope ? labeling : 'keine',
|
||||||
envelope_text: umschlagText,
|
envelope_text: umschlagText,
|
||||||
entries: entries.slice(0, 3),
|
entries: entries.slice(0, 3).map(mitPlatzhaltern),
|
||||||
});
|
});
|
||||||
if (r.has_overflow) {
|
if (r.has_overflow) {
|
||||||
setTextUeberlauf(true);
|
setTextUeberlauf(true);
|
||||||
@@ -1090,7 +1108,7 @@ export default function Configurator({ vorwahlProdukt }: { vorwahlProdukt?: stri
|
|||||||
city: e.city,
|
city: e.city,
|
||||||
country: e.country,
|
country: e.country,
|
||||||
free_text: adressModus === 'freitext' ? e.free_text : '',
|
free_text: adressModus === 'freitext' ? e.free_text : '',
|
||||||
placeholders: e.placeholders,
|
placeholders: mitPlatzhaltern(e).placeholders,
|
||||||
// Abweichender Text nur, wenn wirklich gesetzt (sonst greift der Standardtext).
|
// Abweichender Text nur, wenn wirklich gesetzt (sonst greift der Standardtext).
|
||||||
text: (e.text && e.text.trim()) ? e.text : undefined,
|
text: (e.text && e.text.trim()) ? e.text : undefined,
|
||||||
})),
|
})),
|
||||||
|
|||||||
Reference in New Issue
Block a user