cleasnup
This commit is contained in:
@@ -1,4 +1,36 @@
|
||||
import { loadSteuerklassen } from './steuerklassen.js';
|
||||
import { getPool } from '../../db/mssqlClient.js';
|
||||
import { LOAD_STEUERKLASSEN } from '../../db/mssql/steuer.js';
|
||||
|
||||
let cache;
|
||||
|
||||
/**
|
||||
* Loads JTL tax classes with domestic VAT rates (`tSteuerklasse` / `tSteuersatz`).
|
||||
* Results are cached for the process lifetime.
|
||||
* @returns {Promise<Array<{ kSteuerklasse: number, cName: string, nStandard: number, fSteuersatz: number }>>}
|
||||
*/
|
||||
export async function loadSteuerklassen() {
|
||||
if (cache) {
|
||||
return cache;
|
||||
}
|
||||
|
||||
const pool = await getPool();
|
||||
const result = await pool.request().query(LOAD_STEUERKLASSEN);
|
||||
cache = result.recordset.map((row) => ({
|
||||
kSteuerklasse: row.kSteuerklasse,
|
||||
cName: row.cName,
|
||||
nStandard: row.nStandard,
|
||||
fSteuersatz: row.fSteuersatz,
|
||||
}));
|
||||
return cache;
|
||||
}
|
||||
|
||||
export function bruttoFromNetto(netto, kSteuerklasse, steuerklassen) {
|
||||
const row = steuerklassen.find((item) => item.kSteuerklasse === kSteuerklasse);
|
||||
if (row == null || netto == null) {
|
||||
return null;
|
||||
}
|
||||
return netto * (1 + row.fSteuersatz / 100);
|
||||
}
|
||||
|
||||
export async function getSteuer() {
|
||||
const steuerklassen = await loadSteuerklassen();
|
||||
|
||||
Reference in New Issue
Block a user