From fb63eb99eda14a4ff10e82d3206f47e8c5a169a2 Mon Sep 17 00:00:00 2001 From: seaznCode Date: Thu, 21 May 2026 21:28:15 +0200 Subject: [PATCH] refactor: normalize user type handling and improve UID number logic in SummaryPageContent --- src/app/coffee-abonnements/summary/page.tsx | 34 +++++++++++++++------ 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/app/coffee-abonnements/summary/page.tsx b/src/app/coffee-abonnements/summary/page.tsx index eec9c1b..85ffa4a 100644 --- a/src/app/coffee-abonnements/summary/page.tsx +++ b/src/app/coffee-abonnements/summary/page.tsx @@ -135,19 +135,28 @@ function SummaryPageContent() { const templateVariableNames = useMemo(() => extractTemplateVariables(contractHtml), [contractHtml]) const templateVariableNamesKey = useMemo(() => templateVariableNames.join('|'), [templateVariableNames]) const [contractVariables, setContractVariables] = useState>({}) - const isCompanyCustomer = user?.userType === 'company' || user?.user_type === 'company' + const normalizedUserType = String(user?.userType ?? user?.user_type ?? '').trim().toLowerCase() + const isCompanyCustomer = normalizedUserType === 'company' - const profileUidNumber = useMemo(() => normalizeUid(pickFirstString( - user?.uidNumber, user?.uid_number, user?.atuNumber, user?.atu_number, - user?.companyProfile?.uid_number, user?.companyProfile?.atu_number - )), [user]) + const profileUidNumber = useMemo(() => { + if (!isCompanyCustomer) return '' + return normalizeUid(pickFirstString( + user?.uidNumber, user?.uid_number, user?.atuNumber, user?.atu_number, + user?.companyProfile?.uid_number, user?.companyProfile?.atu_number + )) + }, [isCompanyCustomer, user]) const enteredUidNumber = useMemo(() => normalizeUid(form.uidNumber), [form.uidNumber]) - const effectiveUidNumber = enteredUidNumber || profileUidNumber + const effectiveUidNumber = isCompanyCustomer ? (enteredUidNumber || profileUidNumber) : '' const hasValidCompanyUid = isCompanyCustomer && isLikelyValidUid(effectiveUidNumber) const isForeignInvoiceCountry = form.country.toUpperCase() !== HOME_COUNTRY_CODE const isReverseCharge = isCompanyCustomer && hasValidCompanyUid && isForeignInvoiceCountry + useEffect(() => { + if (isCompanyCustomer) return + setForm(prev => (prev.uidNumber ? { ...prev, uidNumber: '' } : prev)) + }, [isCompanyCustomer]) + useEffect(() => { if (!templateVariableNamesKey) return const fullName = `${form.firstName} ${form.lastName}`.trim() @@ -177,7 +186,7 @@ function SummaryPageContent() { fnCheckedClass: '', fnNumber: '', atuCheckedClass: hasValidCompanyUid ? 'checked' : '', - atuNumber: effectiveUidNumber, + atuNumber: isCompanyCustomer ? effectiveUidNumber : '', entrepreneurClass: isCompanyCustomer ? 'checked' : '', consumerClass: isCompanyCustomer ? '' : 'checked', paymentSepaClass: form.paymentMethod === 'sepa' ? 'checked' : '', @@ -435,7 +444,9 @@ function SummaryPageContent() { postalCode: pickFirstString(user.postalCode, user.zipCode, user.zip, user.addressPostalCode, user.address?.postalCode) || prev.postalCode, city: pickFirstString(user.city, user.addressCity, user.town, user.address?.city) || prev.city, country: (pickFirstString(user.country, user.countryCode, user.addressCountry, user.address?.country) || prev.country).toUpperCase(), - uidNumber: normalizeUid(pickFirstString(user.uidNumber, user.uid_number, user.atuNumber, user.atu_number, user.companyProfile?.uid_number, user.companyProfile?.atu_number) || prev.uidNumber), + uidNumber: isCompanyCustomer + ? normalizeUid(pickFirstString(user.uidNumber, user.uid_number, user.atuNumber, user.atu_number, user.companyProfile?.uid_number, user.companyProfile?.atu_number) || prev.uidNumber) + : '', })); }; @@ -500,8 +511,11 @@ function SummaryPageContent() { invoicePhone: form.invoicePhone.trim() || undefined, invoiceEmail: form.invoiceEmail.trim() || undefined, } : {}), signingCity: form.signingCity.trim() || undefined, signatureDataUrl: signatureDataUrl || undefined, - uidNumber: effectiveUidNumber || undefined, atuNumber: effectiveUidNumber || undefined, - taxMode: isReverseCharge ? 'reverse_charge' : 'standard_vat', + ...(isCompanyCustomer ? { + uidNumber: effectiveUidNumber || undefined, + atuNumber: effectiveUidNumber || undefined, + taxMode: isReverseCharge ? 'reverse_charge' : 'standard_vat', + } : {}), referred_by: typeof currentUserId === 'number' ? currentUserId : undefined, } await subscribeAbo(payload) -- 2.39.5