Initial
This commit is contained in:
34
server/routes/taxRules.js
Normal file
34
server/routes/taxRules.js
Normal file
@@ -0,0 +1,34 @@
|
||||
const express = require('express');
|
||||
const { all, audit, now, one, parseJson, run } = require('../db');
|
||||
const { requireRole } = require('../middleware/auth');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.get('/tax-rules', (req, res) => {
|
||||
const ruleSets = all('SELECT * FROM tax_rule_sets ORDER BY active DESC, effective_date DESC, id DESC').map((row) => ({
|
||||
...row,
|
||||
active: Boolean(row.active),
|
||||
rules_json: parseJson(row.rules_json, {})
|
||||
}));
|
||||
res.json({ ruleSets });
|
||||
});
|
||||
|
||||
router.post('/tax-rules', requireRole('admin', 'finance'), (req, res) => {
|
||||
const result = run(
|
||||
'INSERT INTO tax_rule_sets (jurisdiction, name, effective_date, version, rules_json, active, source_note, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)',
|
||||
[
|
||||
req.body.jurisdiction,
|
||||
req.body.name,
|
||||
req.body.effective_date,
|
||||
req.body.version,
|
||||
JSON.stringify(req.body.rules_json || req.body.rules || {}),
|
||||
req.body.active === false ? 0 : 1,
|
||||
req.body.source_note || null,
|
||||
now()
|
||||
]
|
||||
);
|
||||
audit(req.user.id, 'create', 'tax_rule_set', result.lastInsertRowid, null, req.body);
|
||||
res.status(201).json({ ruleSet: one('SELECT * FROM tax_rule_sets WHERE id = ?', [result.lastInsertRowid]) });
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user