Files
redmine_ticket_portal/db.js
T
2026-07-20 13:54:04 +02:00

50 lines
1.3 KiB
JavaScript

import sql from "mssql";
// --- SQL-Server-Anbindung (WAWIS), siehe .env.example ---
const sqlConfig = {
server: process.env.DB_SERVER || "192.168.1.16",
port: Number(process.env.DB_PORT) || 1433,
database: process.env.DB_DATABASE || "wawis",
user: process.env.DB_USER || "report",
password: process.env.DB_PASSWORD || "",
options: {
encrypt: false,
trustServerCertificate: true,
},
};
let poolPromise;
function getPool() {
if (!poolPromise) {
poolPromise = new sql.ConnectionPool(sqlConfig).connect().catch((error) => {
poolPromise = undefined;
throw error;
});
}
return poolPromise;
}
// Nur lesender Zugriff (SELECT) - der SQL-Server wird von diesem Portal nie beschrieben.
// gesperrt/inaktiv kommt aus T kunzu als Text ('ja'/'nein')
const CUSTOMERS_QUERY = `
SELECT
kunde.debez
, kunde.debnr
, kunde.kg_id as kg_id
, kunde.kugru as kugru
, sydat as sydat
, datlv as datlv
, fibuk as fibuk
, RTRIM(bsper) as bsper
, RTRIM(baktiv) as baktiv
FROM kunde
INNER JOIN kunzu ON kunzu.ku_id = kunde.ku_id
`;
export async function fetchCustomersFromSql() {
const pool = await getPool();
const result = await pool.request().query(CUSTOMERS_QUERY);
return result.recordset;
}