This commit is contained in:
seb
2026-07-31 05:34:45 +02:00
parent 806d077d57
commit 09c7a8bc74
19 changed files with 405 additions and 30 deletions

13
src/store/tax/create.js Normal file
View File

@@ -0,0 +1,13 @@
import sql from 'mssql';
import { CREATE } from '../../sql/tax.js';
import request from '../request.js';
export default function create(pool) {
return async (rate, tx) => {
const result = await request(pool, tx)
.input('rate', sql.Decimal(18, 4), rate)
.query(CREATE);
return result.recordset[0].id;
};
}

12
src/store/tax/ensure.js Normal file
View File

@@ -0,0 +1,12 @@
import getByRate from './getByRate.js';
import create from './create.js';
export default function ensure(pool) {
const get = getByRate(pool);
const add = create(pool);
return async (rate, tx) => {
const row = await get(rate, tx);
if (row) return row.id;
return add(rate, tx);
};
}

View File

@@ -0,0 +1,13 @@
import sql from 'mssql';
import { GET_BY_RATE } from '../../sql/tax.js';
import request from '../request.js';
export default function getByRate(pool) {
return async (rate, tx) => {
const result = await request(pool, tx)
.input('rate', sql.Decimal(18, 4), rate)
.query(GET_BY_RATE);
return result.recordset[0];
};
}

8
src/store/tax/list.js Normal file
View File

@@ -0,0 +1,8 @@
import { LIST } from '../../sql/tax.js';
export default function list(pool) {
return async () => {
const result = await pool.request().query(LIST);
return result.recordset;
};
}