Add Fuchs_Database SSDT project (schema source of truth)

Adds the SQL Server Data Tools project for the fuchs_fds database — tables,
table types, functions and stored procedures that the backend calls (e.g.
fds__getInvoice, fds__merge_bankingtransactions, fds__tt__bankingtransactions,
fds__admin_getReportCatalog, fis_* auth). Build/model caches (bin, obj,
*.dbmdl, *.jfm, *.user) are git-ignored.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 14:50:54 +02:00
parent 1376779224
commit 10ecdfa2e4
359 changed files with 22603 additions and 0 deletions
@@ -0,0 +1,129 @@
CREATE function [dbo].[fds__getInvoiceCredits]
(
@startdate date
,@enddate date
)
RETURNS TABLE
AS
RETURN
(
with b0 as (
SELECT [taID]
--,[AccountIdentification]
,[Amount]
--,[EntryDate]
,[FundsCode]
,[AccountNumberOfPayer]
,[BankCodeOfPayer]
,[EndToEndReference]
--,[JournalNumber]
,[NameOfPayer]
,'info' = [dbo].[fds__fn_creanupTransactionInfo]([SepaRemittanceInformation])
,'e2e' = [dbo].[fds__fn_creanupTransactionInfo]([EndToEndReference])
--,[PayersReferenceParty]
--,[PostingText]
,[SepaRemittanceInformation]
,[TextKeyAddition]
,[TransactionCode]
,[DebitCreditMark]
,[TransactionTypeIdCode]
,[ValueDate]
FROM [dbo].[fds__bankingtransactions]
WHERE [DebitCreditMark] in ('C')
AND (@startdate is null or CAST([valuedate] AS DATE) >= @startdate)
AND (@enddate is null or CAST([valuedate] AS DATE) <= @enddate)
AND NOT (ISNULL([AccountNumberOfPayer],'') IN ('DE52301502000002091478') AND ISNULL([SepaRemittanceInformation],'') like ('%umbuchung%'))
AND NOT (ISNULL([AccountNumberOfPayer],'') IN ('DE23501108006161606386') AND ISNULL([SepaRemittanceInformation],'') like ('%ebay%'))
AND NOT (ISNULL([SepaRemittanceInformation],'') like ('%Umsatzsteuer%'))
)
, b as (
SELECT
*
,'exact' = PATINDEX('%R202[0-9][- ][0-9][0-9][0-9][0-9]%',[info])
,'exact2' = PATINDEX('%R202[0-9][- ][0-9][0-9][0-9][0-9]%',REPLACE([info], ' ', ''))
,'test1' = PATINDEX('%202[0-9]%',[info])
,'E2E_exact' = PATINDEX('%R202[0-9][- ][0-9][0-9][0-9][0-9]%',[e2e])
,'E2E_exact2' = PATINDEX('%R202[0-9][- ][0-9][0-9][0-9][0-9]%',REPLACE([e2e], ' ', ''))
,'E2E_test1' = PATINDEX('%202[0-9]%',[e2e])
from b0
), b2 as (
SELECT
*
,[info2] = REPLACE([info], ' ', '')
,[info3] = CASE WHEN test1 > 0 THEN REPLACE(SUBSTRING([info], [test1] - 1, 10), ' ' , '-') ELSE '' END
,[info4] = REPLACE(REPLACE([info], 'RE ', 'NO '), 'RE-NR. ', 'NO ')
,[e2e_info2] = REPLACE([e2e], ' ', '')
,[e2e_info3] = CASE WHEN [E2E_test1] > 0 THEN REPLACE(SUBSTRING([e2e], [E2E_test1] - 1, 10), ' ' , '-') ELSE '' END
FROM b
), c as (
select
*
, 'lv' = CASE WHEN exact > 0 THEN 0
WHEN exact2 > 0 THEN 1
WHEN [test1] > 0 AND PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [info3]) > 0 THEN 2
WHEN [test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [info3]) > 0 THEN 3
WHEN [e2e_exact] > 0 THEN 10
WHEN [e2e_exact2] > 0 THEN 11
WHEN [e2e_test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) > 0 THEN 12
WHEN [e2e_test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) > 0 THEN 13
WHEN PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) > 0 AND EXISTS (SELECT * FROM [dbo].[fds__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
THEN 21
WHEN PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) > 0 AND EXISTS (SELECT * FROM [dbo].[mfr__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
THEN 22
ELSE 99 END
, 'Rg' =
CASe WHEN [exact] > 0 THEN REPLACE(SUBSTRING([info], [exact], 10), ' ' , '-')
WHEN [exact2] > 0 THEN REPLACE(SUBSTRING([info2], [exact2], 10), ' ' , '-')
WHEN [test1] > 0 AND PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [info3]) > 0 THEN 'R' + SUBSTRING([info3], PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [info3]) ,9)
WHEN [test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [info3]) > 0 THEN 'R' + SUBSTRING([info3], PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [info3]) ,4) + '-' + + SUBSTRING([info3], PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [info3]) +4 ,4)
WHEN [e2e_exact] > 0 THEN REPLACE(SUBSTRING([e2e], [e2e_exact], 10), ' ' , '-')
WHEN [e2e_exact2] > 0 THEN REPLACE(SUBSTRING([e2e_info2], [e2e_exact2], 10), ' ' , '-')
WHEN [e2e_test1] > 0 AND PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [e2e_info3]) > 0 THEN 'R' + SUBSTRING([e2e_info3], PATINDEX('%202[0-9][- ][0-9][0-9][0-9][0-9]%', [e2e_info3]) ,9)
WHEN [e2e_test1] > 0 AND PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) > 0 THEN 'R' + SUBSTRING([e2e_info3], PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) ,4) + '-' + + SUBSTRING([e2e_info3], PATINDEX('%202[0-9][0-9][0-9][0-9][0-9]%', [e2e_info3]) +4 ,4)
WHEN PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) > 0 AND EXISTS (SELECT * FROM [dbo].[fds__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
THEN (SELECT TOP(1) [invoiceid] FROM [dbo].[fds__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
WHEN PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) > 0 AND EXISTS (SELECT * FROM [dbo].[mfr__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
THEN (SELECT TOP(1) [invoiceid] FROM [dbo].[mfr__invoices] as i where RIGHT(i.[InvoiceId],4) = SUBSTRING([info4],PATINDEX('%NO [0-9][0-9][0-9][0-9] %', [info4]) + 3, 4) )
ELSE NULL
END
from b2
)
SELECT
[taID]
, [InvoiceId] = UPPER([rg])
, [info4]
, [Amount]
--,[EntryDate]
, [FundsCode]
, [AccountNumberOfPayer]
, [BankCodeOfPayer]
, [EndToEndReference]
--,[JournalNumber]
, [NameOfPayer]
--,[PayersReferenceParty]
--,[PostingText]
, [SepaRemittanceInformation]
, [TextKeyAddition]
, [TransactionCode]
, [DebitCreditMark]
, [TransactionTypeIdCode]
, [ValueDate]
--,ASCII(LEFT(RIGHT([info], 2),1))
FROM c
--where lv >90--Rg is null
)