cleasnup
This commit is contained in:
@@ -5,7 +5,7 @@ import chalk from 'chalk';
|
|||||||
import { getArticle } from '../src/services/article/getArticle.js';
|
import { getArticle } from '../src/services/article/getArticle.js';
|
||||||
import { searchArticles } from '../src/services/article/searchArticles.js';
|
import { searchArticles } from '../src/services/article/searchArticles.js';
|
||||||
import { closePool } from '../src/db/mssqlClient.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';
|
import '../src/config/env.js';
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import env from '../../config/env.js';
|
import env from '../../config/env.js';
|
||||||
import { getPool } from '../../db/mssqlClient.js';
|
import { getPool } from '../../db/mssqlClient.js';
|
||||||
import { enrichSupplierAnmerkungRow } from './enrichSupplier.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';
|
import * as Q from '../../db/mssql/getArticle.js';
|
||||||
|
|
||||||
async function query(pool, sql, inputs = {}) {
|
async function query(pool, sql, inputs = {}) {
|
||||||
|
|||||||
@@ -46,6 +46,10 @@ function buildCategoryTree(rows) {
|
|||||||
return roots;
|
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() {
|
export async function getCategories() {
|
||||||
const pool = await getPool();
|
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() {
|
export async function getSteuer() {
|
||||||
const steuerklassen = await loadSteuerklassen();
|
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