Added Section 179 Limits
This commit is contained in:
@@ -4,8 +4,9 @@
|
||||
<div>
|
||||
<h2 class="section-title">Depreciation zones</h2>
|
||||
<p class="quiet text-body-2">
|
||||
Special-allowance zones (e.g. New York Liberty Zone). Assign one to an asset and the engine applies the zone’s §168
|
||||
allowance to the federal book for assets placed in service within the date window.
|
||||
Special-allowance zones (e.g. New York Liberty Zone, Enterprise/Empowerment Zone). Assign one to an asset and the engine
|
||||
applies the zone’s §168 allowance and/or increased §179 limit to the federal book for assets placed in service within the
|
||||
date window.
|
||||
</p>
|
||||
</div>
|
||||
<v-spacer />
|
||||
@@ -27,6 +28,7 @@
|
||||
<v-chip v-if="!row.enabled" size="x-small" variant="tonal" class="ml-2">Disabled</v-chip>
|
||||
</template>
|
||||
<template #cell-allowance_percent="{ row }">{{ row.allowance_percent }}%</template>
|
||||
<template #cell-section_179_increase="{ row }">{{ row.section_179_increase ? `+$${Number(row.section_179_increase).toLocaleString()}` : '—' }}</template>
|
||||
<template #cell-window="{ row }">{{ row.pis_start || '—' }} → {{ row.pis_end || '—' }}</template>
|
||||
<template #actions="{ row }">
|
||||
<v-btn icon="mdi-pencil" size="small" variant="text" @click="openEdit(row)" />
|
||||
@@ -49,6 +51,8 @@
|
||||
<v-text-field v-model="form.real_property_end" type="date" label="Real-property PIS end (optional)" />
|
||||
<v-text-field v-model.number="form.max_recovery_years" type="number" label="Max recovery years (optional)" />
|
||||
<v-text-field v-model.number="form.leasehold_life_years" type="number" label="Leasehold improvement life (yrs, optional)" />
|
||||
<v-text-field v-model.number="form.section_179_increase" type="number" label="§179 limit increase ($)" prefix="$" hint="Enterprise/empowerment zones, e.g. 35000" persistent-hint />
|
||||
<v-text-field v-model.number="form.section_179_cost_factor" type="number" step="0.01" label="§179 cost factor for phaseout" hint="Share of cost counted toward the threshold (e.g. 0.5)" persistent-hint />
|
||||
</div>
|
||||
<v-textarea v-model="form.notes" class="mt-2" label="Notes" rows="3" />
|
||||
<v-alert v-if="dialogError" type="error" density="compact" class="mt-2">{{ dialogError }}</v-alert>
|
||||
@@ -87,7 +91,8 @@ import { apiRequest } from '../services/api';
|
||||
function blankForm() {
|
||||
return {
|
||||
exists: false, code: '', name: '', allowance_percent: 0, enabled: true,
|
||||
pis_start: '', pis_end: '', real_property_end: '', max_recovery_years: null, leasehold_life_years: null, notes: ''
|
||||
pis_start: '', pis_end: '', real_property_end: '', max_recovery_years: null, leasehold_life_years: null,
|
||||
section_179_increase: 0, section_179_cost_factor: 1, notes: ''
|
||||
};
|
||||
}
|
||||
|
||||
@@ -109,7 +114,8 @@ export default {
|
||||
dialogError: '',
|
||||
columns: [
|
||||
{ key: 'name', label: 'Zone' },
|
||||
{ key: 'allowance_percent', label: 'Allowance' },
|
||||
{ key: 'allowance_percent', label: '§168 allowance' },
|
||||
{ key: 'section_179_increase', label: '§179 increase', sortable: false },
|
||||
{ key: 'window', label: 'Placed-in-service window', sortable: false },
|
||||
{ key: 'asset_count', label: 'Assets', format: 'number' }
|
||||
]
|
||||
@@ -140,7 +146,10 @@ export default {
|
||||
this.form = {
|
||||
exists: true, code: row.code, name: row.name, allowance_percent: row.allowance_percent, enabled: row.enabled,
|
||||
pis_start: row.pis_start || '', pis_end: row.pis_end || '', real_property_end: row.real_property_end || '',
|
||||
max_recovery_years: row.max_recovery_years, leasehold_life_years: row.leasehold_life_years, notes: row.notes || ''
|
||||
max_recovery_years: row.max_recovery_years, leasehold_life_years: row.leasehold_life_years,
|
||||
section_179_increase: row.section_179_increase || 0,
|
||||
section_179_cost_factor: row.section_179_cost_factor === null || row.section_179_cost_factor === undefined ? 1 : row.section_179_cost_factor,
|
||||
notes: row.notes || ''
|
||||
};
|
||||
this.dialogError = '';
|
||||
this.dialog = true;
|
||||
|
||||
Reference in New Issue
Block a user