PRCUST_SET_JSON_INVOICE_DATA: Work in progress
This commit is contained in:
@@ -17,11 +17,20 @@ GO
|
|||||||
-- =================================================================
|
-- =================================================================
|
||||||
-- Creation Date / Author: 26.02.2026 / MK
|
-- Creation Date / Author: 26.02.2026 / MK
|
||||||
-- Version Date / Editor: 26.02.2026 / MK
|
-- Version Date / Editor: 26.02.2026 / MK
|
||||||
-- Version Number: 1.0.0.0
|
-- Version Number: 1.2.0.0
|
||||||
-- =================================================================
|
-- =================================================================
|
||||||
-- History:
|
-- History:
|
||||||
-- 26.02.2026 / MK - Initial version based on JSON invoice import
|
-- 26.02.2026 / MK - Initial version based on JSON invoice import
|
||||||
-- 26.02.2026 / MK - Style harmonized to PRDEX convention
|
-- 26.02.2026 / MK - Style harmonized to PRDEX convention
|
||||||
|
-- 26.02.2026 / MK - #3 CAST(NULL AS NVARCHAR(MAX)) for consistent data type
|
||||||
|
-- 26.02.2026 / MK - #4 RETURN @RETURN_STATUS for proper return codes
|
||||||
|
-- 26.02.2026 / MK - #5 Defensive cursor cleanup in CATCH block
|
||||||
|
-- 26.02.2026 / MK - #7 Reject empty purchaseDocuments array
|
||||||
|
-- 26.02.2026 / MK - #12 Extended error diagnostics in CATCH
|
||||||
|
-- 26.02.2026 / MK - #16 success column as BIT
|
||||||
|
-- 26.02.2026 / MK - PaymentDiscountIR-Feld hinzugefügt (Request-Abgleich)
|
||||||
|
-- 26.02.2026 / MK - JSON-Ausgabe: alle Feldnamen auf camelCase umgestellt
|
||||||
|
-- 26.02.2026 / MK - OPENJSON WITH: explizite camelCase JSON-Pfade für Input-Parsing
|
||||||
|
|
||||||
CREATE OR ALTER PROCEDURE [dbo].[PRCUST_SET_JSON_INVOICE_DATA](
|
CREATE OR ALTER PROCEDURE [dbo].[PRCUST_SET_JSON_INVOICE_DATA](
|
||||||
@json NVARCHAR(MAX)
|
@json NVARCHAR(MAX)
|
||||||
@@ -62,11 +71,11 @@ BEGIN TRY
|
|||||||
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
|
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
success = 0
|
success = CAST(0 AS BIT)
|
||||||
, message = @RETURN_ERROR_TEXT
|
, message = @RETURN_ERROR_TEXT
|
||||||
, data = NULL;
|
, data = CAST(NULL AS NVARCHAR(MAX));
|
||||||
|
|
||||||
RETURN;
|
RETURN @RETURN_STATUS;
|
||||||
END;
|
END;
|
||||||
-----------------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -80,6 +89,26 @@ BEGIN TRY
|
|||||||
FROM OPENJSON(@json, '$.purchaseDocuments');
|
FROM OPENJSON(@json, '$.purchaseDocuments');
|
||||||
-----------------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--=========================================-- Reject empty purchaseDocuments array --==========================================--
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM @docs) BEGIN
|
||||||
|
|
||||||
|
ROLLBACK TRANSACTION;
|
||||||
|
|
||||||
|
SET @RETURN_STATUS = 40002;
|
||||||
|
SET @RETURN_STATUS_TEXT = N'Empty purchaseDocuments array.';
|
||||||
|
SET @RETURN_ERROR_TEXT = N'purchaseDocuments-Array ist leer. Mindestens ein Dokument erforderlich.';
|
||||||
|
|
||||||
|
PRINT 'ERROR: ' + @RETURN_ERROR_TEXT;
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
success = CAST(0 AS BIT)
|
||||||
|
, message = @RETURN_ERROR_TEXT
|
||||||
|
, data = CAST(NULL AS NVARCHAR(MAX));
|
||||||
|
|
||||||
|
RETURN @RETURN_STATUS;
|
||||||
|
END;
|
||||||
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
DECLARE doc_cursor CURSOR LOCAL FAST_FORWARD FOR SELECT doc FROM @docs;
|
DECLARE doc_cursor CURSOR LOCAL FAST_FORWARD FOR SELECT doc FROM @docs;
|
||||||
OPEN doc_cursor;
|
OPEN doc_cursor;
|
||||||
FETCH NEXT FROM doc_cursor INTO @doc;
|
FETCH NEXT FROM doc_cursor INTO @doc;
|
||||||
@@ -102,6 +131,7 @@ BEGIN TRY
|
|||||||
, DueDate
|
, DueDate
|
||||||
, PmtDiscountDate
|
, PmtDiscountDate
|
||||||
, PaymentDiscount
|
, PaymentDiscount
|
||||||
|
, PaymentDiscountIR
|
||||||
, CurrencyCode
|
, CurrencyCode
|
||||||
, InvoiceDiscCode
|
, InvoiceDiscCode
|
||||||
, PostingDescription
|
, PostingDescription
|
||||||
@@ -132,6 +162,7 @@ BEGIN TRY
|
|||||||
, DueDate
|
, DueDate
|
||||||
, PmtDiscountDate
|
, PmtDiscountDate
|
||||||
, PaymentDiscount
|
, PaymentDiscount
|
||||||
|
, PaymentDiscountIR
|
||||||
, CurrencyCode
|
, CurrencyCode
|
||||||
, InvoiceDiscCode
|
, InvoiceDiscCode
|
||||||
, PostingDescription
|
, PostingDescription
|
||||||
@@ -150,34 +181,35 @@ BEGIN TRY
|
|||||||
, PhrRMAmountLessDiscount
|
, PhrRMAmountLessDiscount
|
||||||
FROM OPENJSON(@doc)
|
FROM OPENJSON(@doc)
|
||||||
WITH (
|
WITH (
|
||||||
DocumentType INT
|
DocumentType INT '$.documentType'
|
||||||
, No NVARCHAR(50)
|
, No NVARCHAR(50) '$.no'
|
||||||
, NoSeries NVARCHAR(50)
|
, NoSeries NVARCHAR(50) '$.noSeries'
|
||||||
, ProcessIDTransfer NVARCHAR(50)
|
, ProcessIDTransfer NVARCHAR(50) '$.processIDTransfer'
|
||||||
, BuyFromVendorNo NVARCHAR(50)
|
, BuyFromVendorNo NVARCHAR(50) '$.buyFromVendorNo'
|
||||||
, PayToVendorNo NVARCHAR(50)
|
, PayToVendorNo NVARCHAR(50) '$.payToVendorNo'
|
||||||
, PostingDate DATE
|
, PostingDate DATE '$.postingDate'
|
||||||
, PaymentTermsCode NVARCHAR(20)
|
, PaymentTermsCode NVARCHAR(20) '$.paymentTermsCode'
|
||||||
, PaymentTermsCodeIR NVARCHAR(20)
|
, PaymentTermsCodeIR NVARCHAR(20) '$.paymentTermsCodeIR'
|
||||||
, DueDate DATE
|
, DueDate DATE '$.dueDate'
|
||||||
, PmtDiscountDate DATE
|
, PmtDiscountDate DATE '$.pmtDiscountDate'
|
||||||
, PaymentDiscount DECIMAL(10,2)
|
, PaymentDiscount DECIMAL(10,2) '$.paymentDiscount'
|
||||||
, CurrencyCode NVARCHAR(10)
|
, PaymentDiscountIR DECIMAL(10,2) '$.paymentDiscountIR'
|
||||||
, InvoiceDiscCode NVARCHAR(50)
|
, CurrencyCode NVARCHAR(10) '$.currencyCode'
|
||||||
, PostingDescription NVARCHAR(250)
|
, InvoiceDiscCode NVARCHAR(50) '$.invoiceDiscCode'
|
||||||
, PaymentMethodCode NVARCHAR(20)
|
, PostingDescription NVARCHAR(250) '$.postingDescription'
|
||||||
, VendorInvoiceNo NVARCHAR(50)
|
, PaymentMethodCode NVARCHAR(20) '$.paymentMethodCode'
|
||||||
, VendorCrMemoNo NVARCHAR(50)
|
, VendorInvoiceNo NVARCHAR(50) '$.vendorInvoiceNo'
|
||||||
, PhrVendorBankAccountCode NVARCHAR(50)
|
, VendorCrMemoNo NVARCHAR(50) '$.vendorCrMemoNo'
|
||||||
, PhrBankBranchNo NVARCHAR(50)
|
, PhrVendorBankAccountCode NVARCHAR(50) '$.phrVendorBankAccountCode'
|
||||||
, PhrBankAccountNo NVARCHAR(50)
|
, PhrBankBranchNo NVARCHAR(50) '$.phrBankBranchNo'
|
||||||
, PhrIBAN NVARCHAR(50)
|
, PhrBankAccountNo NVARCHAR(50) '$.phrBankAccountNo'
|
||||||
, PhrSWIFTCode NVARCHAR(50)
|
, PhrIBAN NVARCHAR(50) '$.phrIBAN'
|
||||||
, PhrBankName NVARCHAR(100)
|
, PhrSWIFTCode NVARCHAR(50) '$.phrSWIFTCode'
|
||||||
, PhrBankAccountEntryPriority BIT
|
, PhrBankName NVARCHAR(100) '$.phrBankName'
|
||||||
, PhrRMCashDiscountReceived BIT
|
, PhrBankAccountEntryPriority BIT '$.phrBankAccountEntryPriority'
|
||||||
, PhrRMAmountIncludingVAT DECIMAL(18,2)
|
, PhrRMCashDiscountReceived BIT '$.phrRMCashDiscountReceived'
|
||||||
, PhrRMAmountLessDiscount DECIMAL(18,2)
|
, PhrRMAmountIncludingVAT DECIMAL(18,2) '$.phrRMAmountIncludingVAT'
|
||||||
|
, PhrRMAmountLessDiscount DECIMAL(18,2) '$.phrRMAmountLessDiscount'
|
||||||
, purchaseLines NVARCHAR(MAX) AS JSON
|
, purchaseLines NVARCHAR(MAX) AS JSON
|
||||||
);
|
);
|
||||||
-----------------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -259,31 +291,31 @@ BEGIN TRY
|
|||||||
, IrOrderLineNo
|
, IrOrderLineNo
|
||||||
FROM OPENJSON(@line)
|
FROM OPENJSON(@line)
|
||||||
WITH (
|
WITH (
|
||||||
AttachedToLineNo INT
|
AttachedToLineNo INT '$.attachedToLineNo'
|
||||||
, Type INT
|
, Type INT '$.type'
|
||||||
, No NVARCHAR(50)
|
, No NVARCHAR(50) '$.no'
|
||||||
, Description NVARCHAR(250)
|
, Description NVARCHAR(250) '$.description'
|
||||||
, Description2 NVARCHAR(250)
|
, Description2 NVARCHAR(250) '$.description2'
|
||||||
, LocationCode NVARCHAR(50)
|
, LocationCode NVARCHAR(50) '$.locationCode'
|
||||||
, VariantCode NVARCHAR(50)
|
, VariantCode NVARCHAR(50) '$.variantCode'
|
||||||
, Quantity DECIMAL(18,4)
|
, Quantity DECIMAL(18,4) '$.quantity'
|
||||||
, UnitOfMeasureCode NVARCHAR(20)
|
, UnitOfMeasureCode NVARCHAR(20) '$.unitOfMeasureCode'
|
||||||
, DirectUnitCost DECIMAL(18,4)
|
, DirectUnitCost DECIMAL(18,4) '$.directUnitCost'
|
||||||
, LineDiscount DECIMAL(18,4)
|
, LineDiscount DECIMAL(18,4) '$.lineDiscount'
|
||||||
, AbleToDiscount BIT
|
, AbleToDiscount BIT '$.ableToDiscount'
|
||||||
, DiscountCalculated BIT
|
, DiscountCalculated BIT '$.discountCalculated'
|
||||||
, WorkOrderNo NVARCHAR(50)
|
, WorkOrderNo NVARCHAR(50) '$.workOrderNo'
|
||||||
, GenBusPostingGroup NVARCHAR(20)
|
, GenBusPostingGroup NVARCHAR(20) '$.genBusPostingGroup'
|
||||||
, GenProdPostingGroup NVARCHAR(20)
|
, GenProdPostingGroup NVARCHAR(20) '$.genProdPostingGroup'
|
||||||
, VatBusPostingGroup NVARCHAR(20)
|
, VatBusPostingGroup NVARCHAR(20) '$.vatBusPostingGroup'
|
||||||
, VatProdPostingGroup NVARCHAR(20)
|
, VatProdPostingGroup NVARCHAR(20) '$.vatProdPostingGroup'
|
||||||
, ApplToItemEntry INT
|
, ApplToItemEntry INT '$.applToItemEntry'
|
||||||
, PostingWithoutApply BIT
|
, PostingWithoutApply BIT '$.postingWithoutApply'
|
||||||
, AnticipatedPayment DECIMAL(18,2)
|
, AnticipatedPayment DECIMAL(18,2) '$.anticipatedPayment'
|
||||||
, ReceiptNo NVARCHAR(50)
|
, ReceiptNo NVARCHAR(50) '$.receiptNo'
|
||||||
, ReceiptLineNo INT
|
, ReceiptLineNo INT '$.receiptLineNo'
|
||||||
, IrOrderNo NVARCHAR(50)
|
, IrOrderNo NVARCHAR(50) '$.irOrderNo'
|
||||||
, IrOrderLineNo INT
|
, IrOrderLineNo INT '$.irOrderLineNo'
|
||||||
, dimSetEntries NVARCHAR(MAX) AS JSON
|
, dimSetEntries NVARCHAR(MAX) AS JSON
|
||||||
, itemChargeAssignmentLines NVARCHAR(MAX) AS JSON
|
, itemChargeAssignmentLines NVARCHAR(MAX) AS JSON
|
||||||
);
|
);
|
||||||
@@ -296,8 +328,8 @@ BEGIN TRY
|
|||||||
SELECT @LineID, DimensionCode, DimensionValueCode
|
SELECT @LineID, DimensionCode, DimensionValueCode
|
||||||
FROM OPENJSON(@line, '$.dimSetEntries')
|
FROM OPENJSON(@line, '$.dimSetEntries')
|
||||||
WITH (
|
WITH (
|
||||||
DimensionCode NVARCHAR(50)
|
DimensionCode NVARCHAR(50) '$.dimensionCode'
|
||||||
, DimensionValueCode NVARCHAR(50)
|
, DimensionValueCode NVARCHAR(50) '$.dimensionValueCode'
|
||||||
);
|
);
|
||||||
-----------------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -331,17 +363,17 @@ BEGIN TRY
|
|||||||
, AppliesToDocLineAmount
|
, AppliesToDocLineAmount
|
||||||
FROM OPENJSON(@line, '$.itemChargeAssignmentLines')
|
FROM OPENJSON(@line, '$.itemChargeAssignmentLines')
|
||||||
WITH (
|
WITH (
|
||||||
ItemChargeNo NVARCHAR(50)
|
ItemChargeNo NVARCHAR(50) '$.itemChargeNo'
|
||||||
, UnitCost DECIMAL(18,4)
|
, UnitCost DECIMAL(18,4) '$.unitCost'
|
||||||
, AppliesToDocType INT
|
, AppliesToDocType INT '$.appliesToDocType'
|
||||||
, AppliesToDocNo NVARCHAR(50)
|
, AppliesToDocNo NVARCHAR(50) '$.appliesToDocNo'
|
||||||
, AppliesToDocLineNo INT
|
, AppliesToDocLineNo INT '$.appliesToDocLineNo'
|
||||||
, ItemNo NVARCHAR(50)
|
, ItemNo NVARCHAR(50) '$.itemNo'
|
||||||
, Description NVARCHAR(250)
|
, Description NVARCHAR(250) '$.description'
|
||||||
, QtyToAssign DECIMAL(18,4)
|
, QtyToAssign DECIMAL(18,4) '$.qtyToAssign'
|
||||||
, QtyAssigned DECIMAL(18,4)
|
, QtyAssigned DECIMAL(18,4) '$.qtyAssigned'
|
||||||
, AmountToAssign DECIMAL(18,4)
|
, AmountToAssign DECIMAL(18,4) '$.amountToAssign'
|
||||||
, AppliesToDocLineAmount DECIMAL(18,4)
|
, AppliesToDocLineAmount DECIMAL(18,4) '$.appliesToDocLineAmount'
|
||||||
);
|
);
|
||||||
-----------------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -367,69 +399,70 @@ BEGIN TRY
|
|||||||
COALESCE(
|
COALESCE(
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
pd.DocumentType
|
[documentType] = pd.DocumentType
|
||||||
, [No] = pd.No_
|
, [no] = pd.No_
|
||||||
, pd.NoSeries
|
, [noSeries] = pd.NoSeries
|
||||||
, pd.ProcessIDTransfer
|
, [processIDTransfer] = pd.ProcessIDTransfer
|
||||||
, pd.BuyFromVendorNo
|
, [buyFromVendorNo] = pd.BuyFromVendorNo
|
||||||
, pd.PayToVendorNo
|
, [payToVendorNo] = pd.PayToVendorNo
|
||||||
, pd.PostingDate
|
, [postingDate] = pd.PostingDate
|
||||||
, pd.PaymentTermsCode
|
, [paymentTermsCode] = pd.PaymentTermsCode
|
||||||
, pd.PaymentTermsCodeIR
|
, [paymentTermsCodeIR] = pd.PaymentTermsCodeIR
|
||||||
, pd.DueDate
|
, [dueDate] = pd.DueDate
|
||||||
, pd.PmtDiscountDate
|
, [pmtDiscountDate] = pd.PmtDiscountDate
|
||||||
, pd.PaymentDiscount
|
, [paymentDiscount] = pd.PaymentDiscount
|
||||||
, pd.CurrencyCode
|
, [paymentDiscountIR] = pd.PaymentDiscountIR
|
||||||
, pd.InvoiceDiscCode
|
, [currencyCode] = pd.CurrencyCode
|
||||||
, pd.PostingDescription
|
, [invoiceDiscCode] = pd.InvoiceDiscCode
|
||||||
, pd.PaymentMethodCode
|
, [postingDescription] = pd.PostingDescription
|
||||||
, pd.VendorInvoiceNo
|
, [paymentMethodCode] = pd.PaymentMethodCode
|
||||||
, pd.VendorCrMemoNo
|
, [vendorInvoiceNo] = pd.VendorInvoiceNo
|
||||||
, pd.PhrVendorBankAccountCode
|
, [vendorCrMemoNo] = pd.VendorCrMemoNo
|
||||||
, pd.PhrBankBranchNo
|
, [phrVendorBankAccountCode] = pd.PhrVendorBankAccountCode
|
||||||
, pd.PhrBankAccountNo
|
, [phrBankBranchNo] = pd.PhrBankBranchNo
|
||||||
, pd.PhrIBAN
|
, [phrBankAccountNo] = pd.PhrBankAccountNo
|
||||||
, pd.PhrSWIFTCode
|
, [phrIBAN] = pd.PhrIBAN
|
||||||
, pd.PhrBankName
|
, [phrSWIFTCode] = pd.PhrSWIFTCode
|
||||||
, pd.PhrBankAccountEntryPriority
|
, [phrBankName] = pd.PhrBankName
|
||||||
, pd.PhrRMCashDiscountReceived
|
, [phrBankAccountEntryPriority] = pd.PhrBankAccountEntryPriority
|
||||||
, pd.PhrRMAmountIncludingVAT
|
, [phrRMCashDiscountReceived] = pd.PhrRMCashDiscountReceived
|
||||||
, pd.PhrRMAmountLessDiscount
|
, [phrRMAmountIncludingVAT] = pd.PhrRMAmountIncludingVAT
|
||||||
|
, [phrRMAmountLessDiscount] = pd.PhrRMAmountLessDiscount
|
||||||
, purchaseLines = JSON_QUERY(
|
, purchaseLines = JSON_QUERY(
|
||||||
COALESCE(
|
COALESCE(
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
pl.AttachedToLineNo
|
[attachedToLineNo] = pl.AttachedToLineNo
|
||||||
, pl.Type
|
, [type] = pl.Type
|
||||||
, [No] = pl.No_
|
, [no] = pl.No_
|
||||||
, pl.Description
|
, [description] = pl.Description
|
||||||
, pl.Description2
|
, [description2] = pl.Description2
|
||||||
, pl.LocationCode
|
, [locationCode] = pl.LocationCode
|
||||||
, pl.VariantCode
|
, [variantCode] = pl.VariantCode
|
||||||
, pl.Quantity
|
, [quantity] = pl.Quantity
|
||||||
, pl.UnitOfMeasureCode
|
, [unitOfMeasureCode] = pl.UnitOfMeasureCode
|
||||||
, pl.DirectUnitCost
|
, [directUnitCost] = pl.DirectUnitCost
|
||||||
, pl.LineDiscount
|
, [lineDiscount] = pl.LineDiscount
|
||||||
, pl.AbleToDiscount
|
, [ableToDiscount] = pl.AbleToDiscount
|
||||||
, pl.DiscountCalculated
|
, [discountCalculated] = pl.DiscountCalculated
|
||||||
, pl.WorkOrderNo
|
, [workOrderNo] = pl.WorkOrderNo
|
||||||
, pl.GenBusPostingGroup
|
, [genBusPostingGroup] = pl.GenBusPostingGroup
|
||||||
, pl.GenProdPostingGroup
|
, [genProdPostingGroup] = pl.GenProdPostingGroup
|
||||||
, pl.VatBusPostingGroup
|
, [vatBusPostingGroup] = pl.VatBusPostingGroup
|
||||||
, pl.VatProdPostingGroup
|
, [vatProdPostingGroup] = pl.VatProdPostingGroup
|
||||||
, pl.ApplToItemEntry
|
, [applToItemEntry] = pl.ApplToItemEntry
|
||||||
, pl.PostingWithoutApply
|
, [postingWithoutApply] = pl.PostingWithoutApply
|
||||||
, pl.AnticipatedPayment
|
, [anticipatedPayment] = pl.AnticipatedPayment
|
||||||
, pl.ReceiptNo
|
, [receiptNo] = pl.ReceiptNo
|
||||||
, pl.ReceiptLineNo
|
, [receiptLineNo] = pl.ReceiptLineNo
|
||||||
, pl.IrOrderNo
|
, [irOrderNo] = pl.IrOrderNo
|
||||||
, pl.IrOrderLineNo
|
, [irOrderLineNo] = pl.IrOrderLineNo
|
||||||
, dimSetEntries = JSON_QUERY(
|
, dimSetEntries = JSON_QUERY(
|
||||||
COALESCE(
|
COALESCE(
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
d.DimensionCode
|
[dimensionCode] = d.DimensionCode
|
||||||
, d.DimensionValueCode
|
, [dimensionValueCode] = d.DimensionValueCode
|
||||||
FROM dbo.DimSetEntry d
|
FROM dbo.DimSetEntry d
|
||||||
WHERE d.LineID = pl.LineID
|
WHERE d.LineID = pl.LineID
|
||||||
FOR JSON PATH
|
FOR JSON PATH
|
||||||
@@ -441,17 +474,17 @@ BEGIN TRY
|
|||||||
COALESCE(
|
COALESCE(
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
ia.ItemChargeNo
|
[itemChargeNo] = ia.ItemChargeNo
|
||||||
, ia.UnitCost
|
, [unitCost] = ia.UnitCost
|
||||||
, ia.AppliesToDocType
|
, [appliesToDocType] = ia.AppliesToDocType
|
||||||
, ia.AppliesToDocNo
|
, [appliesToDocNo] = ia.AppliesToDocNo
|
||||||
, ia.AppliesToDocLineNo
|
, [appliesToDocLineNo] = ia.AppliesToDocLineNo
|
||||||
, ia.ItemNo
|
, [itemNo] = ia.ItemNo
|
||||||
, ia.Description
|
, [description] = ia.Description
|
||||||
, ia.QtyToAssign
|
, [qtyToAssign] = ia.QtyToAssign
|
||||||
, ia.QtyAssigned
|
, [qtyAssigned] = ia.QtyAssigned
|
||||||
, ia.AmountToAssign
|
, [amountToAssign] = ia.AmountToAssign
|
||||||
, ia.AppliesToDocLineAmount
|
, [appliesToDocLineAmount] = ia.AppliesToDocLineAmount
|
||||||
FROM dbo.ItemChargeAssignment ia
|
FROM dbo.ItemChargeAssignment ia
|
||||||
WHERE ia.LineID = pl.LineID
|
WHERE ia.LineID = pl.LineID
|
||||||
FOR JSON PATH
|
FOR JSON PATH
|
||||||
@@ -488,20 +521,35 @@ BEGIN TRY
|
|||||||
PRINT '====================================================================================================';
|
PRINT '====================================================================================================';
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
success = 1
|
success = CAST(1 AS BIT)
|
||||||
, message = N'Daten erfolgreich verarbeitet.'
|
, message = N'Daten erfolgreich verarbeitet.'
|
||||||
, data = @output;
|
, data = @output;
|
||||||
|
|
||||||
|
RETURN @RETURN_STATUS;
|
||||||
|
|
||||||
END TRY BEGIN CATCH
|
END TRY BEGIN CATCH
|
||||||
|
|
||||||
--====================================================-- exception / error --====================================================--
|
--====================================================-- exception / error --====================================================--
|
||||||
|
|
||||||
|
-- defensive cursor cleanup
|
||||||
|
IF CURSOR_STATUS('local','line_cursor') >= -1 BEGIN
|
||||||
|
IF CURSOR_STATUS('local','line_cursor') >= 0
|
||||||
|
CLOSE line_cursor;
|
||||||
|
DEALLOCATE line_cursor;
|
||||||
|
END;
|
||||||
|
IF CURSOR_STATUS('local','doc_cursor') >= -1 BEGIN
|
||||||
|
IF CURSOR_STATUS('local','doc_cursor') >= 0
|
||||||
|
CLOSE doc_cursor;
|
||||||
|
DEALLOCATE doc_cursor;
|
||||||
|
END;
|
||||||
|
|
||||||
IF (@@TRANCOUNT > 0) BEGIN
|
IF (@@TRANCOUNT > 0) BEGIN
|
||||||
ROLLBACK TRANSACTION;
|
ROLLBACK TRANSACTION;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
SET @RETURN_STATUS = 50000;
|
SET @RETURN_STATUS = 50000;
|
||||||
SET @RETURN_STATUS_TEXT = CONCAT('END PROCEDURE [',OBJECT_NAME(@@PROCID),'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
|
SET @RETURN_STATUS_TEXT = CONCAT('END PROCEDURE [',OBJECT_NAME(@@PROCID),'] @ ',CONVERT(NVARCHAR(50),GETDATE(),120));
|
||||||
SET @RETURN_ERROR_TEXT = CONCAT('ERROR MESSAGE: ',CONVERT(NVARCHAR(500),ERROR_MESSAGE()));
|
SET @RETURN_ERROR_TEXT = CONCAT('ERR ',ERROR_NUMBER(),' SEV ',ERROR_SEVERITY(),' STATE ',ERROR_STATE(),' LINE ',ERROR_LINE(),': ',ERROR_MESSAGE());
|
||||||
|
|
||||||
PRINT 'ERROR IN PROCEDURE: [' + OBJECT_NAME(@@PROCID) + ']' + CHAR(13) + @RETURN_ERROR_TEXT;
|
PRINT 'ERROR IN PROCEDURE: [' + OBJECT_NAME(@@PROCID) + ']' + CHAR(13) + @RETURN_ERROR_TEXT;
|
||||||
PRINT @RETURN_STATUS_TEXT;
|
PRINT @RETURN_STATUS_TEXT;
|
||||||
@@ -509,9 +557,11 @@ END TRY BEGIN CATCH
|
|||||||
-----------------------------------------------------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
success = 0
|
success = CAST(0 AS BIT)
|
||||||
, message = ERROR_MESSAGE()
|
, message = ERROR_MESSAGE()
|
||||||
, data = NULL;
|
, data = CAST(NULL AS NVARCHAR(MAX));
|
||||||
|
|
||||||
|
RETURN @RETURN_STATUS;
|
||||||
|
|
||||||
END CATCH;
|
END CATCH;
|
||||||
GO
|
GO
|
||||||
|
|||||||
Reference in New Issue
Block a user