10ecdfa2e4
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>
129 lines
5.8 KiB
Transact-SQL
129 lines
5.8 KiB
Transact-SQL
|
|
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
|
|
) |