Neue Struktur implementiert für Prozedur und Funktionsaufrufe
This commit is contained in:
parent
8247ebd39d
commit
40199558a7
@ -7,13 +7,19 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
DD MD/MK 06/03/2024
|
DD MD/MK 27/03/2024
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
FUNCTION OnAnalyserFinishDocument() {
|
FUNCTION OnAnalyserFinishDocument() {
|
||||||
|
|
||||||
|
// Hole Nummer des Analyse-Durchlaufs anhand gesetzter smartBlocks
|
||||||
|
documentnumber := NUM_DOCS();
|
||||||
|
|
||||||
// Setzte Dateinamen als primären Schlüssel
|
// Setzte Dateinamen als primären Schlüssel
|
||||||
uid := DOC_ID();
|
uid := DOC_ID();
|
||||||
|
|
||||||
|
IF (documentnumber = 1) THEN {
|
||||||
|
|
||||||
// Kopfdaten
|
// Kopfdaten
|
||||||
Head := DICT();
|
Head := DICT();
|
||||||
Head['AA'] := uid;
|
Head['AA'] := uid;
|
||||||
@ -153,6 +159,12 @@ FUNCTION OnAnalyserFinishDocument() {
|
|||||||
//IF [#AMOUNT_LEARN] = [INV_AMOUNT] THEN
|
//IF [#AMOUNT_LEARN] = [INV_AMOUNT] THEN
|
||||||
// stdWriteLog('Message',STRING_FORMAT('DD OnAnalyserFinishDocument - : %1','[#AMOUNT_LEARN] = [INV_AMOUNT]'),'');
|
// stdWriteLog('Message',STRING_FORMAT('DD OnAnalyserFinishDocument - : %1','[#AMOUNT_LEARN] = [INV_AMOUNT]'),'');
|
||||||
|
|
||||||
|
} // End IF (documentnumber = 1)
|
||||||
|
|
||||||
|
ELSE {
|
||||||
|
stdWriteLog('Message',STRING_FORMAT('DD Skipping NUM_DOCS: %1',documentnumber),'');
|
||||||
|
}
|
||||||
|
|
||||||
} // end OnAnalyserFinishDocument
|
} // end OnAnalyserFinishDocument
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
FNo 14/03/2022
|
FNo 14/03/2022
|
||||||
|
|||||||
@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [FNDD_ANALYZER_COMPARE_HEAD_SUM_WITH_ITEMS_SUM] (
|
||||||
|
@pREFERENCE_ID NVARCHAR(100),
|
||||||
|
@pSTATUS NVARCHAR(50),
|
||||||
|
@pSTATUS_DETAIL NVARCHAR(MAX)
|
||||||
|
)
|
||||||
|
RETURNS @vTB_RESULT TABLE ([REFERENCE_ID] [NVARCHAR](100) NOT NULL,
|
||||||
|
[STATUS] [NVARCHAR](50) NOT NULL,
|
||||||
|
[STATUS_DETAIL] [NVARCHAR](max) NOT NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
-- Define vars
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
DECLARE @REFERENCE_ID NVARCHAR(100),
|
||||||
|
@STATUS NVARCHAR(50),
|
||||||
|
@STATUS_DETAIL NVARCHAR(MAX),
|
||||||
|
@HEAD_SUM FLOAT,
|
||||||
|
@ITEMS_SUM FLOAT;
|
||||||
|
|
||||||
|
SET @REFERENCE_ID = @pREFERENCE_ID
|
||||||
|
SET @STATUS = @pSTATUS
|
||||||
|
SET @STATUS_DETAIL = @pSTATUS_DETAIL
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
-- Check sum of Head and Items
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- Get sum from head
|
||||||
|
SELECT @HEAD_SUM = [INV_NET_AMOUNT1]
|
||||||
|
FROM [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_HEAD]
|
||||||
|
WHERE [REFERENCE_ID] = @pREFERENCE_ID
|
||||||
|
|
||||||
|
-- Get sum from items
|
||||||
|
SELECT @ITEMS_SUM = SUM(INVI_TOTAL_NET_PRICE)
|
||||||
|
FROM [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_ITEMS]
|
||||||
|
WHERE [REFERENCE_ID] = @pREFERENCE_ID
|
||||||
|
|
||||||
|
-- Status "failed" must not be overwritten
|
||||||
|
IF (@STATUS <> 'FAILED')
|
||||||
|
BEGIN
|
||||||
|
SET @STATUS = CASE
|
||||||
|
WHEN (@HEAD_SUM = @ITEMS_SUM) THEN 'SUCCESS'
|
||||||
|
WHEN (@HEAD_SUM > @ITEMS_SUM) THEN 'FAILED'
|
||||||
|
WHEN (@HEAD_SUM < @ITEMS_SUM) THEN 'FAILED'
|
||||||
|
ELSE 'ERROR'
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
SET @STATUS_DETAIL = CASE
|
||||||
|
WHEN (@HEAD_SUM = @ITEMS_SUM) THEN @STATUS_DETAIL + 'Head and Item sum match!' + char(10) + char(13)
|
||||||
|
WHEN (@HEAD_SUM > @ITEMS_SUM) THEN @STATUS_DETAIL + 'Head sum (' + convert(VARCHAR(100),@HEAD_SUM) +') is bigger then Item sum (' + convert(VARCHAR(100),@ITEMS_SUM) +')!' + char(10) + char(13)
|
||||||
|
WHEN (@HEAD_SUM < @ITEMS_SUM) THEN @STATUS_DETAIL + 'Head sum (' + convert(VARCHAR(100),@HEAD_SUM) +') is lesser then Item sum (' + convert(VARCHAR(100),@ITEMS_SUM) +')!' + char(10) + char(13)
|
||||||
|
ELSE @STATUS_DETAIL + 'ERROR in FNDD_ANALYZER_COMPARE_HEAD_SUM_WITH_ITEMS_SUM' + char(10) + char(13)
|
||||||
|
END
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
-- Set function result Table
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
INSERT INTO @vTB_RESULT ([REFERENCE_ID],
|
||||||
|
[STATUS],
|
||||||
|
[STATUS_DETAIL])
|
||||||
|
|
||||||
|
VALUES (@REFERENCE_ID,
|
||||||
|
@STATUS,
|
||||||
|
@STATUS_DETAIL);
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
END
|
||||||
@ -1,91 +1,96 @@
|
|||||||
USE [SmartFix_Export_DB_Invoice]
|
USE [SmartFix_Export_DB_Invoice]
|
||||||
GO
|
GO
|
||||||
|
/****** Object: StoredProcedure [dbo].[PRDD_INSERT_ANALYZER_RESULT] Script Date: 08.04.2024 13:37:51 ******/
|
||||||
/****** Object: StoredProcedure [dbo].[PRDD_INSERT_ANALYZER_RESULT] Script Date: 06.03.2024 16:20:47 ******/
|
|
||||||
SET ANSI_NULLS ON
|
SET ANSI_NULLS ON
|
||||||
GO
|
GO
|
||||||
|
|
||||||
SET QUOTED_IDENTIFIER ON
|
SET QUOTED_IDENTIFIER ON
|
||||||
GO
|
GO
|
||||||
|
|
||||||
-- =============================================
|
-- =============================================
|
||||||
-- Author: Digital Data GmbH MD/MK
|
-- Author: Digital Data GmbH MD/MK
|
||||||
-- Create date: 06.03.2024
|
-- Create date: 11.04.2024
|
||||||
-- Description: Insert row in TBDD_ANALYZER_RESULT
|
-- Description: Insert row in TBDD_ANALYZER_RESULT
|
||||||
-- =============================================
|
-- =============================================
|
||||||
|
|
||||||
CREATE OR ALTER PROCEDURE [dbo].[PRDD_INSERT_ANALYZER_RESULT]
|
ALTER PROCEDURE [dbo].[PRDD_INSERT_ANALYZER_RESULT]
|
||||||
@pREFERENCE_ID NVARCHAR(100),
|
@pREFERENCE_ID NVARCHAR(100),
|
||||||
@pAdded_who NVARCHAR(50)
|
@pADDED_WHO NVARCHAR(50)
|
||||||
AS
|
AS
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
-- Get Configuration
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DECLARE @WORKING_MODE TINYINT;
|
||||||
|
SELECT @WORKING_MODE = [WORKING_MODE] FROM [TBDD_ANALYZER_BASE_CONFIG] WHERE [GUID] = (SELECT max(GUID) FROM [TBDD_ANALYZER_BASE_CONFIG]);
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
-- Final Vars for insert
|
-- Final Vars for insert
|
||||||
DECLARE @STATUS NVARCHAR(50),
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DECLARE @REFERENCE_ID NVARCHAR(100),
|
||||||
|
@ADDED_WHO NVARCHAR(50),
|
||||||
|
@STATUS NVARCHAR(50),
|
||||||
@STATUS_DETAIL NVARCHAR(MAX);
|
@STATUS_DETAIL NVARCHAR(MAX);
|
||||||
|
|
||||||
|
SET @REFERENCE_ID = @pREFERENCE_ID;
|
||||||
|
SET @ADDED_WHO = @pADDED_WHO;
|
||||||
SET @STATUS = 'UNDEFINED';
|
SET @STATUS = 'UNDEFINED';
|
||||||
SET @STATUS_DETAIL = '';
|
SET @STATUS_DETAIL = '';
|
||||||
|
|
||||||
-- Temp vars for calculation
|
----------------------------------------------------------------------------------------------
|
||||||
DECLARE @HEAD_SUM FLOAT,
|
-- Ermittle, ob es zu verarbeitende Zeilen für die ReferenzID gibt
|
||||||
@ITEMS_SUM FLOAT;
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
IF (((SELECT COUNT(*) FROM [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_HEAD] (NOLOCK) WHERE [REFERENCE_ID] = @pREFERENCE_ID AND [STATUS] = 'unprocessed') = 1) and (SELECT count(*) FROM [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_ITEMS] (NOLOCK) WHERE [REFERENCE_ID] = @pREFERENCE_ID AND [STATUS] = 'unprocessed') >= 1)
|
IF (((SELECT COUNT(*) FROM [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_HEAD] (NOLOCK) WHERE [REFERENCE_ID] = @REFERENCE_ID AND [STATUS] = 'unprocessed') = 1) and (SELECT count(*) FROM [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_ITEMS] (NOLOCK) WHERE [REFERENCE_ID] = @REFERENCE_ID AND [STATUS] = 'unprocessed') >= 1)
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
|
PRINT 'Unprocessed DB lines rows found, proceeding...'
|
||||||
|
|
||||||
----------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------
|
||||||
-- 1. Check sum of Head and Items
|
-- 1 = Kopf&Fuß-daten ohne Matching; 2 = Kopf&Fuß-daten mit Matching
|
||||||
----------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
-- Get sum from head
|
IF @WORKING_MODE in (1,2)
|
||||||
SELECT @HEAD_SUM = [INV_NET_AMOUNT1]
|
|
||||||
FROM [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_HEAD]
|
|
||||||
WHERE [REFERENCE_ID] = @pREFERENCE_ID
|
|
||||||
|
|
||||||
-- Get sum from items
|
|
||||||
SELECT @ITEMS_SUM = SUM(INVI_TOTAL_NET_PRICE)
|
|
||||||
FROM [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_ITEMS]
|
|
||||||
WHERE [REFERENCE_ID] = @pREFERENCE_ID
|
|
||||||
|
|
||||||
-- Status "failed" must not be overwritten
|
|
||||||
IF (@STATUS <> 'FAILED')
|
|
||||||
BEGIN
|
BEGIN
|
||||||
SET @STATUS = CASE
|
|
||||||
WHEN (@HEAD_SUM = @ITEMS_SUM) THEN 'SUCCESS'
|
|
||||||
WHEN (@HEAD_SUM > @ITEMS_SUM) THEN 'FAILED'
|
|
||||||
WHEN (@HEAD_SUM < @ITEMS_SUM) THEN 'FAILED'
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
SET @STATUS_DETAIL = CASE
|
PRINT 'WORKING_MODE = 1 or 2'
|
||||||
WHEN (@HEAD_SUM = @ITEMS_SUM) THEN @STATUS_DETAIL + 'Head and Item sum match!' + char(10) + char(13)
|
|
||||||
WHEN (@HEAD_SUM > @ITEMS_SUM) THEN @STATUS_DETAIL + 'Head sum (' + convert(VARCHAR(100),@HEAD_SUM) +') is bigger then Item sum (' + convert(VARCHAR(100),@ITEMS_SUM) +')!' + char(10) + char(13)
|
|
||||||
WHEN (@HEAD_SUM < @ITEMS_SUM) THEN @STATUS_DETAIL + 'Head sum (' + convert(VARCHAR(100),@HEAD_SUM) +') is lesser then Item sum (' + convert(VARCHAR(100),@ITEMS_SUM) +')!' + char(10) + char(13)
|
|
||||||
END
|
END
|
||||||
|
|
||||||
----------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------
|
||||||
|
-- 3 Kopf&Fuß&Positionen ohne Matching; 4 Kopf&Fuß&Positionen mit Matching
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
INSERT INTO [TBDD_ANALYZER_RESULT] ([REFERENCE_ID],
|
ELSE IF @WORKING_MODE in (3,4)
|
||||||
[STATUS],
|
BEGIN
|
||||||
[STATUS_DETAIL],
|
|
||||||
[ADDED_WHO])
|
|
||||||
|
|
||||||
VALUES (@pREFERENCE_ID,
|
PRINT 'WORKING_MODE = 3 or 4'
|
||||||
@STATUS,
|
|
||||||
@STATUS_DETAIL,
|
-- Compare Head with Item sum
|
||||||
@pAdded_who);
|
SELECT @STATUS = [STATUS],
|
||||||
|
@STATUS_DETAIL = [STATUS_DETAIL]
|
||||||
|
FROM [SmartFix_Export_DB_Invoice].[dbo].[FNDD_ANALYZER_COMPARE_HEAD_SUM_WITH_ITEMS_SUM](@REFERENCE_ID,@STATUS,@STATUS_DETAIL)
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
----------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------
|
||||||
|
-- Nach erfolgreicher Verarbeitung, die Zeilen als "processed" markieren
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PRINT 'Setting processed rows in [TBDD_ANALYZER_HEAD] and [TBDD_ANALYZER_ITEMS]'
|
||||||
|
|
||||||
UPDATE [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_HEAD]
|
UPDATE [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_HEAD]
|
||||||
SET [STATUS] = 'processed'
|
SET [STATUS] = 'processed'
|
||||||
WHERE [REFERENCE_ID] = @pREFERENCE_ID
|
WHERE [REFERENCE_ID] = @REFERENCE_ID
|
||||||
|
|
||||||
UPDATE [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_ITEMS]
|
UPDATE [SmartFix_Export_DB_Invoice].[dbo].[TBDD_ANALYZER_ITEMS]
|
||||||
SET [STATUS] = 'processed'
|
SET [STATUS] = 'processed'
|
||||||
WHERE [REFERENCE_ID] = @pREFERENCE_ID
|
WHERE [REFERENCE_ID] = @REFERENCE_ID
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
-- Rückmeldung an insiders DB geben
|
||||||
----------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
IF (@STATUS = 'SUCCESS')
|
IF (@STATUS = 'SUCCESS')
|
||||||
@ -94,6 +99,20 @@ BEGIN
|
|||||||
END
|
END
|
||||||
|
|
||||||
----------------------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------------------
|
||||||
|
-- Ergebnis in Result Tabelle schreiben
|
||||||
|
----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PRINT 'Inserting Results in [TBDD_ANALYZER_RESULT]'
|
||||||
|
|
||||||
|
INSERT INTO [TBDD_ANALYZER_RESULT] ([REFERENCE_ID],
|
||||||
|
[STATUS],
|
||||||
|
[STATUS_DETAIL],
|
||||||
|
[ADDED_WHO])
|
||||||
|
|
||||||
|
VALUES (@REFERENCE_ID,
|
||||||
|
@STATUS,
|
||||||
|
@STATUS_DETAIL,
|
||||||
|
@ADDED_WHO);
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -101,18 +120,17 @@ BEGIN
|
|||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
SET @STATUS = 'UNREFERENCED';
|
PRINT 'Inappropriate rows in DB!'
|
||||||
SET @STATUS_DETAIL = 'Insufficient rows in DB!'
|
|
||||||
|
|
||||||
INSERT INTO [TBDD_ANALYZER_RESULT] ([REFERENCE_ID],
|
INSERT INTO [TBDD_ANALYZER_RESULT] ([REFERENCE_ID],
|
||||||
[STATUS],
|
[STATUS],
|
||||||
[STATUS_DETAIL],
|
[STATUS_DETAIL],
|
||||||
[ADDED_WHO])
|
[ADDED_WHO])
|
||||||
|
|
||||||
VALUES (@pREFERENCE_ID,
|
VALUES (@REFERENCE_ID,
|
||||||
@STATUS,
|
'UNREFERENCED',
|
||||||
@STATUS_DETAIL,
|
'Inappropriate rows in DB!',
|
||||||
@pAdded_who);
|
@ADDED_WHO);
|
||||||
END
|
END
|
||||||
|
|
||||||
END
|
END
|
||||||
GO
|
|
||||||
Loading…
x
Reference in New Issue
Block a user