Advertisement
Guest User

Untitled

a guest
Mar 16th, 2019
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.06 KB | None | 0 0
  1. USE [cwwebapp_nexnow]
  2. GO
  3.  
  4. /****** Object:  StoredProcedure [dbo].[usp_report_AG_AgreementReconciliation]    Script Date: 3/17/2019 5:53:22 AM ******/
  5. SET ANSI_NULLS ON
  6. GO
  7.  
  8. SET QUOTED_IDENTIFIER ON
  9. GO
  10.  
  11. /*3421*/ CREATE PROCEDURE [dbo].[usp_report_AG_AgreementReconciliation]
  12. (
  13.      @Company_RecID NVARCHAR(20)
  14.     ,@AGR_Header_RecID NVARCHAR(20)
  15.     ,@StartDate NVARCHAR(20)
  16.     ,@EndDate NVARCHAR(20)
  17.     ,@DisplayNotes BIT
  18.     ,@Date_Range NVARCHAR (5)
  19.     ,@LANGUAGE NVARCHAR(6)
  20. )
  21. AS
  22. BEGIN
  23.     SET NOCOUNT ON;
  24.      SET TRANSACTION isolation level READ uncommitted;
  25.  
  26. BEGIN TRY
  27.          
  28.     DECLARE @AGR_Header_RecID2 INT,
  29.             @StartDate2 DATETIME,
  30.             @EndDate2 DATETIME,
  31.             @txt_Yes nvarchar(10),
  32.             @txt_No nvarchar(10)
  33.    
  34.     SELECT @AGR_Header_RecID2 = CAST(@AGR_Header_RecID AS INT)
  35.          ,@StartDate2 = CAST(@StartDate AS DATETIME)
  36.          ,@EndDate2 = CAST(@EndDate AS DATETIME)
  37.    
  38.     SET  @txt_Yes = (SELECT dbo.udf_GetLocalizedText(@LANGUAGE,'Yes'))
  39.     SET  @txt_No = (SELECT dbo.udf_GetLocalizedText(@LANGUAGE,'No'))
  40.    
  41.     IF @Date_Range = 'R'
  42.         BEGIN
  43.             SET @StartDate2 = CAST(@StartDate AS DATETIME)
  44.             SET @EndDate2 = CAST(@EndDate + ' 23:59:59.000' AS DATETIME)
  45.         END
  46.     ELSE
  47.         BEGIN
  48.             SELECT @StartDate2 = StartDate, @EndDate2 = EndDate FROM [dbo].[udf_CalculateStartEndDateFromDateRange] (@Date_Range,NULL)
  49.         END        
  50.    
  51.     IF OBJECT_ID('tempdb..#AGREEMENT_RECON') IS NOT NULL
  52.         DROP TABLE #AGREEMENT_RECON
  53.    
  54.     CREATE TABLE #AGREEMENT_RECON
  55.     (
  56.          ID INT IDENTITY (1,1) PRIMARY KEY CLUSTERED
  57.         ,rptDate DATETIME
  58.         ,sortDate DATETIME
  59.         ,agrAmt DECIMAL(18,2)
  60.         ,typeDesc NVARCHAR(100)
  61.         ,Comment NVARCHAR(MAX)
  62.         ,Notes NVARCHAR(MAX)
  63.     )
  64.    
  65.     INSERT INTO #AGREEMENT_RECON
  66.     EXEC dbo.usp_report_AG_AGR_Recon @AGR_Header_RecID2, @StartDate2, @EndDate2, @LANGUAGE
  67.  
  68.     IF OBJECT_ID('tempdb..#AGREEMENT_BALANCE') IS NOT NULL
  69.         DROP TABLE #AGREEMENT_BALANCE
  70.  
  71.     CREATE TABLE #AGREEMENT_BALANCE
  72.     (
  73.         ID INT IDENTITY(1,1) PRIMARY KEY CLUSTERED
  74.         ,rptDate DATETIME
  75.         ,sortDate DATETIME
  76.         ,agrAmt DECIMAL(18,2)
  77.         ,balanceAmt DECIMAL(18,2)
  78.         ,typeDesc NVARCHAR(100)
  79.         ,Comment NVARCHAR(MAX)
  80.         ,Notes NVARCHAR(MAX)
  81.     )  
  82.  
  83.     DECLARE @RemainingBalance DECIMAL(18,2)
  84.     SELECT @RemainingBalance = 0
  85.  
  86.     WHILE EXISTS(SELECT TOP 1 * FROM #AGREEMENT_RECON)
  87.     BEGIN
  88.         SELECT TOP 1 @RemainingBalance = @RemainingBalance + agrAmt FROM #AGREEMENT_RECON
  89.  
  90.         INSERT INTO #AGREEMENT_BALANCE
  91.         SELECT TOP 1 rptDate, sortDate, agrAmt, @RemainingBalance, typeDesc, Comment, Notes
  92.         FROM #AGREEMENT_RECON
  93.        
  94.         SET ROWCOUNT 1
  95.         DELETE FROM #AGREEMENT_RECON
  96.         SET ROWCOUNT 0
  97.     END;
  98.  
  99.     WITH PARAMETERS AS
  100.     (
  101.         SELECT
  102.              (SELECT Company_Name FROM dbo.Company WHERE Company_RecID = CAST(@Company_RecID AS INT)) AS Company
  103.             ,(SELECT AGR_Name FROM dbo.AGR_Header WHERE AGR_Header_RecID = @AGR_Header_RecID) AS Agreement
  104.             ,CASE @DisplayNotes WHEN 1 THEN @txt_Yes ELSE @txt_No END AS DisplayNotes
  105.     )
  106.     SELECT p.Company AS P_Company
  107.         ,p.Agreement AS P_Agreement
  108.         ,@StartDate2 AS P_StartDate
  109.         ,@EndDate2 AS P_EndDate
  110.         ,p.DisplayNotes AS P_DisplayNotes
  111.         ,ab.rptDate
  112.         ,ab.sortDate
  113.         ,ab.agrAmt
  114.         ,ab.balanceAmt
  115.         ,ab.typeDesc
  116.         ,ab.Comment
  117.         ,ab.Notes
  118.         ,CASE ah.AGR_Detail_Type_ID
  119.             WHEN 'A' THEN dbo.udf_report_GetCurrencyFormatString(ah.Owner_Level_RecID, 2, 1, 0)
  120.             ELSE '#,0.00;-#,0.00;0.00'
  121.          END AS NumberFormatString
  122.     FROM PARAMETERS p
  123.         LEFT JOIN #AGREEMENT_BALANCE ab ON 1 = 1
  124.         LEFT JOIN dbo.AGR_Header ah ON ah.AGR_Header_RecID = @AGR_Header_RecID2
  125.     ORDER BY ID, ab.typeDesc
  126.  
  127. END TRY
  128.  
  129. BEGIN CATCH
  130.      DECLARE
  131.        @errNumber INT,
  132.      @errMessage NVARCHAR(4000),
  133.      @errSeverity INT,
  134.      @errState INT,
  135.      @errLine INT
  136.  
  137.  
  138.      SET @errNumber = ERROR_NUMBER();
  139.      SET @errMessage = ERROR_MESSAGE();
  140.      SET @errSeverity = ERROR_SEVERITY();
  141.      SET @errState = ERROR_STATE();
  142.      SET @errLine = ERROR_LINE();
  143.      
  144.      INSERT INTO dbo.SQL_Procedure_Error(Stored_Procedure,Error_Number,Error_Severity,Error_Line,Error_Message)
  145.      VALUES (OBJECT_NAME(@@PROCID),@errNumber,@errSeverity,@errLine,@errMessage);
  146.  
  147. END CATCH
  148.    
  149. END
  150.  
  151.  
  152. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement