Merge pull request 'dev' (#30) from dev into main

Reviewed-on: #30
This commit is contained in:
Seazn 2026-05-21 19:28:36 +00:00
commit c014646716

View File

@ -135,19 +135,28 @@ function SummaryPageContent() {
const templateVariableNames = useMemo(() => extractTemplateVariables(contractHtml), [contractHtml])
const templateVariableNamesKey = useMemo(() => templateVariableNames.join('|'), [templateVariableNames])
const [contractVariables, setContractVariables] = useState<Record<string, string>>({})
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)