Move fis widgets SQL into scalar functions
Playwright Tests / test (push) Waiting to run

Add fis_wdg_* table functions for dashboard widgets and wire them into
FuchsDatabase.sqlproj; update the invoice list procs accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Stefan
2026-10-16 11:35:28 +02:00
co-authored by Copilot
parent a39ccb8bbc
commit 330c33e65d
20 changed files with 307 additions and 13 deletions
@@ -0,0 +1,18 @@
-- =============================================
-- Description: Dashboard widget 'wdg_reminder_open10wd' (Offene Mahnungen, älter 10wd).
-- Called from [dbo].[fis_widgets].[sql] as: SELECT * FROM [dbo].[fis_wdg_reminder_open10wd]()
-- =============================================
CREATE FUNCTION [dbo].[fis_wdg_reminder_open10wd]()
RETURNS TABLE
AS
RETURN
(
WITH rem AS (SELECT [invid], [rem#] = COUNT(*), [last] = MAX([DateFinalized]) FROM [dbo].[fds__reminder] AS r GROUP BY [invid])
SELECT [label] = N'ALTE offene Mahnungen (10wd, nur Intranet)', [value] = COUNT(*)
FROM [dbo].[fds__fn_unpaidInvoices]() AS i
LEFT JOIN rem ON i.[id] = rem.[InvId]
WHERE i.[fds] = 1
AND [dbo].[fds__fn_invoiceDate](i.[DateFinalized], NULL) >= DATEFROMPARTS(2026, 1, 1)
AND [dbo].[date_addcustom]([dbo].[fds__fn_invoiceDate](rem.[last], NULL), '10wd') < CAST(GETDATE() as date)
AND ISNULL(rem.[rem#], 0) > 0
);