Refactor data.js to remove old CSV parsing logic and integrate a new router structure. Consolidate transaction retrieval and enhance error handling for various endpoints. Update the DATEV export functionality to utilize the new database queries and improve overall code organization.
This commit is contained in:
67
src/routes/data/helpers/jtl.js
Normal file
67
src/routes/data/helpers/jtl.js
Normal file
@@ -0,0 +1,67 @@
|
||||
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
|
||||
};
|
||||
Reference in New Issue
Block a user