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 };