fix: jednotkova cena v tvare 'jednotkova cena 7,75 EUR/kg' aj v existujucich produktoch

- normalizeUnitPrice prevedie stare zapisy '1kg = 7,75 EUR' pri nacitani
  newslettera, v CSV importe a v predvolenych produktoch
- jednotkova cena pod nazvom sa neopakuje, ked ju ma priamo cenovka
  (vernostna karta, appkaci)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jakub_HostacnyandClaude Opus 5.5 committed 2026-10-22 10:46:42 +02:00
1 parent 9635b89e7c
commit d778ed345c
6 files changed
+54 -23

No files matched your search

+3 -7
View File
@@ -409,13 +409,9 @@ function renderVisualExport(p: CardProduct, ctx: CardContext, key: string): stri
// Texty pod vizuálom: názov 15px/700 + gramáž 15px/400, jednotková cena 11px #555, poznámka a platnosť 10px #888
const TEXT_FONT = "font-family: 'Poppins', Helvetica, Arial, sans-serif;";
function renderTexts(p: CardProduct, ctx: CardContext): string {
// Pri predvolenej vernostnej cenovke sú jednotkové ceny priamo na cenovke
const unitPrice =
ctx.variant === 'loyalty'
? p.badgeCustomTemplate || p.customBadgePngUrl
? p.cardUnitPrice || p.unitPrice
: ''
: p.unitPrice;
// Jednotková cena pod názvom, len ak ju nemá priamo cenovka (predvolená vernostná, šablóny s {jednotkova_cena…})
const badgeHasUnit = !p.customBadgePngUrl && (!p.badgeCustomTemplate ? ctx.variant === 'loyalty' : JSON.stringify(p.badgeCustomTemplate.layersConfig || []).includes('{jednotkova_cena'));
const unitPrice = badgeHasUnit ? '' : ctx.variant === 'loyalty' ? p.cardUnitPrice || p.unitPrice : p.unitPrice;
const validity = p.validityOverride || ctx.validity;
const small = (text: string) =>
`<div class="prod-unit force-text-dark" style="margin-top: 2px; ${TEXT_FONT} font-size: 10px; line-height: 1.3; color: #888888;">${escapeWithBreaks(text)}</div>`;