This commit is contained in:
2024-03-21 16:51:19 +01:00
commit 026fc75e0c
81 changed files with 6028 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_ER_TO_CORRECT] Script Date: 21.03.2024 16:05:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[FNCUST_ER_TO_CORRECT] ()
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
select DocID, dbo.FNDD_GET_WINDREAM_FILE_PATH(DocID,1) as WMPath FROM TBCUST_CORRECT_BUNR
GO

View File

@@ -0,0 +1,66 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_FORMAT-EXPORT_POSTING_DATA_FROM_WINDREAM_FOR_SCHLEUPEN] Script Date: 21.03.2024 16:05:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stand: MK // 27.08.2021
-- 27.08.2021 Sortierung nach Satzart eingefügt
-- 03.08.2021 Div. TRIM Befehle eingebaut
-- 25.02.2021 Betrag Konvertierung gäendert
CREATE FUNCTION [dbo].[FNCUST_FORMAT-EXPORT_POSTING_DATA_FROM_WINDREAM_FOR_SCHLEUPEN] (
@JOB_GUID INT,
@EXPORT_BOOKING_NUMBER BIGINT,
@windreamDocID BIGINT,
@windreamStatus VARCHAR(20), -- Should be: 'erledigt'
@windreamExportDate VARCHAR(8) -- Should be: NULL
)
RETURNS @FILE_CONTENT TABLE (FILE_CONTENT_BODY [VARCHAR](max) NOT NULL)
AS
BEGIN
DECLARE @ERROR VARCHAR(1000),
@ERROR_LINE VARCHAR(10)
INSERT INTO @FILE_CONTENT(FILE_CONTENT_BODY)
SELECT ISNULL(CONVERT(VARCHAR(max),[Belegnummer (X)]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),CAST([Belegdatum (X)] as date), 104),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),CAST([Valutadatum] as date), 104),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Kontoart (X)]),'') + ';' +
LTRIM(RTRIM(ISNULL(CONVERT(VARCHAR(max),[Kontonummer (X)]),''))) + ';' +
ISNULL(CONVERT(VARCHAR(max),[Gegenkontoart (X)]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Gegenkonto]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Zusatzkontoart]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Zusatzkonto]),'') + ';' +
REPLACE(LTRIM(RTRIM(STR([Betrag],25,2))),'.',',') + ';' +
ISNULL(CONVERT(VARCHAR(max),[S/H-Kennzeichen]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Steuerschlüssel]),'') + ';' +
LTRIM(RTRIM(ISNULL(CONVERT(VARCHAR(max),[Buchungstext]),''))) + ';' +
LTRIM(RTRIM(ISNULL(CONVERT(VARCHAR(max),[Zahlungsträgerhinweis]),''))) + ';' +
ISNULL(CONVERT(VARCHAR(max),LTRIM(RTRIM([Geschäftsbereich]))),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),CAST([externes Rechnungsdatum] as date), 104),'') + ';' +
LTRIM(RTRIM(ISNULL(CONVERT(VARCHAR(max),[externe Rechnungsnummer]),''))) + ';' +
ISNULL(CONVERT(VARCHAR(max),[Rechnungseinheit]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),CAST([Fälligkeitsdatum] as date), 104),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Skontotage 1]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Skonto Prozent 1]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Skontotage 2]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Skonto Prozent 2]),'') + ';' +
ISNULL(CONVERT(VARCHAR(max),[Nettotage]),'')
FROM [FNCUST_GET-EXPORT_POSTING_DATA_FROM_WINDREAM_FOR_SCHLEUPEN](@JOB_GUID,@EXPORT_BOOKING_NUMBER,@windreamDocID,@windreamStatus,@windreamExportDate)
ORDER BY [Satzart] ASC
RETURN;
END
GO

View File

@@ -0,0 +1,521 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET-EXPORT_POSTING_DATA_FROM_WINDREAM_FOR_SCHLEUPEN] Script Date: 21.03.2024 16:22:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stand: MK // 01.09.2021
-- 01.09.2021 Skontotage und Skontoprozent entfernt / auf NULL gesetzt
-- 27.08.2021 Satzart für die Sortierung eingefügt --> Funktion "FNCUST_FORMAT-EXPORT_POSTING_DATA_FROM_WINDREAM_FOR_SCHLEUPEN" ruft dies ab
-- 03.08.2021 [Kontonummer (X)] von int auf varchar umgestellt, da die Nummern auch mit 0 beginnen kann!
-- 11.03.2021 Zeilenumbruch in Buchungstext abgefangen REPLACE(REPLACE([szText02],';',''),CHAR(13) + CHAR(10),'')
-- 10.03.2021 REPLACE(@INVOICE_SPLIT_BUSINESS_UNIT,';','') in die Cursor eingebaut, eigener Cursor für Geschäftsbereich hinzugefügt
-- 25.02.2021 Expliziete Float Konvertierung für "Betrag" eingebaut
-- 17.02.2021 Datumsfelder getauscht
-- 11.02.2021 Fehler im 3. cursor behoben (@INVOICE_SPLIT_COSTUNIT)
-- 11.02.2021 Cursor für neue Rechnungsaufteilungstabelle überarbeitet
-- 11.02.2021 and LEN(INVOICE_SPLIT_AMOUNT)
CREATE FUNCTION [dbo].[FNCUST_GET-EXPORT_POSTING_DATA_FROM_WINDREAM_FOR_SCHLEUPEN] (
@JOB_GUID INT,
@EXPORT_BOOKING_NUMBER BIGINT,
@windreamDocID BIGINT,
@windreamStatus VARCHAR(20), -- Should be: 'erledigt'
@windreamExportDate VARCHAR(8) -- Should be: NULL
)
RETURNS @WINDREAM_2_SCHLEUPEN TABLE ([Satzart] [BIGINT] NULL,
[Belegnummer (X)] [BIGINT] NULL,
[Belegdatum (X)] [DATE] NULL,
[Valutadatum] [DATE] NULL,
[Kontoart (X)] [VARCHAR](20) NULL,
[Kontonummer (X)] [VARCHAR](20) NULL,
[Gegenkontoart (X)] [VARCHAR](20) NULL,
[Gegenkonto] [INT] NULL,
[Zusatzkontoart] [VARCHAR](20) NULL,
[Zusatzkonto] [INT] NULL,
[Betrag] [float] NULL, --Ursp. [VARCHAR](20) NULL
[S/H-Kennzeichen] [VARCHAR](20) NULL,
[Steuerschlüssel] [VARCHAR](20) NULL,
[Buchungstext] [VARCHAR](max) NULL,
[Zahlungsträgerhinweis] [VARCHAR](max) NULL,
[Geschäftsbereich] [VARCHAR](20) NULL,
[externes Rechnungsdatum] [DATE] NULL,
[externe Rechnungsnummer] [VARCHAR](50) NULL,
[Rechnungseinheit] [INT] NULL,
[Fälligkeitsdatum] [DATE] NULL,
[Skontotage 1] [INT] NULL,
[Skonto Prozent 1] [INT] NULL,
[Skontotage 2] [INT] NULL,
[Skonto Prozent 2] [INT] NULL,
[Nettotage] [INT] NULL)
AS
BEGIN
DECLARE @JOB_NAME VARCHAR(50),
@MANDATOR VARCHAR(50),
@EXPORT_TYPE VARCHAR(50),
@windreamVectorID1 INT, -- Vektor ID für Rechnungsaufteilungtabelle (Sachkonto, etc...)
@windreamVectorID2 INT, -- Vektor ID für S/H-Kennzeichen
@windreamVectorSeparator VARCHAR(1), -- Trennzeichen für Daten im Vektorfeld. Default: "~"
@IncomeExpensesFlag VARCHAR(1), -- Variable für S/H Kennzeichen im Kopf
@szValue VARCHAR(max), -- Variable für den gesamten Zeileninhalt aus der Vektortabelle
@INVOICE_SPLIT_TASKNR VARCHAR(max), -- Variable für evtl. Auftragsnummern in der Mitte
@INVOICE_SPLIT_COSTUNIT VARCHAR(max), -- Variable für evtl. Kostenstellen in der Mitte
@INVOICE_SPLIT_AMOUNT VARCHAR(max), -- Variable für den Betrag für die Zeile in der Mitte
@INVOICE_SPLIT_TAXKEY VARCHAR(max), -- Variable für Steuerschlüssel in der Mitte
@INVOICE_SPLIT_IMPERSONAL_ACCOUNT VARCHAR(max), -- Variable für das Sachkonto in der Mitte
@INVOICE_SPLIT_BUSINESS_UNIT VARCHAR(max), -- Variable für den Geschäftsbereich in der Mitte
@INVOICE_SPLIT_INCOMEEXPENSESFLAG VARCHAR(1); -- Variable für S/H Kennzeichen in der Mitte
DECLARE @TB_INVOICE_SPLIT as TABLE ([GUID] [INT] IDENTITY(1,1) NOT NULL,
INVOICE_SPLIT_TASKNR [VARCHAR](max) NULL,
INVOICE_SPLIT_COSTUNIT [VARCHAR](max) NULL,
INVOICE_SPLIT_AMOUNT [VARCHAR](max) NULL,
INVOICE_SPLIT_TAXKEY [VARCHAR](max) NULL,
INVOICE_SPLIT_IMPERSONAL_ACCOUNT [VARCHAR](max) NULL,
INVOICE_SPLIT_BUSINESS_UNIT [VARCHAR](max) NULL,
INVOICE_SPLIT_INCOMEEXPENSESFLAG [VARCHAR](1) NULL)
--===============================================-- Get Job infos --===============================================--
SELECT @JOB_NAME = [JOB_NAME],
@MANDATOR = [MANDANTOR],
@EXPORT_TYPE = [EXPORT_TYPE]
FROM [TBCUST_EXPORT_POSTING_DATA_JOB_CONFIG]
WHERE [GUID] = @JOB_GUID
--===============================================-- Get File config infos --===============================================--
SELECT @windreamVectorSeparator = [WD_VECTOR_VALUE_SEPERATOR],
@windreamVectorID1 = [WD_VECTOR_ID1],
@windreamVectorID2 = [WD_VECTOR_ID2]
FROM [TBCUST_EXPORT_POSTING_DATA_FILE_CONFIG]
WHERE [JOB_GUID] = @JOB_GUID
--===============================================-- Get BOOKING_NUMBER --===============================================--
IF (@EXPORT_BOOKING_NUMBER > 1) and (@EXPORT_BOOKING_NUMBER is not null)
SET @EXPORT_BOOKING_NUMBER = convert(VARCHAR(100),@EXPORT_BOOKING_NUMBER);
Else
BEGIN
SET @EXPORT_BOOKING_NUMBER = (SELECT [dwDocID] FROM [windream60].[dbo].[BaseAttributes]
WHERE [dwDocID] = @windreamDocID
and [szText33] = @windreamStatus
and (([dwDate04] = @windreamExportDate)
OR ([dwDate04] = '19700101')
OR ([dwDate04] IS NULL)))
END;
--===============================================-- Get IncomeExpensesFlag for doc; NOT Pos! --===============================================--
SELECT TOP 1 @IncomeExpensesFlag = [szValue] -- S/H Kennzeichen
FROM [windream60].[dbo].[Vector]
WHERE szValue IS NOT NULL
and dwDocID = @windreamDocID
and dwAttrID = @windreamVectorID2
-- Failsafe for "S/H Kennzeichen" - Head
IF (@IncomeExpensesFlag NOT in ('H','S'))
SET @IncomeExpensesFlag = 'H';
--===============================================-- Get data for doc HEAD --===============================================--
INSERT INTO @WINDREAM_2_SCHLEUPEN ([Satzart],
[Belegnummer (X)],
[Belegdatum (X)],
[Valutadatum],
[Kontoart (X)],
[Kontonummer (X)],
[Gegenkontoart (X)],
[Gegenkonto],
[Zusatzkontoart],
[Zusatzkonto],
[Betrag],
[S/H-Kennzeichen],
[Steuerschlüssel],
[Buchungstext],
[Zahlungsträgerhinweis],
[Geschäftsbereich],
[externes Rechnungsdatum],
[externe Rechnungsnummer],
[Rechnungseinheit],
[Fälligkeitsdatum],
[Skontotage 1],
[Skonto Prozent 1],
[Skontotage 2],
[Skonto Prozent 2],
[Nettotage])
SELECT 10 as [Satzart],
@EXPORT_BOOKING_NUMBER as [Belegnummer (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate09],8)),104),'dd.MM.yyyy') as [Belegdatum (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate07],8)),104),'dd.MM.yyyy') as [Valutadatum],
'K' as [Kontoart (X)],
REPLACE(REPLACE([szText38],';',''),' ','') as [Kontonummer (X)],
NULL as [Gegenkontoart (X)],
NULL as [Gegenkonto],
NULL as [Zusatzkontoart],
NULL as [Zusatzkonto],
TRY_CONVERT(float,[lfFloat12]) as [Betrag],--TRY_CONVERT(float,[lfFloat12]) TRY_CONVERT(float,[lfFloat12])
@IncomeExpensesFlag as [S/H-Kennzeichen],
'' as [Steuerschlüssel],
REPLACE(REPLACE([szText02],';',''),CHAR(13) + CHAR(10),'') as [Buchungstext],
NULL as [Zahlungsträgerhinweis],
NULL as [Geschäftsbereich],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([decCreationTime],8)),104),'dd.MM.yyyy') as [externes Rechnungsdatum],
REPLACE([szText19],';','') as [externe Rechnungsnummer],
NULL as [Rechnungseinheit],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate06],8)),104),'dd.MM.yyyy') as [Fälligkeitsdatum],
NULL as [Skontotage 1], -- ursp. [dwInteger23]
NULL as [Skonto Prozent 1], -- ursp. [lfFloat09]
NULL as [Skontotage 2],
NULL as [Skonto Prozent 2],
[dwInteger22] as [Nettotage]
FROM [windream60].[dbo].[BaseAttributes]
WHERE [dwDocID] = @windreamDocID
and [szText33] = @windreamStatus
and (([dwDate04] = @windreamExportDate)
OR ([dwDate04] = '19700101')
OR ([dwDate04] IS NULL))
--===============================================-- Get data for doc POS --===============================================--
DECLARE CURSOR_INVOICE_SPLIT CURSOR
FOR
SELECT [szValue] -- Vektor Tabelle für Rechnungsaufteilung - bis zu 7 Spalten
FROM [windream60].[dbo].[Vector]
WHERE szValue IS NOT NULL
and dwDocID = @windreamDocID
and dwAttrID = @windreamVectorID1
OPEN CURSOR_INVOICE_SPLIT
FETCH NEXT FROM CURSOR_INVOICE_SPLIT INTO @szValue
WHILE @@FETCH_STATUS = 0
BEGIN
-- Replace ";" everytime - otherwise if ";" appears, it will corrupt the export file
INSERT INTO @TB_INVOICE_SPLIT (INVOICE_SPLIT_TASKNR,INVOICE_SPLIT_COSTUNIT,INVOICE_SPLIT_AMOUNT,INVOICE_SPLIT_TAXKEY,INVOICE_SPLIT_IMPERSONAL_ACCOUNT,INVOICE_SPLIT_BUSINESS_UNIT,INVOICE_SPLIT_INCOMEEXPENSESFLAG)
VALUES (
REPLACE((SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @windreamVectorSeparator) where GUID = 1),';',''),
REPLACE((SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @windreamVectorSeparator) where GUID = 2),';',''),
REPLACE((SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @windreamVectorSeparator) where GUID = 3),';',''),
REPLACE((SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @windreamVectorSeparator) where GUID = 4),';',''),
REPLACE((SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @windreamVectorSeparator) where GUID = 5),';',''),
REPLACE((SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @windreamVectorSeparator) where GUID = 6),';',''),
REPLACE((SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @windreamVectorSeparator) where GUID = 7),';','')
)
FETCH NEXT FROM CURSOR_INVOICE_SPLIT INTO @szValue
END
CLOSE CURSOR_INVOICE_SPLIT
DEALLOCATE CURSOR_INVOICE_SPLIT
---------------------------------------------------------
-- For each order number (auftragsnummern) in windream db
---------------------------------------------------------
DECLARE CURSOR_ORDERNR_AND_AMOUNT CURSOR
FOR
-- Get lines where "Auftragsnummer" is set,
-- ignore if costunit ist set
SELECT [INVOICE_SPLIT_TASKNR],
[INVOICE_SPLIT_COSTUNIT],
[INVOICE_SPLIT_AMOUNT],
[INVOICE_SPLIT_TAXKEY],
[INVOICE_SPLIT_IMPERSONAL_ACCOUNT],
[INVOICE_SPLIT_BUSINESS_UNIT],
[INVOICE_SPLIT_INCOMEEXPENSESFLAG]
FROM @TB_INVOICE_SPLIT
where LEN([INVOICE_SPLIT_TASKNR]) > 1
-- and LEN(INVOICE_SPLIT_AMOUNT) > 0 -- Betrag kann auch '' sein
OPEN CURSOR_ORDERNR_AND_AMOUNT
FETCH NEXT FROM CURSOR_ORDERNR_AND_AMOUNT INTO @INVOICE_SPLIT_TASKNR,@INVOICE_SPLIT_COSTUNIT,@INVOICE_SPLIT_AMOUNT,@INVOICE_SPLIT_TAXKEY,@INVOICE_SPLIT_IMPERSONAL_ACCOUNT,@INVOICE_SPLIT_BUSINESS_UNIT,@INVOICE_SPLIT_INCOMEEXPENSESFLAG
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN
-- Failsafe for "S/H Kennzeichen" - Pos
IF (@INVOICE_SPLIT_INCOMEEXPENSESFLAG NOT in ('H','S'))
SET @INVOICE_SPLIT_INCOMEEXPENSESFLAG = 'S';
INSERT INTO @WINDREAM_2_SCHLEUPEN ([Satzart],
[Belegnummer (X)],
[Belegdatum (X)],
[Valutadatum],
[Kontoart (X)],
[Kontonummer (X)],
[Gegenkontoart (X)],
[Gegenkonto],
[Zusatzkontoart],
[Zusatzkonto],
[Betrag],
[S/H-Kennzeichen],
[Steuerschlüssel],
[Buchungstext],
[Zahlungsträgerhinweis],
[Geschäftsbereich],
[externes Rechnungsdatum],
[externe Rechnungsnummer],
[Rechnungseinheit],
[Fälligkeitsdatum],
[Skontotage 1],
[Skonto Prozent 1],
[Skontotage 2],
[Skonto Prozent 2],
[Nettotage])
SELECT 21 as [Satzart],
@EXPORT_BOOKING_NUMBER as [Belegnummer (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate09],8)),104),'dd.MM.yyyy') as [Belegdatum (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate07],8)),104),'dd.MM.yyyy') as [Valutadatum],
'S' as [Kontoart (X)],
REPLACE(@INVOICE_SPLIT_IMPERSONAL_ACCOUNT,' ','') as [Kontonummer (X)],
'K' as [Gegenkontoart (X)],
REPLACE([szText38],';','') as [Gegenkonto],
'AA' as [Zusatzkontoart],
@INVOICE_SPLIT_TASKNR as [Zusatzkonto],
TRY_CONVERT(FLOAT,(Replace(@INVOICE_SPLIT_AMOUNT,',','.'))) * 1.0 as [Betrag],--TRY_CONVERT(FLOAT,@INVOICE_SPLIT_AMOUNT) * 1.0
@INVOICE_SPLIT_INCOMEEXPENSESFLAG as [S/H-Kennzeichen],
@INVOICE_SPLIT_TAXKEY as [Steuerschlüssel],
REPLACE(REPLACE([szText02],';',''),CHAR(13) + CHAR(10),'') as [Buchungstext],
NULL as [Zahlungsträgerhinweis],
REPLACE(@INVOICE_SPLIT_BUSINESS_UNIT,';','') as [Geschäftsbereich],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([decCreationTime],8)),104),'dd.MM.yyyy') as [externes Rechnungsdatum],
REPLACE([szText19],';','') as [externe Rechnungsnummer],
NULL as [Rechnungseinheit],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate06],8)),104),'dd.MM.yyyy') as [Fälligkeitsdatum],
NULL as [Skontotage 1],
NULL as [Skonto Prozent 1],
NULL as [Skontotage 2],
NULL as [Skonto Prozent 2],
NULL as [Nettotage]
FROM [windream60].[dbo].[BaseAttributes]
WHERE [dwDocID] = @windreamDocID
and [szText33] = @windreamStatus
and (([dwDate04] = @windreamExportDate)
OR ([dwDate04] = '19700101')
OR ([dwDate04] IS NULL))
END
FETCH NEXT FROM CURSOR_ORDERNR_AND_AMOUNT INTO @INVOICE_SPLIT_TASKNR,@INVOICE_SPLIT_COSTUNIT,@INVOICE_SPLIT_AMOUNT,@INVOICE_SPLIT_TAXKEY,@INVOICE_SPLIT_IMPERSONAL_ACCOUNT,@INVOICE_SPLIT_BUSINESS_UNIT,@INVOICE_SPLIT_INCOMEEXPENSESFLAG
END
CLOSE CURSOR_ORDERNR_AND_AMOUNT
DEALLOCATE CURSOR_ORDERNR_AND_AMOUNT
----------------------------------------------------
----------------------------------------------------
-- For each cost unit (kostenstellen) in windream db
----------------------------------------------------
DECLARE CURSOR_COSTUNIT_AND_AMOUNT CURSOR
FOR
-- Get lines where "Kostenstelle" is set,
-- but only if "Auftragsnummer" is unset,
-- because Auftragsnummer has prio!
SELECT [INVOICE_SPLIT_TASKNR],
[INVOICE_SPLIT_COSTUNIT],
[INVOICE_SPLIT_AMOUNT],
[INVOICE_SPLIT_TAXKEY],
[INVOICE_SPLIT_IMPERSONAL_ACCOUNT],
[INVOICE_SPLIT_BUSINESS_UNIT],
[INVOICE_SPLIT_INCOMEEXPENSESFLAG]
FROM @TB_INVOICE_SPLIT
WHERE LEN(INVOICE_SPLIT_COSTUNIT) > 1
and LEN(INVOICE_SPLIT_COSTUNIT) > 0
and (LEN([INVOICE_SPLIT_TASKNR]) = 0
or [INVOICE_SPLIT_TASKNR] is null)
OPEN CURSOR_COSTUNIT_AND_AMOUNT
FETCH NEXT FROM CURSOR_COSTUNIT_AND_AMOUNT INTO @INVOICE_SPLIT_TASKNR,@INVOICE_SPLIT_COSTUNIT,@INVOICE_SPLIT_AMOUNT,@INVOICE_SPLIT_TAXKEY,@INVOICE_SPLIT_IMPERSONAL_ACCOUNT,@INVOICE_SPLIT_BUSINESS_UNIT,@INVOICE_SPLIT_INCOMEEXPENSESFLAG
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN
-- Failsafe for "S/H Kennzeichen" - Pos
IF (@INVOICE_SPLIT_INCOMEEXPENSESFLAG NOT in ('H','S'))
SET @INVOICE_SPLIT_INCOMEEXPENSESFLAG = 'S';
INSERT INTO @WINDREAM_2_SCHLEUPEN ([Satzart],
[Belegnummer (X)],
[Belegdatum (X)],
[Valutadatum],
[Kontoart (X)],
[Kontonummer (X)],
[Gegenkontoart (X)],
[Gegenkonto],
[Zusatzkontoart],
[Zusatzkonto],
[Betrag],
[S/H-Kennzeichen],
[Steuerschlüssel],
[Buchungstext],
[Zahlungsträgerhinweis],
[Geschäftsbereich],
[externes Rechnungsdatum],
[externe Rechnungsnummer],
[Rechnungseinheit],
[Fälligkeitsdatum],
[Skontotage 1],
[Skonto Prozent 1],
[Skontotage 2],
[Skonto Prozent 2],
[Nettotage])
SELECT 22 as [Satzart],
@EXPORT_BOOKING_NUMBER as [Belegnummer (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate09],8)),104),'dd.MM.yyyy') as [Belegdatum (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate07],8)),104),'dd.MM.yyyy') as [Valutadatum],
'S' as [Kontoart (X)],
REPLACE(@INVOICE_SPLIT_IMPERSONAL_ACCOUNT,' ','') as [Kontonummer (X)],
'K' as [Gegenkontoart (X)],
REPLACE([szText38],';','') as [Gegenkonto],
'KS' as [Zusatzkontoart],
@INVOICE_SPLIT_COSTUNIT as [Zusatzkonto],
TRY_CONVERT(FLOAT,(Replace(@INVOICE_SPLIT_AMOUNT,',','.'))) * 1.0 as [Betrag],--TRY_CONVERT(FLOAT,@INVOICE_SPLIT_AMOUNT) * 1.0
@INVOICE_SPLIT_INCOMEEXPENSESFLAG as [S/H-Kennzeichen],
@INVOICE_SPLIT_TAXKEY as [Steuerschlüssel],
REPLACE(REPLACE([szText02],';',''),CHAR(13) + CHAR(10),'') as [Buchungstext],
NULL as [Zahlungsträgerhinweis],
REPLACE(@INVOICE_SPLIT_BUSINESS_UNIT,';','') as [Geschäftsbereich],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([decCreationTime],8)),104),'dd.MM.yyyy') as [externes Rechnungsdatum],
REPLACE([szText19],';','') as [externe Rechnungsnummer],
NULL as [Rechnungseinheit],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate06],8)),104),'dd.MM.yyyy') as [Fälligkeitsdatum],
NULL as [Skontotage 1],
NULL as [Skonto Prozent 1],
NULL as [Skontotage 2],
NULL as [Skonto Prozent 2],
NULL as [Nettotage]
FROM [windream60].[dbo].[BaseAttributes]
WHERE [dwDocID] = @windreamDocID
and [szText33] = @windreamStatus
and (([dwDate04] = @windreamExportDate)
OR ([dwDate04] = '19700101')
OR ([dwDate04] IS NULL))
END
FETCH NEXT FROM CURSOR_COSTUNIT_AND_AMOUNT INTO @INVOICE_SPLIT_TASKNR,@INVOICE_SPLIT_COSTUNIT,@INVOICE_SPLIT_AMOUNT,@INVOICE_SPLIT_TAXKEY,@INVOICE_SPLIT_IMPERSONAL_ACCOUNT,@INVOICE_SPLIT_BUSINESS_UNIT,@INVOICE_SPLIT_INCOMEEXPENSESFLAG
END
CLOSE CURSOR_COSTUNIT_AND_AMOUNT
DEALLOCATE CURSOR_COSTUNIT_AND_AMOUNT
---------------------------------------------------------
----------------------------------------------------
-- For each business unit (Geschäftsbereich) in windream db
----------------------------------------------------
DECLARE CURSOR_COSTUNIT_AND_AMOUNT CURSOR
FOR
-- Get lines where "Geschäftsbereich" is set,
-- but only if "Auftragsnummer" and "Kostenstelle" is unset,
-- because Auftragsnummer has prio 1, Kostenstelle has prio 2
SELECT [INVOICE_SPLIT_TASKNR],
[INVOICE_SPLIT_COSTUNIT],
[INVOICE_SPLIT_AMOUNT],
[INVOICE_SPLIT_TAXKEY],
[INVOICE_SPLIT_IMPERSONAL_ACCOUNT],
[INVOICE_SPLIT_BUSINESS_UNIT],
[INVOICE_SPLIT_INCOMEEXPENSESFLAG]
FROM @TB_INVOICE_SPLIT
WHERE (LEN(INVOICE_SPLIT_COSTUNIT) = 0
or [INVOICE_SPLIT_COSTUNIT] is null)
and (LEN([INVOICE_SPLIT_TASKNR]) = 0
or [INVOICE_SPLIT_TASKNR] is null)
OPEN CURSOR_COSTUNIT_AND_AMOUNT
FETCH NEXT FROM CURSOR_COSTUNIT_AND_AMOUNT INTO @INVOICE_SPLIT_TASKNR,@INVOICE_SPLIT_COSTUNIT,@INVOICE_SPLIT_AMOUNT,@INVOICE_SPLIT_TAXKEY,@INVOICE_SPLIT_IMPERSONAL_ACCOUNT,@INVOICE_SPLIT_BUSINESS_UNIT,@INVOICE_SPLIT_INCOMEEXPENSESFLAG
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN
-- Failsafe for "S/H Kennzeichen" - Pos
IF (@INVOICE_SPLIT_INCOMEEXPENSESFLAG NOT in ('H','S'))
SET @INVOICE_SPLIT_INCOMEEXPENSESFLAG = 'S';
INSERT INTO @WINDREAM_2_SCHLEUPEN ([Satzart],
[Belegnummer (X)],
[Belegdatum (X)],
[Valutadatum],
[Kontoart (X)],
[Kontonummer (X)],
[Gegenkontoart (X)],
[Gegenkonto],
[Zusatzkontoart],
[Zusatzkonto],
[Betrag],
[S/H-Kennzeichen],
[Steuerschlüssel],
[Buchungstext],
[Zahlungsträgerhinweis],
[Geschäftsbereich],
[externes Rechnungsdatum],
[externe Rechnungsnummer],
[Rechnungseinheit],
[Fälligkeitsdatum],
[Skontotage 1],
[Skonto Prozent 1],
[Skontotage 2],
[Skonto Prozent 2],
[Nettotage])
SELECT 23 as [Satzart],
@EXPORT_BOOKING_NUMBER as [Belegnummer (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate09],8)),104),'dd.MM.yyyy') as [Belegdatum (X)],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate07],8)),104),'dd.MM.yyyy') as [Valutadatum],
'S' as [Kontoart (X)],
@INVOICE_SPLIT_IMPERSONAL_ACCOUNT as [Kontonummer (X)],
'K' as [Gegenkontoart (X)],
REPLACE([szText38],';','') as [Gegenkonto],
NULL as [Zusatzkontoart],
NULL as [Zusatzkonto],
TRY_CONVERT(FLOAT,(Replace(@INVOICE_SPLIT_AMOUNT,',','.'))) * 1.0 as [Betrag],--TRY_CONVERT(FLOAT,@INVOICE_SPLIT_AMOUNT) * 1.0
@INVOICE_SPLIT_INCOMEEXPENSESFLAG as [S/H-Kennzeichen],
@INVOICE_SPLIT_TAXKEY as [Steuerschlüssel],
REPLACE([szText02],';','') as [Buchungstext],
NULL as [Zahlungsträgerhinweis],
REPLACE(@INVOICE_SPLIT_BUSINESS_UNIT,';','') as [Geschäftsbereich],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([decCreationTime],8)),104),'dd.MM.yyyy') as [externes Rechnungsdatum],
REPLACE([szText19],';','') as [externe Rechnungsnummer],
NULL as [Rechnungseinheit],
FORMAT(CONVERT(DATE,CONVERT(VARCHAR(8),LEFT([dwDate06],8)),104),'dd.MM.yyyy') as [Fälligkeitsdatum],
NULL as [Skontotage 1],
NULL as [Skonto Prozent 1],
NULL as [Skontotage 2],
NULL as [Skonto Prozent 2],
NULL as [Nettotage]
FROM [windream60].[dbo].[BaseAttributes]
WHERE [dwDocID] = @windreamDocID
and [szText33] = @windreamStatus
and (([dwDate04] = @windreamExportDate)
OR ([dwDate04] = '19700101')
OR ([dwDate04] IS NULL))
END
FETCH NEXT FROM CURSOR_COSTUNIT_AND_AMOUNT INTO @INVOICE_SPLIT_TASKNR,@INVOICE_SPLIT_COSTUNIT,@INVOICE_SPLIT_AMOUNT,@INVOICE_SPLIT_TAXKEY,@INVOICE_SPLIT_IMPERSONAL_ACCOUNT,@INVOICE_SPLIT_BUSINESS_UNIT,@INVOICE_SPLIT_INCOMEEXPENSESFLAG
END
CLOSE CURSOR_COSTUNIT_AND_AMOUNT
DEALLOCATE CURSOR_COSTUNIT_AND_AMOUNT
---------------------------------------------------------
RETURN;
END
GO

View File

@@ -0,0 +1,31 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_GROUP_GROUPNAME_LIST] Script Date: 21.03.2024 16:07:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- MK // 29.01.2021
-- Funktion sollte erweitert werden um die Mandanten Abfrage
CREATE FUNCTION [dbo].[FNCUST_GET_GROUP_GROUPNAME_LIST] (
@Mandant VARCHAR(8) -- Default VHM
)
RETURNS TABLE
AS
RETURN
SELECT TOP 10000 [NAME] as 'Gruppenname'--, *
FROM [DD_ECM].[dbo].[TBDD_GROUPS]
where internal != 1
and [NAME] not like 'VHM-Netz-%'
and [NAME] not like 'VHM-Vertrieb-%'
ORDER BY [NAME] ASC
GO

View File

@@ -0,0 +1,46 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_PM_MONITORING_HISTORY_GRID1] Script Date: 21.03.2024 16:08:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- TSQL Table function for PM Monitoring - Gird 1
-- Stand: MK // 01.02.2022
-- 01.02.2022 Initial
CREATE FUNCTION [dbo].[FNCUST_GET_PM_MONITORING_HISTORY_GRID1] (
)
RETURNS TABLE
AS
RETURN
SELECT
[dwDocID] as 'DocID',
[szText37] as 'Dokumentart',
CONVERT (date,convert(char(8),[dwDate09])) as 'Beleg-Datum',
[szText38] as 'Lieferanten-Nummer',
[szText08] as 'Lieferanten-Name',
[lfFloat12] as 'Rechnungsbetrag',
[szText19] as 'ex. Rechnungs-Nr',
[szText33] as 'Status',
[szText32] as 'letzte Entscheidung',
CONVERT (date,convert(char(8),[dwDate04])) as 'Export-Datum (Schleupen)',
[dwInteger20] as 'Buchungsnummer',
[DD_ECM].dbo.FNDD_GET_WINDREAM_FILE_PATH ([dwDocID],0) as 'FULL_FILE_PATH'
FROM [windream60].[dbo].[BaseAttributes]
WHERE szText37 like 'Eingangsrechnung%'
or szText37 like 'Eingangsgutschrift%'
--ORDER BY [decCreationTime] DESC
GO

View File

@@ -0,0 +1,104 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_PM_MONITORING_HISTORY_GRID2] Script Date: 21.03.2024 16:09:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- TSQL Table function for PM Monitoring - Gird 2
-- Stand: MK // 20.10.2021
-- 30.01.2021 Initial
CREATE FUNCTION [dbo].[FNCUST_GET_PM_MONITORING_HISTORY_GRID2] (
@windreamDocID BIGINT,
@windreamAttrID INT = 360,
@Seperator VARCHAR(1) = '~'
)
RETURNS @vTB_HISTORY TABLE ([GUID] [INT] IDENTITY(1,1) NOT NULL,
HISTORY_USER [VARCHAR](max) NULL,
HISTORY_STATE [VARCHAR](max) NULL,
HISTORY_DESCRIPTION [VARCHAR](max) NULL,
HISTORY_DATE [DATETIME] NULL,
HISTORY_PROFILE [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @szValue VARCHAR(max)
DECLARE CURSOR_HISTORY CURSOR
FOR
SELECT [szValue]
FROM [windream60].[dbo].[Vector]
WHERE [dwAttrID] = @windreamAttrID
and [dwDocID] = @windreamDocID
order by dwRow ASC
OPEN CURSOR_HISTORY
FETCH NEXT FROM CURSOR_HISTORY INTO @szValue
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @vTB_HISTORY (HISTORY_USER,HISTORY_STATE,HISTORY_DESCRIPTION,HISTORY_DATE,HISTORY_PROFILE)
VALUES (
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 1),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 2),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 3),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 4),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 5)
)
FETCH NEXT FROM CURSOR_HISTORY INTO @szValue
END
CLOSE CURSOR_HISTORY
DEALLOCATE CURSOR_HISTORY
--select * from @vTB_HISTORY
RETURN;
END
--THIS FUNCTION IS NEEDED::
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
--ALTER FUNCTION [dbo].[FNCUST_SPLIT_STRING_WITH_GUID]
--(
-- @Input NVARCHAR(MAX),
-- @Character CHAR(1)
--)
--RETURNS @Output TABLE (GUID INTEGER IDENTITY(1,1),
-- Item NVARCHAR(1000)
--)
--AS
--BEGIN
-- DECLARE @StartIndex INT, @EndIndex INT
-- SET @StartIndex = 1
-- IF SUBSTRING(@Input, LEN(@Input) - 1, LEN(@Input)) <> @Character
-- BEGIN
-- SET @Input = @Input + @Character
-- END
-- WHILE CHARINDEX(@Character, @Input) > 0
-- BEGIN
-- SET @EndIndex = CHARINDEX(@Character, @Input)
-- INSERT INTO @Output(Item)
-- SELECT SUBSTRING(@Input, @StartIndex, @EndIndex - 1)
-- SET @Input = SUBSTRING(@Input, @EndIndex + 1, LEN(@Input))
-- END
-- RETURN
--END
GO

View File

@@ -0,0 +1,108 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_PM_MONITORING_HISTORY_GRID3] Script Date: 21.03.2024 16:09:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- TSQL Table function for PM Monitoring - Gird 3
-- Stand: MK // 20.10.2021
-- 20.10.2021 Initial
CREATE FUNCTION [dbo].[FNCUST_GET_PM_MONITORING_HISTORY_GRID3] (
@windreamDocID BIGINT,
@windreamAttrID INT = 359,
@Seperator VARCHAR(1) = '~'
)
RETURNS @vTB_HISTORY TABLE ([GUID] [INT] IDENTITY(1,1) NOT NULL,
ORDER_NR [VARCHAR](max) NULL, -- Auftragsnummer
COST_UNIT [VARCHAR](max) NULL, -- Kostenstelle
AMOUNT [VARCHAR](max) NULL, -- Betrag
TAX_KEY [VARCHAR](max) NULL, -- Steuerschlüssel
IMPERSONAL_ACCOUNT [VARCHAR](max) NULL, -- Sachkonto
BUSINESS_UNIT [VARCHAR](max) NULL, -- Geschäftsbereich
DEBIT_AND_CREDIT [VARCHAR](max) NULL) -- Soll/Haben Kennzeichen
AS
BEGIN
DECLARE @szValue VARCHAR(max)
DECLARE CURSOR_HISTORY CURSOR
FOR
SELECT [szValue]
FROM [windream60].[dbo].[Vector]
WHERE [dwAttrID] = @windreamAttrID
and [dwDocID] = @windreamDocID
order by dwRow ASC
OPEN CURSOR_HISTORY
FETCH NEXT FROM CURSOR_HISTORY INTO @szValue
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @vTB_HISTORY (ORDER_NR,COST_UNIT,AMOUNT,TAX_KEY,IMPERSONAL_ACCOUNT,BUSINESS_UNIT,DEBIT_AND_CREDIT)
VALUES (
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 1),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 2),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 3),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 4),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 5),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 6),
(SELECT [Item] FROM FNCUST_SPLIT_STRING_WITH_GUID (@szValue, @Seperator) where GUID = 7)
)
FETCH NEXT FROM CURSOR_HISTORY INTO @szValue
END
CLOSE CURSOR_HISTORY
DEALLOCATE CURSOR_HISTORY
--select * from @vTB_HISTORY
RETURN;
END
--THIS FUNCTION IS NEEDED::
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
--ALTER FUNCTION [dbo].[FNCUST_SPLIT_STRING_WITH_GUID]
--(
-- @Input NVARCHAR(MAX),
-- @Character CHAR(1)
--)
--RETURNS @Output TABLE (GUID INTEGER IDENTITY(1,1),
-- Item NVARCHAR(1000)
--)
--AS
--BEGIN
-- DECLARE @StartIndex INT, @EndIndex INT
-- SET @StartIndex = 1
-- IF SUBSTRING(@Input, LEN(@Input) - 1, LEN(@Input)) <> @Character
-- BEGIN
-- SET @Input = @Input + @Character
-- END
-- WHILE CHARINDEX(@Character, @Input) > 0
-- BEGIN
-- SET @EndIndex = CHARINDEX(@Character, @Input)
-- INSERT INTO @Output(Item)
-- SELECT SUBSTRING(@Input, @StartIndex, @EndIndex - 1)
-- SET @Input = SUBSTRING(@Input, @EndIndex + 1, LEN(@Input))
-- END
-- RETURN
--END
GO

View File

@@ -0,0 +1,82 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_PM_OVERVIEW] Script Date: 21.03.2024 16:10:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stand: MK // 01.02.2022
-- 01.02.2022 Beleg-Datum hinzugefügt
-- 24.09.2021 Auskommentierten Code entfernt; Funktion FNPM_LAST_EDITED_DOC aus [Zuletzt Bearbeitet] und TL_STATE entfernt
-- 08.03.2021 "Fällig am" hinzugefügt
-- 03.03.2021 Prüfer eingebaut
-- 17.02.2021 Float 12 (Rechnungssumme) hinzugefügt
CREATE FUNCTION [dbo].[FNCUST_GET_PM_OVERVIEW] (
@USER_ID BIGINT
)
RETURNS TABLE
AS
RETURN (
SELECT
T.GUID,
--FORMAT(CONVERT(date, convert(varchar(8),[TWM_BA].[dwCreationDate]), 120), N'dd.MM.yyyy') as 'date1',
--FORMAT(CONVERT(date, convert(varchar(80),GetDate()), 120), N'dd.MM.yyyy') as 'date1a',
--FORMAT(CAST(GetDate() AS datetime2), N'dd.MM.yyyy') as 'date2',
DATEDIFF(DAY, FORMAT(CONVERT(date, convert(varchar(8),[TWM_BA].[dwChangeDate]), 120), N'dd.MM.yyyy'),FORMAT(CAST(GetDate() AS datetime2), N'dd.MM.yyyy')) AS [Zuletzt Bearbeitet],
--DATEDIFF(DAY, FORMAT(CONVERT(date, convert(varchar(8),[TWM_BA].[dwCreationDate]), 120), N'dd.MM.yyyy'),FORMAT(CONVERT(date, convert(varchar(80),GetDate()), 120), N'dd.MM.yyyy')) as 'datedif2',
Case DATEDIFF(DAY, FORMAT(CONVERT(date, convert(varchar(8),[TWM_BA].[dwChangeDate]), 120), N'dd.MM.yyyy'),FORMAT(CAST(GetDate() AS datetime2), N'dd.MM.yyyy'))
WHEN 0 THEN 3
WHEN 1 THEN 3
WHEN 2 THEN 3
WHEN 3 THEN 2
WHEN 4 THEN 2
WHEN 5 THEN 2
WHEN 6 THEN 2
WHEN 7 THEN 2
ELSE 1 -- Wenn drei tage = gelb | wenn mehr als 7 tage = rot
END AS TL_STATE,
T.PROFIL_ID AS PROFILE_ID,
T.DOC_ID AS DocID,
T.FILE_PATH AS FULL_FILE_PATH,
TWM_BA.szLongName AS Dateiname,
TWM_BA.szText37 AS Dokumentart,
CONVERT (date,convert(char(8),[dwDate09])) AS 'Beleg-Datum',
TWM_BA.lfFloat12 AS 'Rechnungsbetrag',
TWM_BA.szText19 AS 'ex-RechnungsNummer',
TWM_BA.szText38 AS 'Kreditor-Nummer',
TWM_BA.szText08 AS 'Kreditor-Name',
T.DMS_ERSTELLT_DATE AS 'Erhalten wann',
TWM_BA.szText22 AS 'Prüfer',
[dbo].[FNPM_LAST_WORKUSER_DOC] (T.PROFIL_ID,T.DOC_ID) AS 'Letzter Bearbeiter',
FORMAT(CONVERT(date, convert(varchar(8),[TWM_BA].[dwChangeDate]), 120), N'dd.MM.yyyy') AS 'Letzte Bearbeitung',
FORMAT(CONVERT(date, convert(varchar(8),[TWM_BA].[dwDate06]), 120), N'dd.MM.yyyy') AS 'Fällig am',
[dbo].[FNPM_PROFILE_GROUP_COLOR] (T.PROFIL_ID) AS 'GROUP_COLOR',
[dbo].[FNPM_PROFILE_GROUP_TEXT] (T.PROFIL_ID) AS 'GROUP_TEXT'
,0 CONV_YN
FROM
[FNPM_CUST_GET_DOC_IDS] (@USER_ID) TDOC
INNER JOIN TBPM_PROFILE_FILES T ON TDOC.DOC_GUID = T.GUID
INNER JOIN TBPM_PROFILE T1 ON T.PROFIL_ID = T1.GUID
INNER JOIN windream60.dbo.BaseAttributes TWM_BA ON T.DOC_ID = TWM_BA.dwDocID
AND T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1
--ORDER By T1.PRIORITY
-- SELECT * FROM [dbo].[FNPM_GET_ACTIVE_PROFILES_USER] (20)
-- SELECT * FROM [dbo].[FNPM_CUST_GET_DOC_IDS] (2)
-- Aufruf aus ProcessManager:
-- Stand: MK // 28.01.2021
-- SELECT * FROM [FNCUST_GET_PM_OVERVIEW]({#USER#USER_ID})
-- ORDER BY [Zuletzt Bearbeitet] DESC
);
GO

View File

@@ -0,0 +1,37 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_SCHLEUPEN_BUSINESSUNIT_LIST] Script Date: 21.03.2024 16:10:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- MK // 19.01.2021
CREATE FUNCTION [dbo].[FNCUST_GET_SCHLEUPEN_BUSINESSUNIT_LIST] (
@Mandant VARCHAR(8) -- Default VHM
)
RETURNS TABLE
AS
RETURN
SELECT TOP 100000 [cagsbcid_m] as 'Geschäftsbereich-ID',
[cagsbbez_l] as 'Geschäftsbereich'
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[CAGeschBereich]
WHERE [camndcid_l] = @Mandant
ORDER BY [cagsbcid_m] ASC
-- cagsb_id = ID des Geschäftsbereich (cageschbereich)
-- cagsbcid_m = Kürzel Geschäftsbereich
-- canngcid_s = Netznutzungsbereich
-- ezsben_id = FK: Erstanleger
GO

View File

@@ -0,0 +1,35 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_SCHLEUPEN_COSTUNIT_LIST] Script Date: 21.03.2024 16:11:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- MK // 19.01.2021
-- ToDo Abfrage gegen den Mandant
CREATE FUNCTION [dbo].[FNCUST_GET_SCHLEUPEN_COSTUNIT_LIST] (
@Mandant VARCHAR(8) -- Default VHM
)
RETURNS TABLE
AS
RETURN
SELECT TOP 10000 RTRIM(LTRIM([rwkonto].[rwktonummer])) as 'Kostenstelle'
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[rwkonto],
[VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[rwkostenstelle]
WHERE [rwkostenstelle].[camndcid_l] like @Mandant
and [rwkonto].[rwkto_id] = [rwkostenstelle].[rwkto_id]
ORDER BY [rwktonummer] ASC
GO

View File

@@ -0,0 +1,36 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_SCHLEUPEN_IMPERSONALACCOUNT_LIST] Script Date: 21.03.2024 16:11:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- MK // 19.01.2021
CREATE FUNCTION [dbo].[FNCUST_GET_SCHLEUPEN_IMPERSONALACCOUNT_LIST] (
@Mandant VARCHAR(8) -- Default VHM
)
RETURNS TABLE
AS
RETURN
SELECT [RWKonto].[rwktonummer] as 'Sachkonto',
[RWKonto].[rwktobez_l] as 'Kontenbezeichnung',
[RWKategorie].[rwkkgbez_m] as 'Kontenart'
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[RWKonto],
[VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[rwsachkonto],
[VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[RWKategorie]
WHERE [rwsachkonto].[rwkto_id] = [RWKonto].[rwkto_id]
and [rwsachkonto].[rwkkgcid_l] = [RWKategorie].[rwkkgcid_l]
and [rwsachkonto].[camndcid_l] = @Mandant
and [RWKonto].[camndcid_l] = @Mandant
GO

View File

@@ -0,0 +1,76 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_SCHLEUPEN_ORDER_DATA] Script Date: 21.03.2024 16:12:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- MK // 26.01.2021
CREATE FUNCTION [dbo].[FNCUST_GET_SCHLEUPEN_ORDER_DATA] (
@Mandant VARCHAR(25), -- Default VHM
@BestellNr VARCHAR(200))
RETURNS @ORDER_DATA TABLE (BestellNrGUID [BIGINT] NOT NULL,
BestellNr [FLOAT] NULL,
SkontoProzent [FLOAT] NULL,
SkontoTage [FLOAT] NULL,
BestellWert [FLOAT] NULL,
BestellWertNetto [FLOAT] NULL,
BestellWertBrutto [FLOAT] NULL)
AS
BEGIN
DECLARE @BestellNrGUID bigint;
SET @BestellNrGUID = (SELECT TOP 1 [bebestellkopf].[bebek_id]
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[bebestellkopf]
WHERE [bebestellkopf].[bebeknummer] = RTRIM(LTRIM(@BestellNr))
AND [bebestellkopf].[camndcid_l] = RTRIM(LTRIM(@Mandant)))
IF (@BestellNrGUID > 0) BEGIN
INSERT INTO @ORDER_DATA(BestellNrGUID,BestellNr,SkontoProzent,SkontoTage,BestellWert,BestellWertNetto,BestellWertBrutto)
SELECT
-----------------------------------------------------------------------------------------------------------------
(SELECT @BestellNrGUID) as 'BestellNrGUID',
-----------------------------------------------------------------------------------------------------------------
(SELECT @BestellNr) as 'BestellNr',
-----------------------------------------------------------------------------------------------------------------
(SELECT TOP 1 [bebestellkopfsk].[bebksprozent]
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[bebestellkopfsk]
WHERE [bebestellkopfsk].[bebek_id] = @BestellNrGUID
ORDER BY [bebks_id] desc) as 'SkontoProzent',
-----------------------------------------------------------------------------------------------------------------
(SELECT TOP 1 [bebestellkopfsk].[bebkstage]
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[bebestellkopfsk]
WHERE [bebestellkopfsk].[bebek_id] = @BestellNrGUID
ORDER BY [bebks_id] desc) as 'SkontoTage',
-----------------------------------------------------------------------------------------------------------------
(SELECT TOP 1 [bebestellkopf].[bebekwert_cur2]
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[bebestellkopf]
WHERE [bebestellkopf].[bebeknummer] = @BestellNr) as 'BestellWert',
-----------------------------------------------------------------------------------------------------------------
(SELECT SUM([bebepgpnetto_cur2])
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[bebestellpos]
WHERE [bebestellpos].[bebek_id] = @BestellNrGUID) as 'BestellWertNetto',
-----------------------------------------------------------------------------------------------------------------
(SELECT SUM([bebepgpbrutto_cur2])
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[bebestellpos]
WHERE [bebestellpos].[bebek_id] = @BestellNrGUID) as 'BestellWertBrutto'
-----------------------------------------------------------------------------------------------------------------
END
RETURN;
END
GO

View File

@@ -0,0 +1,67 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_SCHLEUPEN_ORDER_LIST] Script Date: 21.03.2024 16:16:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- MK // 29.01.2021
-- LTRIM RTRIM hinzugefügt
CREATE FUNCTION [dbo].[FNCUST_GET_SCHLEUPEN_ORDER_LIST] (
@VendorAccountNr VARCHAR(25) -- Default VHM
)
RETURNS TABLE
AS
RETURN
SELECT [Bestellnummer], [Bestellstatus], [Bestellwert], [Bestelldatum], [Lieferantenname] FROM
(SELECT '9999999' as 'Bestellnummer'
,'Keine Bestellnummer!' as 'Bestellstatus'
,0 as 'Bestellwert'
,'01.01.1900' as 'Bestelldatum'
,'' as 'Lieferantenname') as Query1
UNION
SELECT TOP 10000 [Bestellnummer], [Bestellstatus], [Bestellwert], [Bestelldatum], [Lieferantenname] FROM
(SELECT TOP 10000
-- convert(int,[bebestellkopf].[bebeknummer]) as 'Bestellnummer'
LTRIM(RTRIM(convert(varchar(50),[bebestellkopf].[bebeknummer]))) as 'Bestellnummer'
,cast (
case
when [bebestellkopf].[bebsscid_s] = 'B'
THEN 'Bestellt'
when [bebestellkopf].[bebsscid_s] = 'T'
THEN 'Teillieferung erfolgt'
when [bebestellkopf].[bebsscid_s] = 'V'
THEN 'Lieferung erfolgt'
ELSE [bebestellkopf].[bebsscid_s]
END as varchar ) as 'Bestellstatus'
,[bebestellkopf].[bebekwert_cur2] as 'Bestellwert'
,[bebestellkopf].[bebektermin_date] as 'Bestelldatum'
,[caperson].[capername] as 'Lieferantenname'
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[bebestellkopf],
[VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[belieferant],
[VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[caperson]
WHERE [bebestellkopf].[belie_id] = [belieferant].[belie_id]
AND [belieferant].[caper_id] = [caperson].[caper_id]
AND [belieferant].[belienummer] = LTRIM(RTRIM(@VendorAccountNr)) --{#CTRL#DGV_Lieferanten-Nummer} --- Test mit 3000015
AND [bebestellkopf].[bebeknummer] is not null
ORDER BY Bestellnummer DESC) as Query2
ORDER BY Bestellnummer DESC
GO

View File

@@ -0,0 +1,37 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_SCHLEUPEN_TASK_LIST] Script Date: 21.03.2024 16:17:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stand: MK // 01.09.2021
-- 01.09.2021 Erweiterung um technisch erledigte Aufträge
-- 04.05.2021 Einschränkung um Aufträge "in Bau"
-- 23.02.2021 Erweiterung um TOP 100000
CREATE FUNCTION [dbo].[FNCUST_GET_SCHLEUPEN_TASK_LIST] (
@Mandant VARCHAR(8) -- Default VHM
)
RETURNS TABLE
AS
RETURN
SELECT TOP 100000 RTRIM([abastnummer]) as 'Auftragsnummer',
RTRIM([abastbez_l]) as 'Auftragsbezeichnung'
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[abauftrag] -- Aus dem Schleupen Bestellwesen
WHERE [camndcid_l] = @Mandant
AND [caaarcid_m] != 'MT' -- MT = Montageauftrag
AND [caastcid_s] in ('B','N') -- E = Kaufmännisch erledigt (nicht anzeigen); B = In Bau (anzeigen); N = Technisch erledigt (anzeigen)
ORDER BY [abastnummer] DESC
GO

View File

@@ -0,0 +1,34 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_SCHLEUPEN_TAXKEY_LIST] Script Date: 21.03.2024 16:17:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- MK // 19.01.2021
-- ToDo Abfrage gegen den Mandant
CREATE FUNCTION [dbo].[FNCUST_GET_SCHLEUPEN_TAXKEY_LIST] (
@Mandant VARCHAR(8) -- Default VHM
)
RETURNS TABLE
AS
RETURN
SELECT TOP 10000 [castscid_l] as [Steuerschlüssel],
[castsbez_m] as [Bezeichnung]
from [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[CASteuerSchluessel]
where [castscid_l] not like '%FAKTMIG%'
and [camndcid_l] = @Mandant
ORDER BY [castscid_l] ASC
GO

View File

@@ -0,0 +1,87 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_SCHLEUPEN_VENDORACCOUNT_LIST] Script Date: 21.03.2024 16:19:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenwertfunktion zu Ausgabe der Kreditoren
-- Stand: MK // 14.02.2022
-- 14.02.2022 Ergänzung USt-IdNr.
-- 24.03.2021 Erweiterung um Skonto1 aus [CAZahlungKondition]
-- 05.02.2021 Erweiterung um Bauabzugssteuer und Wiederverkaufsgültigkeit
-- 04.02.2021 Umstellung auf FiBu Abfrage, da Baurechnungen nicht über BE laufen
CREATE FUNCTION [dbo].[FNCUST_GET_SCHLEUPEN_VENDORACCOUNT_LIST] (
@Mandant VARCHAR(8) -- Default VHM
)
RETURNS TABLE
AS
RETURN
-- Daten aus dem FiBu Modul
SELECT TOP 10000
LTRIM(RTRIM([RWKonto].[rwktonummer])) as 'Lieferanten-Nummer'
----------------------------------------------------------------------------------------------
,LTRIM(RTRIM([RWKonto].rwktobez_l)) as 'Lieferanten-Name'
----------------------------------------------------------------------------------------------
,LTRIM(RTRIM([CABankverbindung].[cabkviban])) as 'Bankverbindung-IBAN'
----------------------------------------------------------------------------------------------
,(SELECT TOP 1 [CAZahlungKondition].[cazhkskontoproz1]
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[CAZahlungKondition]
where [CAZahlungKondition].[cazhk_id] = (select [cazhk_id]
from [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[RWPersonenkonto]
where [rwkto_id] = [RWKonto].[rwkto_id])
) as 'Skonto1 %'
----------------------------------------------------------------------------------------------
,[rwbasgueltigbis] as 'Bauabzugssteuer bis'
----------------------------------------------------------------------------------------------
,(SELECT TOP 1 [rwwvkgueltigbis]
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[rwwiederverkaeufer]
WHERE [rwkto_id] = [RWKonto].[rwkto_id]
and [rwwvkliegtvor] = 'J'
ORDER BY [rwwvk_id] DESC) as 'Wiederverkauf bis'
----------------------------------------------------------------------------------------------
,[caperson].[caperustident] as 'USt-IdNr.'
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[RWKonto]
LEFT JOIN [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[RWPKBankverbindung] ON [RWKonto].[rwkto_id] = [RWPKBankverbindung].[rwkto_id]
LEFT JOIN [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[CABankverbindung] ON [RWPKBankverbindung].[cabkv_id] = [CABankverbindung].[cabkv_id]
LEFT JOIN [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[RWBauabzugsteuer] ON [RWKonto].[rwkto_id] = [RWBauabzugsteuer].[rwkto_id]
LEFT JOIN [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[RWPersonenkonto] ON [RWKonto].[rwkto_id] = [RWPersonenkonto].[rwkto_id]
LEFT JOIN [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[caperson] ON [RWPersonenkonto].[caper_id] = [caperson].[caper_id]
WHERE [RWKonto].[rwktostatus] = 'A' -- = Aktiv
and [RWKonto].[rwktacid_s] = 'K' -- = Kreditor
and [RWKonto].[camndcid_l] = Upper(@Mandant) -- = Unreglmäßig viele Leerzeichen enthalten
-- Lieferant 3000115 = caperid 17010 | rwkto_id = 1508 | Beispiel für Bauabzugssteuer
-- Lieferant 3001168 = caperid 41760 | rwkto_id = 31653 | Beispiel für Wiederverkäuferbescheinigung
-- 3000032
-------------------------------------------------------------------------------------------------------
-- Daten aus dem BE Modul
--SELECT TOP 100000 LTRIM(RTRIM([belieferant].[belienummer])) as 'Lieferanten-Nummer'
-- ,LTRIM(RTRIM([caperson].[capername])) as 'Lieferanten-Name'
-- ,LTRIM(RTRIM([CABankverbindung].[cabkviban])) as 'Bankverbindung-IBAN'
--FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[belieferant]
--LEFT JOIN [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[caperson] ON [belieferant].[caper_id] = [caperson].[caper_id]
--LEFT JOIN [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[CABankverbindung] ON [belieferant].[caper_id] = [CABankverbindung].[caper_id]
--WHERE [belieferant].[camndcid_l] = @Mandant
-- and [belieferant].[belieaktiv] = 'J'
-- and [CABankverbindung].[cabkvgueltgbisdate] is null
--ORDER BY convert(int,[belieferant].[caper_id]) ASC
GO

View File

@@ -0,0 +1,42 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_SCHLEUPEN_VENDOR_INFO] Script Date: 21.03.2024 16:18:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenwertfunktion zu Ausgabe des Kreditor Namen
-- Stand: MK // 10.03.2021
-- 10.03.2021 Hinzugefügt Abfarge nach Kreditorkennzeichen ([RWKonto].[rwktacid_s] = 'K'); und Abfrage nach KundenNr Lieferant
CREATE FUNCTION [dbo].[FNCUST_GET_SCHLEUPEN_VENDOR_INFO] (
@Mandant VARCHAR(8), -- Default VHM
@VendorNr VARCHAR(25)
)
RETURNS TABLE
AS
RETURN
-- Daten aus dem FiBu Modul
SELECT TOP 1 LTRIM(RTRIM([RWKonto].[rwktobez_l])) as 'Lieferanten-Name',
LTRIM(RTRIM([RWPersonenkonto].[rwpekkdnrlieferant])) as 'KundenNr-Lieferant'
FROM [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[RWKonto]
LEFT JOIN [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].[RWPersonenkonto] ON [RWKonto].[rwkto_id] = [RWPersonenkonto].[rwkto_id]
WHERE [RWKonto].[rwktacid_s] = 'K'
and LTRIM(RTRIM([RWKonto].[camndcid_l])) = LTRIM(RTRIM(UPPER(@Mandant)))
and LTRIM(RTRIM([RWKonto].[rwktonummer])) = LTRIM(RTRIM(@VendorNr))
-- Remember Schleupen DB works Case sensitive!
--
-- select rwpekkdnrlieferant from [VHM-DBSERVER1\VHM_ECHT].[VHM_ECHT].[dbo].RWPersonenkonto where rwkto_id = 1408
GO

View File

@@ -0,0 +1,45 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_TC_WD_RIGHTS] Script Date: 21.03.2024 16:19:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[FNCUST_GET_TC_WD_RIGHTS] (
@windreamDocID BIGINT
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT concat([wdGI].[szNTDomain],'\',[wdGI].[szGroupName]) as 'RightGroups'
FROM [windream60].[dbo].[BaseAttributes] as [wdBA] (NOLOCK)
INNER JOIN [windream60].[dbo].[UserInfo] as [wdUI] (NOLOCK) ON UPPER([wdBA].[szText22]) = UPPER([wdUI].[szUserName]) -- Username for UserID
INNER JOIN [windream60].[dbo].[UserGroup] as [wdU2G] (NOLOCK) ON [wdUI].[dwUserID] = [wdU2G].[dwUserOrGroupID] -- UserID for GroupsID
INNER JOIN [windream60].[dbo].[GroupInfo] as [wdGI] (NOLOCK) ON [wdU2G].[dwGroupID] = [wdGI].[dwGroupID] -- GroupIDs for Groupnames
INNER JOIN [DD_ECM].[dbo].[TBDD_USER] as [ddUI] (NOLOCK) ON [wdUI].[dwUserID] = [ddUI].[USERID_FK_INT_ECM] -- windream UserID to DD UserID
INNER JOIN [DD_ECM].[dbo].[TBDD_GROUPS_USER] as [ddU2G] (NOLOCK) ON [ddUI].[GUID] = [ddU2G].[USER_ID] -- UserID for GroupsID
INNER JOIN [DD_ECM].[dbo].[TBDD_GROUPS] as [ddGI] (NOLOCK) ON [ddU2G].[GROUP_ID] = [ddGI].[GUID] -- GroupIDs for Groupnames
WHERE UPPER([wdGI].[szGroupName]) = UPPER([ddGI].[NAME])
AND [wdBA].[dwDocID] = @windreamDocID
AND [wdGI].[szGroupName] not in ('VHM-Netz-Administration',
'VHM-Netz-Allgemein',
'VHM-Netz-Geschäftsführung',
'VHM-Netz-Geschäftsprozesse',
'VHM-Netz-Personal',
'VHM-Vertrieb-Administration',
'VHM-Vertrieb-Allgemein',
'VHM-Vertrieb-Geschäftsführung',
'VHM-Vertrieb-Geschäftsprozesse',
'VHM-Vertrieb-Personal')
GO

View File

@@ -0,0 +1,41 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_USER_MAILADRESS_LIST] Script Date: 21.03.2024 16:20:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- MK // 19.01.2021
-- Funktion sollte erweitert werden um die Mandanten Abfrage
CREATE FUNCTION [dbo].[FNCUST_GET_USER_MAILADRESS_LIST] (
@Mandant VARCHAR(8) -- Default VHM
)
RETURNS TABLE
AS
RETURN
SELECT [E-Mail Adressen Liste] from
(SELECT '' AS 'E-Mail Adressen Liste') as Query1
UNION
SELECT TOP 10000 [E-Mail Adressen Liste] from
(SELECT TOP 10000 [EMAIL] AS 'E-Mail Adressen Liste'
FROM [DD_ECM].[dbo].[TBDD_USER]
WHERE [EMAIL] LIKE '%@%'
ORDER BY [EMAIL]) as Query2
ORDER BY [E-Mail Adressen Liste] ASC
GO

View File

@@ -0,0 +1,142 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_USER_REPRESENTATION_GROUPS] Script Date: 21.03.2024 16:21:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stand: MK // 21.09.2021
-- 21.09.2021 Änderung Parameter
-- 20.09.2021 Initial
CREATE FUNCTION [dbo].[FNCUST_GET_USER_REPRESENTATION_GROUPS] (
@USER VARCHAR(250)
)
RETURNS @USERGROUPS TABLE ([USER_ID] [BIGINT] NOT NULL, -- eg = 1
[USER_NAME] [VARCHAR](100) NULL, -- eg = admin
[USER_GROUP_IDS] [VARCHAR](100) NULL, -- eg = 35,36,37
[USER_GROUP_NAMES] [VARCHAR](250) NULL, -- eg = Netzbetrieb-Gas-Wasser-Wärme,Netzservice,Netzbetrieb-Strom
[USER_BUSINESS_DIVISION] [VARCHAR](250) NULL) -- eg = Technik
AS
BEGIN
DECLARE @USER_REPRESENTATION_COUNT INT,
@USER_ID BIGINT,
@USERNAME VARCHAR(100),
@REPR_GROUP VARCHAR(100),
@REPR_GROUPNAME VARCHAR(250),
@USER_GROUP_IDS VARCHAR(100),
@USER_GROUP_NAMES VARCHAR(250),
@USER_BUSINESS_DIVISION VARCHAR(250);
--=================================================-- Get count --=============================================--
SELECT @USER_REPRESENTATION_COUNT = COUNT(*)
FROM [dbo].[VWCUST_USER_REPRESENTATION]
WHERE [USERNAME] = @USER
--===============================================-- Get division --============================================--
SELECT TOP 1 @USER_BUSINESS_DIVISION = [REPR_GROUPNAME],
@USER_ID = [USER_ID]
FROM [dbo].[VWCUST_USER_REPRESENTATION]
WHERE [USERNAME] = @USER
IF (@USER_BUSINESS_DIVISION in ('Bäderbetrieb','Netzbetrieb-Gas-Wasser-Wärme','Netzservice','Netzbetrieb-Strom'))
SET @USER_BUSINESS_DIVISION = 'VHM-Netz'
ELSE IF (@USER_BUSINESS_DIVISION in ('Energiedienstleistung','Handel-Vertrieb'))
SET @USER_BUSINESS_DIVISION = 'VHM-Vertrieb'
ELSE -- shared services
SET @USER_BUSINESS_DIVISION = 'VHM-Netz'
--=============================================================================================================--
If (@USER_REPRESENTATION_COUNT = 1)
BEGIN
INSERT INTO @USERGROUPS ([USER_ID],[USER_NAME],[USER_GROUP_IDS],[USER_GROUP_NAMES],[USER_BUSINESS_DIVISION])
SELECT @USER_ID,
[USERNAME],
[REPR_GROUP],
[REPR_GROUPNAME],
@USER_BUSINESS_DIVISION
FROM [dbo].[VWCUST_USER_REPRESENTATION]
WHERE [USER_ID] = @USER_ID
ORDER BY [GUID] ASC
END
--=============================================================================================================--
Else If (@USER_REPRESENTATION_COUNT > 1)
BEGIN
DECLARE CURSOR_USER_REPRESENTATION_DATA CURSOR
FOR
SELECT @USER_ID, USERNAME, REPR_GROUP, REPR_GROUPNAME
FROM [dbo].[VWCUST_USER_REPRESENTATION]
WHERE USER_ID = @USER_ID
ORDER BY GUID ASC
OPEN CURSOR_USER_REPRESENTATION_DATA
FETCH NEXT FROM CURSOR_USER_REPRESENTATION_DATA INTO @USER_ID, @USERNAME, @REPR_GROUP, @REPR_GROUPNAME
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN
SET @USER_GROUP_IDS = CONCAT(@USER_GROUP_IDS,convert(VARCHAR(100),@REPR_GROUP),',')
SET @USER_GROUP_NAMES = CONCAT(@USER_GROUP_NAMES,convert(VARCHAR(100),@REPR_GROUPNAME),',')
END
FETCH NEXT FROM CURSOR_USER_REPRESENTATION_DATA INTO @USER_ID,@USERNAME,@REPR_GROUP,@REPR_GROUPNAME
END
CLOSE CURSOR_USER_REPRESENTATION_DATA
DEALLOCATE CURSOR_USER_REPRESENTATION_DATA
------------------------------------------------------------------------------------------------------------
INSERT INTO @USERGROUPS ([USER_ID],[USER_NAME],[USER_GROUP_IDS],[USER_GROUP_NAMES],[USER_BUSINESS_DIVISION])
SELECT TOP 1
@USER_ID,
[USERNAME],
substring(@USER_GROUP_IDS, 1, (len(@USER_GROUP_IDS) - 1)),
substring(@USER_GROUP_NAMES, 1, (len(@USER_GROUP_NAMES) - 1)),
@USER_BUSINESS_DIVISION
FROM [dbo].[VWCUST_USER_REPRESENTATION]
WHERE [USER_ID] = @USER_ID
ORDER BY [GUID] ASC
END
--=============================================================================================================--
Else
BEGIN
--------------------------------------------------------
INSERT INTO @USERGROUPS ([USER_ID],[USER_NAME],[USER_GROUP_IDS],[USER_GROUP_NAMES],[USER_BUSINESS_DIVISION])
SELECT @USER_ID,NULL,NULL,NULL,@USER_BUSINESS_DIVISION
END
-----------------------------------------------------------------------------------------------------------------
RETURN;
END
GO

View File

@@ -0,0 +1,36 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_USER_USERNAME_LIST] Script Date: 21.03.2024 16:21:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- MK // 19.01.2021
-- Funktion sollte erweitert werden um die Mandanten Abfrage
CREATE FUNCTION [dbo].[FNCUST_GET_USER_USERNAME_LIST] (
@Mandant VARCHAR(8) -- Default VHM
)
RETURNS TABLE
AS
RETURN
SELECT TOP 10000 [USERNAME] as 'Benutzername',
[PRENAME] as 'Vorname',
[NAME] as 'Nachname',
[EMAIL] as 'E-Mail Adresse'
FROM [DD_ECM].[dbo].[TBDD_USER]
WHERE [EMAIL] LIKE '%@%'
ORDER BY [USERNAME] ASC
GO

View File

@@ -0,0 +1,87 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_CONTROL_DATA_PROFILEID_1006] Script Date: 21.03.2024 16:23:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Errechnung des Skontobetrags
-- MS 25.04.2023
-- Stand: MK // 01.10.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_CONTROL_DATA_PROFILEID_1006] (
@SkontierbarerBetragTemp VARCHAR(50), --'{#CTRL#TXT_SkontierbarerBetrag}';
@SkontoProzentTemp VARCHAR(50), --'{#CTRL#TXT_SkontoProzent}';
--@SkontoTageTemp VARCHAR(50), --'{#CTRL#TXT_SkontoTage}';
@BestellSummeBruttoTemp VARCHAR(50), --'{#CTRL#TXT_BestellSummeBrutto}';
@RechnungsbetragBruttoTemp VARCHAR(50) --'{#CTRL#TXT_RechnungsbetragBrutto}';
)
RETURNS @Output TABLE (Control2Set BIGINT,
Caption FLOAT,
BackgroundColor NVARCHAR(1000),
FontColor NVARCHAR(1000))
AS
BEGIN
DECLARE @SkontierbarerBetrag FLOAT,
@SkontoProzent FLOAT,
@SkontoTage FLOAT,
@BestellSummeBrutto FLOAT,
@RechnungsbetragBrutto FLOAT,
@Kalkulation FLOAT;
DECLARE @ControlSkontierbarerBetrag VARCHAR(10) = '2184',
@ControlSkontoProzent VARCHAR(10) = '2186',
--@ControlSkontoTage VARCHAR(10) = '3931',
@ControlBestellSummeBrutto VARCHAR(10) = '3439',
@ControlRechnungsbetragBrutto VARCHAR(10) = '2182';
----------------------------------------------------------------------------------------------------------------------------------
SET @SkontierbarerBetrag = ISNULL(Try_convert(Float,(REPLACE(@SkontierbarerBetragTemp,',','.'))),0)
SET @SkontoProzent = ISNULL(Try_convert(Float,(REPLACE(@SkontoProzentTemp,',','.'))),0)
--SET @SkontoTage = ISNULL(Try_convert(Float,(REPLACE(@SkontoTageTemp,',','.'))),0)
SET @BestellSummeBrutto = ISNULL(Try_convert(Float,(REPLACE(@BestellSummeBruttoTemp,',','.'))),0)
SET @RechnungsbetragBrutto = ISNULL(Try_convert(Float,(REPLACE(@RechnungsbetragBruttoTemp,',','.'))),0)
IF (@SkontoProzent > 0.0) and (@BestellSummeBrutto > 0.0)
BEGIN
IF (@SkontierbarerBetrag > 0.0)
BEGIN
-- Calc based on @SkontierbarerBetrag
SET @Kalkulation = @BestellSummeBrutto - ((@SkontoProzent / 100) * @SkontierbarerBetrag);
SET @RechnungsbetragBrutto = Round(@Kalkulation,2);
END
ELSE
BEGIN
-- Calc based on @BestellSummeBrutto
SET @Kalkulation = @BestellSummeBrutto - ((@SkontoProzent / 100) * @BestellSummeBrutto);
SET @RechnungsbetragBrutto = Round(@Kalkulation,2);
END
END
ELSE
BEGIN
-- Keep value to not overwrite user input
SET @RechnungsbetragBrutto = @RechnungsbetragBrutto;
END
----------------------------------------------------------------------------------------------------------------------------------
IF @RechnungsbetragBrutto > 0.0
INSERT INTO @Output(Control2Set, Caption, BackgroundColor, FontColor)
SELECT @ControlRechnungsbetragBrutto as Control2Set, @RechnungsbetragBrutto as Caption, '' as BackgroundColor, '' as FontColor
RETURN
END
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,84 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_CONTROL_DATA_PROFILEID_2024] Script Date: 21.03.2024 16:23:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Errechnung des Skontobetrags
-- Stand: MK // 02.09.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_CONTROL_DATA_PROFILEID_2024] (
@SkontierbarerBetragTemp VARCHAR(50), --'{#CTRL#TXT_SkontierbarerBetrag}';
@SkontoProzentTemp VARCHAR(50), --'{#CTRL#TXT_SkontoProzent}';
--@SkontoTageTemp VARCHAR(50), --'{#CTRL#TXT_SkontoTage}';
@BestellSummeBruttoTemp VARCHAR(50), --'{#CTRL#TXT_BestellSummeBrutto}';
@RechnungsbetragBruttoTemp VARCHAR(50) --'{#CTRL#TXT_RechnungsbetragBrutto}';
)
RETURNS @Output TABLE (Control2Set BIGINT,
Caption FLOAT,
BackgroundColor NVARCHAR(1000),
FontColor NVARCHAR(1000))
AS
BEGIN
DECLARE @SkontierbarerBetrag FLOAT,
@SkontoProzent FLOAT,
@SkontoTage FLOAT,
@BestellSummeBrutto FLOAT,
@RechnungsbetragBrutto FLOAT,
@Kalkulation FLOAT;
DECLARE @ControlSkontierbarerBetrag VARCHAR(10) = '3950',
@ControlSkontoProzent VARCHAR(10) = '3929',
--@ControlSkontoTage VARCHAR(10) = '3931',
@ControlBestellSummeBrutto VARCHAR(10) = '3941',
@ControlRechnungsbetragBrutto VARCHAR(10) = '3926';
----------------------------------------------------------------------------------------------------------------------------------
SET @SkontierbarerBetrag = ISNULL(Try_convert(Float,(REPLACE(@SkontierbarerBetragTemp,',','.'))),0)
SET @SkontoProzent = ISNULL(Try_convert(Float,(REPLACE(@SkontoProzentTemp,',','.'))),0)
--SET @SkontoTage = ISNULL(Try_convert(Float,(REPLACE(@SkontoTageTemp,',','.'))),0)
SET @BestellSummeBrutto = ISNULL(Try_convert(Float,(REPLACE(@BestellSummeBruttoTemp,',','.'))),0)
SET @RechnungsbetragBrutto = ISNULL(Try_convert(Float,(REPLACE(@RechnungsbetragBruttoTemp,',','.'))),0)
IF (@SkontoProzent > 0.0) and (@BestellSummeBrutto > 0.0)
BEGIN
IF (@SkontierbarerBetrag > 0.0)
BEGIN
-- Calc based on @SkontierbarerBetrag
SET @Kalkulation = @BestellSummeBrutto - ((@SkontoProzent / 100) * @SkontierbarerBetrag);
SET @RechnungsbetragBrutto = Round(@Kalkulation,2);
END
ELSE
BEGIN
-- Calc based on @BestellSummeBrutto
SET @Kalkulation = @BestellSummeBrutto - ((@SkontoProzent / 100) * @BestellSummeBrutto);
SET @RechnungsbetragBrutto = Round(@Kalkulation,2);
END
END
ELSE
BEGIN
-- Keep value to not overwrite user input
SET @RechnungsbetragBrutto = @RechnungsbetragBrutto;
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @Output(Control2Set, Caption, BackgroundColor, FontColor)
SELECT @ControlRechnungsbetragBrutto as Control2Set, @RechnungsbetragBrutto as Caption, '' as BackgroundColor, '' as FontColor
RETURN
END
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,35 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_1004] Script Date: 21.03.2024 16:24:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_1004] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Auftragskontierung'
UNION
SELECT 'Kostenstellenkontierung'
UNION
SELECT 'Abgelehnt'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,38 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_1005] Script Date: 21.03.2024 16:24:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
-- 04.02.2022 Ergänzugung "Zurück zu: VHM - ER 5.0 - Prüfung und Kontierung durch die FiBu"
-- 01.02.2021 initial
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_1005] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Angehalten'
UNION
SELECT 'Abgelehnt'
UNION
SELECT 'Zurück zu: VHM - ER 5.0 - Prüfung und Kontierung durch die FiBu'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,37 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_1006] Script Date: 21.03.2024 16:25:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_1006] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
UNION
--SELECT 'Abgelehnt - falsche Fimierung'
--UNION
--SELECT 'Abgelehnt - falscher MwSt Satz'
--UNION
SELECT 'Abgelehnt - Neue Rechnung angefordert'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,31 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2006] Script Date: 21.03.2024 16:26:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2006] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,35 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2007] Script Date: 21.03.2024 16:26:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2007] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'VHM - ER 3.0 - Zuweisung und Vorprüfung durch die FiBu' as 'Entscheidung'
UNION
SELECT 'VHM - ER 4.0 - Prüfung durch die Fachabteilung'
UNION
SELECT 'VHM - ER 5.0 - Prüfung und Kontierung durch die FiBu'
UNION
SELECT 'VHM - ER 6.0 - Zahlungsfreigabe der Geschäftsführung'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,31 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2008] Script Date: 21.03.2024 16:28:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2008] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,31 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2009] Script Date: 21.03.2024 16:29:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
create FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2009] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,37 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2010] Script Date: 21.03.2024 16:29:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2010] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
UNION
SELECT 'Zurück zu: ER 2.0 - Durchsicht der Geschäftsführung'
UNION
SELECT 'Zurück zu: ER 3.0 - Zuweisung und Vorprüfung durch die FiBu'
UNION
SELECT 'Zurück zu: ER 4.0 - Prüfung durch die Fachabteilung'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,39 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2012] Script Date: 21.03.2024 16:29:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2012] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Abgelehnt (FINAL)' as 'Entscheidung'
UNION
SELECT 'Abgelehnt - Neue Rechnung angefordert'
UNION
SELECT 'Zurück zu: ER 2.0 - Durchsicht der Geschäftsführung'
UNION
SELECT 'Zurück zu: ER 3.0 - Zuweisung und Vorprüfung durch die FiBu'
UNION
SELECT 'Zurück zu: ER 4.0 - Prüfung durch die Fachabteilung'
UNION
SELECT 'Zurück zu: ER 5.0 - Prüfung und Kontierung durch die FiBu'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,31 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2013] Script Date: 21.03.2024 16:30:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2013] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,31 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2014] Script Date: 21.03.2024 16:30:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2014] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,35 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2015] Script Date: 21.03.2024 16:31:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2015] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Auftragskontierung'
UNION
SELECT 'Kostenstellenkontierung'
UNION
SELECT 'Abgelehnt'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,31 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2017] Script Date: 21.03.2024 16:33:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2017] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,38 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2024] Script Date: 21.03.2024 16:34:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 01.02.2021
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_2024] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
UNION
--SELECT 'Abgelehnt - falsche Fimierung'
--UNION
--SELECT 'Abgelehnt - falscher MwSt Satz'
--UNION
SELECT 'Abgelehnt - Neue Rechnung angefordert'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,37 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_4] Script Date: 21.03.2024 16:34:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Erzeugung der Auswahlliste für die Benutzer Entscheidung (String32 / Status-Detail)
-- Stand: MK // 09.02.2021
-- "Abgelehnt - Neue Rechnung angefordert" hinzugefügt
CREATE FUNCTION [dbo].[FNCUST_SET_PM_DECISION_LIST_PROFILEID_4] (
)
RETURNS TABLE
AS
RETURN
----------------------------------------------------------------------------------------------------------------------------------
SELECT 'Bestätigt' as 'Entscheidung'
UNION
SELECT 'Abgelehnt'
UNION
SELECT 'Abgelehnt - Neue Rechnung angefordert'
UNION
SELECT 'Falscher Prüfer ausgewählt'
--order by 'Entscheidung' desc
----------------------------------------------------------------------------------------------------------------------------------
GO

View File

@@ -0,0 +1,154 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SET_TC_MOVE_AND_RENAME] Script Date: 21.03.2024 16:35:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- TSQL Function to build target path and filename, for TC Move and Rename
-- Stand: MK // 05.11.2021
create FUNCTION [dbo].[FNCUST_SET_TC_MOVE_AND_RENAME] (
@pDOCID BIGINT
)
RETURNS @vTB_RESULT TABLE ([PATH] [VARCHAR](max) NOT NULL,
[FILENAME] [VARCHAR](max) NOT NULL)
AS
BEGIN
DECLARE @DOCID BIGINT,
@ObjectTypeID BIGINT,
@ObjectTypeSeparator VARCHAR(1) = '-',
@ObjectTypeName VARCHAR(150),
@ImportTool VARCHAR(150),
@Mandator VARCHAR(150),
@DocumentType VARCHAR(150),
@DocumentTypeShort VARCHAR(150),
@CreditorNr VARCHAR(150),
@CreditorName VARCHAR(150),
@ExternalReference1 VARCHAR(150),
@InternalNr VARCHAR(150),
@CustomerNr VARCHAR(150),
@CustomerName VARCHAR(150),
@Path VARCHAR(MAX),
@Filename VARCHAR(MAX),
@FileExtension VARCHAR(5);
----------------------------------------------------------------------------------------------------------------------------------
-- Get Index data from doc --
SELECT @DOCID = [dwDocID],
@ObjectTypeID = [dwObjectTypeID],
@CreditorName = [szText08],
@CustomerName = [szText09],
@ExternalReference1 = [szText19],
@ImportTool = [szText28],
@Mandator = [szText31],
@InternalNr = [szText36],
@DocumentType = [szText37],
@CreditorNr = [szText38],
@CustomerNr = [szText39],
@FileExtension = [szFile_Ext]
FROM [windream60].[dbo].[BaseAttributes]
WHERE [dwDocID] = @pDOCID
AND [dwCatalogID] = 1 -- Only Files
AND ([szText33] is NULL OR [szText33] = 'erledigt') -- Only Files which are done processing
----------------------------------------------------------------------------------------------------------------------------------
-- Get windream Objecttype name --
SELECT @ObjectTypeName = [szDocTypeName]
FROM [windream60].[dbo].[ObjectType]
WHERE [dwObjectTypeID] = @ObjectTypeID
----------------------------------------------------------------------------------------------------------------------------------
-- Clean windream Objecttype name --
SELECT @ObjectTypeName = RTRIM(LTRIM([Item]))
FROM [FNCUST_SPLIT_STRING_WITH_GUID](@ObjectTypeName,@ObjectTypeSeparator)
WHERE [GUID] = (SELECT max([GUID])
FROM [FNCUST_SPLIT_STRING_WITH_GUID](@ObjectTypeName,@ObjectTypeSeparator))
----------------------------------------------------------------------------------------------------------------------------------
-- Build path --
IF (LEN(@ObjectTypeName) > 1) AND (LEN(@ImportTool) > 1) AND (LEN(@Mandator) > 1) AND (LEN(@DocumentType) > 1)
BEGIN
SET @Path =
CASE
WHEN @ImportTool like '%GLOBIX%'OR @ImportTool like '%GLOBAL%'
THEN @Mandator + @ObjectTypeSeparator + @ObjectTypeName + '\Manually\File'
WHEN @ImportTool like '%Tool%'OR @ImportTool like '%Collection%'
THEN @Mandator + @ObjectTypeSeparator + @ObjectTypeName + '\DocumentProcessing\File'
END
-- Replace invalid chars
SET @Path = Replace(@Path,'/','')
SET @Path = Replace(@Path,':','')
SET @Path = Replace(@Path,'*','')
SET @Path = Replace(@Path,'?','')
SET @Path = Replace(@Path,'"','')
SET @Path = Replace(@Path,'<','')
SET @Path = Replace(@Path,'>','')
SET @Path = Replace(@Path,'|','')
END
----------------------------------------------------------------------------------------------------------------------------------
-- Find short names for Document Types (ONLY FOR FILENAME NOT THE PATH) --
SELECT TOP 1 @DocumentTypeShort = RTRIM(LTRIM([KURZNAME]))
FROM [TBDD_DOKUMENTART]
WHERE [AKTIV] = 1
AND ([BEZEICHNUNG] LIKE ('%' + @DocumentType + '%')
OR [BESCHREIBUNG] LIKE ('%' + @DocumentType + '%'))
IF (LEN(@DocumentTypeShort) < 2) -- Fallback
SET @DocumentTypeShort = @DocumentType
----------------------------------------------------------------------------------------------------------------------------------
-- Build filename --
IF ((LEN(@CreditorNr) > 1) AND (LEN(@CreditorName) > 1)) OR ((LEN(@CustomerNr) > 1) AND (LEN(@CustomerName) > 1)) AND (LEN(@FileExtension) > 1)
BEGIN
SET @Filename =
CASE
WHEN (LEN(@CreditorNr) > 1) AND (LEN(@CreditorName) > 1) AND (LEN(@InternalNr) > 1) AND (LEN(@ExternalReference1) > 1)
THEN @DocumentTypeShort + '_' + @InternalNr + '#' + @CreditorName + '_' + @ExternalReference1 + @FileExtension
WHEN (LEN(@CreditorNr) > 1) AND (LEN(@CreditorName) > 1) AND (LEN(@InternalNr) > 1)
THEN @DocumentTypeShort + '_' + @InternalNr + '#' + @CreditorName + @FileExtension
------------------------------------------------------------------------------------------------------------------
WHEN (LEN(@CustomerNr) > 1) AND (LEN(@CustomerName) > 1) AND (LEN(@InternalNr) > 1)
THEN @DocumentTypeShort + '_' + @InternalNr + '#' + @CustomerName + @FileExtension
END
-- Replace invalid chars
SET @Filename = Replace(@Filename,'\','')
SET @Filename = Replace(@Filename,'/','')
SET @Filename = Replace(@Filename,':','')
SET @Filename = Replace(@Filename,'*','')
SET @Filename = Replace(@Filename,'?','')
SET @Filename = Replace(@Filename,'"','')
SET @Filename = Replace(@Filename,'<','')
SET @Filename = Replace(@Filename,'>','')
SET @Filename = Replace(@Filename,'|','')
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_RESULT ([PATH],[FILENAME])
VALUES (@Path, @Filename)
RETURN;
END
GO

View File

@@ -0,0 +1,44 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_SPLIT_STRING_WITH_GUID] Script Date: 21.03.2024 16:35:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stand: MK // 28.01.2021
-- Verwendet in Schleupen Schnittstelle und PM Monitoring
CREATE FUNCTION [dbo].[FNCUST_SPLIT_STRING_WITH_GUID] (
@Input NVARCHAR(MAX),
@Character CHAR(1)
)
RETURNS @Output TABLE (GUID INTEGER IDENTITY(1,1), Item NVARCHAR(1000))
AS
BEGIN
DECLARE @StartIndex INT, @EndIndex INT
SET @StartIndex = 1
IF SUBSTRING(@Input, LEN(@Input) - 1, LEN(@Input)) <> @Character
BEGIN
SET @Input = @Input + @Character
END
WHILE CHARINDEX(@Character, @Input) > 0
BEGIN
SET @EndIndex = CHARINDEX(@Character, @Input)
INSERT INTO @Output(Item)
SELECT SUBSTRING(@Input, @StartIndex, @EndIndex - 1)
SET @Input = SUBSTRING(@Input, @EndIndex + 1, LEN(@Input))
END
RETURN
END
GO

View File

@@ -0,0 +1,61 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_1004] Script Date: 21.03.2024 16:37:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 5.0 - Prüfung und Kontierung durch die FiBu
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_1004] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_1004]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,104 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_1005] Script Date: 21.03.2024 16:37:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 04.02.2022
-- 04.02.2022 Abfrage auf @Status_Detail im ersten "IF" eingebaut
-- 21.10.2021 Erweiterung der Prüfer um das 4-Augen Prinzip
-- 11.03.2021 Prüfung Prüfer = Benutzername eingebaut
-- 01.02.2021 Initial
-- PM Profil: VHM - ER 6.0 - Zahlungsfreigabe der Geschäftsführung
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_1005] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200), -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}'
@windreamDocID BIGINT, -- = '{#WMI#Dokument-ID}
@windreamAttrID INT = 360, -- = 'Vektor Field ID
@Seperator VARCHAR(1) = '~', -- = 'String Splitter
@Prüfer VARCHAR(150), -- = '{#WMI#String 22}'
@Username VARCHAR(150) -- = '{#INT#USERNAME}'
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
DECLARE @Verifier VARCHAR(100) = '',
@VerifierCount TINYINT = 0;
----------------------------------------------------------------------------------------------------------------------------------
-- If Verifier (Prüfer) was found in History Table,
-- overwrite @Prüfer four-eyes principle
SELECT @Verifier = RTRIM(LTRIM([szValue])),
@VerifierCount = COUNT([szValue])
FROM [windream60].[dbo].[Vector]
WHERE [dwDocID] = @windreamDocID
and [dwAttrID] = @windreamAttrID
and [szValue] LIKE '%BESTÄTIGT% ER 4.%'
GROUP BY [szValue]
IF (@VerifierCount > 0)
BEGIN
SELECT TOP 1 @Verifier = [value]
FROM STRING_SPLIT(@Verifier,'~');
IF (LEN(@Verifier) > 1)
SET @Prüfer = @Verifier
END
----------------------------------------------------------------------------------------------------------------------------------
IF (LTRIM(RTRIM(@Prüfer)) = LTRIM(RTRIM(@Username))) and (@Status_Detail = 'Bestätigt') -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Die Freigabe des Belegs muss im vier Augen Prinzip erfolgen!'
END
ELSE IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_1005]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,71 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_1005_alt] Script Date: 21.03.2024 16:38:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 11.03.2021
-- 11.03.2021 Prüfung Prüfer = Benutzername eingebaut
-- 01.02.2021 Initial
-- PM Profil: VHM - ER 6.0 - Zahlungsfreigabe der Geschäftsführung
create FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_1005_alt] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200), -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}'
@Prüfer VARCHAR(150), -- = '{#WMI#String 22}'
@Username VARCHAR(150) -- = '{#INT#USERNAME}'
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (LTRIM(RTRIM(@Prüfer)) = LTRIM(RTRIM(@Username))) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Als eingetragener Prüfer, dürfen Sie den Beleg nicht freigeben!'
END
ELSE IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_1005]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,116 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_1006] Script Date: 21.03.2024 16:38:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 06.10.2021
-- 06.10.2021 @BestellSummeNetto als Berechnungsgrundlage entfernt/auskommentiert
-- 01.02.2021 Initial
-- PM Profil: VHM - ER 3.0 - Zuweisung und Vorprüfung durch die FiBu
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_1006] (
--@BestellSummeNetto VARCHAR(150), -- = 0, -- Ganze oder kommagetrennte Zahl
@RechnungsSummeNetto VARCHAR(150), -- = 0, -- Ganze oder kommagetrennte Zahl
@Dokumentart VARCHAR(150), -- = '{#CTRL#CMB_DOKUMENTART}',
@Fremdreferenz1 VARCHAR(150), -- = '{#CTRL#TXT_Fremdreferenz_1}',
@Prüfer_Person VARCHAR(150), -- = '{#CTRL#DGV_Prüfer_Person}',
@Prüfer_Gruppe VARCHAR(150), -- = '{#CTRL#DGV_Prüfer_Gruppe}',
@Prüfer_Abteilung VARCHAR(150), -- = '{#CTRL#DGV_Prüfer_Abteilung}',
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!',
@Fremdreferenz1Count INT = 0;
SET @RechnungsSummeNetto = (SELECT [dbo].[FNDD_GET_DECIMAL_FOR_VARCHAR] (@RechnungsSummeNetto));
--SET @BestellSummeNetto = (SELECT [dbo].[FNDD_GET_DECIMAL_FOR_VARCHAR] (@BestellSummeNetto));
SET @Fremdreferenz1Count = (SELECT COUNT(szText19)
FROM [windream60].[dbo].[BaseAttributes]
WHERE [szText37] = @Dokumentart
and [szText19] = @Fremdreferenz1)-1;
----------------------------------------------------------------------------------------------------------------------------------
IF (@Prüfer_Person in ('','0') AND @Prüfer_Gruppe in ('','0') AND @Prüfer_Abteilung in ('','0')) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Achtung: Sie haben keinen Prüfer eingetragen!'
END
ELSE IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_1006]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
-- Logik ist ausgeschaltet, da sich die Brutto Summen nicht aus Schleupen ziehen lassen! Somit ist auch kein sauberer Vergleich Bruttobestellwert zu Bruttorechnungssumme möglich.
--ELSE IF ((@BestellSummeNetto > 0) AND (@BestellSummeNetto < @RechnungsSummeNetto)) AND @Fremdreferenz1Count > 0 -- Nachfragen ob ok
-- BEGIN
-- SET @MSGTYPE = 'MsgboxResult'
-- SET @QUESTION = 'Achtung: Die ext. Rechnungs-Nr wurde bereits erfasst (' + CONVERT(VARCHAR(30),@Fremdreferenz1Count) + ' Dokumente) ! Außerdem ist die Rechungssumme ist größer als die Bestellsumme! Die Rechnung darf so weiter verbucht werden! Möchten Sie fortfahren?'
-- END
--ELSE IF ((@BestellSummeNetto > 0) AND (@BestellSummeNetto > @RechnungsSummeNetto)) AND @Fremdreferenz1Count > 0 -- Nachfragen ob ok
-- BEGIN
-- SET @MSGTYPE = 'MsgboxResult'
-- SET @QUESTION = 'Achtung: Die ext. Rechnungs-Nr wurde bereits erfasst (' + CONVERT(VARCHAR(30),@Fremdreferenz1Count) + ' Dokumente) ! Außerdem ist die Rechungssumme kleiner als die Bestellsumme! Die Rechnung darf so weiter verbucht werden! Möchten Sie fortfahren?'
-- END
--ELSE IF ((@BestellSummeNetto > 0) AND (@BestellSummeNetto < @RechnungsSummeNetto)) AND @Fremdreferenz1Count = 0 -- Nachfragen ob ok
-- BEGIN
-- SET @MSGTYPE = 'MsgboxResult'
-- SET @QUESTION = 'Achtung: Die Rechungssumme ist größer als die Bestellsumme! Die Rechnung darf so weiter verbucht werden! Möchten Sie fortfahren?'
-- END
--ELSE IF ((@BestellSummeNetto > 0) AND (@BestellSummeNetto > @RechnungsSummeNetto)) AND @Fremdreferenz1Count = 0 -- Nachfragen ob ok
-- BEGIN
-- SET @MSGTYPE = 'MsgboxResult'
-- SET @QUESTION = 'Achtung: Die Rechungssumme ist kleiner als die Bestellsumme! Die Rechnung darf so weiter verbucht werden! Möchten Sie fortfahren?'
-- END
ELSE IF (@Fremdreferenz1Count > 0) -- Nachfragen ob ok - sollte weiter unten abgefragt werden da prio gering
BEGIN
SET @MSGTYPE = 'MsgboxResult'
SET @QUESTION = 'Achtung: Die ext. Rechnungs-Nr wurde bereits erfasst (' + CONVERT(VARCHAR(30),@Fremdreferenz1Count) + ' Dokumente) ! Möchten Sie fortfahren?'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,61 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2006] Script Date: 21.03.2024 16:40:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 2.0 - Durchsicht der Geschäftsführung
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2006] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2006]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,61 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2007] Script Date: 21.03.2024 16:40:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 99.0 - Auffangprofil für nicht bearbeitete Dateien
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2007] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2007]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,103 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2008] Script Date: 21.03.2024 16:41:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 21.10.2021
-- 21.10.2021 Erweiterung der Prüfer um das 4-Augen Prinzip
-- 11.03.2021 Prüfung Prüfer = Benutzername eingebaut
-- 01.02.2021 Initial
-- PM Profil: VHM - ER 6.1 - Zahlungsfreigabe der Geschäftsführung - Angehaltende Dokumente
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2008] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200), -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}'
@windreamDocID BIGINT, -- = '{#WMI#Dokument-ID}
@windreamAttrID INT = 360, -- = 'Vektor Field ID
@Seperator VARCHAR(1) = '~', -- = 'String Splitter
@Prüfer VARCHAR(150), -- = '{#WMI#String 22}'
@Username VARCHAR(150) -- = '{#INT#USERNAME}'
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
DECLARE @Verifier VARCHAR(100) = '',
@VerifierCount TINYINT = 0;
----------------------------------------------------------------------------------------------------------------------------------
-- If Verifier (Prüfer) was found in History Table,
-- overwrite @Prüfer four-eyes principle
SELECT @Verifier = RTRIM(LTRIM([szValue])),
@VerifierCount = COUNT([szValue])
FROM [windream60].[dbo].[Vector]
WHERE [dwDocID] = @windreamDocID
and [dwAttrID] = @windreamAttrID
and [szValue] LIKE '%BESTÄTIGT% ER 4.%'
GROUP BY [szValue]
IF (@VerifierCount > 0)
BEGIN
SELECT TOP 1 @Verifier = [value]
FROM STRING_SPLIT(@Verifier,'~');
IF (LEN(@Verifier) > 1)
SET @Prüfer = @Verifier
END
----------------------------------------------------------------------------------------------------------------------------------
IF (LTRIM(RTRIM(@Prüfer)) = LTRIM(RTRIM(@Username))) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Als eingetragener Prüfer, dürfen Sie den Beleg nicht freigeben!'
END
ELSE IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2008]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,68 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2009] Script Date: 21.03.2024 16:41:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 98.0 - Übersichtsprofil - Sämtliche nicht zahlungsfreigebenen Rechnungen
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2009] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2009]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
-- Stand: MK // 24.08.2021
-- SELECT * FROM [FNCUST_TEST_PM_USER_INPUT_PROFILEID_2009]('#CTRL#DGV_Status-Detail','#CTRL#TXT_Entscheidungs-Beschreibung')
-- Ausgeschaltet da keine Entscheidung möglich ist
GO

View File

@@ -0,0 +1,61 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2010] Script Date: 21.03.2024 16:42:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 4.1 - Anforderung Rechungskorrektur durch die Fachabteilung
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2010] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2010]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,61 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2012] Script Date: 21.03.2024 16:42:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 5.1 - Auffangprofil für alle abgelehnten Dokumente
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2012] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2012]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,61 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2013] Script Date: 21.03.2024 16:43:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 5.2 - Auftragskontierung
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2013] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2013]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,61 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2014] Script Date: 21.03.2024 16:43:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 5.3 - Kostenstellenkontierung
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2014] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2014]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,61 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2015] Script Date: 21.03.2024 16:44:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 5.4 - Finale Kontierung
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2015] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2015]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,69 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2017] Script Date: 21.03.2024 16:44:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 1.0 - Dokumentübernahme durch Erfasser
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2017] (
@WindowsUsername VARCHAR(150), -- = '{#INT#USERNAME}', -- Benutzername aus der Anmeldung
@InputBoxUsername VARCHAR(150), -- = '{#CTRL#TXT_Benutzername}' -- Benutzername aus der Eingabe
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
----------------------------------------------------------------------------------------------------------------------------------
IF (@WindowsUsername IN ('IIMAdmin','Praktikant','Azubi','Scanner') and (LEN(@InputBoxUsername) < 3)) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Ihr Name (' + @InputBoxUsername +') ist doch sicher länger, oder!? (mind. 3 Zeichen)'
END
ELSE IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_2017]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,116 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2024] Script Date: 21.03.2024 16:45:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 06.10.2021
-- 06.10.2021 @BestellSummeNetto als Berechnungsgrundlage entfernt/auskommentiert
-- PM Profil: VHM - ER 3.0 - Zuweisung und Vorprüfung durch die FiBu
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_2024] (
--@BestellSummeNetto VARCHAR(150), -- = 0, -- Ganze oder kommagetrennte Zahl
@RechnungsSummeNetto VARCHAR(150), -- = 0, -- Ganze oder kommagetrennte Zahl
@Dokumentart VARCHAR(150), -- = '{#CTRL#CMB_DOKUMENTART}',
@Fremdreferenz1 VARCHAR(150), -- = '{#CTRL#TXT_Fremdreferenz_1}',
@Prüfer_Person VARCHAR(150), -- = '{#CTRL#DGV_Prüfer_Person}',
@Prüfer_Gruppe VARCHAR(150), -- = '{#CTRL#DGV_Prüfer_Gruppe}',
@Prüfer_Abteilung VARCHAR(150), -- = '{#CTRL#DGV_Prüfer_Abteilung}',
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!',
@Fremdreferenz1Count INT = 0;
SET @RechnungsSummeNetto = (SELECT [dbo].[FNDD_GET_DECIMAL_FOR_VARCHAR] (@RechnungsSummeNetto));
--SET @BestellSummeNetto = (SELECT [dbo].[FNDD_GET_DECIMAL_FOR_VARCHAR] (@BestellSummeNetto));
SET @Fremdreferenz1Count = (SELECT COUNT(szText19)
FROM [windream60].[dbo].[BaseAttributes]
WHERE [szText37] = @Dokumentart
and [szText19] = @Fremdreferenz1)-1;
----------------------------------------------------------------------------------------------------------------------------------
IF (@Prüfer_Person in ('','0') AND @Prüfer_Gruppe in ('','0') AND @Prüfer_Abteilung in ('','0')) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Achtung: Sie haben keinen Prüfer eingetragen!'
END
ELSE IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_1006]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
-- Logik ist ausgeschaltet, da sich die Brutto Summen nicht aus Schleupen ziehen lassen! Somit ist auch kein sauberer Vergleich Bruttobestellwert zu Bruttorechnungssumme möglich.
--ELSE IF ((@BestellSummeNetto > 0) AND (@BestellSummeNetto < @RechnungsSummeNetto)) AND @Fremdreferenz1Count > 0 -- Nachfragen ob ok
-- BEGIN
-- SET @MSGTYPE = 'MsgboxResult'
-- SET @QUESTION = 'Achtung: Die ext. Rechnungs-Nr wurde bereits erfasst (' + CONVERT(VARCHAR(30),@Fremdreferenz1Count) + ' Dokumente) ! Außerdem ist die Rechungssumme ist größer als die Bestellsumme! Die Rechnung darf so weiter verbucht werden! Möchten Sie fortfahren?'
-- END
--ELSE IF ((@BestellSummeNetto > 0) AND (@BestellSummeNetto > @RechnungsSummeNetto)) AND @Fremdreferenz1Count > 0 -- Nachfragen ob ok
-- BEGIN
-- SET @MSGTYPE = 'MsgboxResult'
-- SET @QUESTION = 'Achtung: Die ext. Rechnungs-Nr wurde bereits erfasst (' + CONVERT(VARCHAR(30),@Fremdreferenz1Count) + ' Dokumente) ! Außerdem ist die Rechungssumme kleiner als die Bestellsumme! Die Rechnung darf so weiter verbucht werden! Möchten Sie fortfahren?'
-- END
--ELSE IF ((@BestellSummeNetto > 0) AND (@BestellSummeNetto < @RechnungsSummeNetto)) AND @Fremdreferenz1Count = 0 -- Nachfragen ob ok
-- BEGIN
-- SET @MSGTYPE = 'MsgboxResult'
-- SET @QUESTION = 'Achtung: Die Rechungssumme ist größer als die Bestellsumme! Die Rechnung darf so weiter verbucht werden! Möchten Sie fortfahren?'
-- END
--ELSE IF ((@BestellSummeNetto > 0) AND (@BestellSummeNetto > @RechnungsSummeNetto)) AND @Fremdreferenz1Count = 0 -- Nachfragen ob ok
-- BEGIN
-- SET @MSGTYPE = 'MsgboxResult'
-- SET @QUESTION = 'Achtung: Die Rechungssumme ist kleiner als die Bestellsumme! Die Rechnung darf so weiter verbucht werden! Möchten Sie fortfahren?'
-- END
ELSE IF (@Fremdreferenz1Count > 0) -- Nachfragen ob ok - sollte weiter unten abgefragt werden da prio gering
BEGIN
SET @MSGTYPE = 'MsgboxResult'
SET @QUESTION = 'Achtung: Die ext. Rechnungs-Nr wurde bereits erfasst (' + CONVERT(VARCHAR(30),@Fremdreferenz1Count) + ' Dokumente) ! Möchten Sie fortfahren?'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,62 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_4] Script Date: 21.03.2024 16:45:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- T-SQL Tabellenfunktion: Prüfung diverser Werte und Eingaben bei Betätigung das Abschluss Buttons
-- Stand: MK // 01.02.2021
-- PM Profil: VHM - ER 4.0 - Prüfung durch die Fachabteilung
CREATE FUNCTION [dbo].[FNCUST_TEST_PM_USER_INPUT_PROFILEID_4] (
@Status_Detail VARCHAR(150), -- = '{#CTRL#DGV_Status-Detail}',
@Status_Detail_Text VARCHAR(200) -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}';
)
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
[QUESTION] [VARCHAR](max) NULL,
[TITLE] [VARCHAR](max) NULL)
AS
BEGIN
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
@QUESTION VARCHAR(300) = '',
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!',
@Fremdreferenz1Count INT = 0;
----------------------------------------------------------------------------------------------------------------------------------
IF (@Status_Detail LIKE 'Abgelehnt%') and (LEN(@STATUS_DETAIL_TEXT) < 4) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Sie müssen eine Begründung eintragen (mind. 4 Zeichen)!'
END
ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_PM_DECISION_LIST_PROFILEID_4]())) -- Stop Grund
BEGIN
SET @MSGTYPE = 'MsgBoxStop'
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
END
ELSE
BEGIN
SET @MSGTYPE = 'Continue'
SET @QUESTION = ''
END
----------------------------------------------------------------------------------------------------------------------------------
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
VALUES (@MsgType, @QUESTION, @TITLE)
RETURN;
END
GO

View File

@@ -0,0 +1,192 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNDD_CHECK_USER_MODULE] Script Date: 21.03.2024 16:46:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stand: MK // 04.05.2021
-- 04.05.2021 Default Wert für @ADDITIONAL_TITLE gesetzt, da sonst der CW nicht gestartet werden kann.
-- 04.03.2021 Geändert: Abfragen für '#PM.MONITORING' - nur noch Admins, GF und Fibu
-- 26.01.2021 Hinzugefügt: "SET @USER_RIGHT_FILE_DEL = 1"
CREATE FUNCTION [dbo].[FNDD_CHECK_USER_MODULE] (@pUSERNAME VARCHAR(100), @pMODULE_SHORT_NAME VARCHAR(10),@pCLIENTID INTEGER)
RETURNS @Table TABLE
(SequentialOrder INT IDENTITY(1, 1),
USER_ID INTEGER,
USER_PRENAME VARCHAR(50),
USER_SURNAME VARCHAR(50),
USER_SHORTNAME VARCHAR(50),
USER_EMAIL VARCHAR(100),
USER_LANGUAGE VARCHAR(10),
USER_DATE_FORMAT VARCHAR(10),
USER_RIGHT_FILE_DEL BIT,
MODULE_ACCESS BIT,
IS_ADMIN BIT,
USERCOUNT_LOGGED_IN INTEGER,
COMMENT VARCHAR(500),
USER_RIGHT2 BIT NOT NULL DEFAULT 1,
USER_RIGHT3 BIT NOT NULL DEFAULT 0,
USER_RIGHT4 BIT NOT NULL DEFAULT 0,
USER_RIGHT5 BIT NOT NULL DEFAULT 0,
WORKING_MODE VARCHAR(5000) NOT NULL DEFAULT ''
,ADDITIONAL_TITLE VARCHAR(200))
AS
BEGIN
/*
This function checks all user-relevant relations an
*/
DECLARE
@RESULT VARCHAR(500),
@USER_ID INTEGER,
@USER_PRENAME VARCHAR(50),
@USER_SURNAME VARCHAR(50),
@USER_SHORTNAME VARCHAR(50),
@USER_EMAIL VARCHAR(50),
@USER_LANGUAGE VARCHAR(10),
@USER_DATE_FORMAT VARCHAR(10),
@IS_IN_MODULE BIT,
@IS_ADMIN BIT,
@USER_RIGHT_FILE_DEL BIT,
@USER_RIGHT2 BIT,
@USER_RIGHT3 BIT,
@USER_RIGHT4 BIT,
@USER_RIGHT5 BIT,
@USERCOUNT_LOGGED_IN INTEGER,
@MODULE_NAME VARCHAR(100),
@MODULE_GUID INTEGER,
@USER_GROUPNAME VARCHAR(100),
@ADMIN_GROUPNAME VARCHAR(100),
@WORKING_MODE VARCHAR(1000),
@ADDITIONAL_TITLE VARCHAR(500) = 'Versorgungsbetriebe Hann. Münden - Workflows';
--'PM#NO_MASS_VALIDATOR;PM#FORCE_LAYOUT_OVERVIEW;PM#NO_CHARTS;PM#DEBUG_LOG'
SET @USER_RIGHT2 = 0 --1 = DocumentPropertyView only View
SET @USER_RIGHT3 = 0
SET @USER_RIGHT4 = 0
SET @USER_RIGHT5 = 0
DECLARE @CONN_ID_IDB INTEGER
SELECT @CONN_ID_IDB = GUID FROM TBDD_CONNECTION WHERE SYS_CONNECTION = 1 AND BEZEICHNUNG = 'IDB'
SET @WORKING_MODE = ''
IF @pMODULE_SHORT_NAME = 'PM'
BEGIN
SET @WORKING_MODE = 'PM.NO_MASS_VALIDATOR#PM.FORCE_LAYOUT_OVERVIEW#PM.DEBUG_LOG#PM.COL_LAST_EDITED=[Letzte Bearbeitung]#PM.COL_LAST_ADDED=[Erhalten wann]'--#PM.IDBWITHWMFS#PM.IDB_CONID!' + CONVERT(VARCHAR(2),@CONN_ID_IDB)
+'#PM.COLORSCHEME=Blue'
END
SET @USER_ID = 0
SET @IS_ADMIN = 0
SET @IS_IN_MODULE = 0
SET @USERCOUNT_LOGGED_IN = 0
SET @RESULT = ''
IF @pMODULE_SHORT_NAME = 'PM'
BEGIN
SET @USER_GROUPNAME = 'PM_USER'
SET @ADMIN_GROUPNAME = 'PM_ADMINS'
END
ELSE IF @pMODULE_SHORT_NAME = 'CW'
BEGIN
SET @USER_GROUPNAME = 'CW_USER'
SET @ADMIN_GROUPNAME = 'CW_ADMINS'
END
ELSE IF @pMODULE_SHORT_NAME = 'ADDI'
BEGIN
SET @USER_GROUPNAME = 'ADDI_USER'
SET @ADMIN_GROUPNAME = 'ADDI_ADMINS'
END
ELSE IF @pMODULE_SHORT_NAME = 'GLOBIX'
BEGIN
SET @USER_GROUPNAME = 'GLOBIX_USER'
SET @ADMIN_GROUPNAME = 'GLOBIX_ADMINS'
END
ELSE IF @pMODULE_SHORT_NAME = 'UM'
BEGIN
SET @USER_GROUPNAME = 'XXXX'
SET @ADMIN_GROUPNAME = 'UM_ADMINS'
END
SELECT @MODULE_GUID = GUID, @MODULE_NAME = NAME FROM TBDD_MODULES WHERE SHORT_NAME = @pMODULE_SHORT_NAME
IF NOT EXISTS(SELECT GUID FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@pUSERNAME))
BEGIN
SET @RESULT = 'USER NOT CONFIGURED OR LISTED'
END
ELSE
BEGIN
SELECT @USER_ID = GUID,@USER_PRENAME = PRENAME,
@USER_SURNAME = NAME, @USER_SHORTNAME = COALESCE(SHORTNAME,''),@USER_EMAIL = COALESCE(EMAIL,''),@USER_LANGUAGE = LANGUAGE,@USER_DATE_FORMAT = DATE_FORMAT FROM TBDD_USER WHERE UPPER(USERNAME) = UPPER(@pUSERNAME)
IF @USER_ID NOT IN (1,3)
SET @WORKING_MODE = @WORKING_MODE + '#PM.NO_CHARTS'
IF @USER_ID IN (1)
SET @WORKING_MODE = @WORKING_MODE + '#PM.GHOSTMODE'
--##### LICENSE COUNT
--SELECT @USERCOUNT_LOGGED_IN = [dbo].[FNDD_GET_LICENSE_COUNT] (@pCLIENTID)
SELECT @USERCOUNT_LOGGED_IN = COUNT(*) FROM TBDD_USER_MODULE_LOG_IN WHERE UPPER(MODULE) = UPPER(@MODULE_NAME) AND CLIENT_ID = @pCLIENTID
--CHECK USER ÍS IN MODULE_USER_GROUP
IF EXISTS(select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = @USER_ID AND UPPER(T.NAME) = @USER_GROUPNAME)
BEGIN
SET @IS_IN_MODULE = 1
SET @RESULT = 'User is part of Group (' + @USER_GROUPNAME + ')'
IF EXISTS(select T.* from TBDD_USER_MODULES T WHERE T.USER_ID = @USER_ID AND T.MODULE_ID = @MODULE_GUID)
BEGIN
SET @RESULT = @RESULT + '| User is also configured in User-Modules'
select @IS_ADMIN = T.IS_ADMIN,@USER_RIGHT_FILE_DEL = T.RIGHT1 from TBDD_USER_MODULES T WHERE T.USER_ID = @USER_ID AND T.MODULE_ID = @MODULE_GUID
END
END
ELSE
BEGIN
SET @RESULT = 'User not part of group (' + @USER_GROUPNAME + ')'
IF EXISTS(select T.* from TBDD_USER_MODULES T WHERE T.USER_ID = @USER_ID AND T.MODULE_ID = @MODULE_GUID)
BEGIN
SET @RESULT = @RESULT + '| BUT User configured in User-Modules'
select @IS_ADMIN = T.IS_ADMIN,@USER_RIGHT_FILE_DEL = T.RIGHT1
--,@USER_RIGHT2 = T.RIGHT2
from TBDD_USER_MODULES T WHERE T.USER_ID = @USER_ID AND T.MODULE_ID = @MODULE_GUID
END
END
-- Admin can do all!
IF EXISTS(select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = @USER_ID AND UPPER(T.NAME) = @ADMIN_GROUPNAME)
BEGIN
SET @RESULT = @RESULT + '| User is part of group (' + @ADMIN_GROUPNAME + ')'
SET @IS_ADMIN = 1
SET @IS_IN_MODULE = 1
SET @USER_RIGHT_FILE_DEL = 1
END
-- Scan Erfasser dürfen Dateien auch wieder löschen
IF EXISTS(select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = @USER_ID AND (UPPER(T.NAME) like '%Scan-Erfasser' ))
BEGIN
SET @USER_RIGHT_FILE_DEL = 1
END
-----------------------------------------------------------------------
-- GF, Admin und Fibu Gruppen sollen das Monitoring sehen, sonst keiner
--IF EXISTS(select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = @USER_ID AND (UPPER(T.NAME) like '%Geschäftsführung' OR UPPER(T.NAME) like '%FiBu' OR UPPER(T.NAME) like '%Admins'))
-- Änderung 21.12.2022 laut EMail Däumichen (20.12) sollen alle das Monitoring sehen dürfen
BEGIN
SET @WORKING_MODE = @WORKING_MODE + '#PM.MONITORING'
END
-----------------------------------------------------------------------
END
INSERT INTO @Table (USER_ID,USER_PRENAME, USER_SURNAME,USER_SHORTNAME,USER_EMAIL,USER_LANGUAGE,USER_DATE_FORMAT, USER_RIGHT_FILE_DEL,
MODULE_ACCESS,IS_ADMIN,USERCOUNT_LOGGED_IN, COMMENT,WORKING_MODE,USER_RIGHT2,USER_RIGHT3,USER_RIGHT4,USER_RIGHT5
,ADDITIONAL_TITLE)
VALUES (@USER_ID,@USER_PRENAME,@USER_SURNAME,@USER_SHORTNAME,@USER_EMAIL,@USER_LANGUAGE,@USER_DATE_FORMAT,@USER_RIGHT_FILE_DEL,
@IS_IN_MODULE,@IS_ADMIN,@USERCOUNT_LOGGED_IN,@RESULT,@WORKING_MODE,@USER_RIGHT2,@USER_RIGHT3,@USER_RIGHT4,@USER_RIGHT5
,@ADDITIONAL_TITLE)
RETURN
END
GO

View File

@@ -0,0 +1,173 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNPM_CUST_GET_DOC_IDS] Script Date: 21.03.2024 16:47:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- 16.12.2022 MS AdHocWorkflows integriert
-- 28.09.2021 Doppelte Anzeige in der Stellvertretung wird nun verhindert
-- 20.09.2021 Stellvertretungs Profil 4.2 hinzugefügt
-- 27.08.2021 Abfage für Profile 96 hinzugefügt
CREATE FUNCTION [dbo].[FNPM_CUST_GET_DOC_IDS] (@USER_ID INTEGER)
RETURNS
@Table TABLE
(SCOPE VARCHAR(50),DOC_GUID BIGINT,DOC_ID BIGINT,PROFIL_ID INT, SequentialOrder INT IDENTITY(1, 1))
AS
BEGIN
DECLARE
@P_ID INTEGER,
@P_NAME VARCHAR(50),
@P_4_0_ID INTEGER = 4,
@P_4_1_ID INTEGER = 2010,
@P_4_2_ID INTEGER = 2023,
@P_96_ID INTEGER = 2025,
@PID_AHWF_WORK INTEGER = 2030;
------------------------------------------------------------------------------------------------------------
INSERT INTO @Table (SCOPE,DOC_GUID,DOC_ID,PROFIL_ID)
SELECT
'ACTIVE PROFILES',T.GUID, T.DOC_ID,T.PROFIL_ID
FROM
TBPM_PROFILE_FILES T INNER JOIN TBPM_PROFILE T1 on T.PROFIL_ID = T1.GUID
INNER JOIN windream60.dbo.BaseAttributes TWM_BA ON T.DOC_ID = TWM_BA.dwDocID
INNER JOIN [dbo].[FNPM_GET_ACTIVE_PROFILES_USER] (@USER_ID) T2 ON T.PROFIL_ID = T2.PROFILE_ID --INNER JOIN [dbo].[FNPM_GET_ACTIVE_PROFILES_USER] (2)
AND T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1 AND T1.ACTIVE = 1
AND T2.PROFILE_ID <> @P_4_0_ID
AND T2.PROFILE_ID <> @P_4_1_ID
AND T2.PROFILE_ID <> @PID_AHWF_WORK;
------------------------------------------------------------------------------------------------------------
-- Profile 4 und 4.1 sollen nur von der FiBu und des jeweils eingetragenen Prüfer gesichtet werden können
INSERT INTO @Table (SCOPE,DOC_GUID,DOC_ID,PROFIL_ID)
SELECT 'PROFILE4', T.GUID, T.DOC_ID,T.PROFIL_ID
FROM
TBPM_PROFILE_FILES T
INNER JOIN windream60.dbo.BaseAttributes TWMBA ON T.DOC_ID = TWMBA.dwDocID
INNER JOIN TBDD_USER T2 ON UPPER(TWMBA.sztext22) = UPPER(T2.USERNAME)
INNER JOIN TBPM_PROFILE TP ON T.PROFIL_ID = TP.GUID
WHERE
T.PROFIL_ID = @P_4_0_ID AND T2.GUID = @USER_ID
AND T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1
AND TP.ACTIVE = 1
------------------------------------------------------------------------------------------------------------
-- Profile 4.1 und 4 sollen nur von der FiBu und des jeweils eingetragenen Prüfer gesichtet werden können
INSERT INTO @Table (SCOPE,DOC_GUID,DOC_ID,PROFIL_ID)
SELECT 'PROFILE4.1', T.GUID, T.DOC_ID,T.PROFIL_ID
FROM
TBPM_PROFILE_FILES T
INNER JOIN windream60.dbo.BaseAttributes TWMBA ON T.DOC_ID = TWMBA.dwDocID
INNER JOIN TBDD_USER T2 ON UPPER(TWMBA.sztext22) = UPPER(T2.USERNAME)
INNER JOIN TBPM_PROFILE TP ON T.PROFIL_ID = TP.GUID
WHERE
T.PROFIL_ID = @P_4_1_ID AND T2.GUID = @USER_ID
AND T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1
AND TP.ACTIVE = 1
------------------------------------------------------------------------------------------------------------
-- Profile 4.2 Prüfung durch die Fachabteilung in Stellvertretung
INSERT INTO @Table (SCOPE,DOC_GUID,DOC_ID,PROFIL_ID)
SELECT 'PROFILE4.2', T.GUID, T.DOC_ID,T.PROFIL_ID
FROM
TBPM_PROFILE_FILES T
INNER JOIN windream60.dbo.BaseAttributes TWMBA ON T.DOC_ID = TWMBA.dwDocID
INNER JOIN TBDD_USER T2 ON UPPER(TWMBA.sztext22) = UPPER(T2.USERNAME)
INNER JOIN TBPM_PROFILE TP ON T.PROFIL_ID = TP.GUID
WHERE
T.PROFIL_ID = @P_4_2_ID AND T2.GUID <> @USER_ID
AND T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1
AND TP.ACTIVE = 1
AND (TWMBA.szText30) in (SELECT REPR_GROUPNAME FROM [VWCUST_USER_REPRESENTATION] WHERE USER_ID = @USER_ID)
------------------------------------------------------------------------------------------------------------
-- Profil 96 sollte nur von der FiBu und des jeweils eingetragenen Prüfer gesichtet werden können
-- Ausgeschaltet damit FiBu Benutzer alles aus ER 6 sehen können
--INSERT INTO @Table (SCOPE,DOC_GUID,DOC_ID,PROFIL_ID)
-- SELECT 'PROFILE96', T.GUID, T.DOC_ID,T.PROFIL_ID
-- FROM
-- TBPM_PROFILE_FILES T
-- INNER JOIN windream60.dbo.BaseAttributes TWMBA ON T.DOC_ID = TWMBA.dwDocID
-- INNER JOIN TBDD_USER T2 ON UPPER(TWMBA.sztext22) = UPPER(T2.USERNAME)
-- INNER JOIN TBPM_PROFILE TP ON T.PROFIL_ID = TP.GUID
-- WHERE
-- T.PROFIL_ID = @P_96_ID AND T2.GUID = @USER_ID
-- AND T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1
-- AND TP.ACTIVE = 1
------------------------------------------------------------------------------------------------------------
--Profile 2030 - AdHocWorkflow-Personal
INSERT INTO @Table (SCOPE,DOC_GUID,DOC_ID,PROFIL_ID)
SELECT 'AHWF PERSONAL'+TP.TITLE, T.GUID, T.DOC_ID,T.PROFIL_ID
FROM
TBPM_PROFILE_FILES T
INNER JOIN windream60.dbo.BaseAttributes TWMBA ON T.DOC_ID = TWMBA.dwDocID
INNER JOIN TBDD_USER T2 ON TWMBA.sztext22 = T2.EMAIL
INNER JOIN TBPM_PROFILE TP ON T.PROFIL_ID = TP.GUID
WHERE
TP.GUID = @PID_AHWF_WORK AND
T2.GUID = @USER_ID
AND T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1
AND TP.ACTIVE = 1
--Profile 2030 - AdHocWorkflow GROUP
INSERT INTO @Table (SCOPE,DOC_GUID,DOC_ID,PROFIL_ID)
SELECT 'AHWF GROUP'+TP.TITLE, T.GUID, T.DOC_ID,T.PROFIL_ID
FROM
TBPM_PROFILE_FILES T
INNER JOIN windream60.dbo.BaseAttributes TWMBA ON T.DOC_ID = TWMBA.dwDocID
INNER JOIN VWDD_USER2GROUP T2 ON TWMBA.sztext10 = T2.NAME
INNER JOIN TBPM_PROFILE TP ON T.PROFIL_ID = TP.GUID
WHERE
TP.GUID = @PID_AHWF_WORK AND
T2.GUID = @USER_ID
AND T.EDIT = 0 AND T.IN_WORK = 0 AND T.ACTIVE = 1
AND TP.ACTIVE = 1
--Wenn User Mitgleid von PM_ADMIN ist...
IF EXISTS(SELECT GUID FROM TBDD_GROUPS_USER WHERE GROUP_ID = 2 AND USER_ID = @USER_ID)
--Wenn es Belege zu Profil 4 gibt ist...
IF EXISTS(SELECT
T.DOC_ID
FROM
TBPM_PROFILE_FILES T
INNER JOIN windream60.dbo.BaseAttributes TWMBA ON T.DOC_ID = TWMBA.dwDocID
INNER JOIN TBDD_USER T2 ON UPPER(TWMBA.sztext22) <> UPPER(T2.USERNAME)
INNER JOIN TBPM_PROFILE TP ON T.PROFIL_ID = TP.GUID
WHERE
T2.GUID = @USER_ID
AND TP.ACTIVE = 1
AND T.PROFIL_ID = @P_4_0_ID
OR T.PROFIL_ID = @P_4_1_ID )
INSERT INTO @Table (SCOPE,DOC_GUID,DOC_ID,PROFIL_ID)
SELECT 'PROFILE4_ADMIN',T.GUID,T.DOC_ID,T.PROFIL_ID
FROM
TBPM_PROFILE_FILES T
INNER JOIN windream60.dbo.BaseAttributes TWMBA ON T.DOC_ID = TWMBA.dwDocID
INNER JOIN TBDD_USER T2 ON UPPER(TWMBA.sztext22) <> UPPER(T2.USERNAME)
WHERE
T2.GUID = @USER_ID
AND (T.PROFIL_ID = @P_4_0_ID
OR T.PROFIL_ID = @P_4_1_ID )
RETURN
END
--SELECT * FROM [dbo].[FNPM_CUST_GET_DOC_IDS] (2)
GO

View File

@@ -0,0 +1,81 @@
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNPM_GET_NEXT_DOC_INFO] Script Date: 21.03.2024 16:46:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Digital Data MS
-- Create date: 27.11.2019
-- Description: Gets the next DocumentID
-- =============================================
-- Stand: MK // 08.03.2021
-- Unterer Teil auskommentiert, [FNPM_CUST_GET_DOC_IDS] eingebaut um Prüfer zuweisung in Schritt 4 zu respektieren
-- Stand: MS // 12.03.2021
-- [FNPM_CUST_GET_DOC_IDS].Doc_GUID > @DocGUID Um das Weiterspringen zu gewährleisten
CREATE FUNCTION [dbo].[FNPM_GET_NEXT_DOC_INFO] (
@PROFIL_ID Integer,
@OrderByNewest Bit,
@DocGUID BigInt,
@USERNAME VARCHAR(50)
)
RETURNS @Output TABLE (DocGUID BIGINT,DocID BIGINT)
AS
BEGIN
DECLARE @USER_ID INTEGER = (SELECT GUID FROM [TBDD_USER] WHERE UPPER(USERNAME) = UPPER(@USERNAME));
INSERT INTO @Output (DocGUID, DocID)
SELECT [GUID], [DOC_ID]
FROM [TBPM_PROFILE_FILES]
WHERE GUID = (
SELECT MIN([FNPM_CUST_GET_DOC_IDS].Doc_GUID)
FROM [dbo].[FNPM_CUST_GET_DOC_IDS] (@USER_ID), [TBPM_PROFILE_FILES]
where [FNPM_CUST_GET_DOC_IDS].PROFIL_ID = @PROFIL_ID
AND [FNPM_CUST_GET_DOC_IDS].DOC_ID = [TBPM_PROFILE_FILES].DOC_ID
AND [TBPM_PROFILE_FILES].EDIT = 0
AND [TBPM_PROFILE_FILES].IN_WORK = 0
AND [FNPM_CUST_GET_DOC_IDS].DOC_GUID <> @DocGUID
AND [GUID] NOT IN (
SELECT [DocGUID]
FROM [TBPM_FILES_USER_NOT_INDEXED]
WHERE PROFIL_ID = @PROFIL_ID
AND UPPER(USR_NAME) = UPPER(@USERNAME)
)
AND [FNPM_CUST_GET_DOC_IDS].Doc_GUID > @DocGUID
)
--IF @OrderByNewest = 0
-- INSERT INTO @Output (DocGUID,DocID)
-- SELECT Top 1 GUID, DOC_ID FROM TBPM_PROFILE_FILES WHERE
-- PROFIL_ID = @PROFIL_ID AND EDIT = 0 AND IN_WORK = 0 AND
-- GUID <> @DocGUID AND GUID NOT IN (
-- SELECT DocGUID
-- FROM TBPM_FILES_USER_NOT_INDEXED
-- WHERE (PROFIL_ID = @PROFIL_ID) AND (UPPER(USR_NAME) = UPPER(@USERNAME))
-- )
--ELSE
-- INSERT INTO @Output (DocGUID,DocID)
-- SELECT Top 1 GUID, DOC_ID FROM TBPM_PROFILE_FILES WHERE
-- PROFIL_ID = @PROFIL_ID AND EDIT = 0 AND IN_WORK = 0 AND
-- GUID <> @DocGUID AND GUID NOT IN (
-- SELECT DocGUID
-- FROM TBPM_FILES_USER_NOT_INDEXED
-- WHERE (PROFIL_ID = @PROFIL_ID) AND (UPPER(USR_NAME) = UPPER(@USERNAME)))
-- ORDER BY DMS_ERSTELLT_DATE DESC,GUID DESC
RETURN
END
GO