67 lines
2.4 KiB
JavaScript
67 lines
2.4 KiB
JavaScript
const { executeQuery } = require('../../../config/database');
|
|
|
|
// Get database transactions for JTL comparison
|
|
async function getJTLTransactions() {
|
|
try {
|
|
const query = `
|
|
SELECT
|
|
cKonto, cKontozusatz, cName, dBuchungsdatum,
|
|
tZahlungsabgleichUmsatz.kZahlungsabgleichUmsatz,
|
|
cVerwendungszweck, fBetrag, tUmsatzKontierung.data
|
|
FROM [eazybusiness].[dbo].[tZahlungsabgleichUmsatz]
|
|
LEFT JOIN tUmsatzKontierung ON (tUmsatzKontierung.kZahlungsabgleichUmsatz = tZahlungsabgleichUmsatz.kZahlungsabgleichUmsatz)
|
|
ORDER BY dBuchungsdatum desc, tZahlungsabgleichUmsatz.kZahlungsabgleichUmsatz desc
|
|
`;
|
|
|
|
const result = await executeQuery(query);
|
|
const transactions = result.recordset || [];
|
|
|
|
// Get PDF documents for each transaction
|
|
const pdfQuery = `SELECT kUmsatzBeleg, kZahlungsabgleichUmsatz, textContent, markDown, extraction, datevlink FROM tUmsatzBeleg`;
|
|
const pdfResult = await executeQuery(pdfQuery);
|
|
|
|
for (const item of pdfResult.recordset) {
|
|
for (const transaction of transactions) {
|
|
if (item.kZahlungsabgleichUmsatz == transaction.kZahlungsabgleichUmsatz) {
|
|
if (!transaction.pdfs) transaction.pdfs = [];
|
|
transaction.pdfs.push({
|
|
kUmsatzBeleg: item.kUmsatzBeleg,
|
|
content: item.textContent,
|
|
markDown: item.markDown,
|
|
extraction: item.extraction,
|
|
datevlink: item.datevlink
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
// Get links for each transaction
|
|
const linksQuery = `
|
|
SELECT kZahlungsabgleichUmsatzLink, kZahlungsabgleichUmsatz, linktarget, linktype, note,
|
|
tPdfObjekt.kPdfObjekt, tPdfObjekt.textContent, tPdfObjekt.markDown,
|
|
tPdfObjekt.extraction
|
|
FROM tZahlungsabgleichUmsatzLink
|
|
LEFT JOIN tPdfObjekt ON (tZahlungsabgleichUmsatzLink.linktarget = tPdfObjekt.kLieferantenbestellung)
|
|
WHERE linktype = 'kLieferantenBestellung'
|
|
`;
|
|
const linksResult = await executeQuery(linksQuery);
|
|
|
|
for (const item of linksResult.recordset) {
|
|
for (const transaction of transactions) {
|
|
if (item.kZahlungsabgleichUmsatz == transaction.kZahlungsabgleichUmsatz) {
|
|
if (!transaction.links) transaction.links = [];
|
|
transaction.links.push(item);
|
|
}
|
|
}
|
|
}
|
|
|
|
return transactions;
|
|
} catch (error) {
|
|
console.error('Error fetching JTL transactions:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
getJTLTransactions
|
|
}; |