Projektstand 30.03.2026
This commit is contained in:
@@ -1,190 +0,0 @@
|
|||||||
SET ANSI_NULLS ON
|
|
||||||
GO
|
|
||||||
SET QUOTED_IDENTIFIER ON
|
|
||||||
GO
|
|
||||||
|
|
||||||
-- [FNCUST_GET_JSON_INVOICE_DATA]
|
|
||||||
-- =================================================================
|
|
||||||
-- Reads invoice data from relational tables and returns a normalized
|
|
||||||
-- JSON response matching the CreateInvoice_Request structure.
|
|
||||||
--
|
|
||||||
-- Parameter: @pDOCUMENT_ID INT = NULL (NULL = alle Dokumente)
|
|
||||||
-- Returns: TABLE (success BIT, message NVARCHAR(MAX), data NVARCHAR(MAX))
|
|
||||||
-- Usage: SELECT * FROM dbo.FNCUST_GET_JSON_INVOICE_DATA(NULL)
|
|
||||||
-- SELECT * FROM dbo.FNCUST_GET_JSON_INVOICE_DATA(42)
|
|
||||||
-- =================================================================
|
|
||||||
-- Copyright (c) 2026 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: 26.02.2026 / MK
|
|
||||||
-- Version Date / Editor: 26.02.2026 / MK
|
|
||||||
-- Version Number: 1.0.0.0
|
|
||||||
-- =================================================================
|
|
||||||
-- History:
|
|
||||||
-- 26.02.2026 / MK - First Version
|
|
||||||
|
|
||||||
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_JSON_INVOICE_DATA](
|
|
||||||
@pDOCUMENT_ID BIGINT = NULL
|
|
||||||
)
|
|
||||||
RETURNS TABLE
|
|
||||||
WITH SCHEMABINDING
|
|
||||||
AS
|
|
||||||
RETURN
|
|
||||||
(
|
|
||||||
SELECT
|
|
||||||
--=========================================================-- success --=========================================================--
|
|
||||||
success = CAST(IIF(v.status = 0, 1, 0) AS BIT)
|
|
||||||
|
|
||||||
--=========================================================-- message --=========================================================--
|
|
||||||
, message = CAST(
|
|
||||||
CASE v.status
|
|
||||||
WHEN 1 THEN N'Kein PurchaseDocument mit DocumentID = ' + CAST(@pDOCUMENT_ID AS NVARCHAR(20)) + N' gefunden.'
|
|
||||||
WHEN 2 THEN N'Keine PurchaseDocuments vorhanden.'
|
|
||||||
ELSE N'Daten erfolgreich verarbeitet.'
|
|
||||||
END
|
|
||||||
AS NVARCHAR(MAX))
|
|
||||||
|
|
||||||
--===========================================================-- data --==========================================================--
|
|
||||||
, data = CAST(
|
|
||||||
CASE WHEN v.status > 0 THEN NULL
|
|
||||||
ELSE (
|
|
||||||
--=================================================-- Build output JSON result --================================================--
|
|
||||||
SELECT
|
|
||||||
JSON_QUERY(
|
|
||||||
COALESCE(
|
|
||||||
(
|
|
||||||
SELECT
|
|
||||||
[documentType] = pd.DocumentType
|
|
||||||
, [no] = pd.No_
|
|
||||||
, [noSeries] = pd.NoSeries
|
|
||||||
, [processIDTransfer] = pd.ProcessIDTransfer
|
|
||||||
, [buyFromVendorNo] = pd.BuyFromVendorNo
|
|
||||||
, [payToVendorNo] = pd.PayToVendorNo
|
|
||||||
, [postingDate] = pd.PostingDate
|
|
||||||
, [paymentTermsCode] = pd.PaymentTermsCode
|
|
||||||
, [paymentTermsCodeIR] = pd.PaymentTermsCodeIR
|
|
||||||
, [dueDate] = pd.DueDate
|
|
||||||
, [pmtDiscountDate] = pd.PmtDiscountDate
|
|
||||||
, [paymentDiscount] = pd.PaymentDiscount
|
|
||||||
, [paymentDiscountIR] = pd.PaymentDiscountIR
|
|
||||||
, [currencyCode] = pd.CurrencyCode
|
|
||||||
, [invoiceDiscCode] = pd.InvoiceDiscCode
|
|
||||||
, [postingDescription] = pd.PostingDescription
|
|
||||||
, [paymentMethodCode] = pd.PaymentMethodCode
|
|
||||||
, [vendorInvoiceNo] = pd.VendorInvoiceNo
|
|
||||||
, [vendorCrMemoNo] = pd.VendorCrMemoNo
|
|
||||||
, [phrVendorBankAccountCode] = pd.PhrVendorBankAccountCode
|
|
||||||
, [phrBankBranchNo] = pd.PhrBankBranchNo
|
|
||||||
, [phrBankAccountNo] = pd.PhrBankAccountNo
|
|
||||||
, [phrIBAN] = pd.PhrIBAN
|
|
||||||
, [phrSWIFTCode] = pd.PhrSWIFTCode
|
|
||||||
, [phrBankName] = pd.PhrBankName
|
|
||||||
, [phrBankAccountEntryPriority] = pd.PhrBankAccountEntryPriority
|
|
||||||
, [phrRMCashDiscountReceived] = pd.PhrRMCashDiscountReceived
|
|
||||||
, [phrRMAmountIncludingVAT] = pd.PhrRMAmountIncludingVAT
|
|
||||||
, [phrRMAmountLessDiscount] = pd.PhrRMAmountLessDiscount
|
|
||||||
, purchaseLines = JSON_QUERY(
|
|
||||||
COALESCE(
|
|
||||||
(
|
|
||||||
SELECT
|
|
||||||
[attachedToLineNo] = pl.AttachedToLineNo
|
|
||||||
, [type] = pl.Type
|
|
||||||
, [no] = pl.No_
|
|
||||||
, [description] = pl.Description
|
|
||||||
, [description2] = pl.Description2
|
|
||||||
, [locationCode] = pl.LocationCode
|
|
||||||
, [variantCode] = pl.VariantCode
|
|
||||||
, [quantity] = pl.Quantity
|
|
||||||
, [unitOfMeasureCode] = pl.UnitOfMeasureCode
|
|
||||||
, [directUnitCost] = pl.DirectUnitCost
|
|
||||||
, [lineDiscount] = pl.LineDiscount
|
|
||||||
, [ableToDiscount] = pl.AbleToDiscount
|
|
||||||
, [discountCalculated] = pl.DiscountCalculated
|
|
||||||
, [workOrderNo] = pl.WorkOrderNo
|
|
||||||
, [genBusPostingGroup] = pl.GenBusPostingGroup
|
|
||||||
, [genProdPostingGroup] = pl.GenProdPostingGroup
|
|
||||||
, [vatBusPostingGroup] = pl.VatBusPostingGroup
|
|
||||||
, [vatProdPostingGroup] = pl.VatProdPostingGroup
|
|
||||||
, [applToItemEntry] = pl.ApplToItemEntry
|
|
||||||
, [postingWithoutApply] = pl.PostingWithoutApply
|
|
||||||
, [anticipatedPayment] = pl.AnticipatedPayment
|
|
||||||
, [receiptNo] = pl.ReceiptNo
|
|
||||||
, [receiptLineNo] = pl.ReceiptLineNo
|
|
||||||
, [irOrderNo] = pl.IrOrderNo
|
|
||||||
, [irOrderLineNo] = pl.IrOrderLineNo
|
|
||||||
, dimSetEntries = JSON_QUERY(
|
|
||||||
COALESCE(
|
|
||||||
(
|
|
||||||
SELECT
|
|
||||||
[dimensionCode] = d.DimensionCode
|
|
||||||
, [dimensionValueCode] = d.DimensionValueCode
|
|
||||||
FROM dbo.DimSetEntry d
|
|
||||||
WHERE d.LineID = pl.LineID
|
|
||||||
ORDER BY d.DimSetEntryID
|
|
||||||
FOR JSON PATH, INCLUDE_NULL_VALUES
|
|
||||||
)
|
|
||||||
, '[]'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
, itemChargeAssignmentLines = JSON_QUERY(
|
|
||||||
COALESCE(
|
|
||||||
(
|
|
||||||
SELECT
|
|
||||||
[itemChargeNo] = ia.ItemChargeNo
|
|
||||||
, [unitCost] = ia.UnitCost
|
|
||||||
, [appliesToDocType] = ia.AppliesToDocType
|
|
||||||
, [appliesToDocNo] = ia.AppliesToDocNo
|
|
||||||
, [appliesToDocLineNo] = ia.AppliesToDocLineNo
|
|
||||||
, [itemNo] = ia.ItemNo
|
|
||||||
, [description] = ia.Description
|
|
||||||
, [qtyToAssign] = ia.QtyToAssign
|
|
||||||
, [qtyAssigned] = ia.QtyAssigned
|
|
||||||
, [amountToAssign] = ia.AmountToAssign
|
|
||||||
, [appliesToDocLineAmount] = ia.AppliesToDocLineAmount
|
|
||||||
FROM dbo.ItemChargeAssignment ia
|
|
||||||
WHERE ia.LineID = pl.LineID
|
|
||||||
ORDER BY ia.ItemChargeAssignmentID
|
|
||||||
FOR JSON PATH, INCLUDE_NULL_VALUES
|
|
||||||
)
|
|
||||||
, '[]'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
FROM dbo.PurchaseLine pl
|
|
||||||
WHERE pl.DocumentID = pd.DocumentID
|
|
||||||
ORDER BY pl.LineID
|
|
||||||
FOR JSON PATH, INCLUDE_NULL_VALUES
|
|
||||||
)
|
|
||||||
, '[]'
|
|
||||||
)
|
|
||||||
)
|
|
||||||
FROM dbo.PurchaseDocument pd
|
|
||||||
WHERE @pDOCUMENT_ID IS NULL OR pd.DocumentID = @pDOCUMENT_ID
|
|
||||||
ORDER BY pd.DocumentID
|
|
||||||
FOR JSON PATH, INCLUDE_NULL_VALUES
|
|
||||||
)
|
|
||||||
, '[]'
|
|
||||||
)
|
|
||||||
) AS purchaseDocuments
|
|
||||||
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
)
|
|
||||||
END
|
|
||||||
AS NVARCHAR(MAX))
|
|
||||||
|
|
||||||
FROM (VALUES (1)) AS src(x)
|
|
||||||
CROSS APPLY (
|
|
||||||
--======================================================-- Validate input --=====================================================--
|
|
||||||
SELECT status = CASE
|
|
||||||
WHEN @pDOCUMENT_ID IS NOT NULL
|
|
||||||
AND NOT EXISTS (SELECT 1 FROM dbo.PurchaseDocument WHERE DocumentID = @pDOCUMENT_ID)
|
|
||||||
THEN 1
|
|
||||||
WHEN NOT EXISTS (SELECT 1 FROM dbo.PurchaseDocument)
|
|
||||||
THEN 2
|
|
||||||
ELSE 0
|
|
||||||
END
|
|
||||||
-----------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
) AS v
|
|
||||||
);
|
|
||||||
GO
|
|
||||||
@@ -0,0 +1,192 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- [FNCUST_GET_EDMI_ITEM_VALUE]
|
||||||
|
-- =================================================================
|
||||||
|
-- Returns item values from [TBEDMI_ITEM_VALUE] with optional filters,
|
||||||
|
-- fallback handling and EB normalization for INVOICE_REFERENCE specs.
|
||||||
|
--
|
||||||
|
-- Returns: Table (max. 10.000 rows)
|
||||||
|
-- =================================================================
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_EDMI_ITEM_VALUE] (
|
||||||
|
@REFERENCE_GUID NVARCHAR(250) = NULL,
|
||||||
|
@SPEC_NAME NVARCHAR(100) = NULL
|
||||||
|
)
|
||||||
|
RETURNS TABLE
|
||||||
|
AS
|
||||||
|
RETURN (
|
||||||
|
|
||||||
|
--====================================-- SPEC fallback configuration --====================================--
|
||||||
|
-- FALLBACK_ITEM_VALUE: value used when EB is invalid/missing
|
||||||
|
-- ALLOW_FALLBACK: 1 = use fallback, 0 = keep original ITEM_VALUE
|
||||||
|
WITH [CFG_INVOICE_REFERENCE_SPEC] AS (
|
||||||
|
SELECT N'INVOICE_REFERENCE' AS [SPEC_NAME], CAST(N'EB9999999' AS NVARCHAR(100)) AS [FALLBACK_ITEM_VALUE], CAST(1 AS BIT) AS [ALLOW_FALLBACK]
|
||||||
|
UNION ALL SELECT N'INVOICE_REFERENCE2', CAST(NULL AS NVARCHAR(100)), CAST(0 AS BIT)
|
||||||
|
UNION ALL SELECT N'INVOICE_REFERENCE3', N'', CAST(0 AS BIT)
|
||||||
|
),
|
||||||
|
|
||||||
|
--=======================================-- Source data (filtered) --=======================================--
|
||||||
|
[SRC_FILTERED_DATA] AS (
|
||||||
|
SELECT
|
||||||
|
[GUID],
|
||||||
|
[REFERENCE_GUID],
|
||||||
|
[ITEM_DESCRIPTION],
|
||||||
|
[ITEM_VALUE],
|
||||||
|
[CREATEDWHEN],
|
||||||
|
[CREATEDWHO],
|
||||||
|
[CHANGEDWHEN],
|
||||||
|
[GROUP_COUNTER],
|
||||||
|
[SPEC_NAME],
|
||||||
|
[IS_REQUIRED],
|
||||||
|
[CHANGEDWHO],
|
||||||
|
[COMMENT]
|
||||||
|
FROM [dbo].[TBEDMI_ITEM_VALUE]
|
||||||
|
WHERE (@REFERENCE_GUID IS NULL OR [REFERENCE_GUID] = @REFERENCE_GUID)
|
||||||
|
AND (@SPEC_NAME IS NULL OR [SPEC_NAME] = @SPEC_NAME)
|
||||||
|
)
|
||||||
|
|
||||||
|
--========================================-- Final output resultset --========================================--
|
||||||
|
SELECT TOP (10000)
|
||||||
|
[GUID],
|
||||||
|
[REFERENCE_GUID],
|
||||||
|
[ITEM_DESCRIPTION],
|
||||||
|
CASE
|
||||||
|
-- Normalize ITEM_VALUE for configured INVOICE_REFERENCE specs only
|
||||||
|
WHEN [CHK_SPEC].[IS_INVOICE_REFERENCE_SPEC] = 1
|
||||||
|
THEN [NORM_EB].[NORMALIZED_EB_VALUE]
|
||||||
|
ELSE [OUT_RESULT_DATA].[ITEM_VALUE]
|
||||||
|
END AS [ITEM_VALUE],
|
||||||
|
[OUT_RESULT_DATA].[CREATEDWHEN],
|
||||||
|
[OUT_RESULT_DATA].[CREATEDWHO],
|
||||||
|
[OUT_RESULT_DATA].[CHANGEDWHEN],
|
||||||
|
[OUT_RESULT_DATA].[GROUP_COUNTER],
|
||||||
|
[OUT_RESULT_DATA].[SPEC_NAME],
|
||||||
|
[OUT_RESULT_DATA].[IS_REQUIRED],
|
||||||
|
[OUT_RESULT_DATA].[CHANGEDWHO],
|
||||||
|
[OUT_RESULT_DATA].[COMMENT],
|
||||||
|
[OUT_RESULT_DATA].[IS_FALLBACK],
|
||||||
|
CASE
|
||||||
|
-- Flag rows where configured EB fallback was actually applied
|
||||||
|
WHEN [CHK_SPEC].[IS_INVOICE_REFERENCE_SPEC] = 1
|
||||||
|
AND
|
||||||
|
[CHK_SPEC].[ALLOW_FALLBACK] = 1
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
([CHK_SPEC].[CONFIGURED_FALLBACK_ITEM_VALUE] IS NULL AND [NORM_EB].[NORMALIZED_EB_VALUE] IS NULL)
|
||||||
|
OR [NORM_EB].[NORMALIZED_EB_VALUE] = [CHK_SPEC].[CONFIGURED_FALLBACK_ITEM_VALUE]
|
||||||
|
)
|
||||||
|
THEN CAST(1 AS BIT)
|
||||||
|
ELSE CAST(0 AS BIT)
|
||||||
|
END AS [IS_EB_FALLBACK]
|
||||||
|
FROM (
|
||||||
|
-- Real rows from source table
|
||||||
|
SELECT
|
||||||
|
[GUID],
|
||||||
|
[REFERENCE_GUID],
|
||||||
|
[ITEM_DESCRIPTION],
|
||||||
|
[ITEM_VALUE],
|
||||||
|
[CREATEDWHEN],
|
||||||
|
[CREATEDWHO],
|
||||||
|
[CHANGEDWHEN],
|
||||||
|
[GROUP_COUNTER],
|
||||||
|
[SPEC_NAME],
|
||||||
|
[IS_REQUIRED],
|
||||||
|
[CHANGEDWHO],
|
||||||
|
[COMMENT],
|
||||||
|
CAST(0 AS BIT) AS [IS_FALLBACK]
|
||||||
|
FROM [SRC_FILTERED_DATA]
|
||||||
|
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
-- Failsafe row if source query returns no row
|
||||||
|
SELECT
|
||||||
|
CAST(0 AS BIGINT) AS [GUID],
|
||||||
|
ISNULL(@REFERENCE_GUID, N'FAILSAFE') AS [REFERENCE_GUID],
|
||||||
|
N'NO_DATA_FOUND' AS [ITEM_DESCRIPTION],
|
||||||
|
N'' AS [ITEM_VALUE],
|
||||||
|
GETDATE() AS [CREATEDWHEN],
|
||||||
|
N'SYSTEM' AS [CREATEDWHO],
|
||||||
|
NULL AS [CHANGEDWHEN],
|
||||||
|
CAST(0 AS INT) AS [GROUP_COUNTER],
|
||||||
|
ISNULL(@SPEC_NAME, N'FAILSAFE') AS [SPEC_NAME],
|
||||||
|
CAST(0 AS BIT) AS [IS_REQUIRED],
|
||||||
|
'SYSTEM' AS [CHANGEDWHO],
|
||||||
|
'FAILSAFE_ROW_RETURNED' AS [COMMENT],
|
||||||
|
CAST(1 AS BIT) AS [IS_FALLBACK]
|
||||||
|
WHERE NOT EXISTS (SELECT 1 FROM [SRC_FILTERED_DATA])
|
||||||
|
) AS [OUT_RESULT_DATA]
|
||||||
|
|
||||||
|
--===================================-- Resolve spec configuration --===================================--
|
||||||
|
OUTER APPLY (
|
||||||
|
SELECT TOP (1)
|
||||||
|
v.[SPEC_NAME] AS [MATCHED_SPEC_NAME],
|
||||||
|
v.[FALLBACK_ITEM_VALUE] AS [CONFIGURED_FALLBACK_ITEM_VALUE],
|
||||||
|
v.[ALLOW_FALLBACK] AS [ALLOW_FALLBACK]
|
||||||
|
FROM [CFG_INVOICE_REFERENCE_SPEC] v
|
||||||
|
WHERE v.[SPEC_NAME] = UPPER(CONVERT(NVARCHAR(200), ISNULL([OUT_RESULT_DATA].[SPEC_NAME], N'')))
|
||||||
|
) AS [CFG_SPEC]
|
||||||
|
|
||||||
|
--=============================-- Derived check flags and fallback value --=============================--
|
||||||
|
CROSS APPLY (
|
||||||
|
SELECT
|
||||||
|
CASE
|
||||||
|
WHEN [CFG_SPEC].[MATCHED_SPEC_NAME] IS NULL THEN CAST(0 AS BIT)
|
||||||
|
ELSE CAST(1 AS BIT)
|
||||||
|
END AS [IS_INVOICE_REFERENCE_SPEC],
|
||||||
|
[CFG_SPEC].[CONFIGURED_FALLBACK_ITEM_VALUE] AS [CONFIGURED_FALLBACK_ITEM_VALUE],
|
||||||
|
ISNULL([CFG_SPEC].[ALLOW_FALLBACK], CAST(0 AS BIT)) AS [ALLOW_FALLBACK]
|
||||||
|
) AS [CHK_SPEC]
|
||||||
|
|
||||||
|
--=============================-- Preprocessing for EB pattern matching --=============================--
|
||||||
|
CROSS APPLY (
|
||||||
|
SELECT LTRIM(RTRIM(ISNULL([OUT_RESULT_DATA].[ITEM_VALUE], N''))) AS [CLEAN_ITEM_VALUE]
|
||||||
|
) AS [VAL_CLEAN]
|
||||||
|
|
||||||
|
CROSS APPLY (
|
||||||
|
SELECT N' ' + [VAL_CLEAN].[CLEAN_ITEM_VALUE] + N' ' AS [PADDED_ITEM_VALUE]
|
||||||
|
) AS [VAL_PADDED]
|
||||||
|
|
||||||
|
CROSS APPLY (
|
||||||
|
-- Match EB + 8 digits with non-digit boundaries left and right
|
||||||
|
SELECT PATINDEX(
|
||||||
|
N'%[^0-9]EB[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%',
|
||||||
|
[VAL_PADDED].[PADDED_ITEM_VALUE]
|
||||||
|
) AS [EB_PATTERN_POS]
|
||||||
|
) AS [PAT_EB]
|
||||||
|
|
||||||
|
--====================================-- Normalize EB output value --====================================--
|
||||||
|
CROSS APPLY (
|
||||||
|
SELECT
|
||||||
|
CASE
|
||||||
|
-- Exact EB value
|
||||||
|
WHEN [VAL_CLEAN].[CLEAN_ITEM_VALUE] LIKE N'EB[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
|
||||||
|
THEN [VAL_CLEAN].[CLEAN_ITEM_VALUE]
|
||||||
|
|
||||||
|
-- Extract EB value from a longer free-text string
|
||||||
|
WHEN [PAT_EB].[EB_PATTERN_POS] > 0
|
||||||
|
THEN SUBSTRING([VAL_PADDED].[PADDED_ITEM_VALUE], [PAT_EB].[EB_PATTERN_POS] + 1, 10)
|
||||||
|
|
||||||
|
-- No valid EB found: fallback if allowed, otherwise keep original value
|
||||||
|
ELSE CASE
|
||||||
|
WHEN [CHK_SPEC].[ALLOW_FALLBACK] = 1 THEN [CHK_SPEC].[CONFIGURED_FALLBACK_ITEM_VALUE]
|
||||||
|
ELSE [OUT_RESULT_DATA].[ITEM_VALUE]
|
||||||
|
END
|
||||||
|
END AS [NORMALIZED_EB_VALUE]
|
||||||
|
) AS [NORM_EB]
|
||||||
|
|
||||||
|
--=========================================-- Default result ordering --=========================================--
|
||||||
|
ORDER BY [GROUP_COUNTER] ASC
|
||||||
|
);
|
||||||
|
|
||||||
|
/***
|
||||||
|
-- Test
|
||||||
|
|
||||||
|
SELECT * from dbo.[FNCUST_GET_EDMI_ITEM_VALUE] ('ERw202602090942454286171lfelsburg','INVOICE_TAXPOS_RATE')
|
||||||
|
|
||||||
|
***/
|
||||||
@@ -0,0 +1,249 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- [FNCUST_GET_INVOICE_DATA_AS_JSON]
|
||||||
|
-- =================================================================
|
||||||
|
-- Reads invoice data from relational tables and returns a normalized
|
||||||
|
-- JSON response matching the CreateInvoice_Request structure.
|
||||||
|
--
|
||||||
|
-- Parameters:
|
||||||
|
-- @pMANDATOR NVARCHAR(5) Mandant (e.g. 'SWE')
|
||||||
|
-- @pIDB_OBJECT_ID BIGINT windream Document ID
|
||||||
|
-- @pORDER_NR NVARCHAR(25) Order number from NAV
|
||||||
|
-- @pDATA_SEPERATOR NVARCHAR(1) Separator character (e.g. '~')
|
||||||
|
-- @pWD_VKR_POSTING_DESCRIPTION NVARCHAR(25) Vector string for posting description
|
||||||
|
-- @pWD_VKR_ACCOUNTING NVARCHAR(25) Vector string for accounting
|
||||||
|
-- Returns: TABLE (success BIT, message NVARCHAR(MAX), data NVARCHAR(MAX))
|
||||||
|
-- =================================================================
|
||||||
|
-- Copyright (c) 2026 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: 26.02.2026 / MK
|
||||||
|
-- Version Date / Editor: 03.03.2026 / MK
|
||||||
|
-- Version Number: 1.3.0.0
|
||||||
|
-- =================================================================
|
||||||
|
-- History:
|
||||||
|
-- 03.03.2026 / MK - Replaced STRING_ESCAPE with REPLACE to preserve
|
||||||
|
-- Unicode characters (umlauts, +) in JSON output
|
||||||
|
-- 03.03.2026 / MK - Wrapped JSON output in {"data":"..."} envelope matching
|
||||||
|
-- CreateInvoice_Request template
|
||||||
|
-- 03.03.2026 / MK - Removed unreachable WHEN 2 validation branch; removed commented-out
|
||||||
|
-- WITH SCHEMABINDING; fixed header parameter documentation
|
||||||
|
-- 26.02.2026 / MK - First Version
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_INVOICE_DATA_AS_JSON](
|
||||||
|
@pMANDATOR NVARCHAR(5), -- SWE
|
||||||
|
@pIDB_OBJECT_ID BIGINT, -- windream Doc ID
|
||||||
|
@pORDER_NR NVARCHAR(25), -- Bestellnr aus NAV
|
||||||
|
@pDATA_SEPERATOR NVARCHAR(1), -- ~
|
||||||
|
@pDATA_SEPERATOR_TAX NVARCHAR(3), -- ' - '
|
||||||
|
@pWD_VKR_POSTING_DESCRIPTION NVARCHAR(25), -- 'Vektor String 054'
|
||||||
|
@pWD_IDX_POSTING_DESCRIPTION NVARCHAR(25), -- 'Beschreibung'
|
||||||
|
@pWD_VKR_ACCOUNTING NVARCHAR(25) -- 'Vektor String 422'
|
||||||
|
)
|
||||||
|
RETURNS TABLE
|
||||||
|
AS
|
||||||
|
RETURN
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
--=========================================================-- success --=========================================================--
|
||||||
|
success = CAST(IIF(HEAD.HEAD_STATUS = 0, 1, 0) AS BIT),
|
||||||
|
|
||||||
|
--=========================================================-- message --=========================================================--
|
||||||
|
message = CAST(
|
||||||
|
CASE HEAD.HEAD_STATUS
|
||||||
|
WHEN 1 THEN N'Kein PurchaseDocument mit [IDB_OBJECT_ID] = ' + CAST(@pIDB_OBJECT_ID AS NVARCHAR(20)) + N' gefunden.'
|
||||||
|
ELSE N'Daten erfolgreich verarbeitet.'
|
||||||
|
END
|
||||||
|
AS NVARCHAR(MAX)),
|
||||||
|
|
||||||
|
--===========================================================-- data --==========================================================--
|
||||||
|
data = CAST(
|
||||||
|
CASE WHEN HEAD.HEAD_STATUS >= 1 THEN NULL -- No Head data found
|
||||||
|
WHEN HEAD.HEAD_STATUS = 0 AND POS.POS_STATUS >= 1 THEN -- Head data found, no pos data found
|
||||||
|
|
||||||
|
--===========================================-- Build output JSON without pos data --============================================--
|
||||||
|
|
||||||
|
N'{"data":"' + REPLACE(REPLACE(
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
JSON_QUERY(
|
||||||
|
COALESCE(
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
[documentType] = [INVOICE_HEAD].[DocumentType]
|
||||||
|
, [no] = [INVOICE_HEAD].[No]
|
||||||
|
, [noSeries] = [INVOICE_HEAD].[NoSeries]
|
||||||
|
, [processIDTransfer] = [INVOICE_HEAD].[ProcessIDTransfer]
|
||||||
|
, [buyFromVendorNo] = [INVOICE_HEAD].[BuyFromVendorNo]
|
||||||
|
, [payToVendorNo] = [INVOICE_HEAD].[PayToVendorNo]
|
||||||
|
, [postingDate] = [INVOICE_HEAD].[PostingDate]
|
||||||
|
, [paymentTermsCode] = [INVOICE_HEAD].[PaymentTermsCode]
|
||||||
|
--, [paymentTermsCodeIR] = [INVOICE_HEAD].[PaymentTermsCodeIR]
|
||||||
|
, [dueDate] = [INVOICE_HEAD].[DueDate]
|
||||||
|
, [pmtDiscountDate] = [INVOICE_HEAD].[PmtDiscountDate]
|
||||||
|
, [paymentDiscount] = [INVOICE_HEAD].[PaymentDiscount]
|
||||||
|
--, [paymentDiscountIR] = [INVOICE_HEAD].[PaymentDiscountIR]
|
||||||
|
, [currencyCode] = [INVOICE_HEAD].[CurrencyCode]
|
||||||
|
, [invoiceDiscCode] = [INVOICE_HEAD].[InvoiceDiscCode]
|
||||||
|
, [postingDescription] = [INVOICE_HEAD].[PostingDescription]
|
||||||
|
, [paymentMethodCode] = [INVOICE_HEAD].[PaymentMethodCode]
|
||||||
|
, [vendorInvoiceNo] = [INVOICE_HEAD].[VendorInvoiceNo]
|
||||||
|
, [vendorCrMemoNo] = [INVOICE_HEAD].[VendorCrMemoNo]
|
||||||
|
, [phrVendorBankAccountCode] = [INVOICE_HEAD].[PhrVendorBankAccountCode]
|
||||||
|
, [phrBankBranchNo] = [INVOICE_HEAD].[PhrBankBranchNo]
|
||||||
|
, [phrBankAccountNo] = [INVOICE_HEAD].[PhrBankAccountNo]
|
||||||
|
, [phrIBAN] = [INVOICE_HEAD].[PhrIBAN]
|
||||||
|
, [phrSWIFTCode] = [INVOICE_HEAD].[PhrSWIFTCode]
|
||||||
|
, [phrBankName] = [INVOICE_HEAD].[PhrBankName]
|
||||||
|
, [phrBankAccountEntryPriority] = [INVOICE_HEAD].[PhrBankAccountEntryPriority]
|
||||||
|
, [phrRMCashDiscountReceived] = [INVOICE_HEAD].[PhrRMCashDiscountReceived]
|
||||||
|
, [phrRMAmountIncludingVAT] = [INVOICE_HEAD].[PhrRMAmountIncludingVAT]
|
||||||
|
, [phrRMAmountLessDiscount] = [INVOICE_HEAD].[PhrRMAmountLessDiscount]
|
||||||
|
|
||||||
|
FROM [dbo].[FNCUST_GET_INVOICE_HEAD_TRANSFER](@pMANDATOR,@pIDB_OBJECT_ID,@pORDER_NR,@pWD_IDX_POSTING_DESCRIPTION,@pWD_VKR_POSTING_DESCRIPTION) as [INVOICE_HEAD]
|
||||||
|
WHERE [INVOICE_HEAD].[IDB_OBJECT_ID] = @pIDB_OBJECT_ID
|
||||||
|
ORDER BY [INVOICE_HEAD].[IDB_OBJECT_ID]
|
||||||
|
FOR JSON PATH, INCLUDE_NULL_VALUES
|
||||||
|
)
|
||||||
|
, '[]'
|
||||||
|
)
|
||||||
|
) AS purchaseDocuments
|
||||||
|
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
|
||||||
|
)
|
||||||
|
, N'\', N'\\'), N'"', N'\"') + N'"}'
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
--=============================================-- Build output JSON with pos data --=============================================--
|
||||||
|
N'{"data":"' + REPLACE(REPLACE(
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
JSON_QUERY(
|
||||||
|
COALESCE(
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
[documentType] = [INVOICE_HEAD].[DocumentType]
|
||||||
|
, [no] = [INVOICE_HEAD].[No]
|
||||||
|
, [noSeries] = [INVOICE_HEAD].[NoSeries]
|
||||||
|
, [processIDTransfer] = [INVOICE_HEAD].[ProcessIDTransfer]
|
||||||
|
, [buyFromVendorNo] = [INVOICE_HEAD].[BuyFromVendorNo]
|
||||||
|
, [payToVendorNo] = [INVOICE_HEAD].[PayToVendorNo]
|
||||||
|
, [postingDate] = [INVOICE_HEAD].[PostingDate]
|
||||||
|
, [paymentTermsCode] = [INVOICE_HEAD].[PaymentTermsCode]
|
||||||
|
--, [paymentTermsCodeIR] = [INVOICE_HEAD].[PaymentTermsCodeIR]
|
||||||
|
, [dueDate] = [INVOICE_HEAD].[DueDate]
|
||||||
|
, [pmtDiscountDate] = [INVOICE_HEAD].[PmtDiscountDate]
|
||||||
|
, [paymentDiscount] = [INVOICE_HEAD].[PaymentDiscount]
|
||||||
|
--, [paymentDiscountIR] = [INVOICE_HEAD].[PaymentDiscountIR]
|
||||||
|
, [currencyCode] = [INVOICE_HEAD].[CurrencyCode]
|
||||||
|
, [invoiceDiscCode] = [INVOICE_HEAD].[InvoiceDiscCode]
|
||||||
|
, [postingDescription] = [INVOICE_HEAD].[PostingDescription]
|
||||||
|
, [paymentMethodCode] = [INVOICE_HEAD].[PaymentMethodCode]
|
||||||
|
, [vendorInvoiceNo] = [INVOICE_HEAD].[VendorInvoiceNo]
|
||||||
|
, [vendorCrMemoNo] = [INVOICE_HEAD].[VendorCrMemoNo]
|
||||||
|
, [phrVendorBankAccountCode] = [INVOICE_HEAD].[PhrVendorBankAccountCode]
|
||||||
|
, [phrBankBranchNo] = [INVOICE_HEAD].[PhrBankBranchNo]
|
||||||
|
, [phrBankAccountNo] = [INVOICE_HEAD].[PhrBankAccountNo]
|
||||||
|
, [phrIBAN] = [INVOICE_HEAD].[PhrIBAN]
|
||||||
|
, [phrSWIFTCode] = [INVOICE_HEAD].[PhrSWIFTCode]
|
||||||
|
, [phrBankName] = [INVOICE_HEAD].[PhrBankName]
|
||||||
|
, [phrBankAccountEntryPriority] = [INVOICE_HEAD].[PhrBankAccountEntryPriority]
|
||||||
|
, [phrRMCashDiscountReceived] = [INVOICE_HEAD].[PhrRMCashDiscountReceived]
|
||||||
|
, [phrRMAmountIncludingVAT] = [INVOICE_HEAD].[PhrRMAmountIncludingVAT]
|
||||||
|
, [phrRMAmountLessDiscount] = [INVOICE_HEAD].[PhrRMAmountLessDiscount]
|
||||||
|
, purchaseLines = JSON_QUERY(
|
||||||
|
COALESCE(
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
[attachedToLineNo] = [INVOICE_POS].[AttachedToLineNo]
|
||||||
|
, [type] = [INVOICE_POS].[Type]
|
||||||
|
, [no] = [INVOICE_POS].[No]
|
||||||
|
, [description] = [INVOICE_POS].[Description]
|
||||||
|
, [description2] = [INVOICE_POS].[Description2]
|
||||||
|
, [locationCode] = [INVOICE_POS].[LocationCode]
|
||||||
|
, [variantCode] = [INVOICE_POS].[VariantCode]
|
||||||
|
, [quantity] = [INVOICE_POS].[Quantity]
|
||||||
|
, [unitOfMeasureCode] = [INVOICE_POS].[UnitOfMeasureCode]
|
||||||
|
, [directUnitCost] = [INVOICE_POS].[DirectUnitCost]
|
||||||
|
, [lineDiscount] = [INVOICE_POS].[LineDiscount]
|
||||||
|
, [ableToDiscount] = [INVOICE_POS].[AbleToDiscount]
|
||||||
|
, [discountCalculated] = [INVOICE_POS].[DiscountCalculated]
|
||||||
|
, [workOrderNo] = [INVOICE_POS].[WorkOrderNo]
|
||||||
|
, [genBusPostingGroup] = [INVOICE_POS].[GenBusPostingGroup]
|
||||||
|
, [genProdPostingGroup] = [INVOICE_POS].[GenProdPostingGroup]
|
||||||
|
, [vatBusPostingGroup] = [INVOICE_POS].[VatBusPostingGroup]
|
||||||
|
, [vatProdPostingGroup] = [INVOICE_POS].[VatProdPostingGroup]
|
||||||
|
, [applToItemEntry] = [INVOICE_POS].[ApplToItemEntry]
|
||||||
|
, [postingWithoutApply] = [INVOICE_POS].[PostingWithoutApply]
|
||||||
|
, [anticipatedPayment] = [INVOICE_POS].[AnticipatedPayment]
|
||||||
|
, [receiptNo] = [INVOICE_POS].[ReceiptNo]
|
||||||
|
, [receiptLineNo] = [INVOICE_POS].[ReceiptLineNo]
|
||||||
|
, [irOrderNo] = [INVOICE_POS].[IrOrderNo]
|
||||||
|
, [irOrderLineNo] = [INVOICE_POS].[IrOrderLineNo]
|
||||||
|
|
||||||
|
FROM [dbo].[FNCUST_GET_INVOICE_POS_TRANSFER](@pMANDATOR,@pIDB_OBJECT_ID,@pORDER_NR,@pDATA_SEPERATOR,@pDATA_SEPERATOR_TAX,@pWD_VKR_ACCOUNTING) as [INVOICE_POS]
|
||||||
|
WHERE [INVOICE_POS].[IDB_OBJECT_ID] = [INVOICE_HEAD].[IDB_OBJECT_ID]
|
||||||
|
ORDER BY [INVOICE_POS].[attachedToLineNo]
|
||||||
|
FOR JSON PATH, INCLUDE_NULL_VALUES
|
||||||
|
)
|
||||||
|
, '[]'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
FROM [dbo].[FNCUST_GET_INVOICE_HEAD_TRANSFER](@pMANDATOR,@pIDB_OBJECT_ID,@pORDER_NR,@pWD_IDX_POSTING_DESCRIPTION,@pWD_VKR_POSTING_DESCRIPTION) as [INVOICE_HEAD]
|
||||||
|
WHERE [INVOICE_HEAD].[IDB_OBJECT_ID] = @pIDB_OBJECT_ID
|
||||||
|
ORDER BY [INVOICE_HEAD].[IDB_OBJECT_ID]
|
||||||
|
FOR JSON PATH, INCLUDE_NULL_VALUES
|
||||||
|
)
|
||||||
|
, '[]'
|
||||||
|
)
|
||||||
|
) AS purchaseDocuments
|
||||||
|
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
|
||||||
|
)
|
||||||
|
, N'\', N'\\'), N'"', N'\"') + N'"}'
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
END
|
||||||
|
AS NVARCHAR(MAX))
|
||||||
|
|
||||||
|
FROM (VALUES (1)) AS src(x)
|
||||||
|
|
||||||
|
CROSS APPLY (
|
||||||
|
--====================================================-- Validate head input --===================================================--
|
||||||
|
SELECT HEAD_STATUS = CASE
|
||||||
|
WHEN NOT EXISTS (SELECT 1 FROM [dbo].[FNCUST_GET_INVOICE_HEAD_TRANSFER](@pMANDATOR,@pIDB_OBJECT_ID,@pORDER_NR,@pWD_IDX_POSTING_DESCRIPTION,@pWD_VKR_POSTING_DESCRIPTION) WHERE [IDB_OBJECT_ID] = @pIDB_OBJECT_ID)
|
||||||
|
THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
) AS HEAD
|
||||||
|
|
||||||
|
CROSS APPLY (
|
||||||
|
--====================================================-- Validate pos input --====================================================--
|
||||||
|
SELECT POS_STATUS = CASE
|
||||||
|
WHEN NOT EXISTS (SELECT 1 FROM [dbo].[FNCUST_GET_INVOICE_POS_TRANSFER](@pMANDATOR,@pIDB_OBJECT_ID,@pORDER_NR,@pDATA_SEPERATOR,@pDATA_SEPERATOR_TAX,@pWD_VKR_ACCOUNTING) WHERE [IDB_OBJECT_ID] = @pIDB_OBJECT_ID AND ISNULL([quantity],0) > 0)
|
||||||
|
THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
) AS POS
|
||||||
|
|
||||||
|
);
|
||||||
|
GO
|
||||||
|
|
||||||
|
/***
|
||||||
|
-- Test:
|
||||||
|
|
||||||
|
SELECT * FROM dbo.FNCUST_GET_INVOICE_DATA_AS_JSON('SWE',9208855,'EB00020596','~',' - ','Vektor String 054','Beschreibung','Vektor String 422')
|
||||||
|
SELECT * FROM dbo.FNCUST_GET_INVOICE_DATA_AS_JSON('SWE',9209044,'EB00021040','~',' - ','Vektor String 054','Beschreibung','Vektor String 422')
|
||||||
|
|
||||||
|
SELECT * FROM dbo.FNCUST_GET_INVOICE_DATA_AS_JSON('SWE',9229975,'EB00021129','~',' - ','Vektor String 054','Beschreibung','Vektor String 422')
|
||||||
|
|
||||||
|
SELECT * FROM dbo.FNCUST_GET_INVOICE_DATA_AS_JSON('SWE',9209045,'EB9999999','~',' - ','Vektor String 054','Beschreibung','Vektor String 422')
|
||||||
|
|
||||||
|
***/
|
||||||
@@ -0,0 +1,552 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- HE, MK // 23.03.2026
|
||||||
|
-- 23.03.2026 HE, MK Initial
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_INVOICE_HEAD_TRANSFER] (
|
||||||
|
@pMANDATOR NVARCHAR(5),
|
||||||
|
@pIDB_OBJECT_ID BIGINT,
|
||||||
|
@pORDER_NR NVARCHAR(25),
|
||||||
|
@pWD_IDX_POSTING_DESCRIPTION NVARCHAR(25), -- = 'Beschreibung';
|
||||||
|
@pWD_VKR_POSTING_DESCRIPTION NVARCHAR(25) -- = 'Vektor String 054';
|
||||||
|
)
|
||||||
|
RETURNS @vTB_INVOICE_HEAD_TRANSFER TABLE ([GUID] [BIGINT] IDENTITY(1,1) NOT NULL,
|
||||||
|
[IDB_OBJECT_ID] [BIGINT] NOT NULL,
|
||||||
|
[documentType] [INT] NOT NULL,
|
||||||
|
[no] [NVARCHAR](20) NULL,
|
||||||
|
[noSeries] [NVARCHAR](20) NOT NULL,
|
||||||
|
[processIDTransfer] [NVARCHAR](25) NOT NULL,
|
||||||
|
[buyFromVendorNo] [NVARCHAR](20) NOT NULL,
|
||||||
|
[payToVendorNo] [NVARCHAR](20) NOT NULL,
|
||||||
|
[postingDate] [NVARCHAR](10) NULL,
|
||||||
|
[paymentTermsCode] [NVARCHAR](10) NULL,
|
||||||
|
[paymentTermsCodeIR] [NVARCHAR](10) NULL,
|
||||||
|
[dueDate] [DATE] NULL,
|
||||||
|
[pmtDiscountDate] [DATE] NULL,
|
||||||
|
[paymentDiscount] [DECIMAL](38,2) NULL,
|
||||||
|
[paymentDiscountIR] [DECIMAL](38,2) NULL,
|
||||||
|
[currencyCode] [NVARCHAR](10) NULL,
|
||||||
|
[invoiceDiscCode] [NVARCHAR](20) NULL,
|
||||||
|
[postingDescription] [NVARCHAR](100) NULL,
|
||||||
|
[paymentMethodCode] [NVARCHAR](10) NULL,
|
||||||
|
[vendorInvoiceNo] [NVARCHAR](35) NOT NULL,
|
||||||
|
[vendorCrMemoNo] [NVARCHAR](35) NULL,
|
||||||
|
[phrVendorBankAccountCode] [NVARCHAR](20) NULL,
|
||||||
|
[phrBankBranchNo] [NVARCHAR](20) NULL,
|
||||||
|
[phrBankAccountNo] [NVARCHAR](30) NULL,
|
||||||
|
[phrIBAN] [NVARCHAR](50) NULL,
|
||||||
|
[phrSWIFTCode] [NVARCHAR](20) NULL,
|
||||||
|
[phrBankName] [NVARCHAR](100) NULL,
|
||||||
|
[phrBankAccountEntryPriority] [BIT] NULL,
|
||||||
|
[phrRMCashDiscountReceived] [BIT] NULL,
|
||||||
|
[phrRMAmountIncludingVAT] [DECIMAL](38,2) NULL,
|
||||||
|
[phrRMAmountLessDiscount] [DECIMAL](38,2) NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @MANDATOR NVARCHAR(5) = UPPER(LTRIM(RTRIM(@pMANDATOR))),
|
||||||
|
@IDB_OBJECT_ID BIGINT = @pIDB_OBJECT_ID,
|
||||||
|
@ORDER_NR NVARCHAR(25) = LTRIM(RTRIM(@pORDER_NR)),
|
||||||
|
@WD_IDX_POSTING_DESCRIPTION NVARCHAR(25) = LTRIM(RTRIM(@pWD_IDX_POSTING_DESCRIPTION)),
|
||||||
|
@WD_VKR_POSTING_DESCRIPTION NVARCHAR(25) = LTRIM(RTRIM(@pWD_VKR_POSTING_DESCRIPTION));
|
||||||
|
|
||||||
|
-- declare runtime vars
|
||||||
|
DECLARE @MY_FUNCTION_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID),
|
||||||
|
@POSTING_DESCRIPTION NVARCHAR(1000) = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
SET @POSTING_DESCRIPTION = (SELECT TOP 1 LTRIM(RTRIM([VALUE])) FROM [FNDD_GET_WINDREAM_INDEX_VALUES](@IDB_OBJECT_ID,@WD_IDX_POSTING_DESCRIPTION,'; ',0,0));
|
||||||
|
|
||||||
|
IF (LEN(@POSTING_DESCRIPTION) > 0) BEGIN
|
||||||
|
|
||||||
|
SET @POSTING_DESCRIPTION += '; ';
|
||||||
|
SET @POSTING_DESCRIPTION += (SELECT TOP 1 LTRIM(RTRIM([VALUE])) FROM [FNDD_GET_WINDREAM_INDEX_VALUES](@IDB_OBJECT_ID,@WD_VKR_POSTING_DESCRIPTION,'; ',0,0));
|
||||||
|
|
||||||
|
END ELSE BEGIN
|
||||||
|
|
||||||
|
SET @POSTING_DESCRIPTION = (SELECT TOP 1 LTRIM(RTRIM([VALUE])) FROM [FNDD_GET_WINDREAM_INDEX_VALUES](@IDB_OBJECT_ID,@WD_VKR_POSTING_DESCRIPTION,'; ',0,0));
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------- Nav Feld ist nur 100 Zeichen groß --------------------------
|
||||||
|
IF (LEN(@POSTING_DESCRIPTION) > 0) BEGIN
|
||||||
|
SET @POSTING_DESCRIPTION = Replace(@POSTING_DESCRIPTION,' ',' ');
|
||||||
|
SET @POSTING_DESCRIPTION = Replace(@POSTING_DESCRIPTION,char(13),' ');
|
||||||
|
SET @POSTING_DESCRIPTION = LEFT(@POSTING_DESCRIPTION,100);
|
||||||
|
END;
|
||||||
|
---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
IF ((@MANDATOR = 'SWE') AND ((@ORDER_NR <> 'EB9999999') AND (@ORDER_NR IS NOT NULL))) BEGIN -- Mit Bestelldaten aus NAV
|
||||||
|
|
||||||
|
INSERT INTO @vTB_INVOICE_HEAD_TRANSFER ([IDB_OBJECT_ID],
|
||||||
|
[documentType],
|
||||||
|
[no],
|
||||||
|
[noSeries],
|
||||||
|
[processIDTransfer],
|
||||||
|
[buyFromVendorNo],
|
||||||
|
[payToVendorNo],
|
||||||
|
[postingDate],
|
||||||
|
[paymentTermsCode],
|
||||||
|
[paymentTermsCodeIR],
|
||||||
|
[dueDate],
|
||||||
|
[pmtDiscountDate],
|
||||||
|
[paymentDiscount],
|
||||||
|
[paymentDiscountIR],
|
||||||
|
[currencyCode],
|
||||||
|
[invoiceDiscCode],
|
||||||
|
[postingDescription],
|
||||||
|
[paymentMethodCode],
|
||||||
|
[vendorInvoiceNo],
|
||||||
|
[vendorCrMemoNo],
|
||||||
|
[phrVendorBankAccountCode],
|
||||||
|
[phrBankBranchNo],
|
||||||
|
[phrBankAccountNo],
|
||||||
|
[phrIBAN],
|
||||||
|
[phrSWIFTCode],
|
||||||
|
[phrBankName],
|
||||||
|
[phrBankAccountEntryPriority],
|
||||||
|
[phrRMCashDiscountReceived],
|
||||||
|
[phrRMAmountIncludingVAT],
|
||||||
|
[phrRMAmountLessDiscount])
|
||||||
|
|
||||||
|
SELECT @pIDB_OBJECT_ID as 'IDB_OBJECT_ID',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 2
|
||||||
|
ELSE 0
|
||||||
|
END as 'documentType',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN ''
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'no',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 'E-RE'
|
||||||
|
ELSE ''
|
||||||
|
END as 'noSeries',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 'TEST'
|
||||||
|
ELSE ''
|
||||||
|
END as 'processIDTransfer',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(LTRIM(RTRIM([BaseAttributes].[szText35]))) > 0
|
||||||
|
THEN LTRIM(RTRIM([BaseAttributes].[szText35]))
|
||||||
|
ELSE ''
|
||||||
|
END as 'buyFromVendorNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(LTRIM(RTRIM([BaseAttributes].[szText35]))) > 0
|
||||||
|
THEN LTRIM(RTRIM([BaseAttributes].[szText35]))
|
||||||
|
ELSE ''
|
||||||
|
END as 'payToVendorNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(CONVERT(nvarchar(25), LEFT([BaseAttributes].[dwDate08],8))) > 0
|
||||||
|
THEN CONVERT(date, LEFT([BaseAttributes].[dwDate08], 8), 112)
|
||||||
|
ELSE convert(date,(getdate()))
|
||||||
|
END as 'postingDate',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([PurchaseHeader].[Payment Terms Code]) > 0
|
||||||
|
THEN [PurchaseHeader].[Payment Terms Code]
|
||||||
|
ELSE ''
|
||||||
|
END as 'paymentTermsCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN ''
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'paymentTermsCodeIR',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(CONVERT(nvarchar(25), LEFT([BaseAttributes].[dwDate06],8))) > 0
|
||||||
|
THEN CONVERT(date, LEFT([BaseAttributes].[dwDate06], 8), 112)
|
||||||
|
ELSE NULL
|
||||||
|
END as 'dueDate',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN [BaseAttributes].[dwInteger23] > 0
|
||||||
|
THEN DATEADD(day,-[BaseAttributes].[dwInteger23],CONVERT(date, LEFT([BaseAttributes].[decCreationTime], 8), 112))
|
||||||
|
ELSE ''
|
||||||
|
END as 'pmtDiscountDate',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN [BaseAttributes].[lfFloat09] > 0 -- Skonto Prozent
|
||||||
|
THEN [BaseAttributes].[lfFloat09]
|
||||||
|
ELSE 0
|
||||||
|
END as 'paymentDiscount',
|
||||||
|
|
||||||
|
--CASE
|
||||||
|
-- WHEN (([BaseAttributes].[dwInteger23] > 0) AND ([BaseAttributes].[lfFloat09] > 0) AND ([BaseAttributes].[lfFloat08] > 0)) -- Skontotage | Skonto Prozent | Skontierbare Betrag
|
||||||
|
-- THEN [BaseAttributes].[lfFloat08] / 100 * ([BaseAttributes].[lfFloat09])
|
||||||
|
-- ELSE 0
|
||||||
|
--END as 'paymentDiscount',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 0
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'paymentDiscountIR',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([PurchaseHeader].[Currency Code]) > 0
|
||||||
|
THEN [PurchaseHeader].[Currency Code]
|
||||||
|
ELSE ''
|
||||||
|
END as 'currencyCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([PurchaseHeader].[Invoice Disc_ Code]) > 0
|
||||||
|
THEN [PurchaseHeader].[Invoice Disc_ Code]
|
||||||
|
ELSE ''
|
||||||
|
END as 'invoiceDiscCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(@POSTING_DESCRIPTION) > 0
|
||||||
|
THEN @POSTING_DESCRIPTION
|
||||||
|
ELSE ''
|
||||||
|
END as 'postingDescription',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([PurchaseHeader].[Payment Method Code]) > 0
|
||||||
|
THEN [PurchaseHeader].[Payment Method Code]
|
||||||
|
ELSE ''
|
||||||
|
END as 'paymentMethodCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([BaseAttributes].[szText37]) > 0
|
||||||
|
THEN LTRIM(RTRIM([BaseAttributes].[szText37]))
|
||||||
|
ELSE ''
|
||||||
|
END as 'vendorInvoiceNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([PurchaseHeader].[Vendor Cr_ Memo No_]) > 0
|
||||||
|
THEN [PurchaseHeader].[Vendor Cr_ Memo No_]
|
||||||
|
ELSE ''
|
||||||
|
END as 'vendorCrMemoNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[Code]) > 0
|
||||||
|
THEN [VendorBankAccount].[Code]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrVendorBankAccountCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[Bank Branch No_]) > 0
|
||||||
|
THEN [VendorBankAccount].[Bank Branch No_]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrBankBranchNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[Bank Account No_]) > 0
|
||||||
|
THEN [VendorBankAccount].[Bank Account No_]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrBankAccountNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[IBAN]) > 0
|
||||||
|
THEN [VendorBankAccount].[IBAN]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrIBAN',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[SWIFT Code]) > 0
|
||||||
|
THEN [VendorBankAccount].[SWIFT Code]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrSWIFTCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[Name]) > 0
|
||||||
|
THEN [VendorBankAccount].[Name]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrBankName',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 0
|
||||||
|
ELSE 1
|
||||||
|
END as 'phrBankAccountEntryPriority',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 0
|
||||||
|
ELSE 1
|
||||||
|
END as 'phrRMCashDiscountReceived',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(convert(NVARCHAR(25),[BaseAttributes].[lfFloat13])) > 0
|
||||||
|
THEN convert(decimal(38,2),replace(convert(NVARCHAR(25),[BaseAttributes].[lfFloat13]),',','.'))
|
||||||
|
ELSE 0
|
||||||
|
END as 'phrRMAmountIncludingVAT',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(convert(NVARCHAR(25),[BaseAttributes].[lfFloat12])) > 0
|
||||||
|
THEN convert(decimal(38,2),replace(convert(NVARCHAR(25),[BaseAttributes].[lfFloat12]),',','.'))
|
||||||
|
ELSE 0
|
||||||
|
END as 'phrRMAmountLessDiscount'
|
||||||
|
|
||||||
|
FROM [windreamDB].[dbo].[BaseAttributes] as [BaseAttributes] WITH (NOLOCK)
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PurchaseHeader] ON [BaseAttributes].[szText36] COLLATE DATABASE_DEFAULT = [PurchaseHeader].[No_] COLLATE DATABASE_DEFAULT
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor$437dbf0e-84ff-417a-965d-ed2bb9650972] as [Vendor] ON [PurchaseHeader].[Pay-to Vendor No_] = [Vendor].[No_]
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor$437dbf0e-84ff-417a-965d-ed2bb9650972$ext] as [VendorExt] ON [Vendor].[No_] = [VendorExt].[No_]
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972$ext] as [VendorBankAccountExt] ON [Vendor].[No_] = [VendorBankAccountExt].[Vendor No_] AND [WLK Clearing$408c5b32-694e-47bb-96d5-dad7fc8111a7] = 1
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972] as [VendorBankAccount] ON [Vendor].[No_] = [VendorBankAccount].[Vendor No_] AND [VendorBankAccount].[Code] = [VendorBankAccountExt].[Code]
|
||||||
|
|
||||||
|
WHERE [BaseAttributes].[dwDocID] = @IDB_OBJECT_ID; -- test mit 9174258
|
||||||
|
|
||||||
|
END ELSE IF (@MANDATOR = 'SWE') BEGIN -- Ohne Bestelldaten aus NAV
|
||||||
|
|
||||||
|
INSERT INTO @vTB_INVOICE_HEAD_TRANSFER ([IDB_OBJECT_ID],
|
||||||
|
[documentType],
|
||||||
|
[no],
|
||||||
|
[noSeries],
|
||||||
|
[processIDTransfer],
|
||||||
|
[buyFromVendorNo],
|
||||||
|
[payToVendorNo],
|
||||||
|
[postingDate],
|
||||||
|
[paymentTermsCode],
|
||||||
|
[paymentTermsCodeIR],
|
||||||
|
[dueDate],
|
||||||
|
[pmtDiscountDate],
|
||||||
|
[paymentDiscount],
|
||||||
|
[paymentDiscountIR],
|
||||||
|
[currencyCode],
|
||||||
|
[invoiceDiscCode],
|
||||||
|
[postingDescription],
|
||||||
|
[paymentMethodCode],
|
||||||
|
[vendorInvoiceNo],
|
||||||
|
[vendorCrMemoNo],
|
||||||
|
[phrVendorBankAccountCode],
|
||||||
|
[phrBankBranchNo],
|
||||||
|
[phrBankAccountNo],
|
||||||
|
[phrIBAN],
|
||||||
|
[phrSWIFTCode],
|
||||||
|
[phrBankName],
|
||||||
|
[phrBankAccountEntryPriority],
|
||||||
|
[phrRMCashDiscountReceived],
|
||||||
|
[phrRMAmountIncludingVAT],
|
||||||
|
[phrRMAmountLessDiscount])
|
||||||
|
|
||||||
|
SELECT @pIDB_OBJECT_ID as 'IDB_OBJECT_ID',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 2
|
||||||
|
ELSE 0
|
||||||
|
END as 'documentType',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN ''
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'no',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 'E-RE'
|
||||||
|
ELSE ''
|
||||||
|
END as 'noSeries',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 'TEST'
|
||||||
|
ELSE ''
|
||||||
|
END as 'processIDTransfer',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(LTRIM(RTRIM([BaseAttributes].[szText35]))) > 0
|
||||||
|
THEN LTRIM(RTRIM([BaseAttributes].[szText35]))
|
||||||
|
ELSE ''
|
||||||
|
END as 'buyFromVendorNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(LTRIM(RTRIM([BaseAttributes].[szText35]))) > 0
|
||||||
|
THEN LTRIM(RTRIM([BaseAttributes].[szText35]))
|
||||||
|
ELSE ''
|
||||||
|
END as 'payToVendorNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(CONVERT(nvarchar(25), LEFT([BaseAttributes].[dwDate08],8))) > 0
|
||||||
|
THEN CONVERT(date, LEFT([BaseAttributes].[dwDate08], 8), 112)
|
||||||
|
ELSE convert(date,(getdate()))
|
||||||
|
END as 'postingDate',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN ''
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'paymentTermsCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN ''
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'paymentTermsCodeIR',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(CONVERT(nvarchar(25), LEFT([BaseAttributes].[dwDate06],8))) > 0
|
||||||
|
THEN CONVERT(date, LEFT([BaseAttributes].[dwDate06], 8), 112)
|
||||||
|
ELSE ''
|
||||||
|
END as 'dueDate',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN [BaseAttributes].[dwInteger23] > 0
|
||||||
|
THEN DATEADD(day,-[BaseAttributes].[dwInteger23],CONVERT(date, LEFT([BaseAttributes].[decCreationTime], 8), 112))
|
||||||
|
ELSE ''
|
||||||
|
END as 'pmtDiscountDate',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN [BaseAttributes].[lfFloat09] > 0 -- Skonto Prozent
|
||||||
|
THEN [BaseAttributes].[lfFloat09]
|
||||||
|
ELSE 0
|
||||||
|
END as 'paymentDiscount',
|
||||||
|
|
||||||
|
--CASE
|
||||||
|
-- WHEN (([BaseAttributes].[dwInteger23] > 0) AND ([BaseAttributes].[lfFloat09] > 0) AND ([BaseAttributes].[lfFloat08] > 0)) -- Skontotage | Skonto Prozent | Skontierbare Betrag
|
||||||
|
-- THEN [BaseAttributes].[lfFloat08] / 100 * ([BaseAttributes].[lfFloat09])
|
||||||
|
-- ELSE 0
|
||||||
|
--END as 'paymentDiscount',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 0
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'paymentDiscountIR',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN ''
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'currencyCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN ''
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'invoiceDiscCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(@POSTING_DESCRIPTION) > 0
|
||||||
|
THEN @POSTING_DESCRIPTION
|
||||||
|
ELSE ''
|
||||||
|
END as 'postingDescription',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN ''
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'paymentMethodCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([BaseAttributes].[szText37]) > 0
|
||||||
|
THEN LTRIM(RTRIM([BaseAttributes].[szText37]))
|
||||||
|
ELSE ''
|
||||||
|
END as 'vendorInvoiceNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN ''
|
||||||
|
ELSE 'dummy'
|
||||||
|
END as 'vendorCrMemoNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[Code]) > 0
|
||||||
|
THEN [VendorBankAccount].[Code]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrVendorBankAccountCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[Bank Branch No_]) > 0
|
||||||
|
THEN [VendorBankAccount].[Bank Branch No_]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrBankBranchNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[Bank Account No_]) > 0
|
||||||
|
THEN [VendorBankAccount].[Bank Account No_]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrBankAccountNo',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[IBAN]) > 0
|
||||||
|
THEN [VendorBankAccount].[IBAN]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrIBAN',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[SWIFT Code]) > 0
|
||||||
|
THEN [VendorBankAccount].[SWIFT Code]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrSWIFTCode',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN([VendorBankAccount].[Name]) > 0
|
||||||
|
THEN [VendorBankAccount].[Name]
|
||||||
|
ELSE ''
|
||||||
|
END as 'phrBankName',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 0
|
||||||
|
ELSE 1
|
||||||
|
END as 'phrBankAccountEntryPriority',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN 1=1
|
||||||
|
THEN 0
|
||||||
|
ELSE 1
|
||||||
|
END as 'phrRMCashDiscountReceived',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(convert(NVARCHAR(25),[BaseAttributes].[lfFloat13])) > 0
|
||||||
|
THEN convert(decimal(38,2),replace(convert(NVARCHAR(25),[BaseAttributes].[lfFloat13]),',','.'))
|
||||||
|
ELSE 0
|
||||||
|
END as 'phrRMAmountIncludingVAT',
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN LEN(convert(NVARCHAR(25),[BaseAttributes].[lfFloat12])) > 0
|
||||||
|
THEN convert(decimal(38,2),replace(convert(NVARCHAR(25),[BaseAttributes].[lfFloat12]),',','.'))
|
||||||
|
ELSE 0
|
||||||
|
END as 'phrRMAmountLessDiscount'
|
||||||
|
|
||||||
|
FROM [windreamDB].[dbo].[BaseAttributes] as [BaseAttributes] WITH (NOLOCK)
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor$437dbf0e-84ff-417a-965d-ed2bb9650972] as [Vendor] ON [BaseAttributes].[szText35] COLLATE DATABASE_DEFAULT = [Vendor].[No_] COLLATE DATABASE_DEFAULT
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor$437dbf0e-84ff-417a-965d-ed2bb9650972$ext] as [VendorExt] ON [Vendor].[No_] = [VendorExt].[No_]
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972$ext] as [VendorBankAccountExt] ON [Vendor].[No_] = [VendorBankAccountExt].[Vendor No_] AND [WLK Clearing$408c5b32-694e-47bb-96d5-dad7fc8111a7] = 1
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972] as [VendorBankAccount] ON [Vendor].[No_] = [VendorBankAccount].[Vendor No_] AND [VendorBankAccount].[Code] = [VendorBankAccountExt].[Code]
|
||||||
|
|
||||||
|
WHERE [BaseAttributes].[dwDocID] = @IDB_OBJECT_ID; -- test mit 9174258
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
/***
|
||||||
|
-- TEST mit:
|
||||||
|
select * from [FNCUST_GET_INVOICE_HEAD_TRANSFER]('SWE',9208424,'EB00020596','Beschreibung','Vektor String 054') -- mit bestellnr
|
||||||
|
select * from [FNCUST_GET_INVOICE_HEAD_TRANSFER]('SWE',9209045,'EB9999999','Beschreibung','Vektor String 054') -- ohne bestellnr
|
||||||
|
select * from [FNCUST_GET_INVOICE_HEAD_TRANSFER]('SWE',9208424,NULL,'Beschreibung','Vektor String 054') -- ohne bestellnr
|
||||||
|
|
||||||
|
select * from [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header$437dbf0e-84ff-417a-965d-ed2bb9650972] where [No_] = 'EB00020596'
|
||||||
|
select * from windreamDB.dbo.BaseAttributes where dwdocid = 9174258;
|
||||||
|
select * from [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor$437dbf0e-84ff-417a-965d-ed2bb9650972] where [No_] = 232102
|
||||||
|
select * from [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972] where [Vendor No_] = 232102
|
||||||
|
***/
|
||||||
|
GO
|
||||||
@@ -0,0 +1,195 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- TSQL Table function for "Kontierungstabelle"
|
||||||
|
|
||||||
|
-- MK // 24.02.2025
|
||||||
|
-- 24.02.2025 Initial
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_INVOICE_POS] (
|
||||||
|
@pEMAIL_MESSAGE_ID NVARCHAR(900),
|
||||||
|
@pDATA_SEPERATOR NVARCHAR(1) = '~',
|
||||||
|
@pDATA_SEPERATOR_TAX NVARCHAR(3) = ' - '
|
||||||
|
)
|
||||||
|
RETURNS @vTB_INVOICE_POS TABLE ([GUID] INT IDENTITY(1,1) NOT NULL,
|
||||||
|
[CONTENT_CONCAT] NVARCHAR(max) NOT NULL,
|
||||||
|
[ORDER_POSITION_ARTICLE] NVARCHAR(50) NULL,
|
||||||
|
[INVOICE_POSITION_ARTICLE] NVARCHAR(50) NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @MandatorShortName NVARCHAR(5) = 'SWE',
|
||||||
|
@EMAIL_MESSAGE_ID NVARCHAR(900) = UPPER(LTRIM(RTRIM(@pEMAIL_MESSAGE_ID))),
|
||||||
|
@DATA_SEPERATOR NVARCHAR(1) = UPPER(LTRIM(RTRIM(@pDATA_SEPERATOR))),
|
||||||
|
@DATA_SEPERATOR_TAX NVARCHAR(3) = ISNULL(@pDATA_SEPERATOR_TAX,' - ');
|
||||||
|
|
||||||
|
DECLARE @INVOICE_POS_COUNTER INT,
|
||||||
|
@REFERENCE_GUID NVARCHAR(900),
|
||||||
|
@ITEM_DESCRIPTION NVARCHAR(900),
|
||||||
|
@ITEM_VALUE NVARCHAR(900),
|
||||||
|
@GROUP_COUNTER INT,
|
||||||
|
@COUNTER INT = 0,
|
||||||
|
@ACCOUNTING VARCHAR(900),
|
||||||
|
@ARTICLE_NR_EXT NVARCHAR(50),
|
||||||
|
@POS_AMOUNT DECIMAL(20,2),
|
||||||
|
@POS_SUM_NETTO DECIMAL(20,2),
|
||||||
|
@POS_TAX_CODE NVARCHAR(25),
|
||||||
|
@POS_TAX_RATE DECIMAL(20,2),
|
||||||
|
@POS_SUM_BRUTTO DECIMAL(20,2);
|
||||||
|
|
||||||
|
DECLARE @ARTICLE_NR NVARCHAR(50),
|
||||||
|
@ORDER_NR NVARCHAR(50),
|
||||||
|
@ORDER_NR_FALLBACK NVARCHAR(50) = 'EB9999999', -- Dummy nr für Rechnungen ohne Bestellung
|
||||||
|
@WORK_ORDER_NR NVARCHAR(25),
|
||||||
|
@WORK_ORDER_NR_FALLBACK NVARCHAR(25) = 'A-99999999', -- Dummy nr für Lagerbestellungen
|
||||||
|
@POS_TAX_CODE_NAV_VAT19 NVARCHAR(25) = '19 - INL - 19.00%'; -- Standardwert aus NAV für 19% MwSt Inland
|
||||||
|
|
||||||
|
SET @INVOICE_POS_COUNTER = (SELECT (MAX([GROUP_COUNTER])-1) as 'INVOICE_POS_COUNTER' FROM [TBEDMI_ITEM_VALUE] (NOLOCK) WHERE [REFERENCE_GUID] = LTRIM(RTRIM(@EMAIL_MESSAGE_ID)))
|
||||||
|
IF (@INVOICE_POS_COUNTER > 0) BEGIN
|
||||||
|
|
||||||
|
SELECT @ORDER_NR = ITEM_VALUE
|
||||||
|
FROM dbo.TBEDMI_ITEM_VALUE (NOLOCK)
|
||||||
|
WHERE [SPEC_NAME] = 'INVOICE_REFERENCE'
|
||||||
|
AND [REFERENCE_GUID] = @EMAIL_MESSAGE_ID;
|
||||||
|
|
||||||
|
DECLARE CURSOR_INVOICE_POS CURSOR
|
||||||
|
LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT DISTINCT [REFERENCE_GUID], [GROUP_COUNTER]
|
||||||
|
FROM [TBEDMI_ITEM_VALUE] (NOLOCK)
|
||||||
|
WHERE [SPEC_NAME] IN ('INVOICE_POSITION_ARTICLE','INVOICE_POSITION_AMOUNT','INVOICE_POSITION_TAX_AMOUNT','INVOICE_TAXPOS_TAX_RATE')
|
||||||
|
AND [GROUP_COUNTER] > 1
|
||||||
|
AND [REFERENCE_GUID] = @EMAIL_MESSAGE_ID;
|
||||||
|
-- OR [REFERENCE_GUID] = 'ERw202512091413384620257svcdigitaldata' -- TEST
|
||||||
|
|
||||||
|
OPEN CURSOR_INVOICE_POS;
|
||||||
|
FETCH NEXT FROM CURSOR_INVOICE_POS INTO @REFERENCE_GUID, @GROUP_COUNTER;
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @COUNTER += 1
|
||||||
|
SET @ACCOUNTING = NULL;
|
||||||
|
SET @POS_AMOUNT = NULL;
|
||||||
|
SET @POS_SUM_NETTO = NULL;
|
||||||
|
SET @POS_TAX_CODE = NULL;
|
||||||
|
SET @POS_SUM_BRUTTO = NULL;
|
||||||
|
|
||||||
|
SET @ARTICLE_NR = NULL;
|
||||||
|
SET @WORK_ORDER_NR = NULL;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--==================================================-- PositionsArtikel --==================================================--
|
||||||
|
SET @ARTICLE_NR_EXT = ISNULL((SELECT CASE WHEN LEN(LTRIM(RTRIM(convert(nvarchar(200),[ITEM_VALUE])))) = 0
|
||||||
|
THEN ''
|
||||||
|
ELSE CAST([ITEM_VALUE] AS NVARCHAR(50))
|
||||||
|
END as 'ITEM_VALUE'
|
||||||
|
FROM [TBEDMI_ITEM_VALUE] (NOLOCK)
|
||||||
|
WHERE [REFERENCE_GUID] = @REFERENCE_GUID
|
||||||
|
AND [GROUP_COUNTER] = @GROUP_COUNTER
|
||||||
|
AND [SPEC_NAME] = 'INVOICE_POSITION_ARTICLE'),'');
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--===================================================-- PositionsMenge --===================================================--
|
||||||
|
SET @POS_AMOUNT = ISNULL((SELECT CASE WHEN LEN(LTRIM(RTRIM(convert(nvarchar(200),[ITEM_VALUE])))) = 0
|
||||||
|
THEN 0
|
||||||
|
ELSE CAST(REPLACE([ITEM_VALUE],',','.') AS DECIMAL(20,2))
|
||||||
|
END as 'ITEM_VALUE'
|
||||||
|
FROM [TBEDMI_ITEM_VALUE] (NOLOCK)
|
||||||
|
WHERE [REFERENCE_GUID] = @REFERENCE_GUID
|
||||||
|
AND [GROUP_COUNTER] = @GROUP_COUNTER
|
||||||
|
AND [SPEC_NAME] = 'INVOICE_POSITION_AMOUNT'),0);
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--===================================================-- PositionsSumme --===================================================--
|
||||||
|
SET @POS_SUM_NETTO = ISNULL((SELECT CASE WHEN LEN(LTRIM(RTRIM(convert(nvarchar(200),[ITEM_VALUE])))) = 0
|
||||||
|
THEN 0
|
||||||
|
ELSE CAST(REPLACE([ITEM_VALUE],',','.') AS DECIMAL(20,2))
|
||||||
|
END as 'ITEM_VALUE'
|
||||||
|
FROM [TBEDMI_ITEM_VALUE] (NOLOCK)
|
||||||
|
WHERE [REFERENCE_GUID] = @REFERENCE_GUID
|
||||||
|
AND [GROUP_COUNTER] = @GROUP_COUNTER
|
||||||
|
AND [SPEC_NAME] = 'INVOICE_POSITION_TAX_AMOUNT'),0);
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--=================================================-- PositionsSteuersatz --================================================--
|
||||||
|
SET @POS_TAX_RATE = ISNULL((SELECT CASE WHEN LEN(LTRIM(RTRIM(convert(NVARCHAR(200),[ITEM_VALUE])))) = 0
|
||||||
|
THEN 0
|
||||||
|
ELSE CAST(REPLACE([ITEM_VALUE],',','.') AS DECIMAL(20,2))
|
||||||
|
END as 'ITEM_VALUE'
|
||||||
|
FROM [TBEDMI_ITEM_VALUE] (NOLOCK)
|
||||||
|
WHERE [REFERENCE_GUID] = @REFERENCE_GUID
|
||||||
|
AND [GROUP_COUNTER] = @GROUP_COUNTER
|
||||||
|
AND [SPEC_NAME] = 'INVOICE_TAXPOS_TAX_RATE'),0);
|
||||||
|
|
||||||
|
SET @POS_TAX_CODE = CASE WHEN @POS_TAX_RATE = 19.00
|
||||||
|
THEN @POS_TAX_CODE_NAV_VAT19
|
||||||
|
|
||||||
|
ELSE '0'
|
||||||
|
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--======================================================-- ERP Daten --=====================================================--
|
||||||
|
SELECT TOP 1 @ARTICLE_NR = [No_],
|
||||||
|
@WORK_ORDER_NR = [Work Order No_]
|
||||||
|
FROM [dbo].[FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MandatorShortName,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = @COUNTER
|
||||||
|
AND ([Description] IS NOT NULL OR [Description 2] IS NOT NULL)
|
||||||
|
OR (UPPER([Description]) = @ARTICLE_NR_EXT
|
||||||
|
OR UPPER([Description]) like '%' + @ARTICLE_NR_EXT + '%'
|
||||||
|
OR UPPER([Description 2]) = @ARTICLE_NR_EXT
|
||||||
|
OR UPPER([Description 2]) like '%' + @ARTICLE_NR_EXT + '%');
|
||||||
|
--TEST: select * from [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS]('SWE','EB00017529','~')
|
||||||
|
|
||||||
|
|
||||||
|
SELECT TOP 1 @POS_TAX_RATE = [VAT _]
|
||||||
|
FROM [dbo].[FNCUST_GET_MS-DYN365BC_VAT_LIST](@MandatorShortName,@ORDER_NR,@DATA_SEPERATOR_TAX)
|
||||||
|
WHERE [CONTENT_CONCAT] = @POS_TAX_CODE;
|
||||||
|
SET @POS_TAX_RATE = ISNULL(@POS_TAX_RATE,0); -- Failsafe
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @POS_SUM_BRUTTO = @POS_SUM_NETTO * (100.00 + @POS_TAX_RATE) / 100;
|
||||||
|
SET @ACCOUNTING = concat(@COUNTER, @DATA_SEPERATOR,
|
||||||
|
ISNULL(@WORK_ORDER_NR,@WORK_ORDER_NR_FALLBACK), @DATA_SEPERATOR,
|
||||||
|
NULL, @DATA_SEPERATOR,
|
||||||
|
REPLACE(@POS_AMOUNT,',','.'), @DATA_SEPERATOR,
|
||||||
|
REPLACE(@POS_SUM_NETTO,',','.'), @DATA_SEPERATOR,
|
||||||
|
@POS_TAX_CODE, @DATA_SEPERATOR,
|
||||||
|
REPLACE(@POS_SUM_BRUTTO,',','.'), @DATA_SEPERATOR,
|
||||||
|
'false', @DATA_SEPERATOR,
|
||||||
|
@ARTICLE_NR);
|
||||||
|
|
||||||
|
IF ((@POS_AMOUNT > 0) AND (@POS_SUM_NETTO > 0)) BEGIN
|
||||||
|
|
||||||
|
INSERT INTO @vTB_INVOICE_POS([CONTENT_CONCAT],[ORDER_POSITION_ARTICLE],[INVOICE_POSITION_ARTICLE])
|
||||||
|
VALUES (@ACCOUNTING, @ARTICLE_NR, @ARTICLE_NR_EXT)
|
||||||
|
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
FETCH NEXT FROM CURSOR_INVOICE_POS INTO @REFERENCE_GUID, @GROUP_COUNTER;
|
||||||
|
END;
|
||||||
|
CLOSE CURSOR_INVOICE_POS;
|
||||||
|
DEALLOCATE CURSOR_INVOICE_POS;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
/***
|
||||||
|
-- Test
|
||||||
|
|
||||||
|
SELECT * FROM [FNCUST_GET_INVOICE_POS]('ERw202603031419486748168lfelsburg','~',' - ') --WHERE
|
||||||
|
SELECT * FROM [FNCUST_GET_INVOICE_POS]('ERw202603121044356088460lfelsburg','~',' - ') --WHERE
|
||||||
|
|
||||||
|
***/
|
||||||
|
GO
|
||||||
@@ -0,0 +1,492 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- HE, MK // 23.03.2026
|
||||||
|
-- 23.03.2026 HE, MK Initial
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_INVOICE_POS_TRANSFER] (
|
||||||
|
@pMANDATOR NVARCHAR(5),
|
||||||
|
@pIDB_OBJECT_ID BIGINT,
|
||||||
|
@pORDER_NR NVARCHAR(25),
|
||||||
|
@pSEPERATOR NVARCHAR(1),
|
||||||
|
@pWD_VKR_ACCOUNTING NVARCHAR(25) -- = 'Vektor String 422'
|
||||||
|
)
|
||||||
|
RETURNS @vTB_INVOICE_POS_TRANSFER TABLE ([GUID] [BIGINT] IDENTITY(1,1) NOT NULL,
|
||||||
|
[IDB_OBJECT_ID] [BIGINT] NOT NULL,
|
||||||
|
[LineNo] [INT] NULL,
|
||||||
|
[attachedToLineNo] [TINYINT] NULL,
|
||||||
|
[type] [INT] NULL,
|
||||||
|
[no] [NVARCHAR](15) NULL,
|
||||||
|
[description] [NVARCHAR](100) NULL,
|
||||||
|
[description2] [NVARCHAR](50) NULL,
|
||||||
|
[locationCode] [NVARCHAR](10) NULL,
|
||||||
|
[variantCode] [NVARCHAR](10) NULL,
|
||||||
|
[quantity] [DECIMAL](38,2) NULL,
|
||||||
|
[unitOfMeasureCode] [NVARCHAR](50) NULL,
|
||||||
|
[directUnitCost] [DECIMAL](38,2) NULL,
|
||||||
|
[lineDiscount] [DECIMAL](38,2) NULL,
|
||||||
|
[ableToDiscount] [BIT] NULL,
|
||||||
|
[discountCalculated] [BIT] NULL,
|
||||||
|
[workOrderNo] [NVARCHAR](20) NULL,
|
||||||
|
[genBusPostingGroup] [NVARCHAR](20) NULL,
|
||||||
|
[genProdPostingGroup] [NVARCHAR](20) NULL,
|
||||||
|
[vatBusPostingGroup] [NVARCHAR](20) NULL,
|
||||||
|
[vatProdPostingGroup] [NVARCHAR](20) NULL,
|
||||||
|
[applToItemEntry] [INT] NULL,
|
||||||
|
[postingWithoutApply] [BIT] NULL,
|
||||||
|
[anticipatedPayment] [INT] NULL,
|
||||||
|
[receiptNo] [NVARCHAR](20) NULL,
|
||||||
|
[receiptLineNo] [INT] NULL,
|
||||||
|
[irOrderNo] [NVARCHAR](20) NULL,
|
||||||
|
[irOrderLineNo] [INT] NULL)
|
||||||
|
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @MANDATOR NVARCHAR(5) = UPPER(LTRIM(RTRIM(@pMANDATOR))),
|
||||||
|
@IDB_OBJECT_ID BIGINT = @pIDB_OBJECT_ID,
|
||||||
|
@ORDER_NR NVARCHAR(25) = LTRIM(RTRIM(@pORDER_NR)),
|
||||||
|
@SEPERATOR NVARCHAR(1) = ISNULL(LTRIM(RTRIM(@pSEPERATOR)),'~'),
|
||||||
|
@WD_VKR_ACCOUNTING NVARCHAR(25) = LTRIM(RTRIM(@pWD_VKR_ACCOUNTING));
|
||||||
|
|
||||||
|
-- declare runtime vars
|
||||||
|
DECLARE @MY_FUNCTION_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
|
||||||
|
DECLARE @VALUE VARCHAR(max) = NULL,
|
||||||
|
@LineNo INT = NULL,
|
||||||
|
@attachedToLineNo TINYINT = NULL,
|
||||||
|
@type INT = NULL,
|
||||||
|
@no NVARCHAR(15) = NULL,
|
||||||
|
@description NVARCHAR(100) = NULL,
|
||||||
|
@description2 NVARCHAR(50) = NULL,
|
||||||
|
@locationCode NVARCHAR(10) = NULL,
|
||||||
|
@variantCode NVARCHAR(10) = NULL,
|
||||||
|
@quantity DECIMAL(38,2) = NULL,
|
||||||
|
@unitOfMeasureCode NVARCHAR(50) = NULL,
|
||||||
|
@directUnitCost DECIMAL(38,2) = NULL,
|
||||||
|
@lineDiscount DECIMAL(38,2) = NULL,
|
||||||
|
@ableToDiscount BIT = NULL,
|
||||||
|
@discountCalculated BIT = NULL,
|
||||||
|
@workOrderNo NVARCHAR(20) = NULL,
|
||||||
|
@genBusPostingGroup NVARCHAR(20) = NULL,
|
||||||
|
@genProdPostingGroup NVARCHAR(20) = NULL,
|
||||||
|
@vatBusPostingGroup NVARCHAR(20) = NULL,
|
||||||
|
@vatProdPostingGroup NVARCHAR(20) = NULL,
|
||||||
|
@applToItemEntry INT = NULL,
|
||||||
|
@postingWithoutApply BIT = NULL,
|
||||||
|
@anticipatedPayment INT = NULL,
|
||||||
|
@receiptNo NVARCHAR(20) = NULL,
|
||||||
|
@receiptLineNo INT = NULL,
|
||||||
|
@irOrderNo NVARCHAR(20) = NULL,
|
||||||
|
@irOrderLineNo INT = NULL;
|
||||||
|
|
||||||
|
IF ((@MANDATOR = 'SWE') AND ((@ORDER_NR <> 'EB9999999') AND (@ORDER_NR IS NOT NULL))) BEGIN -- Mit Bestelldaten aus NAV
|
||||||
|
|
||||||
|
DECLARE CURSOR_ACCOUNTING_POS CURSOR
|
||||||
|
LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT [VALUE] FROM [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES](@IDB_OBJECT_ID,@WD_VKR_ACCOUNTING,'; ',0,0);
|
||||||
|
|
||||||
|
OPEN CURSOR_ACCOUNTING_POS
|
||||||
|
FETCH NEXT FROM CURSOR_ACCOUNTING_POS INTO @VALUE
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
SET @LineNo = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 1);
|
||||||
|
SET @LineNo = ISNULL(@LineNo,0);
|
||||||
|
|
||||||
|
SET @attachedToLineNo = 0;
|
||||||
|
SET @attachedToLineNo = ISNULL(@attachedToLineNo,0);
|
||||||
|
|
||||||
|
SET @type = (CASE
|
||||||
|
WHEN (SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR) WHERE [GUID] = 2) = 'Artikel'
|
||||||
|
THEN 2
|
||||||
|
ELSE (SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR) WHERE [GUID] = 2)
|
||||||
|
END);
|
||||||
|
SET @type = ISNULL(@type,0);
|
||||||
|
|
||||||
|
SET @no = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 3);
|
||||||
|
SET @no = ISNULL(@no,'');
|
||||||
|
|
||||||
|
SET @description = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 6);
|
||||||
|
SET @description = ISNULL(@description,'');
|
||||||
|
|
||||||
|
SET @description2 = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 7);
|
||||||
|
SET @description2 = ISNULL(@description2,'');
|
||||||
|
|
||||||
|
SET @locationCode = (SELECT [Location Code]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @locationCode = ISNULL(@locationCode,'');
|
||||||
|
|
||||||
|
SET @variantCode = (SELECT [Variant Code]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @variantCode = ISNULL(@variantCode,'');
|
||||||
|
|
||||||
|
SET @quantity = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 9);
|
||||||
|
SET @quantity = ISNULL(@quantity,0.0);
|
||||||
|
|
||||||
|
SET @unitOfMeasureCode = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 10);
|
||||||
|
SET @unitOfMeasureCode = ISNULL(@unitOfMeasureCode,'');
|
||||||
|
|
||||||
|
SET @directUnitCost = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 11);
|
||||||
|
SET @directUnitCost = ISNULL(@directUnitCost,0.0);
|
||||||
|
|
||||||
|
SET @lineDiscount = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 16);
|
||||||
|
SET @lineDiscount = ISNULL(@lineDiscount,0);
|
||||||
|
|
||||||
|
SET @ableToDiscount = (SELECT [Able to Discount]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @ableToDiscount = ISNULL(@ableToDiscount,0);
|
||||||
|
|
||||||
|
SET @discountCalculated = (CASE
|
||||||
|
WHEN (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.'))) FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR) WHERE [GUID] = 16) <> 0.0
|
||||||
|
THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END);
|
||||||
|
SET @discountCalculated = ISNULL(@discountCalculated,0);
|
||||||
|
|
||||||
|
SET @workOrderNo = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR) WHERE [GUID] = 5);
|
||||||
|
SET @workOrderNo = ISNULL(@workOrderNo,'');
|
||||||
|
|
||||||
|
SET @genBusPostingGroup = (SELECT [Gen_ Bus_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @genBusPostingGroup = ISNULL(@genBusPostingGroup,'');
|
||||||
|
|
||||||
|
SET @genProdPostingGroup = (SELECT [Gen_ Prod_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @genProdPostingGroup = ISNULL(@genProdPostingGroup,'');
|
||||||
|
|
||||||
|
SET @vatBusPostingGroup = (SELECT [VAT Bus_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @vatBusPostingGroup = ISNULL(@vatBusPostingGroup,'');
|
||||||
|
|
||||||
|
SET @vatProdPostingGroup = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 14);
|
||||||
|
SET @vatProdPostingGroup = (SELECT [VAT Prod_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @vatProdPostingGroup = ISNULL(@vatProdPostingGroup,'');
|
||||||
|
|
||||||
|
SET @applToItemEntry = (SELECT [Appl_-to Item Entry]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @applToItemEntry = ISNULL(@applToItemEntry,0);
|
||||||
|
|
||||||
|
SET @postingWithoutApply = (SELECT [Posting Without Apply]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @postingWithoutApply = ISNULL(@postingWithoutApply,0);
|
||||||
|
|
||||||
|
SET @anticipatedPayment = (SELECT [Anticipated Payment]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @anticipatedPayment = ISNULL(@anticipatedPayment,0);
|
||||||
|
|
||||||
|
SET @receiptNo = (SELECT [Receipt No_]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @receiptNo = ISNULL(@receiptNo,'');
|
||||||
|
|
||||||
|
SET @receiptLineNo = (SELECT [Receipt Line No_]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @receiptLineNo = ISNULL(@receiptLineNo,0);
|
||||||
|
|
||||||
|
SET @irOrderNo = (SELECT [IR Order No_]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @irOrderNo = ISNULL(@irOrderNo,'');
|
||||||
|
|
||||||
|
SET @irOrderLineNo = (SELECT [IR Order Line No_]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @irOrderLineNo = ISNULL(@irOrderLineNo,0);
|
||||||
|
|
||||||
|
INSERT INTO @vTB_INVOICE_POS_TRANSFER ([IDB_OBJECT_ID],
|
||||||
|
[LineNo],
|
||||||
|
[attachedToLineNo],
|
||||||
|
[type],
|
||||||
|
[no],
|
||||||
|
[description],
|
||||||
|
[description2],
|
||||||
|
[locationCode],
|
||||||
|
[variantCode],
|
||||||
|
[quantity],
|
||||||
|
[unitOfMeasureCode],
|
||||||
|
[directUnitCost],
|
||||||
|
[lineDiscount],
|
||||||
|
[ableToDiscount],
|
||||||
|
[discountCalculated],
|
||||||
|
[workOrderNo],
|
||||||
|
[genBusPostingGroup],
|
||||||
|
[genProdPostingGroup],
|
||||||
|
[vatBusPostingGroup],
|
||||||
|
[vatProdPostingGroup],
|
||||||
|
[applToItemEntry],
|
||||||
|
[postingWithoutApply],
|
||||||
|
[anticipatedPayment],
|
||||||
|
[receiptNo],
|
||||||
|
[receiptLineNo],
|
||||||
|
[irOrderNo],
|
||||||
|
[irOrderLineNo])
|
||||||
|
VALUES (@IDB_OBJECT_ID,
|
||||||
|
@LineNo,
|
||||||
|
@attachedToLineNo,
|
||||||
|
@type,
|
||||||
|
@no,
|
||||||
|
@description,
|
||||||
|
@description2,
|
||||||
|
@locationCode,
|
||||||
|
@variantCode,
|
||||||
|
@quantity,
|
||||||
|
@unitOfMeasureCode,
|
||||||
|
@directUnitCost,
|
||||||
|
@lineDiscount,
|
||||||
|
@ableToDiscount,
|
||||||
|
@discountCalculated,
|
||||||
|
@workOrderNo,
|
||||||
|
@genBusPostingGroup,
|
||||||
|
@genProdPostingGroup,
|
||||||
|
@vatBusPostingGroup,
|
||||||
|
@vatProdPostingGroup,
|
||||||
|
@applToItemEntry,
|
||||||
|
@postingWithoutApply,
|
||||||
|
@anticipatedPayment,
|
||||||
|
@receiptNo,
|
||||||
|
@receiptLineNo,
|
||||||
|
@irOrderNo,
|
||||||
|
@irOrderLineNo)
|
||||||
|
|
||||||
|
FETCH NEXT FROM CURSOR_ACCOUNTING_POS INTO @VALUE
|
||||||
|
END
|
||||||
|
CLOSE CURSOR_ACCOUNTING_POS
|
||||||
|
DEALLOCATE CURSOR_ACCOUNTING_POS
|
||||||
|
|
||||||
|
|
||||||
|
END ELSE IF (@MANDATOR = 'SWE') BEGIN -- Ohne Bestelldaten aus NAV
|
||||||
|
|
||||||
|
DECLARE CURSOR_ACCOUNTING_POS CURSOR
|
||||||
|
LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT [VALUE] FROM [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES](@IDB_OBJECT_ID,@WD_VKR_ACCOUNTING,'; ',0,0);
|
||||||
|
|
||||||
|
OPEN CURSOR_ACCOUNTING_POS
|
||||||
|
FETCH NEXT FROM CURSOR_ACCOUNTING_POS INTO @VALUE
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
SET @LineNo = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 1);
|
||||||
|
SET @LineNo = ISNULL(@LineNo,0);
|
||||||
|
|
||||||
|
SET @attachedToLineNo = 0;
|
||||||
|
SET @attachedToLineNo = ISNULL(@attachedToLineNo,0);
|
||||||
|
|
||||||
|
SET @type = (CASE
|
||||||
|
WHEN (SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR) WHERE [GUID] = 2) = 'Artikel'
|
||||||
|
THEN 2
|
||||||
|
ELSE (SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR) WHERE [GUID] = 2)
|
||||||
|
END);
|
||||||
|
SET @type = ISNULL(@type,0);
|
||||||
|
|
||||||
|
SET @no = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 3);
|
||||||
|
SET @no = ISNULL(@no,'');
|
||||||
|
|
||||||
|
SET @description = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 6);
|
||||||
|
SET @description = ISNULL(@description,'');
|
||||||
|
|
||||||
|
SET @description2 = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 7);
|
||||||
|
SET @description2 = ISNULL(@description2,'');
|
||||||
|
|
||||||
|
SET @locationCode = NULL;
|
||||||
|
SET @locationCode = ISNULL(@locationCode,'');
|
||||||
|
|
||||||
|
SET @variantCode = NULL;
|
||||||
|
SET @variantCode = ISNULL(@variantCode,'');
|
||||||
|
|
||||||
|
SET @quantity = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 9);
|
||||||
|
SET @quantity = ISNULL(@quantity,0.0);
|
||||||
|
|
||||||
|
SET @unitOfMeasureCode = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 10);
|
||||||
|
SET @unitOfMeasureCode = ISNULL(@unitOfMeasureCode,'');
|
||||||
|
|
||||||
|
SET @directUnitCost = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 11);
|
||||||
|
SET @directUnitCost = ISNULL(@directUnitCost,0.0);
|
||||||
|
|
||||||
|
SET @lineDiscount = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 16);
|
||||||
|
SET @lineDiscount = ISNULL(@lineDiscount,0);
|
||||||
|
|
||||||
|
SET @ableToDiscount = NULL;
|
||||||
|
SET @ableToDiscount = ISNULL(@ableToDiscount,0);
|
||||||
|
|
||||||
|
SET @discountCalculated = (CASE
|
||||||
|
WHEN (SELECT REPLACE([Item],',','.') FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR) WHERE [GUID] = 16) <> 0.0
|
||||||
|
THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END);
|
||||||
|
SET @discountCalculated = ISNULL(@discountCalculated,0);
|
||||||
|
|
||||||
|
SET @workOrderNo = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 5);
|
||||||
|
SET @workOrderNo = ISNULL(@workOrderNo,'');
|
||||||
|
|
||||||
|
SET @genBusPostingGroup = NULL;
|
||||||
|
SET @genBusPostingGroup = ISNULL(@genBusPostingGroup,'');
|
||||||
|
|
||||||
|
SET @genProdPostingGroup = NULL;
|
||||||
|
SET @genProdPostingGroup = ISNULL(@genProdPostingGroup,'');
|
||||||
|
|
||||||
|
SET @vatBusPostingGroup = NULL;
|
||||||
|
SET @vatBusPostingGroup = ISNULL(@vatBusPostingGroup,'');
|
||||||
|
|
||||||
|
SET @vatProdPostingGroup = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@SEPERATOR)
|
||||||
|
WHERE [GUID] = 14);
|
||||||
|
SET @vatProdPostingGroup = ISNULL(@vatProdPostingGroup,'');
|
||||||
|
|
||||||
|
SET @applToItemEntry = NULL;
|
||||||
|
SET @applToItemEntry = ISNULL(@applToItemEntry,0);
|
||||||
|
|
||||||
|
SET @postingWithoutApply = NULL;
|
||||||
|
SET @postingWithoutApply = ISNULL(@postingWithoutApply,0);
|
||||||
|
|
||||||
|
SET @anticipatedPayment = NULL;
|
||||||
|
SET @anticipatedPayment = ISNULL(@anticipatedPayment,0);
|
||||||
|
|
||||||
|
SET @receiptNo = NULL;
|
||||||
|
SET @receiptNo = ISNULL(@receiptNo,'');
|
||||||
|
|
||||||
|
SET @receiptLineNo = NULL;
|
||||||
|
SET @receiptLineNo = ISNULL(@receiptLineNo,0);
|
||||||
|
|
||||||
|
SET @irOrderNo = NULL;
|
||||||
|
SET @irOrderNo = ISNULL(@irOrderNo,'');
|
||||||
|
|
||||||
|
SET @irOrderLineNo = NULL;
|
||||||
|
SET @irOrderLineNo = ISNULL(@irOrderLineNo,0);
|
||||||
|
|
||||||
|
INSERT INTO @vTB_INVOICE_POS_TRANSFER ([IDB_OBJECT_ID],
|
||||||
|
[LineNo],
|
||||||
|
[attachedToLineNo],
|
||||||
|
[type],
|
||||||
|
[no],
|
||||||
|
[description],
|
||||||
|
[description2],
|
||||||
|
[locationCode],
|
||||||
|
[variantCode],
|
||||||
|
[quantity],
|
||||||
|
[unitOfMeasureCode],
|
||||||
|
[directUnitCost],
|
||||||
|
[lineDiscount],
|
||||||
|
[ableToDiscount],
|
||||||
|
[discountCalculated],
|
||||||
|
[workOrderNo],
|
||||||
|
[genBusPostingGroup],
|
||||||
|
[genProdPostingGroup],
|
||||||
|
[vatBusPostingGroup],
|
||||||
|
[vatProdPostingGroup],
|
||||||
|
[applToItemEntry],
|
||||||
|
[postingWithoutApply],
|
||||||
|
[anticipatedPayment],
|
||||||
|
[receiptNo],
|
||||||
|
[receiptLineNo],
|
||||||
|
[irOrderNo],
|
||||||
|
[irOrderLineNo])
|
||||||
|
VALUES (@IDB_OBJECT_ID,
|
||||||
|
@LineNo,
|
||||||
|
@attachedToLineNo,
|
||||||
|
@type,
|
||||||
|
@no,
|
||||||
|
@description,
|
||||||
|
@description2,
|
||||||
|
@locationCode,
|
||||||
|
@variantCode,
|
||||||
|
@quantity,
|
||||||
|
@unitOfMeasureCode,
|
||||||
|
@directUnitCost,
|
||||||
|
@lineDiscount,
|
||||||
|
@ableToDiscount,
|
||||||
|
@discountCalculated,
|
||||||
|
@workOrderNo,
|
||||||
|
@genBusPostingGroup,
|
||||||
|
@genProdPostingGroup,
|
||||||
|
@vatBusPostingGroup,
|
||||||
|
@vatProdPostingGroup,
|
||||||
|
@applToItemEntry,
|
||||||
|
@postingWithoutApply,
|
||||||
|
@anticipatedPayment,
|
||||||
|
@receiptNo,
|
||||||
|
@receiptLineNo,
|
||||||
|
@irOrderNo,
|
||||||
|
@irOrderLineNo)
|
||||||
|
|
||||||
|
FETCH NEXT FROM CURSOR_ACCOUNTING_POS INTO @VALUE
|
||||||
|
END
|
||||||
|
CLOSE CURSOR_ACCOUNTING_POS
|
||||||
|
DEALLOCATE CURSOR_ACCOUNTING_POS
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
/***
|
||||||
|
|
||||||
|
-- TEST mit:
|
||||||
|
select * from [FNCUST_GET_INVOICE_POS_TRANSFER]('SWE',9209946,'EB00021129','~','Vektor String 422') -- mit bestellnr
|
||||||
|
select * from [FNCUST_GET_INVOICE_POS_TRANSFER]('SWE',9208424,'EB9999999','~','Vektor String 422') -- ohne bestellnr
|
||||||
|
|
||||||
|
SELECT [VALUE] FROM [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES](9209044,'Vektor String 422','; ',0,0);
|
||||||
|
select * from [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header$437dbf0e-84ff-417a-965d-ed2bb9650972] WHERE [No_] = 'EB00020596'
|
||||||
|
select * from windreamDB.dbo.BaseAttributes WHERE dwdocid = 9174258;
|
||||||
|
select * from [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor$437dbf0e-84ff-417a-965d-ed2bb9650972] WHERE [No_] = 232102
|
||||||
|
select * from [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972] WHERE [Vendor No_] = 232102
|
||||||
|
SELECT * FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS]('SWE','EB00020596','~') WHERE [Line No_] = @attachedToLineNo
|
||||||
|
(SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] ((SELECT [VALUE] FROM [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES](9174258,'Vektor String 422','; ',0,0)),'~') WHERE [GUID] = 1);
|
||||||
|
|
||||||
|
***/
|
||||||
|
GO
|
||||||
@@ -0,0 +1,628 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_INVOICE_POS_TRANSFER] Script Date: 27.03.2026 14:12:03 ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
-- HE, MK // 23.03.2026
|
||||||
|
-- 23.03.2026 HE, MK Initial
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_INVOICE_POS_TRANSFER] (
|
||||||
|
@pMANDATOR NVARCHAR(5),
|
||||||
|
@pIDB_OBJECT_ID BIGINT,
|
||||||
|
@pORDER_NR NVARCHAR(25),
|
||||||
|
@pDATA_SEPERATOR NVARCHAR(1) = '~',
|
||||||
|
@pDATA_SEPERATOR_TAX NVARCHAR(3) = ' - ',
|
||||||
|
@pWD_VKR_ACCOUNTING NVARCHAR(25) -- = 'Vektor String 422'
|
||||||
|
)
|
||||||
|
RETURNS @vTB_INVOICE_POS_TRANSFER TABLE ([GUID] [BIGINT] IDENTITY(1,1) NOT NULL,
|
||||||
|
[IDB_OBJECT_ID] [BIGINT] NOT NULL,
|
||||||
|
[LineNo] [INT] NULL,
|
||||||
|
[attachedToLineNo] [TINYINT] NULL,
|
||||||
|
[type] [INT] NULL,
|
||||||
|
[no] [NVARCHAR](15) NULL,
|
||||||
|
[description] [NVARCHAR](100) NULL,
|
||||||
|
[description2] [NVARCHAR](50) NULL,
|
||||||
|
[locationCode] [NVARCHAR](10) NULL,
|
||||||
|
[variantCode] [NVARCHAR](10) NULL,
|
||||||
|
[quantity] [DECIMAL](38,2) NULL,
|
||||||
|
[unitOfMeasureCode] [NVARCHAR](50) NULL,
|
||||||
|
[directUnitCost] [DECIMAL](38,2) NULL,
|
||||||
|
[lineDiscount] [DECIMAL](38,2) NULL,
|
||||||
|
[ableToDiscount] [BIT] NULL,
|
||||||
|
[discountCalculated] [BIT] NULL,
|
||||||
|
[workOrderNo] [NVARCHAR](20) NULL,
|
||||||
|
[genBusPostingGroup] [NVARCHAR](20) NULL,
|
||||||
|
[genProdPostingGroup] [NVARCHAR](20) NULL,
|
||||||
|
[vatBusPostingGroup] [NVARCHAR](20) NULL,
|
||||||
|
[vatProdPostingGroup] [NVARCHAR](20) NULL,
|
||||||
|
[applToItemEntry] [INT] NULL,
|
||||||
|
[postingWithoutApply] [BIT] NULL,
|
||||||
|
[anticipatedPayment] [INT] NULL,
|
||||||
|
[receiptNo] [NVARCHAR](20) NULL,
|
||||||
|
[receiptLineNo] [INT] NULL,
|
||||||
|
[irOrderNo] [NVARCHAR](20) NULL,
|
||||||
|
[irOrderLineNo] [INT] NULL)
|
||||||
|
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
DECLARE @MANDATOR_SHORT_NAME_FALLBACK NVARCHAR(25) = 'SWE',
|
||||||
|
@DATA_SEPERATOR_TAX_FALLBACK NVARCHAR(3) = ' - ';
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @MANDATOR NVARCHAR(5) = UPPER(LTRIM(RTRIM(@pMANDATOR))),
|
||||||
|
@IDB_OBJECT_ID BIGINT = @pIDB_OBJECT_ID,
|
||||||
|
@ORDER_NR NVARCHAR(25) = LTRIM(RTRIM(@pORDER_NR)),
|
||||||
|
@DATA_SEPERATOR NVARCHAR(1) = ISNULL(LTRIM(RTRIM(@pDATA_SEPERATOR)),'~'),
|
||||||
|
@DATA_SEPERATOR_TAX NVARCHAR(3) = UPPER(ISNULL(@pDATA_SEPERATOR_TAX,@DATA_SEPERATOR_TAX_FALLBACK)),
|
||||||
|
@WD_VKR_ACCOUNTING NVARCHAR(25) = LTRIM(RTRIM(@pWD_VKR_ACCOUNTING));
|
||||||
|
|
||||||
|
-- declare runtime vars
|
||||||
|
DECLARE @MY_FUNCTION_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
|
||||||
|
DECLARE @VALUE VARCHAR(max) = NULL,
|
||||||
|
@POS_TAX_CODE NVARCHAR(25) = NULL,
|
||||||
|
@POS_TAX_RATE DECIMAL(20,2) = 0.0;
|
||||||
|
|
||||||
|
DECLARE @LineNo INT = NULL,
|
||||||
|
@attachedToLineNo TINYINT = NULL,
|
||||||
|
@type INT = NULL,
|
||||||
|
@no NVARCHAR(15) = NULL,
|
||||||
|
@description NVARCHAR(100) = NULL,
|
||||||
|
@description2 NVARCHAR(50) = NULL,
|
||||||
|
@locationCode NVARCHAR(10) = NULL,
|
||||||
|
@variantCode NVARCHAR(10) = NULL,
|
||||||
|
@quantity DECIMAL(38,2) = NULL,
|
||||||
|
@unitOfMeasureCode NVARCHAR(50) = NULL,
|
||||||
|
@directUnitCost DECIMAL(38,2) = NULL,
|
||||||
|
@lineDiscount DECIMAL(38,2) = NULL,
|
||||||
|
@ableToDiscount BIT = NULL,
|
||||||
|
@discountCalculated BIT = NULL,
|
||||||
|
@workOrderNo NVARCHAR(20) = NULL,
|
||||||
|
@genBusPostingGroup NVARCHAR(20) = NULL,
|
||||||
|
@genProdPostingGroup NVARCHAR(20) = NULL,
|
||||||
|
@vatBusPostingGroup NVARCHAR(20) = NULL,
|
||||||
|
@vatProdPostingGroup NVARCHAR(20) = NULL,
|
||||||
|
@applToItemEntry INT = NULL,
|
||||||
|
@postingWithoutApply BIT = NULL,
|
||||||
|
@anticipatedPayment INT = NULL,
|
||||||
|
@receiptNo NVARCHAR(20) = NULL,
|
||||||
|
@receiptLineNo INT = NULL,
|
||||||
|
@irOrderNo NVARCHAR(20) = NULL,
|
||||||
|
@irOrderLineNo INT = NULL;
|
||||||
|
|
||||||
|
IF ((@MANDATOR = 'SWE') AND ((@ORDER_NR <> 'EB9999999') AND (@ORDER_NR IS NOT NULL))) BEGIN -- Mit Bestelldaten aus NAV
|
||||||
|
|
||||||
|
DECLARE CURSOR_ACCOUNTING_POS CURSOR
|
||||||
|
LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT [VALUE] FROM [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES](@IDB_OBJECT_ID,@WD_VKR_ACCOUNTING,'; ',0,0);
|
||||||
|
|
||||||
|
OPEN CURSOR_ACCOUNTING_POS
|
||||||
|
FETCH NEXT FROM CURSOR_ACCOUNTING_POS INTO @VALUE
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @LineNo = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 1);
|
||||||
|
SET @LineNo = ISNULL(@LineNo,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @attachedToLineNo = 0;
|
||||||
|
SET @attachedToLineNo = ISNULL(@attachedToLineNo,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @type = (CASE
|
||||||
|
WHEN (SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR) WHERE [GUID] = 2) = 'Artikel'
|
||||||
|
THEN 2
|
||||||
|
ELSE (SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR) WHERE [GUID] = 2)
|
||||||
|
END);
|
||||||
|
SET @type = ISNULL(@type,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @no = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 3);
|
||||||
|
SET @no = ISNULL(@no,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @description = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 6);
|
||||||
|
SET @description = ISNULL(@description,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @description2 = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 7);
|
||||||
|
SET @description2 = ISNULL(@description2,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @locationCode = (SELECT [Location Code]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @locationCode = ISNULL(@locationCode,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @variantCode = (SELECT [Variant Code]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @variantCode = ISNULL(@variantCode,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @quantity = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 9);
|
||||||
|
SET @quantity = ISNULL(@quantity,0.0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @unitOfMeasureCode = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 10);
|
||||||
|
SET @unitOfMeasureCode = ISNULL(@unitOfMeasureCode,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @directUnitCost = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 11);
|
||||||
|
SET @directUnitCost = ISNULL(@directUnitCost,0.0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @lineDiscount = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 16);
|
||||||
|
SET @lineDiscount = ISNULL(@lineDiscount,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @ableToDiscount = (SELECT [Able to Discount]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @ableToDiscount = ISNULL(@ableToDiscount,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @discountCalculated = (CASE
|
||||||
|
WHEN (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.'))) FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR) WHERE [GUID] = 16) <> 0.0
|
||||||
|
THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END);
|
||||||
|
SET @discountCalculated = ISNULL(@discountCalculated,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @workOrderNo = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR) WHERE [GUID] = 5);
|
||||||
|
SET @workOrderNo = ISNULL(@workOrderNo,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @POS_TAX_CODE = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 14);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @genBusPostingGroup = (SELECT [Gen_ Bus_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @genBusPostingGroup = ISNULL(@genBusPostingGroup,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @genProdPostingGroup = (SELECT [Gen_ Prod_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @genProdPostingGroup = ISNULL(@genProdPostingGroup,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @vatBusPostingGroup = (SELECT [VAT Bus_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_VAT_LIST](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR_TAX)
|
||||||
|
WHERE [CONTENT_CONCAT] = @POS_TAX_CODE);
|
||||||
|
SET @vatBusPostingGroup = ISNULL(@vatBusPostingGroup,(SELECT [VAT Bus_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no));
|
||||||
|
SET @vatBusPostingGroup = ISNULL(@vatBusPostingGroup,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @vatProdPostingGroup = (SELECT [VAT Prod_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_VAT_LIST](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR_TAX)
|
||||||
|
WHERE [CONTENT_CONCAT] = @POS_TAX_CODE);
|
||||||
|
SET @vatProdPostingGroup = ISNULL(@vatProdPostingGroup,(SELECT [VAT Prod_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no));
|
||||||
|
SET @vatProdPostingGroup = ISNULL(@vatProdPostingGroup,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @applToItemEntry = (SELECT [Appl_-to Item Entry]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @applToItemEntry = ISNULL(@applToItemEntry,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @postingWithoutApply = (SELECT [Posting Without Apply]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @postingWithoutApply = ISNULL(@postingWithoutApply,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @anticipatedPayment = (SELECT [Anticipated Payment]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @receiptNo = (SELECT [Receipt No_]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @receiptNo = ISNULL(@receiptNo,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @receiptLineNo = (SELECT [Receipt Line No_]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @receiptLineNo = ISNULL(@receiptLineNo,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @irOrderNo = (SELECT [IR Order No_]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @irOrderNo = ISNULL(@irOrderNo,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @irOrderLineNo = (SELECT [IR Order Line No_]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR)
|
||||||
|
WHERE [Line No_] = @LineNo AND [No_] = @no);
|
||||||
|
SET @irOrderLineNo = ISNULL(@irOrderLineNo,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO @vTB_INVOICE_POS_TRANSFER ([IDB_OBJECT_ID],
|
||||||
|
[LineNo],
|
||||||
|
[attachedToLineNo],
|
||||||
|
[type],
|
||||||
|
[no],
|
||||||
|
[description],
|
||||||
|
[description2],
|
||||||
|
[locationCode],
|
||||||
|
[variantCode],
|
||||||
|
[quantity],
|
||||||
|
[unitOfMeasureCode],
|
||||||
|
[directUnitCost],
|
||||||
|
[lineDiscount],
|
||||||
|
[ableToDiscount],
|
||||||
|
[discountCalculated],
|
||||||
|
[workOrderNo],
|
||||||
|
[genBusPostingGroup],
|
||||||
|
[genProdPostingGroup],
|
||||||
|
[vatBusPostingGroup],
|
||||||
|
[vatProdPostingGroup],
|
||||||
|
[applToItemEntry],
|
||||||
|
[postingWithoutApply],
|
||||||
|
[anticipatedPayment],
|
||||||
|
[receiptNo],
|
||||||
|
[receiptLineNo],
|
||||||
|
[irOrderNo],
|
||||||
|
[irOrderLineNo])
|
||||||
|
VALUES (@IDB_OBJECT_ID,
|
||||||
|
@LineNo,
|
||||||
|
@attachedToLineNo,
|
||||||
|
@type,
|
||||||
|
@no,
|
||||||
|
@description,
|
||||||
|
@description2,
|
||||||
|
@locationCode,
|
||||||
|
@variantCode,
|
||||||
|
@quantity,
|
||||||
|
@unitOfMeasureCode,
|
||||||
|
@directUnitCost,
|
||||||
|
@lineDiscount,
|
||||||
|
@ableToDiscount,
|
||||||
|
@discountCalculated,
|
||||||
|
@workOrderNo,
|
||||||
|
@genBusPostingGroup,
|
||||||
|
@genProdPostingGroup,
|
||||||
|
@vatBusPostingGroup,
|
||||||
|
@vatProdPostingGroup,
|
||||||
|
@applToItemEntry,
|
||||||
|
@postingWithoutApply,
|
||||||
|
@anticipatedPayment,
|
||||||
|
@receiptNo,
|
||||||
|
@receiptLineNo,
|
||||||
|
@irOrderNo,
|
||||||
|
@irOrderLineNo)
|
||||||
|
|
||||||
|
FETCH NEXT FROM CURSOR_ACCOUNTING_POS INTO @VALUE
|
||||||
|
END
|
||||||
|
CLOSE CURSOR_ACCOUNTING_POS
|
||||||
|
DEALLOCATE CURSOR_ACCOUNTING_POS
|
||||||
|
|
||||||
|
|
||||||
|
END ELSE IF (@MANDATOR = 'SWE') BEGIN -- Ohne Bestelldaten aus NAV
|
||||||
|
|
||||||
|
DECLARE CURSOR_ACCOUNTING_POS CURSOR
|
||||||
|
LOCAL FAST_FORWARD FOR
|
||||||
|
SELECT [VALUE] FROM [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES](@IDB_OBJECT_ID,@WD_VKR_ACCOUNTING,'; ',0,0);
|
||||||
|
|
||||||
|
OPEN CURSOR_ACCOUNTING_POS
|
||||||
|
FETCH NEXT FROM CURSOR_ACCOUNTING_POS INTO @VALUE
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @LineNo = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 1);
|
||||||
|
SET @LineNo = ISNULL(@LineNo,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @attachedToLineNo = 0;
|
||||||
|
SET @attachedToLineNo = ISNULL(@attachedToLineNo,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @type = (CASE
|
||||||
|
WHEN (SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR) WHERE [GUID] = 2) = 'Artikel'
|
||||||
|
THEN 2
|
||||||
|
ELSE (SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR) WHERE [GUID] = 2)
|
||||||
|
END);
|
||||||
|
SET @type = ISNULL(@type,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @no = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 3);
|
||||||
|
SET @no = ISNULL(@no,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @description = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 6);
|
||||||
|
SET @description = ISNULL(@description,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @description2 = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 7);
|
||||||
|
SET @description2 = ISNULL(@description2,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @locationCode = NULL;
|
||||||
|
SET @locationCode = ISNULL(@locationCode,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @variantCode = NULL;
|
||||||
|
SET @variantCode = ISNULL(@variantCode,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @quantity = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 9);
|
||||||
|
SET @quantity = ISNULL(@quantity,0.0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @unitOfMeasureCode = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 10);
|
||||||
|
SET @unitOfMeasureCode = ISNULL(@unitOfMeasureCode,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @directUnitCost = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 11);
|
||||||
|
SET @directUnitCost = ISNULL(@directUnitCost,0.0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @lineDiscount = (SELECT CONVERT(DECIMAL(38,2),(REPLACE([Item],',','.')))
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 16);
|
||||||
|
SET @lineDiscount = ISNULL(@lineDiscount,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @ableToDiscount = NULL;
|
||||||
|
SET @ableToDiscount = ISNULL(@ableToDiscount,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @discountCalculated = (CASE
|
||||||
|
WHEN (SELECT REPLACE([Item],',','.') FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR) WHERE [GUID] = 16) <> 0.0
|
||||||
|
THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END);
|
||||||
|
SET @discountCalculated = ISNULL(@discountCalculated,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @workOrderNo = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 5);
|
||||||
|
SET @workOrderNo = ISNULL(@workOrderNo,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @POS_TAX_CODE = (SELECT [Item]
|
||||||
|
FROM [FNCUST_SPLIT_STRING_WITH_GUID] (@VALUE,@DATA_SEPERATOR)
|
||||||
|
WHERE [GUID] = 14);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @genBusPostingGroup = NULL;
|
||||||
|
SET @genBusPostingGroup = ISNULL(@genBusPostingGroup,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @genProdPostingGroup = NULL;
|
||||||
|
SET @genProdPostingGroup = ISNULL(@genProdPostingGroup,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @vatBusPostingGroup = (SELECT [VAT Bus_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_VAT_LIST](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR_TAX)
|
||||||
|
WHERE [CONTENT_CONCAT] = @POS_TAX_CODE);
|
||||||
|
SET @vatBusPostingGroup = ISNULL(@vatBusPostingGroup,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @vatProdPostingGroup = (SELECT [VAT Prod_ Posting Group]
|
||||||
|
FROM [FNCUST_GET_MS-DYN365BC_VAT_LIST](@MANDATOR,@ORDER_NR,@DATA_SEPERATOR_TAX)
|
||||||
|
WHERE [CONTENT_CONCAT] = @POS_TAX_CODE);
|
||||||
|
SET @vatProdPostingGroup = ISNULL(@vatProdPostingGroup,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @applToItemEntry = NULL;
|
||||||
|
SET @applToItemEntry = ISNULL(@applToItemEntry,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @postingWithoutApply = NULL;
|
||||||
|
SET @postingWithoutApply = ISNULL(@postingWithoutApply,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @anticipatedPayment = NULL;
|
||||||
|
SET @anticipatedPayment = ISNULL(@anticipatedPayment,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @receiptNo = NULL;
|
||||||
|
SET @receiptNo = ISNULL(@receiptNo,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @receiptLineNo = NULL;
|
||||||
|
SET @receiptLineNo = ISNULL(@receiptLineNo,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @irOrderNo = NULL;
|
||||||
|
SET @irOrderNo = ISNULL(@irOrderNo,'');
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
SET @irOrderLineNo = NULL;
|
||||||
|
SET @irOrderLineNo = ISNULL(@irOrderLineNo,0);
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO @vTB_INVOICE_POS_TRANSFER ([IDB_OBJECT_ID],
|
||||||
|
[LineNo],
|
||||||
|
[attachedToLineNo],
|
||||||
|
[type],
|
||||||
|
[no],
|
||||||
|
[description],
|
||||||
|
[description2],
|
||||||
|
[locationCode],
|
||||||
|
[variantCode],
|
||||||
|
[quantity],
|
||||||
|
[unitOfMeasureCode],
|
||||||
|
[directUnitCost],
|
||||||
|
[lineDiscount],
|
||||||
|
[ableToDiscount],
|
||||||
|
[discountCalculated],
|
||||||
|
[workOrderNo],
|
||||||
|
[genBusPostingGroup],
|
||||||
|
[genProdPostingGroup],
|
||||||
|
[vatBusPostingGroup],
|
||||||
|
[vatProdPostingGroup],
|
||||||
|
[applToItemEntry],
|
||||||
|
[postingWithoutApply],
|
||||||
|
[anticipatedPayment],
|
||||||
|
[receiptNo],
|
||||||
|
[receiptLineNo],
|
||||||
|
[irOrderNo],
|
||||||
|
[irOrderLineNo])
|
||||||
|
VALUES (@IDB_OBJECT_ID,
|
||||||
|
@LineNo,
|
||||||
|
@attachedToLineNo,
|
||||||
|
@type,
|
||||||
|
@no,
|
||||||
|
@description,
|
||||||
|
@description2,
|
||||||
|
@locationCode,
|
||||||
|
@variantCode,
|
||||||
|
@quantity,
|
||||||
|
@unitOfMeasureCode,
|
||||||
|
@directUnitCost,
|
||||||
|
@lineDiscount,
|
||||||
|
@ableToDiscount,
|
||||||
|
@discountCalculated,
|
||||||
|
@workOrderNo,
|
||||||
|
@genBusPostingGroup,
|
||||||
|
@genProdPostingGroup,
|
||||||
|
@vatBusPostingGroup,
|
||||||
|
@vatProdPostingGroup,
|
||||||
|
@applToItemEntry,
|
||||||
|
@postingWithoutApply,
|
||||||
|
@anticipatedPayment,
|
||||||
|
@receiptNo,
|
||||||
|
@receiptLineNo,
|
||||||
|
@irOrderNo,
|
||||||
|
@irOrderLineNo)
|
||||||
|
|
||||||
|
FETCH NEXT FROM CURSOR_ACCOUNTING_POS INTO @VALUE
|
||||||
|
END
|
||||||
|
CLOSE CURSOR_ACCOUNTING_POS
|
||||||
|
DEALLOCATE CURSOR_ACCOUNTING_POS
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
/***
|
||||||
|
|
||||||
|
-- TEST mit:
|
||||||
|
select * from [FNCUST_GET_INVOICE_POS_TRANSFER]('SWE',9229975,'EB00021129','~',' - ','Vektor String 422') -- mit bestellnr
|
||||||
|
SELECT * FROM [FNCUST_GET_MS-DYN365BC_VAT_LIST]('SWE','EB00021129',' - ') -- mit bestellnr
|
||||||
|
select * from [FNCUST_GET_INVOICE_POS_TRANSFER]('SWE',9229975,'EB9999999','~',' - ','Vektor String 422') -- ohne bestellnr
|
||||||
|
|
||||||
|
SELECT [VALUE] FROM [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES](9209044,'Vektor String 422','; ',0,0);
|
||||||
|
select * from [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header$437dbf0e-84ff-417a-965d-ed2bb9650972] WHERE [No_] = 'EB00020596'
|
||||||
|
select * from windreamDB.dbo.BaseAttributes WHERE dwdocid = 9174258;
|
||||||
|
select * from [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor$437dbf0e-84ff-417a-965d-ed2bb9650972] WHERE [No_] = 232102
|
||||||
|
select * from [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972] WHERE [Vendor No_] = 232102
|
||||||
|
SELECT * FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS]('SWE','EB00020596','~') WHERE [Line No_] = @attachedToLineNo
|
||||||
|
(SELECT [Item] FROM [FNCUST_SPLIT_STRING_WITH_GUID] ((SELECT [VALUE] FROM [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES](9174258,'Vektor String 422','; ',0,0)),'~') WHERE [GUID] = 1);
|
||||||
|
|
||||||
|
***/
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- HE, MK // 16.03.2026
|
||||||
|
-- 16.03.2026 MK Initial
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_MS-DYN365BC_ITEM_LIST] (
|
||||||
|
@pMANDATOR_SHORT_NAME NVARCHAR(25), -- Default SWE
|
||||||
|
@pORDER_NR NVARCHAR(100),
|
||||||
|
@pDATA_SEPERATOR NVARCHAR(1) = '~'
|
||||||
|
)
|
||||||
|
RETURNS @ITEM_LIST TABLE ([GUID] [INT] IDENTITY(1,1) NOT NULL,
|
||||||
|
[MandantenKurzname] [NVARCHAR](25) NOT NULL,
|
||||||
|
[Artikelnummer] [NVARCHAR](20) NOT NULL,
|
||||||
|
[Fremd-Artikelnummer] [NVARCHAR](100) NULL,
|
||||||
|
[Beschreibung] [NVARCHAR](100) NULL,
|
||||||
|
[Beschreibung 2] [NVARCHAR](50) NULL,
|
||||||
|
[Einheitscode] [NVARCHAR](10) NULL,
|
||||||
|
[EK] [DECIMAL](38,2) NULL,
|
||||||
|
[VK] [DECIMAL](38,2) NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
DECLARE @MANDATOR_SHORT_NAME_FALLBACK NVARCHAR(25) = 'SWE',
|
||||||
|
@ORDER_NR_FALLBACK NVARCHAR(50) = 'EB9999999', -- Dummy nr für Rechnungen ohne Bestellung
|
||||||
|
@WORK_ORDER_NR_FALLBACK NVARCHAR(25) = 'A-99999999', -- Dummy nr für Lagerbestellungen
|
||||||
|
@DATA_SEPERATOR_FALLBACK NVARCHAR(1) = '~';
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @MANDATOR_SHORT_NAME NVARCHAR(25) = UPPER(LTRIM(RTRIM(ISNULL(@pMANDATOR_SHORT_NAME,@MANDATOR_SHORT_NAME_FALLBACK)))),
|
||||||
|
@ORDER_NR NVARCHAR(100) = UPPER(LTRIM(RTRIM(ISNULL(@pORDER_NR,@ORDER_NR_FALLBACK)))),
|
||||||
|
@DATA_SEPERATOR NVARCHAR(1) = UPPER(LTRIM(RTRIM(ISNULL(@pDATA_SEPERATOR,@DATA_SEPERATOR_FALLBACK))));
|
||||||
|
|
||||||
|
IF (@MANDATOR_SHORT_NAME = 'SWE') BEGIN
|
||||||
|
|
||||||
|
IF (@ORDER_NR IN ('0',@ORDER_NR_FALLBACK)) BEGIN -- Bei dummy bestellnr oder nicht aufgelöster variable
|
||||||
|
|
||||||
|
INSERT INTO @ITEM_LIST([MandantenKurzname],[Artikelnummer],[Fremd-Artikelnummer],[Beschreibung],[Beschreibung 2],[Einheitscode],[EK],[VK])
|
||||||
|
|
||||||
|
SELECT TOP 100 PERCENT
|
||||||
|
@MANDATOR_SHORT_NAME as 'MandantenKurzname',
|
||||||
|
REPLACE(LTRIM(RTRIM([Item].[No_])),@DATA_SEPERATOR,'-') as 'Artikelnummer',
|
||||||
|
REPLACE(LTRIM(RTRIM([Item].[Vendor Item No_])),@DATA_SEPERATOR,'-') as 'Fremd-Artikelnummer',
|
||||||
|
REPLACE(LTRIM(RTRIM([Item].[Description])),@DATA_SEPERATOR,'-') as 'Beschreibung',
|
||||||
|
REPLACE(LTRIM(RTRIM([Item].[Description 2])),@DATA_SEPERATOR,'-') as 'Beschreibung 2',
|
||||||
|
REPLACE(LTRIM(RTRIM([Item].[Base Unit of Measure])),@DATA_SEPERATOR,'-') as 'Einheitscode',
|
||||||
|
ROUND([Item].[Unit Cost],10) as 'EK',
|
||||||
|
ROUND([Item].[Unit Price],10) as 'VK'
|
||||||
|
FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Item$437dbf0e-84ff-417a-965d-ed2bb9650972] as [Item]
|
||||||
|
|
||||||
|
WHERE [Item].[Type] <> 1
|
||||||
|
|
||||||
|
ORDER BY [Item].[No_] ASC;
|
||||||
|
|
||||||
|
|
||||||
|
END ELSE BEGIN
|
||||||
|
|
||||||
|
INSERT INTO @ITEM_LIST([MandantenKurzname],[Artikelnummer],[Fremd-Artikelnummer],[Beschreibung],[Beschreibung 2],[Einheitscode],[EK],[VK])
|
||||||
|
|
||||||
|
SELECT TOP 100 PERCENT
|
||||||
|
@MANDATOR_SHORT_NAME as 'MandantenKurzname',
|
||||||
|
REPLACE(LTRIM(RTRIM([PurchaseLine].[No_])),@DATA_SEPERATOR,'-') as 'Artikelnummer',
|
||||||
|
REPLACE(LTRIM(RTRIM([PurchaseLine].[Vendor Item No_])),@DATA_SEPERATOR,'-') as 'Fremd-Artikelnummer',
|
||||||
|
REPLACE(LTRIM(RTRIM([PurchaseLine].[Description])),@DATA_SEPERATOR,'-') as 'Beschreibung',
|
||||||
|
REPLACE(LTRIM(RTRIM([PurchaseLine].[Description 2])),@DATA_SEPERATOR,'-') as 'Beschreibung 2',
|
||||||
|
REPLACE(LTRIM(RTRIM([PurchaseLine].[Unit of Measure])),@DATA_SEPERATOR,'-') as 'Einheitscode',
|
||||||
|
ROUND([PurchaseLine].[Direct Unit Cost],10) as 'EK',
|
||||||
|
ROUND([PurchaseLine].[Unit Price (LCY)],10) as 'VK'
|
||||||
|
|
||||||
|
FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Line$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PurchaseLine]
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Line$437dbf0e-84ff-417a-965d-ed2bb9650972$ext] as [PurchaseLine$ext] ON [PurchaseLine].[Document Type] = [PurchaseLine$ext].[Document Type]
|
||||||
|
AND [PurchaseLine].[Document No_] = [PurchaseLine$ext].[Document No_]
|
||||||
|
AND [PurchaseLine].[Line No_] = [PurchaseLine$ext].[Line No_]
|
||||||
|
WHERE convert(NVARCHAR(20),[PurchaseLine].[Type]) = '2'
|
||||||
|
AND UPPER(LTRIM(RTRIM([PurchaseLine].[Document No_]))) = @ORDER_NR
|
||||||
|
|
||||||
|
ORDER BY [PurchaseLine].[Line No_] ASC;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
/***
|
||||||
|
-- Test
|
||||||
|
|
||||||
|
SELECT * FROM [FNCUST_GET_MS-DYN365BC_ITEM_LIST]('SWE','0','~') -- ohne bestellnr
|
||||||
|
|
||||||
|
SELECT * FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Item$437dbf0e-84ff-417a-965d-ed2bb9650972] as [Item] WHERE [Item].[No_] = 'F60510';
|
||||||
|
|
||||||
|
***/
|
||||||
@@ -0,0 +1,173 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- HE, MK // 05.11.2025
|
||||||
|
-- 05.03.2025 HE, MK Initial
|
||||||
|
-- 05.11.2025 HE, MK Anpassungen wegen NAV Update
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_MS-DYN365BC_ORDER_DATA] (
|
||||||
|
@pMandatorShortName NVARCHAR(250), -- Default SWE
|
||||||
|
@pOrderNr NVARCHAR(100))
|
||||||
|
|
||||||
|
RETURNS @ORDER_DATA TABLE ([GUID] [INT] IDENTITY(1,1) NOT NULL,
|
||||||
|
[MandantenKurzname] [NVARCHAR](25) NOT NULL,
|
||||||
|
[Version] [TINYINT] NOT NULL,
|
||||||
|
[BestellNr] [NVARCHAR](100) NOT NULL,
|
||||||
|
[LieferantenNr] [NVARCHAR](50) NOT NULL,
|
||||||
|
[LieferantenName] [NVARCHAR](100) NOT NULL,
|
||||||
|
[BestellReferenz] [NVARCHAR](100) NULL,
|
||||||
|
[BestellDatum] [datetime2] NULL,
|
||||||
|
[Buchungstext] [NVARCHAR](200) NULL,
|
||||||
|
[Zlg.-Bedingung] [NVARCHAR](200) NULL,
|
||||||
|
[BestellerName_DMSSync] [NVARCHAR](50) NULL,
|
||||||
|
[SkontoProzent] [FLOAT] NULL,
|
||||||
|
[SkontoTage] [TINYINT] NULL,
|
||||||
|
[BestellWertNetto] [DECIMAL](20,2) NULL,
|
||||||
|
[BestellWertBrutto] [DECIMAL](20,2) NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @MandatorShortName NVARCHAR(250) = UPPER(LTRIM(RTRIM(@pMandatorShortName))),
|
||||||
|
@OrderNr NVARCHAR(100) = UPPER(LTRIM(RTRIM(@pOrderNr))),
|
||||||
|
@VersionNo TINYINT = 0;
|
||||||
|
|
||||||
|
IF (@MandatorShortName like 'SWE%') OR (@MandatorShortName like '%SWE%') OR (@MandatorShortName like '%SWE') BEGIN
|
||||||
|
|
||||||
|
INSERT INTO @ORDER_DATA([MandantenKurzname],[Version],[BestellNr],[LieferantenNr],[LieferantenName],[BestellReferenz],[BestellDatum],[Buchungstext],[Zlg.-Bedingung],[BestellerName_DMSSync],[SkontoProzent],[SkontoTage],[BestellWertNetto],[BestellWertBrutto])
|
||||||
|
|
||||||
|
SELECT TOP 10000
|
||||||
|
@MandatorShortName as 'MandantenKurzname',
|
||||||
|
0 as 'Version',
|
||||||
|
UPPER([PurchaseHeader].[No_]) as 'BestellNr',
|
||||||
|
LTRIM(RTRIM([PurchaseHeader].[Buy-from Vendor No_])) as 'LieferantenNr',
|
||||||
|
CASE WHEN LEN(LTRIM(RTRIM([PurchaseHeader].[Buy-from Vendor Name 2]))) > 0
|
||||||
|
THEN CONCAT((LTRIM(RTRIM([PurchaseHeader].[Buy-from Vendor Name]))),', ',(LTRIM(RTRIM([PurchaseHeader].[Buy-from Vendor Name 2]))))
|
||||||
|
ELSE (LTRIM(RTRIM([PurchaseHeader].[Buy-from Vendor Name])))
|
||||||
|
END as 'LieferantenName',
|
||||||
|
CASE WHEN LEN(TRIM([PurchaseHeader].[Your Reference])) > 0
|
||||||
|
THEN TRIM([PurchaseHeader].[Your Reference])
|
||||||
|
ELSE NULL
|
||||||
|
END as 'BestellReferenz',
|
||||||
|
[PurchaseHeader].[Order Date] as 'BestellDatum',
|
||||||
|
LTRIM(RTRIM([PurchaseHeader].[Posting Description])) as 'Buchungstext',
|
||||||
|
LTRIM(RTRIM([PaymentTerms].[Description])) as 'Zlg.-Bedingung',
|
||||||
|
CASE WHEN (SELECT count([USERNAME]) FROM [TBDD_USER] WHERE [USERNAME] IN (SELECT [USER_NAME] FROM [FNCUST_GET_MS-DYN365BC_USER_DATA](@MandatorShortName,[PurchaseHeader$ext].[WLK Resource Requester$408c5b32-694e-47bb-96d5-dad7fc8111a7]))) > 0
|
||||||
|
THEN (SELECT [USER_NAME] FROM [FNCUST_GET_MS-DYN365BC_USER_DATA](@MandatorShortName,[PurchaseHeader$ext].[WLK Resource Requester$408c5b32-694e-47bb-96d5-dad7fc8111a7]))
|
||||||
|
ELSE NULL
|
||||||
|
END as 'BestellerName_DMSSync',
|
||||||
|
convert(FLOAT,[PurchaseHeader].[Payment Discount _]) as 'SkontoProzent',
|
||||||
|
--CASE WHEN ((DATEDIFF(DAY,[PurchaseHeader].[Posting Date],[PurchaseHeader].[Pmt_ Discount Date])) > 0) and ((DATEDIFF(DAY,[PurchaseHeader].[Posting Date],[PurchaseHeader].[Pmt_ Discount Date])) < 100)
|
||||||
|
-- THEN DATEDIFF(DAY,[PurchaseHeader].[Posting Date],[PurchaseHeader].[Pmt_ Discount Date])
|
||||||
|
-- ELSE 0
|
||||||
|
--END as 'SkontoTage',
|
||||||
|
CASE WHEN [PurchaseHeader].[Prepmt_ Payment Terms Code] like '%/%/%'
|
||||||
|
THEN PARSENAME(REPLACE([PurchaseHeader].[Prepmt_ Payment Terms Code], '/', '.'), 2)
|
||||||
|
ELSE 0
|
||||||
|
END as 'SkontoTage',
|
||||||
|
|
||||||
|
convert(decimal(20,2),SUM([PurchaseLine].[Amount])) as 'BestellWertNetto',
|
||||||
|
convert(decimal(20,2),SUM([PurchaseLine].[Amount Including VAT])) as 'BestellWertBrutto'
|
||||||
|
|
||||||
|
FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PurchaseHeader]
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header$437dbf0e-84ff-417a-965d-ed2bb9650972$ext] as [PurchaseHeader$ext] ON [PurchaseHeader].[Document Type] = [PurchaseHeader$ext].[Document Type]
|
||||||
|
AND [PurchaseHeader].[No_] = [PurchaseHeader$ext].[No_]
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Line$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PurchaseLine] ON [PurchaseHeader].[Document Type] = [PurchaseLine].[Document Type]
|
||||||
|
AND [PurchaseHeader].[No_] = [PurchaseLine].[Document No_]
|
||||||
|
AND [PurchaseLine].[Type] = 2 -- = Artikel
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Payment Terms$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PaymentTerms] ON [PurchaseHeader].[Payment Terms Code] = [PaymentTerms].[Code]
|
||||||
|
|
||||||
|
WHERE [PurchaseHeader].[No_ Series] IN ('EK-BED','EK-BESTELL')
|
||||||
|
AND UPPER([PurchaseHeader].[No_]) = @OrderNr
|
||||||
|
|
||||||
|
GROUP BY UPPER([PurchaseHeader].[No_]), LTRIM(RTRIM([PurchaseHeader].[Buy-from Vendor No_])), LTRIM(RTRIM([PurchaseHeader].[Buy-from Vendor Name])), LTRIM(RTRIM([PurchaseHeader].[Buy-from Vendor Name 2])),
|
||||||
|
TRIM([PurchaseHeader].[Your Reference]), [PurchaseHeader].[Order Date], LTRIM(RTRIM([PurchaseHeader].[Posting Description])), LTRIM(RTRIM([PaymentTerms].[Description])), [PurchaseHeader$ext].[WLK Resource Requester$408c5b32-694e-47bb-96d5-dad7fc8111a7],
|
||||||
|
convert(FLOAT,[PurchaseHeader].[Payment Discount _]), [PurchaseHeader].[Posting Date], [PurchaseHeader].[Prepmt_ Payment Terms Code]
|
||||||
|
|
||||||
|
IF ((SELECT count(*) FROM @ORDER_DATA) = 0 ) BEGIN
|
||||||
|
|
||||||
|
SET @VersionNo = (SELECT MAX([Version No_]) FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header Archive$437dbf0e-84ff-417a-965d-ed2bb9650972] WHERE [No_ Series] IN ('EK-BED','EK-BESTELL') AND UPPER([No_]) = @OrderNr);
|
||||||
|
|
||||||
|
INSERT INTO @ORDER_DATA([MandantenKurzname],[Version],[BestellNr],[LieferantenNr],[LieferantenName],[BestellReferenz],[BestellDatum],[Buchungstext],[Zlg.-Bedingung],[BestellerName_DMSSync],[SkontoProzent],[SkontoTage],[BestellWertNetto],[BestellWertBrutto])
|
||||||
|
|
||||||
|
SELECT TOP 10000
|
||||||
|
@MandatorShortName as 'MandantenKurzname',
|
||||||
|
[PurchaseHeaderArchive].[Version No_] as 'Version',
|
||||||
|
UPPER([PurchaseHeaderArchive].[No_]) as 'BestellNr',
|
||||||
|
LTRIM(RTRIM([PurchaseHeaderArchive].[Buy-from Vendor No_])) as 'LieferantenNr',
|
||||||
|
CASE WHEN LEN(LTRIM(RTRIM([PurchaseHeaderArchive].[Buy-from Vendor Name 2]))) > 0
|
||||||
|
THEN CONCAT((LTRIM(RTRIM([PurchaseHeaderArchive].[Buy-from Vendor Name]))),', ',(LTRIM(RTRIM([PurchaseHeaderArchive].[Buy-from Vendor Name 2]))))
|
||||||
|
ELSE (LTRIM(RTRIM([PurchaseHeaderArchive].[Buy-from Vendor Name])))
|
||||||
|
END as 'LieferantenName',
|
||||||
|
CASE WHEN LEN(TRIM([PurchaseHeaderArchive].[Your Reference])) > 0
|
||||||
|
THEN TRIM([PurchaseHeaderArchive].[Your Reference])
|
||||||
|
ELSE NULL
|
||||||
|
END as 'BestellReferenz',
|
||||||
|
[PurchaseHeaderArchive].[Order Date] as 'BestellDatum',
|
||||||
|
LTRIM(RTRIM([PurchaseHeaderArchive].[Posting Description])) as 'Buchungstext',
|
||||||
|
LTRIM(RTRIM([PaymentTerms].[Description])) as 'Zlg.-Bedingung',
|
||||||
|
CASE WHEN (SELECT count([USERNAME]) FROM [TBDD_USER] WHERE [USERNAME] IN (SELECT [USER_NAME] FROM [FNCUST_GET_MS-DYN365BC_USER_DATA](@MandatorShortName,[PurchaseHeaderArchive$ext].[WLK Resource Requester$408c5b32-694e-47bb-96d5-dad7fc8111a7]))) > 0
|
||||||
|
THEN (SELECT [USER_NAME] FROM [FNCUST_GET_MS-DYN365BC_USER_DATA](@MandatorShortName,[PurchaseHeaderArchive$ext].[WLK Resource Requester$408c5b32-694e-47bb-96d5-dad7fc8111a7]))
|
||||||
|
ELSE NULL
|
||||||
|
END as 'BestellerName_DMSSync',
|
||||||
|
convert(FLOAT,[PurchaseHeaderArchive].[Payment Discount _]) as 'SkontoProzent',
|
||||||
|
--CASE WHEN ((DATEDIFF(DAY,[PurchaseHeaderArchive].[Posting Date],[PurchaseHeaderArchive].[Pmt_ Discount Date])) > 0) and ((DATEDIFF(DAY,[PurchaseHeaderArchive].[Posting Date],[PurchaseHeaderArchive].[Pmt_ Discount Date])) < 100)
|
||||||
|
-- THEN DATEDIFF(DAY,[PurchaseHeaderArchive].[Posting Date],[PurchaseHeaderArchive].[Pmt_ Discount Date])
|
||||||
|
-- ELSE 0
|
||||||
|
--END as 'SkontoTage',
|
||||||
|
CASE WHEN [PurchaseHeaderArchive].[Payment Terms Code] like '%/%/%'
|
||||||
|
THEN PARSENAME(REPLACE([PurchaseHeaderArchive].[Payment Terms Code], '/', '.'), 2)
|
||||||
|
ELSE 0
|
||||||
|
END as 'SkontoTage',
|
||||||
|
convert(decimal(20,2),SUM([PurchaseLineArchive].[Amount])) as 'BestellWertNetto',
|
||||||
|
convert(decimal(20,2),SUM([PurchaseLineArchive].[Amount Including VAT])) as 'BestellWertBrutto'
|
||||||
|
|
||||||
|
FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header Archive$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PurchaseHeaderArchive]
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header Archive$437dbf0e-84ff-417a-965d-ed2bb9650972$ext] as [PurchaseHeaderArchive$ext] ON [PurchaseHeaderArchive].[Document Type] = [PurchaseHeaderArchive$ext].[Document Type]
|
||||||
|
AND [PurchaseHeaderArchive].[No_] = [PurchaseHeaderArchive$ext].[No_]
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Line Archive$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PurchaseLineArchive] ON [PurchaseHeaderArchive].[Document Type] = [PurchaseLineArchive].[Document Type]
|
||||||
|
AND [PurchaseHeaderArchive].[No_] = [PurchaseLineArchive].[Document No_]
|
||||||
|
AND [PurchaseLineArchive].[Type] = 2
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Payment Terms$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PaymentTerms] ON [PurchaseHeaderArchive].[Payment Terms Code] = [PaymentTerms].[Code]
|
||||||
|
|
||||||
|
WHERE [PurchaseHeaderArchive].[No_ Series] IN ('EK-BED','EK-BESTELL')
|
||||||
|
AND UPPER([PurchaseHeaderArchive].[No_]) = @OrderNr
|
||||||
|
AND [PurchaseHeaderArchive].[Version No_] = @VersionNo
|
||||||
|
|
||||||
|
GROUP BY [PurchaseHeaderArchive].[Version No_], UPPER([PurchaseHeaderArchive].[No_]), LTRIM(RTRIM([PurchaseHeaderArchive].[Buy-from Vendor No_])), LTRIM(RTRIM([PurchaseHeaderArchive].[Buy-from Vendor Name])), LTRIM(RTRIM([PurchaseHeaderArchive].[Buy-from Vendor Name 2])),
|
||||||
|
TRIM([PurchaseHeaderArchive].[Your Reference]), [PurchaseHeaderArchive].[Order Date], LTRIM(RTRIM([PurchaseHeaderArchive].[Posting Description])), LTRIM(RTRIM([PaymentTerms].[Description])), [PurchaseHeaderArchive$ext].[WLK Resource Requester$408c5b32-694e-47bb-96d5-dad7fc8111a7],
|
||||||
|
convert(FLOAT,[PurchaseHeaderArchive].[Payment Discount _]), [PurchaseHeaderArchive].[Posting Date], [PurchaseHeaderArchive].[Payment Terms Code]
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
--IF (@UserID > 0) BEGIN
|
||||||
|
-- SELECT @BestellerName = CASE WHEN LTRIM(RTRIM([User Name])) like '%\%'
|
||||||
|
-- THEN SUBSTRING(LTRIM(RTRIM([User Name])), CHARINDEX('\', LTRIM(RTRIM([User Name]))) + 1, LEN(LTRIM(RTRIM([User Name]))) - CHARINDEX('\', LTRIM(RTRIM([User Name]))))
|
||||||
|
-- ELSE LTRIM(RTRIM([User Name]))
|
||||||
|
-- END
|
||||||
|
-- FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Employee$437dbf0e-84ff-417a-965d-ed2bb9650972] as [Employee]
|
||||||
|
-- INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[User] as [User] ON [Employee].[$systemId] = [User].[$systemId]
|
||||||
|
-- WHERE [Employee].[no_] = @UserID
|
||||||
|
--END; ELSE BEGIN
|
||||||
|
-- SET @BestellerName = NULL
|
||||||
|
--END;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
/***
|
||||||
|
-- Test
|
||||||
|
|
||||||
|
select * FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Header$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PurchaseHeader] where [PurchaseHeader].[No_] in ('ERM0000052','ERM0000053')
|
||||||
|
|
||||||
|
***/
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- MK // 05.11.2025
|
||||||
|
-- 21.03.2025 MK Initial
|
||||||
|
-- 05.11.2025 HE, MK Anpassungen wegen NAV Update
|
||||||
|
|
||||||
|
-- Verwendet in:
|
||||||
|
-- ToolCollection NI: SWE_NI-DB_Bestelldaten-anhand-MS-DYN365BC
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS] (
|
||||||
|
@pMandatorShortName NVARCHAR(250), -- Default SWE
|
||||||
|
@pOrderNr NVARCHAR(100),
|
||||||
|
@pDATA_SEPERATOR NVARCHAR(1) = '~'
|
||||||
|
)
|
||||||
|
RETURNS @ORDER_DATA_POS TABLE ([GUID] [BIGINT] IDENTITY(1,1) NOT NULL,
|
||||||
|
[CONTENT_CONCAT] [NVARCHAR](512) NOT NULL,
|
||||||
|
[MandantenKurzname] [NVARCHAR](25) NOT NULL,
|
||||||
|
[Version] [TINYINT] NOT NULL,
|
||||||
|
[Document No_] [NVARCHAR](100) NOT NULL,
|
||||||
|
[Line No_] [INT] NOT NULL,
|
||||||
|
[Buy-from Vendor No_] [NVARCHAR](50) NOT NULL,
|
||||||
|
[Vendor Item No_] [NVARCHAR](50) NULL,
|
||||||
|
[Type] [NVARCHAR](20) NOT NULL,
|
||||||
|
[No_] [NVARCHAR](20) NULL,
|
||||||
|
[Work Order No_] [NVARCHAR](20) NULL,
|
||||||
|
[Description] [NVARCHAR](100) NULL,
|
||||||
|
[Description 2] [NVARCHAR](50) NULL,
|
||||||
|
[Quantity] [NVARCHAR](50) NULL,
|
||||||
|
[Quantity Received] [NVARCHAR](50) NULL,
|
||||||
|
[Unit of Measure] [NVARCHAR](50) NULL,
|
||||||
|
[Direct Unit Cost] [NVARCHAR](50) NULL,
|
||||||
|
[Line Amount] [NVARCHAR](50) NULL,
|
||||||
|
[Amount Including VAT] [NVARCHAR](50) NULL,
|
||||||
|
[VAT Identifier] [NVARCHAR](50) NULL,
|
||||||
|
[Line Discount _] [NVARCHAR](50) NULL,
|
||||||
|
[Line Discount Amount] [NVARCHAR](50) NULL,
|
||||||
|
[Location Code] [NVARCHAR](10) NULL,
|
||||||
|
[Variant Code] [NVARCHAR](10) NULL,
|
||||||
|
[Able to Discount] [NVARCHAR](20) NULL,
|
||||||
|
[Gen_ Bus_ Posting Group] [NVARCHAR](20) NULL,
|
||||||
|
[Gen_ Prod_ Posting Group] [NVARCHAR](20) NULL,
|
||||||
|
[VAT Bus_ Posting Group] [NVARCHAR](20) NULL,
|
||||||
|
[VAT Prod_ Posting Group] [NVARCHAR](20) NULL,
|
||||||
|
[Appl_-to Item Entry] [INT] NULL,
|
||||||
|
[Posting Without Apply] [TINYINT] NULL,
|
||||||
|
[Anticipated Payment] [INT] NULL,
|
||||||
|
[Receipt No_] [NVARCHAR](20) NULL,
|
||||||
|
[Receipt Line No_] [INT] NULL,
|
||||||
|
[IR Order No_] [NVARCHAR](20) NULL,
|
||||||
|
[IR Order Line No_] [INT] NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
DECLARE @ORDER_NR_FALLBACK NVARCHAR(50) = 'EB9999999', -- Dummy nr für Rechnungen ohne Bestellung
|
||||||
|
@WORK_ORDER_NR_FALLBACK NVARCHAR(25) = 'A-99999999'; -- Dummy nr für Lagerbestellungen
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @MandatorShortName NVARCHAR(250) = UPPER(LTRIM(RTRIM(@pMandatorShortName))),
|
||||||
|
@OrderNr NVARCHAR(100) = UPPER(LTRIM(RTRIM(@pOrderNr))),
|
||||||
|
@DATA_SEPERATOR NVARCHAR(1) = UPPER(LTRIM(RTRIM(@pDATA_SEPERATOR)));
|
||||||
|
|
||||||
|
DECLARE @ArticleTypeNr TINYINT = 2;
|
||||||
|
|
||||||
|
IF (@MandatorShortName like 'SWE%') OR (@MandatorShortName like '%SWE%') OR (@MandatorShortName like '%SWE') BEGIN
|
||||||
|
|
||||||
|
INSERT INTO @ORDER_DATA_POS([CONTENT_CONCAT],
|
||||||
|
[MandantenKurzname],
|
||||||
|
[Version],
|
||||||
|
[Document No_],
|
||||||
|
[Line No_],
|
||||||
|
[Buy-from Vendor No_],
|
||||||
|
[Vendor Item No_],
|
||||||
|
[Type],[No_],
|
||||||
|
[Work Order No_],
|
||||||
|
[Description],
|
||||||
|
[Description 2],
|
||||||
|
[Quantity],
|
||||||
|
[Quantity Received],
|
||||||
|
[Unit of Measure],
|
||||||
|
[Direct Unit Cost],
|
||||||
|
[Line Amount],
|
||||||
|
[Amount Including VAT],
|
||||||
|
[VAT Identifier],
|
||||||
|
[Line Discount _],
|
||||||
|
[Line Discount Amount],
|
||||||
|
[Location Code],
|
||||||
|
[Variant Code],
|
||||||
|
[Able to Discount],
|
||||||
|
[Gen_ Bus_ Posting Group],
|
||||||
|
[Gen_ Prod_ Posting Group],
|
||||||
|
[VAT Bus_ Posting Group],
|
||||||
|
[VAT Prod_ Posting Group],
|
||||||
|
[Appl_-to Item Entry],
|
||||||
|
[Posting Without Apply],
|
||||||
|
[Anticipated Payment],
|
||||||
|
[Receipt No_],
|
||||||
|
[Receipt Line No_],
|
||||||
|
[IR Order No_],
|
||||||
|
[IR Order Line No_])
|
||||||
|
|
||||||
|
SELECT TOP 10000
|
||||||
|
CONCAT((CASE WHEN convert(NVARCHAR(20),[PurchaseLine].[Type]) = '2' THEN 'Artikel' ELSE convert(NVARCHAR(20),[PurchaseLine].[Type]) END),@DATA_SEPERATOR,
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[No_])),@DATA_SEPERATOR,
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Vendor Item No_])),@DATA_SEPERATOR,
|
||||||
|
LTRIM(RTRIM([PurchaseLine$ext].[WLK Work Order No_$408c5b32-694e-47bb-96d5-dad7fc8111a7])),@DATA_SEPERATOR,
|
||||||
|
REPLACE(LTRIM(RTRIM([PurchaseLine].[Description])),@DATA_SEPERATOR,'-'),@DATA_SEPERATOR,
|
||||||
|
REPLACE(LTRIM(RTRIM([PurchaseLine].[Description 2])),@DATA_SEPERATOR,'-'),@DATA_SEPERATOR,
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Quantity])),'.',','),@DATA_SEPERATOR,
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[Quantity Received])),'.',','),@DATA_SEPERATOR,
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Unit of Measure])),@DATA_SEPERATOR,
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Direct Unit Cost])),'.',','),@DATA_SEPERATOR,
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Line Amount])),'.',','),@DATA_SEPERATOR,
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Amount Including VAT])),'.',','),@DATA_SEPERATOR,
|
||||||
|
REPLACE(CONVERT(VARCHAR,LTRIM(RTRIM([PurchaseLine].[VAT Identifier]))),'.',','),@DATA_SEPERATOR,
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Line Discount _])),'.',','),@DATA_SEPERATOR,
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Line Discount Amount])),'.',',')) as 'CONTENT_CONCAT',
|
||||||
|
@MandatorShortName, -- 'MandantenKurzname'
|
||||||
|
0, -- 'Version'
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Document No_])), -- Document No_ / 'BestellNr'
|
||||||
|
[PurchaseLine].[Line No_], -- Positionsnummer aus Bestellung
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Buy-from Vendor No_])), -- 'LieferantenNr'
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Vendor Item No_])), -- 'Kred.-Artikelnr.'
|
||||||
|
CASE WHEN convert(NVARCHAR(20),[PurchaseLine].[Type]) = @ArticleTypeNr --
|
||||||
|
THEN 'Artikel' --
|
||||||
|
ELSE convert(NVARCHAR(20),[PurchaseLine].[Type]) --
|
||||||
|
END, -- 'Art'
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[No_])), -- 'Artikelnummer'
|
||||||
|
LTRIM(RTRIM([PurchaseLine$ext].[WLK Work Order No_$408c5b32-694e-47bb-96d5-dad7fc8111a7])), -- 'Arbeitsauftragsnummer'
|
||||||
|
REPLACE(LTRIM(RTRIM([PurchaseLine].[Description])),@DATA_SEPERATOR,'-'), -- 'Beschreibung'
|
||||||
|
REPLACE(LTRIM(RTRIM([PurchaseLine].[Description 2])),@DATA_SEPERATOR,'-'), -- 'Beschreibung 2'
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Quantity])),'.',','), -- 'Menge bestellt'
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[Quantity Received])),'.',','), -- 'Menge geliefert'
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Unit of Measure])), -- 'Einheitencode'
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Direct Unit Cost])),'.',','), -- 'EK-Preis ohne MwSt'
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Line Amount])),'.',','), -- 'Zeilenbetrag ohne MwSt'
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Amount Including VAT])),'.',','), -- 'Betrag inkl. MwSt'
|
||||||
|
REPLACE(CONVERT(VARCHAR,LTRIM(RTRIM([PurchaseLine].[VAT Identifier]))),'.',','), -- 'MwSt.-Produktbuchungsgruppe'
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Line Discount _])),'.',','), -- 'Zeilenrabatt Prozent'
|
||||||
|
REPLACE(CONVERT(VARCHAR,CONVERT(DECIMAL(38,2),[PurchaseLine].[Line Discount Amount])),'.',','), -- 'Zeilenrabattbetrag'
|
||||||
|
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Location Code])), -- 'locationCode'
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Variant Code])), -- 'variantCode'
|
||||||
|
LTRIM(RTRIM([PurchaseLine$ext].[WLK Able to Discount$408c5b32-694e-47bb-96d5-dad7fc8111a7])), -- 'ableToDiscount'
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Gen_ Bus_ Posting Group])), -- 'genBusPostingGroup'
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[Gen_ Prod_ Posting Group])), -- 'genProdPostingGroup'
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[VAT Bus_ Posting Group])), -- 'vatBusPostingGroup'
|
||||||
|
LTRIM(RTRIM([PurchaseLine].[VAT Prod_ Posting Group])), -- 'vatProdPostingGroup'
|
||||||
|
[PurchaseLine].[Appl_-to Item Entry], -- 'applToItemEntry'
|
||||||
|
[PurchaseLine$ext].[WLK Posting Without Apply$408c5b32-694e-47bb-96d5-dad7fc8111a7], -- 'postingWithoutApply'
|
||||||
|
[PurchaseLine$ext].[WLK Anticipated Payment$408c5b32-694e-47bb-96d5-dad7fc8111a7], -- 'anticipatedPayment'
|
||||||
|
LTRIM(RTRIM([PurchaseLine$ext].[WLK Receipt No_ DMS$408c5b32-694e-47bb-96d5-dad7fc8111a7])), -- 'receiptNo'
|
||||||
|
[PurchaseLine$ext].[WLK Line No_ (EP)$408c5b32-694e-47bb-96d5-dad7fc8111a7], -- 'receiptLineNo'
|
||||||
|
LTRIM(RTRIM([PurchaseLine$ext].[WLK IR Order No_$408c5b32-694e-47bb-96d5-dad7fc8111a7])), -- 'irOrderNo'
|
||||||
|
[PurchaseLine$ext].[WLK IR Order Line No_$408c5b32-694e-47bb-96d5-dad7fc8111a7] -- 'irOrderLineNo'
|
||||||
|
|
||||||
|
FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Line$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PurchaseLine]
|
||||||
|
INNER JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Line$437dbf0e-84ff-417a-965d-ed2bb9650972$ext] as [PurchaseLine$ext] ON [PurchaseLine].[Document Type] = [PurchaseLine$ext].[Document Type]
|
||||||
|
AND [PurchaseLine].[Document No_] = [PurchaseLine$ext].[Document No_]
|
||||||
|
AND [PurchaseLine].[Line No_] = [PurchaseLine$ext].[Line No_]
|
||||||
|
WHERE convert(NVARCHAR(20),[PurchaseLine].[Type]) = @ArticleTypeNr
|
||||||
|
AND UPPER(LTRIM(RTRIM([PurchaseLine].[Document No_]))) = @OrderNr
|
||||||
|
|
||||||
|
ORDER BY [PurchaseLine].[Line No_] ASC;
|
||||||
|
|
||||||
|
-- UNION ALL
|
||||||
|
|
||||||
|
-- FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Purchase Line Archive$437dbf0e-84ff-417a-965d-ed2bb9650972]
|
||||||
|
-- where [Type] = 2 and [Document No_] = 'EB00015129'
|
||||||
|
--order by [Version No_],[Line No_] asc
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
/***
|
||||||
|
-- Test mit
|
||||||
|
|
||||||
|
SELECT * FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS]('SWE','EB00021129','~')
|
||||||
|
SELECT * FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS]('SWE','EB00015129','~')
|
||||||
|
SELECT * FROM [FNCUST_GET_MS-DYN365BC_ORDER_DATA_POS]('SWE','EB00020596','~')
|
||||||
|
|
||||||
|
***/
|
||||||
|
|
||||||
@@ -0,0 +1,106 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/****** Object: UserDefinedFunction [dbo].[FNCUST_GET_MS-DYN365BC_VAT_LIST] Script Date: 27.03.2026 14:28:00 ******/
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
-- MK // 18.03.2026
|
||||||
|
-- 18.03.2026 MK Initial
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_MS-DYN365BC_VAT_LIST] (
|
||||||
|
@pMANDATOR_SHORT_NAME NVARCHAR(25), -- Default SWE
|
||||||
|
@pORDER_NR NVARCHAR(25),
|
||||||
|
@pDATA_SEPERATOR_TAX NVARCHAR(3) = ' - '
|
||||||
|
)
|
||||||
|
RETURNS @VAT_LIST TABLE ([GUID] [BIGINT] IDENTITY(1,1) NOT NULL,
|
||||||
|
[MANDATOR_SHORT_NAME] [NVARCHAR](25) NULL,
|
||||||
|
[CONTENT_CONCAT] [NVARCHAR](512) NOT NULL,
|
||||||
|
[VAT Prod_ Posting Group] [NVARCHAR](20) NOT NULL,
|
||||||
|
[VAT Bus_ Posting Group] [NVARCHAR](20) NOT NULL,
|
||||||
|
[Description] [NVARCHAR](100) NULL,
|
||||||
|
[VAT _] [DECIMAL](5,2) NOT NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
DECLARE @MANDATOR_SHORT_NAME_FALLBACK NVARCHAR(25) = 'SWE',
|
||||||
|
@ORDER_NR_FALLBACK NVARCHAR(50) = 'EB9999999', -- Dummy nr für Rechnungen ohne Bestellung
|
||||||
|
@WORK_ORDER_NR_FALLBACK NVARCHAR(25) = 'A-99999999', -- Dummy nr für Lagerbestellungen
|
||||||
|
@DATA_SEPERATOR_TAX_FALLBACK NVARCHAR(3) = ' - ';
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @MANDATOR_SHORT_NAME NVARCHAR(25) = UPPER(LTRIM(RTRIM(ISNULL(@pMANDATOR_SHORT_NAME,@MANDATOR_SHORT_NAME_FALLBACK)))),
|
||||||
|
@ORDER_NR NVARCHAR(100) = UPPER(LTRIM(RTRIM(ISNULL(@pORDER_NR,@ORDER_NR_FALLBACK)))),
|
||||||
|
@DATA_SEPERATOR_TAX NVARCHAR(3) = UPPER(ISNULL(@pDATA_SEPERATOR_TAX,@DATA_SEPERATOR_TAX_FALLBACK));
|
||||||
|
|
||||||
|
IF ((@MANDATOR_SHORT_NAME = 'SWE') AND (@ORDER_NR IN ('0',@ORDER_NR_FALLBACK))) BEGIN
|
||||||
|
|
||||||
|
INSERT INTO @VAT_LIST([MANDATOR_SHORT_NAME],
|
||||||
|
[CONTENT_CONCAT],
|
||||||
|
[VAT Prod_ Posting Group],
|
||||||
|
[VAT Bus_ Posting Group],
|
||||||
|
[Description],
|
||||||
|
[VAT _])
|
||||||
|
|
||||||
|
SELECT TOP 1000 @MANDATOR_SHORT_NAME as 'MANDATOR_SHORT_NAME',
|
||||||
|
concat([VAT Prod_ Posting Group],
|
||||||
|
@DATA_SEPERATOR_TAX,
|
||||||
|
[VAT Bus_ Posting Group],
|
||||||
|
@DATA_SEPERATOR_TAX,
|
||||||
|
convert(decimal(5,2),[VAT _]),'%') as 'CONTENT_CONCAT',
|
||||||
|
[VAT Prod_ Posting Group] as 'VAT Prod_ Posting Group',
|
||||||
|
[VAT Bus_ Posting Group] as 'VAT Bus_ Posting Group',
|
||||||
|
[Description] as 'Description',
|
||||||
|
convert(decimal(5,2),[VAT _]) as 'VAT _'
|
||||||
|
|
||||||
|
FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$VAT Posting Setup$437dbf0e-84ff-417a-965d-ed2bb9650972]
|
||||||
|
WHERE LEN([VAT Identifier]) > 0
|
||||||
|
ORDER BY [VAT Bus_ Posting Group] ASC, [VAT _] DESC;
|
||||||
|
|
||||||
|
|
||||||
|
END; ELSE BEGIN
|
||||||
|
|
||||||
|
-- Später ersetzen durch Abfrage auf Purchase Line--
|
||||||
|
INSERT INTO @VAT_LIST([MANDATOR_SHORT_NAME],
|
||||||
|
[CONTENT_CONCAT],
|
||||||
|
[VAT Prod_ Posting Group],
|
||||||
|
[VAT Bus_ Posting Group],
|
||||||
|
[Description],
|
||||||
|
[VAT _])
|
||||||
|
|
||||||
|
SELECT TOP 1000 @MANDATOR_SHORT_NAME as 'MANDATOR_SHORT_NAME',
|
||||||
|
concat([VAT Prod_ Posting Group],
|
||||||
|
@DATA_SEPERATOR_TAX,
|
||||||
|
[VAT Bus_ Posting Group],
|
||||||
|
@DATA_SEPERATOR_TAX,
|
||||||
|
convert(decimal(5,2),[VAT _]),'%') as 'CONTENT_CONCAT',
|
||||||
|
[VAT Prod_ Posting Group] as 'VAT Prod_ Posting Group',
|
||||||
|
[VAT Bus_ Posting Group] as 'VAT Bus_ Posting Group',
|
||||||
|
[Description] as 'Description',
|
||||||
|
convert(decimal(5,2),[VAT _]) as 'VAT _'
|
||||||
|
|
||||||
|
FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$VAT Posting Setup$437dbf0e-84ff-417a-965d-ed2bb9650972]
|
||||||
|
WHERE LEN([VAT Identifier]) > 0
|
||||||
|
ORDER BY [VAT Bus_ Posting Group] ASC, [VAT _] DESC;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
/***
|
||||||
|
-- Test mit
|
||||||
|
|
||||||
|
SELECT * FROM [FNCUST_GET_MS-DYN365BC_VAT_LIST]('SWE','EB00021129',' - ') -- mit bestellnr
|
||||||
|
SELECT * FROM [FNCUST_GET_MS-DYN365BC_VAT_LIST]('SWE','EB9999999',' - ') -- ohne bestellnr
|
||||||
|
|
||||||
|
***/
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,282 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- HE, MK // 04.03.2026
|
||||||
|
-- 04.03.2026 HE, MK Initial
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_MS-DYN365BC_VENDOR_INFO] (
|
||||||
|
@pMANDATOR NVARCHAR(15),
|
||||||
|
@pUSE_LIKE_SEARCH BIT,
|
||||||
|
@pVENDOR_NUMBER NVARCHAR(20),
|
||||||
|
@pVENDOR_NAME NVARCHAR(100),
|
||||||
|
@pVENDOR_SEARCH_NAME NVARCHAR(100),
|
||||||
|
@pVENDOR_NAME2 NVARCHAR(50),
|
||||||
|
@pVAT_REGISTRATION_NUMBER NVARCHAR(50),
|
||||||
|
@pIBAN NVARCHAR(50)
|
||||||
|
)
|
||||||
|
RETURNS @vTB_VENDOR_INFO TABLE ([GUID] [BIGINT] IDENTITY(1,1) NOT NULL,
|
||||||
|
[No_] [NVARCHAR](20) NOT NULL,
|
||||||
|
[Name] [NVARCHAR](100) NOT NULL,
|
||||||
|
[Search Name] [NVARCHAR](100) NULL,
|
||||||
|
[Name 2] [NVARCHAR](50) NULL,
|
||||||
|
[Address] [NVARCHAR](100) NULL,
|
||||||
|
[Address 2] [NVARCHAR](50) NULL,
|
||||||
|
[City] [NVARCHAR](30) NULL,
|
||||||
|
[Contact] [NVARCHAR](100) NULL,
|
||||||
|
[Phone No_] [NVARCHAR](30) NULL,
|
||||||
|
[Our Account No_] [NVARCHAR](20) NULL,
|
||||||
|
[Vendor Posting Group] [NVARCHAR](20) NULL,
|
||||||
|
[Payment Terms Code] [NVARCHAR](10) NULL,
|
||||||
|
[Purchaser Code] [NVARCHAR](20) NULL,
|
||||||
|
[Invoice Disc_ Code] [NVARCHAR](20) NULL,
|
||||||
|
[Country_Region Code] [NVARCHAR](10) NULL,
|
||||||
|
[Blocked] [INT] NOT NULL,
|
||||||
|
[Pay-to Vendor No_] [NVARCHAR](20) NULL,
|
||||||
|
[Payment Method Code] [NVARCHAR](10) NULL,
|
||||||
|
[Prices Including VAT] [TINYINT] NULL,
|
||||||
|
[Fax No_] [NVARCHAR](30) NULL,
|
||||||
|
[VAT Registration No_] [NVARCHAR](20) NULL,
|
||||||
|
[Gen_ Bus_ Posting Group] [NVARCHAR](20) NULL,
|
||||||
|
[GLN] [NVARCHAR](13) NULL,
|
||||||
|
[Post Code] [NVARCHAR](20) NULL,
|
||||||
|
[County] [NVARCHAR](30) NULL,
|
||||||
|
[E-Mail] [NVARCHAR](80) NULL,
|
||||||
|
[Home Page] [NVARCHAR](80) NULL,
|
||||||
|
[No_ Series] [NVARCHAR](20) NULL,
|
||||||
|
[VAT Bus_ Posting Group] [NVARCHAR](20) NULL,
|
||||||
|
[Primary Contact No_] [NVARCHAR](20) NULL,
|
||||||
|
[Document Sending Profile] [NVARCHAR](20) NULL,
|
||||||
|
[IBAN] [NVARCHAR](50) NULL,
|
||||||
|
[Payment Terms Due Date Calculation] [VARCHAR](32) NULL,
|
||||||
|
[Payment Terms Discount Date Calculation] [VARCHAR](32) NULL,
|
||||||
|
[Payment Terms Discount _] [FLOAT] NULL,
|
||||||
|
[Payment Terms Description] [NVARCHAR](100) NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @MANDATOR NVARCHAR(15) = UPPER(LTRIM(RTRIM(@pMANDATOR))),
|
||||||
|
@USE_LIKE_SEARCH BIT = ISNULL(@pUSE_LIKE_SEARCH,0),
|
||||||
|
@VENDOR_NUMBER NVARCHAR(20) = LTRIM(RTRIM(@pVENDOR_NUMBER)),
|
||||||
|
@VENDOR_NAME NVARCHAR(100) = LTRIM(RTRIM(@pVENDOR_NAME)),
|
||||||
|
@VENDOR_SEARCH_NAME NVARCHAR(100) = LTRIM(RTRIM(@pVENDOR_SEARCH_NAME)),
|
||||||
|
@VENDOR_NAME2 NVARCHAR(50) = LTRIM(RTRIM(@pVENDOR_NAME2)),
|
||||||
|
@VAT_REGISTRATION_NUMBER NVARCHAR(50) = LTRIM(RTRIM(@pVAT_REGISTRATION_NUMBER)),
|
||||||
|
@IBAN NVARCHAR(50) = REPLACE(@pIBAN,' ','');
|
||||||
|
|
||||||
|
-- declare runtime vars
|
||||||
|
DECLARE @MY_FUNCTION_NAME NVARCHAR(128) = OBJECT_NAME(@@PROCID);
|
||||||
|
DECLARE @FUNCTIONAL_CHARACTER NVARCHAR(1) = char(2);
|
||||||
|
|
||||||
|
IF ((@MANDATOR = 'SWE') AND (@USE_LIKE_SEARCH = 0)) BEGIN
|
||||||
|
|
||||||
|
INSERT INTO @vTB_VENDOR_INFO([No_],
|
||||||
|
[Name],
|
||||||
|
[Search Name],
|
||||||
|
[Name 2],
|
||||||
|
[Address],
|
||||||
|
[Address 2],
|
||||||
|
[City],
|
||||||
|
[Contact],
|
||||||
|
[Phone No_],
|
||||||
|
[Our Account No_],
|
||||||
|
[Vendor Posting Group],
|
||||||
|
[Payment Terms Code],
|
||||||
|
[Purchaser Code],
|
||||||
|
[Invoice Disc_ Code],
|
||||||
|
[Country_Region Code],
|
||||||
|
[Blocked],
|
||||||
|
[Pay-to Vendor No_],
|
||||||
|
[Payment Method Code],
|
||||||
|
[Prices Including VAT],
|
||||||
|
[Fax No_],
|
||||||
|
[VAT Registration No_],
|
||||||
|
[Gen_ Bus_ Posting Group],
|
||||||
|
[GLN],
|
||||||
|
[Post Code],
|
||||||
|
[County],
|
||||||
|
[E-Mail],
|
||||||
|
[Home Page],
|
||||||
|
[No_ Series],
|
||||||
|
[VAT Bus_ Posting Group],
|
||||||
|
[Primary Contact No_],
|
||||||
|
[Document Sending Profile],
|
||||||
|
[IBAN],
|
||||||
|
[Payment Terms Due Date Calculation],
|
||||||
|
[Payment Terms Discount Date Calculation],
|
||||||
|
[Payment Terms Discount _],
|
||||||
|
[Payment Terms Description])
|
||||||
|
|
||||||
|
SELECT DISTINCT [Vendor].[No_]
|
||||||
|
,[Vendor].[Name]
|
||||||
|
,[Vendor].[Search Name]
|
||||||
|
,[Vendor].[Name 2]
|
||||||
|
,[Vendor].[Address]
|
||||||
|
,[Vendor].[Address 2]
|
||||||
|
,[Vendor].[City]
|
||||||
|
,[Vendor].[Contact]
|
||||||
|
,[Vendor].[Phone No_]
|
||||||
|
,[Vendor].[Our Account No_]
|
||||||
|
,[Vendor].[Vendor Posting Group]
|
||||||
|
,[Vendor].[Payment Terms Code]
|
||||||
|
,[Vendor].[Purchaser Code]
|
||||||
|
,[Vendor].[Invoice Disc_ Code]
|
||||||
|
,[Vendor].[Country_Region Code]
|
||||||
|
,[Vendor].[Blocked]
|
||||||
|
,[Vendor].[Pay-to Vendor No_]
|
||||||
|
,[Vendor].[Payment Method Code]
|
||||||
|
,[Vendor].[Prices Including VAT]
|
||||||
|
,[Vendor].[Fax No_]
|
||||||
|
,[Vendor].[VAT Registration No_]
|
||||||
|
,[Vendor].[Gen_ Bus_ Posting Group]
|
||||||
|
,[Vendor].[GLN]
|
||||||
|
,[Vendor].[Post Code]
|
||||||
|
,[Vendor].[County]
|
||||||
|
,[Vendor].[E-Mail]
|
||||||
|
,[Vendor].[Home Page]
|
||||||
|
,[Vendor].[No_ Series]
|
||||||
|
,[Vendor].[VAT Bus_ Posting Group]
|
||||||
|
,[Vendor].[Primary Contact No_]
|
||||||
|
,[Vendor].[Document Sending Profile]
|
||||||
|
,CASE
|
||||||
|
WHEN (SELECT COUNT(*) FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972$ext]
|
||||||
|
WHERE [Vendor No_] = [Vendor].[No_] AND [WLK Clearing$408c5b32-694e-47bb-96d5-dad7fc8111a7] = 1) = 1
|
||||||
|
|
||||||
|
THEN (SELECT [IBAN] FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972]
|
||||||
|
WHERE [Vendor No_] = [Vendor].[No_] AND [CODE] = (SELECT [Code] FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972$ext]
|
||||||
|
WHERE [Vendor No_] = [Vendor].[No_] AND [WLK Clearing$408c5b32-694e-47bb-96d5-dad7fc8111a7] = 1))
|
||||||
|
ELSE @IBAN
|
||||||
|
END
|
||||||
|
,REPLACE([PaymentTerms].[Due Date Calculation],@FUNCTIONAL_CHARACTER,'')
|
||||||
|
,REPLACE([PaymentTerms].[Discount Date Calculation],@FUNCTIONAL_CHARACTER,'')
|
||||||
|
,CONVERT(FLOAT,(CONVERT(DECIMAL(3,2),[PaymentTerms].[Discount _])))
|
||||||
|
,[PaymentTerms].[Description]
|
||||||
|
|
||||||
|
FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor$437dbf0e-84ff-417a-965d-ed2bb9650972] as [Vendor]
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972] as [VendorBankAccount] ON [Vendor].[No_] = [VendorBankAccount].[Vendor No_]
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Payment Terms$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PaymentTerms] ON [Vendor].[Payment Terms Code] = [PaymentTerms].[Code]
|
||||||
|
|
||||||
|
WHERE (@VENDOR_NUMBER IS NULL OR [Vendor].[No_] = @VENDOR_NUMBER)
|
||||||
|
AND (@VENDOR_NAME IS NULL OR [Vendor].[Name] = @VENDOR_NAME)
|
||||||
|
AND (@VENDOR_SEARCH_NAME IS NULL OR [Vendor].[Search Name] = @VENDOR_SEARCH_NAME)
|
||||||
|
AND (@VENDOR_NAME2 IS NULL OR [Vendor].[Name 2] = @VENDOR_NAME2)
|
||||||
|
AND (@VAT_REGISTRATION_NUMBER IS NULL OR [Vendor].[VAT Registration No_] = @VAT_REGISTRATION_NUMBER)
|
||||||
|
AND (@IBAN IS NULL OR REPLACE([VendorBankAccount].[IBAN],' ','') = @IBAN);
|
||||||
|
|
||||||
|
|
||||||
|
END ELSE IF ((@MANDATOR = 'SWE') AND (@USE_LIKE_SEARCH = 1)) BEGIN
|
||||||
|
|
||||||
|
INSERT INTO @vTB_VENDOR_INFO([No_],
|
||||||
|
[Name],
|
||||||
|
[Search Name],
|
||||||
|
[Name 2],
|
||||||
|
[Address],
|
||||||
|
[Address 2],
|
||||||
|
[City],
|
||||||
|
[Contact],
|
||||||
|
[Phone No_],
|
||||||
|
[Our Account No_],
|
||||||
|
[Vendor Posting Group],
|
||||||
|
[Payment Terms Code],
|
||||||
|
[Purchaser Code],
|
||||||
|
[Invoice Disc_ Code],
|
||||||
|
[Country_Region Code],
|
||||||
|
[Blocked],
|
||||||
|
[Pay-to Vendor No_],
|
||||||
|
[Payment Method Code],
|
||||||
|
[Prices Including VAT],
|
||||||
|
[Fax No_],
|
||||||
|
[VAT Registration No_],
|
||||||
|
[Gen_ Bus_ Posting Group],
|
||||||
|
[GLN],
|
||||||
|
[Post Code],
|
||||||
|
[County],
|
||||||
|
[E-Mail],
|
||||||
|
[Home Page],
|
||||||
|
[No_ Series],
|
||||||
|
[VAT Bus_ Posting Group],
|
||||||
|
[Primary Contact No_],
|
||||||
|
[Document Sending Profile],
|
||||||
|
[IBAN],
|
||||||
|
[Payment Terms Due Date Calculation],
|
||||||
|
[Payment Terms Discount Date Calculation],
|
||||||
|
[Payment Terms Discount _],
|
||||||
|
[Payment Terms Description])
|
||||||
|
|
||||||
|
SELECT DISTINCT [Vendor].[No_]
|
||||||
|
,[Vendor].[Name]
|
||||||
|
,[Vendor].[Search Name]
|
||||||
|
,[Vendor].[Name 2]
|
||||||
|
,[Vendor].[Address]
|
||||||
|
,[Vendor].[Address 2]
|
||||||
|
,[Vendor].[City]
|
||||||
|
,[Vendor].[Contact]
|
||||||
|
,[Vendor].[Phone No_]
|
||||||
|
,[Vendor].[Our Account No_]
|
||||||
|
,[Vendor].[Vendor Posting Group]
|
||||||
|
,[Vendor].[Payment Terms Code]
|
||||||
|
,[Vendor].[Purchaser Code]
|
||||||
|
,[Vendor].[Invoice Disc_ Code]
|
||||||
|
,[Vendor].[Country_Region Code]
|
||||||
|
,[Vendor].[Blocked]
|
||||||
|
,[Vendor].[Pay-to Vendor No_]
|
||||||
|
,[Vendor].[Payment Method Code]
|
||||||
|
,[Vendor].[Prices Including VAT]
|
||||||
|
,[Vendor].[Fax No_]
|
||||||
|
,[Vendor].[VAT Registration No_]
|
||||||
|
,[Vendor].[Gen_ Bus_ Posting Group]
|
||||||
|
,[Vendor].[GLN]
|
||||||
|
,[Vendor].[Post Code]
|
||||||
|
,[Vendor].[County]
|
||||||
|
,[Vendor].[E-Mail]
|
||||||
|
,[Vendor].[Home Page]
|
||||||
|
,[Vendor].[No_ Series]
|
||||||
|
,[Vendor].[VAT Bus_ Posting Group]
|
||||||
|
,[Vendor].[Primary Contact No_]
|
||||||
|
,[Vendor].[Document Sending Profile]
|
||||||
|
,CASE
|
||||||
|
WHEN (SELECT COUNT(*) FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972$ext]
|
||||||
|
WHERE [Vendor No_] = [Vendor].[No_] AND [WLK Clearing$408c5b32-694e-47bb-96d5-dad7fc8111a7] = 1) = 1
|
||||||
|
|
||||||
|
THEN (SELECT [IBAN] FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972]
|
||||||
|
WHERE [Vendor No_] = [Vendor].[No_] AND [CODE] = (SELECT [Code] FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972$ext]
|
||||||
|
WHERE [Vendor No_] = [Vendor].[No_] AND [WLK Clearing$408c5b32-694e-47bb-96d5-dad7fc8111a7] = 1))
|
||||||
|
ELSE @IBAN
|
||||||
|
END
|
||||||
|
,REPLACE([PaymentTerms].[Due Date Calculation],@FUNCTIONAL_CHARACTER,'')
|
||||||
|
,REPLACE([PaymentTerms].[Discount Date Calculation],@FUNCTIONAL_CHARACTER,'')
|
||||||
|
,CONVERT(FLOAT,(CONVERT(DECIMAL(3,2),[PaymentTerms].[Discount _])))
|
||||||
|
,[PaymentTerms].[Description]
|
||||||
|
|
||||||
|
FROM [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor$437dbf0e-84ff-417a-965d-ed2bb9650972] as [Vendor]
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Vendor Bank Account$437dbf0e-84ff-417a-965d-ed2bb9650972] as [VendorBankAccount] ON [Vendor].[No_] = [VendorBankAccount].[Vendor No_]
|
||||||
|
LEFT JOIN [SWENAVSQL\NTSSUITE].[NTSsuite].[dbo].[SWE$Payment Terms$437dbf0e-84ff-417a-965d-ed2bb9650972] as [PaymentTerms] ON [Vendor].[Payment Terms Code] = [PaymentTerms].[Code]
|
||||||
|
|
||||||
|
WHERE (@VENDOR_NUMBER IS NULL OR [Vendor].[No_] LIKE CONCAT('%',@VENDOR_NUMBER,'%'))
|
||||||
|
AND (@VENDOR_NAME IS NULL OR [Vendor].[Name] LIKE CONCAT('%',@VENDOR_NAME,'%'))
|
||||||
|
AND (@VENDOR_SEARCH_NAME IS NULL OR [Vendor].[Search Name] LIKE CONCAT('%',@VENDOR_SEARCH_NAME,'%'))
|
||||||
|
AND (@VENDOR_NAME2 IS NULL OR [Vendor].[Name 2] LIKE CONCAT('%',@VENDOR_NAME2,'%'))
|
||||||
|
AND (@VAT_REGISTRATION_NUMBER IS NULL OR [Vendor].[VAT Registration No_] LIKE CONCAT('%',@VAT_REGISTRATION_NUMBER,'%'))
|
||||||
|
AND (@IBAN IS NULL OR REPLACE([VendorBankAccount].[IBAN],' ','') LIKE CONCAT('%',@IBAN,'%'));
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
/** TEST
|
||||||
|
|
||||||
|
SELECT * FROM [dbo].[FNCUST_GET_MS-DYN365BC_VENDOR_INFO]('SWE',1,NULL,'Digital Data',NULL,NULL,NULL,NULL) -- mit like
|
||||||
|
SELECT * FROM [dbo].[FNCUST_GET_MS-DYN365BC_VENDOR_INFO]('SWE',1,NULL,NULL,NULL,NULL,NULL,' DE4 45135 002502230 ') -- mit like
|
||||||
|
SELECT * FROM [dbo].[FNCUST_GET_MS-DYN365BC_VENDOR_INFO]('SWE',0,NULL,NULL,NULL,NULL,NULL,'DE 44513500250223017760') -- ohne like
|
||||||
|
SELECT * FROM [dbo].[FNCUST_GET_MS-DYN365BC_VENDOR_INFO]('SWE',0,NULL,'Digital Data GmbH',NULL,NULL,NULL,NULL) -- ohne like
|
||||||
|
SELECT * FROM [dbo].[FNCUST_GET_MS-DYN365BC_VENDOR_INFO]('SWE',0,NULL,NULL,NULL,NULL,NULL,'DE22840550500000026980')
|
||||||
|
**/
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- MK // 11.12.2025
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_TF_OVERVIEW] (
|
||||||
|
@pUSER_ID BIGINT
|
||||||
|
)
|
||||||
|
RETURNS TABLE
|
||||||
|
AS
|
||||||
|
RETURN (
|
||||||
|
|
||||||
|
/*## Following Columns need to be part of sql ##
|
||||||
|
TL_STATE Returns the TrafficLight-State for each doc (1=Red;2=Orange;3=Green)
|
||||||
|
PROFILE_ID TITLE Profile-Title used for default-grouping
|
||||||
|
DOC_ID
|
||||||
|
FULL_FILE_PATH
|
||||||
|
LAST USE
|
||||||
|
LAST EDITED */
|
||||||
|
|
||||||
|
SELECT T.GUID,
|
||||||
|
DATEDIFF(DAY, [T].[DMS_ERSTELLT_DATE],GETDATE()) AS [Days in],
|
||||||
|
CASE
|
||||||
|
WHEN DATEDIFF(DAY, [T].[DMS_ERSTELLT_DATE],GETDATE()) < 4
|
||||||
|
THEN 3
|
||||||
|
WHEN DATEDIFF(DAY, [T].[DMS_ERSTELLT_DATE],GETDATE()) = 6
|
||||||
|
THEN 2
|
||||||
|
ELSE 1 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].[szText39] AS [Dokumentart],
|
||||||
|
CONVERT(DATETIME, convert(varchar(8),[TWM_BA].[dwdate08])) AS [Belegdatum],
|
||||||
|
[TWM_BA].[szText25] AS [Mandant],
|
||||||
|
[TWM_BA].[szText36] AS [Nr.Intern],
|
||||||
|
[TWM_BA].[szText37] AS [Nr.Extern],
|
||||||
|
[TWM_BA].[szText20] AS [Prüfer],
|
||||||
|
[TWM_BA].[szText35] AS [Personennummer],
|
||||||
|
[TWM_BA].[szText34] AS [Name],
|
||||||
|
CONVERT(DATETIME, convert(varchar(8),[TWM_BA].[dwdate06])) AS [Fällig am],
|
||||||
|
CASE WHEN (([TWM_BA].[lfFloat09] > 0) OR ([TWM_BA].[dwInteger23] > 0))
|
||||||
|
THEN concat([TWM_BA].[lfFloat09],'% / ',[TWM_BA].[dwInteger23],' Tage')
|
||||||
|
ELSE '---'
|
||||||
|
END AS [Skonto],
|
||||||
|
--CASE WHEN LEN([TWM_BA].[szText18]) > 0
|
||||||
|
-- THEN [TWM_BA].[szText18]
|
||||||
|
-- ELSE '---'
|
||||||
|
--END AS [Zlg.Bedingung],
|
||||||
|
[T].[DMS_ERSTELLT_DATE] AS [Erhalten wann],
|
||||||
|
[dbo].[FNPM_PROFILE_GROUP_COLOR] (T.PROFIL_ID) AS 'GROUP_COLOR',
|
||||||
|
[dbo].[FNPM_PROFILE_GROUP_TEXT] (T.PROFIL_ID) AS 'GROUP_TEXT'
|
||||||
|
|
||||||
|
FROM [TBPM_PROFILE_FILES] (NOLOCK) [T]
|
||||||
|
INNER JOIN [TBPM_PROFILE] (NOLOCK) [T1] ON [T].[PROFIL_ID] = [T1].[GUID]
|
||||||
|
INNER JOIN [windreamDB].[dbo].[BaseAttributes] (NOLOCK) [TWM_BA] ON [T].[DOC_ID] = [TWM_BA].[dwDocID]
|
||||||
|
|
||||||
|
WHERE [T].[EDIT] = 0
|
||||||
|
AND [T].[IN_WORK] = 0
|
||||||
|
AND [T1].[ACTIVE] = 1
|
||||||
|
AND [T1].[GUID] in (SELECT [PROFILE_ID] FROM [dbo].[FNPM_GET_ACTIVE_PROFILES_USER] (@pUSER_ID))
|
||||||
|
|
||||||
|
);
|
||||||
|
GO
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
SET ANSI_NULLS ON
|
||||||
|
GO
|
||||||
|
SET QUOTED_IDENTIFIER ON
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- HE,MK // 14.01.2025
|
||||||
|
-- Funktion sollte erweitert werden um die Mandanten Abfrage
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_GET_USER_USERNAME_LIST_INCL_DUMMY_USER] (
|
||||||
|
@Mandant VARCHAR(8) -- Default SWE
|
||||||
|
)
|
||||||
|
RETURNS TABLE
|
||||||
|
AS
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
SELECT '_LIEFERBUCHUNG_' as 'Benutzername',
|
||||||
|
'' as 'Vorname',
|
||||||
|
'' as 'Nachname',
|
||||||
|
'' as 'E-Mail Adresse'
|
||||||
|
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
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 [Benutzername] ASC
|
||||||
|
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
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
|
||||||
|
-- MK // 07.03.2025
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_TEST_TF_USER_INPUT_PROFILEID_44](
|
||||||
|
@pIDB_OBJECT_ID BIGINT, -- = '{#INT#WMDocID}'
|
||||||
|
@Status_Detail NVARCHAR(20), -- = '{#CTRL#LU_Status-Detail}'
|
||||||
|
@Status_Detail_Text NVARCHAR(200), -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}'
|
||||||
|
@pExaminersJustification BIT, -- = '{#CTRL#CHK_Prüfer-Begründung}'
|
||||||
|
@pLUPerson NVARCHAR(50) -- = '{#CTRL#LU_Person}'
|
||||||
|
)
|
||||||
|
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
|
||||||
|
[QUESTION] [VARCHAR](max) NULL,
|
||||||
|
[TITLE] [VARCHAR](max) NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @IDB_OBJECT_ID BIGINT = @pIDB_OBJECT_ID;
|
||||||
|
|
||||||
|
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
|
||||||
|
@QUESTION VARCHAR(300) = '',
|
||||||
|
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
|
||||||
|
|
||||||
|
DECLARE @Fremdreferenz1Count INT = 0,
|
||||||
|
@NrExtern NVARCHAR(64) = NULL,
|
||||||
|
@NrExternCount SMALLINT = 0;
|
||||||
|
|
||||||
|
SET @NrExtern = (SELECT [szText37] FROM [windreamDB].[dbo].[BaseAttributes] WITH (NOLOCK) WHERE [dwDocID] = @IDB_OBJECT_ID);
|
||||||
|
SET @NrExternCount = (SELECT count(*) FROM [windreamDB].[dbo].[BaseAttributes] WITH (NOLOCK) WHERE [dwDocID] <> @IDB_OBJECT_ID AND [szText39] = 'Rechnung' and [szText38] = 'Kreditor' and [szText37] = @NrExtern);
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
IF (@Status_Detail <> 'Bestätigt') and (LEN(LTRIM(RTRIM(@Status_Detail_Text))) < 1) BEGIN -- Stop
|
||||||
|
|
||||||
|
SET @MSGTYPE = 'MsgBoxStop';
|
||||||
|
SET @QUESTION = 'Bitte tragen Sie eine Begründung ein!';
|
||||||
|
|
||||||
|
END; ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_TF_DECISION_LIST_PROFILEID_44]())) BEGIN -- Stop
|
||||||
|
|
||||||
|
SET @MSGTYPE = 'MsgBoxStop';
|
||||||
|
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!';
|
||||||
|
|
||||||
|
END; ELSE IF ((@pExaminersJustification = 1) and (@pLUPerson = '_LIEFERBUCHUNG_')) BEGIN -- Stop
|
||||||
|
|
||||||
|
SET @MSGTYPE = 'MsgBoxStop';
|
||||||
|
SET @QUESTION = 'Bei Lieferbuchungen kann keine Prüfer Begründung bei Summenabweichung erfolgen!';
|
||||||
|
|
||||||
|
END; ELSE IF LEN(@NrExtern) >= 3 AND (@NrExternCount >= 1) BEGIN -- Question
|
||||||
|
|
||||||
|
SET @MSGTYPE = 'MsgboxResult';
|
||||||
|
SET @QUESTION = concat('Die Rechnungsnummer: "',@NrExtern,'" wurde bereits ',@NrExternCount, ' mal abgelegt. Möchten Sie fortfahren?');
|
||||||
|
|
||||||
|
END; ELSE BEGIN -- Continue
|
||||||
|
|
||||||
|
SET @MSGTYPE = 'Continue';
|
||||||
|
SET @QUESTION = '';
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
|
||||||
|
VALUES (@MsgType, @QUESTION, @TITLE)
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
-- Test
|
||||||
|
-- SELECT * FROM [windreamDB].[dbo].[BaseAttributes] WITH (NOLOCK) WHERE [szText39] = 'Rechnung' and [szText38] = 'Kreditor' and [szText37] = '2026-10413'
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
USE [DD_ECM]
|
||||||
|
GO
|
||||||
|
|
||||||
|
/****** Object: UserDefinedFunction [dbo].[FNCUST_TEST_TF_USER_INPUT_PROFILEID_48] Script Date: 11.03.2026 11:06:27 ******/
|
||||||
|
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
|
||||||
|
-- MK // 07.03.2025
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION [dbo].[FNCUST_TEST_TF_USER_INPUT_PROFILEID_48](
|
||||||
|
@pIDB_OBJECT_ID BIGINT, -- = '{#INT#WMDocID}'
|
||||||
|
@Status_Detail NVARCHAR(20), -- = '{#CTRL#LU_Status-Detail}'
|
||||||
|
@Status_Detail_Text NVARCHAR(200), -- = '{#CTRL#TXT_Entscheidungs-Beschreibung}'
|
||||||
|
@pExaminersJustification BIT, -- = '{#CTRL#CHK_Prüfer-Begründung}'
|
||||||
|
@pTXT_Beschreibung NVARCHAR(500), -- = '{#CTRL#TXT_Beschreibung}'
|
||||||
|
@pTXT_Buchungstext NVARCHAR(500) -- = '{#CTRL#TXT_Buchungstext}'
|
||||||
|
)
|
||||||
|
RETURNS @vTB_TEST_RESULT TABLE ([MSGTYPE] [VARCHAR](max) NULL,
|
||||||
|
[QUESTION] [VARCHAR](max) NULL,
|
||||||
|
[TITLE] [VARCHAR](max) NULL)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- declare new vars because of parameter sniffing
|
||||||
|
DECLARE @IDB_OBJECT_ID BIGINT = @pIDB_OBJECT_ID,
|
||||||
|
@TXT_Beschreibung NVARCHAR(500) = REPLACE(LTRIM(RTRIM(@pTXT_Beschreibung)),'Buchungsbeschreibung',''),
|
||||||
|
@TXT_Buchungstext NVARCHAR(500) = REPLACE(LTRIM(RTRIM(@pTXT_Buchungstext)),'Buchungsbeschreibung','');
|
||||||
|
|
||||||
|
DECLARE @MSGTYPE VARCHAR(100) = 'Continue',
|
||||||
|
@QUESTION VARCHAR(300) = '',
|
||||||
|
@TITLE VARCHAR(100) = 'Bitte prüfen Sie Ihre Eingaben!';
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
IF (@Status_Detail <> 'Bestätigt') and (LEN(LTRIM(RTRIM(@Status_Detail_Text))) < 1) BEGIN -- Stop Grund
|
||||||
|
|
||||||
|
SET @MSGTYPE = 'MsgBoxStop'
|
||||||
|
SET @QUESTION = 'Bitte tragen Sie eine Begründung ein!'
|
||||||
|
|
||||||
|
END; ELSE IF (@Status_Detail not in (SELECT * from [FNCUST_SET_TF_DECISION_LIST_PROFILEID_48]())) BEGIN -- Stop Grund
|
||||||
|
|
||||||
|
SET @MSGTYPE = 'MsgBoxStop'
|
||||||
|
SET @QUESTION = 'Bitte wählen Sie eine andere Entscheidung aus!'
|
||||||
|
|
||||||
|
END; ELSE IF ((LEN(@TXT_Beschreibung) <= 1) AND (LEN(@TXT_Buchungstext) <= 1)) BEGIN -- Stop Grund
|
||||||
|
|
||||||
|
SET @MSGTYPE = 'MsgBoxStop';
|
||||||
|
SET @QUESTION = 'Bitte tragen Sie eine gültige Buchungsbeschreibung ein!';
|
||||||
|
|
||||||
|
END; ELSE BEGIN
|
||||||
|
|
||||||
|
SET @MSGTYPE = 'Continue'
|
||||||
|
SET @QUESTION = ''
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
INSERT INTO @vTB_TEST_RESULT ([MSGTYPE], [QUESTION], [TITLE])
|
||||||
|
VALUES (@MsgType, @QUESTION, @TITLE)
|
||||||
|
|
||||||
|
RETURN;
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user