8
0

The complete folder structure has been changed or updated

This commit is contained in:
2025-09-19 18:24:40 +02:00
parent 796473a8c9
commit 1f0d1613a5
216 changed files with 330971 additions and 809 deletions

View File

@@ -0,0 +1,435 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [PRDD_GET_TRANSLATED_CHOICELIST]
-- =================================================================
-- Replaces placeholders like "%term%" to a translated term
-- for the choise list column header.
--
-- Returns: INT Value - 0 = Everything worked well
-- =================================================================
-- Copyright (c) 2025 by Digital Data GmbH
--
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
-- =================================================================
-- Creation Date / Author: 19.09.2025 / MK
-- Version Date / Editor: 19.09.2025 / MK
-- Version Number: 1.0.0.0
-- =================================================================
-- History:
-- 19.09.2025 / MK - First Version
CREATE OR ALTER PROCEDURE [dbo].[PRDD_GET_TRANSLATED_CHOICELIST]
@pSOURCE_QUERY NVARCHAR(2000),
@pLANGUAGE NVARCHAR(5)
AS
BEGIN TRY
SET NOCOUNT ON;
-- declare new vars because of parameter sniffing
DECLARE @SOURCE_QUERY NVARCHAR(2000) = LTRIM(RTRIM(ISNULL(@pSOURCE_QUERY,''))),
@LANGUAGE NVARCHAR(5) = UPPER(LTRIM(RTRIM(ISNULL(@pLANGUAGE,'DE-de'))));
DECLARE @vTB_DICTIONARY TABLE ([GUID] [BIGINT] IDENTITY(1,1) NOT NULL,
[LANGUAGE] [NVARCHAR](5) NOT NULL,
[TERM] [NVARCHAR](150) NOT NULL,
[TRANSLATION] [NVARCHAR](150) NOT NULL);
-- declare runtime vars
DECLARE @MY_PROCEDURE_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
DECLARE @TERM NVARCHAR(150),
@TRANSLATION NVARCHAR(150),
@PERCENT_COUNT TINYINT = 0,
@RETURN_STATUS NVARCHAR(50) = 0,
@RETURN_STATUS_TEXT NVARCHAR(MAX) = 'START [' + @MY_PROCEDURE_NAME + '] @ ' + CONVERT(varchar(50),GETDATE(),120),
@RETURN_ERROR_TEXT NVARCHAR(MAX) = '';
PRINT '====================================================================================================';
PRINT 'PROCEDURE - ' + @return_status_text;
PRINT 'PARAMETER01 - @SOURCE_QUERY: ' + CONVERT(NVARCHAR(50),@SOURCE_QUERY);
PRINT 'PARAMETER02 - @LANGUAGE: ' + CONVERT(NVARCHAR(50),@LANGUAGE);
--===============================================-- Common translations --=================================================--
IF (@LANGUAGE IN ('DE-DE','DE_DE')) BEGIN
INSERT INTO @vTB_DICTIONARY([LANGUAGE],[TERM],[TRANSLATION])
SELECT 'DE-de','id','ID'
UNION ALL
SELECT 'DE-de','selection','Auswahl'
UNION ALL
SELECT 'DE-de','result','Ergebnis'
UNION ALL
SELECT 'DE-de','description','Beschreibung'
UNION ALL
SELECT 'DE-de','customer','Kunde'
UNION ALL
SELECT 'DE-de','vendor','Lieferant'
UNION ALL
SELECT 'DE-de','number','Nummer'
UNION ALL
SELECT 'DE-de','payment','Zahlung'
UNION ALL
SELECT 'DE-de','flag','Kennzeichen'
UNION ALL
SELECT 'DE-de','street','Straße'
UNION ALL
SELECT 'DE-de','city','Ort'
UNION ALL
SELECT 'DE-de','postal code','Postleitzahl'
UNION ALL
SELECT 'DE-de','zip code','PLZ'
UNION ALL
SELECT 'DE-de','user','Benutzer'
UNION ALL
SELECT 'DE-de','group','Gruppe'
UNION ALL
SELECT 'DE-de','VAT-ID','Umsatzsteuer-ID'
UNION ALL
SELECT 'DE-de','accounting','Kontierung'
UNION ALL
SELECT 'DE-de','history','Historie'
UNION ALL
SELECT 'DE-de','item','Artikel'
UNION ALL
SELECT 'DE-de','head','Kopf'
UNION ALL
SELECT 'DE-de','account','Konto'
UNION ALL
SELECT 'DE-de','date','Datum'
UNION ALL
SELECT 'DE-de','quantity','Menge'
UNION ALL
SELECT 'DE-de','amount','Betrag'
UNION ALL
SELECT 'DE-de','discount','Rabatt'
UNION ALL
SELECT 'DE-de','charge','Gebühr'
UNION ALL
SELECT 'DE-de','fee','Gebühr'
UNION ALL
SELECT 'DE-de','rate','Rate'
UNION ALL
SELECT 'DE-de','confirmed','Bestätigt'
UNION ALL
SELECT 'DE-de','rejected','Abgelehnt'
UNION ALL
SELECT 'DE-de','document','Dokument'
UNION ALL
SELECT 'DE-de','documents','Dokumente'
UNION ALL
SELECT 'DE-de','approval','Freigabe'
UNION ALL
SELECT 'DE-de','approvals','Freigaben'
UNION ALL
SELECT 'DE-de','creditor','Kreditor'
UNION ALL
SELECT 'DE-de','no','Nr'
UNION ALL
SELECT 'DE-de','name','Name'
END; ELSE IF (@LANGUAGE IN ('FR-fr','FR_fr')) BEGIN
INSERT INTO @vTB_DICTIONARY([LANGUAGE],[TERM],[TRANSLATION])
SELECT 'FR-fr','id','ID'
UNION ALL
SELECT 'FR-fr','selection','Sélection'
UNION ALL
SELECT 'FR-fr','result','Résultat'
UNION ALL
SELECT 'FR-fr','description','Description'
UNION ALL
SELECT 'FR-fr','customer','Client'
UNION ALL
SELECT 'FR-fr','vendor','Fournisseur'
UNION ALL
SELECT 'FR-fr','number','Numéro'
UNION ALL
SELECT 'FR-fr','payment','Paiement'
UNION ALL
SELECT 'FR-fr','flag','Plaque d'+ char(39) +'immatriculation'
UNION ALL
SELECT 'FR-fr','street','Rue'
UNION ALL
SELECT 'FR-fr','city','Ville'
UNION ALL
SELECT 'FR-fr','postal code','Code postal'
UNION ALL
SELECT 'FR-fr','zip code','CP'
UNION ALL
SELECT 'FR-fr','user','Utilisateur'
UNION ALL
SELECT 'FR-fr','group','Groupe'
UNION ALL
SELECT 'FR-fr','VAT-ID','Numéro d' + char(39) + 'identification fiscale'
UNION ALL
SELECT 'FR-fr','accounting','Imputation'
UNION ALL
SELECT 'FR-fr','history','Historique'
UNION ALL
SELECT 'FR-fr','item','Article'
UNION ALL
SELECT 'FR-fr','head','En-tête'
UNION ALL
SELECT 'FR-fr','account','Compte'
UNION ALL
SELECT 'FR-fr','date','Date'
UNION ALL
SELECT 'FR-fr','quantity','Quantité'
UNION ALL
SELECT 'FR-fr','amount','Montant'
UNION ALL
SELECT 'FR-fr','discount','Remise'
UNION ALL
SELECT 'FR-fr','charge','Frais'
UNION ALL
SELECT 'FR-fr','fee','Frais'
UNION ALL
SELECT 'FR-fr','rate','Taux'
UNION ALL
SELECT 'FR-fr','confirmed','Confirmé'
UNION ALL
SELECT 'FR-fr','rejected','Refusé'
UNION ALL
SELECT 'FR-fr','document','Document'
UNION ALL
SELECT 'FR-fr','documents','Documents'
UNION ALL
SELECT 'FR-fr','approval','Validation'
UNION ALL
SELECT 'FR-fr','approvals','Validations'
UNION ALL
SELECT 'FR-fr','creditor','Créditer'
UNION ALL
SELECT 'FR-fr','No','No'
UNION ALL
SELECT 'FR-fr','Name','Nom'
END;
-----------------------------------------------------------------------------------------------------------------------------
--=============================================-- Replace term placeholder --==============================================--
DECLARE CURSOR_REPLACE_TERMS CURSOR STATIC LOCAL FOR
SELECT [TERM], [TRANSLATION]
FROM @vTB_DICTIONARY
WHERE UPPER([LANGUAGE]) IN (REPLACE(@LANGUAGE,'-','_'),REPLACE(@LANGUAGE,'_','-'));
OPEN CURSOR_REPLACE_TERMS
FETCH NEXT FROM CURSOR_REPLACE_TERMS INTO @TERM, @TRANSLATION;
WHILE @@FETCH_STATUS = 0 BEGIN
BEGIN
PRINT 'Replacing Term: ' + @TERM + ', with translation: ' + @TRANSLATION;
SET @SOURCE_QUERY = REPLACE(@SOURCE_QUERY,concat('%',@TERM,'%'),@TRANSLATION);
END;
FETCH NEXT FROM CURSOR_REPLACE_TERMS INTO @TERM, @TRANSLATION;
END;
CLOSE CURSOR_REPLACE_TERMS;
DEALLOCATE CURSOR_REPLACE_TERMS;
-----------------------------------------------------------------------------------------------------------------------------
--==============================================-- Additional ressource 1 --===============================================--
IF (@SOURCE_QUERY LIKE '%%%') BEGIN
PRINT 'Found further terms for replacement!';
SET @PERCENT_COUNT = (SELECT LEN(@SOURCE_QUERY) - LEN(REPLACE(@SOURCE_QUERY,'%','')));
IF (@PERCENT_COUNT % 2 = 0) BEGIN
PRINT 'There are an even amount of "%" found!';
IF EXISTS (SELECT * FROM [INFORMATION_SCHEMA].[TABLES] WHERE TABLE_NAME = N'TBDD_TRANSLATED_CHOICELIST_COLUMNS') BEGIN
PRINT 'Getting additional ressources from [TBDD_TRANSLATED_CHOICELIST_COLUMNS]';
IF ((SELECT COUNT(*) FROM @vTB_DICTIONARY) = 0) BEGIN
PRINT 'Query additional source table';
DELETE FROM @vTB_DICTIONARY;
INSERT INTO @vTB_DICTIONARY([LANGUAGE],[TERM],[TRANSLATION])
SELECT @LANGUAGE, [TERM],[TRANSLATION]
FROM [TBDD_TRANSLATED_CHOICELIST_COLUMNS] WITH (SNAPSHOT)
WHERE UPPER([LANGUAGE]) IN (REPLACE(@LANGUAGE,'-','_'),REPLACE(@LANGUAGE,'_','-'));
--=============================================-- Replace term placeholder --==============================================--
DECLARE CURSOR_REPLACE_TERMS CURSOR STATIC LOCAL FOR
SELECT [TERM], [TRANSLATION]
FROM @vTB_DICTIONARY
WHERE UPPER([LANGUAGE]) IN (REPLACE(@LANGUAGE,'-','_'),REPLACE(@LANGUAGE,'_','-'));
OPEN CURSOR_REPLACE_TERMS
FETCH NEXT FROM CURSOR_REPLACE_TERMS INTO @TERM, @TRANSLATION;
WHILE @@FETCH_STATUS = 0 BEGIN
BEGIN
PRINT 'Replacing Term: ' + @TERM + ', with translation: ' + @TRANSLATION;
SET @SOURCE_QUERY = REPLACE(@SOURCE_QUERY,concat('%',@TERM,'%'),@TRANSLATION);
END;
FETCH NEXT FROM CURSOR_REPLACE_TERMS INTO @TERM, @TRANSLATION;
END;
CLOSE CURSOR_REPLACE_TERMS;
DEALLOCATE CURSOR_REPLACE_TERMS;
-----------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
PRINT 'No content in additional source table!';
END;
END; ELSE BEGIN
PRINT 'Additional ressources table [TBDD_TRANSLATED_CHOICELIST_COLUMNS] not found!';
END;
END; ELSE BEGIN
PRINT 'There are an odd amount of "%" found!';
END;
END; ELSE BEGIN
PRINT 'No further terms for replacement found!';
END;
-----------------------------------------------------------------------------------------------------------------------------
--==============================================-- Additional ressource 2 --===============================================--
IF (@SOURCE_QUERY LIKE '%%%') BEGIN
PRINT 'Found further terms for replacement!';
SET @PERCENT_COUNT = (SELECT LEN(@SOURCE_QUERY) - LEN(REPLACE(@SOURCE_QUERY,'%','')));
IF (@PERCENT_COUNT % 2 = 0) BEGIN
PRINT 'There are an even amount of "%" found!';
IF EXISTS (SELECT * FROM [INFORMATION_SCHEMA].[TABLES] WHERE TABLE_NAME = N'TBDD_GUI_LANGUAGE_PHRASE') BEGIN
PRINT 'Getting additional ressources from [TBDD_GUI_LANGUAGE_PHRASE]';
IF ((SELECT COUNT(*) FROM @vTB_DICTIONARY) = 0) BEGIN
PRINT 'Query additional source table';
DELETE FROM @vTB_DICTIONARY;
INSERT INTO @vTB_DICTIONARY([LANGUAGE],[TERM],[TRANSLATION])
SELECT @LANGUAGE, [TITLE] as [TERM], [STRING1] as[TRANSLATION]
FROM [TBDD_GUI_LANGUAGE_PHRASE] (NOLOCK)
WHERE UPPER([LANGUAGE]) IN (REPLACE(@LANGUAGE,'-','_'),REPLACE(@LANGUAGE,'_','-'));
--=============================================-- Replace term placeholder --==============================================--
DECLARE CURSOR_REPLACE_TERMS CURSOR STATIC LOCAL FOR
SELECT [TERM], [TRANSLATION]
FROM @vTB_DICTIONARY
WHERE UPPER([LANGUAGE]) IN (REPLACE(@LANGUAGE,'-','_'),REPLACE(@LANGUAGE,'_','-'));
OPEN CURSOR_REPLACE_TERMS
FETCH NEXT FROM CURSOR_REPLACE_TERMS INTO @TERM, @TRANSLATION;
WHILE @@FETCH_STATUS = 0 BEGIN
BEGIN
PRINT 'Replacing Term: ' + @TERM + ', with translation: ' + @TRANSLATION;
SET @SOURCE_QUERY = REPLACE(@SOURCE_QUERY,concat('%',@TERM,'%'),@TRANSLATION);
END;
FETCH NEXT FROM CURSOR_REPLACE_TERMS INTO @TERM, @TRANSLATION;
END;
CLOSE CURSOR_REPLACE_TERMS;
DEALLOCATE CURSOR_REPLACE_TERMS;
-----------------------------------------------------------------------------------------------------------------------------
END; ELSE BEGIN
PRINT 'No content in additional source table!';
END;
END; ELSE BEGIN
PRINT 'Additional ressources table [TBDD_GUI_LANGUAGE_PHRASE] not found!';
END;
END; ELSE BEGIN
PRINT 'There are an odd amount of "%" found!';
END;
END; ELSE BEGIN
PRINT 'No further terms for replacement found!';
END;
-----------------------------------------------------------------------------------------------------------------------------
--=========================================-- Default language will not resolved --========================================--
IF (@LANGUAGE IN ('EN-EN','EN_EN','EN-US','EN_US')) BEGIN
IF (@SOURCE_QUERY LIKE '%%%') BEGIN
PRINT 'Found default terms to replace only the "%"!';
SET @PERCENT_COUNT = (SELECT LEN(@SOURCE_QUERY) - LEN(REPLACE(@SOURCE_QUERY,'%','')));
IF (@PERCENT_COUNT % 2 = 0) BEGIN
PRINT 'There are an even amount of "%" found!';
SET @SOURCE_QUERY = REPLACE(@SOURCE_QUERY,'%','');
END; ELSE BEGIN
PRINT 'There are an odd amount of "%" found!';
END;
END; ELSE BEGIN
PRINT 'No further terms for replacement found!';
END;
END;
-----------------------------------------------------------------------------------------------------------------------------
--===================================================-- Final steps --=====================================================--
SET @SOURCE_QUERY = REPLACE(@SOURCE_QUERY,'@LANGUAGE',@LANGUAGE);
PRINT @SOURCE_QUERY;
EXECUTE sp_executesql @SOURCE_QUERY;
-----------------------------------------------------------------------------------------------------------------------------
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = 0;
SET @RETURN_STATUS_TEXT = concat('END PROCEDURE [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('','');
PRINT '' + char(13) + @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END TRY BEGIN CATCH
--======================================================-- Output result --======================================================--
SET @RETURN_STATUS = CASE WHEN @RETURN_STATUS > 50000 THEN @RETURN_STATUS ELSE 50000 END;
SET @RETURN_STATUS_TEXT = concat('END [',@MY_PROCEDURE_NAME,'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
SET @RETURN_ERROR_TEXT = concat('ERROR MESSAGE: ',CONVERT(NVARCHAR(500),ERROR_MESSAGE()));
PRINT '' + char(13) + 'ERROR IN PROCEDURE: [' + @MY_PROCEDURE_NAME + ']' + char(13) + @RETURN_ERROR_TEXT;
PRINT '' + char(13) + 'PROCEDURE - ' + @RETURN_STATUS_TEXT;
PRINT '====================================================================================================';
-----------------------------------------------------------------------------------------------------------------------------------
RETURN @RETURN_STATUS;
END CATCH;
---- Example call:
---- EXEC [dbo].[PRDD_GET_TRANSLATED_CHOICELIST]
---- @pSOURCE_QUERY = N'SELECT [ID] as ''%ID%'',[DESCRIPTION] as ''%DESCRIPTION%'' from [FNCUST_TF_GET_PAYMENT_METHODE](''@LANGUAGE'')',
---- @pLANGUAGE = N'de-de'
---- GO