Pub 225 Compliance

This commit is contained in:
2026-06-10 15:23:02 -05:00
parent 221ccb7826
commit 5074a3ad63
16 changed files with 434 additions and 24 deletions

View File

@@ -7,6 +7,7 @@ const assetClasses = require('../services/assetClasses');
const zones = require('../services/zones');
const section179Limits = require('../services/section179Limits');
const section280fLimits = require('../services/section280fLimits');
const shortTaxYear = require('../services/shortTaxYear');
const router = express.Router();
@@ -96,6 +97,24 @@ router.delete('/section-280f-limits/:year', requireCapability('config.manage'),
return res.status(204).end();
});
// Short tax years (per company) — prorate that year's MACRS depreciation.
router.get('/short-tax-years', (req, res) => {
res.json({ years: shortTaxYear.list(req.companyId) });
});
router.post('/short-tax-years', requireCapability('config.manage'), (req, res, next) => {
try {
res.status(201).json({ year: shortTaxYear.save(req.companyId, req.body, req.user.id) });
} catch (error) {
next(error);
}
});
router.delete('/short-tax-years/:year', requireCapability('config.manage'), (req, res) => {
if (!shortTaxYear.remove(req.companyId, req.params.year, req.user.id)) return res.status(404).json({ error: '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) => {