'use client' import { useTranslations } from 'next-intl' import { useState } from 'react' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Checkbox } from '@/components/ui/checkbox' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' import type { CompanySettings } from '@/types' interface TaxSettingsFormProps { settings: CompanySettings /** Ledger-derived signal: EU sales postings exist (3108/3308/3107). */ euSalesDetected?: boolean /** Ledger-derived signal: utdelning/ägarlån postings exist (2898/2393/2893). */ kuSignalDetected?: boolean /** Invoice-derived signal: invoices with ROT/RUT deductions exist. */ rotRutSignalDetected?: boolean } export function TaxSettingsForm({ settings, euSalesDetected = false, kuSignalDetected = false, rotRutSignalDetected = false, }: TaxSettingsFormProps) { const t = useTranslations('settings_tax_form') const [vatRegistered, setVatRegistered] = useState(settings.vat_registered ?? false) const [fSkatt, setFSkatt] = useState(settings.f_skatt ?? true) const [paysSalaries, setPaysSalaries] = useState(settings.pays_salaries ?? false) // Fall back to pays_salaries for rows saved before the registration flag // existed; saving attests the shown value. const [employerRegistered, setEmployerRegistered] = useState( settings.employer_registered ?? settings.pays_salaries ?? false, ) const [employerSeasonal, setEmployerSeasonal] = useState(settings.employer_seasonal ?? false) const [momsPeriod, setMomsPeriod] = useState(settings.moms_period || '') const [vatTaxableBaseOver40m, setVatTaxableBaseOver40m] = useState( settings.vat_taxable_base_over_40m ?? false, ) const [hasEuTrade, setHasEuTrade] = useState(settings.vat_has_eu_trade ?? false) const [psEnabled, setPsEnabled] = useState(settings.periodisk_sammanstallning_enabled ?? false) const [kuEnabled, setKuEnabled] = useState(settings.kontrolluppgifter_enabled ?? false) const [rotRutEnabled, setRotRutEnabled] = useState(settings.rot_rut_enabled ?? false) const [ossEnabled, setOssEnabled] = useState(settings.oss_enabled ?? false) const [iossEnabled, setIossEnabled] = useState(settings.ioss_enabled ?? false) const [intrastatEnabled, setIntrastatEnabled] = useState(settings.intrastat_enabled ?? false) const [punktskattEnabled, setPunktskattEnabled] = useState(settings.punktskatt_enabled ?? false) const [fyllnadEnabled, setFyllnadEnabled] = useState( settings.fyllnadsinbetalning_enabled ?? false, ) const isEnskildFirma = settings.entity_type === 'enskild_firma' const months = [ t('month_jan'), t('month_feb'), t('month_mar'), t('month_apr'), t('month_may'), t('month_jun'), t('month_jul'), t('month_aug'), t('month_sep'), t('month_oct'), t('month_nov'), t('month_dec'), ] return (
{t('entity_form_help')}
{t('f_skatt_help')}
{t('vat_registered_help')}
{t('eu_trade_suggestion_title')}
{t('eu_trade_suggestion_help')}
{t('vat_number_help')}
{t('moms_period_help')}
{t('vat_taxable_base_over_40m_help')}
{t('vat_has_eu_trade_help')}
{t('vat_filing_method_help')}
{t('periodisk_enabled_help')}
{t('periodisk_help')}
{t('periodisk_filing_method_help')}
{t('tax_contact_help')}
{t('fiscal_year_ef_help')}
> ) : ( <>{t('fiscal_year_change_help')}
> )}{t('pays_salaries_help')}
{t('employer_registered_help')}
{t('employer_seasonal_help')}
{t('ku_suggestion_title')}
{t('ku_suggestion_help')}
{t('kontrolluppgifter_help')}
{t('rot_rut_suggestion_title')}
{t('rot_rut_suggestion_help')}
{t('rot_rut_help')}
{t('preliminary_tax_monthly_help')}
{t('more_deadlines_help')}
{vatRegistered && ( <>{t('oss_help')}
{t('ioss_help')}
{t('intrastat_help')}
{t('punktskatt_help')}
{t('fyllnadsinbetalning_help')}