Added Section 179 Limits
This commit is contained in:
@@ -4,6 +4,7 @@ const { requireCapability } = require('../middleware/auth');
|
||||
const { formatAssetId } = require('../services/assets');
|
||||
const assetClasses = require('../services/assetClasses');
|
||||
const zones = require('../services/zones');
|
||||
const section179Limits = require('../services/section179Limits');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
@@ -36,6 +37,35 @@ router.delete('/depreciation-zones/:code', requireCapability('config.manage'), (
|
||||
return res.status(204).end();
|
||||
});
|
||||
|
||||
// Annual Section 179 deduction limits & phaseout thresholds. GET is reference data; mutations
|
||||
// require config.manage. The engine caps each asset's §179 deduction at the applicable year's limit.
|
||||
router.get('/section-179-limits', (req, res) => {
|
||||
res.json({ limits: section179Limits.list() });
|
||||
});
|
||||
|
||||
router.post('/section-179-limits', requireCapability('config.manage'), (req, res, next) => {
|
||||
try {
|
||||
res.status(201).json({ limit: section179Limits.createLimit(req.body, req.user.id) });
|
||||
} catch (error) {
|
||||
next(error);
|
||||
}
|
||||
});
|
||||
|
||||
router.put('/section-179-limits/:year', requireCapability('config.manage'), (req, res, next) => {
|
||||
try {
|
||||
const limit = section179Limits.updateLimit(req.params.year, req.body, req.user.id);
|
||||
if (!limit) return res.status(404).json({ error: 'Limit not found' });
|
||||
return res.json({ limit });
|
||||
} catch (error) {
|
||||
return next(error);
|
||||
}
|
||||
});
|
||||
|
||||
router.delete('/section-179-limits/:year', requireCapability('config.manage'), (req, res) => {
|
||||
if (!section179Limits.deleteLimit(req.params.year, req.user.id)) return res.status(404).json({ error: 'Limit not found' });
|
||||
return res.status(204).end();
|
||||
});
|
||||
|
||||
// Asset class catalog (seeded from the IRS tables, then user-managed). GET is reference
|
||||
// data used by the category picker; mutations require config.manage.
|
||||
router.get('/asset-classes', (req, res) => {
|
||||
|
||||
Reference in New Issue
Block a user