Pub 946 Compliance

This commit is contained in:
2026-06-10 02:09:25 -05:00
parent 7a54d1a386
commit 221ccb7826
18 changed files with 863 additions and 19 deletions

View File

@@ -6,6 +6,7 @@ const { exportReport } = require('../services/reportExport');
const { rowsFromImport, extensionForUpload } = require('../services/importExport');
const glEntries = require('../services/glEntries');
const glAccounts = require('../services/glAccounts');
const section179Limitation = require('../services/section179Limitation');
const upload = multer({ storage: multer.memoryStorage(), limits: { fileSize: 16 * 1024 * 1024 } });
const router = express.Router();
@@ -79,6 +80,19 @@ router.delete('/gl-accounts/:id', ledgerEditor, (req, res) => {
return res.status(204).end();
});
// §179 return-level taxable-income limitation + carryover (per company + book + year).
router.get('/section-179/limitation', ledgerReader, (req, res) => {
const book = req.query.book || 'FEDERAL';
const year = Number(req.query.year) || new Date().getFullYear();
res.json({ summary: section179Limitation.summary(req.companyId, book, year, req.query.taxable_income) });
});
router.put('/section-179/limitation', ledgerEditor, (req, res) => {
const book = req.body.book || 'FEDERAL';
const year = Number(req.body.year) || new Date().getFullYear();
res.json({ summary: section179Limitation.save(req.companyId, book, year, req.body.taxable_income, req.user.id) });
});
// GL posting defaults (the fallback accounts the ledgers post to).
router.get('/gl-account-defaults', ledgerReader, (req, res) => {
res.json({ defaults: glAccounts.getDefaults(req.companyId) });