Zugferd Sichtbeleg DD_ECm

INHERIT_VALUE Prüfung taskFLOW
This commit is contained in:
Developer01
2026-06-24 12:04:10 +02:00
parent 6bba79458a
commit 19113a5f36
4 changed files with 435 additions and 3 deletions

View File

@@ -101,9 +101,6 @@ END;
-- Test mit
-- SELECT * FROM [FNDD_GET_GROUP_FOR_USER](1,NULL,NULL,NULL)
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--Changed 22.05.2026 MS Prüfen ob IDB existiert
ALTER PROCEDURE [dbo].[PRPM_REMOVE_NE_FILES]

View File

@@ -0,0 +1,304 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.6.0';
GO
DELETE FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE;
Insert INTO TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE
(SPECNAME, Row_Caption, Area, xPosition, SequenceItem, Y_eq_lastrow, Display) values
('INVOICE_TYPE', '', 'TYPE', 10, 1, 0, 0),
('INVOICE_CURRENCY', '', 'TYPE', 10, 2, 0, 0),
('INVOICE_NUMBER', 'Rechnungsnummer/Invoice-No:', 'HEAD', 10, 3, 0, 1),
('INVOICE_DATE', 'Datum/Date:', 'HEAD', 10, 4, 0, 1),
('INVOICE_SERVICE_DATE','Leistungsdatum/Service date:', 'HEAD', 10, 5, 0, 1),
('INVOICE_COST_CENTER', 'BT-10 KäuferReferenz/BuyerRef.', 'HEAD', 10, 6, 0, 1),
('INVOICE_REFERENCE', 'BT-13 BestellReferenz/BORD:', 'HEAD', 10, 7, 0, 1),
('INVOICE_REFERENCE3', 'BT-19 KSt/CostCenter', 'HEAD', 10, 8, 0, 1),
('INVOICE_SELLER_NAME', '', 'SELLER', 10, 9, 0, 1),
('INVOICE_SELLER_ADDRESS', '', 'SELLER', 10, 10, 0, 1),
('INVOICE_SELLER_POSTALCODE', '', 'SELLER', 10, 11, 0, 1),
('INVOICE_SELLER_CITY', '', 'SELLER', 35, 12, 1, 1),
('INVOICE_SELLER_TAX_ID', 'USt-ID/Seller tax ID:', 'SELLER', 10, 13, 0, 1),
('INVOICE_SELLER_ID', 'Lieferant-Nr/Seller ID:', 'SELLER', 10, 14, 0, 1),
('INVOICE_BUYER_NAME', '', 'BUYER', 10, 15, 0, 1),
('INVOICE_BUYER_ADRESS2', '', 'BUYER', 10, 16, 0, 1),
('INVOICE_BUYER_ADRESS', '', 'BUYER', 10, 17, 0, 1),
('INVOICE_BUYER_POSTALCODE', '', 'BUYER', 10, 18, 0, 1),
('INVOICE_BUYER_CITY', '', 'BUYER', 35, 19, 1, 1),
--('STATIC_Y_SWITCH', '271', 'INTERNAL', 35, 15, 0, 0),
('INVOICE_POSITION_AMOUNT', '', 'POSITION', 10, 20, 0, 1),
('INVOICE_POSITION_UNIT_TYPE', '', 'POSITION', 10, 21, 1, 1),
('INVOICE_POSITION_ARTICLE', '', 'POSITION', 10, 22, 1, 1),
('INVOICE_POSITION_ARTICLE_DESCRIPTION', '', 'POSITION', 10, 23, 1, 1),
('INVOICE_POSITION_NOTE', '', 'POSITION', 10, 24, 1, 1),
('INVOICE_TAXPOS_TAX_RATE', '', 'POSITION', 10, 25, 1, 1),
('INVOICE_POSITION_TAX_AMOUNT', '', 'POSITION', 10, 26, 1, 1),
('INCLUDED_NOTE_CONTENT', '', 'INCLUDED_NOTE', 10, 40, 0, 1),
('POSITION_ALLOWANCE_ACTUAL_AMOUNT', '', 'ALLOWANCE',10, 100, 0, 1),
('POSITION_ALLOWANCE_REASON', '', 'ALLOWANCE',10, 101, 1, 1),
('POSITION_ALLOWANCE_REASON_CODE', '', 'ALLOWANCE',10, 102, 1, 1),
('POSITION_ALLOWANCE_CALCULATION_PERCENT', '', 'ALLOWANCE',10, 103, 0, 1),
('RECEIPT_ALLOWANCE_CHARGE_INDICATOR', '', 'ALLOWANCE',10, 110, 0, 0),
('RECEIPT_ALLOWANCE_ACTUAL_AMOUNT', '', 'ALLOWANCE',10, 111, 0, 1),
('RECEIPT_ALLOWANCE_REASON', '', 'ALLOWANCE',10, 112, 1, 1),
('RECEIPT_ALLOWANCE_REASON_CODE', '', 'ALLOWANCE',10, 113, 1, 1),
('RECEIPT_ALLOWANCE_CALCULATION_PERCENT', '', 'ALLOWANCE',10, 114, 0, 1),
('RECEIPT_ALLOWANCE_VAT_RATE', '', 'ALLOWANCE',10, 115, 0, 1),
('RECEIPT_ALLOWANCE_VAT_CODE', '', 'ALLOWANCE',10, 116, 1, 1),
('INVOICE_TOTAL_NET', 'Nettobetrag/Net amount:', 'AMOUNT', 10, 400, 0, 1),
('INVOICE_TOTAL_TAX', 'Steuerbetrag/Tax amount:', 'AMOUNT', 10, 401, 0, 1),
('INVOICE_TOTAL_GROSS', 'Bruttobetrag/Gross amount:', 'AMOUNT', 10, 402, 0, 1),
('INVOICE_TOTAL_CHARGE_AMOUNT', 'Zuschläge/Charge amount:', 'AMOUNT', 10, 403, 0, 1),
('INVOICE_TAXPOS_RATE', '', 'TAXPOS', 10, 404, 1, 0),
('INVOICE_TAXPOS_AMOUNT', '', 'TAXPOS', 10, 405, 0, 0),
('INVOICE_TAXPOS_TYPE', '', 'TAXPOS', 10, 406, 1, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON', '', 'EXEMPTION',10, 450, 0, 1),
('INVOICE_TAXPOS_EXEMPTION_REASON_CODE', '', 'EXEMPTION',10, 451, 0, 1),
('INVOICE_PAYMENT_TERMS','', 'PAYMENT', 10, 500, 0, 1),
('INVOICE_PAYMENT_IBAN','IBAN:', 'PAYMENT', 10, 501, 0, 1),
('INVOICE_PAYMENT_BIC','BIC:', 'PAYMENT', 10, 502, 0, 1);
GO
CREATE OR ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_INCL_NOTES] (@pMSGID VARCHAR(100),@INDEX INT)
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),Row_Caption Varchar(100), SequenceItem INT,Display BIT,Y_eq_lastrow BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@AREA NVARCHAR(100),@AREA_CODE NVARCHAR(10)
DECLARE cursGroupCounter CURSOR FOR
select
GROUP_COUNTER,CASE ITEM_VALUE
WHEN 'AAI' THEN 'INCL_NOTE#Allgemeine Informationen/General Information (AAI)'
WHEN 'SUR' THEN 'INCL_NOTE#Verkäuferhinweise/Information Seller (SUR)'
WHEN 'REG' THEN 'INCL_NOTE#Regulatorische Informationen/Regulatory information (REG)'
WHEN 'ABL' THEN 'INCL_NOTE#Rechtliche Infos/Legal information (ABL)'
WHEN 'TXD' THEN 'INCL_NOTE#Steuer Infos/Tax information (TXD)'
WHEN 'CUS' THEN 'INCL_NOTE#Zoll Infos/Customs Information (CUS)'
WHEN 'AAK' THEN 'INCL_NOTE#Preisbedingung/Pricing terms (AAK)'
ELSE 'INCL_NOTE#Notes (IncludedNotes)' END,
ITEM_VALUE
from
TBEDMI_ITEM_VALUE (NOLOCK)
WHERE
REFERENCE_GUID = @pMSGID
And SPEC_NAME = 'INCLUDED_NOTE_SUBJCODE' ORDER BY GROUP_COUNTER,ITEM_VALUE
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER,@AREA,@AREA_CODE
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select
A.SPEC_NAME,ITEM_VALUE, @AREA, 1
from
TBEDMI_ITEM_VALUE A (NOLOCK)
WHERE
REFERENCE_GUID = @pMSGID And A.SPEC_NAME = 'INCLUDED_NOTE_CONTENT' AND GROUP_COUNTER = @GROUP_COUNTER ORDER BY A.GUID
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@AREA,@Display
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,Row_Caption, SequenceItem,Display,Y_eq_lastrow) VALUES
(@SPEC_NAME,@ITEM_VALUE,@AREA,'', @INDEX,@Display,0)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Area,@Display
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER,@AREA,@AREA_CODE
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
--CHANGED 09.06.2026 Param 2 und NLCK
--CHANGED 13.11.2025
--CHANGED 06.10.2025 Über Area
--CHANGED 02.06.2025 Nur Items mit INhalt
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100),@INDEX INT)
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT,Y_eq_lastrow BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER
from TBEDMI_ITEM_VALUE (NOLOCK) WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT,@Y_eq_lastrow BIT
DECLARE cursPosItems CURSOR FOR
select
A.SPEC_NAME,ITEM_VALUE,Display,B.Y_eq_lastrow
from
TBEDMI_ITEM_VALUE A (NOLOCK)
INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B (NOLOCK) ON A.SPEC_NAME = B.SPECNAME
WHERE
REFERENCE_GUID = @pMSGID And B.Area = 'POSITION' AND GROUP_COUNTER = @GROUP_COUNTER
AND LEN(ITEM_VALUE) > 0
ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display,Y_eq_lastrow) VALUES
(@SPEC_NAME,@ITEM_VALUE,'POSITION',@INDEX,@Display,@Y_eq_lastrow);
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
--Changed 08.06.2026 NLCK
--Changed 13.11.2025 Y_eq_lastrow
--CHANGED 27.10.2025 Beide Allowance Varianten
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_ALLOWANCE_POSITIONS] (@pMSGID VARCHAR(100),@INDEX INT)
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),SequenceItem INT,Display BIT,Y_eq_lastrow BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT
SELECT @INDEX = MIN(SequenceItem) FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'ALLOWANCE';
DECLARE cursGroupCounter CURSOR FOR
select
GROUP_COUNTER from TBEDMI_ITEM_VALUE (NOLOCK)
WHERE
REFERENCE_GUID = @pMSGID
And SPEC_NAME IN ('POSITION_ALLOWANCE_ACTUAL_AMOUNT','RECEIPT_ALLOWANCE_ACTUAL_AMOUNT')
AND LEN(ITEM_VALUE) > 0 ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Display BIT,@Y_eq_lastrow BIT
DECLARE cursPosItems CURSOR FOR
select
A.SPEC_NAME,ITEM_VALUE,Display,Y_eq_lastrow
FROM
TBEDMI_ITEM_VALUE A (NOLOCK) INNER JOIN
TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B (NOLOCK) ON A.SPEC_NAME = B.SPECNAME
WHERE
REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN (SELECT SPECNAME FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'ALLOWANCE')
AND A.GROUP_COUNTER = @GROUP_COUNTER
AND LEN(ITEM_VALUE) > 0
ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display,Y_eq_lastrow) VALUES
(@SPEC_NAME,@ITEM_VALUE,'ALLOWANCE',@INDEX,@Display,@Y_eq_lastrow)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
--Changed 08.06.2026 NLCK
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID VARCHAR(100), @INDEX INT)
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60),Row_Caption Varchar(100), SequenceItem INT,Display BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER from TBEDMI_ITEM_VALUE (NOLOCK) WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_TAXPOS_RATE' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(100),@Row_Caption VARCHAR(100),@Display BIT
DECLARE cursPosItems CURSOR FOR
select
A.SPEC_NAME,ITEM_VALUE, B.Row_Caption, B.Display
from
TBEDMI_ITEM_VALUE A (NOLOCK) INNER JOIN
TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE (NOLOCK) B ON A.SPEC_NAME = B.SPECNAME
WHERE
REFERENCE_GUID = @pMSGID And A.SPEC_NAME IN ('INVOICE_TAXPOS_AMOUNT',
'INVOICE_TAXPOS_RATE','INVOICE_TAXPOS_TYPE') AND GROUP_COUNTER = @GROUP_COUNTER ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Row_Caption,@Display
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,Row_Caption,SequenceItem,Display) VALUES
(@SPEC_NAME,@ITEM_VALUE,'TAXPOS',@Row_Caption,@INDEX,@Display)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE, @Row_Caption,@Display
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
DROP FUNCTION [FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT]
GO
--CHANGED 09.06.2026 Tabelle und Max(index)
--CHANGED 13.11.2025 Y_eq_lastRow
--CHANGED 16.09.2025 Nur auf die Area gehen
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
CREATE FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_CUST_RESULT] (@pMSGID VARCHAR(100))
RETURNS @TABLE TABLE (SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(250),Area VARCHAR(60), Row_Caption NVARCHAR(100), SequenceItem INT,Display BIT,
XPosition Integer, Y_eq_lastrow BIT,ORDER_SEQ INT)
AS
BEGIN
INSERT INTO @TABLE (
SPEC_NAME, ITEM_VALUE, Area, Row_Caption, SequenceItem, Display, XPosition, Y_eq_lastrow, ORDER_SEQ)
SELECt A.SPEC_NAME,A.ITEM_VALUE, A.Area, A.Row_Caption, A.SequenceItem, A.Display, A.xPosition, A.Y_eq_lastrow, A.SequenceItem
FROM VWDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE_ITEMS A
WHERE REFERENCE_GUID = @pMSGID
AND A.Area NOT IN ('ALLOWANCE','POSITION','INCLUDED_NOTE');
DECLARE @IDX INTEGER = (SELECT MAX(SequenceItem) FROM @TABLE)
--POSITIONEN EINTRAGEN
INSERT INTO @TABLE (
SPEC_NAME, ITEM_VALUE, Area, Row_Caption, SequenceItem, Display, XPosition, Y_eq_lastrow, ORDER_SEQ)
SELECT SPEC_NAME, ITEM_VALUE, Area, '', SequenceItem, Display, 10, Y_eq_lastrow, SequenceItem
FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID,@IDX)
--TAXES EINTRAGEN
SELECT @IDX = MAX(SequenceItem) FROM @TABLE
INSERT INTO @TABLE (
SPEC_NAME, ITEM_VALUE, Area, Row_Caption, SequenceItem, Display, XPosition, Y_eq_lastrow, ORDER_SEQ)
SELECT SPEC_NAME, ITEM_VALUE, Area, '', SequenceItem, Display, 10, 0, SequenceItem
FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_TAX] (@pMSGID,@IDX)
--NOTES EINTRAGEN
SELECT @IDX = MAX(SequenceItem) FROM @TABLE
INSERT INTO @TABLE (
SPEC_NAME, ITEM_VALUE, Area, Row_Caption, SequenceItem, Display, XPosition, Y_eq_lastrow, ORDER_SEQ)
SELECT SPEC_NAME, ITEM_VALUE, Area, Row_Caption, SequenceItem, Display, 10, Y_eq_lastrow, SequenceItem
FROM [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_INCL_NOTES] (@pMSGID,@IDX);
--ALLOWANCES EINTRAGEN
SELECT @IDX = MAX(SequenceItem) FROM @TABLE
INSERT INTO @TABLE (
SPEC_NAME, ITEM_VALUE, Area, Row_Caption, SequenceItem, Display, XPosition, Y_eq_lastrow, ORDER_SEQ)
SELECT SPEC_NAME, ITEM_VALUE, Area, '', SequenceItem, Display, 10, Y_eq_lastrow, SequenceItem
FROM [dbo].[FNDD_ZUGFERD_VIEW_ALLOWANCE_POSITIONS] (@pMSGID,@IDX);
INSERT INTO @TABLE (
SPEC_NAME, ITEM_VALUE, Area, Row_Caption, SequenceItem, Display, XPosition, Y_eq_lastrow, ORDER_SEQ)
SELECT SPECNAME, Row_Caption, Area, Row_Caption , SequenceItem, Display, 10, 0, SequenceItem
FROM TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE WHERE Area = 'INTERNAL'
RETURN
END
GO

View File

@@ -0,0 +1,114 @@
UPDATE TBDD_BASECONFIG SET DB_VERSION = '2.7.0';
GO
USE [DD_ECM]
GO
/****** Object: UserDefinedFunction [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] Script Date: 22.06.2026 14:04:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--CHANGED 22.06.2026 ItemVal Länge
--CHANGED 09.06.2026 Param 2 und NLCK
--CHANGED 13.11.2025
--CHANGED 06.10.2025 Über Area
--CHANGED 02.06.2025 Nur Items mit INhalt
--CHANGED 25.04.2025 INV_POSITION_UNIT_TYPE integriert
--CHANGED 06.03.2025 INV_POS_NOTE integriert
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_POSITIONS] (@pMSGID VARCHAR(100),@INDEX INT)
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(5000),Area VARCHAR(60),SequenceItem INT,Display BIT,Y_eq_lastrow BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT
DECLARE cursGroupCounter CURSOR FOR
select GROUP_COUNTER
from TBEDMI_ITEM_VALUE (NOLOCK) WHERE REFERENCE_GUID = @pMSGID And SPEC_NAME = 'INVOICE_POSITION_AMOUNT' ORDER BY GROUP_COUNTER
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(5000),@Display BIT,@Y_eq_lastrow BIT
DECLARE cursPosItems CURSOR FOR
select
A.SPEC_NAME,ITEM_VALUE,Display,B.Y_eq_lastrow
from
TBEDMI_ITEM_VALUE A (NOLOCK)
INNER JOIN TBDD_ZUGFERD_VIEW_RECEIPT_TEMPLATE B (NOLOCK) ON A.SPEC_NAME = B.SPECNAME
WHERE
REFERENCE_GUID = @pMSGID And B.Area = 'POSITION' AND GROUP_COUNTER = @GROUP_COUNTER
AND LEN(ITEM_VALUE) > 0
ORDER BY B.SequenceItem
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,SequenceItem,Display,Y_eq_lastrow) VALUES
(@SPEC_NAME,@ITEM_VALUE,'POSITION',@INDEX,@Display,@Y_eq_lastrow);
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Display,@Y_eq_lastrow
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO
--CHANGED 22.06.2026 ItemVal Länge
ALTER FUNCTION [dbo].[FNDD_ZUGFERD_VIEW_RECEIPT_INCL_NOTES] (@pMSGID VARCHAR(100),@INDEX INT)
RETURNS @TABLE TABLE(SPEC_NAME VARCHAR(100),ITEM_VALUE VARCHAR(5000),Area VARCHAR(60),Row_Caption Varchar(100), SequenceItem INT,Display BIT,Y_eq_lastrow BIT)
AS
BEGIN
DECLARE @GROUP_COUNTER INT,@AREA NVARCHAR(100),@AREA_CODE NVARCHAR(10)
DECLARE cursGroupCounter CURSOR FOR
select
GROUP_COUNTER,CASE ITEM_VALUE
WHEN 'AAI' THEN 'INCL_NOTE#Allgemeine Informationen/General Information (AAI)'
WHEN 'SUR' THEN 'INCL_NOTE#Verkäuferhinweise/Information Seller (SUR)'
WHEN 'REG' THEN 'INCL_NOTE#Regulatorische Informationen/Regulatory information (REG)'
WHEN 'ABL' THEN 'INCL_NOTE#Rechtliche Infos/Legal information (ABL)'
WHEN 'TXD' THEN 'INCL_NOTE#Steuer Infos/Tax information (TXD)'
WHEN 'CUS' THEN 'INCL_NOTE#Zoll Infos/Customs Information (CUS)'
WHEN 'AAK' THEN 'INCL_NOTE#Preisbedingung/Pricing terms (AAK)'
ELSE 'INCL_NOTE#Notes (IncludedNotes)' END,
ITEM_VALUE
from
TBEDMI_ITEM_VALUE (NOLOCK)
WHERE
REFERENCE_GUID = @pMSGID
And SPEC_NAME = 'INCLUDED_NOTE_SUBJCODE' ORDER BY GROUP_COUNTER,ITEM_VALUE
OPEN cursGroupCounter
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER,@AREA,@AREA_CODE
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @SPEC_NAME VARCHAR(100),@ITEM_VALUE VARCHAR(5000),@Display BIT
DECLARE cursPosItems CURSOR FOR
select
A.SPEC_NAME,ITEM_VALUE, @AREA, 1
from
TBEDMI_ITEM_VALUE A (NOLOCK)
WHERE
REFERENCE_GUID = @pMSGID And A.SPEC_NAME = 'INCLUDED_NOTE_CONTENT' AND GROUP_COUNTER = @GROUP_COUNTER ORDER BY A.GUID
OPEN cursPosItems
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@AREA,@Display
WHILE @@FETCH_STATUS = 0
BEGIN
SET @INDEX += 1
INSERT INTO @TABLE (SPEC_NAME,ITEM_VALUE,Area,Row_Caption, SequenceItem,Display,Y_eq_lastrow) VALUES
(@SPEC_NAME,@ITEM_VALUE,@AREA,'', @INDEX,@Display,0)
FETCH NEXT FROM cursPosItems INTO @SPEC_NAME,@ITEM_VALUE,@Area,@Display
END
CLOSE cursPosItems
DEALLOCATE cursPosItems
FETCH NEXT FROM cursGroupCounter INTO @GROUP_COUNTER,@AREA,@AREA_CODE
END
CLOSE cursGroupCounter
DEALLOCATE cursGroupCounter
RETURN
END
GO