Enhance transaction retrieval in data.js by adding additional fields from the UmsatzBeleg table and implementing a separate query for links data. Update transaction mapping to include new document data and filter links based on transaction IDs.
This commit is contained in:
@@ -126,12 +126,16 @@ router.get('/transactions/:timeRange', authenticateToken, async (req, res) => {
|
|||||||
bat.assigned_kreditor_id,
|
bat.assigned_kreditor_id,
|
||||||
ak.name as assigned_kreditor_name,
|
ak.name as assigned_kreditor_name,
|
||||||
0 as isJTLOnly,
|
0 as isJTLOnly,
|
||||||
1 as isFromCSV
|
1 as isFromCSV,
|
||||||
|
ub.textContent as jtl_document_data,
|
||||||
|
ub.kUmsatzBeleg,
|
||||||
|
ub.datevlink
|
||||||
FROM fibdash.CSVTransactions csv
|
FROM fibdash.CSVTransactions csv
|
||||||
LEFT JOIN eazybusiness.dbo.tZahlungsabgleichUmsatz jtl ON (
|
LEFT JOIN eazybusiness.dbo.tZahlungsabgleichUmsatz jtl ON (
|
||||||
ABS(csv.numeric_amount - jtl.fBetrag) < 0.01 AND
|
ABS(csv.numeric_amount - jtl.fBetrag) < 0.01 AND
|
||||||
ABS(DATEDIFF(day, csv.parsed_date, jtl.dBuchungsdatum)) <= 1
|
ABS(DATEDIFF(day, csv.parsed_date, jtl.dBuchungsdatum)) <= 1
|
||||||
)
|
)
|
||||||
|
LEFT JOIN eazybusiness.dbo.tUmsatzBeleg ub ON ub.kZahlungsabgleichUmsatz = jtl.kZahlungsabgleichUmsatz
|
||||||
LEFT JOIN fibdash.Kreditor k ON csv.kontonummer_iban = k.iban
|
LEFT JOIN fibdash.Kreditor k ON csv.kontonummer_iban = k.iban
|
||||||
LEFT JOIN fibdash.BankingAccountTransactions bat ON csv.id = bat.csv_transaction_id
|
LEFT JOIN fibdash.BankingAccountTransactions bat ON csv.id = bat.csv_transaction_id
|
||||||
LEFT JOIN fibdash.Kreditor ak ON bat.assigned_kreditor_id = ak.id
|
LEFT JOIN fibdash.Kreditor ak ON bat.assigned_kreditor_id = ak.id
|
||||||
@@ -159,8 +163,12 @@ router.get('/transactions/:timeRange', authenticateToken, async (req, res) => {
|
|||||||
NULL as assigned_kreditor_id,
|
NULL as assigned_kreditor_id,
|
||||||
NULL as assigned_kreditor_name,
|
NULL as assigned_kreditor_name,
|
||||||
1 as isJTLOnly,
|
1 as isJTLOnly,
|
||||||
0 as isFromCSV
|
0 as isFromCSV,
|
||||||
|
ub.textContent as jtl_document_data,
|
||||||
|
ub.kUmsatzBeleg,
|
||||||
|
ub.datevlink
|
||||||
FROM eazybusiness.dbo.tZahlungsabgleichUmsatz jtl
|
FROM eazybusiness.dbo.tZahlungsabgleichUmsatz jtl
|
||||||
|
LEFT JOIN eazybusiness.dbo.tUmsatzBeleg ub ON ub.kZahlungsabgleichUmsatz = jtl.kZahlungsabgleichUmsatz
|
||||||
WHERE NOT EXISTS (
|
WHERE NOT EXISTS (
|
||||||
SELECT 1 FROM fibdash.CSVTransactions csv
|
SELECT 1 FROM fibdash.CSVTransactions csv
|
||||||
WHERE ABS(csv.numeric_amount - jtl.fBetrag) < 0.01
|
WHERE ABS(csv.numeric_amount - jtl.fBetrag) < 0.01
|
||||||
@@ -171,6 +179,25 @@ router.get('/transactions/:timeRange', authenticateToken, async (req, res) => {
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
const result = await executeQuery(query);
|
const result = await executeQuery(query);
|
||||||
|
|
||||||
|
// Get links data separately to avoid duplicate rows
|
||||||
|
const linksQuery = `
|
||||||
|
SELECT
|
||||||
|
zul.kZahlungsabgleichUmsatz,
|
||||||
|
zul.linktarget,
|
||||||
|
zul.linktype,
|
||||||
|
zul.note,
|
||||||
|
po.kPdfObjekt,
|
||||||
|
po.textContent,
|
||||||
|
po.markDown,
|
||||||
|
po.extraction
|
||||||
|
FROM eazybusiness.dbo.tZahlungsabgleichUmsatzLink zul
|
||||||
|
LEFT JOIN eazybusiness.dbo.tPdfObjekt po ON zul.linktarget = po.kLieferantenbestellung
|
||||||
|
WHERE zul.linktype = 'kLieferantenBestellung'
|
||||||
|
`;
|
||||||
|
const linksResult = await executeQuery(linksQuery);
|
||||||
|
const linksData = linksResult.recordset || [];
|
||||||
|
|
||||||
const transactions = result.recordset.map(transaction => ({
|
const transactions = result.recordset.map(transaction => ({
|
||||||
...transaction,
|
...transaction,
|
||||||
parsedDate: new Date(transaction.parsed_date),
|
parsedDate: new Date(transaction.parsed_date),
|
||||||
@@ -187,8 +214,14 @@ router.get('/transactions/:timeRange', authenticateToken, async (req, res) => {
|
|||||||
name: transaction.assigned_kreditor_name,
|
name: transaction.assigned_kreditor_name,
|
||||||
id: transaction.assigned_kreditor_id
|
id: transaction.assigned_kreditor_id
|
||||||
} : null,
|
} : null,
|
||||||
pdfs: [],
|
pdfs: transaction.jtl_document_data ? [{
|
||||||
links: []
|
content: transaction.jtl_document_data,
|
||||||
|
kUmsatzBeleg: transaction.kUmsatzBeleg,
|
||||||
|
datevlink: transaction.datevlink
|
||||||
|
}] : [],
|
||||||
|
links: transaction.jtlId ? linksData.filter(link =>
|
||||||
|
link.kZahlungsabgleichUmsatz === transaction.jtlId
|
||||||
|
) : []
|
||||||
}));
|
}));
|
||||||
|
|
||||||
let filteredTransactions = [];
|
let filteredTransactions = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user