cleasnup
This commit is contained in:
@@ -5,7 +5,7 @@ import chalk from 'chalk';
|
||||
import { getArticle } from '../src/services/article/getArticle.js';
|
||||
import { searchArticles } from '../src/services/article/searchArticles.js';
|
||||
import { closePool } from '../src/db/mssqlClient.js';
|
||||
import { bruttoFromNetto, loadSteuerklassen } from '../src/services/misc/steuerklassen.js';
|
||||
import { bruttoFromNetto, loadSteuerklassen } from '../src/services/misc/getSteuer.js';
|
||||
|
||||
import '../src/config/env.js';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import env from '../../config/env.js';
|
||||
import { getPool } from '../../db/mssqlClient.js';
|
||||
import { enrichSupplierAnmerkungRow } from './enrichSupplier.js';
|
||||
import { bruttoFromNetto, loadSteuerklassen } from '../misc/steuerklassen.js';
|
||||
import { bruttoFromNetto, loadSteuerklassen } from '../misc/getSteuer.js';
|
||||
import * as Q from '../../db/mssql/getArticle.js';
|
||||
|
||||
async function query(pool, sql, inputs = {}) {
|
||||
|
||||
@@ -46,6 +46,10 @@ function buildCategoryTree(rows) {
|
||||
return roots;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the full JTL category list with per-category article counts and a nested tree.
|
||||
* @returns {Promise<{ categories: Array<{ kKategorie: number, kOberKategorie: number, nSort: number, cName: string|null, count: number }>, tree: object[] }>}
|
||||
*/
|
||||
export async function getCategories() {
|
||||
const pool = await getPool();
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
import { getPool } from '../../db/mssqlClient.js';
|
||||
import { LOAD_STEUERKLASSEN } from '../../db/mssql/steuer.js';
|
||||
|
||||
let cache;
|
||||
|
||||
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);
|
||||
}
|
||||
Reference in New Issue
Block a user