'use client' import { useState } from 'react' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Switch } from '@/components/ui/switch' import { Label } from '@/components/ui/label' import { Button } from '@/components/ui/button' import { useToast } from '@/components/ui/use-toast' import { formatCurrency } from '@/lib/utils' import { SCHABLONAVDRAG_RATES, type HousingType } from '@/lib/tax/schablonavdrag' import { Home, Car, Loader2, Info, Building } from 'lucide-react' import type { SchablonavdragSettings as SchablonavdragSettingsType } from '@/types' interface SchablonavdragSettingsProps { settings: SchablonavdragSettingsType onSave: (settings: SchablonavdragSettingsType) => Promise } export default function SchablonavdragSettings({ settings: initialSettings, onSave, }: SchablonavdragSettingsProps) { const { toast } = useToast() const [isSaving, setIsSaving] = useState(false) const [settings, setSettings] = useState(initialSettings) const hasChanges = settings.hemmakontor_enabled !== initialSettings.hemmakontor_enabled || settings.hemmakontor_housing_type !== initialSettings.hemmakontor_housing_type || settings.bil_enabled !== initialSettings.bil_enabled // Get the current hemmakontor amount based on housing type const housingType = settings.hemmakontor_housing_type || 'apartment' const hemmakontorAmount = housingType === 'villa' ? SCHABLONAVDRAG_RATES.hemmakontor.villa : SCHABLONAVDRAG_RATES.hemmakontor.apartment async function handleSave() { setIsSaving(true) try { await onSave(settings) toast({ title: 'Sparat', description: 'Dina schablonavdragsinställningar har uppdaterats', }) } catch (error) { toast({ title: 'Fel', description: 'Kunde inte spara inställningar', variant: 'destructive', }) } setIsSaving(false) } function setHousingType(type: HousingType) { setSettings({ ...settings, hemmakontor_housing_type: type }) } return ( Schablonavdrag Aktivera schablonmässiga avdrag som inte kräver kvitton {/* Hemmakontor */}

Schablonavdrag för hemmakontor (minst 800 tim/år)

{formatCurrency(hemmakontorAmount)} per år
setSettings({ ...settings, hemmakontor_enabled: checked }) } />
{/* Housing type selection */} {settings.hemmakontor_enabled && (
)}
{/* Bilkostnader */}

Milersättning för tjänsteresor med egen bil

{SCHABLONAVDRAG_RATES.bil.rate_per_mil} kr/mil ({SCHABLONAVDRAG_RATES.bil.rate_per_km.toFixed(2)} kr/km)
setSettings({ ...settings, bil_enabled: checked }) } />
{/* Info box */}

Om schablonavdrag

  • Hemmakontor: Kräver minst 800 timmars arbete hemifrån per år. Avdrag: {formatCurrency(SCHABLONAVDRAG_RATES.hemmakontor.apartment)} (lägenhet) eller{' '} {formatCurrency(SCHABLONAVDRAG_RATES.hemmakontor.villa)} (villa).
  • Bilkostnader: Kräver att du loggar dina resor i körjournalen. Du får {SCHABLONAVDRAG_RATES.bil.rate_per_mil} kr per mil ({SCHABLONAVDRAG_RATES.bil.rate_per_km.toFixed(2)} kr/km).
  • Schablonavdrag minskar din beskattningsbara inkomst
{/* Save button */} {hasChanges && (
)}
) }