IF OBJECT_ID(N'KAAS_ACLedgerSetClientReserveInsert',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_ACLedgerSetClientReserveInsert] GO CREATE PROCEDURE [dbo].[KAAS_ACLedgerSetClientReserveInsert] (@Reserve VARCHAR(15), @Comment VARCHAR(80), @User VARCHAR(10), @Matter VARCHAR(20) , @Result INT OUTPUT) AS /****************************************************************************************************************** * To insert and Set Client A/c Reserve value. * * * * Stored Procedure Name: [dbo].[KAAS_ACLedgerSetClientReserveInsert] * * Copied from : [dbo].[ky_NETACLedgerSetClientReserveInsert] * * * * Modification History: * * 2019-07-18 Vinodhan K Created * ******************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 0 BEGIN SET @NCOMMAND = N' INSERT INTO [dbo].[MatterLedger] ([MATTER], [BATCHNO], [PREF], [DATE], [REF], [NARR], [VALUED], [VALUEO], [VALUEC], [FEE], [PER], [YEAR], [ENTRYDATE], [CLIENT], [VALUECC], [VALUECD], [DEPOSITTYPE], [CURVALUED], [CURVALUEO], [CURVALUEC], [CURVALUECC], [CURVALUECD], [BILLED], [BILLINGYEAR], [BILLINGPERIOD], [BILLINGDATE], [BILLEDOUTLAYVALUE], [INVOICENO], [INCLUDEINBILL]) VALUES(RTRIM(@Matter), 0, 0, GETDATE(), LEFT(RTRIM(@User), 10), ''RESERVE: '' + RTRIM(@Comment), 0.00, 0.00, 0.00, '''', 0, 0, GETDATE(), '''', 0.00, 0.00, '''', 0.00, 0.00, 0.00, 0.00, 0.00, '''', 0, 0, '''', 0.00, 0, 0) IF EXISTS (SELECT TOP 1 1 FROM [dbo].[matters] MAT WHERE MAT.[CODE] = @Matter ) BEGIN UPDATE MAT SET MAT.[CLIENTMIN] = @Reserve FROM [dbo].[matters] MAT WHERE MAT.[CODE] = @Matter END SET @Result = 1' END ELSE BEGIN SET @NCOMMAND = ' DECLARE @YEAR INT DECLARE @PERIOD INT SELECT @YEAR = CASE WHEN NUM.[Code] = ''CurYear'' THEN ISNULL(NUM.[NumValue], 0) ELSE @YEAR END, @PERIOD = CASE WHEN NUM.[Code] = ''CurPeriod'' THEN ISNULL(NUM.[NumValue], 0) ELSE @PERIOD END FROM [dbo].[CtrlNum] AS NUM WHERE NUM.[Code] IN (''CurYear'', ''CurPeriod'') INSERT INTO [dbo].[Transactions] ( [BatchNo], [XnType], [RecType], [LineType], [Destination], [TypeCode], [ChequeStatus], [NominalCode], [TransferCosts], [TransferFrom], [Branch], [PostRef], [ParentRef], [TransRef], [TransDate], [ClearType], [ClearDate], [WriteDownDate], [Team], [FeeEarner], [MatterCode], [Supplier], [Narrative], [EntryCurrency], [TransTotal], [DrCr], [NominalValue], [CurrencyNominal], [DebtorsValue], [DebtorsValueOS], [CurrencyDebtors], [CurrDebtorsOS], [OutlayValue], [CurrencyOutlay], [OutlayCode], [OpenInvoice], [OutlayBill], [ClientCurrent], [CurrencyCurent], [ClientDeposit], [CurrencyDeposit], [SupplierValue], [SupplierValueOS], [PostingPeriod], [PostingYear], [Payee], [NVNetValue], [CurrencyNVNet], [VNetValue], [CurrencyVNet], [VATValue], [CurrencyVAT], [VATRate], [FeesBilled], [FeesOS], [CurrFees], [CurrFeesOS], [VATonFees], [VATonFeesOS], [CurrVATonFees], [CurrVATFeesOS], [OutlayNV], [OutlayNVOS], [CurrNVOutlay], [CurrNVOlayOS], [OutlayV], [OutlayVOS], [CurrVOlay], [CurrVOlayOS], [VATonOutlay], [VATOutlayOS], [CurrVATonOlay], [CurrVATOlayOS], [MiscBilled], [MiscOS], [CurrMiscBilled], [CurrMiscOS], [VATonMisc], [VATMiscOS], [CurrVATonMisc], [CurrVATMiscOS], [VATBilled], [CurrVATBill], [ThirdParty], [EntryDate], [UpdateDate], [EnteredBy], [UpdateBy], [Requisition], [ReceiptNo], [DraftNo], [MemXnid], [Posted], [Authorised], [AuthorDate], [UserBatch], [CorrectionInd], [CorrectDate], [CorrectUser], [CorrectID], [Reconciliation], [Reconciled], [WriteOffRemainder], [AllocPending], [PreBilledOutlays], [BilledOutlay], [Seq], [ReturnPreBilled], [PreBilledV], [PreBilledNV], [OffSetOutlay], [OtherRef], [OutlayBilledDate], [EFTSent], [EFTDate], [EFTFileNumber], [EFTFileName], [EFTYorN], [ClientCode], [PayClient], [OnceOffPayment], [CaseAssCode], [RegisteredPost], [EFTEmailYorN]) SELECT 0, /* BatchNo */ ''C'', /* XnType */ ''H'', /* RecType */ ''X'', /* LineType */ ''T'', /* Destination */ ''Comment'', /* TypeCode */ '''', /* ChequeStatus */ '''', /* NominalCode */ '''', /* TransferCosts */ '''', /* TransferFrom */ '''', /* Branch */ 0, /* PostRef */ 0, /* ParentRef */ LEFT(RTRIM(@User), 10), /* TransRef */ CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(), 112), 112), /* TransDate */ '''', /* ClearType */ NULL, /* ClearDate */ NULL, /* WriteDownDate */ '''', /* Team */ '''', /* FeeEarner */ @Matter, /* MatterCode */ '''', /* Supplier */ ''RESERVE: '' + RTRIM(@Comment), /* Narrative */ '''', /* EntryCurrency */ 0, /* TransTotal */ 0, /* DrCr */ 0, /* NominalValue */ 0, /* CurrencyNominal */ 0, /* DebtorsValue */ 0, /* DebtorsValueOS */ 0, /* CurrencyDebtors */ 0, /* CurrDebtorsOS */ 0, /* OutlayValue */ 0, /* CurrencyOutlay */ '''', /* OutlayCode */ '''', /* OpenInvoice */ 0, /* OutlayBill */ 0, /* ClientCurrent */ 0, /* CurrencyCurent */ 0, /* ClientDeposit */ 0, /* CurrencyDeposit */ 0, /* SupplierValue */ 0, /* SupplierValueOS */ @PERIOD, /* PostingPeriod */ @YEAR, /* PostingYear */ '''', /* Payee */ 0, /* NVNetValue */ 0, /* CurrencyNVNet */ 0, /* VNetValue */ 0, /* CurrencyVNet */ 0, /* VATValue */ 0, /* CurrencyVAT */ '''', /* VATRate */ 0, /* FeesBilled */ 0, /* FeesOS */ 0, /* CurrFees */ 0, /* CurrFeesOS */ 0, /* VATonFees */ 0, /* VATonFeesOS */ 0, /* CurrVATonFees */ 0, /* CurrVATFeesOS */ 0, /* OutlayNV */ 0, /* OutlayNVOS */ 0, /* CurrNVOutlay */ 0, /* CurrNVOlayOS */ 0, /* OutlayV */ 0, /* OutlayVOS */ 0, /* CurrVOlay */ 0, /* CurrVOlayOS */ 0, /* VATonOutlay */ 0, /* VATOutlayOS */ 0, /* CurrVATonOlay */ 0, /* CurrVATOlayOS */ 0, /* MiscBilled */ 0, /* MiscOS */ 0, /* CurrMiscBilled */ 0, /* CurrMiscOS */ 0, /* VATonMisc */ 0, /* VATMiscOS */ 0, /* CurrVATonMisc */ 0, /* CurrVATMiscOS */ 0, /* VATBilled */ 0, /* CurrVATBill */ '''', /* ThirdParty */ CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(), 112), 112), /* EntryDate */ NULL, /* UpdateDate */ '''', /* EnteredBy */ '''', /* UpdateBy */ 0, /* Requisition */ 0, /* ReceiptNo */ 0, /* DraftNo */ 0, /* MemXnid */ ''Y'', /* Posted */ '''', /* Authorised */ NULL, /* AuthorDate */ 0, /* UserBatch */ ''L'', /* CorrectionInd */ NULL, /* CorrectDate */ '''', /* CorrectUser */ 0, /* CorrectID */ 0, /* Reconciliation */ '''', /* Reconciled */ '''', /* WriteOffRemainder */ 0, /* AllocPending */ '''', /* PreBilledOutlays */ 0, /* BilledOutlay */ 0, /* Seq */ '''', /* ReturnPreBilled */ 0, /* PreBilledV */ 0, /* PreBilledNV */ '''', /* OffSetOutlay */ '''', /* OtherRef */ NULL, /* OutlayBilledDate */ ''N'', /* EFTSent */ NULL, /* EFTDate */ 0, /* EFTFileNumber */ '''', /* EFTFileName */ ''N'', /* EFTYorN */ '''', /* ClientCode */ ''N'', /* PayClient */ ''N'', /* OnceOffPayment */ '''', /* CaseAssCode */ 0, /* RegisteredPost */ ''N'' /* EFTEmailYorN */ IF EXISTS (SELECT TOP 1 1 FROM [dbo].[matters] AS MAT WHERE MAT.[Code] = @Matter) BEGIN UPDATE MAT SET MAT.[CLIENTMIN] = @Reserve FROM [dbo].[matters] AS MAT WHERE MAT.[Code] = @Matter END SET @Result = 1' END EXECUTE sp_executesql @NCOMMAND, N'@Matter VARCHAR(20), @User VARCHAR(10), @Comment VARCHAR(80), @Reserve VARCHAR(15), @Result INT OUTPUT', @Matter = @Matter, @User = @User, @Comment = @Comment, @Reserve = @Reserve, @Result = @REsult OUTPUT SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_AddBillNarrative' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_AddBillNarrative] END GO CREATE PROCEDURE [dbo].[KAAS_AddBillNarrative] (@Narrative VARCHAR(MAX)) AS /******************************************************************************************************* * This sp used to Add bill narrative. * * * * Stored Procedure Name : [dbo].[KAAS_AddBillNarrative] * * Copied from : [dbo].[ky_NETSPAddBillNarrative] * * * * Modification History : * * 2019-11-15 Dheepin Vijith K Created * *******************************************************************************************************/ BEGIN DECLARE @SEARCHFIELD VARCHAR(20) SET @SEARCHFIELD = UPPER(RTRIM(CONVERT(VARCHAR(20), ISNULL(@Narrative, '')))) IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillDescriptions] BD WHERE RTRIM(ISNULL(CONVERT(VARCHAR(MAX), BD.[BILLDESCRIPTIONS]), '')) = RTRIM(ISNULL(@Narrative, ''))) BEGIN INSERT INTO [dbo].[BillDescriptions] ([BILLDESCRIPTIONS], [SEARCHFIELD]) VALUES(@Narrative, @SEARCHFIELD) END END GO IF OBJECT_ID(N'KAAS_AddDocFolderUploadedImage',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_AddDocFolderUploadedImage] GO CREATE PROCEDURE [dbo].[KAAS_AddDocFolderUploadedImage] (@image VARBINARY(MAX)) AS /********************************************************************************** * Stored Procedure Name: KAAS_AddDocFolderUploadedImage * Copied From : [dbo].[ky_NETSPAddDocFolderUploadedImage] * * Add an uploaded document folder image to the database. * * Modification History * 2016-05-12 Pino Carafa Created * 2022-06-22 Aakif Created KaaS file **********************************************************************************/ BEGIN DECLARE @ID INT INSERT INTO [dbo].[DocFolderUploadedImages] ([image]) VALUES(@image) SET @ID = CONVERT(INT, SCOPE_IDENTITY()) SELECT @ID AS [inserted] RETURN @ID END GO IF OBJECT_ID(N'KAAS_AddMatterLedgerComment', N'P') IS NOT NULL DROP PROCEDURE KAAS_AddMatterLedgerComment GO DECLARE @COMMAND VARCHAR(MAX) /******************************************************************************************************* * It is used to add a Matter Ledger Comment. * * * * Stored Procedure Name : [dbo].[KAAS_AddMatterLedgerComment] * * Copied from : [dbo].[ky_NETAddMatterLedgerComment] * * * * Modification History : * * 2019-07-17 Vinodhan K Created * *******************************************************************************************************/ IF [dbo].[ISSAM4]() = 0 BEGIN SET @COMMAND = 'CREATE PROCEDURE [dbo].[KAAS_AddMatterLedgerComment] (@MATTER VARCHAR(20), @DATE DATETIME, @REF VARCHAR(10), @COMMENT VARCHAR(100)) AS BEGIN INSERT INTO [dbo].[MatterLedger] ([MATTER], [BATCHNO], [PREF], [DATE], [REF], [NARR], [VALUED], [VALUEO], [VALUEC], [FEE], [PER], [YEAR], [ENTRYDATE], [CLIENT], [VALUECC], [VALUECD], [DEPOSITTYPE], [CURVALUED], [CURVALUEO], [CURVALUEC], [CURVALUECC], [CURVALUECD], [BILLED], [BILLINGYEAR], [BILLINGPERIOD], [BILLINGDATE], [BilledOutlayValue], [InvoiceNo], [IncludeInBill]) VALUES(@MATTER, 0, 0, @DATE, @REF, @COMMENT, 0, 0, 0, 0, 0, 0, NULL, SUBSTRING(@MATTER, 0, CHARINDEX(''/'', @MATTER)), 0, 0, '''', 0, 0, 0, 0, 0, '''', NULL, NULL, NULL, 0, 0, NULL) SELECT SCOPE_IDENTITY() END' EXEC (@COMMAND) END ELSE BEGIN SET @COMMAND = ' CREATE PROCEDURE [dbo].[KAAS_AddMatterLedgerComment] ( @MATTER VARCHAR(20), @DATE DATETIME, @REF VARCHAR(10), @COMMENT VARCHAR(100)) AS /******************************************************************************************************* * It is used to add a Matter Ledger Comment(SAM4 version). * * * * Stored Procedure Name : [dbo].[KAAS_AddMatterLedgerComment] * * Copied from : [dbo].[ky_NETAddMatterLedgerComment] * * * * Modification History : * * 2019-07-17 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @YEAR INT DECLARE @PERIOD INT SELECT @YEAR = CASE WHEN NUM.[Code] = ''CurYear'' THEN ISNULL(NUM.[NumValue], 0) ELSE @YEAR END, @PERIOD = CASE WHEN NUM.[Code] = ''CurPeriod'' THEN ISNULL(NUM.[NumValue], 0) ELSE @PERIOD END FROM [dbo].[CtrlNum] AS NUM WHERE NUM.[Code] IN (''CurYear'', ''CurPeriod'') INSERT INTO [dbo].[Transactions] ( [BatchNo], [XnType], [RecType], [LineType], [Destination], [TypeCode], [ChequeStatus], [NominalCode], [TransferCosts], [TransferFrom], [Branch], [PostRef], [ParentRef], [TransRef], [TransDate], [ClearType], [ClearDate], [WriteDownDate], [Team], [FeeEarner], [MatterCode], [Supplier], [Narrative], [EntryCurrency], [TransTotal], [DrCr], [NominalValue], [CurrencyNominal], [DebtorsValue], [DebtorsValueOS], [CurrencyDebtors], [CurrDebtorsOS], [OutlayValue], [CurrencyOutlay], [OutlayCode], [OpenInvoice], [OutlayBill], [ClientCurrent], [CurrencyCurent], [ClientDeposit], [CurrencyDeposit], [SupplierValue], [SupplierValueOS], [PostingPeriod], [PostingYear], [Payee], [NVNetValue], [CurrencyNVNet], [VNetValue], [CurrencyVNet], [VATValue], [CurrencyVAT], [VATRate], [FeesBilled], [FeesOS], [CurrFees], [CurrFeesOS], [VATonFees], [VATonFeesOS], [CurrVATonFees], [CurrVATFeesOS], [OutlayNV], [OutlayNVOS], [CurrNVOutlay], [CurrNVOlayOS], [OutlayV], [OutlayVOS], [CurrVOlay], [CurrVOlayOS], [VATonOutlay], [VATOutlayOS], [CurrVATonOlay], [CurrVATOlayOS], [MiscBilled], [MiscOS], [CurrMiscBilled], [CurrMiscOS], [VATonMisc], [VATMiscOS], [CurrVATonMisc], [CurrVATMiscOS], [VATBilled], [CurrVATBill], [ThirdParty], [EntryDate], [UpdateDate], [EnteredBy], [UpdateBy], [Requisition], [ReceiptNo], [DraftNo], [MemXnid], [Posted], [Authorised], [AuthorDate], [UserBatch], [CorrectionInd], [CorrectDate], [CorrectUser], [CorrectID], [Reconciliation], [Reconciled], [WriteOffRemainder], [AllocPending], [PreBilledOutlays], [BilledOutlay], [Seq], [ReturnPreBilled], [PreBilledV], [PreBilledNV], [OffSetOutlay], [OtherRef], [OutlayBilledDate], [EFTSent], [EFTDate], [EFTFileNumber], [EFTFileName], [EFTYorN], [ClientCode], [PayClient], [OnceOffPayment], [CaseAssCode], [RegisteredPost], [EFTEmailYorN]) SELECT 0, /* BatchNo */ ''C'', /* XnType */ ''H'', /* RecType */ ''X'', /* LineType */ ''T'', /* Destination */ ''Comment'', /* TypeCode */ '''', /* ChequeStatus */ '''', /* NominalCode */ '''', /* TransferCosts */ '''', /* TransferFrom */ '''', /* Branch */ 0, /* PostRef */ 0, /* ParentRef */ @REF, /* TransRef */ @DATE, /* TransDate */ '''', /* ClearType */ NULL, /* ClearDate */ NULL, /* WriteDownDate */ '''', /* Team */ '''', /* FeeEarner */ @MATTER, /* MatterCode */ '''', /* Supplier */ @COMMENT, /* Narrative */ '''', /* EntryCurrency */ 0, /* TransTotal */ 0, /* DrCr */ 0, /* NominalValue */ 0, /* CurrencyNominal */ 0, /* DebtorsValue */ 0, /* DebtorsValueOS */ 0, /* CurrencyDebtors */ 0, /* CurrDebtorsOS */ 0, /* OutlayValue */ 0, /* CurrencyOutlay */ '''', /* OutlayCode */ '''', /* OpenInvoice */ 0, /* OutlayBill */ 0, /* ClientCurrent */ 0, /* CurrencyCurent */ 0, /* ClientDeposit */ 0, /* CurrencyDeposit */ 0, /* SupplierValue */ 0, /* SupplierValueOS */ @PERIOD, /* PostingPeriod */ @YEAR, /* PostingYear */ '''', /* Payee */ 0, /* NVNetValue */ 0, /* CurrencyNVNet */ 0, /* VNetValue */ 0, /* CurrencyVNet */ 0, /* VATValue */ 0, /* CurrencyVAT */ '''', /* VATRate */ 0, /* FeesBilled */ 0, /* FeesOS */ 0, /* CurrFees */ 0, /* CurrFeesOS */ 0, /* VATonFees */ 0, /* VATonFeesOS */ 0, /* CurrVATonFees */ 0, /* CurrVATFeesOS */ 0, /* OutlayNV */ 0, /* OutlayNVOS */ 0, /* CurrNVOutlay */ 0, /* CurrNVOlayOS */ 0, /* OutlayV */ 0, /* OutlayVOS */ 0, /* CurrVOlay */ 0, /* CurrVOlayOS */ 0, /* VATonOutlay */ 0, /* VATOutlayOS */ 0, /* CurrVATonOlay */ 0, /* CurrVATOlayOS */ 0, /* MiscBilled */ 0, /* MiscOS */ 0, /* CurrMiscBilled */ 0, /* CurrMiscOS */ 0, /* VATonMisc */ 0, /* VATMiscOS */ 0, /* CurrVATonMisc */ 0, /* CurrVATMiscOS */ 0, /* VATBilled */ 0, /* CurrVATBill */ '''', /* ThirdParty */ NULL, /* EntryDate */ NULL, /* UpdateDate */ '''', /* EnteredBy */ '''', /* UpdateBy */ 0, /* Requisition */ 0, /* ReceiptNo */ 0, /* DraftNo */ 0, /* MemXnid */ ''Y'', /* Posted */ '''', /* Authorised */ NULL, /* AuthorDate */ 0, /* UserBatch */ ''L'', /* CorrectionInd */ NULL, /* CorrectDate */ '''', /* CorrectUser */ 0, /* CorrectID */ 0, /* Reconciliation */ '''', /* Reconciled */ '''', /* WriteOffRemainder */ 0, /* AllocPending */ '''', /* PreBilledOutlays */ 0, /* BilledOutlay */ 0, /* Seq */ '''', /* ReturnPreBilled */ 0, /* PreBilledV */ 0, /* PreBilledNV */ '''', /* OffSetOutlay */ '''', /* OtherRef */ NULL, /* OutlayBilledDate */ ''N'', /* EFTSent */ NULL, /* EFTDate */ 0, /* EFTFileNumber */ '''', /* EFTFileName */ ''N'', /* EFTYorN */ '''', /* ClientCode */ ''N'', /* PayClient */ ''N'', /* OnceOffPayment */ '''', /* CaseAssCode */ 0, /* RegisteredPost */ ''N'' /* EFTEmailYorN */ SELECT SCOPE_IDENTITY() END' EXEC (@COMMAND) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_AddNewCaseType' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_AddNewCaseType] END GO CREATE PROCEDURE [dbo].[KAAS_AddNewCaseType] (@WKTYPE VARCHAR(5), @WKCODE VARCHAR(4), @WKDESC VARCHAR(40), @WKACTION VARCHAR(15), @WKACCSRN VARCHAR(1), @WKSRNLIT VARCHAR(1), @WKSRNCON VARCHAR(1), @WKSRNPRB VARCHAR(1), @WKSRNDRC VARCHAR(1), @WKSRNGEN VARCHAR(1), @WKPATH VARCHAR(200), @Dept VARCHAR(5), @SourceMatter VARCHAR(20), @Operation VARCHAR(1), @Retired VARCHAR(1) ) AS /******************************************************************************************************* * This procedure is used to Add Action Type . * * * * Stored Procedure Name : [dbo].[KAAS_AddNewCaseType] * * Copied from : [dbo].[ky_NETAddNewCaseType] * * * * Modification History : * * 2023-06-09 Nithyanandham M Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF(@Operation='I') BEGIN IF EXISTS (SELECT 1 FROM Templates WHERE RTRIM(WKCODE)=@WKCODE) BEGIN SELECT 'This Case type already exists.' END ELSE BEGIN INSERT INTO Templates ( WKTYPE, WKCODE, WKDESC, WKACTION, WKACCSRN, WKSRNLIT, WKSRNCON, WKSRNPRB, WKSRNDRC, WKSRNGEN, WKPATH, Dept, SourceMatter,Retired) VALUES ( @WKTYPE, @WKCODE, @WKDESC, @WKACTION, @WKACCSRN, @WKSRNLIT, @WKSRNCON, @WKSRNPRB, @WKSRNDRC, @WKSRNGEN, @WKPATH, ISNULL(@Dept,''), @SourceMatter,@Retired) SELECT 'True' END END ELSE BEGIN UPDATE Templates SET --WKTYPE = @WKTYPE, WKDESC = @WKDESC, --WKACTION = @WKACTION, WKACCSRN = @WKACCSRN, WKSRNLIT = @WKSRNLIT, WKSRNCON = @WKSRNCON, WKSRNPRB = @WKSRNPRB, WKSRNDRC = @WKSRNDRC, WKSRNGEN = @WKSRNGEN, WKPATH = @WKPATH, Dept = ISNULL(@Dept,''), Retired = @Retired --SourceMatter = @SourceMatter WHERE RTRIM(WKCODE)=@WKCODE SELECT 'True' END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_AdvancedSearchFields' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_AdvancedSearchFields] END GO CREATE PROCEDURE KAAS_AdvancedSearchFields AS /******************************************************************************************************* * Fetches the Fee Earner, Department, Work Type. * * * * Stored Procedure Name : [dbo].[KAAS_AdvancedSearchFields] * * * * Modification History : * * 2019-06-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN --Fee Earner SELECT '' AS [Code], '' AS [Description], '' AS [Team] UNION select RTRIM(ISNULL(FEC.[Code], '')) AS [Code], RTRIM(ISNULL(FEC.[Name], '')) AS [Description], ISNULL((SELECT RTRIM(ISNULL(Name, '')) FROM Handlers WHERE CODE=Tea.[TEAM] and ISNULL([TEAMCODE], 'N')='Y'),'') AS [Team] from [dbo].FeeEarnerCodes FEC LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = FEC.[CODE] WHERE RTRIM(ISNULL(FEC.[CODE], '')) <> '' AND ISNULL(FEC.Retired,'N') <>'Y' --Department SELECT '' AS [Code], '' AS [Department] UNION select RTRIM(ISNULL(DPT.[CODE], '')) AS [Code], RTRIM(ISNULL(DPT.[DESC], '')) AS [Department] from [dbo].[Departments] DPT where ISNULL(DPT.[RETIRED], '') <> 'Y' --Work Type SELECT '' AS [Code], '' AS [WorkTypes] UNION select RTRIM(ISNULL(WKT.[CODE], '')) AS [Code], RTRIM(ISNULL(WKT.[DESC], '')) AS [WorkTypes] from [dbo].[WorkTypes] WKT where ISNULL(WKT.[RETIRED], '') <> 'Y' END GO IF EXISTS (SELECT TOP 1 1 FROM [sys].[objects] AS [SO] WHERE [SO].[name] = N'KAAS_AllMyBills' AND [SO].[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_AllMyBills] END GO CREATE PROCEDURE [dbo].[KAAS_AllMyBills] (@HANDLER VARCHAR(10), @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(25) = NULL, @SortDirection VARCHAR(4) = NULL, @ColumnNames VARCHAR(80) = '', @FilterValues VARCHAR(4000) = '') AS /**************************************************************************************************************** * * * List all bills for a handler (including released ones) * * SP suitable for both SAM4 and SAM3 * * 2014-12-01 PINO Added new DefaultBillLayoutReportID column * * 2015-01-09 PINO Error in code for SAM4 - missing "CASE WHEN" * * 2015-06-29 PINO Add check on FECode for SAM4 * * REWRITE * * Include option to list for ALL handlers (pass in '') * * 2015-06-30 PINO Add FECode in output * * 2015-09-14 PINO Handle 8 character USER values that came from Old Desktop * * 2016-01-21 PINO Added BG Control ID * * 2017-10-26 PINO Added [MATTER] to Cross Apply in SAM3 to ensure the query * * uses the correct Index * * 2019-11-07 Rajesh copied from ky_NETSPAllMyBills * * 2019-11-07 Rajesh Added Searching, Sorting and Pagination * * 2019-11-22 Rajesh Splited Address , Addressee field in select query actually to store matter name * * 2020-02-05 Vinodhan KEYSAAS-1512 Modified @SearchText search functionlaity as it was not performing * * 2020-02-20 Vinodhan Added custom filter options for Released and BillNo. columns * * 2020-02-21 Vinodhan Checked the NULL for @SortColumn and @SortDirection parameters * * 2020-06-19 Aakif Fix for search functionality not working on all columns (KEYSAAS-2132) * * 2022-03-22 Aakif Fix for SQL injection; Introduced strict type check and length restriction * * 2022-07-12 Revathy Added custom filter options for Draft no, open invoice, type, FE code and * * mattercode columns * * 2024-03-15 John Ginnane Refactored and changed output * ****************************************************************************************************************/ BEGIN -- adding DECLARE @COMMAND NVARCHAR(MAX) DECLARE @StartRow INT DECLARE @EndRow INT SET @PageNumber = ISNULL(@PageNumber, 0) - 1 -- 0 BASED INDEX IF @PageNumber > -1 BEGIN SET @StartRow = (@PageNumber * @PageSize) + 1 SET @EndRow = (@StartRow + @PageSize) - 1 END -- Make sure the column exists in the target database SET @COMMAND = ' IF ISNULL(@SortColumn, '''') NOT IN (SELECT [C].[COLUMN_NAME] FROM [INFORMATION_SCHEMA].[COLUMNS] AS [C] WHERE [C].[TABLE_NAME] = ''||TABLE||'') BEGIN SET @SortColumn = ''BILLDATE'' END' IF [dbo].[ISSAM4]() = 1 BEGIN SET @COMMAND = REPLACE(@COMMAND, '||TABLE||', 'Billhead') END ELSE BEGIN SET @COMMAND = REPLACE(@COMMAND, '||TABLE||', 'BillHeader') END EXEC sp_executesql @COMMAND, N'@SortColumn VARCHAR(25) OUTPUT', @SortColumn = @SortColumn OUTPUT IF ISNULL(@SortDirection, '') NOT IN ('ASC', 'DESC') BEGIN SET @SortDirection = 'DESC' END IF ISNULL(LTRIM(RTRIM(@SearchText)), '') <> '' BEGIN SET @SortColumn = 'RowNumber' SET @SortDirection = 'ASC' END DECLARE @ALL VARCHAR(100) IF @HANDLER ='ALL' BEGIN SET @HANDLER = '' END DECLARE @LOGON VARCHAR(10) SET @HANDLER = ISNULL(LTRIM(RTRIM(@HANDLER)), '') SELECT @LOGON = ISNULL(LTRIM(RTRIM([HAN].[LOGON])), '') FROM [dbo].[Handlers] AS [HAN] WHERE [HAN].[CODE] = @HANDLER IF [dbo].[ISSAM4]() = 1 BEGIN SET @COMMAND = N' DECLARE @IDs TABLE ([ID] INT) IF @HANDLER = '''' BEGIN INSERT INTO @IDs ([ID]) SELECT [BIH].[BillingID] FROM [dbo].[Billhead] AS [BIH] WHERE ISNULL(LTRIM(RTRIM([BIH].[MatterCode])), '''') <> '''' END ELSE BEGIN INSERT INTO @IDs ([ID]) SELECT [BIH].[BillingID] FROM [dbo].[Billhead] AS [BIH] WHERE [BIH].[FeCode] = @HANDLER AND ISNULL(LTRIM(RTRIM([BIH].[MatterCode])), '''') <> '''' INSERT INTO @IDs ([ID]) SELECT [BIH].[BillingID] FROM [dbo].[Billhead] AS [BIH] WHERE [BIH].[CreateBy] = @HANDLER AND [BIH].[FeCode] <> @HANDLER AND ISNULL(LTRIM(RTRIM([BIH].[MatterCode])), '''') <> '''' IF @LOGON <> '''' BEGIN INSERT INTO @IDs ([ID]) SELECT [BIH].[BillingID] FROM [dbo].[Billhead] AS [BIH] WHERE [BIH].[CreateBy] = @LOGON AND [BIH].[CreateBy] <> @HANDLER AND [BIH].[FeCode] <> @HANDLER AND ISNULL(LTRIM(RTRIM([BIH].[MatterCode])), '''') <> '''' END END SELECT IDENTITY(INT, 1,1) AS [RowNumber], * INTO #MyinvoiceTable FROM (SELECT * FROM (SELECT ISNULL(LTRIM(RTRIM([BIH].[MatterCode])), '''') AS [MatterCode], ISNULL([BIH].[BillingID], 0) AS [DraftNo], [BIH].[BillDate] AS [BillDate], LTRIM(RTRIM(COALESCE([HAN].[CODE], [HAN2].[CODE], [HAN3].[CODE], ''ADM''))) AS [User], ISNULL(LTRIM(RTRIM([BIH].[Addressee])), '''') AS [Addressee], ISNULL(LTRIM(RTRIM([BIH].[INVCR])), '''') AS [Type], CONVERT(INT, ISNULL([BIH].[InvoiceNo], 0)) AS [InvoiceNo], '''' AS [OurRef], '''' AS [YourRef], ISNULL([BID].[Net], 0) + ISNULL([BID].[VAT], 0) AS [Total], ISNULL([BID].[Fees], 0) AS [TotalFees], ISNULL([BID].[Outlay], 0) AS [TotalOutlay], ISNULL([BID].[VAT], 0) AS [TotalVAT], CASE WHEN ISNULL([BIH].[BillStatus], '''') = ''Released'' THEN 1 ELSE 0 END AS [Released], ISNULL(LTRIM(RTRIM([BIH].[Message])), '''') AS [ReturnReason], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[TransferToPay])), '''') = ''Y'' THEN 1 ELSE 0 END AS [Transfer], [BIH].[TimeWriteDownDate] AS [WriteDownDate], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[OPENINVOICE])), '''') = ''Y'' THEN 1 ELSE 0 END AS [OpenInvoice], ISNULL([BIH].[CreditInvoiceNo], 0) AS [CreditInvoiceNo], 0 AS [BillSent], [BIH].[DefaultBillLayoutReportID] AS [DefaultBillLayoutReportID], ISNULL([BIH].[FeCode], '''') AS [FECode], ISNULL(LTRIM(RTRIM([BIH].[BillDescription])), '''') AS [Description], ISNULL(LTRIM(RTRIM([BIH].[Address])), '''') AS [Address], 0 AS [Proforma], LTRIM(RTRIM(COALESCE([HAN].[CODE], [HAN2].[CODE], [HAN3].[CODE], ''ADM''))) AS [RequestedCode], LTRIM(RTRIM(COALESCE([HAN].[NAME], [HAN2].[NAME], [HAN3].[NAME], ''Admin''))) AS [RequestedBy]' SET @COMMAND = @COMMAND + ' FROM @IDs IDS INNER JOIN [dbo].[BillHead] AS [BIH] ON [BIH].[BillingID] = IDS.[ID] CROSS APPLY (SELECT CONVERT(DECIMAL(19, 2), SUM([BID].[NetValue]) AS [Net], CONVERT(DECIMAL(19, 2), SUM([BID].[VatValue]) AS [VAT], CONVERT(DECIMAL(19, 2), SUM(CASE WHEN [BID].[RecordType] IN (''F'', ''M'') THEN [BID].[NetValue] ELSE 0 END)) AS [Fees], CONVERT(DECIMAL(19, 2), SUM(CASE WHEN [BID].[RecordType] = ''O'' THEN [BID].[NetValue] ELSE 0 END)) AS [Outlay] FROM [dbo].[BillDetail] AS [BID] WHERE [BID].[BillID] = [BIH].[BillingID]) AS [BID] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN] ON [HAN].[CODE] = [BIH].[CreateBy] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN2] ON [HAN2].[LOGON] = [BIH].[CreateBy] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN3] ON SUBSTRING([HAN3].[LOGON], 1, 8) = [BIH].[CreateBy]) V ORDER BY V.[BILLDATE] DESC OFFSET 0 ROWS) AS #MyinvoiceTable' IF ISNULL(LTRIM(RTRIM(@SearchText)), '') <> '' BEGIN SET @COMMAND = @COMMAND + ' WHERE ([MatterCode] LIKE ''%' + @SearchText + '%'' OR [BillDate] LIKE ''%' + @SearchText + '%'' OR [Addressee] LIKE ''%' + @SearchText + '%'' OR [Address] LIKE ''%' + @SearchText + '%'' OR [Type] LIKE ''%' + @SearchText + '%'' OR [Total] LIKE ''%' + @SearchText + '%'' OR [DRAFTNO] LIKE ''%' + @SearchText + '%'' OR [INVOICENO] LIKE ''%' + @SearchText + '%'' OR [OpenInvoice] LIKE ''%' + @SearchText + '%'' OR [Description] LIKE ''%' + @SearchText + '%'' OR [Released] LIKE ''%' + @SearchText + '%'' ' END IF ISNULL(RTRIM(LTRIM(@SortColumn)), '') <> '' BEGIN SET @COMMAND = @COMMAND + ' ORDER BY '+ @SortColumn + ' ' + @SortDirection END SET @COMMAND = @COMMAND + ' SELECT * FROM #MyinvoiceTable res WHERE @StartRow IS NULL OR [RowNumber] BETWEEN @StartRow AND @EndRow' SET @COMMAND = @COMMAND + ' SELECT COUNT([RowNumber]) AS [TotalRecords] FROM #MyinvoiceTable' END ELSE BEGIN SET @COMMAND = N' DECLARE @ReleasedFilterCount INT = 0 DECLARE @BillNoFilterCount INT = 0 DECLARE @DraftNoFilterCount INT = 0 DECLARE @OpenInvoiceFilterCount INT = 0 DECLARE @TypeFilterCount INT = 0 DECLARE @BillValue VARCHAR(10) DECLARE @DraftValue VARCHAR(10) DECLARE @FeCodeFilterCount INT = 0 DECLARE @MatterCodeFilterCount INT = 0 IF @ColumnNames <> '''' BEGIN DECLARE @CustomFilter TABLE ( [Released] VARCHAR(2000), [BillNo] VARCHAR(2000), [DraftNo] VARCHAR(2000), [OpenInvoice] VARCHAR(2000), [Type] VARCHAR(2000), [FeCode] VARCHAR(2000), [MatterCode] VARCHAR(2000)) SELECT columnName, rownumber INTO #columntbl FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS columnName, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM (SELECT CAST('''' + REPLACE(@ColumnNames,'','','''') + '''' AS XML) AS x) t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) ColumnTbl SELECT FilterValue, rownumber INTO #FILTERVALUETBL FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM (SELECT CAST('''' + REPLACE(@FilterValues,''|'','''') + '''' AS XML) AS x) t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBL DECLARE @count INT DECLARE @lptcnt INT = 1 DECLARE @ColumnName VARCHAR(80) DECLARE @FilterValue VARCHAR(2000) SELECT @count = count(1) FROM #columntbl WHILE @lptcnt <= @count BEGIN SET @FilterValue = '''' SELECT @ColumnName = columnName FROM #columntbl WHERE rownumber = @lptcnt SELECT @FilterValue = FilterValue FROM #FILTERVALUETBL WHERE rownumber = @lptcnt IF @ColumnName = ''Released'' BEGIN INSERT INTO @CustomFilter ([Released]) VALUES (@FilterValue) END ELSE IF @ColumnName = ''BillNo'' BEGIN INSERT INTO @CustomFilter ([BillNo]) VALUES (@FilterValue) END ELSE IF @ColumnName = ''DraftNo'' BEGIN INSERT INTO @CustomFilter ([DraftNo]) VALUES (@FilterValue) END ELSE IF @ColumnName = ''OpenInvoice'' BEGIN INSERT INTO @CustomFilter ([OpenInvoice]) VALUES (@FilterValue) END ELSE IF @ColumnName = ''Type'' BEGIN INSERT INTO @CustomFilter ([Type]) VALUES (@FilterValue) END ELSE IF @ColumnName = ''FeCode'' BEGIN INSERT INTO @CustomFilter ([FeCode]) VALUES (@FilterValue) END ELSE IF @ColumnName = ''MatterCode'' BEGIN INSERT INTO @CustomFilter ([MatterCode]) VALUES (@FilterValue) END SET @lptcnt = @lptcnt + 1 END SET @ReleasedFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE ISNULL([Released], '''') <> '''') SET @BillNoFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE ISNULL([BillNo], '''') <> '''') SET @DraftNoFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE ISNULL([DraftNo], '''') <> '''') SET @OpenInvoiceFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE ISNULL([OpenInvoice], '''') <> '''') SET @TypeFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE ISNULL([Type], '''') <> '''') SET @FeCodeFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE ISNULL([FeCode], '''') <> '''') SET @MatterCodeFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE ISNULL([MatterCode], '''') <> '''') IF @DraftNoFilterCount = 0 BEGIN SET @DraftValue = 0 END ELSE BEGIN SET @DraftValue = REPLACE((SELECT [DraftNo] FROM @CustomFilter WHERE ISNULL([DraftNo], '''') <> ''''),'','','''') END IF @BillNoFilterCount IN (0, 2) BEGIN SET @BillNoFilterCount = 0 END ELSE IF @BillNoFilterCount = 1 BEGIN SET @BillValue = REPLACE((SELECT [BillNo] FROM @CustomFilter WHERE ISNULL([BillNo], '''') <> ''''),'','','''') END END DECLARE @IDs TABLE ([ID] INT) IF @HANDLER = '''' BEGIN INSERT INTO @IDs ([ID]) SELECT [BIH].[DRAFTNO] FROM [dbo].[BillHeader] AS [BIH] WHERE RTRIM(ISNULL([BIH].[MATTER], '''')) <> '''' END ELSE BEGIN INSERT INTO @IDs ([ID]) SELECT [BIH].[DRAFTNO] FROM [dbo].[BillHeader] AS [BIH] WHERE [BIH].[FeCode] = @HANDLER AND RTRIM(ISNULL([BIH].[MATTER], '''')) <> '''' INSERT INTO @IDs ([ID]) SELECT [BIH].[DRAFTNO] FROM [dbo].[BillHeader] AS [BIH] WHERE [BIH].[USER] = @HANDLER AND [BIH].[FeCode] <> @HANDLER AND RTRIM(ISNULL([BIH].[MATTER], '''')) <> '''' IF @LOGON <> '''' BEGIN INSERT INTO @IDs ([ID]) SELECT [BIH].[DRAFTNO] FROM [dbo].[BillHeader] AS [BIH] WHERE [BIH].[USER] = @LOGON AND [BIH].[USER] <> @HANDLER AND [BIH].[FeCode] <> @HANDLER AND RTRIM(ISNULL([BIH].[MATTER], '''')) <> '''' END END' SET @COMMAND = @COMMAND + ' SELECT IDENTITY(INT, 1, 1) AS [RowNumber], * INTO #MyinvoiceTable FROM (SELECT * FROM (SELECT ISNULL(LTRIM(RTRIM([BIH].[MATTER])), '''') AS [MatterCode], ISNULL([BIH].[DRAFTNO], 0) AS [DraftNo], [BIH].[Date] AS [BillDate], LTRIM(RTRIM(COALESCE([HAN].[CODE], [HAN2].[CODE], [HAN3].[CODE], ''ADM''))) AS [User], --LEFT(ISNULL(RTRIM([BIH].[ADDRESSEE]), ''''), -- CHARINDEX(CHAR(13) + CHAR(10), ISNULL(RTRIM([BIH].[ADDRESSEE]), ''''))) AS [Addressee], ISNULL(LTRIM(RTRIM([BIH].[ADDRESSEE])), '''') AS [Addressee], ISNULL(LTRIM(RTRIM([BIH].[INVCR])), '''') AS [Type], ISNULL([BIH].[BILLNO], 0) AS [InvoiceNo], ISNULL(LTRIM(RTRIM([BIH].[OURREF])), '''') AS [OurRef], ISNULL(LTRIM(RTRIM([BIH].[YOURREF])), '''') AS [YourRef], ISNULL([BID].[Net], 0) + ISNULL([BID].[VAT], 0) AS [Total], ISNULL([BID].[Fees], 0) AS [TotalFees], ISNULL([BID].[Outlay], 0) AS [TotalOutlay], ISNULL([BID].[VAT], 0) AS [TotalVAT], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[RELEASED])), '''') = ''Y'' THEN 1 ELSE 0 END AS [Released], ISNULL(LTRIM(RTRIM([BIH].[RETURNREASON])), '''') AS [ReturnReason], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[TRANSFER])), '''') = ''Y'' THEN 1 ELSE 0 END AS [Transfer], [BIH].[WRITEDOWN] AS [WriteDownDate], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[OPENINVOICE])), '''') = ''Y'' THEN 1 ELSE 0 END AS [OpenInvoice], ISNULL([BIH].[CreditInvoiceNo], 0) AS [CreditInvoiceNo], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[BillSent])), '''') = ''Y'' THEN 1 ELSE 0 END AS [BillSent], [BIH].[DefaultBillLayoutReportID] AS [DefaultBillLayoutReportID], ISNULL([BIH].[FeCode], '''') AS [FECode], RTRIM(ISNULL([BIH].[MATTERDESCRIPTION], '''')) AS [Description], 0 AS [Proforma], LTRIM(RTRIM(COALESCE([HAN].[CODE], [HAN2].[CODE], [HAN3].[CODE], ''ADM''))) AS [RequestedCode], LTRIM(RTRIM(COALESCE([HAN].[NAME], [HAN2].[NAME], [HAN3].[NAME], ''Admin''))) AS [RequestedBy]' SET @COMMAND = @COMMAND + ' FROM @IDS AS [IDS] INNER JOIN [dbo].[BillHeader] AS [BIH] ON [BIH].[DRAFTNO] = [IDS].[ID] CROSS APPLY (SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM([BID].[NET]), 0)) AS [Net], CONVERT(DECIMAL(19, 2), ISNULL(SUM([BID].[VATVALUE]), 0)) AS [VAT], CONVERT(DECIMAL(19, 2), SUM(CASE WHEN ISNULL([BID].[TYPE], '''') IN (''F'', ''M'') THEN [BID].[NET] ELSE 0 END)) AS [Fees], CONVERT(DECIMAL(19, 2), SUM(CASE WHEN ISNULL([BID].[TYPE], '''') = ''O'' THEN [BID].[NET] ELSE 0 END)) AS [Outlay] FROM [dbo].[BillDetails] AS [BID] WHERE [BID].[MATTER] = [BIH].[MATTER] AND [BID].[DRAFTNO] = [BIH].[DRAFTNO]) AS [BID] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN] ON [HAN].[CODE] = [BIH].[USER] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN2] ON [HAN2].[LOGON] = [BIH].[USER] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN3] ON SUBSTRING([HAN3].[LOGON], 1, 8) = [BIH].[USER] LEFT OUTER JOIN [dbo].[BGControl] BGC ON BGC.[DRAFTNO] = [BIH].[DRAFTNO]) AS [V] ORDER BY V.[BILLDATE] DESC OFFSET 0 Rows) AS #MyinvoiceTable' IF ISNULL(LTRIM(RTRIM(@SearchText)), '') <> '' BEGIN SET @COMMAND = @COMMAND + ' WHERE ([MatterCode] LIKE ''%' + @SearchText + '%'' OR [BillDate] LIKE ''%' + @SearchText + '%'' OR [Addressee] LIKE ''%' + @SearchText + '%'' OR [Address] LIKE ''%' + @SearchText + '%'' OR [Type] LIKE ''%' + @SearchText + '%'' OR [Total] LIKE ''%' + @SearchText + '%'' OR [Draftno] LIKE ''%' + @SearchText + '%'' OR [InvoiceNo] LIKE ''%' + @SearchText + '%'' OR [OpenInvoice] LIKE ''%' + @SearchText + '%'' OR [Description] LIKE ''%' + @SearchText + '%'' OR [Released] LIKE ''%' + @SearchText + '%'') AND ' END ELSE BEGIN SET @COMMAND = @COMMAND + ' WHERE ' END SET @COMMAND = @COMMAND + ' ((@ReleasedFilterCount = 0 OR [Released] IN (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM (SELECT CAST('''' + REPLACE((SELECT DISTINCT [Released] FROM @CustomFilter WHERE [Released] IS NOT NULL and [Released] <>''''),'','','''') + '''' AS XML) AS x) t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND (@TypeFilterCount = 0 OR [TYPE] IN (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM (SELECT CAST('''' + REPLACE((SELECT DISTINCT [TYPE] FROM @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''''),'','','''') + '''' AS XML) AS x) t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND (@OpenInvoiceFilterCount = 0 OR [OpenInvoice] IN (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM (SELECT CAST('''' + REPLACE((SELECT DISTINCT [OpenInvoice] FROM @CustomFilter WHERE [OpenInvoice] IS NOT NULL and [OpenInvoice] <>''''),'','','''') + '''' AS XML) AS x) t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND (@FeCodeFilterCount = 0 OR [FeCode] IN (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM (SELECT CAST('''' + REPLACE((SELECT DISTINCT [FeCode] FROM @CustomFilter WHERE [FeCode] IS NOT NULL and [FeCode] <>''''),'','','''') + '''' AS XML) AS x) t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND (@MatterCodeFilterCount = 0 OR [MatterCode] IN (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM (SELECT CAST('''' + REPLACE((SELECT DISTINCT [MatterCode] FROM @CustomFilter WHERE [MatterCode] IS NOT NULL and [MatterCode] <>''''),'','','''') + '''' AS XML) AS x) t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl))' SET @COMMAND = @COMMAND + ' AND (@BillNoFilterCount = 0 OR ([INVOICENO] = (CASE WHEN @BillValue = 0 then 0 END) OR [INVOICENO] > (CASE WHEN @BillValue = 1 then 0 END))) AND (@DraftNoFilterCount = 0 OR ([DRAFTNO] = (CASE WHEN @DraftValue = 0 then 0 END) OR [DRAFTNO] > (CASE WHEN @DraftValue = 1 then 0 END))))' IF ISNULL(@SortColumn, '') <> '' BEGIN SET @COMMAND = @COMMAND + ' ORDER BY ' + @SortColumn + ' ' + @SortDirection END SET @COMMAND = @COMMAND + ' SELECT * FROM #MyinvoiceTable AS [res] WHERE @StartRow IS NULL OR ([RowNumber] BETWEEN @StartRow AND @EndRow) SELECT COUNT([RowNumber]) AS [TotalRecords] FROM #myinvoiceTable' END EXEC sp_executesql @COMMAND, N'@HANDLER VARCHAR(10), @LOGON VARCHAR(10), @SearchText VARCHAR(4000), @StartRow INT, @EndRow INT, @SortColumn VARCHAR(50), @SortDirection VARCHAR(10), @ColumnNames VARCHAR(80), @FilterValues VARCHAR(4000)', @HANDLER = @HANDLER, @LOGON = @LOGON, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow, @SortColumn = @SortColumn, @SortDirection = @SortDirection, @ColumnNames = @ColumnNames, @FilterValues = @FilterValues END GO IF [dbo].[ISSAM4]() = 1 BEGIN EXEC (' IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N''KAAS_AllMyBillsSAM4'' AND SO.[type] = ''P'') BEGIN DROP PROCEDURE [dbo].[KAAS_AllMyBillsSAM4] END') DECLARE @COMMAND VARCHAR(MAX) DECLARE @COMMAND1 VARCHAR(MAX) EXEC ( ' CREATE PROCEDURE [dbo].[KAAS_AllMyBillsSAM4] (@HANDLER VARCHAR(10), @SearchText VARCHAR(4000) = '''', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(25) = NULL, @SortDirection VARCHAR(4) = NULL, @ColumnNames VARCHAR(50) = '''', @FilterValues VARCHAR(4000) = '''') AS /******************************************************************************** * * List all bills for a handler (including released ones) * SP suitable for both SAM4 and SAM3 * 2014-12-01 PINO - Added new DefaultBillLayoutReportID column * 2015-01-09 PINO - Error in code for SAM4 - missing "CASE WHEN" * 2015-06-29 PINO - Add check on FECode for SAM4 * REWRITE * - Include option to list for ALL handlers (pass in '''') * 2015-06-30 PINO - Add FECode in output * 2015-09-14 PINO - Handle 8 character USER values that came from Old Desktop * 2016-01-21 PINO - Added BG Control ID * 2017-10-26 PINO - Added [MATTER] to Cross Apply in SAM3 to ensure the query * uses the correct Index * 2018-08-22 JOHN - Made this SAM4 specific as the output is different to SAM3 * 2018-09-06 PINO - Avoid Missing Indexes in Execution Plan * 2019-05-08 PINO - Improve performance by using a smarter way to retrieve Handler information * 2020-04-02 JOHN - KEYD-6444 - Added Reference to output * 2019-11-07 Kowshik- copied from ky_NETSPAllMyBillsSAM4 * 2020-05-27 Prabhu - Altered SP as per KeyHouse Web Standard to fetch and Sorting Columns. * 2020-05-28 Prabhu - Custom Filter Applied. * 2020-06-05 Prabhu - Proforma will be N by default if it is null in DB. * 2020-06-11 Prabhu - Proforma Name updated as per receiving name statndard. * 2021-11-23 Aakif - Removed pagination after devExtreme migration * 2022-03-22 Aakif - Fix for SQL injection; Introduced strict type check and length restriction ********************************************************************************/ BEGIN DECLARE @LOGON VARCHAR(10) DECLARE @HANDLERNAME VARCHAR(30) SET @HANDLER = RTRIM(ISNULL(@HANDLER, '''')) SELECT @LOGON = RTRIM(ISNULL(HAN.[LOGON], '''')), @HANDLERNAME = RTRIM(ISNULL([HAN].[NAME], '''')) FROM [dbo].[Handlers] HAN WHERE HAN.[CODE] = @HANDLER SET @LOGON = RTRIM(ISNULL(@LOGON, '''')) DECLARE @ReleasedFilterCount INT = 0; DECLARE @BillNoFilterCount INT = 0; DECLARE @BillValue VARCHAR(10); IF @ColumnNames <> '''' BEGIN DECLARE @CustomFilter TABLE ([Released] VARCHAR(2000), [BillNo] VARCHAR(2000)) SELECT columnName,rownumber INTO #columntbl FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS columnName, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM ( SELECT CAST('''' + REPLACE(@ColumnNames,'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) ColumnTbl SELECT FilterValue,rownumber INTO #FILTERVALUETBL FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM ( SELECT CAST('''' + REPLACE(@FilterValues,''|'','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBL DECLARE @count INT DECLARE @lptcnt INT=1 DECLARE @ColumnName VARCHAR(50) DECLARE @FilterValue VARCHAR(2000) SELECT @count = count(1) FROM #columntbl; WHILE @lptcnt <= @count BEGIN SET @FilterValue ='''' SELECT @ColumnName = columnName FROM #columntbl WHERE rownumber = @lptcnt SELECT @FilterValue = FilterValue FROM #FILTERVALUETBL WHERE rownumber = @lptcnt IF(@ColumnName = ''Released'') BEGIN INSERT INTO @CustomFilter ([Released],[BillNo]) VALUES (@FilterValue,null) END ELSE IF(@ColumnName = ''Bill No.'') BEGIN INSERT INTO @CustomFilter ([Released],[BillNo]) VALUES (null,@FilterValue) END SET @lptcnt = @lptcnt + 1; END SET @ReleasedFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [Released] IS NOT NULL AND [Released] <>'''') SET @BillNoFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [BillNo] IS NOT NULL AND [BillNo] <>'''') IF (@BillNoFilterCount = 0 OR @BillNoFilterCount = 2) BEGIN SET @BillNoFilterCount = 0 END ELSE IF(@BillNoFilterCount = 1) BEGIN SET @BillValue = (SELECT [BillNo] FROM @CustomFilter WHERE [BillNo] IS NOT NULL AND [BillNo] <>'''') END END DECLARE @IDs TABLE ([ID] INT PRIMARY KEY NOT NULL, [BillDate] DATETIME, [MatterCode] VARCHAR(20) NOT NULL, [RequestedBy] VARCHAR(10) NULL, [RequestedName] VARCHAR(30) NULL, UNIQUE NONCLUSTERED ([BillDate], [ID]), UNIQUE NONCLUSTERED ([MatterCode], [ID]), UNIQUE NONCLUSTERED ([RequestedBy], [ID])) IF @HANDLER = '''' BEGIN INSERT INTO @IDs ([ID], [BillDate], [MatterCode]) SELECT [BH].[BillingID], [BH].[BillDate], [BH].[MatterCode] FROM [dbo].[billhead] [BH] END ELSE BEGIN INSERT INTO @IDs ([ID], [BillDate], [MatterCode]) SELECT [BH].[BillingID], [BH].[BillDate], [BH].[MatterCode] FROM [dbo].[billhead] [BH] WITH (INDEX ([IDX_FEDate])) WHERE [BH].[FeCode] = @HANDLER INSERT INTO @IDs ([ID], [BillDate], [MatterCode]) SELECT [BH].[BillingID], [BH].[BillDate], [BH].[MatterCode] FROM [dbo].[billhead] [BH] WITH (INDEX ([IDX_CBDate])) LEFT OUTER JOIN @IDs [ID] ON [ID].[ID] = [BH].[BillingID] WHERE [BH].[CreateBy] IN (@HANDLER, @LOGON) AND [ID].[ID] IS NULL END DELETE [ID] FROM @IDs [ID] WHERE [ID].[MatterCode] = '''' UPDATE [ID] SET [ID].[RequestedBy] = [HAN].[CODE], [ID].[RequestedName] = [HAN].[NAME] FROM @IDs [ID] INNER JOIN [dbo].[billhead] [BH] INNER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [BH].[CreateBy] ON [BH].[BillingID] = [ID].[ID] WHERE [ID].[RequestedBy] IS NULL UPDATE [ID] SET [ID].[RequestedBy] = [HAN].[CODE], [ID].[RequestedName] = [HAN].[NAME] FROM @IDs [ID] INNER JOIN [dbo].[billhead] [BH] INNER JOIN [dbo].[Handlers] [HAN] ON [HAN].[LOGON] = [BH].[CreateBy] ON [BH].[BillingID] = [ID].[ID] WHERE [ID].[RequestedBy] IS NULL UPDATE [ID] SET [ID].[RequestedBy] = [HAN].[CODE], [ID].[RequestedName] = [HAN].[NAME] FROM @IDs [ID] INNER JOIN [dbo].[billhead] [BH] INNER JOIN [dbo].[Handlers] [HAN] ON [HAN].[LOGON] LIKE [BH].[CreateBy] + ''%'' ON [BH].[BillingID] = [ID].[ID] WHERE [ID].[RequestedBy] IS NULL SELECT *, COUNT(1) over() as TotalRecords INTO #MyinvoiceTable FROM ( SELECT RTRIM(ISNULL(BH.[MATTERCODE], '''')) AS [MATTER], RTRIM(ISNULL(BH.[ADDRESSEE], '''')) AS [Addressee], RTRIM(ISNULL(BH.[Message], '''')) AS [MESSAGE], RTRIM(ISNULL(BH.[TYPE], '''')) AS [TYPE], ISNULL(BH.[BillingID], 0) AS [DRAFTNO], ISNULL(BH.[InvoiceNo], 0) AS [INVOICENO], BH.[BillDate] AS [BILLDATE], [IDS].[RequestedBy] AS [Requested Code], [IDS].[RequestedName] AS [Requested By], BH.[FeCode] AS [FeCode], BH.[TimeWriteDownDate] AS [WriteDown], RTRIM(ISNULL(BH.[BillDescription], '''')) AS [Description], CASE WHEN RTRIM(ISNULL(BH.[TransferToPay], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [TransferToPay], CASE WHEN RTRIM(ISNULL(BH.[OpenInvoice], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [OpenInvoice], CASE WHEN RTRIM(ISNULL(BH.[BillStatus], ''Draft'')) = ''Draft'' THEN ''N'' ELSE ''Y'' END AS [Released], ISNULL(BH.[CreditInvoiceNo], 0) AS [CreditInvoiceNo], RTRIM(ISNULL(BH.[ProForma], ''N'')) AS [Proforma], ISNULL(BH.[DefaultBillLayoutReportID], 0) AS [DefaultBillLayoutReportID], DTL.[TOTALNET], DTL.[TOTALVAT], DTL.[TOTAL], RTRIM(ISNULL(BH.[ADDRESS], '''')) AS [ADDRESS], RTRIM(ISNULL(BH.[Branch], '''')) AS [Branch], ISNULL(RTRIM(LTRIM([BH].[Ref])), '''') AS [Reference], IDS.ID FROM @IDs IDS INNER JOIN [dbo].[BillHead] BH ON BH.[BillingID] = IDS.[ID] CROSS APPLY (SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(BD.[NETVALUE], 0)), 0)) AS [TOTALNET], CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0)) AS [TOTALVAT], CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(BD.[NETVALUE], 0) + ISNULL(BD.[VATVALUE], 0)), 0)) AS [TOTAL] FROM [dbo].[BillDetail] BD WHERE BD.[BillID] = BH.[BillingID]) DTL )InvoiceTable WHERE ([MATTER] LIKE ''%'' + @SearchText + ''%'' OR [BILLDATE] LIKE ''%'' + @SearchText + ''%'' OR [ADDRESSEE] LIKE ''%'' + @SearchText + ''%'' OR [ADDRESS] LIKE ''%'' + @SearchText + ''%'' OR [TYPE] LIKE ''%'' + @SearchText + ''%'' OR [TOTAL] LIKE ''%'' + @SearchText + ''%'' OR [DRAFTNO] LIKE ''%'' + @SearchText + ''%'' OR [INVOICENO] LIKE ''%'' + @SearchText + ''%'' OR [OpenInvoice] LIKE ''%'' + @SearchText + ''%'' OR [Description] LIKE ''%'' + @SearchText + ''%'' OR [Released] LIKE ''%'' + @SearchText + ''%'' ) AND ((@ReleasedFilterCount = 0 OR [Released] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [Released] FROM @CustomFilter WHERE [Released] IS NOT NULL and [Released] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND ( @BillNoFilterCount = 0 OR ( [INVOICENO] = (CASE WHEN @BillValue = 0 then 0 END ) OR [INVOICENO] > (CASE WHEN @BillValue = -1 then 0 END )) ) ) ORDER BY CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn !='''' THEN CASE @SortColumn WHEN ''MATTER'' THEN [MATTER] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''MATTER'' THEN [MATTER] END END DESC, CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''BILLDATE'' THEN [BILLDATE] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''BILLDATE'' THEN [BILLDATE] END END DESC, CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''ADDRESSEE'' THEN [Addressee] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''ADDRESSEE'' THEN [Addressee] END END DESC, CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''ADDRESS'' THEN [ADDRESS] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''ADDRESS'' THEN [ADDRESS] END END DESC, CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''TYPE'' THEN [TYPE] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''TYPE'' THEN [TYPE] END END DESC, CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''TOTAL'' THEN [TOTAL] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''TOTAL'' THEN [TOTAL] END END DESC, CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''DRAFTNO'' THEN [DRAFTNO] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''DRAFTNO'' THEN [DRAFTNO] END END DESC, CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''INVOICENO'' THEN [INVOICENO] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''INVOICENO'' THEN [INVOICENO] END END DESC, CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''OpenInvoice'' THEN [OpenInvoice] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''OpenInvoice'' THEN [OpenInvoice] END END DESC , CASE WHEN UPPER(@SortDirection) = ''ASC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''Released'' THEN [Released] END END, CASE WHEN UPPER(@SortDirection) = ''DESC'' AND @SortColumn!='''' THEN CASE @SortColumn WHEN ''Released'' THEN [Released] END END DESC, [BillDate] DESC, [ID] DESC SELECT * FROM #MyinvoiceTable IF EXISTS(SELECT TOP 1 TotalRecords FROM #MyinvoiceTable) BEGIN SELECT Top 1 TotalRecords From #MyinvoiceTable END ELSE BEGIN SELECT 0 AS TotalRecords END END' ) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ApplySecuirtyGroupSettingsToAllMatters' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ApplySecuirtyGroupSettingsToAllMatters] END GO CREATE PROCEDURE [dbo].[KAAS_ApplySecuirtyGroupSettingsToAllMatters] (@MatterCode VARCHAR(20)) AS /******************************************************************************************************* * Gets the client that belongs to the matter that was passed in,and then applies its * * ContactNetPrivileges to all the matters for that client. * * * * Stored Procedure Name : [dbo].[KAAS_ApplySecuirtyGroupSettingsToAllMatters] * * Copied from : [dbo].[ky_NETApplySecuirtyGroupSettingsToAllMatters] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ContactCode VARCHAR(10) DECLARE @BitWiseID BIGINT SELECT TOP 1 @ContactCode = [MAT].[ClientCode] FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @MatterCode IF NOT @ContactCode IS NULL BEGIN SELECT TOP 1 @BitWiseID = [CNP].[Previleges] FROM [dbo].[ContactNetPrivileges] [CNP] WHERE [CNP].[ContactCode] = @ContactCode SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0)) IF @BitWiseID = 0 BEGIN DELETE [MNP] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[MatterNETPrivileges] [MNP] ON [MNP].[MATTER] = [MAT].[Code] WHERE [MAT].[ClientCode] = @ContactCode END ELSE BEGIN INSERT INTO [dbo].[MatterNETPrivileges] ([MATTER], [Privileges]) SELECT [MAT].[Code], @BitWiseID FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[MatterNETPrivileges] [MNP] ON [MNP].[MATTER] = [MAT].[Code] WHERE [MAT].[ClientCode] = @ContactCode AND [MNP].[MATTER] IS NULL UPDATE [MNP] SET [MNP].[Privileges] = @BitWiseID FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[MatterNETPrivileges] [MNP] ON [MNP].[MATTER] = [MAT].[Code] WHERE [MAT].[ClientCode] = @ContactCode END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_AssignTemplateAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_AssignTemplateAction] END GO CREATE PROCEDURE [dbo].[KAAS_AssignTemplateAction] @WKCODE VARCHAR(4), @ACTIONCODE VARCHAR(15) AS /******************************************************************************************************* * This procedure is used to Add Action Type . * * * * Stored Procedure Name : [dbo].[KAAS_AssignTemplateAction] * * Copied from : [dbo].[Ky_NetAssignTemplateAction] * * * * Modification History : * * 2023-06-09 Nithyanandham M Created * *******************************************************************************************************/ BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM ActionWorkTypes WHERE WorkType=@WKCODE AND ACTIONCODE=@ACTIONCODE) BEGIN DECLARE @ActionWorkType as INT ;WITH T AS (SELECT SEQ, Row_number() OVER (ORDER BY SEQ) AS RN FROM ActionWorkTypes WHERE WORKTYPE = @WKCODE) UPDATE T SET SEQ = RN SET @ActionWorkType = (SELECT ISNULL(MAX(SEQ)+1,1) FROM ActionWorkTypes WHERE WORKTYPE=@WKCODE) INSERT INTO ActionWorkTypes ( WORKTYPE ,ACTIONCODE ,SEQ ) VALUES ( @WKCODE ,@ACTIONCODE ,@ActionWorkType ) END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BanksForChequeRequest' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BanksForChequeRequest] END GO CREATE PROCEDURE [dbo].[KAAS_BanksForChequeRequest] (@MATTER VARCHAR(20), @ClientOrOutlay VARCHAR(1), @ORIGINALCODE VARCHAR(10)) AS /************************************************************************************************* * * List all banks for the Cheque Request functionality * SP suitable for both SAM4 and SAM3 * * Stored Proceudre name : KAAS_BanksForChequeRequest * Copied From : ky_NETSPBanksForChequeRequest * * @ClientOrOutlay = C - FROM Client A/c * @ClientOrOutlay = O - FROM Outlay A/c * * Modification history: * 2015-03-27 Pino - Allow for an original code that used to be allowable as * a bank Nominal code, but no longer is. Add ValidBank * column to ensure that on changes to such a cheque, the * user must change the bank. * 2015-12-08 Arun - Have changed column alias name from Code to NominalCode * 2017-06-12 Pino - Added original [Code] column back in for backward compatibility * Kept Arun's new column for forward compatibility * 2019-08-06 Vinodhan - Created KAAS_BanksForChequeRequest * *************************************************************************************************/ BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @ORIGINALCODE = RTRIM(ISNULL(@ORIGINALCODE, '')) IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'NominalCode' WHERE SO.[name] = 'Nominal' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' SELECT RTRIM(ISNULL(NCD.[NominalCode], '''')) As [NominalCode], RTRIM(ISNULL(NCD.[NominalCode], '''')) As [Code], RTRIM(ISNULL(NCD.[AccountName], '''')) AS [Description], CASE WHEN RTRIM(ISNULL(NCD.[Client], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [ClientAccount], CASE WHEN RTRIM(ISNULL(NCD.[Deposit], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [DepositAccount], '''' AS [DepositType], '''' AS [Sequence], RTRIM(ISNULL(NCD.[PorB], '''')) AS [PorB], '''' AS [NominalTypeCode], '''' AS [NominalType], CONVERT(BIT, 1) AS [ValidBank] FROM [dbo].[matters] MAT INNER JOIN [dbo].[Nominal] NCD ON ( ''' + @ClientOrOutlay + ''' = ''C'' AND NCD.[NominalCode] = MAT.[ClientBankAC]) OR ( ''' + @ClientOrOutlay + ''' = ''O'' AND NCD.[NominalCode] = MAT.[OfficeBankAC]) OR (''' + @ClientOrOutlay + ''' NOT IN (''C'', ''O'')) WHERE MAT.[code] = ''' + RTRIM(ISNULL(@MATTER, '')) + '''' END ELSE BEGIN SET @COMMAND = ' SELECT RTRIM(ISNULL(NCD.[CODE], '''')) As [NominalCode], RTRIM(ISNULL(NCD.[CODE], '''')) As [Code], RTRIM(ISNULL(NCD.[DESC], '''')) AS [Description], CASE WHEN RTRIM(ISNULL(NCD.[CLIENTAC], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [ClientAccount], CASE WHEN RTRIM(ISNULL(NCD.[DEPOSITYN], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [DepositAccount], RTRIM(ISNULL(NCD.[DEPOSITTYPE], '''')) AS [DepositType], RTRIM(ISNULL(NCD.[SEQ], '''')) AS [Sequence], RTRIM(ISNULL(NCD.[PB], '''')) AS [PorB], RTRIM(ISNULL(NCD.[TYPE], '''')) AS [NominalTypeCode], RTRIM(ISNULL(NT.[NTYDESC], '''')) AS [NominalType], CASE RTRIM(ISNULL(NCD.[ChequeReq], ''N'')) WHEN ''Y'' THEN CONVERT(BIT, 1) ELSE CONVERT(BIT, 0) END AS [ValidBank] FROM [dbo].[Nominal] NCD LEFT OUTER JOIN [dbo].[NominalTypes] NT ON NT.[NTYCODE] = NCD.[TYPE] WHERE RTRIM(ISNULL(NCD.[ChequeReq], ''N'')) = ''Y'' OR NCD.[CODE] = ''' + REPLACE(@ORIGINALCODE, '''', '''''') + ''' ORDER BY RTRIM(ISNULL(NCD.[DESC], ''''))' END EXEC (@COMMAND) END GO IF [dbo].[IsSAM4]() = 1 BEGIN SET NOEXEC ON END IF OBJECT_ID(N'KAAS_BGAddToInvoice', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_BGAddToInvoice] END GO CREATE PROCEDURE [dbo].[KAAS_BGAddToInvoice] (@DraftNo int) AS /*************************************************************************** * * KAAS_BGAddToInvoice * * 2021-05-12 John Ginnane Added to repo * 2024-03-26 Pino Carafa Added to KAAS * ***************************************************************************/ BEGIN DECLARE @LINENO smallint DECLARE @TOTVALUE decimal(11, 2) --FOR Bill Header totals and VAT Rates DECLARE @VATCODE char(1) DECLARE @VATENTRY int DECLARE @RATE1 decimal(17, 2) DECLARE @NETRATE1 decimal(17, 2) DECLARE @VATRATE1 decimal(17, 2) DECLARE @RATE2 decimal(17, 2) DECLARE @NETRATE2 decimal(17, 2) DECLARE @VATRATE2 decimal(17, 2) SELECT @LINENO = IsNull(Max([LINENO]), 0) FROM [dbo].[BillDetails] WHERE [DRAFTNO] = @DraftNo DECLARE @linestoadd TABLE ([LINENO] INT identity(1, 1), [MATTER] VARCHAR(20), [DRAFTNO] int, [BILLNO] int, [TYPE] VARCHAR(1), [FEEEARNER] VARCHAR(10), [NOMINAL] VARCHAR(10), [NARRATIVE] VARCHAR(6999), [NET] DECIMAL(13, 2), [VATCODE] VARCHAR(1), [VATRATE] DECIMAL(5, 2), [VATVALUE] DECIMAL(13, 2)) INSERT INTO @linestoadd ([MATTER], [DRAFTNO], [BILLNO], [TYPE], [FEEEARNER], [NOMINAL], [NARRATIVE], [NET], [VATCODE], [VATRATE], [VATVALUE]) SELECT MAT.[Code] As [MATTER], BGC.[DraftNo] As [DRAFTNO], BIH.[BILLNO] As [BILLNO], SUMM.[Type] As [TYPE], IsNull(SUMM.[FEEEARN], MAT.[FECODE]) As [FEEEARNER], CASE WHEN SUMM.[Type] = 'F' THEN IsNull(FEC.[NOMINAL], '') ELSE CON.[Outlay] END As [NOMINAL], convert(varchar(6999), BGG.[Narrative]) As [NARRATIVE], Convert(decimal(13, 2), SUMM.[BillNow]) As [NET], CASE WHEN SUMM.[Type] = 'F' THEN CON.[DEFAULTVAT] ELSE CON.[VATEXCLUDE] END As [VATCODE], IsNull(VAC.[RATE], 0) As [VATRATE], convert(decimal(13, 2), Round( SUMM.[BillNow] * ( IsNull(VAC.[RATE], 0) / 100), 2)) As [VATVALUE] FROM ( SELECT BGCSUMM.[ID] As [BGControlID], BGGSUMM.[ID], BGGSUMM.[SeqNo], CASE WHEN COUNT(DISTINCT BGDSUMM.[Type]) = 1 THEN ISNULL(MAX(BGDSUMM.[Type]), '') ELSE convert(varchar, NULL) END AS [Type], CASE WHEN COUNT(DISTINCT BGDSUMM.[MATTER]) = 1 THEN ISNULL(MAX(BGDSUMM.[MATTER]), '') ELSE convert(varchar(17), NULL) END AS [MATTER], CASE WHEN COUNT(DISTINCT BGDSUMM.[FEEEARN]) = 1 THEN ISNULL(MAX(BGDSUMM.[FEEEARN]), '') ELSE convert(varchar(5), NULL) END AS [FEEEARN], SUM(ISNULL(BGDSUMM.[BillNow], 0)) AS [BillNow], CASE WHEN ISNULL(MIN(BGDSUMM.[IncludeInBill]), 1) <> 2 THEN 1 ELSE 2 END AS [IncludeInBill], COUNT(1) AS [NumberOfDetailItems] FROM [dbo].[BGControl] BGCSUMM INNER JOIN [dbo].[BGGroups] BGGSUMM INNER JOIN [dbo].[BGDetail] BGDSUMM ON BGDSUMM.[BGGroupID] = BGGSUMM.[ID] ON BGGSUMM.[BGControlID] = BGCSUMM.[ID] WHERE BGCSUMM.[DraftNo] = @DraftNo GROUP BY BGCSUMM.[ID], BGGSUMM.[SeqNo], BGGSUMM.[ID]) SUMM INNER JOIN [dbo].[BGControl] BGC ON BGC.[ID] = SUMM.[BGControlID] INNER JOIN [dbo].[BGGroups] BGG ON BGG.[ID] = SUMM.[ID] INNER JOIN [dbo].[BillHeader] BIH ON BIH.[DRAFTNO] = BGC.[DraftNo] -- -- If multiple matters are linked to this line, use the Composite Billing Matter INNER JOIN [dbo].[Matters] MAT ON MAT.[Code] = BGC.[Matter] -- -- If multiple Fee Earners are linked to this line, use the Matter's Fee Earner Code LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC ON FEC.[Code] = IsNull(SUMM.[FEEEARN], MAT.[FECODE]) -- CROSS JOIN [dbo].[Control] CON -- -- Vat Rate depending on whether it's a Fee or an Outlay LEFT OUTER JOIN [dbo].[vatcodes] VAC ON VAC.[CODE] = CASE WHEN SUMM.[Type] = 'F' THEN CON.[DEFAULTVAT] ELSE CON.[VATEXCLUDE] END WHERE SUMM.[BillNow] <> 0 ORDER BY CASE WHEN SUMM.[Type] = 'F' THEN 1 ELSE 2 END, SUMM.[SeqNo] INSERT INTO [dbo].[BillDetails] ([Matter], [DRAFTNO], [BILLNO], [TYPE], [FEEEARNER], [NOMINAL], [NARRATIVE], [NET], [VATCODE], [VATRATE], [VATVALUE], [LINENO]) select LTA.[MATTER], LTA.[DRAFTNO], LTA.[BILLNO], LTA.[TYPE], LTA.[FEEEARNER], LTA.[NOMINAL], LTA.[NARRATIVE], LTA.[NET], LTA.[VATCODE], LTA.[VATRATE], LTA.[VATVALUE], @LINENO + LTA.[LINENO] from @linestoadd LTA UPDATE BFB SET BFB.[VALUE] = BFB.[VALUE] + NBFB.[VALUE], BFB.[VATAMT] = BFB.[VATAMT] + NBFB.[VATAMT] FROM [dbo].[BillFeeBreakDown] BFB INNER JOIN ky_BGNewBillFeeBreakdown(@DraftNo) NBFB ON NBFB.[FECODE] = BFB.[FECODE] WHERE BFB.[DRAFTNO] = @DraftNo INSERT INTO [dbo].[BillFeeBreakdown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT]) SELECT NBFB.[MATTER], NBFB.[DRAFTNO], NBFB.[BILLNO], NBFB.[FECODE], NBFB.[TYPE], NBFB.[PERCENT], NBFB.[CALCULATION], NBFB.[VALUE], NBFB.[VATCODE], NBFB.[VATAMT] FROM ky_BGNewBillFeeBreakdown(@DraftNo) NBFB LEFT OUTER JOIN [dbo].[BillFeeBreakdown] BFB ON BFB.[DRAFTNO] = NBFB.[DRAFTNO] AND BFB.[FECODE] = NBFB.[FECODE] WHERE BFB.[RECORDID] IS NULL select @TOTVALUE = IsNull(SUM(BFB.[VALUE]), 0) from [dbo].[BILLFEeBREAKDOWN] BFB where BFB.[DRAFTNO] = @DraftNo IF (@TOTVALUE = 0) BEGIN UPDATE [dbo].[BILLFeeBreakdown] SET [PERCENT] = 0, [CALCULATION] = 0 WHERE [DRAFTNO] = @DraftNo END ELSE BEGIN UPDATE [dbo].[BILLFeeBreakdown] SET [PERCENT] = convert(decimal(5, 2), Round(100 * ([VALUE] / @TOTVALUE), 2)), [CALCULATION] = convert(decimal(9, 5), Round(100 * ([VALUE] / @TOTVALUE), 5)) WHERE [DRAFTNO] = @DraftNo END --Calculate the Bill Header totals and VAT Rates 1 and 2 SET @VATENTRY = 0 SET @RATE1 = 0 SET @NETRATE1 = 0 SET @VATRATE1 = 0 SET @RATE2 = 0 SET @NETRATE2 = 0 SET @VATRATE2 = 0 SELECT @VATCODE = [DEFAULTVAT] FROM [dbo].[Control] DECLARE @VATs TABLE ([VATENTRY] int identity(1, 1), [RATE] decimal(17, 2)) -- This should really only return a maximum of two rows, but just in case -- it doesn't, we'll order them from highest VAT Rate down. INSERT INTO @VATs ([RATE]) select DISTINCT BID.[VATRATE] from [dbo].[BillHeader] BIH inner join [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] AND BID.[TYPE] = 'F' where BIH.[DRAFTNO] = @DRAFTNO ORDER BY BID.VATRATE DESC IF EXISTS (SELECT * FROM @VATs WHERE [VATENTRY] = 1) BEGIN select @RATE1 = [RATE] from @VATs WHERE [VATENTRY] = 1 select @NETRATE1 = SUM(BID.[NET]) from [dbo].[BillHeader] BIH inner join [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] AND BID.[TYPE] = 'F' where BIH.[DRAFTNO] = @DRAFTNO and BID.[VATRATE] = @RATE1 SET @VATRATE1 = Round(((@NETRATE1 * @RATE1) / 100), 2) END IF EXISTS (SELECT * FROM @VATs WHERE [VATENTRY] = 2) BEGIN select @RATE2 = [RATE] from @VATs WHERE [VATENTRY] = 2 select @NETRATE2 = SUM(BID.[NET]) from [dbo].[BillHeader] BIH inner join [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] AND BID.[TYPE] = 'F' where BIH.[DRAFTNO] = @DRAFTNO and BID.[VATRATE] = @RATE2 SET @VATRATE2 = Round(((@NETRATE2 * @RATE2) / 100), 2) END UPDATE BIH SET BIH.[TOTAL] = BIHU.[TOTAL], BIH.[FEES] = BIHU.[FEES], BIH.[OUTLAY] = BIHU.[OUTLAY], BIH.[TOTALVAT] = BIHU.[TOTALVAT], BIH.[RATE1] = BIHU.[RATE1], BIH.[NETRATE1] = BIHU.[NETRATE1], BIH.[VATRATE1] = BIHU.[VATRATE1], BIH.[RATE2] = BIHU.[RATE2], BIH.[NETRATE2] = BIHU.[NETRATE2], BIH.[VATRATE2] = BIHU.[VATRATE2], BIH.[FEEVATCODE] = @VATCODE FROM ( select BIHO.[DRAFTNO], @VATCODE AS [VATCODE], @RATE1 AS [RATE1], @NETRATE1 AS [NETRATE1], @VATRATE1 AS [VATRATE1], @RATE2 AS [RATE2], @NETRATE2 AS [NETRATE2], @VATRATE2 AS [VATRATE2], SUM(IsNull(BID.[NET], 0) + ((IsNull(BID.[NET], 0) * IsNull(BID.[VATRATE], 0)) / 100)) AS [TOTAL], SUM(((IsNull(BID.[NET], 0) * IsNull(BID.[VATRATE], 0)) / 100)) AS [TOTALVAT], SUM(CASE WHEN BID.[TYPE] = 'F' THEN IsNull(BID.[NET], 0) ELSE 0 END) AS [FEES], SUM(CASE WHEN BID.[TYPE] = 'O' THEN IsNull(BID.[NET], 0) ELSE 0 END) AS [OUTLAY] from [dbo].[BillHeader] BIHO inner join [dbo].[BillDetails] BID ON BID.[DraftNo] = BIHO.[DraftNo] WHERE BIHO.[DRAFTNO] = @DraftNo GROUP BY BIHO.[DRAFTNO]) BIHU INNER JOIN [dbo].[BillHeader] BIH ON BIH.[DRAFTNO] = BIHU.[DRAFTNO] END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGClearOrphanedGuide' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGClearOrphanedGuide] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_BGClearOrphanedGuide] (@draftno int) AS /****************************************************************** * KAAS_BGClearOrphanedGuide * This procedure is used to clear out any billing guides if the * original bill request no longer exists * * Modification History: * 2021-04-20 John Ginnane Added to repo * 2024-03-26 Pino Carafa Added to KAAS * ******************************************************************/ BEGIN DELETE [BGD] FROM [dbo].[BGControl] [BGC] INNER JOIN [dbo].[BGDetail] [BGD] ON [BGD].[BGControlID] = [BGC].[ID] LEFT OUTER JOIN [dbo].[billheader] [BIH] ON [BIH].[draftno] = [BGC].[draftno] AND [BIH].[matter] = [BGC].[matter] WHERE [BGC].[draftno] = @draftno AND [BIH].[draftno] is null DELETE [BGG] FROM [dbo].[BGControl] [BGC] INNER JOIN [dbo].[BGGroups] [BGG] ON [BGG].[BGControlID] = [BGC].[ID] LEFT OUTER JOIN [dbo].[billheader] [BIH] ON [BIH].[draftno] = [BGC].[draftno] AND [BIH].[matter] = [BGC].[matter] WHERE [BGC].[draftno] = @draftno AND [BIH].[draftno] is null DELETE [BGC] FROM [dbo].[BGControl] [BGC] LEFT OUTER JOIN [dbo].[billheader] [BIH] ON [BIH].[draftno] = [BGC].[draftno] AND [BIH].[matter] = [BGC].[matter] WHERE [BGC].[draftno] = @draftno AND [BIH].[draftno] is null END GO SET NOEXEC OFF GO IF [dbo].[ISSAM4]() = 0 BEGIN EXEC (' IF OBJECT_ID(N''KAAS_BGDelete'',N''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_BGDelete] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_BGDelete] (@DraftNo int, @BatchNo int) AS /***************************************************************************** * * * Deletes a the billing guide for specified bill * * SP only suitable for SAM3 * * * * Stored Procedure name : KAAS_BGDelete * * Copied From : ky_BGDelete * * * * ????-??-?? ???? Created * * 2018-08-23 John Ginnane Added to SVN * * 2020-05-02 Vinodhan Created KAAS_BGDelete * * * * Modification History : * * 2020-03-13 Rajesh P from ky_BGDelete * *****************************************************************************/ BEGIN DELETE [BGD] from [dbo].[BGControl] [BGC] INNER JOIN [dbo].[BGGroups] [BGG] INNER JOIN [dbo].[BGDetail] [BGD] ON [BGD].[BGGroupID] = [BGG].[ID] ON [BGG].[BGControlID] = [BGC].[Id] WHERE ( (IsNull(@DraftNo, 0) <> 0) AND ([BGC].[DraftNo] = IsNull(@DraftNo, 0))) OR ( (IsNull(@DraftNo, 0) = 0) AND (IsNull(@BatchNo, 0) <> 0) AND ([BGC].[BatchNo] = @BatchNo)) DELETE [BGG] from [dbo].[BGControl] [BGC] INNER JOIN [dbo].[BGGroups] [BGG] ON [BGG].[BGControlID] = [BGC].[Id] WHERE ( (IsNull(@DraftNo, 0) <> 0) AND ([BGC].[DraftNo] = IsNull(@DraftNo, 0))) OR ( (IsNull(@DraftNo, 0) = 0) AND (IsNull(@BatchNo, 0) <> 0) AND ([BGC].[BatchNo] = @BatchNo)) DELETE [BGC] from [dbo].[BGControl] [BGC] WHERE ( (IsNull(@DraftNo, 0) <> 0) AND ([BGC].[DraftNo] = IsNull(@DraftNo, 0))) OR ( (IsNull(@DraftNo, 0) = 0) AND (IsNull(@BatchNo, 0) <> 0) AND ([BGC].[BatchNo] = @BatchNo)) END') END ELSE BEGIN EXEC (' IF OBJECT_ID(N''KAAS_BGDelete'',N''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_BGDelete] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_BGDelete] (@DraftNo INT) AS /***************************************************************************** * * ky_BGDeleteSAM4 * * Deletes a the billing guide for specified bill * SP only suitable for SAM4 * * 2018-08-23 John Ginnane Created * * Modification History : * * 2020-03-13 Rajesh P from ky_BGDeleteSAM4 *****************************************************************************/ BEGIN DELETE [BGF] FROM [dbo].[BillingGuideFormated] AS [BGF] WHERE [BGF].[BillGuideNo] = @DraftNo DELETE [BCM] FROM [dbo].[BillCompMatter] AS [BCM] WHERE [BCM].[BillingNo] = @DraftNo DELETE [BG] FROM [dbo].[BillingGuide] AS [BG] WHERE [BG].[BillingNo] = @DraftNo END') END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGGetControl' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGGetControl] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_BGGetControl] (@DraftNo int) AS /****************************************************************** * KAAS_BGGetControl * Returns the BGControl record for the specified draft number * * Modification History: * 2021-04-20 John Ginnane Created ky_NETGetBillingGuideControl * 2024-04-03 Pino Carafa Imported into KAAS * ******************************************************************/ BEGIN SELECT ISNULL([BGC].[ID], 0) AS [ID], [BGC].[Date], [BGC].[TDate], [BGC].[ODate], ISNULL([BGC].[Description], '') AS [Description], [BH].[DRAFTNO], ISNULL([BGC].[BATCHNO], 0) AS [BATCHNO], ISNULL([BGC].[ADDRESSEE], '') AS [ADDRESSEE], ISNULL([BGC].[OURREF], '') AS [OURREF], ISNULL([BGC].[YOURREF], '') AS [YOURREF], [MAT].[CODE] AS [MATTER], ISNULL([BGC].[IsAdhoc], 0) AS [IsAdhoc], ISNULL(CONVERT(DECIMAL(19, 2), [BGC].[OAmount]), 0) AS [OAmount], ISNULL(CONVERT(DECIMAL(19, 2), [BGC].[TAmount]), 0) AS [TAmount], ISNULL([MAT].[Description], '') AS [MatterDescription], ISNULL([CNT].[Name], '') AS [ClientName] FROM [dbo].[BillHeader] AS [BH] LEFT OUTER JOIN [dbo].[BGControl] AS [BGC] ON [BH].[DRAFTNO] = [BGC].[DRAFTNO] INNER JOIN [dbo].[matters] AS [MAT] ON [MAT].[Code] = [BH].[MATTER] INNER JOIN [dbo].[Contacts] AS [CNT] ON [CNT].[Code] = [MAT].[ClientCode] WHERE [BH].[DRAFTNO] = @DraftNo END GO SET NOEXEC OFF GO --Consistency Improvement, rename all BG procedures KAAS_BG... rather than having the BG suffix at the end --So remove the copy with the old name IF OBJECT_ID(N'KAAS_GroupGroupNARRBG', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GroupGroupNarrBG] END GO IF OBJECT_ID(N'KAAS_BGGroupGroupNARR', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_BGGroupGroupNARR] END GO CREATE PROCEDURE [dbo].[KAAS_BGGroupGroupNARR] (@ControlID int, @GroupID UNIQUEIDENTIFIER) AS /*************************************************************************** * * KAAS_BGGroupGroupNARR * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * Groups Billing Guide Detail lines based on the narratives found * in the selected Group and makes * sure the sequence numbers of all groups and all BGDetail lines remain * contiguously numbered 1, 2, 3, etc * * ????-??-?? ????? Created * 2021-05-05 John Ginnane Added to repo * 2024-03-26 Pino Carafa Imported to KAAS * 2024-03-28 Pino Carafa Corrected Parameter Types * ***************************************************************************/ BEGIN DECLARE @narr varchar(255) DECLARE @type varchar(1) DECLARE @newnarr varchar(1000) DECLARE @seqno int DECLARE @narcurs TABLE ([seqno] int identity(1, 1), [Type] varchar(1), [Narrative] varchar(1000)) INSERT INTO @narcurs ([Type], [Narrative]) select DISTINCT BGD.[Type], BGD.[Narrative] from [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[ID] = @GroupID WHILE EXISTS (SELECT * FROM @narcurs) BEGIN SELECT TOP 1 @seqno = NC.[seqno], @type = NC.[Type], @narr = NC.[Narrative] FROM @narcurs NC SET @newnarr = RTrim(Substring('All ' + @narr, 1, 1000)) EXEC [dbo].[KAAS_BGQuickGroup] @ControlID, @type, NULL, NULL, NULL, @narr, @newnarr DELETE @narcurs WHERE [seqno] = @seqno END END GO --Consistency Improvement, rename all BG procedures KAAS_BG... rather than having the BG suffix at the end IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_InitialiseBG' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InitialiseBG] END GO IF [dbo].[IsSAM4]() = 1 BEGIN SET NOEXEC ON END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_BGInitialise' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGInitialise] END GO CREATE PROCEDURE [dbo].[KAAS_BGInitialise] (@PDraftNo int, @PBatchNo int, @PTimeRefDate DATETIME, @POutlayDate DATETIME, @PTimeRefAmount money, @POutlayAmount money) AS /******************************************************************************************************* * * [dbo].[KAAS_BGInitialise] * Initialises a Billing Guide * * Modifications: 2014-11-25 Pino - Exclude the "Billed Previously" items first, THEN modify BGDetails * to add up to requested amount. If it's done in the original order * some of the values added together to get the target total may end * up being zeroed, leading to a total that is less than expected. * * 2015-06-22 Pino - The BGDetail "INVOICENO" column is not a reliable indicator for * whether BillNow should be set to zero. Instead * 2015-08-20 Pino - Exclude Closed matters * 2023-08-23 John - #16464 - Creating two groups for fees and outlay for ad hoc comp billing guides * 2023-09-27 John - Fixed #17240 which I introduced with previous change * 2024-03-26 Pino - Imported into KAAS * *******************************************************************************************************/ BEGIN declare @continue int declare @NewControlID int DECLARE @FeesGroupID UNIQUEIDENTIFIER DECLARE @OutlayGroupID UNIQUEIDENTIFIER declare @RSQ table ([ID] int identity(1, 1), [UNID] uniqueidentifier) BEGIN TRANSACTION set @continue = 0 if (@continue = 0) begin begin try SELECT @NewControlID = IsNull(Max(ID), 0) + 1 FROM [dbo].[BGControl] end try begin catch SET @continue = 1 end catch end /* if (@continue = 0) begin begin try -- If multiple Billing Guides for certain Time Entries or Matter Ledger records, -- give the charge for these particular billing guide entries back to the other ones, -- so that they can charge the customer the full amount should they so desire UPDATE BGDO SET BGDO.[Charge] = BGDO.[Charge] + BGD.[Charge] from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = BGC.[ID] INNER JOIN [dbo].[BGDetail] BGDO ON BGDO.[Type] = BGD.[Type] AND BGDO.[OriginalID] = BGD.[OriginalID] AND ISNULL(BGDO.[OriginalID], 0) <> 0 AND BGDO.[BGControlID] <> BGD.[BGControlID] WHERE ( (IsNull(@PDraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@PDraftNo, 0))) OR ( (IsNull(@PDraftNo, 0) = 0) AND (BGC.[BatchNo] = @PBatchNo)) end try begin catch SET @continue = 11 end catch end */ if (@continue = 0) begin begin try DELETE BGD from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] ON BGG.[BGControlID] = BGC.[Id] WHERE ( (IsNull(@PDraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@PDraftNo, 0))) OR ( (IsNull(@PDraftNo, 0) = 0) AND (BGC.[BatchNo] = @PBatchNo)) end try begin catch SET @continue = 3 end catch end if (@continue = 0) begin begin try DELETE BGG from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = BGC.[Id] WHERE ( (IsNull(@PDraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@PDraftNo, 0))) OR ( (IsNull(@PDraftNo, 0) = 0) AND (BGC.[BatchNo] = @PBatchNo)) end try begin catch SET @continue = 4 end catch end if (@continue = 0) begin begin try DELETE BGC from [dbo].[BGControl] BGC WHERE ( (IsNull(@PDraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@PDraftNo, 0))) OR ( (IsNull(@PDraftNo, 0) = 0) AND (BGC.[BatchNo] = @PBatchNo)) end try begin catch SET @continue = 5 end catch end if (@continue = 0) begin begin try IF (@PDraftNo Is Not Null) BEGIN -- In case an inconsistent Draft/Batch number combination was passed in, -- or Batch Number was left NULL SELECT @PBatchNo = IsNull([BATCHNO], 0) FROM [dbo].[BILLHEADER] BIH WHERE BIH.[DRAFTNO] = @PDraftNo END ELSE BEGIN -- Get the Bill Header details IF they are present SELECT @PDraftNo = IsNull([DRAFTNO], 0) FROM [dbo].[BILLHEADER] BIH WHERE BIH.[BATCHNO] = @PBatchNo AND IsNull(@PBatchNo, 0) <> 0 SET @PDraftNo = IsNull(@PDraftNo, 0) END end try begin catch SET @continue = 6 end catch end if (@continue = 0) begin begin try IF (@PDraftNo <> 0) BEGIN INSERT INTO [dbo].[BGControl] ([ID], [Date], [TDate], [ODate], [TAmount], [OAmount], [Description], [DRAFTNO], [BATCHNO], [ADDRESSEE], [OURREF], [YOURREF], [MATTER]) SELECT @NewControlID, getDate(), convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BIH.[WriteDown], getDate()))), convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BIH.[WriteDown], getDate()))), IsNull(@PTimeRefAmount, 0), IsNull(@POutlayAmount, 0), '', @PDraftNo, BIH.[BATCHNO], IsNull(BIH.[ADDRESSEE], ''), IsNull(BIH.[OURREF], ''), IsNull(BIH.[YOURREF], ''), BIH.[Matter] FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo SET @FeesGroupID = NEWID() INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT @FeesGroupID, 0, @NewControlID, 'Total Fees' FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo SET @OutlayGroupID = NEWID() INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT @OutlayGroupID, 1, @NewControlID, 'Total Outlay' FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo -- Fees INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [BGControlID], [Seqno], [BGGroupID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewId(), 1, @NewControlID, 0, @FeesGroupID, 'F' As [TYPE], TIE.[Matter], TIE.[FEEEARN], convert(char(10), '') AS [OUTLAYCODE], TIE.[DATE], ISNULL(convert(varchar(1000), TIE.[COMMENT]), ''), IsNull(TIE.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), TIE.[CHARGE]) As [CHARGE], ISNULL(TIE.[BilledAmount], 0) AS [BilledAmount], convert(decimal(19,2), TIE.[CHARGE]) - ISNULL(TIE.[BilledAmount], 0) As [BillNow], TIE.[RecordID], TIE.[INVOICENO], TIE.[IncludeInBill], TIE.[BILLINGDATE], TIE.[BILLINGYEAR], TIE.[BILLINGPERIOD], TIE.[BilledAmount] FROM [dbo].[BillHeader] BIH INNER JOIN [dbo].[Matters] MAT ON ( ( (RTRIM(ISNULL(MAT.[CompBillingMatter], '')) = BIH.[MATTER]) AND (RTRIM(ISNULL(MAT.[CompBillingMatter], '')) <> MAT.[MATTER])) OR MAT.[Code] = BIH.[MATTER]) AND MAT.[Closed] <> 'Y' INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = TIE.[FEEEARN] ON TIE.[Matter] = MAT.[Code] AND TIE.[REC_IRR] <> 'N' AND TIE.[CHARGE] <> 0 AND ISNULL(TIE.[BilledAmount], 0) <> TIE.[CHARGE] AND ISNULL(TIE.[DATE], getDate()) <= convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BIH.[WriteDown], getDate()))) AND ISNULL(TIE.[IncludeInBill], 1) <> 2 AND TIE.[TIMEORCHARGE] IN ('T', 'C') WHERE BIH.[DRAFTNO] = @PDraftNo -- Outlay INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [BGControlID], [Seqno], [BGGroupID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewId(), 1, @NewControlID, 0, @OutlayGroupID, 'O' As [TYPE], MAL.[Matter], IsNull(HAN.[Code], '') AS [FEEEARN], IsNull(BAD.[OUTLAYCODE], '') AS [OUTLAYCODE], MAL.[DATE], ISNULL(convert(varchar(1000), MAL.[NARR]), ''), IsNull(MAL.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) As [CHARGE], convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BilledAmount], convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) - convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BillNow], MAL.[LREF], MAL.[INVOICENO], ISNULL(MAL.[IncludeInBill], 1), MAL.[BILLINGDATE], MAL.[BILLINGYEAR], MAL.[BILLINGPERIOD], MAL.[BilledOutlayValue] FROM [dbo].[BillHeader] BIH INNER JOIN [dbo].[Matters] MAT ON ( RTRIM(ISNULL(MAT.[CompBillingMatter], '')) = BIH.[MATTER] OR MAT.[Code] = BIH.[MATTER]) AND MAT.[Closed] <> 'Y' INNER JOIN [dbo].[MatterLedger] MAL LEFT OUTER JOIN [dbo].[BatchDetails] BAD LEFT OUTER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = BAD.[OUTLAYCODE] ON BAD.[PREF] = MAL.[PREF] AND BAD.[BATCHNO] = MAL.[BATCHNO] ON MAL.[Matter] = MAT.[Code] AND IsNull(BAD.[TYPE], '') <> 'I' AND MAL.[VALUEO] <> 0 AND convert(decimal(17,2), ISNULL(MAL.[BilledOutlayValue], 0)) <> convert(decimal(17,2), IsNull(MAL.[VALUEO], 0)) AND ISNULL(MAL.[DATE], getDate()) <= convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BIH.[WriteDown], getDate()))) AND ISNULL(MAL.[IncludeInBill], 1) <> 2 LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = Case When IsNull(MAL.[FEE], '') = '' THEN MAT.[FECODE] ELSE MAL.[FEE] END WHERE BIH.[DRAFTNO] = @PDraftNo -- Delete the groups that contain no items DELETE [BGG] FROM [dbo].[BGGroups] AS [BGG] INNER JOIN [dbo].[BGControl] AS [BGC] ON [BGG].[BGControlID] = [BGC].[ID] OUTER APPLY (SELECT COUNT(1) AS [Count] FROM [dbo].[BGDetail] AS [BGD] WHERE [BGD].[BGControlID] = [BGC].[ID] AND [BGD].[BGGroupID] = [BGG].[ID]) AS [BGD] WHERE [BGC].[DRAFTNO] = @PDraftNo AND ISNULL([BGD].[Count], 0) = 0 -- Resequence groups -- Use common table expression (CTE) to -- create a small dataset of the groups -- and their "row", starting at 0 ;WITH [SequencedGroups] ([ControlID], [ID], [Row]) AS ( SELECT [BGC].[ID], [BGG].[ID], ROW_NUMBER() OVER (ORDER BY [BGG].[SeqNo]) - 1 -- Start at 0 FROM [dbo].[BGGroups] AS [BGG] INNER JOIN [dbo].[BGControl] AS [BGC] ON [BGG].[BGControlID] = [BGC].[ID] WHERE [BGC].[DRAFTNO] = @PDraftNo) UPDATE [BGG] SET [BGG].[SeqNo] = [SG].[Row] FROM [dbo].[BGGroups] AS [BGG] INNER JOIN [SequencedGroups] AS [SG] ON [BGG].[ID] = [SG].[ID] AND [BGG].[BGControlID] = [SG].[ControlID] END ELSE BEGIN INSERT INTO [dbo].[BGControl] ([ID], [Date], [TDate], [ODate], [TAmount], [OAmount], [Description], [DRAFTNO], [BATCHNO], [ADDRESSEE], [OURREF], [YOURREF], [MATTER]) SELECT @NewControlID, getDate(), convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BAH.[WriteDown], getDate()))), convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BAH.[WriteDown], getDate()))), IsNull(@PTimeRefAmount, 0), IsNull(@POutlayAmount, 0), '', IsNull(BIH.[DRAFTNO], 0), BAH.[BATCHNO], IsNull(BIH.[ADDRESSEE], ''), IsNull(BIH.[OURREF], ''), IsNull(BIH.[YOURREF], ''), BAH.[Matter] FROM [dbo].[BATCHH] BAH LEFT OUTER JOIN [dbo].[BillHeader] BIH ON BIH.[BATCHNO] = BAH.[BATCHNO] WHERE BAH.[BATCHNO] = @PBATCHNo SET @FeesGroupID = NEWID() INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT @FeesGroupID, 0, @NewControlID, 'Total Fees' FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo SET @OutlayGroupID = NEWID() INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT @OutlayGroupID, 1, @NewControlID, 'Total Outlay' FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo -- Fees INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [BGControlID], [Seqno], [BGGroupID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewId(), 1, @NewControlID, 0, BGG.[ID], 'F' As [TYPE], TIE.[Matter], TIE.[FEEEARN], convert(char(10), '') AS [OUTLAYCODE], TIE.[DATE], ISNULL(convert(varchar(1000), TIE.[COMMENT]), ''), IsNull(TIE.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), TIE.[CHARGE]) As [CHARGE], ISNULL(TIE.[BilledAmount], 0) AS [BilledAmount], convert(decimal(19,2), TIE.[CHARGE]) - ISNULL(TIE.[BilledAmount], 0) As [BillNow], TIE.[RecordID], TIE.[INVOICENO], TIE.[IncludeInBill], TIE.[BILLINGDATE], TIE.[BILLINGYEAR], TIE.[BILLINGPERIOD], TIE.[BilledAmount] FROM [dbo].[BatchH] BAH INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = @NewControlID AND BGG.[SeqNo] = 0 INNER JOIN [dbo].[Matters] MAT ON ( ( (RTRIM(ISNULL(MAT.[CompBillingMatter], '')) = BAH.[MATTER]) AND (RTRIM(ISNULL(MAT.[CompBillingMatter], '')) <> MAT.[MATTER])) OR MAT.[Code] = BAH.[MATTER]) AND MAT.[Closed] <> 'Y' INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = TIE.[FEEEARN] ON TIE.[Matter] = MAT.[Code] AND TIE.[REC_IRR] <> 'N' AND TIE.[CHARGE] <> 0 AND ISNULL(TIE.[BilledAmount], 0) <> TIE.[CHARGE] AND ISNULL(TIE.[DATE], getDate()) <= convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BAH.[WriteDown], getDate()))) AND ISNULL(TIE.[IncludeInBill], 1) <> 2 AND TIE.[TIMEORCHARGE] IN ('T', 'C') WHERE BAH.[BATCHNO] = @PBatchNo -- Outlay INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [BGControlID], [Seqno], [BGGroupID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewId(), 1, @NewControlID, 0, BGG.[ID], 'O' As [TYPE], MAL.[Matter], IsNull(HAN.[Code], '') AS [FEEEARN], IsNull(BAD.[OUTLAYCODE], '') AS [OUTLAYCODE], MAL.[DATE], ISNULL(convert(varchar(1000), MAL.[NARR]), ''), IsNull(MAL.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) As [CHARGE], convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BilledAmount], convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) - convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BillNow], MAL.[LREF], MAL.[INVOICENO], ISNULL(MAL.[IncludeInBill], 1), MAL.[BILLINGDATE], MAL.[BILLINGYEAR], MAL.[BILLINGPERIOD], MAL.[BilledOutlayValue] FROM [dbo].[BatchH] BAH INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = @NewControlID AND BGG.[SeqNo] = 0 INNER JOIN [dbo].[Matters] MAT ON ( RTRIM(ISNULL(MAT.[CompBillingMatter], '')) = BAH.[MATTER] OR MAT.[Code] = BAH.[MATTER]) AND MAT.[Closed] <> 'Y' INNER JOIN [dbo].[MatterLedger] MAL LEFT OUTER JOIN [dbo].[BatchDetails] BAD INNER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = BAD.[OUTLAYCODE] ON BAD.[PREF] = MAL.[PREF] AND BAD.[BATCHNO] = MAL.[BATCHNO] ON MAL.[Matter] = MAT.[Code] AND MAL.[VALUEO] <> 0 AND convert(decimal(17,2), ISNULL(MAL.[BilledOutlayValue], 0)) <> convert(decimal(17,2), IsNull(MAL.[VALUEO], 0)) AND ISNULL(MAL.[DATE], getDate()) <= convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BAH.[WriteDown], getDate()))) AND ISNULL(MAL.[IncludeInBill], 1) <> 2 LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = Case When IsNull(MAL.[FEE], '') = '' THEN MAT.[FECODE] ELSE MAL.[FEE] END WHERE BAH.[BATCHNO] = @PBatchNo END end try begin catch SET @continue = 7 end catch end if (@continue = 0) begin begin try INSERT INTO @RSQ ([UNID]) SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGControlID] = @NewControlID ORDER BY [Type], RTRIM(IsNull([Matter], '')), IsNull(convert(varchar, [Date], 121), ''), Narrative, OriginalID end try begin catch SET @continue = 8 end catch end if (@continue = 0) begin begin try UPDATE BGD SET BGD.[Seqno] = RSQ.[ID] FROM @RSQ RSQ INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = RSQ.[UNID] WHERE BGD.[BGControlID] = @NewControlID end try begin catch SET @continue = 9 end catch end if (@continue = 0) begin begin try UPDATE BGD SET BGD.[BillNow] = 0, BGD.[IncludeInBill] = 0 from [dbo].[BGDetail] BGD CROSS APPLY (SELECT ISNULL(SUM(BGDO.[BillNow]), 0) AS [BilledPreviously] FROM [dbo].[BGDetail] BGDO INNER JOIN [dbo].[BGControl] BGCO LEFT OUTER JOIN [dbo].[BillHeader] BHO ON BHO.[DRAFTNO] = BGCO.[DRAFTNO] ON BGCO.[ID] = BGDO.[BGControlID] WHERE BGDO.[Type] = BGD.[Type] AND BGDO.[OriginalID] = BGD.[OriginalID] AND ISNULL(BGDO.[OriginalID], 0) <> 0 AND BGDO.[BGControlID] <> @NewControlID AND ISNULL(BHO.[BILLNO], 0) = 0) BO where BGD.[BGControlID] = @NewControlID and BO.[BilledPreviously] <> 0 end try begin catch SET @continue = 11 end catch end if (@continue = 0) begin begin try UPDATE BGDT SET BGDT.[BillNow] = CASE WHEN BGCT.[TAmount] = 0 THEN BGDT.[BillNow] WHEN IsNull(LSTB.[TotalBilled], 0) + BGDT.[BillNow] <= BGCT.[TAmount] THEN BGDT.[BillNow] WHEN IsNull(LSTB.[TotalBilled], 0) > BGCT.[TAmount] THEN 0 ELSE BGCT.[TAmount] - IsNull(LSTB.[TotalBilled], 0) END from ( select BGC.[id] AS [BGControlID], BGD.[id], IsNull(SUM(IsNull(BGD2.[BillNow], 0)), 0) As TotalBilled from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD LEFT OUTER JOIN [dbo].[BGDetail] BGD2 INNER JOIN [dbo].[BGGroups] BGG2 ON BGG2.[ID] = BGD2.[BGGroupID] ON BGD2.[BGControlID] = BGD.[BGControlID] AND BGD2.[Type] = BGD.[Type] AND ( BGD2.[DATE] < BGD.[DATE] OR ( BGD2.[DATE] = BGD.[DATE] AND BGD2.[Narrative] < BGD.[Narrative]) OR ( BGD2.[DATE] = BGD.[DATE] AND BGD2.[Narrative] = BGD.[Narrative] AND BGD2.[ID] < BGD.[ID])) ON BGD.[BGGroupID] = BGG.[id] AND BGD.[TYPE] = 'F' ON BGG.[BGControlID] = BGC.[id] where BGC.[id] = @NewControlID GROUP BY BGC.[id], BGG.[seqno], BGD.[id]) LSTB INNER JOIN [dbo].[BGControl] BGCT ON BGCT.[id] = LSTB.[BGControlID] INNER JOIN [dbo].[BGDetail] BGDT ON BGDT.[id] = LSTB.[id] UPDATE BGDT SET BGDT.[BillNow] = CASE WHEN BGCT.[OAmount] = 0 THEN BGDT.[BillNow] WHEN IsNull(LSTB.[TotalBilled], 0) + BGDT.[BillNow] <= BGCT.[OAmount] THEN BGDT.[BillNow] WHEN IsNull(LSTB.[TotalBilled], 0) > BGCT.[OAmount] THEN 0 ELSE BGCT.[OAmount] - IsNull(LSTB.[TotalBilled], 0) END from ( select BGC.[id] AS [BGControlID], BGD.[id], IsNull(SUM(IsNull(BGD2.[BillNow], 0)), 0) As TotalBilled from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD LEFT OUTER JOIN [dbo].[BGDetail] BGD2 ON BGD2.[BGControlID] = BGD.[BGControlID] AND BGD2.[Type] = BGD.[Type] AND ( BGD2.[DATE] < BGD.[DATE] OR ( BGD2.[DATE] = BGD.[DATE] AND BGD2.[Narrative] < BGD.[Narrative]) OR ( BGD2.[DATE] = BGD.[DATE] AND BGD2.[Narrative] = BGD.[Narrative] AND BGD2.[ID] < BGD.[ID])) ON BGD.[BGGroupID] = BGG.[id] AND BGD.[TYPE] = 'O' ON BGG.[BGControlID] = BGC.[id] where BGC.[id] = @NewControlID GROUP BY BGC.[id], BGG.[seqno], BGD.[id]) LSTB INNER JOIN [dbo].[BGControl] BGCT ON BGCT.[id] = LSTB.[BGControlID] INNER JOIN [dbo].[BGDetail] BGDT ON BGDT.[id] = LSTB.[id] end try begin catch SET @continue = 10 end catch end IF (@continue = 0) COMMIT ELSE ROLLBACK END GO SET NOEXEC OFF GO --Consistency improvement. Remove earlier version named KAAS_NETBG(etc) IF OBJECT_ID(N'KAAS_NETBGListGroupDrillEntries', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_NETBGListGroupDrillEntries] END IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGListGroupDrillEntries' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGListGroupDrillEntries] END GO CREATE PROCEDURE [dbo].[KAAS_BGListGroupDrillEntries] (@GroupID UNIQUEIDENTIFIER) AS /****************************************************************** * KAAS_BGListGroupDrillEntries * This procedure is used to call the function KAAS_BGListGroupDrillEntries * This is what the WinDev billing guide program runs when drilling * down into a group * * Modification History: * 2021-04-16 John Ginnane Created * 2024-03-26 Pino Carafa imported to KAAS * 2024-03-28 Pino Carafa Corrected Parameter Type * ******************************************************************/ BEGIN SET NOCOUNT ON SELECT [BGDE].[IncludeInBill], [BGDE].[Type], [BGDE].[MATTER], [BGDE].[FEEEARN], [BGDE].[OUTLAYCODE], [BGDE].[OUTLAYDESCRIPTION], [BGDE].[HANDLERNAME], [BGDE].[TEAMNAME], [BGDE].[DATE], [BGDE].[COMMENT], [BGDE].[InvoiceNo], [BGDE].[CHARGE], [BGDE].[ORIGINALCHARGE], [BGDE].[BilledAmount], [BGDE].[LeftToBill], [BGDE].[BillNow], [BGDE].[SeqNo], [BGDE].[ItemID], [BGDE].[OriginalID], [BGD].[DATE] AS [UNFDate], ISNULL([TIE].[task], '') AS [task], RTRIM(ISNULL([TT].[DESC], '')) AS [TaskDescription] FROM [dbo].[KAAS_BGIFListGroupDrillEntries](@GroupID) AS [BGDE] INNER JOIN [dbo].[BGDetail] AS [BGD] ON BGD.[ID] = [BGDE].[ItemID] LEFT OUTER JOIN [dbo].[TimeEntry] AS [TIE] INNER JOIN [dbo].[TasksCodes] AS [TT] ON TT.[CODE] = TIE.[TASK] ON BGDE.[Type] = 'F' AND TIE.[RECORDID] = BGD.[OriginalID] ORDER BY [BGDE].[SeqNo] SET NOCOUNT OFF END GO SET NOEXEC OFF GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGListGroupedEntries' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGListGroupedEntries] END GO CREATE PROCEDURE [dbo].[KAAS_BGListGroupedEntries] ( @BGControlID INT) AS /****************************************************************** * KAAS_BGListGroupedEntries * This procedure is used to call the function KAAS_BGListGroupedEntries * which returns the list of groups for a specified billing guide * * Modification History: * 2020-07-31 John Ginnane KEYD-6681 - Created * 2024-03-26 Pino Carafa Imported into KAAS * ******************************************************************/ BEGIN SET NOCOUNT ON SELECT [IncludeInBill], [Type], [MATTER], [FEEEARN], [OUTLAYCODE], [OUTLAYDESCRIPTION], [HANDLERNAME], [TEAMNAME], [DATE], [COMMENT], [InvoiceNo], [CHARGE], [ORIGINALCHARGE], [BilledAmount], [LeftToBill], [BillNow], [GroupNumber], [NumberOfDetailItems], [Grouped], [GroupID] FROM [dbo].[KAAS_BGIFListGroupedEntries](@BGControlID) AS [BGE] ORDER BY CASE WHEN BGE.[Type] = 'F' THEN 0 ELSE 1 END, BGE.[GroupNumber] SET NOCOUNT OFF END GO SET NOEXEC OFF GO --Consistency Improvement, rename all BG procedures KAAS_BG... rather than having the BG suffix at the end --So remove the copy with the old name IF OBJECT_ID(N'KAAS_MoveGroupBG', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_MoveGroupBG] END GO IF OBJECT_ID(N'KAAS_BGMoveGroup', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_BGMoveGroup] END GO CREATE PROCEDURE [dbo].[KAAS_BGMoveGroup] (@ControlID int, @NewGroupID UNIQUEIDENTIFIER, @OldGroupID UNIQUEIDENTIFIER) AS /*************************************************************************** * * KAAS_BGMoveGroup * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * Moves all Billing Guide Detail lines from the old group to the new one * * ????-??-?? ????? Created * 2021-05-06 John Ginnane Added to repo * 2024-03-26 Pino Carafa Imported into KAAS * 2024-03-28 Pino Carafa Corrected Parameter Types * ***************************************************************************/ BEGIN DECLARE @MaxSeqNo int DECLARE @reorder TABLE ([seqno] int identity(1, 1), [ID] uniqueidentifier) SELECT @MaxSeqNo = IsNull(Max(BGDMAX.[SeqNo]), 0) FROM [dbo].[BGDetail] BGDMAX WHERE BGDMAX.[BGGroupID] = @NewGroupID UPDATE BGD SET BGD.[BGGroupID] = @NewGroupID, BGD.[SeqNo] = @MaxSeqNo + BGD.SeqNo FROM [dbo].[BGDetail] BGD WHERE BGD.[BGGroupID] = @OldGroupID /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL INSERT INTO @reorder ([ID]) SELECT [ID] FROM [dbo].[BGGroups] WHERE [BGControlID] = @ControlID ORDER BY [SeqNo] UPDATE BGG SET BGG.[SeqNo] = RGB.[seqno] FROM @reorder RGB INNER JOIN [dbo].[BGGroups] BGG ON BGG.[ID] = RGB.[ID] DELETE @reorder INSERT INTO @reorder ([ID]) SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGGroupID] = @NewGroupID ORDER BY [Type], RTRIM(IsNull([Matter], '')), IsNull(convert(varchar, [Date], 121), ''), Narrative, OriginalID UPDATE BGD SET BGD.[SeqNo] = RGB.[seqno] FROM @reorder RGB INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = RGB.[ID] END GO --Consistency Improvement, rename all BG procedures KAAS_BG... rather than having the BG suffix at the end --So remove the copy with the old name IF OBJECT_ID(N'KAAS_NewGroupBG', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_NewGroupBG] END GO IF OBJECT_ID(N'KAAS_BGNewGroup', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_BGNewGroup] END GO CREATE PROCEDURE [dbo].[KAAS_BGNewGroup] (@ControlID int, @Narrative varchar(255)) AS /*************************************************************************** * * KAAS_BGNewGroup * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * re-numbers the sequence numbers in a Billing Guide Group so that they * are contiguously numbered 1, 2, 3, etc. * * ????-??-?? ????? Created * 2021-05-05 John Ginnane Added to repo * 2024-03-26 Pino Carafa Imported into KAAS * 2024-05-24 Balamurugan C Retured created NewID ***************************************************************************/ BEGIN DECLARE @NewID as uniqueidentifier /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL SET @NewID = NewID() INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT @NewId, IsNull(Max(BGG.[SeqNo]), 0) + 1, BGC.[ID], @Narrative FROM [dbo].[BGControl] BGC LEFT OUTER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = BGC.[ID] WHERE BGC.[ID] = @ControlID GROUP BY BGC.[ID], BGC.[Matter] EXEC [dbo].[KAAS_BGReorderGroup] @ControlID SELECT CONVERT(VARCHAR(100), @NewID) END GO --Consistency Improvement, rename all BG procedures KAAS_BG... rather than having the BG suffix at the end --So remove the copy with the old name IF OBJECT_ID(N'KAAS_QuickGroupBG', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_QuickGroupBG] END GO IF OBJECT_ID(N'KAAS_BGQuickGroup', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_BGQuickGroup] END GO CREATE PROCEDURE [dbo].[KAAS_BGQuickGroup] (@ControlID int, @GroupType varchar(1), @GroupHandler varchar(10), @GroupOutlay varchar(10), @GroupMatterCode varchar(20), @GroupNarrative varchar(1000), @NewGroupNarr varchar(1000)) AS /*************************************************************************** * * KAAS_BGQuickGroup * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * Groups Billing Guide Detail lines to a new Billing Guide Groups and makes * sure the sequence numbers of all groups and all BGDetail lines remain * contiguously numbered 1, 2, 3, etc * * ????-??-?? ????? Created * 2021-05-04 John Ginnane Added to repo * 2024-03-26 Pino Carafa Imported into KAAS * 2024-03-28 Pino Carafa Corrected parameter size and name * ***************************************************************************/ BEGIN DECLARE @GroupID uniqueidentifier DECLARE @reseqbgd TABLE ([seqno] int identity(1, 1), [before] int, [oldseqno] int, [groupseq] int, [ID] uniqueidentifier, [BGGroupID] uniqueidentifier) DECLARE @reorder TABLE ([seqno] int identity(1, 1), [ID] uniqueidentifier) EXEC [dbo].[KAAS_BGNewGroup] @ControlID, @NewGroupNarr SELECT @GroupID = BGG.[ID] FROM (SELECT MAX([SeqNo]) as [SeqNo] FROM [dbo].[BGGroups] BGM WHERE BGM.[BGControlID] = @ControlID) MX INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = @ControlID AND BGG.[SeqNo] = MX.[SeqNo] UPDATE BGD SET BGD.[BGGroupID] = @GroupID FROM [dbo].[BGDetail] BGD WHERE BGD.[BGControlID] = @ControlID AND ( BGD.[Type] = IsNull(@GroupType, '') OR IsNull(@GroupType, '') = '') AND ( IsNull(BGD.[FEEEARN], '') = IsNull(@GroupHandler, '') OR IsNull(@GroupHandler, '') = '') AND ( IsNull(BGD.[MATTER], '') = IsNull(@GroupMatterCode, '') OR IsNull(@GroupMatterCode, '') = '') AND ( IsNull(BGD.[OUTLAYCODE], '') = IsNull(@GroupOutlay, '') OR IsNull(@GroupOutlay, '') = '') AND ( IsNull(BGD.[Narrative], '') = IsNull(@GroupNarrative, '') OR IsNull(@GroupNarrative, '') = '') /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL INSERT INTO @reseqbgd ([ID], [BGGroupID], [oldseqno]) SELECT BGD.[ID], BGD.[BGGroupID], BGD.[Seqno] FROM [dbo].[BGDetail] BGD WHERE BGD.[BGControlID] = 2814 ORDER BY BGD.[BGGroupID], BGD.[Type], RTRIM(IsNull(BGD.[Matter], '')), IsNull(convert(varchar, BGD.[Date], 121), ''), BGD.[Narrative], BGD.[OriginalID] UPDATE RSQ SET RSQ.[groupseq] = RT.[TOTAL] + 1 FROM @reseqbgd RSQ CROSS APPLY (SELECT COUNT(DISTINCT BGGroupID) AS [TOTAL] FROM @reseqbgd RSQG WHERE RSQG.[seqno] < RSQ.[seqno] AND RSQG.[BGGroupID] <> RSQ.[BGGroupID]) RT UPDATE RSQ SET RSQ.[before] = RT.[TOTAL] FROM @reseqbgd RSQ CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM @reseqbgd RSQG WHERE RSQG.[groupseq] < RSQ.[groupseq]) RT UPDATE BGD SET BGD.[Seqno] = RSQ.[seqno] - RSQ.[before] FROM @reseqbgd RSQ INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = RSQ.[ID] INSERT INTO @reorder ([ID]) SELECT [ID] FROM [dbo].[BGGroups] WHERE [BGControlID] = @ControlID ORDER BY [SeqNo] UPDATE BGG SET BGG.[SeqNo] = RGB.[seqno] FROM @reorder RGB INNER JOIN [dbo].[BGGroups] BGG ON BGG.[ID] = RGB.[ID] END GO --Consistency Improvement, rename all BG procedures KAAS_BG... rather than having the BG suffix at the end --So remove the copy with the old name IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_RefreshBG' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RefreshBG] END GO if [dbo].[IsSam4]() = 1 BEGIN SET NOEXEC ON END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_BGRefresh' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGRefresh] END GO CREATE PROCEDURE [dbo].[KAAS_BGRefresh] (@PDraftNo int, @PBatchNo int, @PTimeRefDate DATETIME, @POutlayDate DATETIME, @PTimeRefAmount money, @POutlayAmount money) AS /**************************************************************************************** * * [dbo].[KAAS_BGRefresh] * Refresh Billing Guide * 2024-03-26 Pino Carafa Imported into KAAS * ***************************************************************************************/ BEGIN DECLARE @continue int DECLARE @CurrBGC int DECLARE @NewGroupID uniqueidentifier DECLARE @BGC TABLE ([Date] datetime not null, [TDate] datetime not null, [ODate] datetime not null, [Description] varchar(255) not null, [DRAFTNO] int not null, [BATCHNO] int not null, [ADDRESSEE] varchar(400) not null, [OURREF] varchar(15) not null, [YOURREF] varchar(20) not null, [MATTER] varchar(17) not null, [IsAdhoc] int default 0 not null, [OAmount] money default 0 not null, [TAmount] money default 0 not null) DECLARE @BGG TABLE ([Narrative] varchar(1000) not null) DECLARE @BGD TABLE ([ID] uniqueidentifier not null, [IncludeInBill] int not null, [Seqno] int not null, [Type] varchar(1) not null, [Matter] varchar(11) null, [FEEEARN] varchar(5) null, [OUTLAYCODE] varchar(10) null, [DATE] datetime not null, [Narrative] varchar(1000) not null, [InvoiceNo] int not null, [Charge] decimal(19, 2) not null, [BilledAmount] decimal(19, 2) not null, [BillNow] decimal(19, 2) not null, [OriginalID] int not null, [ORGInvoiceNo] int null, [ORGIncludeInBill] int null, [ORGBILLINGDATE] datetime null, [ORGBILLINGYEAR] int null, [ORGBILLINGPERIOD] int null, [ORGAMOUNT] decimal(17, 2) null, [PaidNow] decimal(19, 2) default 0 not null) declare @RSQN table ([ID] int identity(1, 1), [UNID] uniqueidentifier) declare @RSQN2 table ([ID] int identity(1, 1), [MAXID] int, [GROUPSEQ] int, [GROUPID] uniqueidentifier, [UNID] uniqueidentifier) BEGIN TRANSACTION SET @continue = 0 if (@continue = 0) begin begin try IF (@PDraftNo Is Not Null) BEGIN -- In case an inconsistent Draft/Batch number combination was passed in, -- or Batch Number was left NULL SELECT @PBatchNo = IsNull([BATCHNO], 0) FROM [dbo].[BILLHEADER] BIH WHERE BIH.[DRAFTNO] = @PDraftNo END ELSE BEGIN -- Get the Bill Header details IF they are present SELECT @PDraftNo = IsNull([DRAFTNO], 0) FROM [dbo].[BILLHEADER] BIH WHERE BIH.[BATCHNO] = @PBatchNo AND IsNull(@PBatchNo, 0) <> 0 SET @PDraftNo = IsNull(@PDraftNo, 0) END end try begin catch SET @continue = 1 end catch end if (@continue = 0) begin begin try IF (@PDraftNo <> 0) BEGIN INSERT INTO @BGC ([Date], [TDate], [ODate], [TAmount], [OAmount], [Description], [DRAFTNO], [BATCHNO], [ADDRESSEE], [OURREF], [YOURREF], [MATTER]) SELECT getDate(), convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BIH.[WriteDown], getDate()))), convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BIH.[WriteDown], getDate()))), IsNull(@PTimeRefAmount, 0), IsNull(@POutlayAmount, 0), '', @PDraftNo, BIH.[BATCHNO], IsNull(BIH.[ADDRESSEE], ''), IsNull(BIH.[OURREF], ''), IsNull(BIH.[YOURREF], ''), BIH.[Matter] FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo INSERT INTO @BGG ([Narrative]) SELECT 'NEW' FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo INSERT INTO @BGD ([ID], [IncludeInBill], [Seqno], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewID(), 1, 0, 'F' As [TYPE], TIE.[Matter], TIE.[FEEEARN], convert(char(10), '') AS [OUTLAYCODE], TIE.[DATE], convert(varchar(1000), TIE.[COMMENT]), IsNull(TIE.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), TIE.[CHARGE]) As [CHARGE], ISNULL(TIE.[BilledAmount], 0) AS [BilledAmount], convert(decimal(19,2), TIE.[CHARGE]) - ISNULL(TIE.[BilledAmount], 0) As [BillNow], TIE.[RecordID], TIE.[INVOICENO], TIE.[IncludeInBill], TIE.[BILLINGDATE], TIE.[BILLINGYEAR], TIE.[BILLINGPERIOD], TIE.[BilledAmount] FROM [dbo].[BillHeader] BIH CROSS APPLY @BGG BGG INNER JOIN [dbo].[Matters] MAT ON ( ( (RTRIM(ISNULL(MAT.[CompBillingMatter], '')) = BIH.[MATTER]) AND (RTRIM(ISNULL(MAT.[CompBillingMatter], '')) <> MAT.[MATTER])) OR MAT.[Code] = BIH.[MATTER]) INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = TIE.[FEEEARN] ON TIE.[Matter] = MAT.[Code] AND TIE.[REC_IRR] <> 'N' AND TIE.[CHARGE] <> 0 AND ISNULL(TIE.[BilledAmount], 0) <> TIE.[CHARGE] AND ISNULL(TIE.[DATE], getDate()) <= convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BIH.[WriteDown], getDate()))) AND ISNULL(TIE.[IncludeInBill], 1) <> 2 AND TIE.[TIMEORCHARGE] IN ('T', 'C') WHERE BIH.[DRAFTNO] = @PDraftNo INSERT INTO @bgd ([ID], [IncludeInBill], [Seqno], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewID(), 1, 0, 'O' As [TYPE], MAL.[Matter], IsNull(HAN.[Code], '') AS [FEEEARN], IsNull(BAD.[OUTLAYCODE], '') AS [OUTLAYCODE], MAL.[DATE], convert(varchar(1000), MAL.[NARR]), IsNull(MAL.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) As [CHARGE], convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BilledAmount], convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) - convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BillNow], MAL.[LREF], MAL.[INVOICENO], ISNULL(MAL.[IncludeInBill], 1), MAL.[BILLINGDATE], MAL.[BILLINGYEAR], MAL.[BILLINGPERIOD], MAL.[BilledOutlayValue] FROM [dbo].[BillHeader] BIH CROSS APPLY @BGG BGG INNER JOIN [dbo].[Matters] MAT ON ( RTRIM(ISNULL(MAT.[CompBillingMatter], '')) = BIH.[MATTER] OR MAT.[Code] = BIH.[MATTER]) INNER JOIN [dbo].[MatterLedger] MAL LEFT OUTER JOIN [dbo].[BatchDetails] BAD LEFT OUTER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = BAD.[OUTLAYCODE] ON BAD.[PREF] = MAL.[PREF] AND BAD.[BATCHNO] = MAL.[BATCHNO] ON MAL.[Matter] = MAT.[Code] AND IsNull(BAD.[TYPE], '') <> 'I' AND MAL.[VALUEO] <> 0 AND convert(decimal(17,2), ISNULL(MAL.[BilledOutlayValue], 0)) <> convert(decimal(17,2), IsNull(MAL.[VALUEO], 0)) AND ISNULL(MAL.[DATE], getDate()) <= convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BIH.[WriteDown], getDate()))) AND ISNULL(MAL.[IncludeInBill], 1) <> 2 LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = Case When IsNull(MAL.[FEE], '') = '' THEN MAT.[FECODE] ELSE MAL.[FEE] END WHERE BIH.[DRAFTNO] = @PDraftNo END ELSE BEGIN INSERT INTO @BGC ([Date], [TDate], [ODate], [TAmount], [OAmount], [Description], [DRAFTNO], [BATCHNO], [ADDRESSEE], [OURREF], [YOURREF], [MATTER]) SELECT getDate(), convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BAH.[WriteDown], getDate()))), convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BAH.[WriteDown], getDate()))), IsNull(@PTimeRefAmount, 0), IsNull(@POutlayAmount, 0), '', IsNull(BIH.[DRAFTNO], 0), BAH.[BATCHNO], IsNull(BIH.[ADDRESSEE], ''), IsNull(BIH.[OURREF], ''), IsNull(BIH.[YOURREF], ''), BAH.[Matter] FROM [dbo].[BATCHH] BAH LEFT OUTER JOIN [dbo].[BillHeader] BIH ON BIH.[BATCHNO] = BAH.[BATCHNO] WHERE BAH.[BATCHNO] = @PBATCHNo INSERT INTO @BGG ([Narrative]) SELECT 'NEW' FROM [dbo].[BATCHH] BAH WHERE BAH.[BATCHNO] = @PBATCHNo INSERT INTO @BGD ([ID], [IncludeInBill], [Seqno], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewID(), 1, 0, 'F' As [TYPE], TIE.[Matter], TIE.[FEEEARN], convert(char(10), '') AS [OUTLAYCODE], TIE.[DATE], convert(varchar(1000), TIE.[COMMENT]), IsNull(TIE.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), TIE.[CHARGE]) As [CHARGE], ISNULL(TIE.[BilledAmount], 0) AS [BilledAmount], convert(decimal(19,2), TIE.[CHARGE]) - ISNULL(TIE.[BilledAmount], 0) As [BillNow], TIE.[RecordID], TIE.[INVOICENO], TIE.[IncludeInBill], TIE.[BILLINGDATE], TIE.[BILLINGYEAR], TIE.[BILLINGPERIOD], TIE.[BilledAmount] FROM [dbo].[BatchH] BAH CROSS APPLY @BGG BGG INNER JOIN [dbo].[Matters] MAT ON ( ( (RTRIM(ISNULL(MAT.[CompBillingMatter], '')) = BAH.[MATTER]) AND (RTRIM(ISNULL(MAT.[CompBillingMatter], '')) <> MAT.[MATTER])) OR MAT.[Code] = BAH.[MATTER]) INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = TIE.[FEEEARN] ON TIE.[Matter] = MAT.[Code] AND TIE.[REC_IRR] <> 'N' AND TIE.[CHARGE] <> 0 AND ISNULL(TIE.[BilledAmount], 0) <> TIE.[CHARGE] AND ISNULL(TIE.[DATE], getDate()) <= convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BAH.[WriteDown], getDate()))) AND ISNULL(TIE.[IncludeInBill], 1) <> 2 AND TIE.[TIMEORCHARGE] IN ('T', 'C') WHERE BAH.[BATCHNO] = @PBatchNo INSERT INTO @BGD ([ID], [IncludeInBill], [Seqno], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewID(), 1, 0, 'O' As [TYPE], MAL.[Matter], IsNull(HAN.[Code], '') AS [FEEEARN], IsNull(BAD.[OUTLAYCODE], '') AS [OUTLAYCODE], MAL.[DATE], convert(varchar(1000), MAL.[NARR]), IsNull(MAL.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) As [CHARGE], convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BilledAmount], convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) - convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BillNow], MAL.[LREF], MAL.[INVOICENO], ISNULL(MAL.[IncludeInBill], 1), MAL.[BILLINGDATE], MAL.[BILLINGYEAR], MAL.[BILLINGPERIOD], MAL.[BilledOutlayValue] FROM [dbo].[BatchH] BAH CROSS APPLY @BGG BGG INNER JOIN [dbo].[Matters] MAT ON ( RTRIM(ISNULL(MAT.[CompBillingMatter], '')) = BAH.[MATTER] OR MAT.[Code] = BAH.[MATTER]) INNER JOIN [dbo].[MatterLedger] MAL LEFT OUTER JOIN [dbo].[BatchDetails] BAD INNER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = BAD.[OUTLAYCODE] ON BAD.[PREF] = MAL.[PREF] AND BAD.[BATCHNO] = MAL.[BATCHNO] ON MAL.[Matter] = MAT.[Code] AND MAL.[VALUEO] <> 0 AND convert(decimal(17,2), ISNULL(MAL.[BilledOutlayValue], 0)) <> convert(decimal(17,2), IsNull(MAL.[VALUEO], 0)) AND ISNULL(MAL.[DATE], getDate()) <= convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BAH.[WriteDown], getDate()))) AND ISNULL(MAL.[IncludeInBill], 1) <> 2 LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = Case When IsNull(MAL.[FEE], '') = '' THEN MAT.[FECODE] ELSE MAL.[FEE] END WHERE BAH.[BATCHNO] = @PBatchNo END end try begin catch SET @continue = 2 end catch end if (@continue = 0) begin begin try SELECT @CurrBGC = BGC.[ID] from @bgc BGCN inner join [dbo].[BGControl] BGC ON BGC.[DRAFTNO] = BGCN.[DRAFTNO] AND BGC.[BATCHNO] = BGCN.[BATCHNO] end try begin catch SET @continue = 3 end catch end if (@continue = 0) begin begin try INSERT INTO @RSQN ([UNID]) SELECT BGD.[ID] FROM @BGD BGD LEFT OUTER JOIN [dbo].[BGDetail] BGDO ON BGDO.[BGControlID] = @CurrBGC AND BGDO.[Type] = BGD.[Type] AND BGDO.[OriginalID] = BGD.[OriginalID] WHERE BGDO.[ID] IS NULL ORDER BY BGD.[Type], RTRIM(IsNull(BGD.[Matter], '')), IsNull(convert(varchar, BGD.[Date], 121), ''), BGD.[Narrative], BGD.[OriginalID] end try begin catch SET @continue = 4 end catch end if (@continue = 0) begin begin try SET @NewGroupID = NEWID() end try begin catch SET @continue = 5 end catch end if (@continue = 0) begin begin try INSERT INTO [dbo].[BGGroups] ([ID], [Seqno], [BGControlID], [Narrative]) SELECT @NewGroupID, BGNS.[NewSeqNo], @CurrBGC, GRP.[Narrative] FROM (SELECT COUNT(1) AS [TOTAL] FROM @RSQN) TOT CROSS APPLY (SELECT IsNull(MAX(BGG.[SeqNo]), 0) + 1 AS [NewSeqNo] FROM [dbo].[BGGroups] BGG WHERE BGG.[BGControlID] = @CurrBGC) BGNS CROSS APPLY @BGG GRP WHERE TOT.[TOTAL] > 0 end try begin catch SET @continue = 6 end catch end if (@continue = 0) begin begin try UPDATE BGD SET BGD.[Seqno] = RSQ.[ID] FROM @BGD BGD INNER JOIN @RSQN RSQ ON RSQ.[UNID] = BGD.[ID] end try begin catch SET @continue = 7 end catch end if (@continue = 0) begin begin try INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [Seqno], [BGGroupID], [BGControlID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT], [PaidNow]) select NEWID(), BGDN.[IncludeInBill], BGDN.[Seqno], @NewGroupID, @CurrBGC, BGDN.[Type], BGDN.[Matter], BGDN.[FEEEARN], BGDN.[OUTLAYCODE], BGDN.[DATE], BGDN.[Narrative], BGDN.[InvoiceNo], BGDN.[Charge], BGDN.[BilledAmount], BGDN.[BillNow], BGDN.[OriginalID], BGDN.[ORGInvoiceNo], BGDN.[ORGIncludeInBill], BGDN.[ORGBILLINGDATE], BGDN.[ORGBILLINGYEAR], BGDN.[ORGBILLINGPERIOD], BGDN.[ORGAMOUNT], BGDN.[PaidNow] from @bgd BGDN where BGDN.[Seqno] > 0 ORDER BY BGDN.[Seqno] end try begin catch SET @continue = 8 end catch end if (@continue = 0) begin begin try -- Make sure that those lines that were originally flagged as to be fully paid, -- remain fully paid UPDATE BGD SET BGD.[Charge] = BGDN.[charge], BGD.[BilledAmount] = BGDN.[BilledAmount], BGD.[BillNow] = BGDN.[BillNow] FROM @BGD BGDN INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = @CurrBGC AND BGD.[Type] = BGDN.[Type] AND BGD.[OriginalID] = BGDN.[OriginalID] AND BGD.[BillNow] = BGD.[Charge] - BGD.[BilledAmount] -- Make sure that those lines where the BillNow value exceeds the new charge -- are set to be fully paid UPDATE BGD SET BGD.[Charge] = BGDN.[charge], BGD.[BilledAmount] = BGDN.[BilledAmount], BGD.[BillNow] = BGDN.[BillNow] FROM @BGD BGDN INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = @CurrBGC AND BGD.[Type] = BGDN.[Type] AND BGD.[OriginalID] = BGDN.[OriginalID] AND BGDN.[Charge] - BGDN.[BilledAmount] >= 0 AND BGD.[BillNow] > BGDN.[Charge] - BGDN.[BilledAmount] -- Make sure that those lines where the BillNow (refund) value exceeds the new charge -- are set to be fully paid UPDATE BGD SET BGD.[Charge] = BGDN.[charge], BGD.[BilledAmount] = BGDN.[BilledAmount], BGD.[BillNow] = BGDN.[BillNow] FROM @BGD BGDN INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = @CurrBGC AND BGD.[Type] = BGDN.[Type] AND BGD.[OriginalID] = BGDN.[OriginalID] AND BGDN.[Charge] - BGDN.[BilledAmount] <= 0 AND BGD.[BillNow] < BGDN.[Charge] - BGDN.[BilledAmount] -- If the BillNow value is set, and it fits within what remains to be paid, leave BillNow as is, but update Charge and Billed Amount UPDATE BGD SET BGD.[Charge] = BGDN.[charge], BGD.[BilledAmount] = BGDN.[BilledAmount] FROM @BGD BGDN INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = @CurrBGC AND BGD.[Type] = BGDN.[Type] AND BGD.[OriginalID] = BGDN.[OriginalID] AND BGD.[BillNow] <> BGDN.[Charge] - BGDN.[BilledAmount] -- Remove entries that should no longer be in this billing guide DELETE BGD FROM [dbo].[BGDetail] BGD LEFT OUTER JOIN @bgd BGDN ON BGDN.[Type] = BGD.[type] AND BGDN.[OriginalID] = BGD.[OriginalID] WHERE BGD.[BGControlID] = @CurrBGC AND BGDN.[ID] is null DELETE BGG FROM [dbo].[BGGroups] BGG CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[BGDetail] BGD WHERE BGD.[BGGroupID] = BGG.[ID]) ING WHERE BGG.[BGControlID] = @CurrBGC AND ING.[TOTAL] = 0 end try begin catch SET @continue = 9 end catch end if (@continue = 0) begin begin try INSERT INTO @RSQN2 ([GROUPID], [GROUPSEQ], [UNID], [MAXID]) select BGG.[ID], BGG.[SeqNo], BGD.[ID], 0 from [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[id] WHERE BGG.[BGControlID] = @CurrBGC ORDER BY BGG.[SeqNo], BGD.[Seqno] end try begin catch SET @continue = 10 end catch end if (@continue = 0) begin begin try UPDATE BGD SET BGD.[SeqNo] = R.[ID] - NR.[MAXID] from @RSQN2 R CROSS APPLY (SELECT ISNULL(MAX(RB.[ID]), 0) AS [MAXID] FROM @RSQN2 RB WHERE RB.[GROUPSEQ] < R.[GROUPSEQ]) NR INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = R.[UNID] end try begin catch SET @continue = 11 end catch end IF (@continue = 0) COMMIT ELSE ROLLBACK END GO SET NOEXEC OFF GO --Consistency Improvement, rename all BG procedures KAAS_BG... rather than having the BG suffix at the end IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ReorderGroupBG' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ReorderGroupBG] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGReorderGroup' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGReorderGroup] END GO CREATE PROCEDURE [dbo].[KAAS_BGReorderGroup] (@ControlID int) AS /*************************************************************************** * * KAAS_BGReorderGroup * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * re-numbers the sequence numbers in a Billing Guide Group so that they * are contiguously numbered 1, 2, 3, etc. * * ????-??-?? ????? Created * 2021-05-04 John Ginnane Added to repo * 2024-03-26 Pino Carafa Imported into KAAS * ***************************************************************************/ BEGIN DECLARE @reseq TABLE ([ID] uniqueidentifier, [newseq] int identity(1, 1)) INSERT INTO @reseq ([ID]) SELECT [ID] FROM [dbo].[BGGroups] WHERE [BGControlID] = @ControlID ORDER BY [SeqNo] UPDATE BGG SET BGG.[SeqNo] = RSQ.[newseq] FROM @reseq RSQ INNER JOIN [dbo].[BGGroups] BGG ON BGG.[ID] = RSQ.[ID] END GO --Consistency Improvement, rename all BG procedures KAAS_BG... rather than having the BG suffix at the end --So remove the copy with the old name IF OBJECT_ID(N'KAAS_UngroupBG', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_UngroupBG] END GO IF OBJECT_ID(N'KAAS_BGUngroup', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_BGUngroup] END GO CREATE PROCEDURE [dbo].[KAAS_BGUngroup] (@ControlID int, @GroupSeqNo int) AS /*************************************************************************** * * KAAS_BGUngroup * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * removes the Billing Guide Group with sequence number @GroupSeqNo * and creates an individual group for each Billing Guide Detail line that * used to be in that group * * ????-??-?? ????? Created * 2021-05-06 John Ginnane Added to repo * 2024-03-26 Pino Carafa Imported into KAAS * ***************************************************************************/ BEGIN DECLARE @GroupID uniqueidentifier DECLARE @SeqNo int DECLARE @newgroups TABLE ([seqno] int identity(1, 1), [ID] uniqueidentifier) SELECT @GroupID = [ID] FROM [dbo].[BGGroups] Where [BGControlID] = @ControlID AND [SEQNO] = @GroupSeqNo /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL /* Get the next available Sequence number for the new groups */ Select @SeqNo = IsNull(Max(BGG.Seqno), 0) from [dbo].[BGGroups] BGG where BGG.[BGControlID] = @ControlID /* Create new groups. One new group for each item to be ungrouped. This is why the IDs are GUIDs. We can now use the GUIDs of the original Detail items to create the IDs of the new Groups. Using GUIDs (virtually guaranteed to be unique) makes doing this much easier than it would have been using different types of ID fields. */ INSERT INTO @newgroups ([ID]) SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGControlID] = @ControlID AND [BGGroupID] = @GroupID ORDER BY SeqNo INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT NGR.[ID], @SeqNo + NGR.[seqno], @ControlID, BGD.[Narrative] FROM @newgroups NGR INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = NGR.[ID] /* Now reassign the Detail lines so they are ungrouped and linked to each individual newly created group. Each Detail line gets a sequence number of 1. */ UPDATE BGD SET BGD.[BGGroupID] = BGD.[ID], SeqNo = 1 FROM [dbo].[BGDetail] BGD WHERE BGD.[BGControlID] = @ControlID AND BGD.[BGGroupID] = @GroupID /* Remove the group that was just "ungrouped". The best thing to do here is to repeat the removal of all orphaned groups as this will not only remove the group that has just been ungrouped but any other groups that may have become orphaned unexpectedly. */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL /* resequence the groups so that their sequence numbers remain contiguous: 1, 2, 3 ... */ EXEC [dbo].[KAAS_BGReorderGroup] @ControlID END GO --Consistency Improvement, rename all BG procedures KAAS_BG... rather than having the BG suffix at the end --So remove the copy with the old name IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UngroupGUIDBG' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UngroupGUIDBG] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGUngroupGUID' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGUngroupGUID] END GO CREATE PROCEDURE [dbo].[KAAS_BGUngroupGUID] (@ControlID int, @GroupID uniqueidentifier) AS /*************************************************************************** * * KAAS_BGUngroupGUID * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * removes the Billing Guide Group with unique ID @GroupID * and creates an individual group for each Billing Guide Detail line that * used to be in that group * * ????-??-?? ????? Created * 2021-05-05 John Ginnane Added to git repo * 2024-03-26 Pino Carafa Imported into KAAS * 2024-03-28 Pino Carafa Corrected Parameter Type * ***************************************************************************/ BEGIN DECLARE @GroupIDFromBGG uniqueidentifier DECLARE @SeqNo int DECLARE @newgroups TABLE ([seqno] int identity(1, 1), [ID] uniqueidentifier) SELECT @GroupIDFromBGG = [ID] FROM [dbo].[BGGroups] BGG WHERE [ID] = @GroupID AND [BGControlID] = @ControlID IF (@GroupIDFromBGG IS NOT NULL) BEGIN /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL /* Get the next available Sequence number for the new groups */ Select @SeqNo = IsNull(Max(BGG.Seqno), 0) from [dbo].[BGGroups] BGG where BGG.[BGControlID] = @ControlID /* Create new groups. One new group for each item to be ungrouped. This is why the IDs are GUIDs. We can now use the GUIDs of the original Detail items to create the IDs of the new Groups. Using GUIDs (virtually guaranteed to be unique) makes doing this much easier than it would have been using different types of ID fields. */ INSERT INTO @newgroups ([ID]) SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGControlID] = @ControlID AND [BGGroupID] = @GroupIDFromBGG ORDER BY SeqNo INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT NGR.[ID], @SeqNo + NGR.[seqno], @ControlID, BGD.[Narrative] FROM @newgroups NGR INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = NGR.[ID] /* Now reassign the Detail lines so they are ungrouped and linked to each individual newly created group. Each Detail line gets a sequence number of 1. */ UPDATE BGD SET BGD.[BGGroupID] = BGD.[ID], SeqNo = 1 FROM [dbo].[BGDetail] BGD WHERE BGD.[BGControlID] = @ControlID AND BGD.[BGGroupID] = @GroupIDFromBGG /* Remove the group that was just "ungrouped". The best thing to do here is to repeat the removal of all orphaned groups as this will not only remove the group that has just been ungrouped but any other groups that may have become orphaned unexpectedly. */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL /* resequence the groups so that their sequence numbers remain contiguous: 1, 2, 3 ... */ EXEC [dbo].[KAAS_BGReorderGroup] @ControlID END END GO --Consistency improvement. Remove earlier version named KAAS_NETBG(etc) IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_NETBGUpdateDetailBilling' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_NETBGUpdateDetailBilling] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGUpdateDetailBilling' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGUpdateDetailBilling] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_BGUpdateDetailBilling] (@ItemID UNIQUEIDENTIFIER, @Action INT) AS /*************************************************************************** * * KAAS_BGUpdateDetailBilling * * 2021-05-10 John Ginnane Created to wrap existing code into a single proc * 2024-03-26 Pino Carafa Imported into KAAS * 2024-03-28 Pino Carafa Corrected parameter type * ***************************************************************************/ BEGIN /* Actions: 1 - Bill 2 - Dont bill 3 - Exclude FROM ALL bills */ UPDATE BGD SET BGD.[BillNow] = CASE WHEN @Action = 1 THEN BGD.[CHARGE] - BGD.[BilledAmount] ELSE 0 END, BGD.[IncludeInBill] = CASE WHEN @Action = 3 THEN 2 ELSE 1 END FROM [dbo].[BGDetail] BGD WHERE BGD.[ID] = @ItemID UPDATE BGD2 SET BGD2.[BillNow] = 0, BGD2.[IncludeInBill] = 0 FROM [dbo].[BGDetail] BGD INNER JOIN [dbo].[BGDetail] BGD2 ON BGD2.[Type] = BGD.[Type] AND BGD2.[OriginalID] = BGD.[OriginalID] AND BGD2.[BGControlID] <> BGD.[BGControlID] AND BGD2.[InvoiceNo] = 0 WHERE BGD.[ID] = @ItemID END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGUpdateDetailBillNow' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGUpdateDetailBillNow] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_BGUpdateDetailBillNow] (@ItemID UNIQUEIDENTIFIER, @BillNow DECIMAL(19, 2)) AS /*************************************************************************** * * KAAS_BGUpdateDetailBillNow * * 2021-05-10 John Ginnane Created to wrap existing code into a single proc * 2024-03-26 Pino Carafa Import into KAAS * 2024-03-28 Pino Carafa Correct Parameter Type * ***************************************************************************/ BEGIN UPDATE BGD SET BGD.[BillNow] = ISNULL(@BillNow, 0), BGD.[IncludeInBill] = CASE WHEN @BillNow > 0 THEN 1 ELSE BGD.[IncludeInBill] END FROM [dbo].[BGDetail] BGD WHERE BGD.[ID] = @ItemID DECLARE @BGControlID int SELECT TOP 1 @BGControlID = [BGD].[BGControlID] FROM [dbo].[BGDetail] AS [BGD] WHERE [BGD].[ID] = @ItemID UPDATE [BGDO] SET [BGDO].[BillNow] = 0, [BGDO].[IncludeInBill] = 0 FROM [BGDetail] AS [BGD] INNER JOIN [dbo].[BGDetail] AS [BGDO] ON [BGDO].[OriginalID] = [BGD].[OriginalID] AND [BGDO].[Type] = [BGD].[Type] AND [BGDO].[BGControlID] <> [BGD].[BGControlID] AND [BGDO].[InvoiceNo] = 0 WHERE [BGD].[BGControlID] = @BGControlID AND [BGD].[IncludeInBill] = 1 AND [BGD].[BillNow] <> 0 END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGUpdateGroupBilling' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGUpdateGroupBilling] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_BGUpdateGroupBilling] (@GroupID UNIQUEIDENTIFIER, @Action INT) AS /*************************************************************************** * * KAAS_BGUpdateGroupBilling * * 2021-05-05 John Ginnane Created to wrap existing code into a single proc * 2024-03-26 Pino Carafa Import into KAAS * 2024-03-28 Pino Carafa Correct parameter type * ***************************************************************************/ BEGIN /* Actions: 1 - Bill 2 - Don't bill 3 - Exclude from all bills */ UPDATE BGD SET BGD.[BillNow] = CASE WHEN @Action = 1 THEN BGD.[CHARGE] - BGD.[BilledAmount] ELSE 0 END, BGD.[IncludeInBill] = CASE WHEN @Action = 3 THEN 2 ELSE 1 END from [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[ID] = @GroupID UPDATE BGD2 SET BGD2.[BillNow] = 0, BGD2.[IncludeInBill] = 0 FROM [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] INNER JOIN [dbo].[BGDetail] BGD2 ON BGD2.[Type] = BGD.[Type] AND BGD2.[OriginalID] = BGD.[OriginalID] AND BGD2.[BGControlID] <> BGD.[BGControlID] AND BGD2.[InvoiceNo] = 0 WHERE BGG.[ID] = @GroupID END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BGUpdateGroupBillNow' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BGUpdateGroupBillNow] END GO IF [dbo].[IsSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_BGUpdateGroupBillNow] (@GroupID UNIQUEIDENTIFIER, @BillNow DECIMAL(19, 2)) AS /*************************************************************************** * * KAAS_BGUpdateGroupBillNow * * 2021-06-25 John Ginnane Created to wrap existing code into a single proc * 2024-03-26 Pino Carafa Imported into KAAS * 2024-03-28 Pino Carafa Revert to correct parameter types * ***************************************************************************/ BEGIN UPDATE [BGD] SET [BGD].[BillNow] = @BillNow, [BGD].[IncludeInBill] = CASE WHEN @BillNow > 0 THEN 1 ELSE [BGD].[IncludeInBill] END FROM [dbo].[BGGroups] AS [BGG] INNER JOIN [dbo].[BGDetail] AS [BGD] ON [BGD].[BGGroupID] = [BGG].[ID] WHERE [BGG].[ID] = @GroupID DECLARE @BGControlID int SELECT TOP 1 @BGControlID = [BGG].[BGControlID] FROM [dbo].[BGGroups] AS [BGG] WHERE [BGG].[ID] = @GroupID UPDATE [BGDO] SET [BGDO].[BillNow] = 0, [BGDO].[IncludeInBill] = 0 FROM [dbo].[BGDetail] AS [BGD] INNER JOIN [dbo].[BGDetail] AS [BGDO] ON [BGDO].[OriginalID] = [BGD].[OriginalID] AND [BGDO].[Type] = [BGD].[Type] AND [BGDO].[BGControlID] <> [BGD].[BGControlID] AND [BGDO].[InvoiceNo] = 0 WHERE [BGD].[BGControlID] = @BGControlID AND [BGD].[IncludeInBill] = 1 AND [BGD].[BillNow] <> 0 END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_BriefTemplates' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_BriefTemplates] END GO CREATE PROCEDURE [dbo].[KAAS_BriefTemplates] (@MATTER VARCHAR(20)) AS /******************************************************************************************************************************** * * Stored Procedure Name : [dbo].[KAAS_BriefTemplates] * Copied from : [dbo].[ky_NETSPBriefTemplates] * * List the available Brief Templates * * Modification History * 2016-02-08 Pino Carafa Imported into Framework Release 2 * 2016-02-08 Pino Carafa PLEASE NOTE: the OUTER APPLY will cause issues in some SQL2005 databases, but the solution * to this problem is not efficient. In order to support SQL2005 but not compromise * efficiency, we will execute a SQL2005 proof version of this query * when the database is on SQL2005 * 2019-10-01 Ganapathy T Created * ********************************************************************************************************************************/ BEGIN DECLARE @SQLVersion NVARCHAR(128) DECLARE @NCommand NVARCHAR(MAX) SET @SQLVersion = CONVERT(NVARCHAR(128), SERVERPROPERTY('ProductVersion')) IF @SQLVersion LIKE N'9.%' BEGIN SET @NCommand = N' SELECT BTM.[ID], BTM.[Title], BTM.[PublishDate], CASE WHEN ISNULL((SELECT CSM.[CSWKTCODE] FROM [dbo].[CaseMaster] CSM WHERE CSM.[CSCODE] = @MATTER), '''') = BTM.[WTCode] THEN ''0'' WHEN ISNULL((SELECT CSMC.[CSWKTCODE] FROM [dbo].[CaseMasterClosed] CSMC WHERE CSMC.[CSCODE] = @MATTER), '''') = BTM.[WTCode] THEN ''0'' ELSE ''1'' END FROM [dbo].[BriefTemplates] BTM ORDER BY CASE WHEN ISNULL((SELECT CSM.[CSWKTCODE] FROM [dbo].[CaseMaster] CSM WHERE CSM.[CSCODE] = @MATTER), '''') = BTM.[WTCode] THEN ''0'' WHEN ISNULL((SELECT CSMC.[CSWKTCODE] FROM [dbo].[CaseMasterClosed] CSMC WHERE CSMC.[CSCODE] = @MATTER), '''') = BTM.[WTCode] THEN ''0'' ELSE ''1'' END, BTM.[PublishDate] DESC, BTM.[Title]' END ELSE BEGIN SET @NCommand = N' SELECT BTM.[ID], BTM.[Title], BTM.[PublishDate], CASE WHEN ISNULL(CSO.[CSWKTCODE], '''') = BTM.[WTCode] THEN ''0'' WHEN ISNULL(CSC.[CSWKTCODE], '''') = BTM.[WTCode] THEN ''0'' ELSE ''1'' END FROM [dbo].[BriefTemplates] BTM OUTER APPLY (SELECT CSM.[CSWKTCODE] FROM [dbo].[CaseMaster] CSM WHERE CSM.[CSCODE] = @MATTER) CSO OUTER APPLY (SELECT CSMC.[CSWKTCODE] FROM [dbo].[CaseMasterClosed] CSMC WHERE CSMC.[CSCODE] = @MATTER) CSC ORDER BY CASE WHEN ISNULL(CSO.[CSWKTCODE], '''') = BTM.[WTCode] THEN ''0'' WHEN ISNULL(CSC.[CSWKTCODE], '''') = BTM.[WTCode] THEN ''0'' ELSE ''1'' END, BTM.[PublishDate] DESC, BTM.[Title]' END EXECUTE sp_executesql @NCOMMAND, N'@MATTER VARCHAR(20)', @MATTER END GO IF OBJECT_ID(N'[KAAS_CaseAssociateFetchAddProfessionalLoadData]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_CaseAssociateFetchAddProfessionalLoadData] GO CREATE PROCEDURE [KAAS_CaseAssociateFetchAddProfessionalLoadData] AS /******************************************************************************************************* * This procedure is used load the data for add professional popup page. * * * * Stored Procedure Name : [dbo].[KAAS_CaseAssociateFetchAddProfessionalLoadData] * * Copied from : [dbo].[ky_NETCaseAssociateFetchAddProfessionalLoadData] * * * * Modification History : * * 2019-05-31 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(UPPER(CODE)) AS CODE, RTRIM(ISNULL([DESCRIPTION],'')) AS [DESCRIPTION], RTRIM(ISNULL(ASSOCIATETYPE,'')) AS ASSOCIATETYPE, RTRIM(ISNULL(category,'')) AS category FROM dbo.AssociateTypes SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CaseAssociateFetchEditProfessionalLoadData' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CaseAssociateFetchEditProfessionalLoadData] END GO CREATE PROCEDURE [dbo].[KAAS_CaseAssociateFetchEditProfessionalLoadData] (@AssociateCode VARCHAR(20)) AS /******************************************************************************************************* * This procedure is used load the data for Edit professional page. * * * * Stored Procedure Name : [dbo].[KAAS_CaseAssociateFetchEditProfessionalLoadData] * * Copied from : [dbo].[ky_NETCaseAssociateFetchEditProfessionalLoadData] * * * * Modification History : * * 2019-06-03 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(ISNULL([CAN].[CODE], '')) AS [CODE], RTRIM(ISNULL([CAN].[TYPE], '')) AS [TYPE], RTRIM(ISNULL([CAN].[NAME], '')) AS [NAME], RTRIM(ISNULL([CAN].[SALUTATION], '')) AS [SALUTATION], RTRIM(ISNULL([CAN].[TITLE], '')) AS [TITLE], RTRIM(ISNULL([CAN].[COMPANY], '')) AS [COMPANY], RTRIM(ISNULL([CAN].[ADDRESS], '')) AS [ADDRESS], RTRIM(ISNULL([CAN].[FORENAME], '')) AS [FORENAME], RTRIM(ISNULL([CAN].[SURNAME], '')) AS [SURNAME], RTRIM(ISNULL([CAN].[PHONENO], '')) AS [PHONENO], RTRIM(ISNULL([CAN].[FAXNO], '')) AS [FAXNO], RTRIM(ISNULL([CAN].[HOME], '')) AS [HOME], RTRIM(ISNULL([CAN].[MOBILENO], '')) AS [MOBILENO], RTRIM(ISNULL([CAN].[EMAIL], '')) AS [EMAIL], RTRIM(ISNULL([CAN].[WEBADDRESS], '')) AS [WEBADDRESS], RTRIM(ISNULL([CAN].[SSNUMBER], '')) AS [SSNUMBER], RTRIM(ISNULL([CAN].[LEGALNAME], '')) AS [LEGALNAME], RTRIM(ISNULL([CAN].[LEGALADDRESS], '')) AS [LEGALADDRESS], RTRIM(ISNULL([CAN].[COURTNO], '')) AS [COURTNO], RTRIM(ISNULL([CAN].[COURTAREA], '')) AS [COURTAREA], RTRIM(ISNULL([CAN].[TAX], '')) AS [TAX], RTRIM(ISNULL([CAN].[DXREF], '')) AS [DXREF], CONVERT(VARCHAR(10),[CAN].[DOB],112) AS [DOB], RTRIM(ISNULL([CAN].[MARTIALSTATUS],'')) AS [MARTIALSTATUS], CASE [CAN].[MARRIAGEDATE] WHEN NULL THEN '' ELSE CONVERT(VARCHAR(10),[CAN].[MARRIAGEDATE],112) END AS [MARRIAGEDATE], RTRIM(ISNULL([CAN].[DECEASED], '')) AS [DECEASED], RTRIM(ISNULL([CAN].[SEPARATED], '')) AS [SEPARATED], RTRIM(ISNULL([CAN].[HOWSEPARATED], '')) AS [HOWSEPARATED], CASE [CAN].[DATESEPARATED] WHEN NULL THEN '' ELSE CONVERT(VARCHAR(10),[CAN].[DATESEPARATED],112) END AS [DATESEPARATED], CASE [CAN].[DECEASEDDATE] WHEN NULL THEN '' ELSE CONVERT(VARCHAR(10),[CAN].[DECEASEDDATE],112) END AS [DECEASEDDATE], RTRIM(ISNULL([CAN].[OCCUPATION], '')) AS [OCCUPATION], RTRIM(ISNULL([CAN].[SEARCH], '')) AS [SEARCH], RTRIM(ISNULL(CONVERT(VARCHAR(9),[CAN].[CONTACTNO]), '')) AS [CONTACTNO], RTRIM(ISNULL([CAN].[NOTES], '')) AS [NOTES], RTRIM(ISNULL([CAN].[AREA], '')) AS [AREA], RTRIM(ISNULL([CAN].[TOWN], '')) AS [TOWN], RTRIM(ISNULL([CAN].[GENDER],'')) AS [GENDER], RTRIM(ISNULL([CAN].[ADDRESSTYPE], '')) AS [ADDRESSTYPE], RTRIM(ISNULL([CAN].[SERVICETYPE], '')) AS [SERVICETYPE], RTRIM(ISNULL([CAN].[CRONUMBER], '')) AS [CRONUMBER], RTRIM(ISNULL([CAN].[VATNUMBER], '')) AS [VATNUMBER], --RTRIM(ISNULL([CAN].[FORENAME], '')) AS [FORENAME], --RTRIM(ISNULL([CAN].[SURNAME], '')) AS [SURNAME], RTRIM(ISNULL([CAN].[County], '')) AS [County], RTRIM(ISNULL([CAN].[PostalCode], '')) AS [PostalCode], RTRIM(ISNULL([CAN].[BankName], '')) AS [BankName], RTRIM(ISNULL([CAN].[BankAddress], '')) AS [BankAddress], RTRIM(ISNULL([CAN].[BankSortCode], '')) AS [BankSortCode], RTRIM(ISNULL([CAN].[BankAccNo], '')) AS [BankAccNo], RTRIM(ISNULL([CAN].[IBan], '')) AS [IBan], RTRIM(ISNULL([CAN].[Bic], '')) AS [Bic], RTRIM(ISNULL([MS].[Retired], 'N')) AS [Retired], RTRIM(ISNULL([CAN].[Banktype], '')) AS [Banktype], RTRIM(ISNULL([CAN].[EFTEmailAddress], '')) AS [EFTEmailAddress] FROM [dbo].[CaseAssociatesNames] [CAN] LEFT OUTER JOIN [dbo].[MiscCodes] [MS] ON [MS].[CDECODE] = [CAN].[MARTIALSTATUS] WHERE [CAN].[CODE] = @AssociateCode SELECT RTRIM([CT].[NAMECODE]) AS [NAMECODE], UPPER(RTRIM([CT].[TYPECODE])) AS [BankTypeCode], RTRIM([CT].[TYPECODE]) AS [TYPECODE], RTRIM([AST].[DESCRIPTION]) AS [SEARCHCODE], ISNULL([CT].[Retired], 'N') AS [Retired], CASE WHEN [UIC].[TOTAL] = 0 THEN 'N' ELSE 'Y' END AS [UsedInCase] FROM [dbo].[CaseAssoicatesTypes] [CT] INNER JOIN [dbo].[AssociateTypes] [AST] ON [AST].[CODE] = [CT].[TYPECODE] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[CaseContacts] [CC] WHERE [CC].[NAMECODE] = [CT].[NAMECODE] AND [CC].[CONTYPE] = [CT].[TYPECODE]) [UIC] WHERE [CT].[NAMECODE] = @AssociateCode SELECT RTRIM(ISNULL([CAC].[NAMECODE], '')) AS [NameCode], RTRIM(ISNULL(CAST([CAC].[KEYID] AS VARCHAR(20)), '')) AS [KeyId], RTRIM(ISNULL([CAC].[NAME], '')) AS [Name], RTRIM(ISNULL([CAC].[SALUTATION], '')) AS [Salutation], RTRIM(ISNULL([CAC].[JOBTITLE], '')) AS [JobTitle], RTRIM(ISNULL([CAC].[ADDRESS], '')) AS [Address], RTRIM(ISNULL([CAC].[PHONE], '')) AS [Phone], RTRIM(ISNULL([CAC].[FAX], '')) AS [Fax], RTRIM(ISNULL([CAC].[MOBILE], '')) AS [Mobile], RTRIM(ISNULL([CAC].[EMAIL], '')) AS [Email], RTRIM(ISNULL([CAC].[RELATIONSHIP], '')) AS [Relationship], RTRIM(ISNULL([CAC].[NOTES], '')) AS [Notes] FROM [dbo].[CaseAssociatesContacts] [CAC] WHERE [CAC].[NAMECODE] = @AssociateCode SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OtherCaseInvolvementTable FROM ( SELECT RTRIM(ISNULL([CC].[CASECODE], '')) AS [CASECODE], RTRIM(ISNULL([CC].[CONTYPE], '')) AS [CONTYPE], RTRIM(ISNULL([CC].[CONNUM], '')) AS [CONNUM], RTRIM(ISNULL([CC].[NAMECODE], '')) AS [NAMECODE], RTRIM(ISNULL([CON].[NAME], '')) AS [NAME], RTRIM(ISNULL([CC].[CONNUM], '')) AS [Seq], RTRIM(ISNULL([MAT].[DESCRIPTION], '')) AS [DESCRIPTION] FROM [dbo].[CaseContacts] [CC] LEFT OUTER JOIN [dbo].[Matters] [MAT] ON [MAT].[Code] = [CC].[CASECODE] LEFT OUTER JOIN [dbo].[Contacts] [CON] ON [CON].[Code] = [MAT].[ClientCode] WHERE [CC].[NAMECODE] = @AssociateCode) AS OtherCaseInvolvementTable ORDER BY [NAMECODE] ASC, [CONTYPE] ASC, [CASECODE] ASC SELECT * FROM #OtherCaseInvolvementTable SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_CaseAssociateFetchLoadData]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_CaseAssociateFetchLoadData] GO CREATE PROCEDURE [KAAS_CaseAssociateFetchLoadData] (@SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /******************************************************************************************************* * This procedure is used load the data for add professional page. * * 1. CaseAssociate grid. * * 2. Case Associate type list box. * * * * Stored Procedure Name : [dbo].[KAAS_CaseAssociateFetchLoadData] * * Copied from : [dbo].[ky_NETCaseAssociateFetchLoadData] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2019-05-30 Vinodhan K Searching, Paging and Sorting functionality added * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX SET @PageSize = ISNULL(@PageSize, 0) - 1; -- 0 BASED INDEX DECLARE @StartRow INT = NULL; DECLARE @EndRow INT = NULL; IF(@PageNumber > -1 AND @PageSize > 0) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(int, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT UPPER(CODE) AS CODE, [DESCRIPTION] FROM AssociateTypes WHERE [CODE] LIKE '%' + @SearchText + '%' OR [DESCRIPTION] LIKE '%' + @SearchText + '%') AS Test ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [CODE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [CODE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [DESCRIPTION] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [DESCRIPTION] END END DESC SELECT 0 AS [Row_Number], '' AS CODE, 'ALL' AS [DESCRIPTION] UNION ALL SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number]) + 1) --Including the dynamically included row where CODE = '', DESCRIPTION = 'ALL' FROM #FoundTable SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CaseAssociateInsertGeneral' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CaseAssociateInsertGeneral] END GO CREATE PROCEDURE [KAAS_CaseAssociateInsertGeneral] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This procedure is used To insert "Add Profession Details" in CaseAssociatesNames * * * * Stored Procedure Name : [dbo].[KAAS_CaseAssociateInsertGeneral] * * Copied from : [dbo].[ky_NETXMLCaseAssociateInsertProfessionalDetails] * * * * Modification History : * * 2019-05-31 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(6) DECLARE @Fullname VARCHAR(100) DECLARE @Salutation VARCHAR(30) DECLARE @JobTitle VARCHAR(50) DECLARE @Address VARCHAR(500) DECLARE @Company VARCHAR(80) DECLARE @DXRel VARCHAR(30) DECLARE @Email VARCHAR(100) DECLARE @FaxNo VARCHAR(20) DECLARE @Home VARCHAR(20) DECLARE @MobileNo VARCHAR(20) DECLARE @PhoneNo VARCHAR(20) DECLARE @Type VARCHAR(12) DECLARE @FirstName VARCHAR(50) DECLARE @SurName VARCHAR(50) DECLARE @County VARCHAR(100) DECLARE @PostalCode VARCHAR(100) DECLARE @Retired VARCHAR(1) DECLARE @Edit INT DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CAN].[Code], @Fullname = [CAN].[Fullname], @Salutation = [CAN].[Salutation], @JobTitle = [CAN].[JobTitle], @Address = [CAN].[Address], @Company = [CAN].[Company], @DXRel = [CAN].[DXRel], @Email = [CAN].[Email], @FaxNo = [CAN].[FaxNo], @Home = [CAN].[Home], @MobileNo = [CAN].[MobileNo], @PhoneNo = [CAN].[PhoneNo], @Type = [CAN].[Type], @FirstName = [CAN].[FirstName], @SurName = [CAN].[SurName], @County = [CAN].[County], @PostalCode = [CAN].[PostalCode], @Retired = [CAN].[Retired], @Edit = [CAN].[Edit] FROM OPENXML(@iSL, N'CAN') WITH ([Code] VARCHAR(6) 'Code', [Fullname] VARCHAR(100) 'Fullname', [Salutation] VARCHAR(30) 'Salutation', [JobTitle] VARCHAR(50) 'JobTitle', [Address] VARCHAR(500) 'Address', [Company] VARCHAR(80) 'Company', [DXRel] VARCHAR(30) 'DXRel', [Email] VARCHAR(100) 'Email', [FaxNo] VARCHAR(20) 'FaxNo', [Home] VARCHAR(20) 'Home', [MobileNo] VARCHAR(20) 'MobileNo', [PhoneNo] VARCHAR(20) 'PhoneNo', [Type] VARCHAR(12) 'Type', [FirstName] VARCHAR(50) 'FirstName', [SurName] VARCHAR(50) 'SurName', [County] VARCHAR(100) 'County', [PostalCode] VARCHAR(100) 'PostalCode', [Retired] VARCHAR(1) 'Retired', [Edit] INT 'Edit')[CAN] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH IF(@Edit = 0) BEGIN IF (SELECT TOP 1 1 FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code) IS NULL BEGIN INSERT INTO [dbo].[CaseAssociatesNames] ([CODE], [TYPE], [NAME], [SALUTATION], [TITLE], [COMPANY], [ADDRESS], [PHONENO], [FAXNO], [HOME], [MOBILENO], [EMAIL], [DXREF], [FORENAME], [SURNAME], [County], [PostalCode], [Retired]) VALUES(@Code, ISNULL(@Type, ''), @Fullname, @Salutation, @JobTitle, @Company, @Address, @PhoneNo, @FaxNo, @Home, @MobileNo, @Email, @DXRel, @FirstName, @SurName, @County, @PostalCode, @Retired) INSERT INTO [dbo].[CaseAssoicatesTypes] ([NAMECODE], [TYPECODE], [SEARCHCODE], [Retired]) SELECT [NEW].[NAMECODE], [NEW].[TYPECODE], [NEW].[SEARCHCODE], [NEW].[RETIRED] FROM (SELECT @Code AS [NAMECODE], @Type AS [TYPECODE], '' AS [SEARCHCODE], @Retired AS [RETIRED]) [NEW] LEFT OUTER JOIN [dbo].[CaseAssoicatesTypes] [CAT] ON [CAT].[NAMECODE] = [NEW].[NAMECODE] AND [CAT].[TYPECODE] = [NEW].[TYPECODE] WHERE [CAT].[NAMECODE] IS NULL SET @Result = 1 END ELSE BEGIN SET @Result = 0 END END ELSE BEGIN UPDATE [CAT] SET [CAT].[Retired] = @Retired FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @Code --AND TYPECODE = @Type UPDATE [CC] SET [CC].[Retired] = @Retired FROM [dbo].[CaseContacts] [CC] WHERE [CC].[NAMECODE] = @Code UPDATE [CAN] SET [CAN].[CODE] = @Code, [CAN].[TYPE] = ISNULL(@Type,''), [CAN].[NAME] = @Fullname, [CAN].[SALUTATION] = @Salutation, [CAN].[TITLE] = @JobTitle, [CAN].[COMPANY] = @Company, [CAN].[ADDRESS] = @Address, [CAN].[PHONENO] = @PhoneNo, [CAN].[FAXNO] = @FaxNo, [CAN].[HOME] = @Home, [CAN].[MOBILENO] = @MobileNo, [CAN].[EMAIL] = @Email, [CAN].[DXREF] = @DXRel, [CAN].[FORENAME] = @FirstName, [CAN].[SURNAME] = @SurName, [CAN].[County] = @County, [CAN].[PostalCode] = @PostalCode, [CAN].[Retired] = @Retired FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code SET @Result = 2 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CaseAssociateLoadMainGrid' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CaseAssociateLoadMainGrid] END GO CREATE PROCEDURE [dbo].[KAAS_CaseAssociateLoadMainGrid] (@CaseCode VARCHAR(20), @Retired VARCHAR(1) = 'N', @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL ) AS /******************************************************************************************************* * This procedure is used load the Case Associate Main Grid. * * * * Stored Procedure Name : [dbo].[KAAS_CaseAssociateLoadMainGrid] * * Copied from : [dbo].[ky_NETCaseAssociateLoadMainGrid] * * * * Modification History : * * 2019-07-11 Vinodhan K Created * * 2019-07-11 Vinodhan K Searching, Sorting, Pagination added * * 2020-01-29 Prabhu V Sorting functionality implemented as per FW * 2021-04-05 Sadiq Added trime to [DESCRIPTION] to remove extra space (11892) * * 2021-10-06 Sadiq Removed Pagination concept as moving to Dev extreme * * 2022-07-19 Revathy.D Added Pagination for grid data load on scrolling * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortColumn = 'Row_Number' SET @SortDirection = '' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM( SELECT CCN.[CaseCode], RTRIM(CCN.[CONTYPE]) AS [ConType], CCN.[ConNum], CCN.[NAMECODE] AS [ConNameCode], CCN.[SOLCODE] AS [SolCode], CCN.[SOLREF] AS [SolRef], CCN.[INSCODE] AS [InsCode], CCN.[ASSIGNEDCONTACT] AS [AssignedContact], CAC.[NAMECODE] AS [AssociateNameCode], CAC.[KEYID] AS [KeyId], CAC.[NAME] AS [ConName], CAC.[PHONE] AS [Phone], CAC.[EMAIL] AS [ConEmail], AST.[CODE] AS [Code], LTRIM(RTRIM(AST.[DESCRIPTION])) AS [Description], CAN.[CODE] AS [ConCode], CAN.[TYPE] AS [Type], CAN.[NAME] AS [AssociateName], CAN.[COMPANY] AS [Company], CAN.[ADDRESS] AS [Address], CAN.[PHONENO] AS [PhoneNo], CAN.[MOBILENO] AS [MobileNo], CAN.[EMAIL] AS [AssociateEmail], CAN.[SEARCH] AS [Search], CAN.[CONTACTNO] AS [ContactNo], CAN.[SALUTATION] AS [Salutation], CCN.[CONNUM] AS [Seq], CASE WHEN RTRIM(ISNULL(CAN.[COMPANY],'')) <> '' THEN RTRIM(CAN.[Name]) + ' ('+ RTRIM(CAN.[COMPANY]) +')' ELSE RTRIM(CAN.[Name]) END AS [NameCompany], CASE WHEN (RTRIM(ISNULL(CCN.[ForCopy],'0')) = '1' OR RTRIM(ISNULL(CCN.[ForCopy],'0')) = 'Y' ) THEN 'True' ELSE 'False' END AS [ForCopy], CAC.[NAME] AS [AssignedContactName], CAC.[PHONE] AS [AssignedContactPhone], ISNULL(CCN.[IsAssociateOtherSide],'False') AS [IsAssociateOtherSide], ISNULL(CCN.Retired,'N') AS [Retired] FROM [dbo].[CaseContacts] CCN LEFT OUTER JOIN [dbo].[CaseAssociatesContacts] CAC ON CAC.[KEYID] = CCN.[ASSIGNEDCONTACT] LEFT OUTER JOIN [dbo].[AssociateTypes] AST ON AST.[CODE] = CCN.[CONTYPE] LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CAN ON CAN.[CODE] = CCN.[NAMECODE] WHERE UPPER(CCN.[CASECODE]) = UPPER(@CaseCode) AND LEN(ISNULL(CCN.[NAMECODE],'')) >0 AND CCN.[NAMECODE] <> 'N/A' AND LEN(ISNULL(CAN.[NAME],''))>0 AND CAN.[NAME] <> 'N/A' AND ( @RETIRED = 'Y' OR ISNULL(CCN.Retired, 'N') <> 'Y') AND ( CCN.[CaseCode] LIKE '%' + @SearchText + '%' OR CCN.[ConType] LIKE '%' + @SearchText + '%' OR CAN.[NAME] LIKE '%' + @SearchText + '%' OR CAN.[ADDRESS] LIKE '%' + @SearchText + '%' OR CAN.[PHONENO] LIKE '%' + @SearchText + '%' OR CCN.[SOLREF] LIKE '%' + @SearchText + '%' OR CAN.[EMAIL] LIKE '%' + @SearchText + '%' OR CAN.[MOBILENO] LIKE '%' + @SearchText + '%' OR CAC.[NAME] LIKE '%' + @SearchText + '%' OR CAC.[PHONE] LIKE '%' + @SearchText + '%' OR ISNULL(CCN.Retired,'N') LIKE '%' + @SearchText + '%' ) ) AS FoundTable SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) ORDER BY CASE WHEN @SortColumn = 'Row_Number' THEN [CASECODE] END, CASE WHEN @SortColumn = 'Row_Number' THEN [CONTYPE] END, CASE WHEN @SortColumn = 'Row_Number' THEN [CONNUM] END, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CaseCode' THEN [CaseCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CaseCode' THEN [CaseCode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ConType' THEN [ConType] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ConType' THEN [ConType] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'AssociateName' THEN [AssociateName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'AssociateName' THEN [AssociateName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'PhoneNo' THEN [PhoneNo] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'PhoneNo' THEN [PhoneNo] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'SolRef' THEN [SolRef] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'SolRef' THEN [SolRef] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'AssociateEmail' THEN [AssociateEmail] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'AssociateEmail' THEN [AssociateEmail] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'MobileNo' THEN [MobileNo] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'MobileNo' THEN [MobileNo] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'AssignedContactName' THEN [AssignedContactName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'AssignedContactName' THEN [AssignedContactName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'AssignedContactPhone' THEN [AssignedContactPhone] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'AssignedContactPhone' THEN [AssignedContactPhone] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Retired' THEN [Retired] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Retired' THEN [Retired] END END DESC SELECT COUNT([Row_Number]) AS TotalRecords FROM #FoundTable SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CASEDIARYFetchActionTypes' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CASEDIARYFetchActionTypes] END GO Create PROCEDURE [dbo].[KAAS_CASEDIARYFetchActionTypes] (@LoginHandlerCode VARCHAR(10), @MatterCode VARCHAR(20) = '', @SearchText VARCHAR(4000) = '', @Retired VARCHAR(1) = 'N') AS /******************************************************************************************************* * This procedure is used to FETCH Action Type . * * * * Stored Procedure Name : [dbo].[KAAS_CASEDIARYFetchActionTypes] * * Copied from : [dbo].[ky_NETCASEDIARYFetchActionTypes] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2019-08-27 Vinodhan K Search functionality added (KEYHM-495) * * 2023-06-09 Nithyanandham M Retired has been Added in te input parameters * * and added in the where clause * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(10) SET @Code = (SELECT RTRIM(ISNULL([CSM].[CSWKTCODE], '')) AS [CsWktCode] FROM [dbo].[CaseMaster] [CSM] WHERE [CSM].[CSCODE] = @MatterCode) SELECT ISNULL(RTRIM([TMP].[WKCODE]),'') AS [Code], RTRIM(ISNULL([TMP].[WKDESC], '')) AS [Actions] FROM [dbo].[Templates] [TMP] WHERE ( ISNULL(@SearchText, '') = '' OR RTRIM(LTRIM(@SearchText)) = '' OR ( [TMP].[WKDESC] LIKE '%' + @SearchText + '%' ) ) AND ( ISNULL([TMP].[Dept], '') = '' OR [TMP].[Dept] = (SELECT [HAN].[Dept] FROM [dbo].[Handlers] [HAN] WHERE [HAN].[CODE] = @LoginHandlerCode)) AND ( ISNULL([TMP].[Retired],'N') in (@Retired, 'N' ) OR [TMP].[WKCODE] = @Code) SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CASEDIARYFetchActionWorkTypebyActionCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CASEDIARYFetchActionWorkTypebyActionCode] END GO CREATE PROCEDURE [KAAS_CASEDIARYFetchActionWorkTypebyActionCode] (@ActionCode VARCHAR(5), @SearchText VARCHAR(4000) = '') AS /******************************************************************************************************* * This procedure is used to FETCH Work Type by Action code. * * * * Stored Procedure Name : [dbo].[KAAS_CASEDIARYFetchActionWorkTypebyActionCode] * * Copied from : [dbo].[ky_NETCASEDIARYFetchActionWorkTypebyActionCode] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2019-08-27 Vinodhan K Search functionality added (KEYHM-495) * * 2023-06-14 Nithyanandham M select additional column's in the select query * *******************************************************************************************************/ BEGIN SET NOCOUNT ON --Case type action list SELECT T.[WORKTYPE], T.[ACTIONCODE], T.[SEQ], T.[TEXT1] AS [DESCRIPTION], T.[WKTCODE], T.[ACTIONCATEGORY], T.[STATUS], T.[MILESTONETYPE], T.[CASECODE], T.[DATE], T.[PROCESSTYPE], T.[FNCODE], T.[TEAMCODE], T.[DYSTARTTIME], T.[ACTIONID], T.[ORGINALACTIONID], T.[PRIORITY], T.[HIGHLIGHTED], T.[ATTACHMENTS], T.[PROCESSSTATE], T.[WORKPROCESS], T.[BILLABLE], T.[EMALADDRESS], T.[ADDRESSTO], T.[EMAIL], T.[SUBJECT], T.[DELEGATIONSTATUS], T.[DRAFTBILLNO], T.[DDStatus], T.[DStatus], T.[AlternativeRow], REPLACE( ( 'Double click the select action to process the following**Action Code: ' + ISNULL(T.[ACTIONCODE],'') + '**' + ISNULL(T.[TEXT1],'') + '****' + 'Associated document to generate:' + '**' + ISNULL((SELECT STUFF((SELECT '**' + RTRIM(ISNULL(TDTT.[NAME],'')) FROM [dbo].[TemplateActionDcouments] TADTT INNER JOIN [dbo].[TemplateDocuments] TDTT ON TADTT.[DOCUMENT] = TDTT.[CODE] WHERE TADTT.[ACTION] = T.[ACTIONCODE] FOR XML PATH('')), 1, 2, '')), 'Nil') + '****' + 'Associated action to process:**') + ISNULL((SELECT STUFF((SELECT '**' + Rtrim(Isnull(TATT.[DESC],'')) FROM [dbo].[TemplateActions] TATT INNER JOIN [dbo].[TemplateNextActions] TNATT ON TNATT.[NEXTACTION] = TATT.[ACTIONCODE] WHERE TNATT.[ACTION] = T.[ACTIONCODE] FOR XML PATH('')), 1, 2, '')), 'Nil') ,'**' ,CHAR(13)) AS [ToolTips], T.[PUBLISHER], T.CreateAsCompleted, T.[AutoPopulate], T.[RequiredAction], T.[HoldCasePlan], T.[KYC], T.[BillableUI], T.[UPDATEFIELD], T.[ChargeValue], T.[ChargeInterest], T.[Arrangement], T.[AssignActionTo], T.[AssignHandler], T.[AssignTeamActionTo], T.[AssignTeam], T.[AuthorisationRequired], T.[Authby], [Flag] FROM (SELECT AWT.[WORKTYPE], AWT.[ACTIONCODE], AWT.[SEQ], TAC.[DESC] AS [TEXT1], TAC.[WKTCODE], TAC.[ACTIONCATEGORY], TAC.[PUBLISHER], TAC.[STATUS], TAC.[MILESTONETYPE], '' AS [CASECODE], NULL AS [DATE], TAC.[PROCESSTYPE], NULL AS [FNCODE], NULL AS [TEAMCODE], NULL AS [DYSTARTTIME], 0 AS [ACTIONID], NULL AS [ORGINALACTIONID], TAC.[PRIORITY], TAC.[HIGHLIGHTED], NULL AS [ATTACHMENTS], NULL AS [PROCESSSTATE], 0 AS [WORKPROCESS], NULL AS [BILLABLE], NULL AS [EMALADDRESS], NULL AS [ADDRESSTO], NULL AS [EMAIL], NULL AS [SUBJECT], 0 AS [DELEGATIONSTATUS], 0 AS [DRAFTBILLNO], 0 AS [DDStatus], 0 AS [DStatus], [TAC].[CreateAsCompleted], [TAC].[AutoPopulate], [TAC].[RequiredAction], [TAC].[HoldCasePlan], [TAC].[KYC], [TAC].[BILLABLE] As [BillableUI], [TAC].[UPDATEFIELD], [TAC].[ChargeValue], [TAC].[ChargeInterest], [TAC].[Arrangement], [TAC].[AssignActionTo], [TAC].[AssignHandler], [TAC].[AssignTeamActionTo], [TAC].[AssignTeam], [TAC].[AuthorisationRequired], [TAC].[Authby], ROW_NUMBER() OVER(ORDER BY AWT.[WORKTYPE], AWT.[SEQ]) % 2 AS AlternativeRow, ISNULL(TAC.[flag], 0) AS [Flag] FROM dbo.[ActionWorkTypes] AWT INNER JOIN dbo.[TemplateActions] TAC ON AWT.[ACTIONCODE] = TAC.[ACTIONCODE] WHERE ( ISNULL(@SearchText, '') = '' OR RTRIM(LTRIM(@SearchText)) = '' OR ( [DESCRIPTION] LIKE '%' + @SearchText + '%' ) ) AND AWT.[WORKTYPE] = @ActionCode) AS T SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CASEDIARYFetchAttachments',N'P')IS NOT NULL DROP PROCEDURE [KAAS_CASEDIARYFetchAttachments] GO CREATE PROCEDURE [dbo].[KAAS_CASEDIARYFetchAttachments] (@DiaryId INT, @Handler NVARCHAR(20) = null ) AS /******************************************************************************************************* * Fetch Attachment list by diary number * * * * Stored Procedure Name : [dbo].[KAAS_CASEDIARYFetchAttachments] * * Copied from : [dbo].[ky_NETCASEDIARYFetchAttachments] * * * * Modification History : * * 2019-04-16 Vinodhan K Created * * 2022-02-14 Arun V Added Access log * 2022-09-07 Ghayathri.S.V Modified- Conditional order by clause based on Action Type * *******************************************************************************************************/ BEGIN SET NOCOUNT ON --SET @Handler = RTRIM(ISNULL(@Handler, 'ADM')) INSERT INTO [dbo].[DiaryAttachmentAccess] ([TrackReference], [Handler], [Comment]) SELECT [DAT].[TrackReference], @Handler, 'Listed for Diary' FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[DiaryID] = @DiaryId --Attachments list SELECT [DAT].[DiaryID] AS [DIARYID], [DAT].[TrackReference] AS [TRACKREFERENCE], RTRIM(ISNULL([DAT].[CASECODE], '')) AS [CASECODE], RTRIM(ISNULL([DAT].[NAME], '')) AS [NAME], RTRIM(ISNULL([DAT].[DOCUMENT], '')) AS [DOCUMENT], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH],'')),3, LEN(RTRIM(ISNULL([DAT].[FILEPATH],'')))- 2) END AS [FILEPATH], RTRIM(ISNULL([DAT].[TYPE], '')) AS [TYPE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) AS [CLASSDESCRIPTION], [DAT].[DATEENTERED] AS [DATEENTERED], RTRIM(ISNULL([DAT].[SYSTEM], 'N')) AS [SYSTEM], RTRIM(ISNULL([DAT].[DOCCLASS], '')) AS [DOCCLASS], [DV].[CurrentVersion] AS [CurrentVersion], RTRIM(ISNULL(DX.[IMDocID], '')) AS [IMDocID], RTRIM(ISNULL([DAT].[ENTEREDBY], '')) AS [ENTEREDBY], RTRIM(ISNULL([DAT].[LASTACCESSBY], '')) AS [LASTACCESSBY], RTRIM(ISNULL([DAT].[DICTATIONFILE], '')) AS [DICTATIONFILE], RTRIM(ISNULL([DAT].[SOURCE], '')) AS [Source], [MAT].uniqueid AS [UniqueId] FROM [dbo].[DiaryAttachments] [DAT] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE [DAV].[TrackReference] = [DAT].[TRACKREFERENCE]) [DV] LEFT OUTER JOIN [dbo].[DocumentClasses] [DCL] ON [DCL].[CLASSCODE] = [DAT].[DOCCLASS] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DAT].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1) LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] ON [DX].[TrackReference] = [DAT].[TrackReference] INNER JOIN [dbo].[matters] [MAT] ON [DAT].[CASECODE] = [MAT].[Code] INNER JOIN [dbo].diary [DIA] ON [DAT].[CASECODE] = [DIA].[CASECODE] AND [DAT].[DiaryID] = [DIA].[ACTIONID] WHERE [DAT].[DiaryID] = @DiaryId ORDER BY CASE WHEN [DIA].[ACTIONTYPE] = 'E' AND ([DAT].[TYPE] = 'msg' OR [DAT].[TYPE] = 'EML' ) THEN 1 ELSE 2 END, [DAT].[TrackReference] DESC SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CaseDiaryFetchTextField',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CaseDiaryFetchTextField] GO CREATE PROCEDURE [dbo].[KAAS_CaseDiaryFetchTextField] ( @ActionId INT ) AS /******************************************************************************************************* * Fetches the file path using Track Reference No. * * * * Stored Procedure Name : [dbo].[KAAS_CaseDiaryFetchTextField] * * * * Modification History : * * 2020-12-08 Sadiq Created * ********************************************************************************************************/ BEGIN SELECT ISNULL(CONVERT(VARCHAR(MAX), TEXT1), '') as Txt FROM DIARY WHERE ACTIONID = @ActionId END GO IF OBJECT_ID(N'KAAS_CaseSummaryPageLoad',N'P')IS NOT NULL DROP PROCEDURE [KAAS_CaseSummaryPageLoad] GO CREATE PROCEDURE [dbo].[KAAS_CaseSummaryPageLoad] (@CaseCode VARCHAR(20)) AS /******************************************************************************************************* * To get all detail about the matter to load it on to the grid. * * * * Stored Procedure Name : [dbo].[KAAS_CaseSummaryPageLoad] * * Copied from : [dbo].[ky_NETCaseSummaryPageLoad] * * * * Modification History : * * 2019-04-16 Vinodhan K Created * * 2019-05-29 John Ginnane KEYD-5916 - Changed "Last Action" to be the last completed action * *******************************************************************************************************/ BEGIN DECLARE @NCOMMAND nvarchar(MAX) SET NOCOUNT ON DECLARE @DraftBillValue DECIMAL(18, 2) DECLARE @IsSAM4 bit SET @IsSAM4 = [dbo].[ISSAM4]() IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0) FROM [dbo].[BillHeader] HED INNER JOIN [dbo].[BillDetails] BD ON BD.[DRAFTNO] = HED.[DRAFTNO] WHERE HED.[MATTER] = @CaseCode AND HED.[BILLNO] = 0' END ELSE BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0) FROM [dbo].[BillHead] HED INNER JOIN [dbo].[BillDetail] BD ON BD.[BillID] = HED.[BillingID] WHERE HED.[MatterCode] = @CaseCode AND HED.[BillStatus] <> ''Approved'' AND ISNULL(HED.[ProForma], '''') = ''Y''' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @CaseCode = @CaseCode, @DraftBillValue=@DraftBillValue OUTPUT DECLARE @Section68 VARCHAR(10) DECLARE @IsApproved VARCHAR(10) DECLARE @TimeBal INT DECLARE @ChargeBal DECIMAL(19, 2) DECLARE @TotalCharge Decimal(19, 2) DECLARE @TotalTime INT --Matter values that are re-used elsewhere in this procedure. SELECT @Section68 = ISNULL(MAT.[Section68],''), @IsApproved = ISNULL(CON.[Approved],'') FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE MAT.[Code] = @CaseCode DECLARE @LDIADATE DATETIME DECLARE @LDIAACTIONTYPE VARCHAR(1) DECLARE @LDIATEXT1 VARCHAR(MAX) DECLARE @LDIAFNCODE VARCHAR(10) DECLARE @LDIAFNNAME VARCHAR(50) SELECT TOP 1 @LDIADATE = LDIA.[DATE], @LDIAACTIONTYPE = LDIA.[ACTIONTYPE], @LDIATEXT1 = LDIA.[TEXT1], @LDIAFNCODE = LDIA.[FNCODE], @LDIAFNNAME = [FEC].[Name] FROM [dbo].[diary] LDIA INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON LDIA.FNCODE = [FEC].[CODE] WHERE LDIA.[CASECODE] = @CaseCode AND LDIA.[STATUS] = 1 ORDER BY LDIA.[DATE] DESC DECLARE @MDIADATE DATETIME DECLARE @MDIAACTIONTYPE VARCHAR(1) DECLARE @MDIATEXT1 VARCHAR(MAX) DECLARE @MDIAFNCODE VARCHAR(10) DECLARE @MDIAFNNAME VARCHAR(50) SELECT TOP 1 @MDIADATE= MDIA.[DATE], @MDIAACTIONTYPE = MDIA.[ACTIONTYPE], @MDIATEXT1 = MDIA.[TEXT1], @MDIAFNCODE = MDIA.[FNCODE], @MDIAFNNAME = [FEC].[Name] FROM [dbo].[diary] MDIA INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON MDIA.FNCODE = [FEC].[CODE] WHERE MDIA.[CASECODE] = @CaseCode AND MDIA.[HIGHLIGHTED] = 'Y' ORDER BY MDIA.[DATE] DESC DECLARE @NDIADATE DATETIME DECLARE @NDIAACTIONTYPE VARCHAR(1) DECLARE @NDIATEXT1 VARCHAR(MAX) DECLARE @NDIAFNCODE VARCHAR(10) DECLARE @NDIAFNNAME VARCHAR(50) SELECT TOP 1 @NDIADATE = NDIA.[DATE], @NDIAACTIONTYPE = NDIA.[ACTIONTYPE], @NDIATEXT1 = NDIA.[TEXT1], @NDIAFNCODE = NDIA.[FNCODE], @NDIAFNNAME = [FEC].[Name] FROM dbo.[diary] NDIA INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON NDIA.FNCODE = [FEC].[CODE] WHERE NDIA.[CASECODE] = @CaseCode AND NDIA.[STATUS] = 0 ORDER BY NDIA.[DATE] ASC DECLARE @TIEDATE DATETIME --Pino 2015-05-27 Start --SELECT @TIEDATE = (MAX(TIE.[DATE])) -- FROM [dbo].[TimeEntry] TIE -- WHERE TIE.[Matter] = @CaseCode IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL THEN CONVERT(DATETIME, NULL) WHEN DLG.[DATE] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE DLG.[DATE] END) FROM [dbo].[DebtorsLedger] DLG WHERE DLG.[MATTER] = @CaseCode' END ELSE BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL THEN CONVERT(DATETIME, NULL) WHEN TRN.[TransDate] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE TRN.[TransDate] END) FROM [dbo].[Transactions] TRN WHERE TRN.[Posted] = ''Y'' AND TRN.[MatterCode] = @CaseCode AND TRN.[DebtorsValue] <> 0 AND TRN.[CorrectionInd] = ''L'' AND ( ( TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'') OR ( TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @CaseCode = @CaseCode, @TIEDATE = @TIEDATE OUTPUT --Pino 2015-05-27 End DECLARE @LastTimeEntryDate DATETIME DECLARE @LastTimeEntryTime INT DECLARE @LastTimeEntryRate DECIMAL(10, 2) DECLARE @LastTimeEntryCharge DECIMAL(10, 2) DECLARE @LastTimeEntryTask VARCHAR(6) DECLARE @LastTimeEntryComment VARCHAR(1000) DECLARE @LastTimeEntryFE VARCHAR(10) DECLARE @LastTimeEntryFEName VARCHAR(50) DECLARE @TimeEntryTotalCharge DECIMAL(19, 2) DECLARE @TimeEntryTotalTime INT SELECT TOP (1) @LastTimeEntryDate = TIE.[DATE], @LastTimeEntryTime = TIE.[Time], @LastTimeEntryRate = TIE.[Rate], @LastTimeEntryCharge = TIE.[Charge], @LastTimeEntryTask = TIE.[Task], @LastTimeEntryComment = TIE.[Comment], @LastTimeEntryFE = TIE.[FeeEarn], @LastTimeEntryFEName = [FEC].[Name] FROM [dbo].[TimeEntry] TIE INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON [TIE].[FeeEarn] = [FEC].[CODE] WHERE TIE.[Matter] = @CaseCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun ORDER BY TIE.[Date] DESC, TIE.[Time] DESC SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0) SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0) -- Please see also: KAAS_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_PMatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_TLFetchTimeEntry. If you change any of these calculations, -- ensure the ones in there are changed as well. SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0), @TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0), @TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Charge], 0) END), 0), @ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0), @TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN CASE WHEN TIE.[Charge] = 0 THEN 0 ELSE CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME]) * ( (TIE.[Charge] - TIE.[BilledAmount]) / TIE.[Charge]))) END ELSE ISNULL(TIE.[Time], 0) END), 0), @TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Time], 0) END), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @CaseCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun DECLARE @DebtBal DECIMAL(19, 2) DECLARE @OutlayBal DECIMAL(19, 2) DECLARE @DebtBalDate DATETIME DECLARE @OutlayBalDate DATETIME DECLARE @ClientCurrent DECIMAL(19, 2) DECLARE @ClientDeposit DECIMAL(19, 2) -- Please see also: KAAS_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_TLFetchTimeEntry. If you change any of these calculations, -- ensure the ones in there are changed as well. -- To ensure SAM3 will retrieve these from [dbo].[matters] SET @DebtBal = 0 SET @OutlayBal = 0 SET @ClientCurrent = 0 SET @ClientDeposit = 0 IF @IsSAM4 = 1 BEGIN SET @NCOMMAND = N' SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)), @DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)), @OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)), @ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0)) FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @CaseCode AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] = ''L''' EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @DebtBal DECIMAL(19, 2) OUTPUT, @DebtBalDate DATETIME OUTPUT, @OutlayBal DECIMAL(19, 2) OUTPUT, @OutlayBalDate DATETIME OUTPUT, @ClientCurrent DECIMAL(19, 2) OUTPUT, @ClientDeposit DECIMAL(19, 2) OUTPUT', @CaseCode = @CaseCode, @DebtBal = @DebtBal OUTPUT, @DebtBalDate = @DebtBalDate OUTPUT, @OutlayBal = @OutlayBal OUTPUT, @OutlayBalDate = @OutlayBalDate OUTPUT, @ClientCurrent = @ClientCurrent OUTPUT, @ClientDeposit = @ClientDeposit OUTPUT END --Result Set 0 --Matter Data SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code], RTRIM(ISNULL(MAT.[Description], '')) AS [Description], RTRIM(ISNULL(MAT.[ClientCode], '')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '')) AS [CLName], RTRIM(ISNULL(CLT.[CLADDR], '')) AS [CLAddr], RTRIM(ISNULL(MAT.[FECode], '')) AS [FECode], RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName], RTRIM(ISNULL(MAT.[Dept], '')) AS [Dept], RTRIM(ISNULL(DPT.[DESC], '')) AS [Desc], RTRIM(MAT.WType) AS [WType], RTRIM(ISNULL(WKT.[DESC], '')) AS [WorkType], MAT.[Started] AS [Started], MAT.[EstFee] AS [EstFee], MAT.[ExpBillD] AS [ExpBillD], CONVERT(DECIMAL(19, 2), CASE WHEN @DebtBal <> 0 THEN @DebtBal ELSE ISNULL(MAT.[DebtBal], 0) END) AS [DebtBal], CONVERT(DECIMAL(19, 2), CASE WHEN @OutlayBal <> 0 THEN @OutlayBal ELSE ISNULL(MAT.[OutlayBal], 0) END) AS [OutlayBal], MAT.[OutlayBud] AS [OutlayBud], CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0 THEN @ClientCurrent + @ClientDeposit WHEN @ClientDeposit <> 0 THEN @ClientCurrent + @ClientDeposit ELSE ISNULL(MAT.[ClientBal], 0) END) AS [ClientBal], CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0 THEN @ClientCurrent ELSE ISNULL(MAT.[ClientCurBal], 0) END) AS [ClientCurBal], CONVERT(DECIMAL(19, 2), CASE WHEN @ClientDeposit <> 0 THEN @ClientDeposit ELSE ISNULL(MAT.[ClientDepBal], 0) END) AS [ClientDepBal], MAT.[StatuteLimits] AS [StatuteLimits], CTL.USERPROMPT1 AS [User1Label], RTRIM(ISNULL(MAT.[User1], '')) AS [User1Value], CTL.USERPROMPT2 AS [User2Label], RTRIM(ISNULL(MAT.[User2], '')) AS [User2Value], CTL.USERPROMPT3 AS [User3Label], RTRIM(ISNULL(MAT.[User3], '')) AS [User3Value], CTL.YourRef AS [YourRefLabel], RTRIM(ISNULL(MAT.[YourRef], '')) AS [YourRefValue], MAT.[Value] AS [Value], @TimeBal AS [TimeBal], CONVERT(VARCHAR(20), (CONVERT(INT, @TimeBal) / 60)) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @TimeBal) % 60), 2, 2) AS [TimeBalHours], @ChargeBal AS [ChargeBal], CONVERT(VARCHAR(20), (CONVERT(INT, @TotalTime) / 60)) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @TotalTime) % 60), 2, 2) AS [TotalHours], @TotalCharge AS [TotalCharge], MAT.[FileColour] AS [FileColour], RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef], RTRIM(ISNULL(MAT.[Status], '')) AS [Status], MAT.[StatuteLimits] AS [StatuteLims], RTRIM(ISNULL(MAT.[Comment], '')) AS [Comment], @DraftBillValue AS [DraftBillTotal], @TIEDATE AS [LastBillDate], @LDIADATE AS [LastActionDate], RTRIM(ISNULL(@LDIAActionType, '')) AS [LastActionType], RTRIM(ISNULL(@LDIATEXT1, '')) AS [LastActionText], RTRIM(ISNULL(@LDIAFNCODE, '')) AS [LastActionFE], RTRIM(ISNULL(@LDIAFNNAME, '')) AS [LastActionFEName], @MDIADATE AS [LastMilestoneDate], RTRIM(ISNULL(@MDIAActionType, '')) AS [LastMilestoneType], RTRIM(ISNULL(@MDIATEXT1, '')) AS [LastMilestoneText], RTRIM(ISNULL(@MDIAFNCODE, '')) AS [LastMilestoneFE], RTRIM(ISNULL(@MDIAFNNAME, '')) AS [LastMilestoneFEName], @NDIADATE AS [NextActionDate], RTRIM(ISNULL(@NDIAActionType, '')) AS [NextActionType], RTRIM(ISNULL(@NDIATEXT1, '')) AS [NextActionText], RTRIM(ISNULL(@NDIAFNCODE, '')) AS [NextActionFE], RTRIM(ISNULL(@NDIAFNNAME, '')) AS [NextActionFEName], @LastTimeEntryDate AS [LastTimeEntryDate], @LastTimeEntryTime AS [LastTimeEntryTime], @LastTimeEntryRate AS [LastTimeEntryRate], @LastTimeEntryCharge AS [LastTimeEntryCharge], @LastTimeEntryTask AS [LastTimeEntrytask], @LastTimeEntryComment AS [LastTimeEntryComment], @LastTimeEntryFE AS [LastTimeEntryFE], @LastTimeEntryFEName AS [LastTimeEntryFEName], @TimeEntryTotalCharge AS [TimeEntryTotalCharge], @TimeEntryTotalTime AS [TotalTime], STC.[DESCRIPTION] AS [StatusCodeDescription], CSM.[CSWKTCODE] AS [CSWKTCode], TMP.[WKDESC] AS [WKDesc], CASE WHEN MAT.[ShowCommentInAlarm] = 'Y' THEN 'True' ELSE 'False' END AS [ShowCommentInAlarm], RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [FileColourDescription], ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB], @Section68 AS [Section68], @IsApproved AS [IsApproved] FROM dbo.[matters] MAT LEFT JOIN dbo.[WorkTypes] WKT ON WKT.[CODE] = MAT.[WType] LEFT OUTER JOIN dbo.[Departments] DPT ON DPT.[CODE] = MAT.[Dept] LEFT OUTER JOIN dbo.[Handlers] HAN ON HAN.[CODE] = MAT.[FECode] LEFT OUTER JOIN dbo.[client] CLT ON CLT.[CLCODE] = MAT.[ClientCode] LEFT OUTER JOIN dbo.[StatusCodes] STC ON STC.[CODE] = MAT.[Status] LEFT OUTER JOIN dbo.[CaseMaster] CSM LEFT OUTER JOIN dbo.[Templates] TMP ON TMP.[WKCODE] = CSM.[CSWKTCODE] ON CSM.[CSCODE] = MAT.[Code] LEFT OUTER JOIN [dbo].[FileColours] FCL ON FCL.[COLOURCODE] = MAT.[FileColour] CROSS JOIN [CONTROL] [Ctl] WHERE MAT.[Code] = @CaseCode --Result Set 1 --WIP SELECT TIES.[FeeEarn] AS [FeeEarn], TIES.[NAME] AS [Name], CONVERT(VARCHAR(20), TIES.[TOTALTIME] / 60) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [FETotalHours], TIES.[Charge] AS [FECharge], TIES.[ChargeBal] AS [FEChargeBal], CONVERT(VARCHAR(20), TIES.[WIPTOTALTIME] / 60) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[WIPTOTALTIME] % 60)), 2, 2) AS [FEWIPHours] FROM ( SELECT TIE.[FeeEarn] AS [FeeEarn], HAN.[NAME] AS [NAME], ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME], SUM(CONVERT(DECIMAL(18, 2),ISNULL(TIE.[Charge],0))) AS [Charge], SUM(CONVERT(DECIMAL(18, 2), CASE WHEN @IsSAM4 = 1 AND TIE.[InvoiceNo] <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN ISNULL(TIE.[Charge],0) - ISNULL(TIE.[BilledAmount],0) ELSE ISNULL(TIE.[Charge],0) END)) AS [ChargeBal], CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), ISNULL(SUM(CASE WHEN @IsSAM4 = 1 AND [TIE].[InvoiceNo] <> 0 THEN 0 WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0 THEN 0 ELSE TIE.[TIME] END) , 0)) * CASE WHEN SUM(CONVERT(DECIMAL(18, 2), CASE WHEN @IsSAM4 = 1 AND [TIE].[InvoiceNo] <> 0 THEN 0 WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0 THEN 0 ELSE TIE.[Charge] END)) = 0 THEN 0 ELSE SUM(CONVERT(DECIMAL(18, 2), CASE WHEN @IsSAM4 = 1 AND TIE.[InvoiceNo] <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) ELSE ISNULL(TIE.[Charge],0) END)) / SUM(CONVERT(DECIMAL(18, 2), CASE WHEN @IsSAM4 = 1 AND [TIE].[InvoiceNo] <> 0 THEN 0 WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0 THEN 0 ELSE TIE.[Charge] END)) END)) AS [WIPTOTALTIME] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[MATTER] = MAT.[Code] INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = TIE.[FeeEarn] WHERE TIE.[MATTER] = @CaseCode AND TIE.[DATE] < GETDATE() AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun AND TIE.[REC_IRR] <> 'N' GROUP BY TIE.[FEEEARN], HAN.[NAME]) TIES ORDER BY TIES.[ChargeBal] DESC, TIES.[TOTALTIME] DESC --Result Set 2 -- Critical dates SELECT ISNULL(CONVERT(VARCHAR, DIA.[DATE], 106), '') AS [DiaryDate], RTRIM(ISNULL(DIA.[FNCODE],'')) AS [Who], RTRIM(ISNULL(DIA.[TEXT1],'')) AS [Description], CASE RTRIM(ISNULL([Status], '')) WHEN '1' THEN 'True' ELSE 'False' END AS [Status] FROM [dbo].[diary] DIA WHERE DIA.[ACTIONTYPE] = 'c' AND DIA.[CASECODE] = @CaseCode ORDER BY DIA.[date] --Result Set 3 --Court Date Grid SELECT ISNULL(CONVERT(VARCHAR, DIA.[DATE], 106), '') AS [Date], DIA.[FNCODE] AS [FNCode], DIA.[TEXT1] AS [CourtDate] FROM [dbo].[diary] DIA WHERE DIA.[ACTIONTYPE] = 'o' AND DIA.[CASECODE] = @CaseCode --Result Set 4 --Activity to Date SELECT TIES.[Activity], CASE WHEN TIES.[TOTALTIME] < 0 THEN '-' ELSE '' END + CONVERT(VARCHAR(20), ABS(TIES.[TOTALTIME]) / 60) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (ABS(TIES.[TOTALTIME]) % 60)), 2, 2) AS [ActivityToDateTime], TIES.[Value] AS [ActivityToDateValue] FROM ( SELECT TIE.[TASK] AS [Task], CASE WHEN TSC.[DESC] IS NULL THEN 'Task Code: ' + ISNULL(TIE.[TASK], '') ELSE RTRIM(ISNULL(TSC.[DESC],'')) END AS [Activity], ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME], SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[TasksCodes] TSC ON TSC.[CODE] = TIE.[Task] ON TIE.[MATTER] = MAT.[Code] WHERE TIE.[MATTER] = @CaseCode AND TIE.[DATE] < GETDATE() AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun AND TIE.[REC_IRR] <> 'N' AND TIE.[Task] <> 'WRI' GROUP BY TIE.[TASK], CASE WHEN TSC.[DESC] IS NULL THEN 'Task Code: ' + ISNULL(TIE.[TASK], '') ELSE RTRIM(ISNULL(TSC.[DESC],'')) END) TIES ORDER BY TIES.[Value] DESC, TIES.[TOTALTIME] DESC --Result Set 5 --UNDERTAKINGS SELECT UND.[DESCRIPTION] AS [Description], UND.[VALUE] AS [Value], UND.[WHO] AS [Who], CASE [GIVENORRECEIVED] WHEN 'G' THEN 'Given' WHEN 'R' THEN 'Received' ELSE '' END AS [GivenOrReceived] FROM [dbo].[UNDERTAKINGS] UND WHERE UND.[MATTER] = @CaseCode --Result Set 6 --Total Time [Activity] SELECT CONVERT(VARCHAR(20), TIES.[TOTALTIME] / 60) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [ActivityTotalTime], TIES.[Value] AS [ActivityTotalValue] FROM ( SELECT ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME], SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[MATTER] = MAT.[Code] WHERE TIE.[MATTER] = @CaseCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) AND TIE.[TASK] <> 'WRI') TIES --Result Set 7 --Write off time SELECT TIES.[WriteOffValue] As [WriteOffValue] FROM ( SELECT SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [WriteOffValue] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[MATTER] = MAT.[Code] WHERE TIE.[MATTER] = @CaseCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) AND TIE.[Task] = 'WRI') TIES --Result Set 8 --Date for Debtor Ledger IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT [dbo].[KAAS_FN_DateDiffVerbose](LDL.[LastDebtLedgerDate], LDL.[TODAY]) AS [DebtLedgerOSVerbose], CASE WHEN DATEDIFF(DAY, LDL.[LastDebtLedgerDate], LDL.[TODAY]) > 0 THEN DATEDIFF(DAY, LDL.[LastDebtLedgerDate], LDL.[TODAY]) ELSE 0 END AS [DebtLedgerOSDays] FROM ( SELECT GetDate() AS [TODAY], MAX(DTL.[DATE]) AS [LastDebtLedgerDate] FROM [dbo].[DebtorsLedger] DTL WHERE DTL.[MATTER] = @CaseCode) LDL' EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20)', @CaseCode = @CaseCode END ELSE BEGIN SET @NCOMMAND = N' SELECT [dbo].[KAAS_FN_DateDiffVerbose](LDL.[LastDebtLedgerDate], LDL.[TODAY]) AS [DebtLedgerOSVerbose], CASE WHEN DATEDIFF(DAY, LDL.[LastDebtLedgerDate], LDL.[TODAY]) > 0 THEN DATEDIFF(DAY, LDL.[LastDebtLedgerDate], LDL.[TODAY]) ELSE 0 END AS [DebtLedgerOSDays] FROM ( SELECT GetDate() AS [TODAY], @DebtBalDate AS [LastDebtLedgerDate]) LDL' EXECUTE sp_executesql @NCOMMAND, N'@DebtBalDate DATETIME', @DebtBalDate = @DebtBalDate END --Result Set 9 --Date for Matter Ledger (Outstanding) IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT [dbo].[KAAS_FN_DateDiffVerbose](LDL.[LastMatLedgerDate], LDL.[TODAY]) AS [MatLedgerOSVerbose], CASE WHEN DATEDIFF(DAY, LDL.[LastMatLedgerDate], LDL.[TODAY]) > 0 THEN DATEDIFF(DAY, LDL.[LastMatLedgerDate], LDL.[TODAY]) ELSE 0 END AS [MatLedgerOSDays] FROM ( SELECT GetDate() AS [TODAY], MAX(MAL.[DATE]) AS [LastMatLedgerDate] FROM [dbo].[MatterLedger] MAL WHERE MAL.[MATTER] = @CaseCode AND ISNULL(MAL.[VALUEO], 0) <> 0) LDL' EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20)', @CaseCode = @CaseCode END ELSE BEGIN SET @NCOMMAND = N' SELECT [dbo].[KAAS_FN_DateDiffVerbose](LDL.[LastMatLedgerDate], LDL.[TODAY]) AS [MatLedgerOSVerbose], CASE WHEN DATEDIFF(DAY, LDL.[LastMatLedgerDate], LDL.[TODAY]) > 0 THEN DATEDIFF(DAY, LDL.[LastMatLedgerDate], LDL.[TODAY]) ELSE 0 END AS [MatLedgerOSDays] FROM ( SELECT GetDate() AS [TODAY], @OutlayBalDate AS [LastMatLedgerDate]) LDL' EXECUTE sp_executesql @NCOMMAND, N'@OutlayBalDate DATETIME', @OutlayBalDate = @OutlayBalDate END -- PLEASE NOTE THAT THE CALCULATION BELOW IS ALSO USED IN KAAS_TLFetchTimeEntry, so -- please modify both procedures if this needs to be changed. -- Result Set 10 -- The fees issued to date IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT ISNULL(SUM((CASE WHEN HED.[INVCR] = ''I'' THEN TRN.[VALUE] ELSE TRN.[VALUE] * - 1 END)), 0) AS [FeesIssued] FROM [dbo].[BatchH] HED INNER JOIN [dbo].[BatchDetails] TRN ON TRN.[BATCHNO] = HED.[BATCHNO] WHERE HED.[MATTER] = @CaseCode AND HED.[POSTED] = ''Y'' AND TRN.[TYPE] = ''I'' AND TRN.[OUTLAY] = ''F''' END ELSE BEGIN SET @NCOMMAND = N' DECLARE @TotalFeesBilled DECIMAL(22, 2) SELECT @TotalFeesBilled = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[TransactionsHeaders] HED INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') WHERE HED.[MatterCode] = @CaseCode --values imported from Axxia SELECT @TotalFeesBilled = @TotalFeesBilled + ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[Transactions] TRN LEFT OUTER JOIN [dbo].[TransactionsHeaders] HED ON HED.[BatchNo] = TRN.[BatchNo] WHERE TRN.[MatterCode] = @CaseCode AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') AND HED.[BatchNo] IS NULL SELECT @TotalFeesBilled AS [FeesIssued]' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20)', @CaseCode = @CaseCode -- Result Set 11 -- Current outstanding fees IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(DTL.[OSFees], 0)), 0)) AS [OSFees] FROM [dbo].[DebtorsLedger] DTL WHERE DTL.[matter] = @CaseCode' END ELSE BEGIN SET @NCOMMAND = N' SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[FeesOS], 0)), 0)) AS [OSFees] FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @CaseCode AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] = ''L''' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20)', @CaseCode = @CaseCode -- Result set 12 -- Print job tracker totals - KEYD-4348 DECLARE @DOCBILLED DECIMAL(19, 2) IF [dbo].[ISSAM4]() = 1 BEGIN SET @NCOMMAND = N' SELECT @DOCBILLED = SUM(ISNULL(TRN.[NominalValue], 0)) * -1 FROM [dbo].[TransactionsHeaders] AS HED INNER JOIN [dbo].[Transactions] AS TRN ON HED.[BatchNo] = TRN.[BatchNo] WHERE HED.[Posted] = ''Y'' AND HED.[XnType] = ''I'' AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''M'' AND TRN.[OutlayCode] = ISNULL((SELECT TOP 1 [KeyValue] FROM [dbo].[Settings] WHERE [KeyName] = ''PrintLedgerOutlayCode''), '''') AND TRN.[CorrectionInd] = ''L'' AND HED.[MatterCode] = @CaseCode' EXECUTE SP_EXECUTESQL @NCOMMAND, N'@CaseCode VARCHAR(20), @DOCBILLED DECIMAL(19, 2)', @CaseCode = @CaseCode, @DOCBILLED = @DOCBILLED END ELSE BEGIN SET @NCOMMAND = N' SELECT @DOCBILLED = SUM(ISNULL(BAD.[VALUE], 0)) FROM [dbo].[BatchH] AS BAH INNER JOIN [dbo].[BatchDetails] AS BAD ON BAH.[BATCHNO] = BAD.[BATCHNO] INNER JOIN [dbo].[control] AS CON ON BAD.[CODE] = CON.[MISCOUTLAY] WHERE BAH.[POSTED] = ''Y'' AND BAH.[TYPE]= ''I'' AND BAD.[OUTLAY] = ''F'' AND BAD.[OUTLAYCODE] = ISNULL((SELECT TOP 1 [KeyValue] FROM [dbo].[Settings] WHERE [KeyName] = ''PrintLedgerOutlayCode''), '''') AND BAH.[MATTER] = @CaseCode' EXECUTE SP_EXECUTESQL @NCOMMAND, N'@CaseCode VARCHAR(20), @DOCBILLED DECIMAL(19, 2)', @CaseCode = @CaseCode, @DOCBILLED = @DOCBILLED END SELECT ISNULL(SUM(ISNULL(PJT.[Cost], 0)), 0) AS [TotalDoc], ISNULL(SUM(ISNULL(CASE WHEN ISNULL(PJT.[InvoiceNo], 0) <= 0 AND ISNULL(PJT.[Status], '') = 'Printed' THEN ISNULL(PJT.[Cost], 0) ELSE 0 END, 0)), 0) AS [UnbilledDoc], ISNULL(@DOCBILLED, 0) AS [BilledDoc], ISNULL(SUM(ISNULL(CASE WHEN ISNULL(PJT.[Status], '') <> 'Printed' THEN ISNULL(PJT.[Cost], 0) ELSE 0 END, 0)), 0) AS [WriteOffDoc] FROM [dbo].[matters] AS MAT LEFT OUTER JOIN [dbo].[PrintJobTracker] AS PJT ON MAT.[Code] = PJT.[MatterCode] WHERE MAT.[Code] = @CaseCode SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CaseSummaryUpdateEstimateFee' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CaseSummaryUpdateEstimateFee] END GO CREATE PROCEDURE KAAS_CaseSummaryUpdateEstimateFee ( @CaseCode VARCHAR(20), @EstimateFee DECIMAL(18,2), @CurrentUser VARCHAR(5) ) AS /******************************************************************************************************************************** * * Copied from ky_NETCaseSummaryUpdateEstimateFee * * Used to update EstimateFee details * * Modification History * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2016-09-28 Arun Have added estimated fee log * 2020-01-03 Ganapathy Recreated ********************************************************************************************************************************/ BEGIN DECLARE @OldEstimateValue DECIMAL(17,2) SELECT @OldEstimateValue = EstFee FROM Matters WHERE Code = @CaseCode IF(@OldEstimateValue <> @EstimateFee ) BEGIN INSERT INTO MatterEstimateFeeLogs ( [Log], [Mattercode], [Who], [EstimateFee] ) VALUES ( (CASE WHEN @OldEstimateValue = '0.00' then 'Added' when @OldEstimateValue <> '0.00' and @EstimateFee = '0.00' THEN 'Deleted' ELSE 'Changed' END), @CaseCode, @CurrentUser, @EstimateFee ) END UPDATE Matters SET EstFee = @EstimateFee WHERE Code = @CaseCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CaseSummaryUpdateExpBillD' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CaseSummaryUpdateExpBillD] END GO CREATE PROCEDURE [dbo].[KAAS_CaseSummaryUpdateExpBillD] ( @CaseCode VARCHAR(20), @ExpBillD VARCHAR(20) ) AS /******************************************************************************************************************************** * * Copied from ky_NETCaseSummaryUpdateExpBillD * * Used to update expected bill date * * Modification History * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2020-01-03 Ganapathy Recreated ********************************************************************************************************************************/ BEGIN UPDATE Matters SET ExpBillD = @ExpBillD WHERE Code = @CaseCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CaseWorkflowSetupUDFDelete' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CaseWorkflowSetupUDFDelete] END GO CREATE PROCEDURE [dbo].[KAAS_CaseWorkflowSetupUDFDelete] (@UDFILE VARCHAR(50), @UDUVCODE VARCHAR(50), @UDWKCODE VARCHAR(50), @UDSEQ SMALLINT) /************************************************************************************************ * This procedure is used Delete the information for work flow Action Page file types * * * * * Stored Procedure Name : [dbo].[KAAS_CaseWorkflowSetupUDFDelete] * * Copied from : [dbo].[ky_NETCaseWorkflowSetupUDFDelete] * * * * Modification History : * * 2023-07-07 Nithyanandham M Created * ************************************************************************************************/ AS BEGIN SET NOCOUNT ON DELETE [UTWT] FROM [dbo].[UDFTemplatesWorkTypes] [UTWT] WHERE [UTWT].[UDFILE] = @UDFILE AND [UTWT].[UDUVCODE] = @UDUVCODE AND [UTWT].[UDWKCODE] = @UDWKCODE AND [UTWT].[UDSEQ] = @UDSEQ DECLARE @UTWT TABLE ([id] SMALLINT IDENTITY(1, 1), [UDUVCODE] CHAR(30), [UDFILE] CHAR(5), [UDSEQ] SMALLINT) INSERT INTO @UTWT ([UDUVCODE], [UDFILE], [UDSEQ]) SELECT [UTWT].[UDUVCODE], [UTWT].[UDFILE], [UTWT].[UDSEQ] FROM [dbo].[UDFTemplatesWorkTypes] [UTWT] WHERE [UTWT].[UDWKCODE] = @UDWKCODE ORDER BY [UTWT].[UDSEQ] UPDATE [UTWT] SET [UTWT].[UDSEQ] = [UTN].[id] FROM @UTWT UTN INNER JOIN [dbo].[UDFTemplatesWorkTypes] [UTWT] ON [UTWT].[UDFILE] = [UTN].[UDFILE] AND [UTWT].[UDUVCODE] = [UTN].[UDUVCODE] AND [UTWT].[UDWKCODE] = @UDWKCODE AND [UTWT].[UDSEQ] = [UTN].[UDSEQ] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CCFetchPrecedent' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CCFetchPrecedent] END GO CREATE PROCEDURE [dbo].[KAAS_CCFetchPrecedent] (@DIARYID INT) AS /******************************************************************************************* * * [dbo].[ky_NETCCFetchPrecedent] * * Load the file in precedent for Client Case Page update action. * * Modification History * 2016-12-15 Pino Carafa Imported into Framework V2 * 2016-12-15 Pino Carafa Coding standards * 2016-12-15 Pino Carafa Use UNC Alias * 2016-12-15 Pino Carafa Remove superfluous last column named "Expr1" * 2020-03-05 Arun V Copied from ky_NETCCFetchPrecedent *******************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM([TDC].[CODE]) AS [CODE], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([TDC].[FILEPATH], '')) ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL([TDC].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([TDC].[FILEPATH], ''))) - 2) END AS [FILEPATH], RTRIM([TDC].[NAME]) AS [NAME], [DAT].[DiaryID] AS [DIARYID], [DAT].[TrackReference] AS [TRACKREFERENCE] FROM [dbo].[DiaryAttachments] [DAT] INNER JOIN [dbo].[TemplateDocuments] [TDC] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([TDC].[FILEPATH], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([TDC].[FILEPATH], 1, 1) ON [TDC].[CODE] = [DAT].[NAME] WHERE [DAT].[DiaryID] = @DIARYID SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_ChangeApplytoAllProperty',N'P')IS NOT NULL DROP PROCEDURE KAAS_ChangeApplytoAllProperty GO CREATE PROC KAAS_ChangeApplytoAllProperty @ContactCode VARCHAR(20), @Status BIT=0 AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_ChangeApplytoAllProperty] * * Copied from : [dbo].[Ky_NetChangeApplytoAllProperty] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN UPDATE [ContactNETPrivileges] SET ApplyToNewMatters=@Status WHERE ContactCode=@ContactCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ChangeContactPrivilegeGroup' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ChangeContactPrivilegeGroup] END GO CREATE PROCEDURE KAAS_ChangeContactPrivilegeGroup (@ContactCode VARCHAR(10), @GroupID INT, @BitOnOrOff INT) AS /******************************************************************************************************* * Sets or unsets whether a matter is part of a particular Privilege Group. * * * * Stored Procedure Name : [dbo].[KAAS_ChangeContactPrivilegeGroup] * * Copied from : [dbo].[ky_NETChangeContactPrivilegeGroup] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @BitWiseID BIGINT --DECLARE @ContactCode VARCHAR(20) --SET @ContactCode = (SUBSTRING(@MatterCode,0,CHARINDEX('/',@MatterCode ,0))) IF EXISTS (SELECT TOP 1 1 FROM [Contacts] WHERE [Code] = @ContactCode) BEGIN --IF the matter EXISTS SELECT @BitWiseID = SNG.[BitWiseID] FROM [dbo].[SecurityNETGroups] SNG WHERE SNG.[GroupID] = @GroupID IF (NOT @BitWiseID IS NULL) BEGIN --IF the security group EXISTS -- Create Privileges IF the record doesn't exist yet -- (i.e. matter was accessible to all users) INSERT INTO [dbo].[ContactNETPrivileges] ([ContactCode], [Previleges]) SELECT NCNP.[ContactCode], NCNP.[Privileges] FROM (SELECT @ContactCode AS ContactCode, CONVERT(BIGINT,0) AS [Privileges]) NCNP INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = NCNP.[ContactCode] LEFT OUTER JOIN [dbo].[ContactNETPrivileges] OCNP ON OCNP.[ContactCode] = NCNP.[ContactCode] WHERE OCNP.[ContactCode] IS NULL -- Set Privileges - Bit OR will set it AS always ON, -- then we can simply subtract IF it's to be set off UPDATE CNP SET CNP.[Previleges] = ( ISNULL(CONVERT(BIGINT, CNP.Previleges), CONVERT(BIGINT, 0)) | @BitWiseID) - CASE WHEN @BitOnOrOff = 0 THEN @BitWiseID ELSE 0 END FROM [dbo].[ContactNETPrivileges] CNP WHERE CNP.[ContactCode] = @ContactCode -- If all privileges are unchecked, the matter is deemed to be accessible -- to all, AND the MatterNetPrivileges record can be deleted. DELETE CNP FROM [dbo].[ContactNETPrivileges] CNP WHERE CNP.[ContactCode] = @ContactCode AND ISNULL(CONVERT(BIGINT, CNP.[Previleges]), CONVERT(BIGINT, 0)) = CONVERT(BIGINT, 0) END --IF the security group EXISTS --EXEC ky_NETSPChangeMatterPrivilegeGroup @MatterCode,@GroupID,@BitOnOrOff END --IF the matter EXISTS END GO IF EXISTS(SELECT TOP 1 1 FROM sys.[objects] SO WHERE SO.[name] = N'KAAS_ChangeMatterPrivilegeGroup' AND SO.[type] = 'P' ) BEGIN DROP PROCEDURE [dbo].[KAAS_ChangeMatterPrivilegeGroup] END GO CREATE PROCEDURE [dbo].[KAAS_ChangeMatterPrivilegeGroup] ( @matter VARCHAR(20), @GroupID INT, @BitOnOrOff INT ) AS /******************************************************************************************************* * Sets or unsets whether a matter is part of a particular Privilege Group * * * * Stored Procedure Name : [dbo].[KAAS_ChangeMatterPrivilegeGroup] * * Copied From : [dbo].[ky_NETSPChangeMatterPrivilegeGroup] * * * * Modification History: * * 2021-08-13 Balamurugan.C Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @BitWiseID BIGINT IF EXISTS ( SELECT TOP 1 1 FROM [dbo].[Matters] MAT WHERE [MAT].[Code] = @matter ) BEGIN --IF the matter EXISTS SELECT @BitWiseID = [SNG].[BitWiseID] FROM [dbo].[SecurityNETGroups] SNG WHERE [SNG].[GroupID] = @GroupID IF (NOT @BitWiseID IS NULL) BEGIN --IF the security group EXISTS -- Create Privileges IF the record doesn't exist yet -- (i.e. matter was accessible to all users) INSERT INTO [dbo].[MatterNetPrivileges] ( [Matter], [Privileges] ) SELECT [NMNP].[Matter], [NMNP].[Privileges] FROM ( SELECT @matter AS [Matter], CONVERT(BIGINT, 0) AS [Privileges] ) NMNP INNER JOIN [dbo].[Matters] MAT ON [MAT].[Code] = [NMNP].[Matter] LEFT OUTER JOIN [dbo].[MatterNETPrivileges] OMNP ON [OMNP].[MATTER] = NMNP.[MATTER] WHERE [OMNP].[MATTER] IS NULL -- Set Privileges - Bit OR will set it AS always ON, -- then we can simply subtract IF it's to be set off UPDATE [MNP] SET [MNP].[Privileges] = ( ISNULL(CONVERT(BIGINT, [MNP].[Privileges]), CONVERT(BIGINT, 0)) | @BitWiseID) - CASE WHEN @BitOnOrOff = 0 THEN @BitWiseID ELSE 0 END FROM [dbo].[MatterNetPrivileges] MNP WHERE [MNP].[MATTER] = @matter -- If all privileges are unchecked, the matter is deemed to be accessible -- to all, AND the MatterNetPrivileges record can be deleted. DELETE [MNP] FROM [dbo].[MatterNetPrivileges] MNP WHERE [MNP].[MATTER] = @matter AND ISNULL(CONVERT(BIGINT, [MNP].[Privileges]), CONVERT(BIGINT, 0)) = CONVERT(BIGINT, 0) END --IF the security group EXISTS END --IF the matter EXISTS SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_ChangeMatterPublish',N'P')IS NOT NULL DROP PROCEDURE KAAS_ChangeMatterPublish GO CREATE PROCEDURE KAAS_ChangeMatterPublish ( @MatterCode VARCHAR(20), @IsPublish BIT ) AS /***************************************************************************************** * Procedure Name: KAAS_ChangeMatterPublish * Description: This procedure is used to update publish field for matter * Modification History: * --------------------------------------------------------------------------------------- * Date Modified by Description * --------------------------------------------------------------------------------------- * 2016-05-23 Arun Created *****************************************************************************************/ BEGIN UPDATE Matters SET Publish = (CASE WHEN @IsPublish = 'True' THEN 'P' ELSE 'N' END) WHERE Code = @MatterCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ChangeUDFTemplateOrder' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ChangeUDFTemplateOrder] END GO CREATE PROCEDURE [dbo].[KAAS_ChangeUDFTemplateOrder] ( @UDUVCODE VARCHAR(30), @UDFILE VARCHAR(5), @UDWKCODE VARCHAR(4), @CHANGE SMALLINT ) /************************************************************************************************ * This procedure is used Change UDf template work type order * * * * Stored Procedure Name : [dbo].[KAAS_ChangeUDFTemplateOrder] * * Copied from : [dbo].[ky_NETChangeUDFTemplateOrder] * * * * Modification History : * * 2023-07-07 Nithyanandham M Created * ************************************************************************************************/ AS BEGIN SET NOCOUNT ON DECLARE @Seq SMALLINT SELECT @Seq= UDSEQ FROM UDFTemplatesWorkTypes WHERE UDUVCODE = @UDUVCODE AND UDFILE = @UDFILE AND UDWKCODE = @UDWKCODE IF(@Change< 0 ) --- up 1(-1) BEGIN UPDATE UDFTemplatesWorkTypes SET UDSEQ = UDSEQ + 1 WHERE UDSEQ = @Seq - 1 AND UDWKCODE = @UDWKCODE UPDATE UDFTemplatesWorkTypes SET UDSEQ = CASE WHEN UDSEQ - 1 < 1 THEN 1 ELSE UDSEQ - 1 END WHERE UDUVCODE = @UDUVCODE AND UDFILE = @UDFILE AND UDWKCODE = @UDWKCODE END IF(@Change = 1 ) -- Down 1(1) BEGIN UPDATE UDFTemplatesWorkTypes SET UDSEQ = CASE WHEN (UDSEQ - 1 ) <1 THEN 1 ELSE UDSEQ - 1 END WHERE UDSEQ = @Seq + 1 AND UDWKCODE = @UDWKCODE UPDATE UDFTemplatesWorkTypes SET UDSEQ = CASE WHEN (@Seq+@Change) > (SELECT ISNULL(MAX(UDSEQ),0)+1 FROM UDFTemplatesWorkTypes WHERE UDWKCODE = @UDWKCODE AND NOT (RTRIM(UDUVCODE) = RTRIM(@UDUVCODE) AND RTRIM(UDFILE) = RTRIM(@UDFILE))) THEN UDSEQ ELSE UDSEQ + @Change END WHERE UDUVCODE = @UDUVCODE AND UDFILE = @UDFILE AND UDWKCODE = @UDWKCODE AND UDSEQ =@Seq END IF(@Change = 0 AND @Seq<>1) -- Top(0) BEGIN UPDATE UDFTemplatesWorkTypes SET UDSEQ = UDSEQ +1 WHERE UDSEQ <> @Seq AND UDWKCODE = @UDWKCODE AND UDSEQ < @Seq UPDATE UDFTemplatesWorkTypes SET UDSEQ = 1 WHERE UDUVCODE = @UDUVCODE AND UDFILE = @UDFILE AND UDWKCODE = @UDWKCODE AND UDSEQ = @Seq END IF(@Change=9999) --Bottom BEGIN UPDATE UDFTemplatesWorkTypes SET UDSEQ =(SELECT MAX(UDSEQ ) FROM UDFTemplatesWorkTypes WHERE UDWKCODE = @UDWKCODE ) WHERE UDSEQ = @Seq AND UDWKCODE = @UDWKCODE UPDATE UDFTemplatesWorkTypes SET UDSEQ = CASE WHEN UDSEQ -1 <1 THEN 1 ELSE UDSEQ - 1 END WHERE --UDUVCODE = @UDUVCODE AND UDFILE = @UDFILE AND UDWKCODE <> @UDWKCODE --AND RTRIM(UDWKCODE) = RTRIM(@UDWKCODE) AND NOT ( RTRIM(UDUVCODE) = RTRIM(@UDUVCODE) AND RTRIM(UDFILE) = RTRIM(@UDFILE)) AND UDSEQ BETWEEN @Seq and (SELECT MAX(UDSEQ) from UDFTemplatesWorkTypes where UDWKCODE = @UDWKCODE) END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_CheckCaseContactAvailability' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CheckCaseContactAvailability] END GO CREATE PROCEDURE [dbo].[KAAS_CheckCaseContactAvailability] (@SEARCH NVARCHAR(MAX)) AS /********************************************************************************************************************* * * Checks the availability of case contact based on type and sequence for the specified case code * * Stored Procedure : KAAS_CheckCaseContactAvailability * * Example search string * * * * * * * * * * Modification History * 2020-01-14 Vinodhan Created KAAS_CheckCaseContactAvailability * *********************************************************************************************************************/ BEGIN DECLARE @SEARCHES TABLE ([Id] INT IDENTITY(1, 1), [CaseCode] VARCHAR(20), [ContactType] VARCHAR(20), [Seq] INT, [IsPrompt] BIT) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @Search END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH BEGIN TRY INSERT INTO @SEARCHES ( [CaseCode], [ContactType], [Seq], [IsPrompt]) SELECT [SRC].[CaseCode], [SRC].[ContactType], [SRC].[Seq], [SRC].[IsPrompt] FROM OPENXML(@iSL, N'Contact/ContactField') WITH ([CaseCode] VARCHAR(20) '../@CaseCode', [ContactType] VARCHAR(20) '@Type', [Seq] INT '@Seq', [IsPrompt] BIT '@IsPrompt') [SRC] END TRY BEGIN CATCH BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SELECT TOP 1 'INVALID XML' AS [ContactType], '' AS [Seq], 0 AS [IsPrompt] RETURN END CATCH EXEC sp_xml_removedocument @iSL IF NOT EXISTS (SELECT TOP 1 1 FROM @SEARCHES) BEGIN SELECT TOP 1 'INVALID XML' AS [ContactType], '' AS [Seq], 0 AS [IsPrompt] RETURN END SELECT [SRC].[ContactType] AS [ContactType], [SRC].[Seq] AS [Seq], CASE WHEN NOT EXISTS (SELECT TOP 1 1 FROM [CaseContacts] WHERE [CASECODE] = [SRC].[CaseCode] AND [CONTYPE] = [SRC].[ContactType] AND [CONNUM] = [SRC].[Seq]) THEN 1 ELSE 0 END AS [IsPrompt] FROM @SEARCHES [SRC] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_CheckClientAvailability' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CheckClientAvailability] END GO CREATE PROCEDURE [dbo].[KAAS_CheckClientAvailability] (@SEARCH NVARCHAR(MAX)) AS /*********************************************************************************** * * * Checks the availability of case clients for the specified case code * * * * Stored Procedure : KAAS_CheckClientAvailability * * Copied From : ky_NETSPXMLGetMissingCaseItems * * * * * * Example search string * * * * * * * * * * * * Modification History * * 2020-03-11 Vinodhan Created KAAS_CheckClientAvailability * * * ***********************************************************************************/ BEGIN DECLARE @SEARCHES TABLE ([Id] INT IDENTITY(1, 1), [ClientCode] VARCHAR(20), [Code] VARCHAR(50), [Seq] INT, [IsPrompt] BIT) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @Search END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH BEGIN TRY INSERT INTO @SEARCHES ( [ClientCode], [Code], [Seq], [IsPrompt]) SELECT [SRC].[ClientCode], [SRC].[Code], [SRC].[Seq], [SRC].[IsPrompt] FROM OPENXML(@iSL, N'Client/ClientField') WITH ([ClientCode] VARCHAR(20) '../@ClientCode', [Code] VARCHAR(20) '@Code', [Seq] INT '@Seq', [IsPrompt] BIT '@IsPrompt') [SRC] END TRY BEGIN CATCH BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SELECT TOP 1 'INVALID XML' AS [Code], '' AS [Seq], 0 AS [IsPrompt] RETURN END CATCH EXEC sp_xml_removedocument @iSL IF NOT EXISTS (SELECT TOP 1 1 FROM @SEARCHES) BEGIN SELECT TOP 1 'INVALID XML' AS [Code], '' AS [Seq], 0 AS [IsPrompt] RETURN END SELECT [SRC].[Code] AS [Code], [SRC].[Seq] AS [Seq], CASE WHEN NOT EXISTS (SELECT TOP 1 1 FROM [ClientContacts] WHERE [CLCODE] = [SRC].[ClientCode] AND [CLNUMCONTACT] = [SRC].[Seq]) THEN 1 ELSE 0 END AS [IsPrompt] FROM @SEARCHES [SRC] END GO IF OBJECT_ID(N'KAAS_CheckClientCodeSize',N'P')IS NOT NULL DROP PROCEDURE KAAS_CheckClientCodeSize GO CREATE PROCEDURE KAAS_CheckClientCodeSize (@CLIENTCODE AS VARCHAR(10)) AS /******************************************************************************************************* * This procedure is used to addup extra space to the client code while performing new case and * * move matter functionality. * * * * Stored Procedure Name : [dbo].[KAAS_CheckClientCodeSize] * * Copied from : [dbo].[KY_NETCheckClientCodeSize] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @MaxClientCode INT DECLARE @NEWCLIENTCODE VARCHAR(10) SELECT @MaxClientCode = [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'MaxClCode' IF (@MaxClientCode IS NULL) BEGIN IF ([dbo].[ISSAM4]() = 0) BEGIN SET @MaxClientCode = 6 END ELSE BEGIN SET @MaxClientCode = 8 END END SET @NEWCLIENTCODE = SUBSTRING(@CLIENTCODE + ' ', 1, @MaxClientCode) SELECT ISNULL(@NEWCLIENTCODE ,'') AS NEWCLIENTCODE SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CheckCodeExists_Maintenance', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_CheckCodeExists_Maintenance] END GO CREATE PROCEDURE [dbo].[KAAS_CheckCodeExists_Maintenance] ( @Mode varchar(10), @TableName varchar(50), @CodeVal varchar(10), @Description varchar(200), @NewCodeVal varchar(20) ) AS /******************************************************************************************************* *This procedure is used to check if the code exists already in the master table * * * Modification History : * * 2023-09-01 Ghayathri.S.V Created * 2023-09-05 Ghayathri.S.V Inserted check for Contact Type and Occupation code modules * * 2023-09-21 Ghayathri.S.V Inserted check for Nominal Types code modules * * 2023-11-23 Revathy.D Inserted check for Handler charge groups, Intro by and ID codes * * 2023-11-28 Revathy.D Inserted check for KYC type,Item Type and Location * * 2023-11-29 Revathy.D Inserted check for SMS Templates * * 2023-12-18 Revathy.D Inserted check for Charge Type * *******************************************************************************************************/ BEGIN DECLARE @TableVariable table (Code varchar(50)) DECLARE @Qry Nvarchar(Max) DECLARE @result varchar(10) SET @result = 1 IF(@TableName = 'TimeAdminCodes') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM TimeAdminCodes WHERE RTRIM([NCCode]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'Branch') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM Branch WHERE RTRIM([BranchCode]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'ClientGroup') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM ClientGroup WHERE RTRIM([GroupCode]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'FileColours') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM FileColours WHERE RTRIM([ColourCode]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'UndertakingStatus') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM UndertakingStatus WHERE StatusDesc = '''' + @NewCodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'ClientType') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM ClientType WHERE [Description] = '''' + @Description + '''') SET @result = 0 END' END ELSE IF(@TableName = 'UDFCategory') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM UDFCategory WHERE UDFCategory = '''' + @Description + '''') SET @result = 0 END' END ELSE IF(@TableName = 'Maritals') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM MiscCodes WHERE CDETYPE = ''MRS'' AND CDECODE = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'Contact Type') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM MiscCodes WHERE CDETYPE = ''CCL'' AND CDECODE = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'Occupation') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM MiscCodes WHERE CDETYPE = ''OCC'' AND CDECODE = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'NationCodes') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM NationCodes WHERE RTRIM([Nation]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'CategoryType') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM CategoryType WHERE CategoryType = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'BillDescriptions') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM BillDescriptions WHERE SEARCHFIELD = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'DocumentClasses') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM DocumentClasses WHERE CLASSCODE = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'filetypes') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM filetypes WHERE [Type] = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'TaxType') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM TaxType WHERE TaxType = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'TaxHead') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM TaxHead WHERE TAXHEAD = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'NominalTypes') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM NominalTypes WHERE RTRIM([NTYCODE]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'IntroBy') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[IntroductionBy] WHERE RTRIM([Pk_Intro]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF (@TableName='HandlerChargeGroup') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[HandlerChargeGroups] WHERE RTRIM([Code]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF (@TableName = 'ID Code') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[IDCodes] WHERE RTRIM(ISNULL(IdCode, 0)) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'Location') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM ItemLocations WHERE RTRIM(Code) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'KYCType') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM KYCType WHERE RTRIM(PK_Type) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'Item Types') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM ItemTypes WHERE RTRIM([TypeCode]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'SMSTemplates') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM SMSMessageTemplates WHERE RTRIM([Code]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE IF(@TableName = 'Charge Type') BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM [ChargeType] WHERE RTRIM([ChargeType]) = '''' + @CodeVal + '''') SET @result = 0 END' END ELSE BEGIN SET @Qry = ' BEGIN IF EXISTS(SELECT TOP 1 1 FROM ' + QUOTENAME(@TableName) + ' WHERE Code = '''' + @CodeVal + '''') SET @result = 0 END' END Exec sp_executesql @Qry, N'@TableName VARCHAR(100), @CodeVal VARCHAR(50),@Description VARCHAR(100), @NewCodeVal varchar(20), @result varchar(10) OUTPUT', @TableName = @TableName, @CodeVal = @CodeVal, @Description = @Description, @NewCodeVal = @NewCodeVal, @result = @result OUTPUT RETURN @result END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CheckDependentActionsCompleted' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CheckDependentActionsCompleted] END GO CREATE PROCEDURE [dbo].[KAAS_CheckDependentActionsCompleted] (@ActionID INT, @SearchText VARCHAR(4000) = NULL, @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /********************************************************************************* * * * Checks whether any dependent preceding actions have not yet been completed * * Stored Procedure name : KAAS_CheckDependentActionsCompleted * * Copied From : [dbo].[ky_NETSPCheckDependentActionsCompleted] * * * * Modification History * * 2016-10-20 Pino Carafa Created * * 2019-12-16 Vinodhan Created KAAS_CheckDependentActionsCompleted * * * ********************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(ISNULL(@SortDirection, '') = '' OR RTRIM(LTRIM(@SortDirection)) = '') BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT CASE RTRIM(ISNULL([TDA].[TimeFrame], 'Any Time')) WHEN 'Day(s)' THEN 'Day(s)' WHEN 'Week(s)' THEN 'Week(s)' WHEN 'Month(s)' THEN 'Month(s)' WHEN 'Year(s)' THEN 'Year(s)' ELSE 'Any Time' END AS [TimeFrame], ISNULL([TDA].[TimeFramAmount], 0) AS [TimeFrameAmount], RTRIM(ISNULL([TDA].[DependentActionCode], '')) AS [DependentActionCode], RTRIM(ISNULL([TAC].[DESC], '')) AS [Description], CASE WHEN [ATA].[TOTAL] + [DAY].[TOTAL] + [WKS].[TOTAL] + [MTH].[TOTAL] + [YEA].[TOTAL] > 0 THEN 1 ELSE 0 END AS [Done] FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[TemplateDependentActions] [TDA] ON [TDA].[ActionCode] = [DIA].[ACTIONCODE] INNER JOIN [dbo].[TemplateActions] [TAC] ON [TAC].[ACTIONCODE] = [TDA].[DependentActionCode] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[diary] [DIAAT] WHERE RTRIM(ISNULL([TDA].[TimeFrame], 'Any Time')) NOT IN ('Day(s)', 'Week(s)', 'Month(s)', 'Year(s)') AND [DIAAT].[CASECODE] = [DIA].[CASECODE] AND [DIAAT].[ACTIONCODE] = [TDA].[DependentActionCode] AND [DIAAT].[STATUS] = 1) [ATA] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[diary] [DIAD] WHERE RTRIM(ISNULL([TDA].[TimeFrame], 'Any Time')) = 'Day(s)' AND [DIAD].[CASECODE] = [DIA].[CASECODE] AND [DIAD].[DATE] <= DIA.[DATE] AND DATEADD(DAY, [TDA].[TimeFramAmount], [DIAD].[DATE]) >= [DIA].[DATE] AND [DIAD].[ACTIONCODE] = [TDA].[DependentActionCode] AND [DIAD].[STATUS] = 1) [DAY] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[diary] [DIAW] WHERE RTRIM(ISNULL([TDA].[TimeFrame], 'Any Time')) = 'Week(s)' AND [DIAW].[CASECODE] = [DIA].[CASECODE] AND [DIAW].[DATE] <= DIA.[DATE] AND DATEADD(DAY, (7 * [TDA].[TimeFramAmount]), [DIAW].[DATE]) >= [DIA].[DATE] AND [DIAW].[ACTIONCODE] = [TDA].[DependentActionCode] AND [DIAW].[STATUS] = 1) [WKS] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[diary] [DIAM] WHERE RTRIM(ISNULL([TDA].[TimeFrame], 'Any Time')) = 'Month(s)' AND [DIAM].[CASECODE] = [DIA].[CASECODE] AND [DIAM].[DATE] <= DIA.[DATE] AND DATEADD(MONTH, [TDA].[TimeFramAmount], [DIAM].[DATE]) >= [DIA].[DATE] AND [DIAM].[ACTIONCODE] = [TDA].[DependentActionCode] AND [DIAM].[STATUS] = 1) [MTH] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[diary] [DIAY] WHERE RTRIM(ISNULL([TDA].[TimeFrame], 'Any Time')) = 'Year(s)' AND [DIAY].[CASECODE] = [DIA].[CASECODE] AND [DIAY].[DATE] <= DIA.[DATE] AND DATEADD(YEAR, [TDA].[TimeFramAmount], [DIAY].[DATE]) >= [DIA].[DATE] AND [DIAY].[ACTIONCODE] = [TDA].[DependentActionCode] AND [DIAY].[STATUS] = 1) [YEA] WHERE ( ISNULL(@SearchText, '') = '' OR RTRIM(LTRIM(@SearchText)) = '' OR ( [TimeFrame] LIKE '%' + @SearchText + '%' OR [Description] LIKE '%' + @SearchText + '%' ) ) AND [DIA].[ACTIONID] = @ACTIONID) AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'TimeFrame' THEN [TimeFrame] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'TimeFrame' THEN [TimeFrame] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecord] FROM #FoundTable SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CheckExistingCases' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CheckExistingCases] END GO CREATE PROCEDURE [dbo].[KAAS_CheckExistingCases] (@SENT VARCHAR(17), @HASH VARCHAR(32), @MATTER VARCHAR(20), @SenderSMTPAddress VARCHAR(MAX), @TrackReference INT = 0) AS /******************************************************************************************************* * Checks whether an e-mail may already have been saved to case. * * * * Stored Procedure Name : [dbo].[KAAS_CheckExistingCases] * * Copied from : [dbo].[ky_NETSPCheckExistingCases] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @cases TABLE ([id] INT IDENTITY(1, 1), [MatterCode] VARCHAR(20), [ClientCode] VARCHAR(20), [MatterDescription] VARCHAR(500), [ClientName] VARCHAR(500), [ActionID] INT, [Subject] VARCHAR(1000)) SET @SenderSMTPAddress = RTRIM(ISNULL(@SenderSMTPAddress, '')) SET @MATTER = RTRIM(ISNULL(@MATTER, '')) SET @HASH = RTRIM(ISNULL(@HASH, '')) SET @TrackReference = ISNULL(@TrackReference, 0) IF (@TrackReference <> 0) BEGIN INSERT INTO @cases ([MatterCode], [ClientCode], [MatterDescription], [ClientName], [ActionID], [Subject]) SELECT RTRIM(ISNULL(DIA.[CASECODE], '')) AS [MatterCode], RTRIM(ISNULL(MAT.[ClientCode], '')) As [ClientCode], RTRIM(ISNULL(MAT.[Description], '')) As [MatterDescription], RTRIM(ISNULL(CON.[name], '')) As [ClientName], ISNULL(DIA.[ActionID], 0) AS [ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), '')) As [Subject] FROM [dbo].[MessageHashXRef] H INNER JOIN [dbo].[DiaryAttachments] DAT INNER JOIN [dbo].[diary] DIA INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[code] = MAT.[ClientCode] ON MAT.[code] = DIA.[CASECODE] ON DIA.[ACTIONID] = DAT.[DIARYID] ON DAT.[TRACKREFERENCE] = H.[TrackReference] WHERE H.[TrackReference] = @TrackReference END IF (@HASH <> '') BEGIN INSERT INTO @cases ([MatterCode], [ClientCode], [MatterDescription], [ClientName], [ActionID], [Subject]) SELECT RTRIM(ISNULL(DIA.[CASECODE], '')) AS [MatterCode], RTRIM(ISNULL(MAT.[ClientCode], '')) As [ClientCode], RTRIM(ISNULL(MAT.[Description], '')) As [MatterDescription], RTRIM(ISNULL(CON.[name], '')) As [ClientName], ISNULL(DIA.[ActionID], 0) AS [ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), '')) As [Subject] FROM [dbo].[MessageHashXRef] H INNER JOIN [dbo].[DiaryAttachments] DAT INNER JOIN [dbo].[diary] DIA INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[code] = MAT.[ClientCode] ON MAT.[code] = DIA.[CASECODE] ON DIA.[ACTIONID] = DAT.[DIARYID] ON DAT.[TRACKREFERENCE] = H.[TrackReference] WHERE H.[Hash] = @Hash AND ( ( H.[Sent] >= DATEADD(ss, -600, @SENT) AND H.[Sent] <= DATEADD(ss, 600, @SENT)) OR ( ISNULL([DIA].[TxmDate], [H].[Sent]) >= DATEADD(ss, -600, @SENT) AND ISNULL([DIA].[TxmDate], [H].[Sent]) <= DATEADD(ss, 600, @SENT)) OR ( ISNULL([DIA].[Date], [H].[Sent]) >= DATEADD(ss, -600, @SENT) AND ISNULL([DIA].[Date], [H].[Sent]) <= DATEADD(ss, 600, @SENT))) AND H.[TrackReference] <> @TrackReference END IF (@SenderSMTPAddress <> '') BEGIN IF (@MATTER <> '') BEGIN INSERT INTO @cases ([MatterCode], [ClientCode], [MatterDescription], [ClientName], [ActionID], [Subject]) SELECT RTRIM(ISNULL(MAT.[Code], '')) As [MatterCode], RTRIM(ISNULL(MAT.[ClientCode], '')) As [ClientCode], RTRIM(ISNULL(MAT.[Description], '')) As [MatterDescription], RTRIM(ISNULL(CON.[name], '')) As [ClientName], ISNULL(DIA.[ActionID], 0) AS [ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), '')) As [Subject] FROM [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[code] = MAT.[ClientCode] OUTER APPLY (SELECT TOP 1 DI2.[ActionID], DI2.[Subject] FROM [dbo].[diary] DI2 WHERE DI2.[CASECODE] = MAT.[CODE] AND DI2.[TxmDate] >= DATEADD(ss, -120, @SENT) AND DI2.[TxmDate] <= DATEADD(ss, 120, @SENT) AND ( DI2.[EMAILADDRESS] LIKE '%<' + @SenderSMTPAddress + '>%' OR DI2.[EMAILADDRESS] LIKE '%(' + @SenderSMTPAddress + ')%' OR DI2.[EMAILADDRESS] LIKE '%' + @SenderSMTPAddress + ' <%>%' OR DI2.[EMAILADDRESS] LIKE '%' + @SenderSMTPAddress + ' (%)%' OR DI2.[EMAILADDRESS] = @SenderSMTPAddress OR DI2.[EMAILADDRESS] LIKE [dbo].[ky_InterpretExchangeAddress](@SenderSMTPAddress)) AND DI2.[EMAIL] = 'Y') DIA CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM @cases CAS WHERE CAS.[MatterCode] = MAT.[Code] AND CAS.[ActionID] = DIA.[ACTIONID]) ALI WHERE MAT.[code] = @MATTER AND ALI.[TOTAL] = 0 END ELSE BEGIN IF (@HASH = '') BEGIN INSERT INTO @cases ([MatterCode], [ClientCode], [MatterDescription], [ClientName], [ActionID], [Subject]) SELECT RTRIM(ISNULL(MAT.[Code], '')) As [MatterCode], RTRIM(ISNULL(MAT.[ClientCode], '')) As [ClientCode], RTRIM(ISNULL(MAT.[Description], '')) As [MatterDescription], RTRIM(ISNULL(CON.[name], '')) As [ClientName], ISNULL(MAX(DIA.[ActionID]), 0) AS [ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), '')) As [Subject] FROM [dbo].[diary] DIA INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[code] = MAT.[ClientCode] ON MAT.[code] = DIA.[CASECODE] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM @cases CAS WHERE CAS.[ActionID] = DIA.[ACTIONID]) ALI WHERE DIA.[TxmDate] >= DATEADD(ss, -120, @SENT) AND DIA.[TxmDate] <= DATEADD(ss, 120, @SENT) AND ( DIA.[EMAILADDRESS] LIKE '%<' + @SenderSMTPAddress + '>%' OR DIA.[EMAILADDRESS] LIKE '%(' + @SenderSMTPAddress + ')%' OR DIA.[EMAILADDRESS] LIKE '%' + @SenderSMTPAddress + ' <%>%' OR DIA.[EMAILADDRESS] LIKE '%' + @SenderSMTPAddress + ' (%)%' OR DIA.[EMAILADDRESS] = @SenderSMTPAddress OR DIA.[EMAILADDRESS] LIKE [dbo].[ky_InterpretExchangeAddress](@SenderSMTPAddress)) AND DIA.[EMAIL] = 'Y' AND ALI.[TOTAL] = 0 GROUP BY RTRIM(ISNULL(MAT.[Description], '')), RTRIM(ISNULL(MAT.[Code], '')), RTRIM(ISNULL(MAT.[ClientCode], '')), RTRIM(ISNULL(CON.[name], '')), RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), '')) END END END SELECT CS.[MatterCode], CS.[ClientCode], CS.[MatterDescription], CS.[ClientName], CS.[ActionID], CS.[Subject] FROM @cases CS ORDER BY CS.[id] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CheckFilterNameExists' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CheckFilterNameExists] END GO CREATE PROCEDURE [dbo].[KAAS_CheckFilterNameExists] ( @HandlerCode VARCHAR(50), @PageName VARCHAR(100) = NULL, @FilterName VARCHAR(50), @ID INT ) AS /************************************************************************************************************* * * * Insert Update Custom Filter details * * * * Stored Procedure : KAAS_CheckFilterNameExists * * * * * * Modification History * * 2020-01-17 Prabhu Created * * * *************************************************************************************************************/ BEGIN IF EXISTS(SELECT [FilterName] FROM CustomFilterbyUserandPage WHERE ID = @ID ) BEGIN IF NOT EXISTS(SELECT [FilterName] FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName AND [ID] != @ID) BEGIN SELECT 1 AS Result END ELSE BEGIN SELECT 0 AS Result END END ELSE BEGIN IF NOT EXISTS(SELECT [FilterName] FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName) BEGIN SELECT 1 AS Result END ELSE BEGIN SELECT 0 AS Result END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CheckKYCOtherFieldNameExists' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CheckKYCOtherFieldNameExists] END GO create PROCEDURE [dbo].[KAAS_CheckKYCOtherFieldNameExists] (@ClientCode VARCHAR(20), @FieldName VARCHAR(100)) AS /******************************************************************************************************* * To FETCH the count of the entered Field Name in the other case details main grid. * * * * Stored Procedure Name : [dbo].[KAAS_CheckKYCOtherFieldNameExists] * * * * Modification History: * * 2019-10-25 Rajesh Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT COUNT (1) FROM ClientUDFAnswers CA INNER JOIN SystemUserDefinedFields SF ON CA.UDFFILE = SF.FILEPREFIX AND CA.UDFNAME = SF.FIELDNAME WHERE RTRIM(CA.ClientCode) = RTRIM(@ClientCode) AND SF.[FieldName] =@FieldName SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CheckMatterCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CheckMatterCode] GO CREATE PROCEDURE [dbo].[KAAS_CheckMatterCode] (@ClientCode VARCHAR(10), @MatterNumber VARCHAR(10), @MatterLen VARCHAR(10)) AS /******************************************************************************************************* * This procedure is used to Check new matter is already exists or not. * * * * Stored Procedure Name : [dbo].[KAAS_CheckMatterCode] * * Copied from : [dbo].[ky_NETCheckMatterCode] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @MaxLen INT DECLARE @NewMatterNum VARCHAR(10) DECLARE @NewMatter BIGINT -- Get the maximum Matter Number length from the Settings table SELECT @MaxLen = CONVERT(INT, [SET].[KeyValue]) FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'MaxMatNum' -- Default to 4 for SAM3 and 8 for SAM4 if value isn't in the Settings Table IF (@MaxLen IS NULL) BEGIN IF [dbo].[ISSAM4]() = 0 BEGIN SET @MaxLen = 4 END ELSE BEGIN SET @MaxLen = 8 END END -- If procedure is called to discover the maximum matter length, return it. IF(@MatterLen = 'True') BEGIN SELECT @MaxLen AS [max_length] END -- Procedure is called to automatically calculate the next matter number IF(@MatterLen <> 'True') AND (RTRIM(ISNULL(@MatterNumber, '')) = '') BEGIN -- Calculate the next matter number SELECT @NewMatter = 1000000001 + ISNULL(MAX(CASE WHEN ISNUMERIC(MAT.[Matter]) = 0 THEN 0 ELSE CONVERT(INT, MAT.[Matter]) END), 0) FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = @ClientCode SELECT @NewMatterNum = REVERSE(SUBSTRING(REVERSE(CONVERT(VARCHAR(10), @NewMatter)), 1, @MaxLen)) SELECT @NewMatterNum AS [Matter] END -- Procedure is called to check whether a previously generated number is still valid IF(@MatterLen <> 'True') AND (RTRIM(ISNULL(@MatterNumber, '')) <> '') BEGIN IF(LEN(@MatterNumber) < @MaxLen) BEGIN -- Calculate the next matter number SELECT @NewMatter = 1000000001 + (@MatterNumber-1) SELECT @NewMatterNum = REVERSE(SUBSTRING(REVERSE(CONVERT(VARCHAR(10), @NewMatter)), 1, @MaxLen)) SELECT @MatterNumber = @NewMatterNum END IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[matters] MAT WHERE MAT.[Code] = @ClientCode + '/' + @MatterNumber) BEGIN SELECT @MatterNumber END ELSE BEGIN SELECT 'This matter code already exists.' END END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CheckMatterIsClosed',N'P') IS NOT NULL DROP PROCEDURE KAAS_CheckMatterIsClosed GO CREATE PROCEDURE KAAS_CheckMatterIsClosed ( @MATTERCODE AS VARCHAR(20) ) AS /******************************************************************************************************* * This procedure is used to check the given matter is closed or not. * * * * Stored Procedure Name : [dbo].[KAAS_CheckMatterIsClosed] * * Copied from : [dbo].[KY_NETCheckMatterIsClosed] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT ISNULL(Closed,'N') FROM matters WHERE Code=@MATTERCODE SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CheckOtherCaseFieldNameAndUpdateValues',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CheckOtherCaseFieldNameAndUpdateValues] GO CREATE PROCEDURE [dbo].[KAAS_CheckOtherCaseFieldNameAndUpdateValues] (@CaseCode VARCHAR(20), @FieldName VARCHAR(100) ) AS /******************************************************************************************************* * To FETCH the count of the entered Field Name in the other case details main grid. * * * * Stored Procedure Name : [dbo].[KAAS_CheckOtherCaseFieldNameAndUpdateValues] * * * * Modification History: * * 2019-08-16 Dheepin Vijith K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT COUNT (1) FROM CaseUDFAnswers CA INNER JOIN SystemUserDefinedFields SF ON CA.UDFFILE = SF.FILEPREFIX AND CA.UDFNAME = SF.FIELDNAME WHERE RTRIM(CA.CASECODE) = RTRIM(@CaseCode) AND SF.[FieldName] =@FieldName -- to UPDATE or INSERT the other case details-- IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = @CaseCode AND RTRIM(ISNULL(CUF.[UDFFILE], '')) = 'UDF:' AND RTRIM(ISNULL(CUF.[UDFNAME], '')) = @FieldName) BEGIN DECLARE @SEQNO BIGINT SET @SEQNO = 0 SELECT TOP 1 @SEQNO = CUF.[SEQNO] FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = @CaseCode ORDER BY CUF.[SEQNO] DESC SET @SEQNO = @SEQNO + 1 DECLARE @INITIALVALUE VARCHAR(MAX) DECLARE @INITIALFORMAT VARCHAR(50) DECLARE @INITIALTYPE VARCHAR(11) DECLARE @INITIALNUMERICVALUE DECIMAL(20, 2) DECLARE @INITIALDATE DATETIME SELECT @INITIALVALUE = [SUF].[INITIALVALUE], @INITIALFORMAT = [SUF].[FORMAT], @INITIALTYPE = [SUF].[TYPE] FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] = 'UDF:' AND [SUF].[FIELDNAME] = @FieldName IF @INITIALVALUE IS NOT NULL BEGIN IF (@INITIALTYPE = 'Numeric') OR (@INITIALFORMAT LIKE '@n%') BEGIN BEGIN TRY SET @INITIALNUMERICVALUE = CONVERT(DECIMAL(20, 2), CONVERT(MONEY, @INITIALVALUE)) END TRY BEGIN CATCH END CATCH END ELSE IF (@INITIALTYPE = 'Date') OR (@INITIALFORMAT LIKE '@d%') OR (@INITIALFORMAT LIKE '%DD%') OR (@INITIALFORMAT LIKE '%MM%') OR (@INITIALFORMAT LIKE '%YY%') BEGIN BEGIN TRY SET @INITIALVALUE = [dbo].[ky_SUFFormat](@INITIALVALUE, @INITIALFORMAT) IF RTRIM(ISNULL(@INITIALVALUE, '')) <> '' BEGIN SET @INITIALDATE = CONVERT(DATETIME, [dbo].[ky_SUFFormat](@INITIALVALUE, '@D8')) END END TRY BEGIN CATCH END CATCH END END INSERT INTO [dbo].[CaseUDFAnswers] ([CASECODE], [UDFFILE], [UDFNAME], [SEQNO], [DateValue], [NumberValue], [TEXT1]) VALUES(RTRIM(@CaseCode), 'UDF:', RTRIM(@FieldName), @SEQNO, @INITIALDATE, @INITIALNUMERICVALUE, @INITIALVALUE) END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CheckOtherCaseFieldNameExists',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CheckOtherCaseFieldNameExists] GO CREATE PROCEDURE [dbo].[KAAS_CheckOtherCaseFieldNameExists] (@CaseCode VARCHAR(20), @FieldName VARCHAR(100)) AS /******************************************************************************************************* * To FETCH the count of the entered Field Name in the other case details main grid. * * * * Stored Procedure Name : [dbo].[KAAS_CheckOtherCaseFieldNameExists] * * * * Modification History: * * 2019-08-16 Dheepin Vijith K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT COUNT (1) FROM CaseUDFAnswers CA INNER JOIN SystemUserDefinedFields SF ON CA.UDFFILE = SF.FILEPREFIX AND CA.UDFNAME = SF.FIELDNAME WHERE RTRIM(CA.CASECODE) = RTRIM(@CaseCode) AND SF.[FieldName] =@FieldName SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CheckoutStatus' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CheckoutStatus] END GO CREATE PROCEDURE [dbo].[KAAS_CheckoutStatus] (@TrackReference INT, @Handler VARCHAR(10) ) AS /************************************************************************************************************* * This procedure is used to Check the Checkout status * * * * Stored Procedure Name : [dbo].[KAAS_CheckoutStatus] * * Modification History : * * 2023-08-10 Nithyanandham M Created * *************************************************************************************************************/ BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[DiaryAttachmentCheckouts] WHERE [TrackReference] = @TrackReference) Begin SELECT TOP 1 [HN].[Name], [DAC].CheckedOutAt, [DAC].Handler FROM [dbo].[DiaryAttachmentCheckouts] [DAC] LEFT OUTER JOIN [dbo].[HandlerNames] [HN] ON [HN].[CODE] = [DAC].[Handler] WHERE [DAC].[TrackReference] = @TrackReference; End Else Begin select 0; End END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CheckoutTrackReference' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CheckoutTrackReference] END GO CREATE PROCEDURE [dbo].[KAAS_CheckoutTrackReference] (@TrackReference INT, @Handler VARCHAR(10), @LocalHost VARCHAR(100), @LocalPath VARCHAR(500)) AS /************************************************************************************************************* * * * [dbo].[KAAS_CheckoutTrackReference] * * * * Checks out the requested track reference if it can, and then returns the person who has it currently * * checked out * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * * * Modification History : * * 2023-08-09 Nithyanandham M Created * *************************************************************************************************************/ BEGIN SET NOCOUNT ON SET QUOTED_IDENTIFIER ON INSERT INTO [dbo].[DiaryAttachmentCheckouts] ([HomeIdentifier], [TrackReference], [Handler], [CheckedOutAt], [LastWriteTime], [LocalHost], [LocalPath]) SELECT [DAS].[UNCFILEPATH], [DAS].[TrackReference], @Handler, GETDATE(), ISNULL([LUP].[AccessDate], [DAS].[DocumentDate]), @LocalHost, @LocalPath FROM [dbo].[DiaryAttachmentSelector] [DAS] OUTER APPLY ( SELECT TOP 1 [DAA].[AccessDate] FROM [DiaryAttachmentAccess] [DAA] WHERE [DAA].[TrackReference] = [DAS].[TrackReference] AND [DAA].[Comment] IN ('Created', 'Inserted', 'Updated') ORDER BY [DAA].[AccessDate] DESC) [LUP] LEFT OUTER JOIN [dbo].[DiaryAttachmentCheckouts] [DAC] ON [DAC].[TrackReference] = [DAS].[TrackReference] WHERE [DAS].[TrackReference] = @TrackReference AND [DAC].[TrackReference] IS NULL SELECT [DAC].[HomeIdentifier], [DAC].[TrackReference], [DAC].[Handler], [DAC].[CheckedOutAt], [DAC].[LastWriteTime], [DAC].[LocalHost], [DAC].[LocalPath], RTRIM(ISNULL([HN].[NAME], 'Handler "' + RTRIM([DAC].[Handler]) + '"')) AS [CheckedOutBy] FROM [dbo].[DiaryAttachmentCheckouts] [DAC] LEFT OUTER JOIN [dbo].[HandlerNames] [HN] ON [HN].[CODE] = [DAC].[Handler] WHERE [DAC].[TrackReference] = @TrackReference SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CheckUnpostableEntries',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CheckUnpostableEntries] GO CREATE PROCEDURE [dbo].[KAAS_CheckUnpostableEntries] (@HANDLER varchar(10)) AS /******************************************************************************************************* * Flags unpostable entries as "do not post". * * * * Stored Procedure Name : [dbo].[KAAS_CheckUnpostableEntries] * * Copied from : [dbo].[ky_NETCheckUnpostableEntries] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN UPDATE TDB SET TDB.[POST] = CASE WHEN MAT.[CODE] IS NULL THEN 'N' ELSE 'Y' END FROM WDNTEID NTEID INNER JOIN [dbo].[TimeDayBook] TDB ON TDB.[RECORDID] = NTEID.[RECORDID] AND RTRIM(ISNULL(TDB.[MATTER], '')) <> '' INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = TDB.[MATTER] WHERE NTEID.[HANDLER] = @HANDLER END GO IF OBJECT_ID(N'[KAAS_ClearFNLMatters]',N'P')IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_ClearFNLMatters] END GO CREATE PROCEDURE [dbo].[KAAS_ClearFNLMatters] ( @Code NVARCHAR(20)) AS /****************************************************************************************************************** * To Clear the FNL details from Matter * * * * Stored Procedure Name: [dbo].[KAAS_ClearFNLMatters] * * Copied from : [dbo].[ky_NETClearFNLMatters] * * * * Modification History: * * 2019-07-19 Vinodhan K Created * ******************************************************************************************************************/ BEGIN SET NOCOUNT ON UPDATE MAT SET MAT.[FNL_Name] = '', MAT.[FNL_Address] = '', MAT.[FNL_Date] = NULL, MAT.[FNL_Fees] = 0.00, MAT.[FNL_Outlay] = 0.00, MAT.[FNL_VAT] = 0.00, MAT.[FNL_Total] = 0.00 FROM [dbo].[matters] AS MAT WHERE MAT.[Code] = @Code SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ClientCaseGetNextMatter' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ClientCaseGetNextMatter] END GO CREATE PROCEDURE [dbo].[KAAS_ClientCaseGetNextMatter] (@matter VARCHAR(20), @BitWiseID BIGINT) AS /******************************************************************************************************* * Used in the Client/Case screens to let the user go to the next matter by * * clicking a button. Will cycle around to the first matter when the END is reached. * * * * Stored Procedure Name : [dbo].[KAAS_ClientCaseGetNextMatter] * * Copied from : [dbo].[ky_NETPClientCaseGetNextMatter] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0)) DECLARE @nextmatter TABLE ([ClientCode] VARCHAR(10), [CODE] VARCHAR(20)) INSERT INTO @nextmatter ([ClientCode], [CODE]) SELECT TOP 1 RTRIM(ISNULL([MAT].[ClientCode], '')), RTRIM(ISNULL([MAT].[CODE], '')) FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP ON MNP.[MATTER] = MAT.[Code] WHERE [MAT].[CODE] > @matter AND [MAT].[Closed] = 'N' AND ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, CONVERT(VARCHAR(20), @BitWiseID)) <> 0 OR MNP.[Privileges] IS NULL) ORDER BY [MAT].[CODE] IF NOT EXISTS (SELECT TOP 1 1 FROM @nextmatter) BEGIN INSERT INTO @nextmatter ([ClientCode], [CODE]) SELECT TOP 1 RTRIM(ISNULL([MAT].[ClientCode], '')), RTRIM(ISNULL([MAT].[CODE], '')) FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP ON MNP.[MATTER] = MAT.[Code] WHERE ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, CONVERT(VARCHAR(20), @BitWiseID)) <> 0 OR MNP.[Privileges] IS NULL) AND [MAT].[Closed] = 'N' ORDER BY [MAT].[CODE] END SELECT [ClientCode], [CODE] FROM @nextmatter END GO IF OBJECT_ID(N'KAAS_ClientCaseGetNextOrPreviousMatter',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_ClientCaseGetNextOrPreviousMatter] GO CREATE PROCEDURE [dbo].[KAAS_ClientCaseGetNextOrPreviousMatter] (@Matter VARCHAR(20), @HandlerCode VARCHAR(20), @NextOrPrevious VARCHAR(1)) AS /******************************************************************************************************* * Used in the Client/Case screens to Get Next/Previous Matter based on Privileges * * Stored Procedure Name : [dbo].[KAAS_ClientCaseGetNextOrPreviousMatter] * * Copied from : [dbo].[KAAS_GetMatterBasedOnPrivileges] * * * * Modification History: * * 2023-12-15 Vignesh M Created * *******************************************************************************************************/ BEGIN DECLARE @HandlerBitWiseId BIGINT SET @HandlerBitWiseId = (SELECT [BitWiseID] FROM [dbo].[HandlerNETGroupMembership] WHERE Handler = @HandlerCode) IF @NextOrPrevious = 'N' BEGIN SELECT TOP 1 [MAT].[ClientCode], [MAT].[Code] [CODE] FROM [dbo].[Matters] [MAT] LEFT JOIN [dbo].[MatterNETPrivileges] [MNP] ON [MAT].[Code] = [MNP].[Matter] WHERE [MAT].[CODE] > @MATTER AND ( @HandlerBitWiseId = -1 OR ([MNP].[Privileges] & @HandlerBitWiseId) <> 0 OR [MNP].[Matter] IS NULL ) AND [MAT].[Closed] = 'N' ORDER BY [MAT].[CODE] ASC END ELSE BEGIN SELECT TOP 1 [MAT].[ClientCode], [MAT].[Code] [CODE] FROM [dbo].[Matters] [MAT] LEFT JOIN [dbo].[MatterNETPrivileges] [MNP] ON [MAT].[Code] = [MNP].[Matter] WHERE [MAT].[CODE] < @MATTER AND ( @HandlerBitWiseId = -1 OR ([MNP].[Privileges] & @HandlerBitWiseId) <> 0 OR [MNP].[Matter] IS NULL ) AND [MAT].[Closed] = 'N' ORDER BY [MAT].[CODE] DESC END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ClientCaseGetPreviousMatter' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ClientCaseGetPreviousMatter] END GO CREATE PROCEDURE [dbo].[KAAS_ClientCaseGetPreviousMatter] (@matter VARCHAR(20), @BitWiseID BIGINT) AS /******************************************************************************************************* * Used in the Client/Case screens to let the user go to the previous matter by * * clicking a button. Will cycle around to the last matter when the START is reached. * * * * Stored Procedure Name : [dbo].[KAAS_ClientCaseGetPreviousMatter] * * Copied from : [dbo].[ky_NETPClientCaseGetPreviousMatter] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0)) DECLARE @previousmatter TABLE ([ClientCode] VARCHAR(10), [CODE] VARCHAR(20)) INSERT INTO @previousmatter ([ClientCode], [CODE]) SELECT TOP 1 RTRIM(ISNULL([MAT].[ClientCode], '')), RTRIM(ISNULL([MAT].[CODE], '')) FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP ON MNP.[MATTER] = MAT.[Code] WHERE [MAT].[CODE] < @matter AND [MAT].[Closed] = 'N' AND ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, CONVERT(VARCHAR(20), @BitWiseID)) <> 0 OR MNP.[Privileges] IS NULL) ORDER BY [MAT].[CODE] DESC IF NOT EXISTS (SELECT TOP 1 1 FROM @previousmatter) BEGIN INSERT INTO @previousmatter ([ClientCode], [CODE]) SELECT TOP 1 RTRIM(ISNULL([MAT].[ClientCode], '')), RTRIM(ISNULL([MAT].[CODE], '')) FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP ON MNP.[MATTER] = MAT.[Code] WHERE ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, CONVERT(VARCHAR(20), @BitWiseID)) <> 0 OR MNP.[Privileges] IS NULL) AND [MAT].[Closed] = 'N' ORDER BY [MAT].[CODE] DESC END SELECT [ClientCode], [CODE] FROM @previousmatter END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ClientOtherDetailsDelete' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ClientOtherDetailsDelete] END GO create PROCEDURE [dbo].[KAAS_ClientOtherDetailsDelete] ( @ClientCode VARCHAR(10), @FILEPREFIX VARCHAR(200), @FIELDNAME VARCHAR(200), @Result INT OUTPUT ) AS /***************************************************************************** Stored Procedure Name: ky_NETClientOtherDetailsDelete Description: To Delete data for other case details main grid. 2019-10-25 Rajesh copied from ky_NETClientOtherDetailsDelete *****************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM ClientUDFAnswers WHERE ClientCode = @ClientCode AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME) IS NOT NULL BEGIN DELETE FROM ClientUDFAnswers WHERE ClientCode = @ClientCode AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ClientOtherDetailsFetchEditDialog' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ClientOtherDetailsFetchEditDialog] END GO create PROCEDURE [dbo].[KAAS_ClientOtherDetailsFetchEditDialog] (@ClientCode VARCHAR(10), @FILEPREFIX VARCHAR(5), @FIELDNAME VARCHAR(30), @UDFCategory VARCHAR(20)) AS /***************************************************************************** Stored Procedure Name: ky_NETClientOtherDetailsFetchEditDialog Description: To FETCH data for client other details Edit Dialog. 25.10.2019 Rajesh copied from ky_NETClientOtherDetailsFetchEditDialog *****************************************************************************/ BEGIN SET NOCOUNT ON SELECT UDC.[UDFCategory] AS [GroupName], SUF.[PROMPT] AS [Detail], SUF.[LENGTH] AS [Size], SUF.[FORMAT] AS [Format], RTRIM(ISNULL(CUF.UDFFILE, '')) + RTRIM(ISNULL(CUF.UDFNAME, '')) AS [DocumentCode], CONVERT(VARCHAR(11), CUF.[DateValue], 106) AS [DateValue], CUF.[NumberValue] AS [NumberValue], CUF.[TEXT1] AS [TEXT1], SUF.[TYPE] AS [TYPE], CUF.[SEQNO] AS [SEQNO], SUF.[FILEPREFIX] AS [FILEPREFIX], SUF.[FIELDNAME] AS [FIELDNAME], SUF.[UDFCategory] AS [UDFCategory], RTRIM(ISNULL(SUF.[VALIDATION], '')) AS [VALIDATION], ISNULL(SUF.[LENGTH], 0) AS [LENGTH], ISNULL(SUF.[LOW], 0) AS [LOW], ISNULL(SUF.[HIGH], 0) AS [HIGH], ISNULL(SUF.[DECMIAL], 0) AS [DECIMAL] FROM [dbo].[SystemUserDefinedFields] SUF LEFT OUTER JOIN [dbo].[ClientUDFAnswers] CUF ON CUF.[ClientCode] = @ClientCode AND CUF.[UDFFILE] = SUF.[FILEPREFIX] AND CUF.[UDFNAME] = SUF.[FIELDNAME] LEFT OUTER JOIN [dbo].[UDFCategory] UDC ON UDC.[ID] = SUF.[UDFCategory] WHERE SUF.[FILEPREFIX] = @FILEPREFIX AND SUF.[FIELDNAME] = @FIELDNAME ORDER BY CUF.[SEQNO] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ClientOtherDetailsInsert' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ClientOtherDetailsInsert] END GO create PROCEDURE [dbo].[KAAS_ClientOtherDetailsInsert] ( @ClientCode VARCHAR(200), @FIELDNAME VARCHAR(200), @Result INT OUTPUT ) AS /***************************************************************************** Stored Procedure Name: ky_NETClientOtherDetailsInsert Description: To insert data for other case details main grid. 25.10.2019 Rajesh copied from ky_NETClientOtherDetailsInsert *****************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM ClientUDFAnswers WHERE ClientCode = @ClientCode AND RTRIM(UDFFILE) = 'UDF:' AND UDFNAME = @FIELDNAME) IS NULL BEGIN DECLARE @SEQNO BIGINT SET @SEQNO = 0 SELECT TOP 1 @SEQNO = SEQNO FROM ClientUDFAnswers WHERE ClientCode = @ClientCode ORDER BY SEQNO DESC SET @SEQNO = @SEQNO + 1 INSERT ClientUDFAnswers (ClientCode, UDFFILE, UDFNAME, SEQNO, DateValue, NumberValue, TEXT1) VALUES (RTRIM(@ClientCode), 'UDF:', RTRIM(@FIELDNAME), RTRIM(@SEQNO), '', 0, '') SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ClientOtherDetailsUpdate' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ClientOtherDetailsUpdate] END GO Create PROCEDURE [dbo].[KAAS_ClientOtherDetailsUpdate] (@ClientCode VARCHAR(10), @FILEPREFIX VARCHAR(200), @FIELDNAME VARCHAR(200), @Text VARCHAR(MAX), @Number DECIMAL(18,2), @Date VARCHAR(200), @Result INT OUTPUT) AS /***************************************************************************** Stored Procedure Name: ky_NETClientOtherDetailsUpdate Description: To insert data for other case details main grid. Modified on:14-12-2015 Magesh changed the if condition to check client code is equals to null * 2016-09-16 Suriya KEYD-4045-Urgent: The UDF vales for the TEXT fields are not working properly 2019-10-25 Rajesh copied from ky_NETClientOtherDetailsUpdate *****************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM ClientUDFAnswers WHERE (ClientCode = @ClientCode OR ISNULL(ClientCode,'') = '') AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME) IS NOT NULL BEGIN IF(LEN(@TEXT)=0) BEGIN IF(LEN(@Date)>0) BEGIN EXEC @Number=ky_NETFNConvertDateToClarion @Date IF (SELECT TYPE from SystemUserDefinedFields where FILEPREFIX=@FILEPREFIX and FIELDNAME=@FIELDNAME )<> 'Text' BEGIN SET @Text=@Number END END ELSE IF LEN(@Number)>0 BEGIN IF (SELECT TYPE from SystemUserDefinedFields where FILEPREFIX=@FILEPREFIX and FIELDNAME=@FIELDNAME )<> 'Text' BEGIN SET @Text=@Number END END END UPDATE ClientUDFAnswers SET TEXT1 = @Text , NumberValue = @Number , DateValue = CASE @Date WHEN '' THEN '' ELSE CONVERT(DATETIME,@Date,112) END WHERE ClientCode = @ClientCode AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ClientUDFAnswerInsertorUpdate' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ClientUDFAnswerInsertorUpdate] END GO create PROCEDURE [dbo].[KAAS_ClientUDFAnswerInsertorUpdate] (@ClientCode VARCHAR(200), @FILEPREFIX VARCHAR(200), @FIELDNAME VARCHAR(200), @Text VARCHAR(MAX), @Number DECIMAL(18,2), @Date VARCHAR(200)) AS /***************************************************************************** * Stored Procedure Name: ky_NETClientUDFAnswerInsertorUpdate * Description: To insert data for other case details main grid. * * Modified on: * 14-12-2015 Magesh changed the if condition to check client code is equals to null * 2016-09-16 Suriya KEYD-4045-Urgent: The UDF vales for the TEXT fields are not working properly * 2019-10-25 Rajesh Coopied from ky_NETClientUDFAnswerInsertorUpdate *****************************************************************************/ BEGIN SET NOCOUNT ON IF(LEN(@TEXT)=0) BEGIN IF(LEN(@Date)>0) BEGIN EXEC @Number=ky_NETFNConvertDateToClarion @Date IF (SELECT TYPE from SystemUserDefinedFields where FILEPREFIX=@FILEPREFIX and FIELDNAME=@FIELDNAME )<> 'Text' BEGIN SET @Text=@Number END END ELSE IF @Number>0 BEGIN IF (SELECT TYPE from SystemUserDefinedFields where FILEPREFIX=@FILEPREFIX and FIELDNAME=@FIELDNAME )<> 'Text' BEGIN SET @Text=@Number END END END IF(SELECT TOP 1 1 FROM ClientUDFAnswers WHERE (Clientcode = @ClientCode OR ISNULL(Clientcode,'')='') AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME) IS NOT NULL BEGIN UPDATE ClientUDFAnswers SET TEXT1 = @Text , NumberValue = @Number , DateValue = CASE @Date WHEN '' THEN '' ELSE CONVERT(DATETIME,@Date,112) END WHERE Clientcode = @ClientCode AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME END ELSE BEGIN DECLARE @SequenceNo INT SET @SequenceNo = (SELECT MAX(ISNULL(SEQNO,0))+1 FROM ClientUDFAnswers WHERE Clientcode = @ClientCode ) INSERT INTO ClientUDFAnswers (Clientcode ,UDFNAME ,UDFFILE ,DateValue ,NumberValue ,TEXT1 ,SEQNO) VALUES (@ClientCode ,@FIELDNAME ,@FILEPREFIX ,@Date ,@Number ,@Text ,@SequenceNo) END SET NOCOUNT OFF END GO IF [dbo].[ISSAM4]() = 0 BEGIN EXEC (' IF OBJECT_ID(N''KAAS_CloseInvoiceByDraftId'',N''P'')IS NOT NULL DROP PROCEDURE KAAS_CloseInvoiceByDraftId') EXEC (' CREATE PROCEDURE KAAS_CloseInvoiceByDraftId ( @DraftNo varchar(10), @MatterCode varchar(20) ) AS /* KAAS_CloseInvoiceByDraftId This procedure is used to close opened invoice by draft id Arun Vasu 24Feb2016 *************************************************************************************** *Modification History * 2016-AUG-31 Arun Changed Matter as Code in update stmt of tbl_matters. * 2020-06-09 Prabhu Copied from ky_NETCloseInvoiceByDraftId * *************************************************************************************** */ BEGIN SET NOCOUNT ON UPDATE BillHeader SET OPENINVOICE=''N'', WRITEDOWN=GETDATE() WHERE DRAFTNO = @DraftNo UPDATE TimeEntry SET [Date] = GETDATE() WHERE InvoiceNo =@DraftNo AND TimeOrCharge = ''B'' UPDATE matters SET OpenInvoiceNo = 0 WHERE Code = @MatterCode UPDATE BatchH SET [DATE] = GETDATE() WHERE REF = @DraftNo SET NOCOUNT OFF END') END GO IF OBJECT_ID(N'KAAS_ControlAddHandlerToProfile',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_ControlAddHandlerToProfile] GO CREATE PROCEDURE [dbo].[KAAS_ControlAddHandlerToProfile] (@ProfileID INT, @Handler VARCHAR(max), @Mode VARCHAR(20)) AS /************************************************************************************************************************ * * [dbo].[KAAS_ControlAddHandlerToProfile] * Applies the Control settings of a certain profile to the specified Handler, overwriting the handler's own settings. * * Modification History * Copied from [dbo].[ky_NETSPKHCtlAddHandlerToProfile] * 2023-04-13 Revathy.D Created * 2023-04-19 Revathy.D Modified to handle multiple handler request ************************************************************************************************************************/ BEGIN SET @Mode = UPPER(@Mode) INSERT INTO [dbo].[KHCtlProfileHandlers] ([Handler], [ProfileID]) SELECT NW.[Handler], NW.[ProfileID] FROM (SELECT RTRIM(LTRIM([Item])) [Handler] , @ProfileID [ProfileID] FROM KAAS_FN_SplitString(@Handler, ',')) AS NW LEFT OUTER JOIN [dbo].[KHCtlProfileHandlers] PFH ON PFH.[Handler] = NW.[Handler] AND PFH.[ProfileID] = NW.[ProfileID] WHERE PFH.[id] IS NULL IF @Mode = 'REPLACE' BEGIN -- First remove the handler from all other profiles DELETE KPH FROM [dbo].[KHCtlProfileHandlers] KPH WHERE KPH.[Handler] in (SELECT RTRIM(LTRIM([Item])) [Handler] FROM KAAS_FN_SplitString(@Handler, ',')) AND KPH.[ProfileID] <> @ProfileID -- Then reset their current restrictions DELETE CTH FROM [dbo].[KHCtlHandlers] CTH WHERE CTH.[Handler] in (SELECT RTRIM(LTRIM([Item])) [Handler] FROM KAAS_FN_SplitString(@Handler, ',')) -- Then put the restrictions for the target profile in INSERT INTO [dbo].[KHCtlHandlers] ([Handler], [AllHandlers], [groupid]) SELECT PFH.[Handler], 0, PFG.[GroupID] FROM [dbo].[KHCtlProfileGroups] PFG INNER JOIN [dbo].[KHCtlProfileHandlers] PFH ON PFH.[ProfileID] = PFG.[ProfileID] AND PFH.[Handler] in (SELECT RTRIM(LTRIM([Item])) [Handler] FROM KAAS_FN_SplitString(@Handler, ',')) WHERE PFG.[ProfileID] = @ProfileID END ELSE IF @Mode = 'APPLY' BEGIN INSERT INTO [dbo].[KHCtlHandlers] ([Handler], [AllHandlers], [groupid]) SELECT PFH.[Handler], 0, PFG.[GroupID] FROM [dbo].[KHCtlProfileGroups] PFG INNER JOIN [dbo].[KHCtlProfileHandlers] PFH ON PFH.[ProfileID] = PFG.[ProfileID] AND PFH.[Handler] in (SELECT RTRIM(LTRIM([Item])) [Handler] FROM KAAS_FN_SplitString(@Handler, ',')) LEFT OUTER JOIN [dbo].[KHCtlHandlers] KHH ON KHH.[Handler] in (SELECT RTRIM(LTRIM([Item])) [Handler] FROM KAAS_FN_SplitString(@Handler, ',')) AND KHH.[groupid] = PFG.[GroupID] WHERE PFG.[ProfileID] = @ProfileID AND KHH.[groupid] IS NULL END END GO IF OBJECT_ID(N'KAAS_ControlRemoveHandlerFromProfile',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_ControlRemoveHandlerFromProfile] GO CREATE PROCEDURE [dbo].[KAAS_ControlRemoveHandlerFromProfile] (@Handler VARCHAR(max), @Mode VARCHAR(20), @ProfileID VARCHAR(max)) AS /************************************************************************************************************************ * * [dbo].[KAAS_ControlRemoveHandlerFromProfile] * Removes the link between a Keyhouse Control Profile and a Handler so that updates to the Profile are no longer * reflected in the Handler's permissions. * * Please note: 1) the Handler's actual permissions remain unchanged. * 2) It is not necessary to pass in a Profile ID as the handler can only be linked to one profile * * Modification History * Copied From [dbo].[ky_NETSPKHCtlRemoveHandlerFromProfile] * 2023-04-13 Revathy.D Created * 2023-04-19 Revathy.D Modified to handle multiple handler request ************************************************************************************************************************/ BEGIN SET @Mode = UPPER(ISNULL(@Mode, '')) IF @Mode = 'REMOVE' BEGIN DECLARE @ProfileList table( ProfileID nvarchar(max)) INSERT INTO @ProfileList SELECT RTRIM(LTRIM([Item])) [ProfileID] FROM KAAS_FN_SplitString(@ProfileID, ',') --KEYD-5181 Start DELETE [KHH] FROM [dbo].[KHCtlProfileGroups] [PFG] INNER JOIN [dbo].[KHCtlProfileHandlers] [PFH] ON [PFH].[ProfileID] = [PFG].[ProfileID] AND [PFH].[Handler] = @Handler INNER JOIN [dbo].[KHCtlHandlers] [KHH] ON [KHH].[Handler] = @Handler AND [KHH].[groupid] = [PFG].[GroupID] WHERE [PFG].[ProfileID] IN (SELECT ProfileID FROM @ProfileList) END DELETE PFH FROM [dbo].[KHCtlProfileHandlers] PFH WHERE PFH.[Handler] = @Handler AND PFH.ProfileID IN (SELECT ProfileID FROM @ProfileList) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CopyDiaryStep' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CopyDiaryStep] END GO CREATE PROCEDURE [dbo].[KAAS_CopyDiaryStep] (@pCaseCode VARCHAR(20), @ActionID INT, @pFNCode VARCHAR(10), @pTEAMCode VARCHAR(10)) AS /******************************************************************************** * * Copies a Diary entry. * * Stored Procedure name : KAAS_CopyDiaryStep * Copied from : ky_NETSPCopyDiaryStep * * Note: 2014-06-19 As this procedure calls ky_NETSPCreateTemplatedDiaryStep, * it doesn't need to worry about the new DisplayText column * * 2015-04-29 Pino Allow for non-existing Action Codes, * ky_NETSPCreateTemplatedDiaryStep has been modified * to default values in that case. * 2015-09-30 Pino Use ky_NETGetNextActionID * 2016-09-13 Pino KYC - KEYD-4040 * 2019-09-04 Vinodhan K Created KAAS_CopyDiaryStep * ********************************************************************************/ BEGIN DECLARE @pActionCode VARCHAR(20) DECLARE @pStatus INT DECLARE @pDate DATETIME DECLARE @pDueDate DATETIME DECLARE @pSentDate DATETIME DECLARE @pTEXT VARCHAR(MAX) DECLARE @pAttachments CHAR(1) DECLARE @pEmailAddress VARCHAR(MAX) DECLARE @pAddressTo VARCHAR(MAX) DECLARE @pccTo VARCHAR(MAX) DECLARE @pbccTo VARCHAR(MAX) DECLARE @pemail CHAR(1) DECLARE @pSubject VARCHAR(MAX) DECLARE @pLocation VARCHAR(50) DECLARE @pDuration INT SELECT @pActionCode = DIA.[ACTIONCODE], @pStatus = 1, @pDate = GETDATE(), @pDueDate = GETDATE(), @pSentDate = DIA.[TxmDate], @pTEXT = CONVERT(VARCHAR(MAX), DIA.[TEXT1]), @pAttachments = DIA.[ATTACHMENTS], @pEmailAddress = CONVERT(VARCHAR(MAX), DIA.[EMAILADDRESS]), @pAddressTo = CONVERT(VARCHAR(MAX), DIA.[ADDRESSTO]), @pccTo = CONVERT(VARCHAR(MAX), DIA.[CCTO]), @pbccTo = CONVERT(VARCHAR(MAX), DIA.[BCCTO]), @pEMAIL = DIA.[EMAIL], @pSubject = CONVERT(VARCHAR(MAX), DIA.[SUBJECT]), @pLocation = DIA.[Location], @pDuration = DIA.[DURATION] FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID SET @pActionCode = RTRIM(ISNULL(@pActionCode, '')) --IF (@pActionCode IS NOT NULL) -- BEGIN EXEC [dbo].[KAAS_CreateTemplatedDiaryStep] @pStatus, @pDate, @pDueDate, @pSentDate, @pCaseCode, @pActionCode, @pFNCode, @pTEAMCode, @pTEXT, @pAttachments, @pEmailAddress, @pAddressTo, @pccTo, @pbccTo, @pemail, @pSubject, @pLocation, @pDuration --END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CopyDocsToDocFolder' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CopyDocsToDocFolder] END GO CREATE PROCEDURE [dbo].[KAAS_CopyDocsToDocFolder] (@copyxml VARCHAR(MAX)) AS /*********************************************************************************************************** * Flags the documents passed in through @copyxml as being "in" the document folder(s) in the XML document * * @copyxml - an xml string outlining the nature of the changes * * * * Stored Procedure Name : KAAS_CopyDocsToDocFolder * * Copied From : [dbo].[ky_NETSPCopyDocsToDocFolder] * * * * Modification History: * * 2016-04-26 Pino Carafa Created * * 2019-10-11 Vinodhan K Created KAAS_CopyDocsToDocFolder * ************************************************************************************************************/ BEGIN SET NOCOuNT ON DECLARE @iSL INT DECLARE @MAX INT DECLARE @data TABLE ([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [folderid] INT NOT NULL, [trackreference] INT NOT NULL) BEGIN TRY EXEC SP_XML_PREPAREDOCUMENT @iSL OUTPUT, @copyxml END TRY BEGIN CATCH EXEC SP_XML_PREPAREDOCUMENT @iSL OUTPUT, N'' END CATCH INSERT INTO @data ([folderid], [trackreference]) SELECT SRC.[folderid], SRC.[trackreference] FROM OPENXML(@iSL, N'copydocstofolders/copy') WITH ([folderid] INT '@tofolder', [trackreference] INT '@trackreference') SRC EXEC sp_xml_removedocument @iSL INSERT INTO [dbo].[DocFolderDocuments] ([DocFolderID], [TrackReference]) SELECT DT.[folderid], DT.[trackreference] FROM @data DT LEFT OUTER JOIN [dbo].[DocFolderDocuments] DFD ON DFD.[DocFolderID] = DT.[folderid] AND DFD.[TrackReference] = DT.[trackreference] WHERE DFD.[TrackReference] IS NULL SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.objects SO WHERE SO.[name] = 'KAAS_CorrectBillDetailsANDFEBreakdown' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CorrectBillDetailsANDFEBreakdown] END GO IF [dbo].[ISSAM4]() = 0 BEGIN EXEC ('CREATE PROCEDURE [dbo].[KAAS_CorrectBillDetailsANDFEBreakdown] (@DRAFTNO INT) AS /************************************************************************** * * ky_NETSPCorrectBillDetailsANDFEBreakdown * * Given a Draft Bill, this procedure: * 1. Corrects the Bill Detail Line VAT Values (in case these were entered in * an older version of Desktop WHERE they are allowed to be one cent out) * 2. Create a Fee Earner Breakdown IF one isn''t already present. To do this, * it will firstly check the Billing Guide, and IF none is present, it will * work one out FROM the current Bill Detail Lines * 3. Recalibrates the Fee Earner Breakdown percentages. The percentage numbers * should add up to 100, but IF they don''t, all percentages will be multiplied * by whatever factor is required to make them add up to 100. * 4. Recalculates the Fee Earner Breakdown. * * Modification History * 2015-01-06 PINO If the VAT Code changes on Bill Detail lines, and there * is only ONE VAT Code used on the Bill, the VAT Code will * also be changed for all the Fee Earner Breakdown Lines. * 2015-06-08 PINO Allow for overridden VAT Value * 2016-02-15 JOHN If there are no fees (from billing guide or detail lines) * then delete the breakdown as its no longer valid. * 2017-10-27 JOHN Changed conversions so that there''s always 11 digits left * of the decimal place - KEYD-4827 * 2017-10-31 JOHN Fixed KEYD-4602 by checking for distinct VAT codes ONLY FOR FEES * 2019-03-14 JOHN KEYD-5816 - Setting breakdown lines to the first VAT code ONLY FOR FEES * **************************************************************************/ BEGIN -- 1. Corrects the Bill Detail Line VAT Values UPDATE BDET SET BDET.[VATValue] = CONVERT(DECIMAL(18, 2), ROUND(BDN.[NET] * BDN.[VATRATE], 2)), BDET.[VATRate] = CONVERT(DECIMAL(18, 2), ROUND(BDN.[VATRATE] * CONVERT(DECIMAL(23, 7), 100), 2)) FROM (SELECT BD.[KeyID], BD.[DRAFTNO], CONVERT(DECIMAL(23, 7), ISNULL(BD.[NET], 0)) AS [NET], RTRIM(ISNULL(VC.[Code], '''')) AS [VATCode], CONVERT(DECIMAL(23, 7), ISNULL(VC.[Rate], 0)) / CONVERT(DECIMAL(23, 7), 100) AS [VATRate], CONVERT(DECIMAL(23, 7), ISNULL(BD.[VATVALUE], 0)) AS [VATValue] FROM [dbo].[BillDetails] BD LEFT OUTER JOIN [dbo].[VATCodes] VC ON VC.[Code] = BD.[VATCode] WHERE BD.[DRAFTNO] = @DRAFTNO AND BD.[OverriddenVAT] = 0) BDN INNER JOIN [dbo].[BillDetails] BDET ON BDET.[KEYID] = BDN.[KEYID] DECLARE @CODES INT SELECT @CODES = COUNT(DISTINCT BD.[VATCode]) FROM [dbo].[BillDetails] BD WHERE BD.[DRAFTNO] = @DRAFTNO AND BD.[TYPE] = ''F'' IF (@CODES = 1) BEGIN UPDATE BFEB SET BFEB.[VATCODE] = BD.[VATCode] FROM [dbo].[BillFeeBreakDown] BFEB CROSS APPLY (SELECT TOP 1 BDT.[VATCode] FROM [dbo].[BillDetails] BDT WHERE BDT.[DRAFTNO] = @DRAFTNO AND BDT.[TYPE] = ''F'') BD WHERE BFEB.[DRAFTNO] = @DRAFTNO END -- 1.1 Check if there are any fees on the bill. If not then delete the breakdown IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillDetails] BD WHERE BD.[DRAFTNO] = @DRAFTNO AND BD.[TYPE] = ''F'') BEGIN DELETE BFEB FROM [dbo].[BillFeeBreakDown] BFEB WHERE BFEB.[DRAFTNO] = @DRAFTNO END -- 2. Create a Fee Earner Breakdown IF one isn''t already present. -- a) FROM the Billing Guide or ... IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillFeeBreakDown] BFEB WHERE BFEB.[DRAFTNO] = @DRAFTNO) BEGIN INSERT INTO [dbo].[BillFeeBreakDown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation]) SELECT [MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation] FROM [KAAS_BGNewBillFeeBreakdown](@DRAFTNO) END -- b) FROM the actual Detail Lines IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillFeeBreakDown] BFEB WHERE BFEB.[DRAFTNO] = @DRAFTNO) BEGIN INSERT INTO [dbo].[BillFeeBreakDown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation]) SELECT [MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation] FROM [KAAS_BGNewBillFeeBreakdownBD](@DRAFTNO) END DECLARE @TOTVALUE DECIMAL(11, 2) DECLARE @TOTVAT DECIMAL(15, 2) DECLARE @BFEB TABLE ([MATTER] VARCHAR(20) NOT NULL, [DRAFTNO] INT NOT NULL, [BILLNO] INT NOT NULL, [FECODE] VARCHAR(10) NULL, [TYPE] VARCHAR(1) NULL, [PERCENT] DECIMAL(5, 2) NULL, [CALCULATION] DECIMAL(9, 5) NULL, [VALUE] DECIMAL(11, 2) NULL, [VATCODE] VARCHAR(1) NULL, [VATAMT] DECIMAL(11, 2) NULL, [RECORDID] INT IDENTITY(1,1) NOT NULL, [VATCalculation] DECIMAL(15, 5) NULL) DECLARE @REPCT TABLE ([MATTER] VARCHAR(20) NOT NULL, [FECODE] VARCHAR(10) NULL, [RECORDID] INT IDENTITY(1,1) NOT NULL, [PERCENT] DECIMAL(5, 2) NULL, [CALCULATION] DECIMAL(9, 5) NULL, [ORGCALC] DECIMAL(9, 5) NULL) INSERT INTO @BFEB ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCALCULATION]) SELECT RTRIM(ISNULL(BFBD.[MATTER], '''')), BFBD.[DRAFTNO], BFBD.[BILLNO], RTRIM(ISNULL(BFBD.[FECODE], '''')), ''F'' AS [TYPE], BFBD.[PERCENT], BFBD.[CALCULATION], CONVERT(DECIMAL(11, 2), 0) AS [VALUE], BFBD.[VATCODE] As [VATCODE], CONVERT(DECIMAL(11, 2), 0) AS [VATAMT], CONVERT(DECIMAL(15, 5), 0) AS [VATCalculation] FROM [dbo].[BillFeeBreakdown] BFBD WHERE BFBD.[DRAFTNO] = @DRAFTNO SELECT @TOTVALUE = ISNULL(SUM(BD.[NET]), 0), @TOTVAT = ISNULL(SUM(BD.[VATVALUE]), 0) FROM [dbo].[BillDetails] BD WHERE BD.[DRAFTNO] = @DraftNo AND BD.[TYPE] = ''F'' -- The percentages should add up to 100... DECLARE @calculation DECIMAL(9, 5) SELECT @calculation = SUM(BFB.[CALCULATION]) FROM @BFEB BFB SET @calculation = ISNULL(@calculation, 0) IF (@calculation = 0) BEGIN -- IF the percentages add up to 0, -- divide equally among all Fee Earners SELECT @calculation = ISNULL(SUM(1), 1) FROM @BFEB --This will of course not add up to 100 but ... UPDATE @BFEB SET [PERCENT] = 1, --See below... [CALCULATION] = 1 END --IF (@calculation <> 100) -- -- 3. Recalibrates the Fee Earner Breakdown percentages. -- BEGIN INSERT INTO @REPCT ([MATTER], [FECODE], [ORGCALC]) SELECT BFEB.[MATTER], BFEB.[FECODE], BFEB.[CALCULATION] FROM @BFEB BFEB UPDATE RC SET RC.[CALCULATION] = ROUND(R2.[ORGCALC] - R1.[ORGCALC], 5), RC.[PERCENT] = ROUND(R2.[ORGCALC] - R1.[ORGCALC], 2) FROM @REPCT RC CROSS APPLY (SELECT (CONVERT(DECIMAL(13, 9), ISNULL(SUM(CONVERT(DECIMAL(13, 9), RC1.[ORGCALC])), 0)) / CONVERT(DECIMAL(13, 9), @calculation)) * CONVERT(DECIMAL(13, 9), 100) AS [ORGCALC] FROM @REPCT RC1 WHERE RC1.[RECORDID] < RC.[RECORDID]) R1 CROSS APPLY (SELECT (CONVERT(DECIMAL(13, 9), ISNULL(SUM(CONVERT(DECIMAL(13, 9), RC2.[ORGCALC])), 0)) / CONVERT(DECIMAL(13, 9), @calculation)) * CONVERT(DECIMAL(13, 9), 100) AS [ORGCALC] FROM @REPCT RC2 WHERE RC2.[RECORDID] <= RC.[RECORDID]) R2 UPDATE BFEB SET BFEB.[PERCENT] = RC.[PERCENT], BFEB.[CALCULATION] = RC.[CALCULATION] FROM @BFEB BFEB INNER JOIN @REPCT RC ON RC.[FECODE] = BFEB.[FECODE] SET @calculation = 100 -- END -- 4. Recalculates the Fee Earner Breakdown. UPDATE BFB SET BFB.[VALUE] = ISNULL(M1.[CALC], 0) - ISNULL(M2.[CALC], 0), BFB.[VATAMT] = ISNULL(M1.[VATCALC], 0) - ISNULL(M2.[VATCALC], 0), BFB.[VATCalculation] = ISNULL(M1.[VATCALC5], 0) - ISNULL(M2.[VATCALC5], 0) FROM @BFEB BFB CROSS APPLY (SELECT CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(18, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(18, 7), @TOTVALUE)) / CONVERT(DECIMAL(18, 7), @calculation), 2)) AS [CALC], CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(18, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(18, 7), @TOTVAT)) / CONVERT(DECIMAL(18, 7), @calculation), 2)) AS [VATCALC], CONVERT(DECIMAL(15, 5), ROUND((CONVERT(DECIMAL(20, 10), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(20, 10), @TOTVAT)) / CONVERT(DECIMAL(20, 10), @calculation), 5)) AS [VATCALC5] FROM @BFEB B2 WHERE B2.[RECORDID] <= BFB.[RECORDID]) M1 CROSS APPLY (SELECT CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(18, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(18, 7), @TOTVALUE)) / CONVERT(DECIMAL(18, 7), @calculation), 2)) AS [CALC], CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(18, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(18, 7), @TOTVAT)) / CONVERT(DECIMAL(18, 7), @calculation), 2)) AS [VATCALC], CONVERT(DECIMAL(15, 5), ROUND((CONVERT(DECIMAL(20, 10), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(20, 10), @TOTVAT)) / CONVERT(DECIMAL(20, 10), @calculation), 5)) AS [VATCALC5] FROM @BFEB B2 WHERE B2.[RECORDID] < BFB.[RECORDID]) M2 DELETE BFBD FROM [dbo].[BillFeeBreakDown] BFBD WHERE BFBD.[DRAFTNO] = @draftno INSERT INTO [dbo].[BillFeeBreakdown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCALCULATION]) SELECT NBFB.[MATTER], NBFB.[DRAFTNO], 0, NBFB.[FECODE], NBFB.[TYPE], NBFB.[PERCENT], NBFB.[CALCULATION], NBFB.[VALUE], NBFB.[VATCODE], NBFB.[VATAMT], NBFB.[VATCalculation] FROM @BFEB NBFB LEFT OUTER JOIN [dbo].[BillFeeBreakdown] BFB ON BFB.[DRAFTNO] = NBFB.[DRAFTNO] AND BFB.[FECODE] = NBFB.[FECODE] WHERE BFB.[RECORDID] IS NULL END') END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.objects SO WHERE SO.[name] = 'KAAS_CorrectBillDetailsANDFEBreakdownSAM4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CorrectBillDetailsANDFEBreakdownSAM4] END GO IF [dbo].[ISSAM4]() = 1 BEGIN EXEC ('CREATE PROCEDURE [dbo].[KAAS_CorrectBillDetailsANDFEBreakdownSAM4] (@DRAFTNO INT) AS /************************************************************************** * * ky_NETSPCorrectBillDetailsANDFEBreakdown * * Given a Draft Bill, this procedure: * 1. Corrects the Bill Detail Line VAT Values (in case these were entered in * an older version of Desktop WHERE they are allowed to be one cent out) * 2. Create a Fee Earner Breakdown IF one isn''t already present. To do this, * it will firstly check the Billing Guide, and IF none is present, it will * work one out FROM the current Bill Detail Lines * 3. Recalibrates the Fee Earner Breakdown percentages. The percentage numbers * should add up to 100, but IF they don''t, all percentages will be multiplied * by whatever factor is required to make them add up to 100. * 4. Recalculates the Fee Earner Breakdown. * * Modification History * 2015-01-06 PINO If the VAT Code changes on Bill Detail lines, and there * is only ONE VAT Code used on the Bill, the VAT Code will * also be changed for all the Fee Earner Breakdown Lines. * 2015-06-08 PINO Allow for overridden VAT Value * 2016-02-15 JOHN If there are no fees (from billing guide or detail lines) * then delete the breakdown as its no longer valid. * 2017-10-27 JOHN Changed conversions so that there''s always 11 digits left * of the decimal place - KEYD-4827 * 2017-10-31 JOHN Fixed KEYD-4602 by checking for distinct VAT codes ONLY FOR FEES * 2018-07-30 JOHN Added SAM4 compatibility * 2018-08-23 JOHN Fixed wrong proc calls * 2018-11-20 JOHN KEYD-5574 - Fixed VatCurrencyValue not being set * 2019-04-18 JOHN KEYD-5867 - Users can now change the VAT to whatever they want, as it was in legacy code * **************************************************************************/ BEGIN DECLARE @CODES INT SELECT @CODES = COUNT(DISTINCT BD.[VATCode]) FROM [dbo].[BillDetail] BD WHERE BD.[BillID] = @DRAFTNO AND BD.[RecordType] = ''F'' IF (@CODES = 1) BEGIN UPDATE BB SET BB.[VATCODE] = BD.[VATCode] FROM [dbo].[BillBreakdown] AS BB CROSS APPLY (SELECT TOP 1 BDT.[VATCode] FROM [dbo].[BillDetail] AS BDT WHERE BDT.[BillID] = @DRAFTNO AND BDT.[RecordType] =''F'') AS BD WHERE BB.[BillingNo] = @DRAFTNO END -- 1.1 Check if there are any fees on the bill. If not then delete the breakdown IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillDetail] BD WHERE BD.[BillID] = @DRAFTNO AND BD.[RecordType] = ''F'') BEGIN DELETE BB FROM [dbo].[BillBreakdown] BB WHERE BB.[BillingNo] = @DRAFTNO END -- 2. Create a Fee Earner Breakdown IF one isn''t already present. -- a) FROM the Billing Guide or ... IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillBreakdown] BB WHERE BB.[BillingNo] = @DRAFTNO) BEGIN INSERT INTO [dbo].[BillBreakdown] ([BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation]) SELECT [BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation] FROM [KAAS_BGNewBillFeeBreakdownSAM4](@DRAFTNO) END -- b) FROM the actual Detail Lines IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillBreakdown] BB WHERE BB.[BillingNo] = @DRAFTNO) BEGIN INSERT INTO [dbo].[BillBreakdown] ([BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation]) SELECT [BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation] FROM [KAAS_BGNewBillFeeBreakdownBDSAM4](@DRAFTNO) END DECLARE @TOTVALUE DECIMAL(11, 2) DECLARE @TOTVAT DECIMAL(15, 2) DECLARE @BFEB TABLE ([BreakNO] INT IDENTITY(1, 1) NOT NULL, [BillingNo] INT NOT NULL, [FECode] VARCHAR(10), [Percentage] DECIMAL(19, 5), [FeeValue] DECIMAL(19, 2), [LineType] VARCHAR(10), [VatValue] DECIMAL(19, 2), [VatCode] VARCHAR(10), [VatRate] DECIMAL(19, 2), [NominalCode] VARCHAR(10), [Calculation] DECIMAL(19, 2)) DECLARE @REPCT TABLE ([FECODE] VARCHAR(10) NULL, [RECORDID] INT IDENTITY(1,1) NOT NULL, [Calculation] DECIMAL(9, 2) NULL, [Percentage] DECIMAL(19, 5) NULL, [OriginalPercentage] DECIMAL(19, 5) NULL) INSERT INTO @BFEB ([BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation]) SELECT BB.[BillingNo], RTRIM(ISNULL(BB.[FECode], '''')), BB.[Percentage], CONVERT(DECIMAL(19, 2), 0) AS [FeeValue], ''F'' AS [LineType], CONVERT(DECIMAL(11, 2), 0) AS [VatValue], BB.[VatCode], BB.[VatRate], BB.[NominalCode], BB.[Calculation] FROM [dbo].[BillBreakdown] BB WHERE BB.[BillingNo] = @DRAFTNO SELECT @TOTVALUE = ISNULL(SUM(BD.[NetValue]), 0), @TOTVAT = ISNULL(SUM(BD.[VatValue]), 0) FROM [dbo].[BillDetail] BD WHERE BD.[BillID] = @DraftNo AND BD.[RecordType] = ''F'' -- The percentages should add up to 100... DECLARE @Percentage DECIMAL(19, 5) SELECT @Percentage = SUM(BFB.[Percentage]) FROM @BFEB BFB SET @Percentage = ISNULL(@Percentage, 0) IF (@Percentage = 0) BEGIN -- IF the percentages add up to 0, -- divide equally among all Fee Earners SELECT @Percentage = ISNULL(SUM(1), 1) FROM @BFEB --This will of course not add up to 100 but ... UPDATE @BFEB SET [Percentage] = 1, --See below... [Calculation] = 1 END --IF (@Percentage <> 100) -- -- 3. Recalibrates the Fee Earner Breakdown percentages. -- BEGIN INSERT INTO @REPCT ([FECODE], [OriginalPercentage]) SELECT BFEB.[FECODE], BFEB.[Percentage] FROM @BFEB BFEB UPDATE RC SET RC.[Percentage] = ROUND(R2.[OriginalPercentage] - R1.[OriginalPercentage], 5), RC.[Calculation] = ROUND(R2.[OriginalPercentage] - R1.[OriginalPercentage], 2) FROM @REPCT RC CROSS APPLY (SELECT (CONVERT(DECIMAL(13, 9), ISNULL(SUM(CONVERT(DECIMAL(13, 9), RC1.[OriginalPercentage])), 0)) / CONVERT(DECIMAL(13, 9), @Percentage)) * CONVERT(DECIMAL(13, 9), 100) AS [OriginalPercentage] FROM @REPCT RC1 WHERE RC1.[RECORDID] < RC.[RECORDID]) R1 CROSS APPLY (SELECT (CONVERT(DECIMAL(13, 9), ISNULL(SUM(CONVERT(DECIMAL(13, 9), RC2.[OriginalPercentage])), 0)) / CONVERT(DECIMAL(13, 9), @Percentage)) * CONVERT(DECIMAL(13, 9), 100) AS [OriginalPercentage] FROM @REPCT RC2 WHERE RC2.[RECORDID] <= RC.[RECORDID]) R2 UPDATE BFEB SET BFEB.[Percentage] = RC.[Percentage], BFEB.[Calculation] = RC.[Calculation] FROM @BFEB BFEB INNER JOIN @REPCT RC ON RC.[FECODE] = BFEB.[FECODE] SET @Percentage = 100 -- END -- 4. Recalculates the Fee Earner Breakdown. UPDATE BFB SET BFB.[FeeValue] = ISNULL(M1.[CALC], 0) - ISNULL(M2.[CALC], 0), BFB.[VatValue] = ISNULL(M1.[VATCALC], 0) - ISNULL(M2.[VATCALC], 0) FROM @BFEB BFB CROSS APPLY (SELECT CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(18, 7), SUM(B2.[Percentage])) * CONVERT(DECIMAL(18, 7), @TOTVALUE)) / CONVERT(DECIMAL(18, 7), @Percentage), 2)) AS [CALC], CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(18, 7), SUM(B2.[Percentage])) * CONVERT(DECIMAL(18, 7), @TOTVAT)) / CONVERT(DECIMAL(18, 7), @Percentage), 2)) AS [VATCALC] FROM @BFEB B2 WHERE B2.[BreakNO] <= BFB.[BreakNO]) M1 CROSS APPLY (SELECT CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(18, 7), SUM(B2.[Percentage])) * CONVERT(DECIMAL(18, 7), @TOTVALUE)) / CONVERT(DECIMAL(18, 7), @Percentage), 2)) AS [CALC], CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(18, 7), SUM(B2.[Percentage])) * CONVERT(DECIMAL(18, 7), @TOTVAT)) / CONVERT(DECIMAL(18, 7), @Percentage), 2)) AS [VATCALC] FROM @BFEB B2 WHERE B2.[BreakNO] < BFB.[BreakNO]) M2 DELETE BB FROM [dbo].[BillBreakdown] BB WHERE BB.[BillingNo] = @draftno INSERT INTO [dbo].[BillBreakdown] ([BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation]) SELECT NBFB.[BillingNo], NBFB.[FECode], NBFB.[Percentage], NBFB.[FeeValue], NBFB.[LineType], NBFB.[VatValue], NBFB.[VatCode], NBFB.[VatRate], NBFB.[NominalCode], NBFB.[Calculation] FROM @BFEB NBFB LEFT OUTER JOIN [dbo].[BillBreakdown] BB ON BB.[BillingNo] = NBFB.[BillingNo] AND BB.[FECode] = NBFB.[FECode] WHERE BB.[BreakNO] IS NULL END') END GO IF OBJECT_ID(N'KAAS_CP_DeleteClientPortalUser',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CP_DeleteClientPortalUser] GO CREATE PROCEDURE [dbo].[KAAS_CP_DeleteClientPortalUser] (@LoginId INT = 0) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_CP_DeleteClientPortalUser] * * Description: To delete the selected login * * * * Modification History: * * 2022-07-27 Vinodhkumar.M Created * * 2022-07-28 Vinodhkumar.M Delete client portal user record based on ClientLoginId * *******************************************************************************************************/ BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[ClientLogin] WHERE ClientLoginId = @LoginId) BEGIN UPDATE [dbo].[ClientLogin] SET [IsDeleted] = 1, [IsActiveLogin] = 0 WHERE [ClientLoginId] = @LoginId END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[ClientLoginAccess] WHERE ClientLoginId = @LoginId) BEGIN DELETE FROM [dbo].[ClientLoginAccess] WHERE [ClientLoginId] = @LoginId END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[ClientPortalUserSetting] WHERE ClientLoginId = @LoginId) BEGIN DELETE FROM [dbo].[ClientPortalUserSetting] WHERE [ClientLoginId] = @LoginId END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CreateAccountsBatch' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CreateAccountsBatch] END GO CREATE PROCEDURE [dbo].[KAAS_CreateAccountsBatch] (@DraftBillNo INT, @MatterCode VARCHAR(20), @ResultBillNo INT OUTPUT) AS /*************************************************************************** * * [dbo].[KY_NETCreateAccountsBatch] * This SP is used to create accounts batch when a bill is approved * * Modification History * 2016-12-20 Arun Created * 2016-12-21 Arun Alignment issue fixed * 2016-12-22 Arun Have added Bill Number udpate query in control table * 2017-07-05 John GETDATE() is wrapped in functions to just get the DATE and exclude the TIME * Also wrapped [CON].[EICONVERT] in functions so 0 values are not possible * 2019-11-13 Rajesh Copied from [dbo].[KY_NETCreateAccountsBatch] * 2021-12-08 Bala Added Draft Bill and Matter for where condition ***************************************************************************/ BEGIN DECLARE @TIMECOST AS VARCHAR(1) DECLARE @NEWBATCHNO AS INT DECLARE @BILLFEBREAKCOUNT AS INT DECLARE @LASTBATCHNO AS INT DECLARE @BILLDETAILCOUNT AS INT DECLARE @ControlLastBatchNo as INT DECLARE @ControlLastBillNo as INT --BAH = BATCHH --CON = CONTROL --BIH = BILLHEADER --BAD = BATCHDETAIL --BIH = BILLFEEBREAKDOWN --BID = BILLDETAILS --select BATCHNO from BatchH <<- Control.LastBatch --select BATCHNO from BillHeader <<- Control.LastBatch --Step 1 -> Getting Last Batch Number from Control Table UPDATE [CRL] SET [LASTBATCH] = ISNULL([LASTBATCH],0) + 1 , @ControlLastBatchNo = ISNULL([LASTBATCH],0) + 1, [LASTBILL] = ISNULL([LASTBILL],0) + 1, @ControlLastBillNo = ISNULL([LASTBILL],0) + 1, [LASTPREF] = ISNULL([LASTPREF],0) + 1 FROM [CONTROL] [CRL] --Step 2 -> Update BillHeader.BatchNo Based on Control.LastBatchNo, DraftbillNo and MatterCode UPDATE [BIH] SET [BATCHNO] = @ControlLastBatchNo, [BILLNO] = @ControlLastBillNo FROM [dbo].[BillHeader] [BIH] WHERE [DraftNo] = @DraftBillNo AND [Matter] = @MatterCode --Step3 --> Add BatchH INSERT INTO [dbo].[BATCHH] ([BATCHNO], [PREF], [TYPE], [CODE], [REF], [DATE], [FEE], [MATTER], [SUPP], [NARR], [VALUE], [SUBTOT], [POSTED], [CLIENTAC], [PERNO], [YEAR], [PAYEE], [OUTLAYTOT], [VATTOT], [FEETOT], [INVCR], [THIRDPARTY], [USERCODE], [ENTRYDATE], [CLIENTBANK], [CURRENCY], [CURRENCYVALUE], [CUROUTLAYTOT], [CURVATTOT], [CURFEETOT], [RECNO], [CREDITINVOICENO], [DRAFTBILLNO], [WRITEDOWN], [WRITEBACKHOURS], [WRITEBACKVALUE], [EFTSENT], [EFTDATE], [EFTFILENUMBER], [EFTFILENAME], [EFTYORN], [CLIENTCODE], [PAYCLIENT], [ONCEOFFPAYMENT], [CASEASSCODE], [EFTEMAILYORN]) SELECT [BIH].[BATCHNO], [CON].[LASTPREF], 'I', '', [CON].[LASTBILL], [BIH].[DATE], '', [BIH].[MATTER], [BIH].[OPENINVOICE], [BIH].[ADDRESSEE], [BIH].[TOTAL], [BIH].[TOTAL], 'N', 'N', [CON].[CURPER], [CON].[YEAR], '', [BIH].[OUTLAY], [BIH].[TOTALVAT], [BIH].[FEMISCTOTAL], [BIH].[INVCR], [BIH].[TRANSFER], [BIH].[USER], DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0), '', [CON].[BASECURRENCY], [BIH].[TOTAL]/ ISNULL(NULLIF([CON].[EICONVERT], 0), 1), [BIH].[OUTLAY]/ ISNULL(NULLIF([CON].[EICONVERT], 0), 1), [BIH].[TOTALVAT]/ ISNULL(NULLIF([CON].[EICONVERT], 0), 1), [BIH].[FEMISCTOTAL]/ ISNULL(NULLIF([CON].[EICONVERT], 0), 1), 0, [BIH].[CreditInvoiceNo], [BIH].[DRAFTNO], CASE WHEN [CON].[TIMECOSTING] = 'Y' THEN [BIH].[WRITEDOWN] ELSE NULL END, CASE WHEN [CON].[TIMECOSTING] = 'Y' THEN [BIH].[WRITEBACKHOURS] ELSE 0.00 END, CASE WHEN [CON].[TIMECOSTING] = 'Y' THEN [BIH].[WRITEBACKVALUE] ELSE 0.00 END, 'N', 0, 0, '', 'N', '', 'N', 'N', '', 'N' FROM [dbo].[CONTROL] [CON] LEFT JOIN [BILLHEADER] [BIH] ON [BIH].[BATCHNO] = [CON].[LASTBATCH] WHERE [BIH].[DRAFTNO] = @DraftBillNo AND [BIH].[MATTER] = @MatterCode --Step 4 --> then create the BatchDetail "Fee" lines from the BillFeeEarnerBreakdown table -- loop through the FeeEarner Breakdown table for this draft bill IF EXISTS(SELECT TOP 1 1 FROM [dbo].[BillFeeBreakDown] [BIF] WHERE [BIF].[MATTER] = @MatterCode AND [BIF].[DRAFTNO] = @DraftBillNo AND [BIF].[TYPE] ='F' AND [BIF].[VALUE] <>0) BEGIN INSERT INTO [dbo].[BATCHDETAILS] ([PREF], [BATCHNO], [TYPE], [CODE], [REF], [DATE], [FEE], [NARR], [MATTER], [VALUE], [VATCODE], [VATVAL], [CLIENTYN], [ENTRYCURRENCY], [CURRENCYVALUE], [CURRENCYVAT], [OUTLAY], [YEAR], [PERNO], [CASEASSCODE], [ONCEOFFPAYMENT], [PAYCLIENT], [CLIENTCODE], [EFTEMAILYORN]) SELECT [CON].[LASTPREF], --BIF.FECODE, --HAN:Code = BIF:FECode --HAN.MAILADDRESS, --FEE:Code = HAN:mailaddress [BAH].[BATCHNO], 'I', [FEE].[NOMINAL], [BAH].[REF], [BAH].[DATE], [BIF].[FECODE], 'FEES CREDIT - '+[BIF].[FECODE]+' '+[BIF].[MATTER], [BIF].[MATTER], CASE WHEN [BIF].[VALUE] = 0 THEN [BAH].[FEETOT] ELSE [BIF].[VALUE] END, [BIF].[VATCODE], [BIF].[VATAMT], 'N', [CON].[BASECURRENCY], [BIF].[VALUE] / ISNULL(NULLIF([CON].[EICONVERT], 0), 1), [BIF].[VATAMT]/ ISNULL(NULLIF([CON].[EICONVERT], 0), 1), [BIF].[TYPE], [CON].[YEAR], [CON].[CURPER], '', 'N', 'N', '', --ClientCode 'N' FROM [dbo].[BILLFEEBREAKDOWN] [BIF] LEFT JOIN [dbo].[BILLHEADER] [BIH] ON [BIF].[MATTER] = BIH.[MATTER] AND [BIF].[DRAFTNO]= [BIH].[DRAFTNO] LEFT JOIN [dbo].[CONTROL] [CON] ON [BIH].[BATCHNO] = [CON].[LASTBATCH] LEFT JOIN [dbo].[BATCHH] [BAH] ON [BAH].[BATCHNO] = [BIH].[BATCHNO] LEFT JOIN [dbo].[Handlers] [HAN] ON [HAN].CODE = [BIF].[FECODE] LEFT JOIN [dbo].[FeeEarnerCodes] [FEE] ON [FEE].[Code] =[HAN].[MAILADDRESS] WHERE [BIF].[MATTER] = @MatterCode AND [BIF].[DRAFTNO] = @DraftBillNo AND [BIF].[TYPE] = 'F' AND [BIF].[VALUE] <> 0 END --Step 5 --> then create the BatchDetail "Outlay" and "Misc Outlay" from the Bill Details table IF EXISTS(SELECT TOP 1 1 FROM [dbo].[BillDetails] WHERE [DRAFTNO] = @DraftBillNo AND [MATTER] = @MatterCode AND [TYPE]<>'F' and [NET] <>0) BEGIN INSERT INTO [dbo].[BATCHDETAILS] ([PREF], [BATCHNO], [TYPE], [CODE], [REF], [DATE], [FEE], [MATTER], [VALUE], [VATCODE], [VATVAL], [CLIENTYN], [ENTRYCURRENCY], [CURRENCYVALUE], [CURRENCYVAT], [YEAR], [PERNO], [NARR], [OUTLAY], [CaseAssCode], [OnceOffPayment], [PayClient], [ClientCode], [EFTEmailYorN]) SELECT [CON].[LASTPREF], [BAH].[BATCHNO], 'I', [BID].[NOMINAL], [BAH].[REF], [BAH].[DATE], [BID].[FEEEARNER], [BID].[MATTER], [BID].[NET], [BID].[VATCODE], [BID].[VATVALUE], 'N', [CON].[BASECURRENCY], [BID].[NET]/ ISNULL(NULLIF([CON].[EICONVERT], 0), 1), [BID].[VATVALUE]/ ISNULL(NULLIF([CON].[EICONVERT], 0), 1), [CON].[YEAR], [CON].[CURPER], [BID].[NARRATIVE], (CASE WHEN [BID].[TYPE]='O' THEN [BID].[TYPE] WHEN ([BID].[TYPE]='M' OR [BID].[NOMINAL] <> [CON].[OUTLAY]) THEN 'F' END), '', 'N', 'N', '', 'N' FROM [dbo].[BillDetails] [BID] LEFT JOIN [dbo].[BILLHEADER] [BIH] ON [BID].[MATTER] = [BIH].[MATTER] AND [BID].[DRAFTNO] = [BIH].[DRAFTNO] LEFT JOIN [dbo].[CONTROL] [CON] ON [BIH].[BATCHNO] = [CON].[LASTBATCH] LEFT JOIN [dbo].[BATCHH] [BAH] ON [BAH].BATCHNO = [BIH].[BATCHNO] WHERE [BID].[MATTER] = @MatterCode AND [BID].[DRAFTNO] = @DraftBillNo AND [BID].[TYPE] <> 'F' AND [BID].[NET] <> 0 END --Step 7 --> Return Bill No SET @ResultBillNo = (SELECT [BILLNO] FROM [dbo].[BillHeader] WHERE [DRAFTNO] = @DraftBillNo) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CreateDiaryAttachment' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CreateDiaryAttachment] END GO CREATE PROCEDURE [dbo].[KAAS_CreateDiaryAttachment] (@pDiaryID INT = 0, @pName VARCHAR(10), @pDocName VARCHAR(100), @pDocument VARCHAR(255), @pType VARCHAR(10), @pDocClass VARCHAR(10), @pDateEntered VARCHAR(25), @pEnterBy VARCHAR(8), @pLastAccessed VARCHAR(25), @pLastAccessedby VARCHAR(8), @pSystem VARCHAR(1), @pDictationFile VARCHAR(255), @pSource VARCHAR(20), @pDocFolders VARCHAR(MAX)) AS /******************************************************************************************************* * Create a Diary Attachment for a particular Action. * * * * Stored Procedure Name : [dbo].[KAAS_CreateDiaryAttachment] * * Copied from : [dbo].[ky_NETSPCreateDiaryAttachment] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * * 2019-05-31 Ramesh K Modified - File name extension to be stored in lower case * * 2019-09-03 Vinodhan K Modified - File will be saved to UNC path * * 2021-09-03 Aakif Modified - Increased varchar size to accomodate date and time * * 2021-10-06 Arun V Set Context info * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @strcasecode VARCHAR(20) DECLARE @inTrackRef Int DECLARE @strFileName VARCHAR(255) DECLARE @strUNCFileName VARCHAR(500) DECLARE @strMatterNo VARCHAR(10) DECLARE @strClientCode VARCHAR(10) DECLARE @strDefaultFolder VARCHAR(255) DECLARE @strSource VARCHAR(20) DECLARE @strType VARCHAR(10) DECLARE @continue INT DECLARE @error VARCHAR(1000) DECLARE @DocNamingMethod CHAR(1) DECLARE @StorageMethod CHAR(1) SELECT @DocNamingMethod = [CON].[DocumentNamingMethod] FROM [dbo].[control] [CON] SET @DocNamingMethod = CASE WHEN ISNULL(@DocNamingMethod, ' ') = 'T' THEN 'T' ELSE ' ' END SELECT @StorageMethod = [SCN].[STORAGEMETHOD] FROM [dbo].[SystemConfig] [SCN] SET @StorageMethod = CASE WHEN ISNULL(@StorageMethod, 'C') = 'D' THEN 'D' ELSE 'C' END SET @continue = 0 SET @error = '' SET @pDiaryID = ISNULL(@pDiaryID, 0) IF (@pDiaryID = 0) BEGIN SET @continue = 12 SET @error = 'invalid or missing Diary ID' END -- Get Diary and Matter information IF (@continue = 0) BEGIN BEGIN TRY SELECT @strcasecode = RTRIM(ISNULL(MAT.[code], '')), @strClientCode = RTRIM(ISNULL(MAT.[clientcode], '')), @strMatterNo = RTRIM(ISNULL(MAT.[matter], '')), @strSource = RTRIM(ISNULL(DIA.[PROCESSTYPE], '')) FROM [dbo].[diary] DIA INNER JOIN [dbo].[matters] MAT ON MAT.[code] = DIA.[CASECODE] WHERE DIA.[ACTIONID] = @pDiaryID SET @strcasecode = ISNULL(@strcasecode, '') SET @strClientCode = ISNULL(@strClientCode, '') SET @strMatterNo = ISNULL(@strMatterNo, '') SET @strSource = CASE WHEN ISNULL(@pSource, '') = '' THEN CASE WHEN ISNULL(@strSource, 'I') = 'I' THEN 'Received E-mail' ELSE 'Sent E-mail' END ELSE @pSource END IF (@strcasecode = '') BEGIN SET @continue = 2 SET @error = 'invalid or missing Diary ID' END END TRY BEGIN CATCH SET @continue = 1 SET @error = 'Error retrieving Diary information for Diary ID: ' + ISNULL(convert(VARCHAR(10), @pDiaryID), 'unknown') + ' ' + Error_Message() END CATCH END -- Get Next TrackReference ----------------------------------------------------------------------------------------------------------------------------------------- IF (@continue = 0) BEGIN BEGIN TRY --SELECT @inTrackRef = ISNULL(MAX(DAT.[TrackReference]), 0) + 1 -- FROM [dbo].[DiaryAttachments] DAT EXEC @inTrackRef = [dbo].[KAAS_GetNextTrackReference] END TRY BEGIN CATCH SET @continue = 3 SET @error = 'Error calculating next Track Reference: ' + Error_Message() END CATCH END -- Write DiaryAttachment Record ----------------------------------------------------------------------------------------------------------------------------------------- IF (@continue = 0) BEGIN BEGIN TRY SELECT @strDefaultFolder = (SELECT RTRIM(ISNULL(SC.[SCWPFOLDER], '')) FROM [dbo].[SystemConfig] SC) SET @strDefaultFolder = ISNULL(@strDefaultFolder, '') IF (@strDefaultFolder = '') BEGIN SET @continue = 4 SET @error = 'SCWPFOLDER not SET in System Config' END END TRY BEGIN CATCH SET @continue = 5 SET @error = 'Error retrieving SCWPFOLDER: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN BEGIN TRY IF @StorageMethod = 'C' BEGIN SELECT @strFileName = RTRIM(ISNULL(CLT.[DCOUMENTFOLDER], '')) FROM [dbo].[client] CLT WHERE CLT.[CLCODE] = @strClientCode SET @strFileName = RTRIM(ISNULL(@strFileName, '')) IF (@strFileName = '') BEGIN SET @strFileName = @strDefaultFolder + '\' + @strClientCode UPDATE CLT SET CLT.[DCOUMENTFOLDER] = @strFileName FROM [dbo].[client] CLT WHERE CLT.[CLCODE] = @strClientCode END END ELSE BEGIN SET @strFileName = @strDefaultFolder + '\' + CONVERT(VARCHAR(6), GETDATE(), 112) END END TRY BEGIN CATCH SET @continue = 6 SET @error = 'Error establishing Document Folder: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN SET @pDocument = RTRIM(ISNULL(@pDocument, '')) SET @pDocument = REPLACE(@pDocument, CHAR(13) + CHAR(10), '_') IF (@pDocument = '') BEGIN SET @continue = 7 SET @error = 'missing document name' END END IF (@continue = 0) BEGIN SET @pDocName = RTRIM(ISNULL(@pDocName, '')) SET @pDocName = REPLACE(@pDocName, CHAR(13) + CHAR(10), '_') IF (@pDocName = '') BEGIN SET @continue = 7 SET @error = 'missing document name' END END IF (@continue = 0) BEGIN BEGIN TRY SET @pType = RTRIM(ISNULL(@pType, '')) SET @strType = convert(VARCHAR(10), @pType) END TRY BEGIN CATCH SET @continue = 8 SET @error = 'Error interpreting Document Type: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN BEGIN TRY DECLARE @pDocName2 VARCHAR(100) DECLARE @pDocumentWork VARCHAR(255) SET @pDocumentWork = REVERSE(@pDocument) IF CHARINDEX('\', @pDocumentWork) > 0 BEGIN SET @pDocumentWork = SUBSTRING(@pDocumentWork, 1, CHARINDEX('\', @pDocumentWork) - 1) END IF CHARINDEX('.', @pDocumentWork) > 0 BEGIN SET @pDocumentWork = SUBSTRING(@pDocumentWork, CHARINDEX('.', @pDocumentWork) + 1, LEN(@pDocumentWork) - CHARINDEX('.', @pDocumentWork)) END SET @pDocumentWork = REVERSE(@pDocumentWork) IF @DocNamingMethod <> 'T' BEGIN SET @pDocName2 = REPLACE(REPLACE(REPLACE([dbo].[KAAS_FN_RemovePatternFromString](@pDocumentWork, '%[:*<>$&.!?@#~/\\\%|`ª{}\+=_^?œ",]%'), CHAR(13), ''), CHAR(10), ''), CHAR(9), '') IF @StorageMethod = 'D' BEGIN SET @strFileName = @strFileName + '\' + @pDocName2 + '_' + convert(VARCHAR(10), @inTrackRef) END ELSE BEGIN SET @strFileName = @strFileName + '\' + @strMatterNo + '\' + @pDocName2 + '_' + convert(VARCHAR(10), @inTrackRef) END END ELSE BEGIN IF @StorageMethod = 'D' BEGIN SET @strFileName = @strFileName + '\' + convert(VARCHAR(10), @inTrackRef) END ELSE BEGIN SET @strFileName = @strFileName + '\' + @strMatterNo + '\' + convert(VARCHAR(10), @inTrackRef) END END IF (@pType <> '') BEGIN SET @strFileName = @strFileName + '.' + LOWER(@pType) END END TRY BEGIN CATCH SET @continue = 9 SET @error = 'Error establishing filename: ' + Error_Message() END CATCH END SET @strFileName = ISNULL(@strFileName, '') SET @strUNCFileName = @strFileName IF (SUBSTRING(@strUNCFileName, 2, 1) = ':') BEGIN SELECT @strUNCFileName = ISNULL(MAX(UNC.[UNC]) + SUBSTRING(@strUNCFileName, 3, LEN(@strUNCFileName) - 2), @strUNCFileName) FROM [dbo].[UNCAlias] UNC WHERE SUBSTRING(@strUNCFileName, 1, 1) = UNC.[Drive] SET @strUNCFileName = LEFT(@strUNCFileName, 2) + REPLACE(RIGHT(@strUNCFileName, LEN(@strUNCFileName) - 2), '\\', '\') END IF(@strType = 'FOL') BEGIN SET @strFileName = @pDocument END IF (@continue = 0) BEGIN BEGIN TRY INSERT INTO DiaryAttachments ([DiaryId], [TrackReference], [CaseCode], [Name], [Document], [Filepath], [Type], [DocClass], [DateEntered], [EnteredBy], [LastAccessDate], [LastAccessBy], [System], [Dictationfile], [Source]) VALUES(@pDiaryID, @inTrackRef, @strcasecode, @pName, @pDocName, @strUNCFileName, --To save files in the UNC file path. Previously used : @strFileName @strType, @pDocClass, convert(DATETIME, @pDateEntered), @pEnterBy, convert(DATETIME, @pLastAccessed), @pLastAccessedby, @pSystem, @pDictationFile, @strSource) END TRY BEGIN CATCH SET @continue = 10 SET @error = 'Error inserting Diary Attachment record: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN BEGIN TRY DECLARE @iSL INT DECLARE @data TABLE ([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [folderid] INT NOT NULL, [trackreference] INT NOT NULL) BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @pDocFolders END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, '' END CATCH INSERT INTO @data ([folderid], [trackreference]) SELECT SRC.[folderid], @inTrackRef FROM OPENXML(@iSL, N'selectedfolders/folder') WITH ([folderid] INT '@id') SRC EXEC sp_xml_removedocument @iSL INSERT INTO [dbo].[DocFolderDocuments] ([DocFolderID], [TrackReference]) SELECT DT.[folderid], DT.[trackreference] FROM @data DT LEFT OUTER JOIN [dbo].[DocFolderDocuments] DFD ON DFD.[DocFolderID] = DT.[folderid] AND DFD.[TrackReference] = DT.[trackreference] WHERE DFD.[TrackReference] IS NULL END TRY BEGIN CATCH SET @continue = 11 SET @error = 'Error copying documents to document folder: ' + Error_Message() END CATCH END SELECT @strcasecode AS [CaseCode], @inTrackRef AS [NewTrackReference], @strFileName As [Path], @strUNCFileName As [UNCPath], @continue AS [ErrorCode], @error AS [ErrorMessage] DECLARE @HandlerBin VARBINARY(128) SET @HandlerBin = CONVERT(VARBINARY(128), @pLastAccessedby) SET CONTEXT_INFO @HandlerBin END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CreateDiaryAttachmentXML' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CreateDiaryAttachmentXML] END GO CREATE PROCEDURE [dbo].[KAAS_CreateDiaryAttachmentXML] (@pXML NVARCHAR(MAX)) AS /************************************************************************************************************* * * * Create a Diary Attachment for a particular Action * * * * Stored Procedure name : KAAS_CreateDiaryAttachmentXML * * Copied from : [dbo].[ky_NETSPCreateDiaryAttachmentXML] * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - [dbo].[ky_NETSPCreateDiaryAttachment] * * * * First compatible version: - 5.7.2.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2015-09-16 Pino Carafa Imported from Release 1 * * 2015-10-19 Sridharan KEYD-2789-Copy to Another File doesn't work correctly * * when using the Document Manager * * 2016-05-01 Pino Carafa Add DocFolders parameter * * Class can now be up to 10 characters * * @strType can now be up to 10 characters * * 2016-10-24 Pino Carafa Remove invalid filename characters in filename * * 2016-10-27 Pino Carafa Handle full file paths through @pDocument * * 2017-03-10 Pino Carafa Use ky_NETGetNextTrackReference * * 2017-07-24 Pino Carafa Add support for Document Naming Method and Storage Method * * 2019-07-29 Pino Carafa XML Version including support to add DiaryAttachmentText * * 2019-07-29 Pino Carafa Added functionality to write to the Undertakings log as had been * * implemented in [dbo].[ky_NETAAInsertDiaryAttchement] * * 2019-07-30 Pino Carafa Added Trackreference to the input XML. If left out procedure will * * get the next Track Reference itself, otherwise it will use what is * * passed in * * 2019-08-21 Pino Carafa Added script to write/update the [ReindexStatus] table. Only affects * * On Premise databases * * 2019-09-13 Pino Carafa KEYD-6133 * * 2019-12-26 Vinodhan Created KAAS_CreateDiaryAttachmentXML * * 2021-06-08 Sadiq Made varchar(17) to varchar(20) as DateTime string is taking 20 char and * * 10872 is Fixed * 2021-10-06 Arun V Set Context info * * 2022-11-18 Sadiq Added one more column with TYPE to fetch for Generate documents (15583) * *************************************************************************************************************/ BEGIN DECLARE @pDiaryID INT DECLARE @pName VARCHAR(10) DECLARE @pDocName VARCHAR(100) DECLARE @pDocument VARCHAR(255) DECLARE @pType VARCHAR(10) DECLARE @pDocClass VARCHAR(10) DECLARE @pDateEntered VARCHAR(20) DECLARE @pEnterBy VARCHAR(8) DECLARE @pLastAccessed VARCHAR(20) DECLARE @pLastAccessedby VARCHAR(8) DECLARE @pSystem VARCHAR(1) DECLARE @pDictationFile VARCHAR(255) DECLARE @pSource VARCHAR(20) DECLARE @pDocumentText VARCHAR(MAX) DECLARE @pFMINumber INT DECLARE @Fees INT DECLARE @Outlay INT DECLARE @inTrackRef INT DECLARE @DocFolders TABLE ([id] INT) SET NOCOUNT ON DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @pXML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @pDiaryID = [XML].[DiaryID], @pName = [XML].[Name], @pDocName = [XML].[DocName], @pDocument = [XML].[Document], @pType = [XML].[Type], @pDocClass = [XML].[DocClass], @pDateEntered = [XML].[DateEntered], @pEnterBy = [XML].[EnterBy], @pLastAccessed = [XML].[LastAccessed], @pLastAccessedBy = [XML].[LastAccessedBy], @pSystem = [XML].[System], @pDictationFile = [XML].[DictationFile], @pSource = [XML].[Source], @pDocumentText = [XML].[DocumentText], @Fees = [XML].[Fees], @Outlay = [XML].[Outlay], @inTrackRef = [XML].[TrackReference] FROM OPENXML(@iSL, N'CreateDiaryAttachment') WITH ([DiaryID] INT '@diaryid', [Name] VARCHAR(10) '@name', [DocName] VARCHAR(100) '@docname', [Document] VARCHAR(255) '@document', [Type] VARCHAR(10) '@type', [DocClass] VARCHAR(10) '@docclass', [DateEntered] VARCHAR(20) '@dateentered', [EnterBy] VARCHAR(8) '@enterby', [LastAccessed] VARCHAR(20) '@lastaccessed', [LastAccessedBy] VARCHAR(8) '@lastaccessedby', [System] VARCHAR(1) '@system', [DictationFile] VARCHAR(255) '@dictationfile', [Source] VARCHAR(20) '@source', [Fees] INT '@fees', [Outlay] INT '@outlay', [TrackReference] INT '@trackreference', [DocumentText] VARCHAR(MAX) 'documenttext') [XML] DECLARE @docfoldercount INT SELECT @docfoldercount = COUNT(1) FROM OPENXML(@iSL, N'CreateDiaryAttachment/selectedfolders/folder') WITH ([id] INT '@id') [XML] IF @docfoldercount > 0 BEGIN INSERT INTO @DocFolders ([id]) SELECT TOP (@docfoldercount) [id] FROM OPENXML(@iSL, N'CreateDiaryAttachment/selectedfolders/folder') WITH ([id] INT '@id') [XML] END BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SET @pDiaryID = ISNULL(@pDiaryID, 0) SET @pName = ISNULL(@pName, '') SET @pDocument = ISNULL(@pDocument, '') SET @pDocClass = ISNULL(@pDocClass, '') SET @pEnterBy = ISNULL(@pEnterBy, '') SET @pLastAccessedBy = ISNULL(@pLastAccessedBy, '') SET @pSystem = CASE WHEN ISNULL(@pSystem, 'N') = 'Y' THEN 'Y' ELSE 'N' END SET @pDictationFile = ISNULL(@pDictationFile, '') SET @Fees = ISNULL(@Fees, 0) SET @Outlay = ISNULL(@Outlay, 0) DECLARE @strcasecode VARCHAR(20) DECLARE @strFileName VARCHAR(255) DECLARE @strUNCFileName VARCHAR(500) DECLARE @strMatterNo VARCHAR(10) DECLARE @strClientCode VARCHAR(10) DECLARE @strDefaultFolder VARCHAR(255) DECLARE @strSource VARCHAR(20) DECLARE @strUniqueId VARCHAR(20) DECLARE @strType VARCHAR(10) DECLARE @continue INT DECLARE @error VARCHAR(1000) DECLARE @DocNamingMethod CHAR(1) DECLARE @StorageMethod CHAR(1) SELECT @DocNamingMethod = [CON].[DocumentNamingMethod] FROM [dbo].[control] [CON] SET @DocNamingMethod = CASE WHEN ISNULL(@DocNamingMethod, ' ') = 'T' THEN 'T' ELSE ' ' END SELECT @StorageMethod = [SCN].[STORAGEMETHOD] FROM [dbo].[SystemConfig] [SCN] SET @StorageMethod = CASE WHEN ISNULL(@StorageMethod, 'C') = 'D' THEN 'D' ELSE 'C' END SET @continue = 0 SET @error = '' SET @pDiaryID = ISNULL(@pDiaryID, 0) IF (@pDiaryID = 0) BEGIN SET @continue = 12 SET @error = 'invalid or missing Diary ID' END -- Get Diary and Matter information IF (@continue = 0) BEGIN BEGIN TRY SELECT @strcasecode = RTRIM(ISNULL([MAT].[code], '')), @strClientCode = RTRIM(ISNULL([MAT].[clientcode], '')), @strMatterNo = RTRIM(ISNULL([MAT].[matter], '')), @strSource = RTRIM(ISNULL([DIA].[PROCESSTYPE], '')), @strUniqueId = RTRIM(ISNULL([MAT].[uniqueid], '')) FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[code] = [DIA].[CASECODE] WHERE [DIA].[ACTIONID] = @pDiaryID -- Diary could be linked to Strong Room IF RTRIM(ISNULL(@strcasecode, '')) = '' BEGIN SELECT TOP 1 @pFMINumber = [FMI].[NUMBER], @strcasecode = RTRIM(ISNULL([MAT].[code], '')), @strClientCode = RTRIM(ISNULL([MAT].[clientcode], '')), @strMatterNo = RTRIM(ISNULL([MAT].[matter], '')), @strSource = RTRIM(ISNULL([DIA].[PROCESSTYPE], '')), @strUniqueId = RTRIM(ISNULL([MAT].[uniqueid], '')) FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[FileManagerItems] [FMI] LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[code] = [FMI].[MATTERCODE] ON [FMI].[ActionID] = [DIA].[ACTIONID] WHERE [DIA].[ACTIONID] = @pDiaryID END SET @strcasecode = ISNULL(@strcasecode, '') SET @strClientCode = ISNULL(@strClientCode, '0') SET @strMatterNo = ISNULL(@strMatterNo, '0') SET @strSource = CASE WHEN ISNULL(@pSource, '') = '' THEN CASE WHEN ISNULL(@strSource, 'I') = 'I' THEN 'Received E-mail' ELSE 'Sent E-mail' END ELSE @pSource END IF (@strcasecode = '') BEGIN IF @pFMINumber IS NULL BEGIN SET @continue = 2 SET @error = 'invalid or missing Diary ID' END END END TRY BEGIN CATCH SET @continue = 1 SET @error = 'Error retrieving Diary information for Diary ID: ' + ISNULL(convert(VARCHAR(10), @pDiaryID), 'unknown') + ' ' + Error_Message() END CATCH END -- Get Next TrackReference ----------------------------------------------------------------------------------------------------------------------------------------- IF (@continue = 0) BEGIN -- If Next TrackReference was passed in, just use what was passed in. IF @inTrackRef IS NULL BEGIN BEGIN TRY EXEC @inTrackRef = [dbo].[KAAS_GetNextTrackReference] END TRY BEGIN CATCH SET @continue = 3 SET @error = 'Error calculating next Track Reference: ' + Error_Message() END CATCH END END -- Write DiaryAttachment Record ----------------------------------------------------------------------------------------------------------------------------------------- IF (@continue = 0) BEGIN BEGIN TRY SELECT @strDefaultFolder = (SELECT RTRIM(ISNULL([SC].[SCWPFOLDER], '')) FROM [dbo].[SystemConfig] [SC]) SET @strDefaultFolder = ISNULL(@strDefaultFolder, '') IF (@strDefaultFolder = '') BEGIN SET @continue = 4 SET @error = 'SCWPFOLDER not SET in System Config' END END TRY BEGIN CATCH SET @continue = 5 SET @error = 'Error retrieving SCWPFOLDER: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN BEGIN TRY IF @StorageMethod = 'C' BEGIN SELECT @strFileName = RTRIM(ISNULL([CLT].[DCOUMENTFOLDER], '')) FROM [dbo].[client] [CLT] WHERE [CLT].[CLCODE] = @strClientCode SET @strFileName = RTRIM(ISNULL(@strFileName, '')) IF (@strFileName = '') BEGIN SET @strFileName = @strDefaultFolder + '\' + @strClientCode UPDATE [CLT] SET [CLT].[DCOUMENTFOLDER] = @strFileName FROM [dbo].[client] [CLT] WHERE [CLT].[CLCODE] = @strClientCode END END ELSE BEGIN SET @strFileName = @strDefaultFolder + '\' + CONVERT(VARCHAR(6), GETDATE(), 112) END END TRY BEGIN CATCH SET @continue = 6 SET @error = 'Error establishing Document Folder: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN SET @pDocument = RTRIM(ISNULL(@pDocument, '')) SET @pDocument = REPLACE(@pDocument, CHAR(13) + CHAR(10), '_') IF (@pDocument = '') BEGIN SET @continue = 7 SET @error = 'missing document name' END END IF (@continue = 0) BEGIN SET @pDocName = RTRIM(ISNULL(@pDocName, '')) SET @pDocName = REPLACE(@pDocName, CHAR(13) + CHAR(10), '_') IF (@pDocName = '') BEGIN SET @continue = 7 SET @error = 'missing document name' END END IF (@continue = 0) BEGIN BEGIN TRY SET @pType = RTRIM(ISNULL(@pType, '')) SET @strType = convert(VARCHAR(10), @pType) END TRY BEGIN CATCH SET @continue = 8 SET @error = 'Error interpreting Document Type: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN BEGIN TRY DECLARE @pDocName2 VARCHAR(100) DECLARE @pDocumentWork VARCHAR(255) SET @pDocumentWork = REVERSE(@pDocument) IF CHARINDEX('\', @pDocumentWork) > 0 BEGIN SET @pDocumentWork = SUBSTRING(@pDocumentWork, 1, CHARINDEX('\', @pDocumentWork) - 1) END IF CHARINDEX('.', @pDocumentWork) > 0 BEGIN SET @pDocumentWork = SUBSTRING(@pDocumentWork, CHARINDEX('.', @pDocumentWork) + 1, LEN(@pDocumentWork) - CHARINDEX('.', @pDocumentWork)) END SET @pDocumentWork = REVERSE(@pDocumentWork) IF @DocNamingMethod <> 'T' BEGIN IF ISNULL(@inTrackRef, 0) <> 0 BEGIN IF LEN(@pDocumentWork) > LEN(CONVERT(VARCHAR(10), @inTrackRef)) + 1 BEGIN IF SUBSTRING(@pDocumentWork, LEN(@pDocumentWork) - LEN(CONVERT(VARCHAR(10), @inTrackRef)), LEN(CONVERT(VARCHAR(10), @inTrackRef)) + 1) = '_' + CONVERT(VARCHAR(10), @inTrackRef) BEGIN SET @pDocumentWork = SUBSTRING(@pDocumentWork, 1, LEN(@pDocumentWork) - LEN(CONVERT(VARCHAR(10), @inTrackRef)) - 1) END END END SET @pDocName2 = REPLACE(REPLACE(REPLACE([dbo].[KAAS_FN_RemovePatternFromString](@pDocumentWork, '%[:*<>$&.!?@#~/\\\%|`¬{}\+=_^€£",]%'), CHAR(13), ''), CHAR(10), ''), CHAR(9), '') IF @StorageMethod = 'D' BEGIN SET @strFileName = @strFileName + '\' + @pDocName2 + '_' + convert(VARCHAR(10), @inTrackRef) END ELSE BEGIN SET @strFileName = @strFileName + '\' + @strMatterNo + '\' + @pDocName2 + '_' + convert(VARCHAR(10), @inTrackRef) END END ELSE BEGIN IF @StorageMethod = 'D' BEGIN SET @strFileName = @strFileName + '\' + convert(VARCHAR(10), @inTrackRef) END ELSE BEGIN SET @strFileName = @strFileName + '\' + @strMatterNo + '\' + convert(VARCHAR(10), @inTrackRef) END END IF (@pType <> '') BEGIN SET @strFileName = @strFileName + '.' + @pType END END TRY BEGIN CATCH SET @continue = 9 SET @error = 'Error establishing filename: ' + Error_Message() END CATCH END SET @strFileName = ISNULL(@strFileName, '') SET @strUNCFileName = @strFileName IF (SUBSTRING(@strUNCFileName, 2, 1) = ':') BEGIN SELECT @strUNCFileName = ISNULL(MAX([UNC].[UNC]) + SUBSTRING(@strUNCFileName, 3, LEN(@strUNCFileName) - 2), @strUNCFileName) FROM [dbo].[UNCAlias] [UNC] WHERE SUBSTRING(@strUNCFileName, 1, 1) = [UNC].[Drive] SET @strUNCFileName = LEFT(@strUNCFileName, 2) + REPLACE(RIGHT(@strUNCFileName, LEN(@strUNCFileName) - 2), '\\', '\') END IF(@strType = 'FOL') BEGIN SET @strFileName = @pDocument END IF (@continue = 0) BEGIN BEGIN TRY INSERT INTO DiaryAttachments ([DiaryID], [TrackReference], [CASECODE], [NAME], [DOCUMENT], [FILEPATH], [TYPE], [DOCCLASS], [DATEENTERED], [ENTEREDBY], [LASTACCESSDATE], [LASTACCESSBY], [SYSTEM], [DICTATIONFILE], [SOURCE], [Fees], [Outlay]) VALUES(@pDiaryID, @inTrackRef, @strcasecode, @pName, @pDocName, @strUNCFileName, @strType, @pDocClass, convert(DATETIME, @pDateEntered), @pEnterBy, convert(DATETIME, @pLastAccessed), @pLastAccessedby, @pSystem, @pDictationFile, @strSource, @Fees, @Outlay) END TRY BEGIN CATCH SET @continue = 10 SET @error = 'Error inserting Diary Attachment record: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN BEGIN TRY DECLARE @data TABLE ([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [folderid] INT NOT NULL, [trackreference] INT NOT NULL) INSERT INTO @data ([folderid], [trackreference]) SELECT [SRC].[id], @inTrackRef FROM @DocFolders [SRC] INSERT INTO [dbo].[DocFolderDocuments] ([DocFolderID], [TrackReference]) SELECT [DT].[folderid], [DT].[trackreference] FROM @data [DT] LEFT OUTER JOIN [dbo].[DocFolderDocuments] [DFD] ON [DFD].[DocFolderID] = [DT].[folderid] AND [DFD].[TrackReference] = [DT].[trackreference] WHERE [DFD].[TrackReference] IS NULL END TRY BEGIN CATCH SET @continue = 11 SET @error = 'Error copying documents to document folder: ' + Error_Message() END CATCH END IF @continue = 0 BEGIN SET @pDocumentText = RTRIM(ISNULL(@pDocumentText, '')) BEGIN TRY BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[DiaryAttachmentText] [DAX] WHERE [DAX].[TrackReference] = @inTrackRef) BEGIN UPDATE [DAX] SET [DAX].[AccessDate] = @pLastAccessed, [DAX].[ModifyDate] = @pLastAccessed, [DAX].[CreatedDate] = @pDateEntered, [DAX].[TEXT] = @pDocumentText FROM [dbo].[DiaryAttachmentText] [DAX] WHERE [DAX].[TrackReference] = @inTrackRef END ELSE BEGIN INSERT INTO [dbo].[DiaryAttachmentText] ([TrackReference], [AccessDate], [CreatedDate], [ModifyDate], [TEXT]) VALUES(@inTrackRef, @pLastAccessed, @pDateEntered, @pLastAccessed, @pDocumentText) END END END TRY BEGIN CATCH END CATCH BEGIN TRY BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[ReindexStatus] [RIS] WHERE [RIS].[TrackReference] = @inTrackRef) BEGIN UPDATE [RIS] SET [RIS].[STATUS] = 1 FROM [dbo].[ReindexStatus] [RIS] WHERE [RIS].[TrackReference] = @inTrackRef END ELSE BEGIN INSERT INTO [dbo].[ReindexStatus] ([TrackReference], [FILEPATH], [STATUS]) VALUES(@inTrackRef, @strFileName, 1) END END END TRY BEGIN CATCH END CATCH END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[diary] [DIA] WITH (NOLOCK) WHERE [DIA].[ACTIONID] = @pDiaryID AND [DIA].[ACTIONTYPE] = 'U') BEGIN DECLARE @UserName VARCHAR(20) DECLARE @Description VARCHAR(500) SET @UserName = ISNULL((SELECT [HAN].[NAME] FROM [dbo].[Handlers] [HAN] WHERE [HAN].[CODE] = @pEnterBy), CASE WHEN @pEnterBy = '' THEN 'Unknown' ELSE @pEnterBy END) SET @Description = 'Attachment Added: ' + CHAR(13) + CHAR(10) + 'Date: ' + CONVERT(VARCHAR(11), CONVERT(DATETIME, @pDateEntered), 106) + CHAR(13) + CHAR(10) + 'Document Name: ' + @pDocName + CHAR(13) + CHAR(10) + 'Document Class: ' + @pDocClass + CHAR(13) + CHAR(10) INSERT INTO [dbo].[UndertakingLog] ([UndertakingID], [FieldChanges], [FromValue], [ToValue], [ByWho], [ModifiedDate]) VALUES(@pDiaryID, 'New Documents Added', @Description, ' - NIL - ', @UserName, GETDATE()) END SELECT @strcasecode AS [CaseCode], @inTrackRef AS [NewTrackReference], @strFileName AS [Path], @strUNCFileName AS [UNCPath], @continue AS [ErrorCode], @error AS [ErrorMessage], @strUniqueId AS [UniqueId], @strType AS [Type], @pDocName AS [Document] DECLARE @HandlerBin VARBINARY(128) SET @HandlerBin = CONVERT(VARBINARY(128), @pLastAccessedby) SET CONTEXT_INFO @HandlerBin END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CreateDiaryStep' AND SO.[type] = 'P') BEGIN DROP PROCEDURE KAAS_CreateDiaryStep END GO CREATE PROCEDURE KAAS_CreateDiaryStep (@pStatus Int=0, @pDate datetime, @pDueDate datetime, @pSentDate datetime, @pCaseCode varchar(20), @pActionCode char(15), @pActionType char(1), @pActionStatus char(3), @pPriority char(1), @pHighlighted char(1), @pBillable int, @pWorkProcess int, @pPublish char(1), @pFnCode varchar(10), @pTeamCode varchar(10), @pText1 varchar(MAX), @pAttachments char(1), @pEmailAddress varchar(MAX), @pAddressTo varchar(MAX), @pccTo varchar(MAX), @pbccTo varchar(MAX), @pemail char(1), @pSubject varchar(MAX), @pProcessType char(1), @pLocation varchar(50), @pDuration int) AS /******************************************************************************************************* * Create Diary Step suitable for Add Task as well as assigning a mail to Case, and applying a duration.* * * * Stored Procedure Name : [dbo].[KAAS_CreateDiaryStep] * * Copied from : [dbo].[ky_WDCreateDiaryStep5] in AllDiaryStepProcedures * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @strcasecode nVarChar(20) DECLARE @intAssignno int DECLARE @SubjectLen int DECLARE @CaseCodeLen int DECLARE @FELen int DECLARE @TeamLen int DECLARE @dDate datetime DECLARE @pTime char(10) DECLARE @pEndTime char(10) DECLARE @dDueDate datetime DECLARE @pDueTime char(10) DECLARE @continue int DECLARE @error varchar(1000) DECLARE @NewActionID int DECLARE @KYC char(1) DECLARE @FirmDomainAddress VARCHAR(50) SELECT @FirmDomainAddress = CONVERT(VARCHAR(50), ISNULL([SET].[KeyValue], '')) FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'FirmDomainAddress' DECLARE @CheckAddress VARCHAR(MAX) SET @CheckAddress = @pEmailAddress If CHARINDEX('@', @CheckAddress) > 1 BEGIN SET @CheckAddress = SUBSTRING(@CheckAddress, CHARINDEX('@', @CheckAddress), LEN(@CheckAddress) - CHARINDEX('@', @CheckAddress) + 1) IF SUBSTRING(@CheckAddress, LEN(@CheckAddress), 1) IN ('>', ')', ']') BEGIN SET @CheckAddress = SUBSTRING(@CheckAddress, 1, LEN(@CheckAddress) - 1) END SET @CheckAddress = '%;' + @CheckAddress + ';%' END ELSE BEGIN SET @CheckAddress = '' END SET @FirmDomainAddress = ISNULL(@FirmDomainAddress, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx') IF LEN(@FirmDomainAddress) > 0 BEGIN IF SUBSTRING(@FirmDomainAddress, 1, 1) <> '@' BEGIN SET @FirmDomainAddress = '@' + @FirmDomainAddress END END IF @CheckAddress <> '' BEGIN IF ';' + @FirmDomainAddress + ';' LIKE @CheckAddress BEGIN SET @pProcessType = 'O' END END SET @continue = 0 SET @error = '' SET @NewActionID = 0 BEGIN TRANSACTION Begin Try SET @pDuration = ISNULL(@pDuration, 0) IF (@pDuration <= 0) BEGIN SET @pDuration = 30 END SET @pDuration = @pDuration * 60 End Try Begin Catch SET @continue = 1 SET @error = 'invalid duration information' SET @NewActionID = 0 End Catch IF (@continue = 0) BEGIN BEGIN TRY -- Get only the DATE portion of the date that was passed in IF (@pDate is null) SET @pDate = GETDATE() IF (@pDueDate is null) SET @pDueDate = @pDate SET @dDate = convert(datetime, convert(varchar, @pDate, 112)) SET @pTime = convert(char(10), (1000 * convert(int, DATEDIFF(ms, @dDate, @pDate) / 10000)) + 1) SET @pEndTime = convert(char(10), (@pDuration * 100) + (1000 * convert(int, DATEDIFF(ms, @dDate, @pDate) / 10000)) + 1) SET @dDueDate = convert(datetime, convert(varchar, @pDueDate, 112)) SET @pDueTime = convert(char(10), @pDuration + (10 * convert(int, DATEDIFF(ms, @dDueDate, @pDueDate) / 10000))) END TRY BEGIN CATCH SET @continue = 2 SET @error = 'error processing date parameters' SET @NewActionID = 0 END CATCH END IF (@continue = 0) BEGIN BEGIN TRY select @SubjectLen = CASE WHEN sc.xtype = 35 THEN 150 ELSE sc.[length] END from sysobjects so inner join syscolumns sc on sc.[id] = so.[id] and sc.[name] = 'subject' where so.[name] = 'diary' select @CaseCodeLen = sc.[length] from sysobjects so inner join syscolumns sc on sc.[id] = so.[id] and sc.[name] = 'casecode' where so.[name] = 'diary' select @FELen = sc.[length] from sysobjects so inner join syscolumns sc on sc.[id] = so.[id] and sc.[name] = 'fncode' where so.[name] = 'diary' select @TeamLen = sc.[length] from sysobjects so inner join syscolumns sc on sc.[id] = so.[id] and sc.[name] = 'teamcode' where so.[name] = 'diary' END TRY BEGIN CATCH SET @continue = 3 SET @error = 'invalid duration information' SET @NewActionID = 0 END CATCH END -- Get CaseCode From Matters Table ----------------------------------------------------------------------------------------------------------------------------------------- IF (@continue = 0) BEGIN BEGIN TRY SET @strCaseCode = NULL SELECT Top 1 @strCaseCode = MAT.[Code] From [dbo].[Matters] MAT WHERE MAT.[code] = @pCaseCode SET @strCaseCode = RTRIM(Isnull(@strCaseCode, '')) Set @pFNCode = RTRIM(@pFNCode) Set @pTeamCode = RTRIM(@pTeamCode) IF (@strCaseCode = '') BEGIN SET @continue = 4 BEGIN TRY SET @pCaseCode = RTRIM(ISNULL(@pCaseCode, '')) END TRY BEGIN CATCH SET @pCaseCode = '' END CATCH SET @error = 'Invalid Case Code: ' + @pCaseCode SET @NewActionID = 0 END IF (@continue = 0) BEGIN IF (LEN(@strCaseCode) < 2) BEGIN SET @continue = 4 SET @error = 'Invalid parameters. Case Code too short' SET @NewActionID = 0 END END IF (@continue = 0) BEGIN IF (LEN(@strCaseCode) > @CaseCodeLen) BEGIN SET @continue = 4 SET @error = 'Invalid parameters. Case Code too long' SET @NewActionID = 0 END END IF (@continue = 0) BEGIN IF (LEN(@pFNCode) > @FELen) BEGIN SET @continue = 4 SET @error = 'Invalid parameters. FE code too long' SET @NewActionID = 0 END END IF (@continue = 0) BEGIN IF (LEN(@pTeamCode) > @TeamLen) BEGIN SET @continue = 4 SET @error = 'Invalid parameters. TEAM code too long' SET @NewActionID = 0 END END -- Set Publish and Subject ----------------------------------------------------------------------------------------------------------------------------------- IF (@continue = 0) BEGIN Select @pPublish = CASE WHEN RTRIM(ISNULL(@pPublish, '')) <> '' THEN @pPublish ELSE TAC.[PUBLISHER] END, @KYC = TAC.[KYC], @pProcessType = CASE WHEN RTRIM(ISNULL(@pProcessType, '')) <> '' THEN @pProcessType ELSE TAC.[PROCESSTYPE] END From TemplateActions TAC where TAC.[ACTIONCODE] = @pActionCode IF (RTRIM(IsNull(@pPublish, '')) = '') BEGIN SET @pPublish = 'N' END IF (RTRIM(IsNull(@pProcessType, '')) = '') BEGIN SET @pProcessType = '' END SET @pSubject = RTRIM(@pSubject) IF LEN(@pSubject) > @SubjectLen BEGIN SET @pSubject = Substring(@pSubject, 1, @SubjectLen) END END -- Truncate potentially long fields ----------------------------------------------------------------------------------------------------------------------------------- IF (@continue = 0) BEGIN SET @pEmailAddress = CONVERT(varchar(150), ISNULL(@pEmailAddress, '')) SET @pSubject = CONVERT(varchar(500), ISNULL(@pSubject, '')) SET @pAddressTo = CONVERT(varchar(2000), ISNULL(@pAddressTo, '')) SET @pccTo = CONVERT(varchar(2000), ISNULL(@pccTo, '')) SET @pbccTo = CONVERT(varchar(2000), ISNULL(@pbccTo, '')) END END TRY BEGIN CATCH SET @continue = 5 SET @error = 'Invalid parameters Publish, ProcessType or Subject' SET @NewActionID = 0 END CATCH END IF (@continue = 0) BEGIN BEGIN TRY -- Pino 2015-09-30 Start EXEC @NewActionID = [dbo].[ky_NETGetNextActionID] --SELECT @NewActionID = ISNULL(MAX(DIA.[ActionID]), 0) + 1 -- FROM [dbo].[diary] DIA -- Pino 2015-09-30 End END TRY BEGIN CATCH SET @continue = 8 SET @error = convert(varchar(1000), 'Error establishing new Action ID, ' + Error_Message()) SET @NewActionID = 0 END CATCH END -- Write Diary Record ----------------------------------------------------------------------------------------------------------------------------------------- IF (@continue = 0) BEGIN BEGIN TRY INSERT INTO [dbo].[Diary] ([ActionID], [Status], [CaseCode], [ActionCode], [ActionStatus], [PRIORITY], [HIGHLIGHTED], [BILLABLE], [WORKPROCESS], [FnCode], [TeamCode], [Text1], [Attachments], [EmailAddress], [AddressTo], [Location], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYSTARTTIME], [DYENDTIME], [Date], [DUEDATE], [TxmDate], [KYC]) VALUES(@NewActionID, @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pPriority, @pHighlighted, @pBillable, @pWorkProcess, @pFnCode, @pTeamCode, convert(text, @pText1), @pAttachments, @pEmailAddress, @pAddressTo, @pLocation, @pccTo, @pbccTo, @pemail, @pSubject, @pPublish, @pActionType, @pProcessType, @pTime, @pEndTime, @pDate, @pDueDate, @pSentDate, @KYC) END TRY BEGIN CATCH SET @continue = 6 SET @error = convert(varchar(1000), 'Error inserting Diary Entry, ' + Error_Message()) SET @NewActionID = 0 END CATCH END -- Write the diary delegation record ------------------------------------------------------------ IF (@continue = 0) BEGIN BEGIN TRY INSERT INTO [DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@NewActionID, @pFnCode, @pTeamCode, @dDate, @pTime, @dDate, @pTime, @dDueDate, @pDueTime, ' ', @pStatus, 'Y', @pFnCode, 0, @pActionType, ' ', ' ', 'Created') END TRY BEGIN CATCH SET @continue = 7 SET @error = convert(varchar(1000), 'Error inserting Diary Delegation, ' + Error_Message()) SET @NewActionID = 0 END CATCH END -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ IF (@continue = 0) BEGIN COMMIT END ELSE BEGIN SET @NewActionID = 0 ROLLBACK END SELECT @continue AS [ErrorCode], @error AS [ErrorMessage], @NewActionID AS [NewActionID] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CreateFNL' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CreateFNL] END GO CREATE PROCEDURE [dbo].[KAAS_CreateFNL] (@Matter VARCHAR(20), @Date DATETIME, @Name VARCHAR(50), @address VARCHAR(120), @Fees DECIMAL(15,2), @Outlay DECIMAL(15,2), @fecode VARCHAR(10), @Vat DECIMAL(15,2), @Total DECIMAL(15,2), @Handler VARCHAR(10)) AS /****************************************************************************************************************** * To Create the new FNL * * * * Stored Procedure Name: [dbo].[KAAS_CreateFNL] * * Copied from : [dbo].[ky_NETCreateFNL] * * * * Modification History: * * 2019-07-19 Vinodhan K Created * ******************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @IsSAM4 BIT DECLARE @NARR VARCHAR(80) DECLARE @COMMAND NVARCHAR(MAX) SET @IsSAM4 = [dbo].[ISSAM4]() IF @IsSAM4 = 0 BEGIN SET @NARR = CONVERT(VARCHAR(80), 'FNL: ' + CONVERT(VARCHAR(15),@Total) + ' ' + RTRIM(ISNULL(CONVERT(VARCHAR(12),@Name), '')) + '... Fees: ' + CONVERT(VARCHAR(15), @Fees) + ' Outlay: ' + CONVERT(VARCHAR(15), @Outlay) + ' Vat: ' + CONVERT(VARCHAR(15), @Vat)) SET @Matter = RTRIM(ISNULL(@Matter, '')) SET @COMMAND = N' INSERT INTO [dbo].[Matterledger] ([MATTER], [BATCHNO], [PREF], [DATE], [NARR], [FEE], [REF]) VALUES(''' + Replace(@Matter, '''', '''''') + ''', 0, 0, ''' + Replace(@Date , '''', '''''') + ''', ''' + Replace(@NARR, '''', '''''') + ''', ''' + Replace(@fecode, '''', '''''') + ''', ''' + Replace(@Handler, '''', '''''') + ''') SELECT SCOPE_IDENTITY()' EXEC (@COMMAND) END ELSE BEGIN SET @NARR = CONVERT(VARCHAR(200), 'FNL: ' + CONVERT(VARCHAR(15), @Total) + ' ' + RTRIM(ISNULL(CONVERT(VARCHAR(30), @Name), '')) + '... Fees: ' + CONVERT(VARCHAR(15), @Fees) + ' Outlay: ' + CONVERT(VARCHAR(15), @Outlay) + ' VAT: ' + CONVERT(VARCHAR(15), @Vat)) SET @Matter = RTRIM(ISNULL(@Matter, '')) EXEC [dbo].[KAAS_AddMatterLedgerComment] @Matter, @Date, @Handler, @NARR END BEGIN UPDATE MAT SET MAT.[FNL_Name] = RTRIM(ISNULL(@Name, '')), MAT.[FNL_Address] = RTRIM(ISNULL(@address, '')), MAT.[FNL_Date] = @Date, MAT.[FNL_Fees] = @Fees , MAT.[FNL_Outlay] = @Outlay , MAT.[FNL_VAT] = @Vat, MAT.[FNL_Total] = @Total FROM [dbo].[matters] MAT WHERE MAT.[Code] = @Matter END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CreateNamedBriefSection', N'P')IS NOT NULL DROP PROCEDURE KAAS_CreateNamedBriefSection GO CREATE PROCEDURE [dbo].[KAAS_CreateNamedBriefSection] (@BriefIDV VARCHAR(10), @CoverPageV VARCHAR(1), @Section VARCHAR(100), @SectionId INT OUT) AS /************************************************************************************************************* * Stored Procedure Name : [dbo].[KAAS_CreateNamedBriefSection] * * Copied from : [dbo].[ky_NETSPCreateBriefSection] * * * * Adds a new Section to the Brief * * * * Modification History * * 2019-10-16 Ganapathy T Created * * * *************************************************************************************************************/ BEGIN DECLARE @BriefID INT DECLARE @CoverPage bit BEGIN TRY SET @BriefID = CONVERT(INT, @BriefIDV) END TRY BEGIN CATCH SET @BriefID = 0 END CATCH BEGIN TRY SET @CoverPage = CONVERT(BIT, @CoverPageV) END TRY BEGIN CATCH SET @CoverPage = 0 END CATCH SET @Section = CASE WHEN RTRIM(ISNULL(@Section, '')) = '' THEN '(New Section)' ELSE RTRIM(ISNULL(@Section, '')) END IF (@BriefID <> 0) BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @BriefID AS [BriefID], @CoverPage AS [CoverPage], ISNULL(MAX(BS.[Sequence]), 0) + 1 AS [Sequence], @Section AS [Section] FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @BriefID SELECT @SectionId = SCOPE_IDENTITY(); UPDATE BS SET BS.[khsorter] = CONVERT(VARCHAR(1), 1 - BS.[CoverPage]) + SUBSTRING(CONVERT(VARCHAR(5), 10000 + BS.[Sequence]), 2, 4) + SUBSTRING(CONVERT(VARCHAR(8), 10000000 + BS.[ID]), 2, 7) FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @BriefID END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CreateTemplatedDiaryStep' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CreateTemplatedDiaryStep] END GO CREATE PROCEDURE [dbo].[KAAS_CreateTemplatedDiaryStep] (@pStatus INT, @pDate DATETIME, @pDueDate DATETIME, @pSentDate DATETIME, @pCaseCode VARCHAR(20), @pActionCode VARCHAR(20), @pFNCode VARCHAR(10), @pTEAMCode VARCHAR(10), @pTEXT VARCHAR(MAX), @pAttachments CHAR(1), @pEmailAddress VARCHAR(MAX), @pAddressTo VARCHAR(MAX), @pccTo VARCHAR(MAX), @pbccTo VARCHAR(MAX), @pemail CHAR(1), @pSubject VARCHAR(MAX), @pLocation VARCHAR(50), @pDuration INT) AS /******************************************************************************** * * * Create Diary Step .NET version * * Suitable for Add Task * * AS well AS assigning a mail to Case, and applying a duration. * * * * Stored Procedure Name : KAAS_CreateTemplatedDiaryStep * * Copied From : ky_NETSPCreateTemplatedDiaryStep * * * * Uses the template specified through the ACTIONCODE * * * * 2015-04-29 Pino If ActionCode does not exist, default values. * * 2015-09-30 Pino Use ky_NETGetNextActionID * * 2016-09-13 Pino KYC - KEYD-4040 * * 2019-09-04 Vinodhan K Created KAAS_CreateTemplatedDiaryStep * * * **********************************************************************************/ BEGIN DECLARE @pActionType CHAR(1) DECLARE @pActionStatus CHAR(3) DECLARE @pPriority CHAR(1) DECLARE @pHighlighted CHAR(1) DECLARE @pBillable INT DECLARE @pWorkProcess INT DECLARE @pPublish CHAR(1) DECLARE @KYC char(1) DECLARE @pProcessType CHAR(1) IF EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateActions] TAC WHERE TAC.[ACTIONCODE] = RTRIM(ISNULL(@pActionCode, ''))) BEGIN SELECT @pActionType = TAC.[ACTTYPE], @pActionStatus = TAC.[STATUS], @pPriority = CONVERT(VARCHAR(1), TAC.[PRIORITY]), @pHighlighted = TAC.[HIGHLIGHTED], @pBillable = CASE WHEN ISNULL(TAC.[BILLABLE], 'N') = 'Y' THEN 1 ELSE 0 END, @pWorkProcess = 0, @pPublish = TAC.[PUBLISHER], @KYC = TAC.[KYC], @pProcessType = TAC.[PROCESSTYPE] FROM [dbo].[TemplateActions] TAC WHERE TAC.[ACTIONCODE] = @pActionCode END ELSE BEGIN SET @pActionType = 'A' SET @pActionStatus = 'NA' SET @pPriority = 'Normal' SET @pHighlighted = '' SET @pBillable = 0 SET @pWorkProcess = 0 SET @pPublish = 'N' SET @pProcessType = 'I' END EXEC KAAS_CreateDiaryStep @pStatus, @pDate, @pDueDate, @pSentDate, @pCaseCode, @pActionCode, @pActionType, @pActionStatus, @pPriority, @pHighlighted, @pBillable, @pWorkProcess, @pPublish, @pFnCode, @pTeamCode, @pText, @pAttachments, @pEmailAddress, @pAddressTo, @pccTo, @pbccTo, @pemail, @pSubject, @pProcessType, @pLocation, @pDuration END GO IF OBJECT_ID(N'KAAS_CreateTenantUser',N'P')IS NOT NULL DROP PROCEDURE KAAS_CreateTenantUser GO CREATE PROCEDURE [dbo].[KAAS_CreateTenantUser] (@Handler VARCHAR(10), @Team VARCHAR(10), @Name VARCHAR(40), @Type VARCHAR(1), @Email VARCHAR(100), @RateV VARCHAR(17)) AS /********************************************************************************** * * [dbo].[ky_NETSPCreateUser] * Fast "Create User" Procedure * 2014-11-17 PINO Don't create Nominal in SAM4 * 2015-02-24 PINO Error in quotes for Nominal code. TEAMCODE must not be set, * allowing column default to set it to 'N' * 2017-10-20 JOHN Added the fees nominal code to the new fee earner (if applicable) - KEYD-4852 * 2020-08-04 John KEYD-6687 - Fixed the rate not being saved properly * 2020-10-22 John Ginnane KEYD-6912 - Populate [dbo].[HandlerNames] with new value * 2021-03-12 John Ginnane 11585 - Truncating description to 30 characters to fit Nominal.DESC * 2021-04-01 John Ginnane 11585 - Making sure name is truncated to 30 characters to Handlers.NAME * 2021-05-20 Sadiq Copied from ky_NETSPCreateUser for 12048 ticket * 2021-05-20 Sadiq Insert Only if HandlerName Table is present . **********************************************************************************/ BEGIN DECLARE @FECode VARCHAR(10) DECLARE @NominalCode VARCHAR(10) DECLARE @ISSAM4 BIT DECLARE @Rate DECIMAL(13, 2) SELECT @ISSAM4 = [dbo].[ISSAM4](), @NominalCode = '' /* @Type = 0 Fee Earner 1 Handler 2 Support Staff */ IF (ISNUMERIC(@RateV) = 1) BEGIN SET @Rate = CONVERT(decimal(13, 2), @RateV) END ELSE BEGIN SET @Rate = 0 END SET @Rate = ISNULL(@Rate, 0) IF NOT EXISTS (SELECT * FROM [dbo].[Handlers] HAN WHERE HAN.[CODE] = @Handler) BEGIN IF (@Type <> 'S') BEGIN SET @FECode = RTRIM(ISNULL(@Handler, '')) DECLARE @COMMAND VARCHAR(MAX) IF @ISSAM4 = 0 BEGIN SELECT @NominalCode = CONVERT(VARCHAR(10), 'FEES-' + REPLACE(@FECode, '''', '''''')) SET @COMMAND = ' INSERT INTO [dbo].[Nominal] ([CODE], [DESC], [TYPE], [PB], [CURRENCY], [SEQ], [CLIENTAC], [CHEQUEPRINTER], [DEPOSITYN], [SORTCODE], [BANK], [BANKBRANCH], [ACCOUNTNO], [ACCOUNTNAME], [BANKADDRESS], [BANKPHONE], [WITHDRAWNAMES], [CHEQUEREQ]) SELECT ''' + ISNULL(@NominalCode, '') + ''' AS [CODE], LEFT(CASE WHEN RTRIM(ISNULL(NRS.[DESC], '''')) = '''' THEN RTRIM(ISNULL(''' + Replace(@Name, '''', '''''') + ''', '''')) WHEN RTRIM(ISNULL(''' + Replace(@Name, '''', '''''') + ''', '''')) = '''' THEN RTRIM(ISNULL(NRS.[DESC], '''')) ELSE RTRIM(ISNULL(NRS.[DESC], '''')) + '' - '' + RTRIM(ISNULL(''' + Replace(@Name, '''', '''''') + ''', '''')) END, 30) AS [DESC], RTRIM(ISNULL(NTY.[NTYCODE], '''')) AS [TYPE], ''P'' AS [PB], ISNULL(CTR.[BASECURRENCY], '''') AS [CURRENCY], RTRIM(ISNULL(NRS.[CODE], '''')) AS [SEQ], '''' AS [CLIENTAC], '''' AS [CHEQUEPRINTER], '''' AS [DEPOSITYN], '''' AS [SORTCODE], '''' AS [BANK], '''' AS [BANKBRANCH], '''' AS [ACCOUNTNO], '''' AS [ACCOUNTNAME], '''' AS [BANKADDRESS], '''' AS [BANKPHONE], '''' AS [WITHDRAWNAMES], '''' AS [CHEQUEREQ] FROM [dbo].[NominalTypes] NTY INNER JOIN [dbo].[NominalReportSeq] NRS ON NRS.[CODE] = ''AA01'' LEFT OUTER JOIN [dbo].[Nominal] NOM ON NOM.[CODE] = ''FEES - '' + ''' + Replace(@FeCode, '''', '''''') + ''' OUTER APPLY (SELECT TOP 1 [BASECURRENCY] FROM [dbo].[CONTROL]) CTR WHERE NTY.[NTYCODE] = ''INCOME'' AND NOM.[CODE] IS NULL' EXEC (@COMMAND) END SELECT @COMMAND = ' INSERT INTO [dbo].[FeeEarnerCodes] ([CODE], [BRANCH], [NAME], [NOMINAL], [RETIRED]' + CASE WHEN EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] INNER JOIN sys.[columns] [SC] ON [SC].[object_id] = [SO].[object_id] AND [SC].[name] = 'NominalCode' WHERE [SO].[name] = 'FeeEarnerCodes' AND [SO].[type] = 'U') THEN ', [NominalCode]' ELSE '' END + ') SELECT ''' + Replace(@FECode, '''', '''''') + ''', '''', ''' + RTRIM(ISNULL(Replace(@Name, '''', ''''''), '')) + ''', ''' + ISNULL(@NominalCode, '') + ''', ''N''' + CASE WHEN EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] INNER JOIN sys.[columns] [SC] ON [SC].[object_id] = [SO].[object_id] AND [SC].[name] = 'NominalCode' WHERE [SO].[name] = 'FeeEarnerCodes' AND [SO].[type] = 'U') THEN ', ''' + ISNULL(@NominalCode, '') + '''' ELSE '' END SELECT @COMMAND EXEC (@COMMAND) END ELSE BEGIN SET @FECode = '' END INSERT INTO [dbo].[Handlers] ([CODE], [TEAM], [Dept], [Type], [Name], [Rate], [RATE1], [RATE2], [RATE3], [RATE4], [RATE5], [TEMPCALC], [LOGON], [MAILADDRESS], [TIMECOSTER], [TEAMLEADER], [NORECENTMATTERS], [DEFAULTTASK], [EXCHANGEALIAS], [EMAIL], [RETIRED], [DELEGATE], [OutlookView], [AutoLaunchTimer], [SIGNATURE]) VALUES(@Handler, --[CODE] @Team, --[TEAM] '', --[Dept] @Type, --[Type] LEFT(@Name, 30), @Rate, @Rate, @Rate, @Rate, @Rate, @Rate, 0, @Handler, @FECode, 'N', '', 30, '', @Email, @Email, 'N', '', 'Y', 'N', '') IF EXISTS(SELECT 1 FROM sys.Objects WHERE Object_id = OBJECT_ID(N'dbo.[HandlerNames]') AND Type = N'U') BEGIN INSERT INTO [dbo].[HandlerNames] ( [Code], [Name]) SELECT @Handler, LEFT(ISNULL(@Name, ''), 30) END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_CRLoadDropdownList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_CRLoadDropdownList] END GO CREATE PROCEDURE [dbo].[KAAS_CRLoadDropdownList] -- Add the parameters for the stored procedure here (@type AS VARCHAR(50)) AS /********************************************************************************************* * * Stored Procedure Name: [dbo].[load_infiles] * * Description: This SP used to Load combo based on the in-file selected WHILE creating parameters * Author: Magesh Kumar * Create date: 2014-06-12 * Modification History: * 2015-04-04 Magesh Changed the UnderstakingStatus keyword to UndertakingStatus * 2015-06-23 Sridharen KEYD-2332 - Use of LTRIM(RTRIM( * 2015-07-31 Magesh Added extra condition to show client groups in in-file. * 2015-10-20 Sridharan IF-183-Undertaking Status Length * 2015-11-23 Magesh Added team and partner to infile dropdown * 2015-11-25 Magesh Added Nominal to infile dropdown * 2015-11-25 Pino Make SAM4 proof * 2015-12-14 Magesh Added client category type to the infile * 2016-02-12 Magesh Added Client bank to the infile * 2016-06-23 Suriya M REP-650-Creditors As At Date Report * 2016-06-23 Suriya M KEYD-3595-URGENT: Please review a number of recently * created Stored Procedures and Functions * 2019-08-15 John Ginnane KEYD-6068 - Added Branches to output * 2019-12-15 Vinodhkumar.M Modifed-In contacts type Added Address and removed Telephone, contatc no,FE,client,Client group, tax type,Comb bill on Off * 2022-12-08 Nithyanandham.M [Branch].[Retired] is null condition has been added. @type Bank has been included in the if condition .(Account reports has @type value = 'Bank') *********************************************************************************************/ BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF (@type = 'Contacts') BEGIN SELECT RTRIM(A.[CODE]) AS [Code], RTRIM(A.[NAME]) AS [Name], RTRIM(ISNULL(A.[Address],'')) AS [Address], RTRIM(ISNULL(A.[EMAIL],'')) AS [Email], RTRIM(ISNULL(A.[OTHERREF],'')) AS [OtherRef], RTRIM(ISNULL(A.[OPSISREF],'')) AS [OpsisRef] FROM [contacts] A ORDER BY {fn UCASE( A.[CODE])} END ELSE IF (@type = 'Handlers') BEGIN SELECT RTRIM(A.[CODE]) AS [Code], RTRIM(A.[NAME]) AS [Name], RTRIM(ISNULL(A.[TEAM],'')) AS [Team], RTRIM(ISNULL(A.[TYPE],'')) AS [Type], RTRIM(ISNULL(A.[DEPT],'')) AS [Dept], RTRIM(ISNULL(A.[LOGON],'')) AS [LogOn], RTRIM(ISNULL(A.[EXCHANGEALIAS],'')) AS [ExchangeAlias] FROM dbo.[Handlers] A WHERE UPPER(RTRIM(A.[TEAMCODE])) <> 'Y' ORDER BY {fn UCASE( A.[CODE])} END ELSE IF (@type = 'Departments') BEGIN SELECT RTRIM(A.[CODE]) AS [Code], RTRIM(A.[DESC]) AS [Desc], RTRIM(A.[RETIRED]) AS [Retired] FROM [Departments] A ORDER BY {fn UCASE( A.CODE)} END ELSE IF (@type = 'WorkTypes') BEGIN SELECT RTRIM(A.[CODE]) AS [Code], RTRIM(ISNULL(A.[DESC],'')) AS [Desc], RTRIM(ISNULL(A.[RETIRED],'')) AS [Retired] FROM dbo.[WorkTypes] A ORDER BY {fn UCASE( A.CODE)} END ELSE IF (@type = 'Fee Earners') BEGIN SELECT RTRIM(A.[CODE]) AS [Code], RTRIM(ISNULL(A.[NAME],'')) AS [Name], RTRIM(ISNULL( A.[RETIRED],'')) AS [Retired] FROM [FeeEarnerCodes] A ORDER BY {fn UCASE( A.CODE)} END ELSE IF (@type = 'Action') BEGIN SELECT RTRIM(A.[ACTIONCODE]) AS [ActionCode], RTRIM(ISNULL(A.[DESC],'')) AS [Desc], RTRIM(ISNULL(A.[WKTCODE],'')) AS [WorkType], RTRIM(ISNULL(A.[ACTTYPE],'')) AS [ActionType], RTRIM(ISNULL(A.[actioncategory],'')) AS [ActionCategory], RTRIM(ISNULL(A.[STATUS],'')) AS [Status], RTRIM(ISNULL(A.[MILESTONETYPE],'')) AS [MilestoneType], RTRIM(ISNULL(B.[WKTYPE],'')) AS [TemplateWorkType], RTRIM(B.[WKCODE]) AS [TemplateWorkCode], RTRIM(ISNULL(B.[WKDESC],'')) AS [TemplateWorkDesc], RTRIM(ISNULL(B.[WKACTION],'')) AS [TemplateWorkAction], RTRIM(B.[DEPT]) AS [Dept] FROM {oj dbo.[TemplateActions] A LEFT OUTER JOIN dbo.[Templates] B ON A.[WKTCODE]= B.[WKCODE] } ORDER BY {fn UCASE( A.[ACTIONCODE])} END ELSE IF (@type = 'Task') BEGIN SELECT RTRIM(A.[CODE]) AS [Code], RTRIM(ISNULL(A.[DESC],'')) AS [Desc], RTRIM(ISNULL(A.[DEFAULT],'')) AS [Default] FROM [TasksCodes] A WHERE ISNULL(A.[Retired], 0) <> 1 ORDER BY {fn UCASE( A.[CODE])} END ELSE IF (@type = 'UndertakingStatus') BEGIN SELECT RTRIM(A.[RECORDID]) AS [RecordId], RTRIM(A.[STATUSDESC]) AS [StatusDesc] FROM dbo.[UndertakingStatus] A WHERE ISNULL([Retired],'') = 'N' ORDER BY {fn UCASE( A.[STATUSDESC])} END ELSE IF (@type = 'CaseAssociates') BEGIN SELECT RTRIM(A.[CODE]) AS [Code], RTRIM(ISNULL(A.[TYPE],'')) AS [Type], RTRIM(ISNULL(A.[NAME],'')) AS [Name], RTRIM(ISNULL(A.[COMPANY],'')) AS [Company], RTRIM(ISNULL(A.[ADDRESS],'')) AS [Address], RTRIM(ISNULL(A.[SEARCH],'')) AS [Search], ISNULL(A.[CONTACTNO],0) AS [ContactNo], RTRIM(B.[CODE]) AS [AssociateTypeCode], RTRIM(ISNULL(B.[DESCRIPTION],'')) AS [Description] FROM {oj dbo.[CaseAssociatesNames] A LEFT OUTER JOIN dbo.[AssociateTypes] B ON A.[TYPE]= B.[CODE] } END ELSE IF (@type = 'Client Groups') BEGIN SELECT RTRIM([GroupCode]) AS [Code], RTRIM([GroupName]) AS [Name] FROM [ClientGroup] ORDER BY [GroupCode] END ELSE IF (@type = 'Client Bank' or @type = 'Bank') BEGIN IF [dbo].[IsSAM4]() = 0 BEGIN EXEC (' SELECT RTRIM(ISNULL([Code],'''')) AS [Code], RTRIM(ISNULL([DESC],'''')) AS [Desc] FROM [Nominal] WHERE [TYPE] = ''BANK'' ORDER BY [CODE]') END ELSE BEGIN EXEC (' SELECT RTRIM(ISNULL([NominalCode],'''')) AS [Code], RTRIM(ISNULL([AccountName],'''')) AS [Desc] FROM [Nominal] WHERE [BankAc] = ''B'' ORDER BY [CODE]') END END ELSE IF(@type = 'Item Types') BEGIN SELECT RTRIM(ISNULL([TYPECODE],'')) AS [Code], RTRIM(ISNULL([TYPEDESCRIPTION],'')) AS [Desc] FROM [ItemTypes] ORDER BY [TYPECODE] END ELSE IF(@type = 'Client Category Type') BEGIN SELECT RTRIM([CategoryType]) AS [Code], RTRIM([Description]) AS [Desc] FROM [CategoryType] END ELSE IF(@type = 'Team') BEGIN SELECT RTRIM(ISNULL([Code],'')) AS [Code], RTRIM(ISNULL([NAME],'')) AS [Name] FROM Handlers WHERE RTRIM(ISNULL(UPPER([TEAMCODE]),'')) = 'Y' ORDER BY NAME END ELSE IF(@type = 'Partner') BEGIN SELECT RTRIM(ISNULL([Code],'')) AS [Code], RTRIM(ISNULL([NAME],'')) AS [Name] FROM [Handlers] WHERE RTRIM(ISNULL(UPPER([Type]),''))='P' AND RTRIM(ISNULL(UPPER([TEAMCODE]),''))<>'Y' ORDER BY NAME END ELSE IF(@type = 'Nominal') BEGIN IF [dbo].[IsSAM4]() = 0 BEGIN EXEC (' SELECT RTRIM(ISNULL([Code],'''')) AS [Code], RTRIM(ISNULL([DESC],'''')) AS [Desc] FROM Nominal ORDER BY CODE') END ELSE BEGIN EXEC (' SELECT RTRIM(ISNULL([NominalCode],'''')) AS [Code], RTRIM(ISNULL([AccountName],'''')) AS [Desc] FROM [Nominal] ORDER BY [CODE]') END END ELSE IF(@type = 'Suppliers') BEGIN SELECT RTRIM(ISNULL([CODE],'')) AS [Code], RTRIM(ISNULL([NAME],'')) AS [Name] FROM [Suppliers] WHERE ISNULL([Retired],'N') <> 'Y' END ELSE IF(@type = 'Branches') BEGIN SELECT ISNULL(RTRIM(LTRIM([BRA].[BRANCHCODE])), '') AS [Code], ISNULL(RTRIM(LTRIM([BRA].[DESCRIPTION])), '') AS [Desc] FROM [dbo].[Branch] AS [BRA] WHERE [BRA].[Retired] = 0 or [BRA].[Retired] Is null; END END GO IF OBJECT_ID(N'KAAS_CR_AddorUpdateGroup',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_AddorUpdateGroup] GO CREATE PROCEDURE [dbo].[KAAS_CR_AddorUpdateGroup] @GroupId INT, @GroupName VARCHAR(250) /****************************************************************************************************************** * Used to Add or Update Group details. * * * * Stored Procedure Name: [dbo].[KAAS_CR_AddorUpdateGroup] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN IF(@GroupId>0 AND (NOT EXISTS( SELECT GroupName FROM KaaS_CRGroup WHERE Groupname = @GroupName))) BEGIN UPDATE KaaS_CRGroup SET Groupname = @GroupName , Modified_on = GETUTCDATE() WHERE GroupId = @GroupId END ELSE IF(NOT EXISTS( SELECT GroupName FROM KaaS_CRGroup WHERE Groupname = @GroupName)) BEGIN INSERT INTO KaaS_CRGroup (Groupname, Created_on, Modified_on) Values( @GroupName, GETUTCDATE(), GETUTCDATE()) END ELSE BEGIN SELECT GroupName FROM KaaS_CRGroup WHERE Groupname = @GroupName; END END GO IF OBJECT_ID(N'KAAS_CR_AddOrUpdateUserPermission',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_AddOrUpdateUserPermission] GO CREATE PROCEDURE [dbo].[KAAS_CR_AddOrUpdateUserPermission] @ReportId INT, @HandlerCode VARCHAR(50), @HasAccess BIT, @IsAdd BIT As /****************************************************************************************************************** * Used to Remove Add Permission for the report. * * * * Stored Procedure Name: [dbo].[KAAS_CR_AddOrUpdateUserPermission] * * * * Modification History: * * 2024-03-19 Nithyanandham M Created * ******************************************************************************************************************/ BEGIN IF(@IsAdd=1) BEGIN INSERT INTO KAAS_CRReportUserPermission (ReportId , HandlerCode , HasAccess) VALUES (@ReportId , @HandlerCode, @HasAccess) END ELSE BEGIN UPDATE KAAS_CRReportUserPermission SET HasAccess = @HasAccess WHERE HandlerCode = @HandlerCode AND ReportId = @ReportId END END GO IF OBJECT_ID(N'KAAS_CR_AddUpdateUserPermission',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_AddUpdateUserPermission] GO CREATE PROCEDURE [dbo].[KAAS_CR_AddUpdateUserPermission] @ReportId INT, @HandlerCode VARCHAR(50), @HasAccess BIT, @IsAdd BIT /****************************************************************************************************************** * Used to Remove Add Permission for the report. * * * * Stored Procedure Name: [dbo].[KAAS_CR_AddUpdateUserPermission] * * * * Modification History: * * 2024-03-19 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN IF(@IsAdd=1) BEGIN INSERT INTO KAAS_CRReportUserPermission (ReportId, HandlerCode, HasAccess) Values (@ReportId, @HandlerCode, @HasAccess) END ELSE BEGIN Delete KAAS_CRReportUserPermission WHERE HandlerCode = @HandlerCode AND ReportId = @ReportId END END GO IF OBJECT_ID(N'KAAS_CR_CheckReportExist',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_CheckReportExist] GO CREATE PROCEDURE [dbo].[KAAS_CR_CheckReportExist] @ReportName VARCHAR(500), @FileName VARCHAR(500), @ReportType CHAR(10) /****************************************************************************************************************** * Used to Insert or update report . * * * * Stored Procedure Name: [dbo].[KAAS_CR_CheckReportExist] * * * * Modification History: * * 2024-03-21 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN SELECT ReportId FROM KaaS_CRReport WHERE ( [Filename] = @FileName OR [Name] = @ReportName ) AND Report_Type = @ReportType END GO IF OBJECT_ID(N'KAAS_CR_DeleteGroup',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_DeleteGroup] GO CREATE PROCEDURE [dbo].[KAAS_CR_DeleteGroup] @GroupId INT /****************************************************************************************************************** * Used to Delete Group details. * * * * Stored Procedure Name: [dbo].[KAAS_CR_DeleteGroup] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN IF (NOT EXISTS (SELECT Groupid FROM KaaS_CRReportGroup WHERE GroupId = @GroupId)) BEGIN DELETE KaaS_CRGroup WHERE Groupid = @GroupId END ELSE BEGIN SELECT Groupid FROM KaaS_CRReportGroup WHERE GroupId = @GroupId END END GO IF OBJECT_ID(N'KAAS_CR_DeleteReport',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_DeleteReport] GO CREATE PROCEDURE [dbo].[KAAS_CR_DeleteReport] @ReportId INT /****************************************************************************************************************** * Used to Delete report . * * * * Stored Procedure Name: [dbo].[KAAS_CR_DeleteReport] * * * * Modification History: * * 2024-03-22 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN DELETE FROM KaaS_CRReport WHERE Reportid = @ReportId DELETE FROM KaaS_CRReportGroup WHERE Reportid = @ReportId DELETE FROM KaaS_CRReportUserPermission WHERE Reportid = @ReportId DELETE FROM KaaS_CRParameter WHERE Reportid = @ReportId END GO IF OBJECT_ID(N'KAAS_CR_FetchReportParameterByReportId',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_FetchReportParameterByReportId] GO CREATE PROCEDURE [dbo].[KAAS_CR_FetchReportParameterByReportId] ( @ReportId INT ) /****************************************************************************************************************** * Used to get report parameter using report id * * * * Stored Procedure Name: [dbo].[KAAS_CR_FetchReportParameterByReportId] * * * * Modification History: * * 2024-03-21 Balamurugan.C Created * ******************************************************************************************************************/ AS BEGIN SELECT [paramid] AS [ParamId], [reportid] AS [ReportId], [userprompt] AS [UserPrompt], [parametername] AS [ParameterName], [parametervalue] AS [ParameterValue], [parameterformat] AS [ParameterFormat], [parametertype] AS [ParameterType], [parameterlength] AS [ParameterLength], [defaultvalue] AS [DefaultValue], RTRIM([requiredfield]) AS [RequiredField], RTRIM([userrequest]) AS [UserRequest], [infile] AS [InFile], [controltype] AS [ControlType], [listoption] AS [ListOption], [Seqno] AS [SeqNo] FROM [dbo].[KaaS_CRParameter] WHERE [reportid] = @ReportId ORDER BY [Seqno] ASC END GO IF OBJECT_ID(N'KAAS_CR_GetReportUserPermission',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_GetReportUserPermission] GO CREATE PROCEDURE [dbo].[KAAS_CR_GetReportUserPermission] @ReportId INT /****************************************************************************************************************** * Used to get Report User Permission Data. * * * * Stored Procedure Name: [dbo].[KAAS_CR_GetReportUserPermission] * * * * Modification History: * * 2024-03-19 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN SELECT [RUP].ReportUserPermissionId, [RUP].HandlerCode, [HAN].[Name] AS [Description], [RUP].ReportId, [RUP].HasAccess FROM KAAS_CRReportUserPermission [RUP] LEFT JOIN [Handlers] [HAN] ON [RUP].HandlerCode = RTRIM([HAN].[Code]) WHERE ReportId = @ReportId AND HasAccess = 1 END GO IF OBJECT_ID(N'KAAS_CR_Groups',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_Groups] GO CREATE PROCEDURE [dbo].[KAAS_CR_Groups] @LoggedInHandler VARCHAR(10) = NULL /****************************************************************************************************************** * Used to get report group details. * * * * Stored Procedure Name: [dbo].[KAAS_CR_Groups] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN SELECT GroupId , GroupName, [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone](Created_on, @LoggedInHandler) AS CreatedOn FROM KaaS_CRGroup WHERE GroupName != '' AND GroupName is Not Null ORDER BY Modified_on DESC END GO IF OBJECT_ID(N'KAAS_CR_InsertDeleteReportParameter',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_InsertDeleteReportParameter] GO CREATE PROCEDURE [dbo].[KAAS_CR_InsertDeleteReportParameter] ( @ReportId INT, @ParamId INT, @UserPrompt VARCHAR(100)='', @ParameterName VARCHAR(100)='', @ParameterValue VARCHAR(100)='', @ParameterFormat VARCHAR(50)='', @ParameterType VARCHAR(50)='', @ParameterLength INT=0, @DefaultValue VARCHAR(100)='', @RequiredField VARCHAR(10)='', @UserRequest VARCHAR(10)='', @InFile VARCHAR(50)='', @ControlType VARCHAR(50)='', @ListOption VARCHAR(MAX)='', @Mode VARCHAR(10) ) /****************************************************************************************************************** * CRUD Opertion for Report Parameters * * * * Stored Procedure Name: [dbo].[KAAS_CR_InsertDeleteReportParameter] * * * * Modification History: * * 2024-03-21 Balamurugan.C Created * ******************************************************************************************************************/ AS BEGIN IF(@Mode='AddEdit') DECLARE @SeqNum INT = 0; ----Add and Edit BEGIN IF(@ParamId = 0) -- Create new report parameter BEGIN SET @SeqNum = ISNULL((SELECT MAX(Seqno) FROM [dbo].[KaaS_CRParameter] WHERE [ReportId] = @ReportId), 0) INSERT INTO [dbo].[KaaS_CRParameter] ( [ReportId], [UserPrompt], [ParameterName], [ParameterValue], [ParameterFormat], [ParameterType], [ParameterLength], [DefaultValue], [RequiredField], [UserRequest], [InFile], [ControlType], [ListOption], [SeqNo] ) VALUES ( @ReportId, @UserPrompt, @ParameterName, @ParameterValue, @ParameterFormat, @ParameterType, @ParameterLength, @DefaultValue, @RequiredField, @UserRequest, @InFile, @ControlType, @ListOption, @SeqNum + 1 ) END ELSE -- Update report parameter if @ParamId contains any value BEGIN UPDATE [dbo].[KaaS_CRParameter] SET [UserPrompt] = @UserPrompt, [ParameterName] = @ParameterName, [ParameterValue] = @ParameterValue, [ParameterFormat] = @ParameterFormat, [ParameterType] = @ParameterType, [ParameterLength] = @ParameterLength, [DefaultValue] = @DefaultValue, [RequiredField] = @RequiredField, [UserRequest] = @UserRequest, [InFile] = @InFile, [ControlType] = @ControlType, [ListOption] = @ListOption WHERE [ParamId] = @ParamId END END ----Delete IF(@Mode='Delete') BEGIN DELETE FROM [dbo].[KaaS_CRParameter] WHERE [ParamId] = @ParamId AND [ReportId] = @ReportId END END GO IF OBJECT_ID(N'KAAS_CR_InsertOrUpdateReport',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_InsertOrUpdateReport] GO CREATE PROCEDURE [dbo].[KAAS_CR_InsertOrUpdateReport] @ReportName VARCHAR(500), @FileName VARCHAR(500), @ReportType CHAR(10) /****************************************************************************************************************** * Used to Insert or update report . * * * * Stored Procedure Name: [dbo].[KAAS_CR_InsertOrUpdateReport] * * * * Modification History: * * 2024-03-21 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN INSERT INTO KaaS_CRReport ( [Name], [FileName], [Report_Type], [Created_On], [Modified_On] ) Values ( @ReportName, @FileName, @ReportType, SYSUTCDATETIME(), SYSUTCDATETIME() ) SELECT TOP 1 ReportId FROM KaaS_CRReport ORDER BY ReportId DESC; END GO IF OBJECT_ID(N'KAAS_CR_InsertReportGroup',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_InsertReportGroup] GO CREATE PROCEDURE [dbo].[KAAS_CR_InsertReportGroup] @ReportId INT, @GroupId INT /****************************************************************************************************************** * Used to Insert report group details. * * * * Stored Procedure Name: [dbo].[KAAS_CR_InsertReportGroup] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN INSERT INTO KaaS_CRReportGroup (Reportid, Groupid) Values (@ReportId,@GroupId) END GO IF OBJECT_ID(N'KAAS_CR_RemoveReportGroup',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_RemoveReportGroup] GO CREATE PROCEDURE [dbo].[KAAS_CR_RemoveReportGroup] @ReportId INT /****************************************************************************************************************** * Used to remove report group details. * * * * Stored Procedure Name: [dbo].[KAAS_CR_RemoveReportGroup] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN DELETE FROM KaaS_CRReportGroup Where Reportid = @ReportId END GO IF OBJECT_ID(N'KAAS_CR_RemoveUserPermission',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_RemoveUserPermission] GO CREATE PROCEDURE [dbo].[KAAS_CR_RemoveUserPermission] @ReportId INT /****************************************************************************************************************** * Used to Remove User Permission for the report. * * * * Stored Procedure Name: [dbo].[KAAS_CR_RemoveUserPermission] * * * * Modification History: * * 2024-03-19 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN DELETE FROM KAAS_CRReportUserPermission WHERE ReportId = @ReportId END GO IF OBJECT_ID(N'KAAS_CR_ReportByGroupId',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_ReportByGroupId] GO CREATE PROCEDURE [dbo].[KAAS_CR_ReportByGroupId] @GroupId INT, @ReportType CHAR(10) /****************************************************************************************************************** * Used to get report list by GroupID. * * * * Stored Procedure Name: [dbo].[KAAS_CR_ReportByGroupId] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN SELECT DISTINCT CR.Name FROM KaaS_CRReport CR INNER JOIN KaaS_CRReportGroup CRG ON CR.Reportid =CRG.Reportid WHERE CRG.Groupid = @GroupId AND CR.Report_type = @ReportType GROUP BY CR.Name END GO IF OBJECT_ID(N'KAAS_CR_ReportParameterSortOrder',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_ReportParameterSortOrder] GO CREATE PROCEDURE [dbo].[KAAS_CR_ReportParameterSortOrder] ( @ReportId INT, @Change SMALLINT, @ParamsId INT ) AS /* */ /******************************************************************************************************* * This procedure is used to Change Report Parameter Order. * * * * Stored Procedure Name : [dbo].[KAAS_CR_ReportParameterSortOrder] * * Modification History : * * 2024-03-22 Balamurugan.C Created * *******************************************************************************************************/ BEGIN --> -ve== -1 --> 0==Min --> +ve== +1 --> 9999==Max DECLARE @Order SMALLINT SELECT @Order = [Seqno] FROM [dbo].[KaaS_CRParameter] WHERE [ReportId]=@ReportId AND [ParamId] = @ParamsId IF(@Change<0 ) ---1 BEGIN DECLARE @PreviousValue SMALLINT; BEGIN SELECT Top 1 @PreviousValue = [Seqno] FROM [dbo].[KaaS_CRParameter] WHERE [Seqno] < @Order AND [ReportId] = @ReportId ORDER BY [Seqno] DESC END Set @PreviousValue = CASE WHEN @PreviousValue is Not Null THEN @PreviousValue ELSE @Order END UPDATE [dbo].[KaaS_CRParameter] SET [Seqno] = @Order WHERE [ReportId] = @ReportId AND [Seqno] = @PreviousValue UPDATE [dbo].[KaaS_CRParameter] SET [Seqno] = @PreviousValue WHERE [ReportId] = @ReportId AND [Seqno] = @Order AND [ParamId] = @ParamsId END IF(@Change=0 AND @Order<>1) --Top BEGIN UPDATE [dbo].[KaaS_CRParameter] SET [Seqno] =[Seqno]+1 WHERE [ReportId] = @ReportId AND [ParamId] <> @ParamsId AND [Seqno] < @Order UPDATE [dbo].[KaaS_CRParameter] SET [Seqno] =1 WHERE [ReportId] = @ReportId AND [ParamId] = @ParamsId END IF(@Change BETWEEN 1 AND 9998 ) --+1 BEGIN DECLARE @NextValue SMALLINT; BEGIN SELECT Top 1 @NextValue = [Seqno] FROM [dbo].[KaaS_CRParameter] WHERE [Seqno] > @Order AND [ReportId] = @ReportId ORDER BY [Seqno] asc END Set @NextValue = CASE WHEN @NextValue is Not Null THEN @NextValue ELSE @Order END UPDATE [dbo].[KaaS_CRParameter] SET [Seqno] = @Order WHERE [ReportId] = @ReportId AND [Seqno]= @NextValue UPDATE [dbo].[KaaS_CRParameter] SET [Seqno] = @NextValue WHERE [ReportId] = @ReportId AND [ParamId] = @ParamsId END IF(@Change=9999) --Bottom BEGIN DECLARE @OldMaxOrderId INT = 0; SET @OldMaxOrderId= (SELECT ISNULL(MAX([Seqno]),0) FROM [dbo].[KaaS_CRParameter] WHERE [ReportId] = @ReportId) UPDATE [dbo].[KaaS_CRParameter] SET [Seqno] =(SELECT ISNULL(MAX([Seqno]),0) FROM [dbo].[KaaS_CRParameter] WHERE [ReportId] = @ReportId) WHERE [ReportId] = @ReportId AND [ParamId] = @ParamsId UPDATE [dbo].[KaaS_CRParameter] SET [Seqno] = CASE WHEN [Seqno] - 1 <= 0 THEN 1 ELSE [Seqno] - 1 END WHERE [ReportId] = @ReportId AND [ParamId] <> @ParamsId AND [Seqno] <= @OldMaxOrderId END END GO IF OBJECT_ID(N'KAAS_CR_ReportsByReportType',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_ReportsByReportType] GO CREATE PROCEDURE [dbo].[KAAS_CR_ReportsByReportType] @ReportType CHAR(10), @LoggedInHandler VARCHAR(10) = NULL /****************************************************************************************************************** * Used to get reportlist by report type with group name like comma separated values. * * * * Stored Procedure Name: [dbo].[KAAS_CR_ReportsByReportType] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN SELECT DISTINCT CR.ReportId, CR.Name, CR.FileName, [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone](CR.Created_On, @LoggedInHandler) AS CreatedOn, CR.Modified_on AS ModifiedOn, CR.Report_type, REPLACE (STUFF ((SELECT DISTINCT ',' + CAST(GRP.groupname AS VARCHAR) FROM KaaS_CRGroup GRP INNER JOIN KaaS_CRReportGroup CRG ON CR.Reportid =CRG.Reportid WHERE GRP.groupid = CRG.groupid FOR XML PATH('')), 1 ,1, ''), '&', '&') AS GroupName FROM KaaS_CRReport CR WHERE Report_Type = @ReportType ORDER BY CR.Modified_on DESC END GO IF OBJECT_ID(N'KAAS_CR_UpdateReport',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_UpdateReport] GO CREATE PROCEDURE [dbo].[KAAS_CR_UpdateReport] @ReportId INT, @Name VARCHAR(250) /****************************************************************************************************************** * Used to Update report details. * * * * Stored Procedure Name: [dbo].[KAAS_CR_UpdateReport] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN Update KaaS_CRReport SET [Name] = @Name WHERE ReportId = @ReportId END GO IF OBJECT_ID(N'KAAS_Dashboard',N'P')IS NOT NULL DROP PROCEDURE [KAAS_Dashboard] GO CREATE PROCEDURE [dbo].[KAAS_Dashboard] ( @Handler VARCHAR(10), @Fromdate DATETIME, @todate DATETIME) AS /******************************************************************************************************* * Populates the My Overview page * * * * Stored Procedure Name : [dbo].[KAAS_Dashboard] * * Copied from : [dbo].[KY_NETDashboard3] * * * * Modification History : * * 2019-04-16 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @TotalUndertakings INT DECLARE @TotalStatuteLimits INT DECLARE @IsSAM4 BIT DECLARE @BitWiseID BIGINT DECLARE @GETDATE DATETIME SET @GETDATE = GETDATE() SET @IsSAM4 = [dbo].[ISSAM4]() SET @handler = CASE WHEN RTRIM(ISNULL(@handler, '')) = '' THEN 'ADM' ELSE RTRIM(@handler) END SELECT @BitWiseID = HNG.[BitWiseID] FROM HandlerNETGroupMembership HNG WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@handler, '')))) IF (@handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END SELECT @TotalUndertakings = count(1) FROM dbo.[Undertakings] UND INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = UND.[MATTER] WHERE UND.[AuthorisedByFE] = @Handler AND MAT.[Closed] <> 'Y' AND UND.[DISCHARGEDATE] IS NULL SELECT @TotalStatuteLimits = count(1) FROM dbo.[matters] MAT WHERE MAT.[FECode] = @Handler AND DATEDIFF(DD, @GETDATE, CASE WHEN ISNULL(MAT.[StatuteLimits], '21000101')='19000101' THEN '21000101' ELSE MAT.[StatuteLimits] END) <= 60 AND MAT.[Closed] <> 'Y' --Statement to get No. of Overdue and No. of Outstandings SELECT ISNULL(ADT.[Overdue Task], 0) AS [OverdueTask], ISNULL(ADT.[Outstanding Task], 0) AS [OutstandingTask], ISNULL(ADT.[Critical Tasks], 0) AS [CriticalTasks], ISNULL(ADT.[Court Dates], 0) AS [CourtDates], ISNULL(ADT.[High Priority], 0) AS [HighPriority], ISNULL(ADT.[Phone Message], 0) AS [PhoneMessage], @TotalUndertakings AS [UnderTaking], @TotalStatuteLimits AS [StatuteDateApproaching] FROM ( SELECT SUM(CASE WHEN DEL.[DATE] < @fromdate THEN 0 WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @GETDATE, 112))) THEN 0 WHEN [DEL].[STATUS] = 0 THEN 1 ELSE 0 END) AS [Overdue Task], SUM(CASE WHEN DEL.[DATE] < @fromdate THEN 0 WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112))) THEN 0 WHEN [DEL].[STATUS] = 0 THEN 1 ELSE 0 END) AS [Outstanding Task], SUM(CASE WHEN DEL.[DATE] < @fromdate THEN 0 WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112))) THEN 0 WHEN [DIA].[ActionType] = 'C' THEN 1 ELSE 0 END) AS [Critical Tasks], SUM(CASE WHEN DEL.[DATE] < @fromdate THEN 0 WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112))) THEN 0 WHEN [DIA].[ActionType] = 'O' THEN 1 ELSE 0 END) AS [Court Dates], SUM(CASE WHEN DEL.[DATE] < @fromdate THEN 0 WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112))) THEN 0 WHEN [DIA].[PRIORITY] = 'H' THEN 1 ELSE 0 END) AS [High Priority], SUM(CASE WHEN DEL.[DATE] < @fromdate THEN 0 WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112))) THEN 0 WHEN [DIA].[ActionType] = 'T' THEN 1 ELSE 0 END) AS [Phone Message] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CON ON CON.[CODE] = MAT.[CLIENTCODE] LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP ON MNP.[MATTER] = MAT.[Code] ON MAT.[CODE] = DIA.[CASECODE] AND ISNULL(MAT.[Closed], 'N') <> 'Y' ON DIA.[ACTIONID] = DEL.[ACTIONID] WHERE DEL.[HANDLER] = @Handler AND DEL.[STATUS] = 0 AND DEL.[DelType] <> 'Completed' AND DEL.[DelType] <> 'Processed' AND DEL.[DelType] <> 'Returned' AND ( ISNULL(MNP.[Privileges], CONVERT (BIGINT, -1)) & @BitWiseID <> 0 OR ISNULL(MNP.[Privileges], CONVERT (BIGINT, 0)) = 0)) ADT SELECT 0 AS [Zero] DECLARE @MyTimeDayBook DECIMAL(18, 2) DECLARE @MyTimeDayBookHr VARCHAR(20) DECLARE @MyTimeDayBookWeek DECIMAL(18, 2) DECLARE @MyTimeDayBookWeekHr VARCHAR(20) DECLARE @MyTimeDayBookMonth DECIMAL(18, 2) DECLARE @MyTimeDayBookMonthHr VARCHAR(20) DECLARE @MyTimeDayBookYear DECIMAL(18, 2) DECLARE @MyTimeDayBookYearHr VARCHAR(20) DECLARE @AdminTimeDayBookMonth DECIMAL(18, 2) DECLARE @AdminTimeDayBookMonthHr VARCHAR(20) DECLARE @AdminTimeDayBookYear DECIMAL(18, 2) DECLARE @AdminTimeDayBookYearHr VARCHAR(20) DECLARE @DailyAverageMTD DECIMAL(18, 2) -- Average time recorded per day in the current month DECLARE @DailyAverageYTD DECIMAL(18, 2) -- Average time recorded per day in the current year DECLARE @TODAYNUM INT DECLARE @MONDAY DATETIME DECLARE @STARTOFMONTH DATETIME DECLARE @STARTOFYEAR DATETIME DECLARE @MONTHTODATE DATETIME -- This is the current date, up to the end of the financial month SELECT @TODAYNUM = DATEPART(WEEKDAY, @GETDATE) - DATEPART(WEEKDAY, '20000102') --the 2nd of January, 2000 was a Monday IF @TODAYNUM <= 0 SET @TODAYNUM = @TODAYNUM + 7 SET @MONDAY = CONVERT(DATETIME, CONVERT(VARCHAR, DATEADD(DAY, 1 - @TODAYNUM, @GETDATE), 112)) SELECT @TODAYNUM = DATEPART(DAY, @GETDATE) SELECT @STARTOFMONTH = KPI.[FromDate], @STARTOFYEAR = KPI.[StartOfYear], @MONTHTODATE = CASE WHEN @GETDATE > KPI.[ToDate] THEN KPI.[ToDate] ELSE @GETDATE END FROM [dbo].[KPIParameters] AS KPI SET @STARTOFYEAR = ISNULL(@STARTOFYEAR, CONVERT(DATETIME, CONVERT(VARCHAR(4), YEAR(@GETDATE)) + '0101')) SELECT @MyTimeDayBook = ISNULL(SUM(ISNULL(TDB.[TIME], 0)), 0) FROM [dbo].[TimeDayBook] TDB WHERE TDB.[FEEEARN] = @Handler AND TDB.[TIMEORCHARGE] = 'T' AND TDB.[Rec_irr] = 'C' SELECT @MyTimeDayBookWeek = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[FEEEARN] = @Handler AND TIE.[TIMEORCHARGE] = 'T' AND TIE.[Rec_irr] = 'C' AND TIE.[Date] >= @MONDAY AND TIE.[DATE] <= @GETDATE AND ISNULL(TIE.[TASK], '') <> 'WRI' AND TIE.[Matter] <> '~' SELECT @MyTimeDayBookMonth = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[FEEEARN] = @Handler AND TIE.[TIMEORCHARGE] = 'T' AND TIE.[Rec_irr] = 'C' AND TIE.[Date] >= @STARTOFMONTH AND TIE.[DATE] <= @MONTHTODATE AND ISNULL(TIE.[TASK], '') <> 'WRI' AND TIE.[Matter] <>'~' SELECT @MyTimeDayBookYear = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[FEEEARN] = @Handler AND TIE.[TIMEORCHARGE] = 'T' AND TIE.[Rec_irr] = 'C' AND TIE.[Date] >= @STARTOFYEAR AND TIE.[DATE] <= @MONTHTODATE AND ISNULL(TIE.[TASK], '') <> 'WRI' AND TIE.[Matter] <>'~' SELECT @AdminTimeDayBookMonth = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[FEEEARN] = @Handler AND TIE.[TIMEORCHARGE] = 'T' AND TIE.[Date] >= @STARTOFMONTH AND TIE.[DATE] <= @MONTHTODATE AND ISNULL(TIE.[TASK], '') <> 'WRI' AND TIE.[Matter] = '~' SELECT @AdminTimeDayBookYear = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[FEEEARN] = @Handler AND TIE.[TIMEORCHARGE] = 'T' AND TIE.[Date] >= @STARTOFYEAR AND TIE.[DATE] <= @MONTHTODATE AND ISNULL(TIE.[TASK], '') <> 'WRI' AND TIE.[Matter] = '~' SET @MyTimeDayBook = CASE WHEN @MyTimeDayBook < 0 THEN 0 ELSE @MyTimeDayBook END SET @MyTimeDayBookHr = CASE WHEN LEN(CONVERT(INT, @MyTimeDayBook) / 60) < 2 THEN '0' + CAST(CONVERT(INT, @MyTimeDayBook) / 60 AS VARCHAR) ELSE CAST(CONVERT(INT, @MyTimeDayBook) / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @MyTimeDayBook) % 60)), 2, 2) SET @MyTimeDayBookWeek = CASE WHEN @MyTimeDayBookWeek < 0 THEN 0 ELSE @MyTimeDayBookWeek END SET @MyTimeDayBookWeekHr = CASE WHEN LEN(CONVERT(INT, @MyTimeDayBookWeek) / 60) < 2 THEN '0' + CAST(CONVERT(INT, @MyTimeDayBookWeek) / 60 AS VARCHAR) ELSE CAST(CONVERT(INT, @MyTimeDayBookWeek) / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @MyTimeDayBookWeek) % 60)), 2, 2) SET @MyTimeDayBookMonth = CASE WHEN @MyTimeDayBookMonth < 0 THEN 0 ELSE @MyTimeDayBookMonth END SET @MyTimeDayBookMonthHr = CASE WHEN LEN(CONVERT(INT, @MyTimeDayBookMonth) / 60) < 2 THEN '0' + CAST(CONVERT(INT, @MyTimeDayBookMonth) / 60 AS VARCHAR) ELSE CAST(CONVERT(INT, @MyTimeDayBookMonth) / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @MyTimeDayBookMonth) % 60)), 2, 2) SET @MyTimeDayBookYear = CASE WHEN @MyTimeDayBookYear < 0 THEN 0 ELSE @MyTimeDayBookYear END SET @MyTimeDayBookYearHr = CASE WHEN LEN(CONVERT(INT, @MyTimeDayBookYear) / 60) < 2 THEN '0' + CAST(CONVERT(INT, @MyTimeDayBookYear) / 60 AS VARCHAR) ELSE CAST(CONVERT(INT, @MyTimeDayBookYear) / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @MyTimeDayBookYear) % 60)), 2, 2) SET @AdminTimeDayBookMonth = CASE WHEN @AdminTimeDayBookMonth < 0 THEN 0 ELSE @AdminTimeDayBookMonth END SET @AdminTimeDayBookMonthHr = CASE WHEN LEN(CONVERT(INT, @AdminTimeDayBookMonth) / 60) < 2 THEN '0' + CAST(CONVERT(INT, @AdminTimeDayBookMonth) / 60 AS VARCHAR) ELSE CAST(CONVERT(INT, @AdminTimeDayBookMonth) / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @AdminTimeDayBookMonth) % 60)), 2, 2) SET @AdminTimeDayBookYear = CASE WHEN @AdminTimeDayBookYear < 0 THEN 0 ELSE @AdminTimeDayBookYear END SET @AdminTimeDayBookYearHr = CASE WHEN LEN(CONVERT(INT, @AdminTimeDayBookYear) / 60) < 2 THEN '0' + CAST(CONVERT(INT, @AdminTimeDayBookYear) / 60 AS VARCHAR) ELSE CAST(CONVERT(INT, @AdminTimeDayBookYear) / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @AdminTimeDayBookYear) % 60)), 2, 2) SELECT @DailyAverageMTD = SUM(ISNULL(TIE.[Time], 0)) / CASE WHEN ISNULL([dbo].[KAAS_NetWorkingDays](@STARTOFMONTH, @MONTHTODATE), 0) = 0 THEN 1 ELSE [dbo].[KAAS_NetWorkingDays](@STARTOFMONTH, @MONTHTODATE) END FROM [dbo].[TimeEntry] AS TIE WHERE TIE.[FeeEarn] = @HANDLER AND TIE.[Rec_Irr] = 'C' AND TIE.[TimeOrCharge] <> 'B' AND TIE.[Task] <> 'WRI' AND TIE.[Matter] <> '~' AND TIE.[Date] <= @MONTHTODATE AND TIE.[Date] >= @STARTOFMONTH SELECT @DailyAverageYTD = SUM(ISNULL(TIE.[Time], 0)) / CASE WHEN ISNULL([dbo].[KAAS_NetWorkingDays](@STARTOFYEAR, @MONTHTODATE), 0) = 0 THEN 1 ELSE [dbo].[KAAS_NetWorkingDays](@STARTOFYEAR, @MONTHTODATE) END FROM [dbo].[TimeEntry] AS TIE WHERE TIE.[FeeEarn] = @HANDLER AND TIE.[Rec_Irr] = 'C' AND TIE.[TimeOrCharge] <> 'B' AND TIE.[Task] <> 'WRI' AND TIE.[Matter] <> '~' AND TIE.[Date] <= @GETDATE AND TIE.[Date] >= @STARTOFYEAR -- Statement to get Time recorder value SELECT @MyTimeDayBookHr AS [MyTimedayBookHr], @MyTimeDayBookWeekHr AS [TimeRecordedThisWeekHr], @MyTimeDayBookMonthHr AS [TimeRecordedThisMonthHr], @MyTimeDayBookYearHr AS [TimeRecordedThisYearHr], @MyTimeDayBook AS [MyTimedayBook], @MyTimeDayBookWeek AS [TimeRecordedThisWeek], @MyTimeDayBookMonth AS [TimeRecordedThisMonth], @MyTimeDayBookYear AS [TimeRecordedThisYear], @AdminTimeDayBookMonthHr AS [AdminTimeRecordedThisMonthHr], @AdminTimeDayBookYearHr AS [AdminTimeRecordedThisYearHr], @AdminTimeDayBookMonth AS [AdminTimeRecordedThisMonth], @AdminTimeDayBookYear AS [AdminTimeRecordedThisYear], ISNULL(@DailyAverageMTD, 0) AS [AverageTimeMTD], ISNULL(@DailyAverageYTD, 0) AS [AverageTimeYTD] --Statement to get fees details DECLARE @FeesCurrent DECIMAL(18, 2) DECLARE @FeesLastPer DECIMAL(18, 2) DECLARE @FeesYTD DECIMAL(18, 2) DECLARE @FeesLastYTD DECIMAL(18, 2) DECLARE @FeesLastYear DECIMAL(18, 2) IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = ' SELECT @FeesCurrent = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0) FROM dbo.[BatchDetails] BD INNER JOIN dbo.[BatchH] BH ON BD.[BATCHNO] = BH.[BATCHNO] AND BH.[POSTED] = ''Y'' INNER JOIN [dbo].[KPIParameters] KPI ON KPI.[Year] = BD.[YEAR] AND KPI.[Period] = BD.[PERNO] WHERE BD.[FEE] = @Handler AND BD.[TYPE] = ''I'' AND BD.[OUTLAY] = ''F''' END ELSE BEGIN SET @NCOMMAND = ' SELECT @FeesCurrent = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[Transactions] HED INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') AND TRN.[FeeEarner] = @Handler INNER JOIN [dbo].[KPIParameters] KPI ON KPI.[Year] = HED.[PostingYear] AND KPI.[Period] = HED.[PostingPeriod] WHERE HED.[RecType] = ''H''' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesCurrent DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesCurrent=@FeesCurrent OUTPUT IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = ' SELECT @FeesLastPer = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0) FROM dbo.[BatchDetails] BD INNER JOIN dbo.[BatchH] BH ON BD.[BATCHNO] = BH.[BATCHNO] AND BH.[POSTED] = ''Y'' INNER JOIN [dbo].[KPIParameters] KPI ON ( KPI.[Year] = BD.[YEAR] AND KPI.[Period] <> 1 AND KPI.[Period] - 1 = BD.[PERNO]) OR ( KPI.[Year] = BD.[YEAR] - 1 AND KPI.[Period] = 1 AND BD.[PERNO] = 12) WHERE BD.[FEE] = @Handler AND BD.[TYPE] = ''I'' AND BD.[OUTLAY] = ''F''' END ELSE BEGIN SET @NCOMMAND = ' SELECT @FeesLastPer = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[Transactions] HED INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') AND TRN.[FeeEarner] = @Handler INNER JOIN [dbo].[KPIParameters] KPI ON ( KPI.[Year] = HED.[PostingYear] AND KPI.[Period] <> 1 AND KPI.[Period] - 1 = HED.[PostingPeriod]) OR ( KPI.[Year] = HED.[PostingYear] - 1 AND KPI.[Period] = 1 AND HED.[PostingPeriod] = 12) WHERE HED.[RecType] = ''H''' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesLastPer DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesLastPer=@FeesLastPer OUTPUT IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = ' SELECT @FeesYTD = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0) FROM dbo.[BatchDetails] BD INNER JOIN dbo.[BatchH] BH ON BD.[BATCHNO] = BH.[BATCHNO] AND BH.[POSTED] = ''Y'' INNER JOIN [dbo].[KPIParameters] KPI ON KPI.[Year] = BD.[YEAR] AND KPI.[Period] >= BD.[PERNO] WHERE BD.[FEE] = @Handler AND BD.[TYPE] = ''I'' AND BD.[OUTLAY] = ''F''' END ELSE BEGIN SET @NCOMMAND = ' SELECT @FeesYTD = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[Transactions] HED INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') AND TRN.[FeeEarner] = @Handler INNER JOIN [dbo].[KPIParameters] KPI ON KPI.[Year] = HED.[PostingYear] AND KPI.[Period] >= HED.[PostingPeriod] WHERE HED.[RecType] = ''H''' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesYTD DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesYTD=@FeesYTD OUTPUT IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = 'SELECT @FeesLastYTD = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0) FROM dbo.[BatchDetails] BD INNER JOIN dbo.[BatchH] BH ON BD.[BATCHNO] = BH.[BATCHNO] AND BH.[POSTED] = ''Y'' INNER JOIN [dbo].[KPIParameters] KPI ON KPI.[Year]-1 = BD.[YEAR] AND KPI.[Period] >= BD.[PERNO] WHERE BD.[FEE] = @Handler AND BD.[TYPE] = ''I'' AND BD.[OUTLAY] = ''F''' END ELSE BEGIN SET @NCOMMAND = 'SELECT @FeesLastYTD = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[Transactions] HED INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND TRN.[CorrectionInd] IN (''L'', ''X'') AND TRN.[FeeEarner] = @Handler INNER JOIN [dbo].[KPIParameters] KPI ON KPI.[Year]-1 = HED.[PostingYear] AND KPI.[Period] >= HED.[PostingPeriod] WHERE HED.[RecType] = ''H''' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesLastYTD DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesLastYTD=@FeesLastYTD OUTPUT IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = 'SELECT @FeesLastYear = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0) FROM dbo.[BatchDetails] BD INNER JOIN dbo.[BatchH] BH ON BD.[BATCHNO] = BH.[BATCHNO] AND BH.[POSTED] = ''Y'' INNER JOIN [dbo].[KPIParameters] KPI ON KPI.[Year]-1 = BD.[YEAR] WHERE BD.[FEE] = @Handler AND BD.[TYPE] = ''I'' AND BD.[OUTLAY] = ''F''' END ELSE BEGIN SET @NCOMMAND = 'SELECT @FeesLastYear = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[Transactions] HED INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND TRN.[CorrectionInd] IN (''L'', ''X'') AND TRN.[FeeEarner] = @Handler INNER JOIN [dbo].[KPIParameters] KPI ON KPI.[Year]-1 = HED.[PostingYear] WHERE HED.[RecType] = ''H''' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesLastYear DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesLastYear=@FeesLastYear OUTPUT SELECT REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesCurrent, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedCurrentMonth], REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesLastPer, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedLastMonth], REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesYTD, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedYearToDate], REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesLastYTD, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedLastYearToDate], REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesLastYear, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedLastYear] DECLARE @DraftInvoice DECIMAL(18, 2) IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = ' SELECT @DraftInvoice = ISNULL(SUM((ISNULL(BD.[NET], 0) + ISNULL(BD.[VATVALUE], 0)) * CASE WHEN ISNULL(BH.[INVCR], ''I'') = ''C'' THEN -1 ELSE 1 END), 0) FROM [dbo].[matters] MAT INNER JOIN [dbo].[BillHeader] BH INNER JOIN [dbo].[BillDetails] BD ON BD.[DRAFTNO] = BH.[DRAFTNO] ON BH.[MATTER] = MAT.[Code] AND BH.[BILLNO] = 0 WHERE MAT.[FECode] = @Handler' END ELSE BEGIN SET @NCOMMAND = ' SELECT @DraftInvoice = ISNULL(SUM((ISNULL(BD.[NetValue], 0) + ISNULL(BD.[VatValue], 0)) * CASE WHEN ISNULL(BH.[TYPE], ''I'') = ''C'' THEN -1 ELSE 1 END), 0) FROM [dbo].[matters] AS MAT INNER JOIN [dbo].[Billhead] BH ON BH.[MatterCode] = MAT.[Code] INNER JOIN [dbo].[BillDetail] BD ON BD.[BillID] = BH.[BillingID] AND BD.[RecordType] = ''F'' AND BD.[FeCode] = @Handler WHERE MAT.[FECode] = @Handler AND BH.[BillStatus] <> ''Approved''' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@DraftInvoice DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @DraftInvoice=@DraftInvoice OUTPUT DECLARE @OSFees DECIMAL(19, 2) DECLARE @OSInvoices DECIMAL(19, 2) DECLARE @AVGDDays INT -- Pino 2015-05-26 - Please make sure that this calculation exactly mirrors the corresponding one -- in [dbo].[KAAS_DashboardCaseAlert] - if either is changed, change the other one -- accordingly IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT @OSFees = DT.[OSFees], @OSInvoices = DT.[OSInvoices], @AVGDDays = CASE WHEN DT.[DebtorEntries] = 0 THEN 0 ELSE DT.[DebtorDays] / DT.[DebtorEntries] END FROM (SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(CONVERT(DECIMAL(19, 2), ISNULL(DTL.[OSFees], 0))), 0)) AS [OSFees], CONVERT(DECIMAL(19, 2), ISNULL(SUM(CONVERT(DECIMAL(19, 2), ISNULL(DTL.[OSVALUE], 0))), 0)) AS [OSInvoices], ISNULL(SUM(CASE WHEN DTL.[DATE] IS NULL THEN 0 WHEN DTL.[DATE] > @GETDATE THEN 0 WHEN DTL.[OSVALUE] = 0 THEN 0 ELSE DATEDIFF(Day, DTL.[DATE], @GETDATE) END), 0) AS [DebtorDays], ISNULL(SUM(CASE WHEN DTL.[DATE] IS NULL THEN 0 WHEN DTL.[DATE] > @GETDATE THEN 0 WHEN DTL.[OSVALUE] = 0 THEN 0 ELSE 1 END), 0) AS [DebtorEntries] FROM [dbo].[matters] MAT INNER JOIN [dbo].[DebtorsLedger] DTL ON DTL.[MATTER] = MAT.[Code] AND DTL.[OSValue] > 0 WHERE MAT.[FECode] = @Handler) DT' EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @GETDATE DATETIME, @OSFees DECIMAL(19, 2) OUTPUT, @OSInvoices DECIMAL(19, 2) OUTPUT, @AVGDDays INT OUTPUT', @Handler = @Handler, @GETDATE = @GETDATE, @OSFees = @OSFees OUTPUT, @OSInvoices = @OSInvoices OUTPUT, @AVGDDays = @AVGDDays OUTPUT END ELSE BEGIN SET @NCOMMAND = N' SELECT @OSFees = DT.[OSFees], @OSInvoices = DT.[OSInvoices], @AVGDDays = CASE WHEN DT.[DebtorEntries] = 0 THEN 0 ELSE DT.[DebtorDays] / DT.[DebtorEntries] END FROM (SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValueOS], 0)), 0)) AS [OSInvoices], CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[FeesOS], 0)), 0)) AS [OSFees], ISNULL(SUM(CASE WHEN TRN.[TransDate] IS NULL THEN 0 WHEN TRN.[TransDate] > @GETDATE THEN 0 WHEN TRN.[DebtorsValueOS] = 0 THEN 0 ELSE DATEDIFF(Day, TRN.[TransDate], @GETDATE) END), 0) AS [DebtorDays], ISNULL(SUM(CASE WHEN TRN.[TransDate] IS NULL THEN 0 WHEN TRN.[TransDate] > @GETDATE THEN 0 WHEN TRN.[DebtorsValueOS] = 0 THEN 0 ELSE 1 END), 0) AS [DebtorEntries] FROM [dbo].[matters] AS MAT INNER JOIN [dbo].[Transactions] TRN ON MAT.[Code] = TRN.[MatterCode] WHERE TRN.[Posted] = ''Y'' AND MAT.[FECode] = @Handler AND TRN.[CorrectionInd] = ''L'' AND TRN.[DebtorsValueOS] > 0 AND ((TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'') OR (TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))) DT' EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @GETDATE DATETIME, @OSInvoices DECIMAL(19, 2) OUTPUT, @OSFees DECIMAL(19, 2) OUTPUT, @AVGDDays INT OUTPUT', @Handler = @Handler, @GETDATE = @GETDATE, @OSInvoices = @OSInvoices OUTPUT, @OSFees = @OSFees OUTPUT, @AVGDDays = @AVGDDays OUTPUT END DECLARE @WIP DECIMAL(19, 2) -- Pino 2015-05-26 - Please make sure that this calculation exactly mirrors the corresponding one -- in [dbo].[KAAS_DashboardCaseAlert] - if either is changed, change the other one -- accordingly -- John 2016-01-25 - Made query match the one in KAAS_DashboardCaseAlert IF @IsSAM4 = 0 BEGIN --SELECT @WIP = ISNULL(SUM(ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0)), 0) -- FROM [dbo].[TimeEntry] TIE -- INNER JOIN [dbo].[matters] MAT -- ON MAT.[Code] = TIE.[Matter] -- AND MAT.[Closed] = 'N' -- WHERE TIE.[FeeEarn] = @Handler -- AND TIE.[Rec_Irr] <> 'N' -- AND TIE.[Matter] <> '~' -- AND ( TIE.[TimeOrCharge] = 'T' -- OR TIE.[TimeOrCharge] = 'C') SELECT @WIP = ISNULL(SUM(WP.[WIP]), 0) FROM ( SELECT TIE.[Matter], ISNULL(SUM(ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0)), 0) AS [WIP] FROM [dbo].[TimeEntry] TIE INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = TIE.[Matter] AND MAT.[Closed] = 'N' WHERE TIE.[FeeEarn] = @Handler AND TIE.[Rec_Irr] <> 'N' AND TIE.[Matter] <> '~' AND ( TIE.[TimeOrCharge] = 'T' OR TIE.[TimeOrCharge] = 'C') GROUP BY TIE.[Matter]) WP INNER JOIN [dbo].[matters] MT2 INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MT2.[ClientCode] ON MT2.[Code] = WP.[Matter] END ELSE BEGIN --SELECT @WIP = ISNULL(SUM(CASE WHEN TIE.[InvoiceNo] = 0 -- THEN ISNULL(TIE.[Charge], 0) -- ELSE 0 END), 0) -- FROM [dbo].[TimeEntry] TIE -- INNER JOIN [dbo].[matters] MAT -- ON MAT.[Code] = TIE.[Matter] -- AND MAT.[Closed] = 'N' -- WHERE TIE.[FeeEarn] = @Handler -- AND TIE.[Rec_Irr] <> 'N' -- AND TIE.[Matter] <> '~' -- AND ( TIE.[TimeOrCharge] = 'T' -- OR TIE.[TimeOrCharge] = 'C') SELECT @WIP = ISNULL(SUM(WP.[WIP]), 0) FROM ( SELECT TIE.[Matter], ISNULL(SUM(CASE WHEN TIE.[InvoiceNo] = 0 THEN ISNULL(TIE.[Charge], 0) ELSE 0 END), 0) AS [WIP] FROM [dbo].[TimeEntry] TIE INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = TIE.[Matter] AND MAT.[Closed] = 'N' WHERE TIE.[FeeEarn] = @Handler AND TIE.[Rec_Irr] <> 'N' AND TIE.[Matter] <> '~' AND ( TIE.[TimeOrCharge] = 'T' OR TIE.[TimeOrCharge] = 'C') GROUP BY TIE.[Matter]) WP INNER JOIN [dbo].[matters] MT2 INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MT2.[ClientCode] ON MT2.[Code] = WP.[Matter] END -- Pino 2015-06-24 Start DECLARE @OutlayBalance DECIMAL(19, 2) IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT @OutlayBalance = ISNULL(SUM(ISNULL(MAT.[OutlayBal], 0)), 0) FROM [dbo].[matters] MAT WHERE MAT.[FECode] = @Handler AND MAT.[Closed] <> ''Y''' END ELSE BEGIN SET @NCOMMAND = N' SELECT @OutlayBalance = ISNULL(SUM(ISNULL(OBL.[OutlayBalance], 0)), 0) FROM ( SELECT MAT.[Code], ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0) AS [OutlayBalance] FROM [dbo].[matters] MAT INNER JOIN [dbo].[Transactions] TRN ON TRN.[MatterCode] = MAT.[Code] AND ( ( (TRN.[Posted] = ''Y'') AND (TRN.[RecType] <> ''V'') AND (TRN.[CorrectionInd] = ''L'')) OR ( (TRN.[Posted] IS NULL) AND (TRN.[RecType] IS NULL) AND (TRN.[CorrectionInd] IS NULL))) WHERE MAT.[FECode] = @Handler AND MAT.[Closed] <> ''Y'' GROUP BY MAT.[Code]) OBL' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @OutlayBalance DECIMAL(19, 2) OUTPUT', @Handler = @Handler, @OutlayBalance = @OutlayBalance OUTPUT -- Pino 2015-06-24 END --Statement to get OS fee and invoice SELECT REPLACE(CONVERT(VARCHAR,CAST(ROUND(@OSInvoices,0) AS MONEY),1),'.00','') AS [OSInvoice], REPLACE(CONVERT(VARCHAR,CAST(ROUND(@OSFees,0) AS MONEY),1),'.00','') AS [OSFees], REPLACE(CONVERT(VARCHAR,CAST(ROUND(@AVGDDays,0) AS MONEY),1),'.00','') AS [AverageDebtorsDays], REPLACE(CONVERT(VARCHAR,CAST(ROUND(@WIP,0) AS MONEY),1),'.00','') AS [CurrentWIP], REPLACE(CONVERT(VARCHAR,CAST(ROUND(@DraftInvoice,0) AS MONEY),1),'.00','') AS [DraftInvoice], REPLACE(CONVERT(VARCHAR,CAST(ROUND((@OSInvoices + @OutlayBalance + @WIP),0) AS MONEY),1),'.00','') AS [CurrentLookupValue], --Pino 2015-09-29 REPLACE(CONVERT(VARCHAR,CAST(ROUND(@OutlayBalance,0) AS MONEY),1),'.00','') AS [OutlayBalance] --Added Pino 2015-06-24 DECLARE @Open INT DECLARE @Dormant INT DECLARE @Expectinvoice INT DECLARE @Noestimatefee INT DECLARE @Approachingestimatedfee INT DECLARE @Lockedupvalue INT DECLARE @Noestimategiven INT DECLARE @MoneyLaunderingchecks INT DECLARE @EffectivelyCompleted INT DECLARE @EstFeeWarningLimit DECIMAL(19, 2) DECLARE @LockupUpValue DECIMAL(19, 2) SELECT @EstFeeWarningLimit = CONVERT(DECIMAL(19, 2), ISNULL([SET].[KeyValue], '0')) FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'EstFeeWarningLimit' SET @EstFeeWarningLimit = ISNULL(@EstFeeWarningLimit, 0) SELECT @LockupUpValue = CONVERT(DECIMAL(19, 2), ISNULL([SET].[KeyValue], '0')) FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'LockupUpValue' SET @LockupUpValue = ISNULL(@LockupUpValue, 0) SELECT @Open = ISNULL(SUM(CASE WHEN MAT.[Closed] = 'Y' THEN 0 WHEN MAT.[ClientCode] = 'ZZZZZZ' THEN 0 WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2 THEN 0 WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter THEN 0 ELSE 1 END), 0), @Expectinvoice = ISNULL(SUM(CASE WHEN MAT.[ExpBillD] <= @GETDATE THEN 1 ELSE 0 END), 0), @Noestimatefee = ISNULL(SUM(CASE WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2 THEN 0 WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter THEN 0 WHEN MAT.[EstFee] = 0 THEN 1 ELSE 0 END), 0), @Approachingestimatedfee = ISNULL(SUM(CASE WHEN (COALESCE ((ISNULL(MAT.[ChargeBal], 0) / NULLIF (MAT.[EstFee], 0) * 100), 0)) > @EstFeeWarningLimit THEN 1 ELSE 0 END), 0), @Lockedupvalue = ISNULL(SUM(CASE WHEN (MAT.[ChargeBal] + MAT.[DebtBal] + MAT.[OutlayBal]) > @LockupUpValue THEN 1 ELSE 0 END), 0), @Noestimategiven = ISNULL(SUM(CASE WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2 THEN 0 WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter THEN 0 WHEN MAT.[Section68] = 'Y' THEN 0 ELSE 1 END), 0), @EffectivelyCompleted=ISNULL(SUM(CASE WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2 THEN 0 WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter THEN 0 WHEN ISNULL(MAT.PCODE, '') = '' AND ISNULL(PFECODE, '') = '' THEN 1 ELSE 0 END),0) FROM [dbo].[matters] MAT WHERE MAT.[FECode] = @Handler AND MAT.Closed <> 'Y' DECLARE @MATTERS TABLE ([Code] VARCHAR(20), [LastActionDate] DATETIME) INSERT INTO @MATTERS ([Code], [LastActionDate]) EXEC @Dormant = [dbo].[KAAS_GetDormantMatters] @Handler SELECT @MoneyLaunderingchecks = COUNT(DISTINCT CON.[CODE]) FROM [dbo].[Contacts] CON INNER JOIN [dbo].[matters] MAT ON MAT.[ClientCode] = CON.[Code] AND MAT.[Closed] <> 'Y' WHERE CON.[FE] = @Handler AND ISNULL(CON.[Approved], 0) <> 1 SELECT ISNULL(@Open, 0) AS [OpenMatters], ISNULL(@Dormant, 0) AS [MyDormantMatters], ISNULL(@Expectinvoice, 0) AS [NoCaseWhereExpectInvoiceDateHasPassed], ISNULL(@Noestimatefee, 0) AS [NoCaseWithNoEstimateFee], ISNULL(@Approachingestimatedfee, 0) AS [NoCaseApproachingEstimatedFee], ISNULL(@Lockedupvalue, 0) AS [NoCaseApproachingLockedUpValue], ISNULL(@MoneyLaunderingchecks, 0) AS [NoClientsThatRequireMoneyLaunderingChecks], ISNULL(@Noestimategiven, 0) AS [NoCasesWithNoEstimateGiven], ISNULL(@EffectivelyCompleted, 0) AS [NoCasesEffectivelyComplete] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardAddWidgetsChildPanels' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardAddWidgetsChildPanels] END GO CREATE PROCEDURE KAAS_DashboardAddWidgetsChildPanels ( @userPanelId int, @handlerCode varchar(10), @widgetIds varchar(100)=NULL, @panelIds varchar(100)=NULL ) AS /******************************************************************************************************* * Adds Widgets and Child Panels into a Panel. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardAddWidgetsChildPanels] * * * * Modification History : * * 2019-05-16 Vinodhan K Created * *******************************************************************************************************/ BEGIN --Insert values in UserPanel INSERT INTO [UserPanels] (handlercode, panelid, panelname, parentpanel) SELECT @handlercode, panelid, panelname, @userpanelid FROM [Panels] WHERE panelid IN (SELECT * FROM [dbo].[KAAS_FN_CSVToTable](@panelIds)) AND @panelIds IS NOT NULL; --Insert values in UserWidgets INSERT INTO [UserWidgets] (userpanelid,widgetid,widgetdata) SELECT @userpanelid, widgetid, (N'Widgetdata') FROM [Widgets] WHERE Widgetid IN (SELECT * FROM [dbo].[KAAS_FN_CSVToTable](@widgetIds)) AND @widgetIds IS NOT NULL; ;WITH FirstLevel AS ( SELECT UP.UserPanelId, UP.PanelId, UP.PanelName, UP.ParentPanel , P.Width FROM [UserPanels] UP LEFT JOIN [Panels] P ON UP.PanelId=P.PanelId WHERE UserPanelId=@userPanelId OR ParentPanel = @userpanelId )SELECT * FROM FirstLevel ;WITH FirstLevel AS ( SELECT UP.UserPanelId, UP.PanelId, UP.PanelName, UP.ParentPanel, P.Width FROM [UserPanels] UP LEFT JOIN [Panels] P ON UP.PanelId=P.PanelId WHERE UserPanelId=@userPanelId OR ParentPanel = @userpanelId )SELECT UW.UserWidgetsId, UW.UserPanelId, UW.WidgetId, UW.WidgetData, W.WidgetName, W.TemplateId FROM [UserWidgets] UW LEFT JOIN [Widgets] W ON UW.WidgetId = W.WidgetId WHERE UW.UserPanelId IN (SELECT UserPanelId FROM FirstLevel) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardCaseAlert' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardCaseAlert] END GO CREATE PROCEDURE [dbo].[KAAS_DashboardCaseAlert] (@Handler VARCHAR(10), @Function VARCHAR(50), @PageNumber INT, @PageSize INT, @SearchText VARCHAR(100), @SortColumn VARCHAR(20), @SortDirection VARCHAR(10)) AS /******************************************************************************************************************************************************* * * Retrieves Detailed information for the entries displayed on the Dashboard (My Overview) page * * Stored Procedure Name : KAAS_DashboardCaseAlert * Copied From : ky_NETDashboardCaseAlert * * Pino 2014-11-19 - changed statements for Open Matters and Dormant Matters. * assigned task to review remaining select statements * * Magesh 2015-05-05 - Changed conditions to get data more specifically * * Pino 2015-05-26 - SAM4 calculations * * Pino 2015-06-24 - Include Outlay Balance * * Pino 2015-06-25 - Fix drilldown for Clients Requiring Money Laundering Checks * Exclude zero balances from Outlay Balance drilldown * * Magesh 2015-08-31 - Added condition to the query used to find out @TotalStatuteLimits to exculed min date values '1900-01-01' * * Magesh 2015-09-15 - Added three more function for fees for current month , last month and year to date. * * Magesh 2015-10-10 - Added three more funtions to show timedaybook and time enty for week,month and year. * * Magesh 2015-10-09 - Added three more funtions to show Admin time enty for week,month and year. * * Magesh 2015-10-16 - Added extra funtions to show effectively complete matters. * * John 2015-11-09 - Fixed function 'TimeDayBookforWeek' looking for 'ADM' handler instead of @Handler * * John 2015-11-19 - KEYD-2939 - Changed the inner join from batchdetails to matters to now be * batchh to matters * John 2015-11-25 - KEYD-2943 - Wrapped a number of financial figures in new function ) * * John 2016-01-11 - Undid previous change as the VB .NET handles this now. * It was also messing up totals for the figures (e.g. can't add "(-123.45)" to "512.12") * Also excluding matters with no WIP from the WIP drill down * * John 2016-02-02 - Now excluding close matters from undertakings and statute approaching * http://jira1.dsrc.in:8080/browse/KEYD-3158 * * Arun 2016-02-05 - Specified the Varchar size * * Pino 2016-04-11 - Ignore No Estimate Fee calculation for system matters like ZZZZZZ/ZZZ2 and * for the "zero" matters * * Pino 2016-04-12 - Exclude further "zero" matters * * Suriya 2016-04-26 - KEYD-3536-In the My Overview page the "Admin time recorded this week" drill down list is not showing any details. * * Arun 2016-05-16 - Have added OSFees and Debtors Days in Dashboard alert * * John 2016-08-02 - Code refactor * * Sridharan 2016-08-16 - KEYD:3591: In "My over view" page the "Fee" column of the Fees issued Year to Date * drill down list is displayed wrong. * * John 2016-09-26 - KEYD-4090 Fees issued must now be posted before appearing in My Overview * * John 2017-03-20 - Added Last Year and Last Year to Date functions * Also serious overhaul of some queries * * John 2017-03-27 - Fixed getdate not being passed into SQL statement * Corrected SAM3 Fees Last Year (to Date) clause so it looks at last year, not next * * Pino 2017-03-28 - Fixed use of ISNULL(RTRIM( * * John 2017-06-06 - Time for this year now only looks at chargeable time (to be consistent with other time frames) * * Pino 2017-06-15 - Fixed calculation for Debtors Days - @GETDATE not passed in. * * John 2017-10-26 - Fixed potential mismatch with ky_NETDashboard_v2 * * John 2018-10-25 - KEYD-5519: Made date check for dormant matters consistent with warning on diary (using setting now) * * John 2018-11-05 - Dormant check now only looks at complete actions * * John 2018-11-08 - Dormant check looks at any activity in diary, time ledger, matter ledger and undertakings * * John 2018-11-09 - Fixed Outstanding Fees window not showing anything - KEYD-5558 * * John 2018-11-12 - Fixed SAM4 debtors days not showing anything - KEYD-5558 * * John 2018-12-06 - Added return for "DraftInvoices" - KEYD-5563 * * Vinodhan K 2019-18-07 - Added KAAS_DashboardCaseAlert *******************************************************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @TODAYNUM INT DECLARE @MONDAY DATETIME DECLARE @STARTOFMONTH DATETIME DECLARE @STARTOFYEAR DATETIME DECLARE @MONTHTODATE DATETIME DECLARE @GETDATE DATETIME SELECT @GETDATE = GETDATE() SELECT @STARTOFMONTH = KPI.[FromDate], @STARTOFYEAR = KPI.[StartOfYear], @MONTHTODATE = CASE WHEN @GETDATE > KPI.[ToDate] THEN KPI.[ToDate] ELSE @GETDATE END FROM [dbo].[KPIParameters] AS KPI SELECT @STARTOFYEAR = ISNULL(@STARTOFYEAR, CONVERT(DATETIME, CONVERT(VARCHAR(4), YEAR(@GETDATE)) + '0101')), @TODAYNUM = DATEPART(WEEKDAY, @GETDATE) - DATEPART(WEEKDAY, '20000102') --the 2nd of January, 2000 was a Monday IF @TODAYNUM <= 0 SET @TODAYNUM = @TODAYNUM + 7 SET @MONDAY = CONVERT(DATETIME, CONVERT(VARCHAR, DATEADD(DAY, 1 - @TODAYNUM, @GETDATE), 112)) SELECT @FUNCTION = UPPER(ISNULL(@FUNCTION, '')) DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF @FUNCTION = 'OPENMATTER' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OpenMatterTable FROM (SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code], RTRIM(ISNULL(CON.[Name], '')) AS [Name], RTRIM(ISNULL(MAT.[Description], '')) AS [Description] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE ( [MAT].[Code] LIKE '%' + @SearchText + '%' OR [CON].[NAME] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' ) AND MAT.[FECode] = @Handler AND MAT.[ClientCode] <> 'ZZZZZZ' AND CASE WHEN ISNUMERIC(MAT.[matter]) = 0 THEN 1 WHEN CONVERT(INT, MAT.[matter]) = 0 THEN 1 ELSE 0 END = 0 AND MAT.[Closed] <> 'Y') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #OpenMatterTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #OpenMatterTable END ELSE IF @FUNCTION = 'EFFECTIVELYCOMPLETE' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #EffectivelyCompleteTable FROM (SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code], RTRIM(ISNULL(CON.[Name], '')) AS [Name], RTRIM(ISNULL(MAT.[Description], '')) AS [Description] FROM [dbo].[matters] AS MAT LEFT OUTER JOIN [dbo].[Contacts] AS CON ON CON.[Code] = MAT.[ClientCode] WHERE ( [MAT].[Code] LIKE '%' + @SearchText + '%' OR [CON].[NAME] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' ) AND [MAT].[FECode] = @Handler AND ISNULL(MAT.[PCODE], '') = '' AND ISNULL(MAT.[PFECODE], '') = '' AND CASE WHEN ISNUMERIC(MAT.[matter]) = 0 THEN 1 WHEN CONVERT(INT, MAT.[matter]) = 0 THEN 1 ELSE 0 END = 0 AND MAT.[Closed] <> 'Y') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #EffectivelyCompleteTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #EffectivelyCompleteTable END ELSE IF @FUNCTION = 'DORMANTMATTER' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END DECLARE @MATTERS TABLE ([Code] VARCHAR(20), [LastActionDate] DATETIME) INSERT INTO @MATTERS ([Code], [LastActionDate]) EXEC [dbo].[KAAS_GetDormantMatters] @Handler SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #DormantMatterTable FROM (SELECT MAT.[Code] AS [Code], ISNULL(RTRIM([CNT].[Name]), '') AS [Name], ISNULL(RTRIM([MAT].[Description]), '') AS [Description], TMP.[LastActionDate] FROM [dbo].[matters] AS MAT LEFT OUTER JOIN [dbo].[Contacts] AS CNT ON MAT.[ClientCode] = CNT.[Code] INNER JOIN @MATTERS AS TMP ON MAT.[Code] = TMP.[Code] WHERE ( [MAT].[Code] LIKE '%' + @SearchText + '%' OR [CNT].[NAME] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' )) AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #DormantMatterTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #DormantMatterTable END ELSE IF @FUNCTION = 'INVOICEDATEPASSED' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #InvoiceDatePassedTable FROM (SELECT MAT.[Code] AS [Code], RTRIM(ISNULL(CON.[Name], '')) AS [Name], RTRIM(ISNULL(MAT.[Description], '')) AS [Description], MAT.[ExpBillD] AS [ExpectedBillDate], ISNULL(MAT.[EstFee], 0) AS [EstimatedFee], ISNULL(MAT.[ChargeBal], 0) AS [WIP] FROM [dbo].[matters] AS MAT LEFT JOIN [dbo].[Contacts] AS CON ON CON.[Code] = MAT.[ClientCode] WHERE ( [MAT].[Code] LIKE '%' + @SearchText + '%' OR [CON].[NAME] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' OR [MAT].[ExpBillD] LIKE '%' + @SearchText + '%' OR [MAT].[EstFee] LIKE '%' + @SearchText + '%' OR [MAT].[ChargeBal] LIKE '%' + @SearchText + '%' ) AND MAT.[FECode] = @Handler AND MAT.[ExpBillD] <= @GETDATE AND MAT.[Closed] <> 'Y') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ExpectedBillDate' THEN [ExpectedBillDate] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ExpectedBillDate' THEN [ExpectedBillDate] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'EstimatedFee' THEN [EstimatedFee] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'EstimatedFee' THEN [EstimatedFee] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END DESC SELECT * FROM #InvoiceDatePassedTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #InvoiceDatePassedTable END ELSE IF @FUNCTION = 'NOESTIMATEFEE' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #NoEstimateFeeTable FROM (SELECT MAT.[Code] AS [Code], RTRIM(ISNULL(CON.[Name], '')) AS [Name], RTRIM(ISNULL(MAT.[Description], '')) AS [Description] FROM [dbo].[matters] AS MAT LEFT OUTER JOIN [dbo].[Contacts] AS CON ON CON.[Code] = MAT.[ClientCode] WHERE ( [MAT].[Code] LIKE '%' + @SearchText + '%' OR [CON].[NAME] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' ) AND MAT.[FECode] = @Handler AND CASE WHEN ISNUMERIC(MAT.[matter]) = 0 THEN 1 WHEN CONVERT(INT, MAT.[matter]) = 0 THEN 1 ELSE MAT.[EstFee] END = 0 AND MAT.[Closed] <> 'Y') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #NoEstimateFeeTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #NoEstimateFeeTable END ELSE IF @FUNCTION = 'APPROACHINGESTIMATEFEE' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #ApproachingEstimateFeeTable FROM (SELECT MAT.[Code] AS [Code], RTRIM(ISNULL(CON.[Name],'')) AS [Name], RTRIM(ISNULL(MAT.[Description],'')) AS [Description], ISNULL(EstFee,0) AS [EstimatedFee], ISNULL(ChargeBal,0) AS [WIP], CAST(CAST((COALESCE((ISNULL(MAT.[ChargeBal], 0) / NULLIF(MAT.[EstFee], 0) * 100), 0)) AS DECIMAL(18,2)) AS VARCHAR(100)) + '%' AS [PercentageOfEstimatedFee] FROM [dbo].[matters] AS MAT LEFT OUTER JOIN [dbo].[Contacts] AS CON ON CON.[Code] = MAT.[ClientCode] WHERE ( [MAT].[Code] LIKE '%' + @SearchText + '%' OR [CON].[Name] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' OR [MAT].[EstFee] LIKE '%' + @SearchText + '%' OR [MAT].[ChargeBal] LIKE '%' + @SearchText + '%' OR (CAST(CAST((COALESCE((ISNULL(MAT.[ChargeBal], 0) / NULLIF(MAT.[EstFee], 0) * 100), 0)) AS DECIMAL(18,2)) AS VARCHAR(100)) + '%') LIKE '%' + @SearchText + '%' ) AND FECode = @Handler AND COALESCE((ISNULL(MAT.[ChargeBal], 0) / NULLIF(MAT.[EstFee], 0) * 100), 0) > (SELECT ISNULL([KeyValue], 0) FROM [dbo].[Settings] WHERE [KeyName] = 'EstFeeWarningLimit') AND MAT.[Closed] <> 'Y') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'EstimatedFee' THEN [EstimatedFee] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'EstimatedFee' THEN [EstimatedFee] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'PercentageOfEstimatedFee' THEN [PercentageOfEstimatedFee] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'PercentageOfEstimatedFee' THEN [PercentageOfEstimatedFee] END END DESC SELECT * FROM #ApproachingEstimateFeeTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #ApproachingEstimateFeeTable END ELSE IF @FUNCTION = 'APPROACHINGLOCKEDUP' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #ApproachingLockedupTable FROM (SELECT MAT.[Code] AS [Code], RTRIM(ISNULL(CON.[Name],'')) AS [Name], RTRIM(ISNULL(MAT.[Description],'')) AS [Description] FROM [dbo].[matters] AS MAT LEFT OUTER JOIN [dbo].[Contacts] AS CON ON CON.[Code] = MAT.[ClientCode] WHERE ( [MAT].[Code] LIKE '%' + @SearchText + '%' OR [CON].[NAME] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' ) AND MAT.[FECode] = @Handler AND (ISNULL(MAT.[ChargeBal], 0) + ISNULL(MAT.[DebtBal], 0) + ISNULL(MAT.[OutlayBal], 0)) > (SELECT ISNULL([KeyValue], 0) FROM [dbo].[Settings] WHERE KeyName = 'LockupUpValue') AND MAT.[Closed] <> 'Y') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #ApproachingLockedupTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #ApproachingLockedupTable END ELSE IF @Function='MONEYLANDERINGCHECKS' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #MoneyLanderingCheckTable FROM ( -- Pino 2015-06-25 Rewrite START SELECT RTRIM(ISNULL(CON.[Code], '')) AS [ClientCode], RTRIM(ISNULL(CON.[Name], '')) AS [Name], [dbo].[ky_RemoveSpuriousWhitespace2](RTRIM(ISNULL(CON.[Address], '')), 200) AS [Address], RM.[Code] AS [Code], RM.[Description] AS [Description] FROM [dbo].[Contacts] CON -- Get code and description of most recently started matter for this client -- Because it's a Cross Apply it works akin to an INNER JOIN so clients with -- no open matters are automatically excluded. CROSS APPLY ( SELECT TOP 1 RTRIM(ISNULL(MAT.[Code], '')) AS [Code], RTRIM(ISNULL(MAT.[Description], '')) AS [Description] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[Code] AND MAT.[Closed] <> 'Y' ORDER BY MAT.[Started] DESC) RM WHERE ( [CON].[Code] LIKE '%' + @SearchText + '%' OR [CON].[Name] LIKE '%' + @SearchText + '%' OR [dbo].[ky_RemoveSpuriousWhitespace2](RTRIM(ISNULL(CON.[Address], '')), 200) LIKE '%' + @SearchText + '%' OR [RM].[Code] LIKE '%' + @SearchText + '%' OR [RM].[Description] LIKE '%' + @SearchText + '%' ) AND CON.[FE] = @Handler AND ISNULL(CON.[Approved], 0) <> 1 -- Pino 2015-06-25 Rewrite END ) AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ClientCode' THEN [ClientCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ClientCode' THEN [ClientCode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #MoneyLanderingCheckTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #MoneyLanderingCheckTable END ELSE IF @Function='NOESTIMATEGIVEN' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #NoEstimateGivenTable FROM (SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code], RTRIM(ISNULL(CON.[Name], '')) AS [Name], RTRIM(ISNULL(MAT.[Description], '')) AS [Description] FROM [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE ( [MAT].[Code] LIKE '%' + @SearchText + '%' OR [CON].[NAME] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' ) AND MAT.[FECode] = @Handler AND ISNULL(MAT.[Section68], '') <> 'Y' AND CASE WHEN isnumeric(MAT.[matter]) = 0 THEN 1 WHEN convert(int, MAT.[matter]) = 0 THEN 1 ELSE 0 END = 0 AND MAT.[Closed] <> 'Y') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #NoEstimateGivenTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #NoEstimateGivenTable END ELSE IF @Function='WIP' -- Pino 2015-05-26 - Please make sure that this calculation exactly mirrors the corresponding one -- in [dbo].[Ky_NETDashBoard] - if either is changed, change the other one -- accordingly BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #WIPTable FROM (SELECT WP.[Matter] AS [Code], RTRIM(ISNULL(CON.[NAME], '')) AS [ClientName], RTRIM(ISNULL(CON.[CODE], '')) AS [ClientCode], RTRIM(ISNULL(MT2.[Description], '')) AS [Description], WP.[WIP] AS [WIP], WP.[LastTimeEntryDate] AS [LastTimeEntryDate] FROM ( SELECT TIE.[Matter], ISNULL(SUM(ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0)), 0) AS [WIP], MAX(TIE.[Date]) AS [LastTimeEntryDate] FROM [dbo].[TimeEntry] TIE INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = TIE.[Matter] AND MAT.[Closed] = 'N' WHERE TIE.[FeeEarn] = @Handler AND TIE.[Rec_Irr] <> 'N' AND TIE.[Matter] <> '~' AND ( TIE.[TimeOrCharge] = 'T' OR TIE.[TimeOrCharge] = 'C') GROUP BY TIE.[Matter]) WP INNER JOIN [dbo].[matters] MT2 INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MT2.[ClientCode] ON MT2.[Code] = WP.[Matter] WHERE ( [WP].[Matter] LIKE '%' + @SearchText + '%' OR [CON].[NAME] LIKE '%' + @SearchText + '%' OR [CON].[CODE] LIKE '%' + @SearchText + '%' OR [MT2].[Description] LIKE '%' + @SearchText + '%' OR [WP].[WIP] LIKE '%' + @SearchText + '%' OR [WP].[LastTimeEntryDate] LIKE '%' + @SearchText + '%' ) AND WP.[WIP] <> 0) AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ClientCode' THEN [ClientCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ClientCode' THEN [ClientCode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'LastTimeEntryDate' THEN [LastTimeEntryDate] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'LastTimeEntryDate' THEN [LastTimeEntryDate] END END DESC SELECT * FROM #WIPTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #WIPTable END ELSE BEGIN SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #WIPSamTable FROM (SELECT WP.[Matter] AS [Code], RTRIM(ISNULL(CON.[NAME], '')) AS [ClientName], RTRIM(ISNULL(CON.[CODE], '')) AS [ClientCode], RTRIM(ISNULL(MT2.[Description], '')) AS [Description], WP.[WIP] AS [WIP], WP.[LastTimeEntryDate] AS [LastTimeEntryDate] FROM ( SELECT TIE.[Matter], ISNULL(SUM(CASE WHEN TIE.[InvoiceNo] = 0 THEN ISNULL(TIE.[Charge], 0) ELSE 0 END), 0) AS [WIP], MAX(TIE.[Date]) AS [LastTimeEntryDate] FROM [dbo].[TimeEntry] TIE INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = TIE.[Matter] AND MAT.[Closed] = 'N' WHERE TIE.[FeeEarn] = @Handler AND TIE.[Rec_Irr] <> 'N' AND TIE.[Matter] <> '~' AND ( TIE.[TimeOrCharge] = 'T' OR TIE.[TimeOrCharge] = 'C') GROUP BY TIE.[Matter]) WP INNER JOIN [dbo].[matters] MT2 INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MT2.[ClientCode] ON MT2.[Code] = WP.[Matter] WHERE ( [WP].[Matter] LIKE '%' + @SearchText + '%' OR [CON].[NAME] LIKE '%' + @SearchText + '%' OR [CON].[CODE] LIKE '%' + @SearchText + '%' OR [MT2].[Description] LIKE '%' + @SearchText + '%' OR [WP].[WIP] LIKE '%' + @SearchText + '%' OR [WP].[LastTimeEntryDate] LIKE '%' + @SearchText + '%' ) AND WP.[WIP] <> 0) AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ClientCode' THEN [ClientCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ClientCode' THEN [ClientCode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'LastTimeEntryDate' THEN [LastTimeEntryDate] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'LastTimeEntryDate' THEN [LastTimeEntryDate] END END DESC SELECT * FROM #WIPSamTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #WIPSamTable END END ELSE IF @Function='OSINVOICE' -- Pino 2015-05-26 - Please make sure that this calculation exactly mirrors the corresponding one -- in [dbo].[Ky_NETDashBoard] - if either is changed, change the other one -- accordingly BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OSInvoiceSAM3Table FROM (SELECT RTRIM(ISNULL(DLG.[Ref], '''')) AS [InvoiceRef], RTRIM(ISNULL(DLG.[MATTER], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[Description],'''')) AS [Description], ISNULL(CONVERT(VARCHAR,DLG.[DATE],106),'''') AS [InvoiceDate], CONVERT(DECIMAL(19, 2), DLG.OSVALUE) AS [Outstanding], DATEDIFF(dd, DLG.[DATE], @GETDATE) AS [DaysOld] FROM [dbo].[matters] MAT INNER JOIN [dbo].[DebtorsLedger] DLG ON DLG.[MATTER] = MAT.[Code] AND DLG.[OSVALUE] > 0 INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [DLG].[Ref] LIKE ''%' + @SearchText + '%'' OR [DLG].[MATTER] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [DLG].[DATE] LIKE ''%' + @SearchText + '%'' OR [DLG].[OSVALUE] LIKE ''%' + @SearchText + '%'' ) ) AND MAT.[FECode] = @Handler) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #OSInvoiceSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #OSInvoiceSAM3Table' END ELSE BEGIN SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OSInvoiceSAM4Table FROM (SELECT TRN.[OutlayBill] AS [InvoiceRef], TRN.[MatterCode] AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[Description], '''')) AS [Description], CONVERT(VARCHAR, TRN.[TransDate], 106) AS [InvoiceDate], CONVERT(DECIMAL(19, 2), ISNULL(TRN.[DebtorsValueOS], 0)) AS [Outstanding], CASE WHEN TRN.[TransDate] IS NULL THEN 0 WHEN TRN.[TransDate] > @GETDATE THEN 0 WHEN TRN.[DebtorsValueOS] = 0 THEN 0 ELSE DATEDIFF(Day, TRN.[TransDate], @GETDATE) END AS [DaysOld] FROM [dbo].[Transactions] TRN LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[code] = TRN.[MatterCode] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [TRN].[OutlayBill] LIKE ''%' + @SearchText + '%'' OR [TRN].[MatterCode] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransDate] LIKE ''%' + @SearchText + '%'' OR [TRN].[DebtorsValueOS] LIKE ''%' + @SearchText + '%'' ) ) AND TRN.[Posted] = ''Y'' AND TRN.[FeeEarner] = @Handler AND TRN.[CorrectionInd] = ''L'' AND ( ( TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'') OR ( TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D'')) AND TRN.[DebtorsValueOS] > 0) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #OSInvoiceSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #OSInvoiceSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @GETDATE DATETIME, @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @GETDATE = @GETDATE, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END ELSE IF @Function='UNDERTAKINGS' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #UndertakingTable FROM (SELECT RTRIM(ISNULL(UND.MATTER,'')) AS Code, RTRIM(ISNULL(Contacts.[Name],'')) AS ClientName, RTRIM(ISNULL(M.[Description],'')) AS [Description], CASE WHEN UND.UNDDATE IS NULL THEN '' WHEN CONVERT(VARCHAR(11),UND.UNDDATE,23)='19000101' THEN '' ELSE CONVERT(VARCHAR(11),UND.UNDDATE ,20) END AS [Date] FROM dbo.[Undertakings] UND LEFT JOIN Matters AS M ON UND.MATTER = M.Code LEFT JOIN Contacts ON M.ClientCode = Contacts.Code WHERE ( [UND].[MATTER] LIKE '%' + @SearchText + '%' OR [Contacts].[Name] LIKE '%' + @SearchText + '%' OR [M].[Description] LIKE '%' + @SearchText + '%' ) AND UND.[AuthorisedByFE] = @Handler AND UND.[DISCHARGEDATE] IS NULL AND M.[Closed] <> 'Y') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #UndertakingTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #UndertakingTable END ELSE IF @Function='STATUTEDATE' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #StatuteDateTable FROM (SELECT RTRIM(ISNULL(M.Code,'')) AS [Code], RTRIM(ISNULL(Contacts.[Name],'')) AS [ClientName], RTRIM(ISNULL(M.[Description],'')) AS [Description], CASE WHEN M.StatuteLimits IS NULL THEN '' WHEN CONVERT(VARCHAR(11),M.StatuteLimits,23)='19000101' THEN '' ELSE CONVERT(VARCHAR(11),M.StatuteLimits ,20) END AS [Date] FROM Matters AS M INNER JOIN Contacts ON M.ClientCode = Contacts.Code WHERE ( [M].[Code] LIKE '%' + @SearchText + '%' OR [Contacts].[Name] LIKE '%' + @SearchText + '%' OR [M].[Description] LIKE '%' + @SearchText + '%' ) AND M.FECode = @Handler AND DATEDIFF(DD, @GETDATE, CASE WHEN ISNULL(M.[StatuteLimits], '21000101')='19000101' THEN '21000101' ELSE M.[StatuteLimits] END) <= 60 AND M.[Closed] <> 'Y') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC SELECT * FROM #StatuteDateTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #StatuteDateTable END ELSE IF @Function='OUTLAYBALANCE' BEGIN EXEC [dbo].[KAAS_OutlayBalanceDrilldown] @Handler, @PageNumber, @PageSize, @SearchText, @SortColumn, @SortDirection END ELSE IF @Function='Fees Issued Current Month' BEGIN -- Rewrite by John START -- KEYD-3505 IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeeIssuedCurrentMonthSAM3Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], ISNULL(BAD.[VALUE], 0) * CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C'' THEN -1 ELSE 1 END AS [Fee], RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref], RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative], BAD.[DATE] AS [Date] FROM [dbo].[BatchDetails] AS BAD INNER JOIN [dbo].[BatchH] AS BAH ON BAD.[BATCHNO] = BAH.[BATCHNO] AND BAH.[Posted] = ''Y'' INNER JOIN [dbo].[KPIParameters] AS KPI ON KPI.[Year] = BAD.[YEAR] AND KPI.[Period] = BAD.[PERNO] INNER JOIN [dbo].[matters] AS MAT ON BAH.[MATTER] = MAT.[Code] INNER JOIN [dbo].[Contacts] AS CON ON MAT.[ClientCode] = CON.[Code] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [BAD].[VALUE] LIKE ''%' + @SearchText + '%'' OR [BAH].[INVCR] LIKE ''%' + @SearchText + '%'' OR [BAD].[REF] LIKE ''%' + @SearchText + '%'' OR [BAD].[NARR] LIKE ''%' + @SearchText + '%'' ) ) AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + ''' AND ISNULL(BAD.[TYPE], '''') = ''I'' AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeeIssuedCurrentMonthSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeeIssuedCurrentMonthSAM3Table' END ELSE BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeeIssuedCurrentMonthSAM4Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * -1 AS [Fee], RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref], RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative], TRN.[TransDate] AS [Date] FROM [dbo].[Contacts] AS CON INNER JOIN [dbo].[matters] AS MAT ON CON.[Code] = MAT.[ClientCode] INNER JOIN [dbo].[Transactions] AS HED ON HED.[MatterCode] = MAT.[Code] INNER JOIN [dbo].[Transactions] AS TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND TRN.[CorrectionInd] IN (''L'', ''X'') AND TRN.[FeeEarner] = ''' + @Handler + ''' INNER JOIN [dbo].[KPIParameters] AS KPI ON KPI.[Year] = HED.[PostingYear] AND KPI.[Period] = HED.[PostingPeriod] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [TRN].[FeesBilled] LIKE ''%' + @SearchText + '%'' OR [TRN].[DrCr] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransRef] LIKE ''%' + @SearchText + '%'' OR [TRN].[Narrative] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransDate] LIKE ''%' + @SearchText + '%'' ) ) AND ISNULL(HED.[RecType], '''') = ''H'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeeIssuedCurrentMonthSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeeIssuedCurrentMonthSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END ELSE IF @Function='Fees Issued Last Month' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeesIssuedLastMonthSAM3Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], ISNULL(BAD.[VALUE], 0) * CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C'' THEN -1 ELSE 1 END AS [Fee], RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref], RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative], BAD.[DATE] AS [Date] FROM [dbo].[BatchDetails] AS BAD INNER JOIN [dbo].[BatchH] AS BAH ON BAD.[BATCHNO] = BAH.[BATCHNO] AND BAH.[Posted] = ''Y'' INNER JOIN [dbo].[KPIParameters] AS KPI ON (KPI.[Year] = BAD.[YEAR] AND KPI.[Period] <> 1 AND KPI.[Period] - 1 = BAD.[PERNO]) OR (KPI.[Year] = BAD.[YEAR] - 1 AND KPI.[Period] = 1 AND BAD.[PERNO] = 12) INNER JOIN [dbo].[matters] AS MAT ON BAH.[MATTER] = MAT.[Code] INNER JOIN [dbo].[Contacts] AS CON ON MAT.[ClientCode] = CON.[Code] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [BAD].[VALUE] LIKE ''%' + @SearchText + '%'' OR [BAH].[INVCR] LIKE ''%' + @SearchText + '%'' OR [BAD].[REF] LIKE ''%' + @SearchText + '%'' OR [BAD].[NARR] LIKE ''%' + @SearchText + '%'' OR [BAD].[DATE] LIKE ''%' + @SearchText + '%'' ) ) AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + ''' AND ISNULL(BAD.[TYPE], '''') = ''I'' AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeesIssuedLastMonthSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeesIssuedLastMonthSAM3Table' END ELSE BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeesIssuedLastMonthSAM4Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * - 1 AS [Fee], RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref], RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative], TRN.[TransDate] AS [Date] FROM [dbo].[Contacts] AS CON INNER JOIN [dbo].[matters] AS MAT ON CON.[Code] = MAT.[ClientCode] INNER JOIN [dbo].[Transactions] AS HED ON HED.[MatterCode] = MAT.[Code] INNER JOIN [dbo].[Transactions] AS TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND TRN.[CorrectionInd] IN (''L'', ''X'') AND TRN.[FeeEarner] = ''' + @HANDLER + ''' INNER JOIN [dbo].[KPIParameters] AS KPI ON (KPI.[Year] = HED.[PostingYear] AND KPI.[Period] <> 1 AND KPI.[Period] - 1 = HED.[PostingPeriod]) OR (KPI.[Year] = HED.[PostingYear] - 1 AND KPI.[Period] = 1 AND HED.[PostingYear] = 12) WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [TRN].[FeesBilled] LIKE ''%' + @SearchText + '%'' OR [TRN].[DrCr] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransRef] LIKE ''%' + @SearchText + '%'' OR [TRN].[Narrative] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransDate] LIKE ''%' + @SearchText + '%'' ) ) AND ISNULL(HED.[RecType], '''') = ''H'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeesIssuedLastMonthSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeesIssuedLastMonthSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END ELSE IF @Function='Fees Issued Year to Date' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeesIssuedYearToDateSAM3Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C'' THEN -BAD.[VALUE] WHEN ISNULL(BAH.[INVCR], '''') = ''I'' THEN BAD.[VALUE] ELSE 0 END AS [Fee], RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref], RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative], BAD.[DATE] AS [Date] FROM [dbo].[BatchDetails] AS BAD INNER JOIN [dbo].[BatchH] AS BAH ON BAD.[BATCHNO] = BAH.[BATCHNO] AND BAH.[Posted] = ''Y'' INNER JOIN [dbo].[KPIParameters] AS KPI ON KPI.[Year] = BAD.[YEAR] AND KPI.[Period] >= BAD.[PERNO] INNER JOIN [dbo].[matters] AS MAT ON BAH.[MATTER] = MAT.[Code] INNER JOIN [dbo].[Contacts] AS CON ON MAT.[ClientCode] = CON.[Code] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [BAH].[INVCR] LIKE ''%' + @SearchText + '%'' OR [BAD].[REF] LIKE ''%' + @SearchText + '%'' OR [BAD].[NARR] LIKE ''%' + @SearchText + '%'' OR [BAD].[DATE] LIKE ''%' + @SearchText + '%'' ) ) AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + ''' AND ISNULL(BAD.[TYPE], '''') = ''I'' AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeesIssuedYearToDateSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeesIssuedYearToDateSAM3Table' END ELSE BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeesIssuedYearToDateSAM4Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * - 1 AS [Fee], RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref], RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative], TRN.[TransDate] AS [Date] FROM [dbo].[Contacts] AS CON INNER JOIN [dbo].[matters] AS MAT ON CON.[Code] = MAT.[ClientCode] INNER JOIN [dbo].[Transactions] AS HED ON MAT.[Code] = HED.[MatterCode] INNER JOIN [dbo].[Transactions] AS TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND (TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') AND TRN.[FeeEarner] = ''' + @Handler + ''' INNER JOIN [dbo].[KPIParameters] AS KPI ON KPI.[Year] = HED.[PostingYear] AND KPI.[Period] >= HED.[PostingPeriod] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [TRN].[FeesBilled] LIKE ''%' + @SearchText + '%'' OR [TRN].[DrCr] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransRef] LIKE ''%' + @SearchText + '%'' OR [TRN].[Narrative] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransDate] LIKE ''%' + @SearchText + '%'' ) ) AND HED.[RecType] = ''H'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeesIssuedYearToDateSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeesIssuedYearToDateSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END -- Rewrite by John END ELSE IF @Function='Fees Issued Last Year to Date' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeesIssuedLastYearToDateSAM3Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C'' THEN -BAD.[VALUE] WHEN ISNULL(BAH.[INVCR], '''') = ''I'' THEN BAD.[VALUE] ELSE 0 END AS [Fee], RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref], RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative], BAD.[DATE] AS [Date] FROM [dbo].[BatchDetails] AS BAD INNER JOIN [dbo].[BatchH] AS BAH ON BAD.[BATCHNO] = BAH.[BATCHNO] AND BAH.[Posted] = ''Y'' INNER JOIN [dbo].[KPIParameters] AS KPI ON KPI.[Year] - 1 = BAD.[YEAR] AND KPI.[Period] >= BAD.[PERNO] INNER JOIN [dbo].[matters] AS MAT ON BAH.[MATTER] = MAT.[Code] INNER JOIN [dbo].[Contacts] AS CON ON MAT.[ClientCode] = CON.[Code] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [BAH].[INVCR] LIKE ''%' + @SearchText + '%'' OR [BAD].[REF] LIKE ''%' + @SearchText + '%'' OR [BAD].[NARR] LIKE ''%' + @SearchText + '%'' OR [BAD].[DATE] LIKE ''%' + @SearchText + '%'' ) ) AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + ''' AND ISNULL(BAD.[TYPE], '''') = ''I'' AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeesIssuedLastYearToDateSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeesIssuedLastYearToDateSAM3Table' END ELSE BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeesIssuedLastYearToDateSAM4Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * - 1 AS [Fee], RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref], RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative], TRN.[TransDate] AS [Date] FROM [dbo].[Transactions] AS HED INNER JOIN [dbo].[Transactions] AS TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND TRN.[CorrectionInd] IN (''L'', ''X'') AND TRN.[FeeEarner] = ''' + @Handler + ''' INNER JOIN [dbo].[KPIParameters] AS KPI ON KPI.[Year] - 1 = HED.[PostingYear] AND KPI.[Period] >= HED.[PostingPeriod] LEFT OUTER JOIN [dbo].[matters] AS MAT ON MAT.[Code] = HED.[MatterCode] LEFT OUTER JOIN [dbo].[Contacts] AS CON ON CON.[Code] = MAT.[ClientCode] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [TRN].[FeesBilled] LIKE ''%' + @SearchText + '%'' OR [TRN].[DrCr] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransRef] LIKE ''%' + @SearchText + '%'' OR [TRN].[Narrative] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransDate] LIKE ''%' + @SearchText + '%'' ) ) AND HED.[RecType] = ''H'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeesIssuedLastYearToDateSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeesIssuedLastYearToDateSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END ELSE IF @Function='Fees Issued Last Year' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeesIssuedLastYearSAM3Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C'' THEN -BAD.[VALUE] WHEN ISNULL(BAH.[INVCR], '''') = ''I'' THEN BAD.[VALUE] ELSE 0 END AS [Fee], RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref], RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative], BAD.[DATE] AS [Date] FROM [dbo].[BatchDetails] AS BAD INNER JOIN [dbo].[BatchH] AS BAH ON BAD.[BATCHNO] = BAH.[BATCHNO] AND BAH.[Posted] = ''Y'' INNER JOIN [dbo].[KPIParameters] AS KPI ON KPI.[Year] - 1 = BAD.[YEAR] INNER JOIN [dbo].[matters] AS MAT ON BAH.[MATTER] = MAT.[Code] INNER JOIN [dbo].[Contacts] AS CON ON MAT.[ClientCode] = CON.[Code] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [BAH].[INVCR] LIKE ''%' + @SearchText + '%'' OR [BAD].[REF] LIKE ''%' + @SearchText + '%'' OR [BAD].[NARR] LIKE ''%' + @SearchText + '%'' OR [BAD].[DATE] LIKE ''%' + @SearchText + '%'' ) ) AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + ''' AND ISNULL(BAD.[TYPE], '''') = ''I'' AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeesIssuedLastYearSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeesIssuedLastYearSAM3Table' END ELSE BEGIN SET @NCOMMAND = ' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FeesIssuedLastYearSAM4Table FROM (SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Client], RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter], ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * - 1 AS [Fee], RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref], RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative], TRN.[TransDate] AS [Date] FROM [dbo].[Transactions] AS HED INNER JOIN [dbo].[Transactions] AS TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND TRN.[CorrectionInd] IN (''L'', ''X'') AND TRN.[FeeEarner] = ''' + @Handler + ''' INNER JOIN [dbo].[KPIParameters] AS KPI ON KPI.[Year] - 1 = HED.[PostingYear] LEFT OUTER JOIN [dbo].[matters] AS MAT ON MAT.[Code] = HED.[MatterCode] LEFT OUTER JOIN [dbo].[Contacts] AS CON ON CON.[Code] = MAT.[ClientCode] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [CON].[Name] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [TRN].[FeesBilled] LIKE ''%' + @SearchText + '%'' OR [TRN].[DrCr] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransRef] LIKE ''%' + @SearchText + '%'' OR [TRN].[Narrative] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransDate] LIKE ''%' + @SearchText + '%'' ) ) AND HED.[RecType] = ''H'') AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #FeesIssuedLastYearSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #FeesIssuedLastYearSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END ELSE IF @Function='TimeDayBook' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #TimeDayBookTable FROM (SELECT ISNULL(TDB.[Matter], '') AS [Code], RTRIM(ISNULL(CNT.[Name], '')) AS [Client], RTRIM(ISNULL(MAT.[Description], '')) AS [Description], ISNULL(TDB.[Date], '') AS [Date], RTRIM(ISNULL(TDB.[Comment], '')) AS [Comment], ISNULL(TDB.[Time], 0) AS [Time], ISNULL(TDB.[Charge], 0) AS [Charge] FROM [dbo].[TimeDayBook] TDB LEFT OUTER JOIN [dbo].[matters] AS MAT ON TDB.[Matter] = MAT.[Code] LEFT OUTER JOIN [dbo].[Contacts] AS CNT ON MAT.[ClientCode] =CNT.[Code] WHERE ( [TDB].[Matter] LIKE '%' + @SearchText + '%' OR [CNT].[Name] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' OR [TDB].[Date] LIKE '%' + @SearchText + '%' OR [TDB].[Comment] LIKE '%' + @SearchText + '%' OR [TDB].[Time] LIKE '%' + @SearchText + '%' OR [TDB].[Charge] LIKE '%' + @SearchText + '%' ) AND TDB.[FeeEarn] = @Handler AND TDB.[TimeOrCharge] = 'T' AND TDB.[Rec_irr] = 'C') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END DESC SELECT * FROM #TimeDayBookTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #TimeDayBookTable END ELSE IF @Function='TimeDayBookforWeek' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #TimeDayBookForWeekTable FROM (SELECT ISNULL(TIE.[Matter],'') AS [Code], RTRIM(ISNULL(CON.[Name],'')) AS [Client], RTRIM(ISNULL(MAT.[Description],'')) AS [Description], ISNULL(TIE.[Date],'') AS [Date], RTRIM(ISNULL(TIE.[Comment],'')) AS [Comment], ISNULL(TIE.[Time],0) AS [Time], ISNULL(TIE.[Charge],0) AS [Charge] FROM [dbo].[TimeEntry] AS TIE LEFT OUTER JOIN [dbo].[matters] AS MAT ON TIE.[Matter] = MAT.[Code] LEFT OUTER JOIN [dbo].[Contacts] AS CON ON MAT.[ClientCode] = CON.[Code] WHERE ( [TIE].[Matter] LIKE '%' + @SearchText + '%' OR [CON].[Name] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' OR [TIE].[Date] LIKE '%' + @SearchText + '%' OR [TIE].[Comment] LIKE '%' + @SearchText + '%' OR [TIE].[Time] LIKE '%' + @SearchText + '%' OR [TIE].[Charge] LIKE '%' + @SearchText + '%' ) AND TIE.[FeeEarn] = @Handler AND TIE.[TimeOrCharge] = 'T' AND TIE.[Date] >= @MONDAY AND TIE.[Date] <= @GETDATE AND TIE.[Rec_irr] = 'C' AND ISNULL(TIE.[Task], '') <> 'WRI') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END DESC SELECT * FROM #TimeDayBookForWeekTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #TimeDayBookForWeekTable END ELSE IF @Function='TimeDayBookforMonth' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #TimeDayBookForMonthTable FROM (SELECT ISNULL(TIE.[Matter], '') AS [Code], RTRIM(ISNULL(CON.[Name], '')) AS [Client], RTRIM(ISNULL(MAT.[Description], '')) AS [Description], TIE.[Date] AS [Date], RTRIM(ISNULL(TIE.[Comment], '')) AS [Comment], ISNULL(TIE.[Time], 0) AS [Time], ISNULL(TIE.[Charge], 0) AS [Charge] FROM [dbo].[TimeEntry] AS TIE LEFT OUTER JOIN [dbo].[matters] AS MAT ON TIE.[Matter] =MAT.[Code] LEFT OUTER JOIN [dbo].[Contacts] AS CON ON MAT.[ClientCode] =CON.[Code] WHERE ( [TIE].[Matter] LIKE '%' + @SearchText + '%' OR [CON].[Name] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' OR [TIE].[Date] LIKE '%' + @SearchText + '%' OR [TIE].[Comment] LIKE '%' + @SearchText + '%' OR [TIE].[Time] LIKE '%' + @SearchText + '%' OR [TIE].[Charge] LIKE '%' + @SearchText + '%' ) AND TIE.[FeeEarn] = @Handler AND TIE.[TimeOrCharge] = 'T' AND TIE.[Rec_irr] = 'C' AND TIE.[Date] >= @STARTOFMONTH AND TIE.[Date] <= @MONTHTODATE AND ISNULL(TIE.[Task], '') <> 'WRI') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END DESC SELECT * FROM #TimeDayBookForMonthTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #TimeDayBookForMonthTable END ELSE IF @Function='TimeDayBookforYear' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #TimeDayBookForYearTable FROM (SELECT ISNULL(TIE.[Matter],'') AS [Code], RTRIM(ISNULL(CON.[Name],'')) AS [Client], RTRIM(ISNULL(MAT.[Description],'')) AS [Description], TIE.[Date] AS [Date], RTRIM(ISNULL(TIE.[Comment], '')) AS [Comment], ISNULL(TIE.[Time], 0) AS [Time], ISNULL(TIE.[Charge], 0) AS [Charge] FROM [dbo].[TimeEntry] AS TIE LEFT OUTER JOIN [dbo].[matters] AS MAT ON TIE.[Matter] = MAT.[Code] LEFT OUTER JOIN [dbo].[Contacts] AS CON ON MAT.[ClientCode] = CON.[Code] WHERE ( [TIE].[Matter] LIKE '%' + @SearchText + '%' OR [CON].[Name] LIKE '%' + @SearchText + '%' OR [MAT].[Description] LIKE '%' + @SearchText + '%' OR [TIE].[Date] LIKE '%' + @SearchText + '%' OR [TIE].[Comment] LIKE '%' + @SearchText + '%' OR [TIE].[Time] LIKE '%' + @SearchText + '%' OR [TIE].[Charge] LIKE '%' + @SearchText + '%' ) AND TIE.[FeeEarn] = @Handler AND TIE.[TimeOrCharge] = 'T' AND TIE.[Rec_irr] = 'C' AND TIE.[Date] >= @STARTOFYEAR AND TIE.[Date] <= @MONTHTODATE AND ISNULL(TIE.[Task], '') <> 'WRI') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END DESC SELECT * FROM #TimeDayBookForYearTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #TimeDayBookForYearTable END ELSE IF @Function='AdminTimeDayBookforWeek' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #AdminTimeDayBookforWeekTable FROM (SELECT ISNULL(TIE.[Matter],'') AS [Code], ISNULL(TIE.[Date],'') AS [Date], RTRIM(ISNULL(TIE.[Comment],'')) AS [Comment], ISNULL(TIE.[Time],0) AS [Time], ISNULL(TIE.[Charge],0) AS [Charge] FROM [dbo].[TimeEntry] AS TIE WHERE ( [TIE].[Matter] LIKE '%' + @SearchText + '%' OR [TIE].[Date] LIKE '%' + @SearchText + '%' OR [TIE].[Comment] LIKE '%' + @SearchText + '%' OR [TIE].[Time] LIKE '%' + @SearchText + '%' OR [TIE].[Charge] LIKE '%' + @SearchText + '%' ) AND TIE.[FeeEarn] = @Handler AND TIE.[TimeOrCharge] = 'T' AND TIE.[Date] >= @MONDAY AND TIE.[Date] <= @MONTHTODATE AND ISNULL(TIE.[TASK], '') <> 'WRI' AND TIE.[Matter] = '~') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END DESC SELECT * FROM #AdminTimeDayBookforWeekTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #AdminTimeDayBookforWeekTable END ELSE IF @Function='AdminTimeDayBookforMonth' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #AdminTimeDayBookforMonthTable FROM (SELECT ISNULL(TIE.[Matter], '') AS [Code], ISNULL(TIE.[Date], '') AS [Date], RTRIM(ISNULL(TIE.[Comment], '')) AS [Comment], ISNULL(TIE.[Time], 0) AS [Time], ISNULL(TIE.[Charge], 0) AS [Charge] FROM [dbo].[TimeEntry] AS TIE WHERE ( [TIE].[Matter] LIKE '%' + @SearchText + '%' OR [TIE].[Date] LIKE '%' + @SearchText + '%' OR [TIE].[Comment] LIKE '%' + @SearchText + '%' OR [TIE].[Time] LIKE '%' + @SearchText + '%' OR [TIE].[Charge] LIKE '%' + @SearchText + '%' ) AND TIE.[FeeEarn] = @Handler AND TIE.[TimeOrCharge] = 'T' AND TIE.[Date] >= @STARTOFMONTH AND TIE.[Date] <= @MONTHTODATE AND ISNULL(TIE.[Task], '') <> 'WRI' AND TIE.[Matter] = '~') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END DESC SELECT * FROM #AdminTimeDayBookforMonthTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #AdminTimeDayBookforMonthTable END ELSE IF @Function='AdminTimeDayBookforYear' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #AdminTimeDayBookforYearTable FROM (SELECT ISNULL(TIE.[Matter], '') AS [Code], ISNULL(TIE.[Date], '') AS [Date], RTRIM(ISNULL(TIE.[Comment], '')) AS [Comment], ISNULL(TIE.[Time], 0) AS [Time], ISNULL(TIE.[Charge], 0) AS [Charge] FROM [dbo].[TimeEntry] TIE WHERE ( [TIE].[Matter] LIKE '%' + @SearchText + '%' OR [TIE].[Date] LIKE '%' + @SearchText + '%' OR [TIE].[Comment] LIKE '%' + @SearchText + '%' OR [TIE].[Time] LIKE '%' + @SearchText + '%' OR [TIE].[Charge] LIKE '%' + @SearchText + '%' ) AND TIE.[FeeEarn] = @Handler AND TIE.[TimeOrCharge] = 'T' AND TIE.[Date] >= @STARTOFYEAR AND TIE.[Date] <= @MONTHTODATE AND ISNULL(TIE.[Task], '') <> 'WRI' AND TIE.[Matter] = '~') AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date' THEN [Date] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Time' THEN [Time] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END DESC SELECT * FROM #AdminTimeDayBookforYearTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #AdminTimeDayBookforYearTable END ELSE IF @Function='OSFees' BEGIN IF [dbo].[ISSAM4]() = 0 BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OSFeesSAM3Table FROM (SELECT MAT.[Code], MAT.[Description], DTL.[OSFEES] AS [OSFees] FROM [dbo].[matters] MAT INNER JOIN [dbo].[DebtorsLedger] DTL ON DTL.[MATTER] = MAT.[Code] AND DTL.[OSValue] > 0 WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [DTL].[OSFEES] LIKE ''%' + @SearchText + '%'' ) ) AND MAT.[FECode] = @Handler) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #OSFeesSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #OSFeesSAM3Table' END ELSE BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OSFeesSAM4Table FROM (SELECT MAT.[Code] AS [Code], ISNULL(MAT.[Description], '''') AS [Description], ISNULL(TRN.[FeesOS], 0) AS [OSFees] FROM [dbo].[matters] AS MAT INNER JOIN [dbo].[Transactions] TRN ON TRN.[MatterCode] = MAT.[Code] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [TRN].[FeesOS] LIKE ''%' + @SearchText + '%'' ) ) AND TRN.[Posted] = ''Y'' AND MAT.[FECode] = @Handler AND TRN.[CorrectionInd] = ''L'' AND TRN.[DebtorsValueOS] > 0 AND ((TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'') OR (TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #OSFeesSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #OSFeesSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END ELSE IF @Function='DebtorDays' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #DebtorDaysSAM3Table FROM (SELECT MAT.[Code], ISNULL(MAT.[Description], '''') AS [Description], DTL.[DATE] AS [TransDate], ISNULL(CASE WHEN DTL.[DATE] IS NULL THEN 0 WHEN DTL.[DATE] > @GETDATE THEN 0 WHEN DTL.[OSVALUE] = 0 THEN 0 ELSE DATEDIFF(Day, DTL.[DATE], @GETDATE) END, 0) AS [DebtorDays], ISNULL(CASE WHEN DTL.[DATE] IS NULL THEN 0 WHEN DTL.[DATE] > @GETDATE THEN 0 WHEN DTL.[OSVALUE] = 0 THEN 0 ELSE 1 END, 0) AS [DebtorEntries] FROM [dbo].[matters] MAT INNER JOIN [dbo].[DebtorsLedger] DTL ON DTL.[MATTER] = MAT.[Code] AND DTL.[OSValue] > 0 WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [DTL].[DATE] LIKE ''%' + @SearchText + '%'' OR [DTL].[OSVALUE] LIKE ''%' + @SearchText + '%'' ) ) AND MAT.[FECode] = @Handler) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #DebtorDaysSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #DebtorDaysSAM3Table' END ELSE BEGIN SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #DebtorDaysSAM4Table FROM (SELECT MAT.[Code], ISNULL(MAT.[Description], '''') AS [Description], TRN.[TransDate] AS [TransDate], ISNULL(CASE WHEN TRN.[TransDate] IS NULL THEN 0 WHEN TRN.[TransDate] > @GETDATE THEN 0 WHEN TRN.[DebtorsValueOS] = 0 THEN 0 ELSE DATEDIFF(Day, TRN.[TransDate], @GETDATE) END, 0) AS [DebtorDays], ISNULL(CASE WHEN TRN.[TransDate] IS NULL THEN 0 WHEN TRN.[TransDate] > @GETDATE THEN 0 WHEN TRN.[DebtorsValueOS] = 0 THEN 0 ELSE 1 END, 0) AS [DebtorEntries] FROM [dbo].[matters] AS MAT INNER JOIN [dbo].[Transactions] TRN ON MAT.[Code] = TRN.[MatterCode] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [TRN].[TransDate] LIKE ''%' + @SearchText + '%'' OR [TRN].[DebtorsValueOS] LIKE ''%' + @SearchText + '%'' ) ) AND TRN.[Posted] = ''Y'' AND MAT.[FECode] = @Handler AND TRN.[CorrectionInd] = ''L'' AND ((TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'') OR (TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D'')) AND TRN.[DebtorsValueOS] > 0) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #DebtorDaysSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #DebtorDaysSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @GETDATE DateTime, @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @GETDATE = @GETDATE, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END ELSE IF @Function='DraftInvoices' BEGIN IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #DraftInvoiceSAM3Table FROM (SELECT MAT.[Code], MAT.[Description], BIH.[DATE] AS [Date], (ISNULL(BID.[Fee], 0) + ISNULL(BID.[Outlay], 0) + ISNULL(BID.[MiscOutlay], 0) + ISNULL(BID.[VAT], 0)) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [Total], ISNULL(BID.[Fee], 0) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [Fee], ISNULL(BID.[Outlay], 0) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [Outlay], ISNULL(BID.[MiscOutlay], 0) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [MiscOutlay], ISNULL(BID.[VAT], 0) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [VAT] FROM [dbo].[matters] AS MAT INNER JOIN [dbo].[BillHeader] AS BIH ON MAT.[Code] = BIH.[MATTER] LEFT OUTER JOIN (SELECT BID.[DRAFTNO], SUM(CASE WHEN BID.[TYPE] = ''F'' THEN BID.[NET] ELSE 0 END) AS [Fee], SUM(CASE WHEN BID.[TYPE] = ''O'' THEN BID.[NET] ELSE 0 END) AS [Outlay], SUM(CASE WHEN BID.[TYPE] = ''M'' THEN BID.[NET] ELSE 0 END) AS [MiscOutlay], SUM(BID.[VATVALUE]) AS [VAT] FROM [dbo].[BillDetails] AS BID GROUP BY BID.[DRAFTNO]) AS BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [BIH].[DATE] LIKE ''%' + @SearchText + '%'' ) ) AND BIH.[BILLNO] = 0 AND MAT.[FECode] = @Handler) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #DraftInvoiceSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #DraftInvoiceSAM3Table' END ELSE BEGIN SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #DraftInvoiceSAM4Table FROM (SELECT MAT.[Code], MAT.[Description], BH.[BillDate] AS [Date], (ISNULL(BD.[Fee], 0) + ISNULL(BD.[Outlay], 0) + ISNULL(BD.[MiscOutlay], 0) + ISNULL(BD.[VAT], 0)) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [Total], ISNULL(BD.[Fee], 0) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [Fee], ISNULL(BD.[Outlay], 0) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [Outlay], ISNULL(BD.[MiscOutlay], 0) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [MiscOutlay], ISNULL(BD.[VAT], 0) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [VAT] FROM [dbo].[matters] AS MAT INNER JOIN [dbo].[Billhead] AS BH ON MAT.[Code] = BH.[MatterCode] LEFT OUTER JOIN (SELECT BD.[BillID], SUM(CASE WHEN BD.[RecordType] = ''F'' THEN BD.[NetValue] ELSE 0 END) AS [Fee], SUM(CASE WHEN BD.[RecordType] = ''O'' THEN BD.[NetValue] ELSE 0 END) AS [Outlay], SUM(CASE WHEN BD.[RecordType] = ''M'' THEN BD.[NetValue] ELSE 0 END) AS [MiscOutlay], SUM(BD.[VatValue]) AS [VAT] FROM [dbo].[BillDetail] AS BD GROUP BY BD.[BillID]) AS BD ON BH.[BillingID] = BD.[BillID] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[Code] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [BH].[BillDate] LIKE ''%' + @SearchText + '%'' ) ) AND BH.[BillStatus] <> ''Approved'' AND MAT.[FECode] = @Handler) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #DraftInvoiceSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #DraftInvoiceSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardCreateUserPanel' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardCreateUserPanel] END GO CREATE PROCEDURE KAAS_DashboardCreateUserPanel (@panelid int , @handlercode varchar(10)) AS /******************************************************************************************************* * Create a new user Panel. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardCreateUserPanel] * * * * Modification History : * * 2019-05-15 Vinodhan K Created * *******************************************************************************************************/ BEGIN INSERT INTO [UserPanels] (handlercode, panelid, panelname, parentpanel) SELECT @handlercode, panelid, panelname, null FROM [Panels] WHERE panelid=@panelid; SELECT TOP 1 up.userpanelid, up.panelid, up.panelname, up.parentpanel, p.width FROM [Panels] p LEFT JOIN [UserPanels] up ON p.panelid = up.panelid WHERE p.panelid=@panelid ORDER BY up.userpanelid DESC END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardDeleteUserPanel' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardDeleteUserPanel] END GO CREATE PROCEDURE KAAS_DashboardDeleteUserPanel (@userPanelId int) AS /******************************************************************************************************* * Delete the selected user Panel. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardDeleteUserPanel] * * * * Modification History : * * 2019-05-16 Vinodhan K Created * *******************************************************************************************************/ BEGIN DELETE FROM [UserPanels] WHERE userpanelid = @userPanelId OR ParentPanel = @userPanelId END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardDeleteUserWidget' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardDeleteUserWidget] END GO CREATE PROCEDURE KAAS_DashboardDeleteUserWidget (@userWidgetId int) AS /******************************************************************************************************* * Delete the selected user Widget. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardDeleteUserWidget] * * * * Modification History : * * 2019-05-16 Vinodhan K Created * *******************************************************************************************************/ BEGIN DELETE FROM [UserWidgets] WHERE UserWidgetsId = @userWidgetId END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardGetAllPanels' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardGetAllPanels] END GO CREATE PROCEDURE KAAS_DashboardGetAllPanels( @DashboardType varchar(20)) AS /******************************************************************************************************* * Fetch all the Panels. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardGetAllPanels] * * * * Modification History : * * 2019-05-15 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT [PanelId], [PanelName], [Description], [DashboardType], [Width] FROM [Panels] WHERE DashboardType = @DashboardType END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardGetAllUserAllowedWidgets' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardGetAllUserAllowedWidgets] END GO CREATE PROCEDURE KAAS_DashboardGetAllUserAllowedWidgets (@userPanelId int) AS /******************************************************************************************************* * Fetches all the user allowed widgets. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardGetAllUserAllowedWidgets] * * * * Modification History : * * 2019-05-16 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT DISTINCT w.widgetId, w.widgetName, w.description, w.templateId FROM [Widgets] w LEFT JOIN [PanelWidgetAssociation] pwa ON w.WidgetId = pwa.WidgetId LEFT JOIN [UserPanels] up ON pwa.PanelId = up.PanelId WHERE up.userPanelId=@userPanelId END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardGetAllUserPanelData' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardGetAllUserPanelData] END GO CREATE PROCEDURE KAAS_DashboardGetAllUserPanelData ( @handlerCode varchar(10), @DashboardType varchar(20) ) AS /******************************************************************************************************* * Get all User Panel's Widgets and Child Panels. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardGetAllUserPanelData] * * * * Modification History : * * 2019-05-20 Vinodhan K Created * *******************************************************************************************************/ BEGIN ;WITH FirstLevel AS ( SELECT UP.UserPanelId, UP.HandlerCode, UP.PanelId, UP.PanelName, UP.ParentPanel ,P.Description,P.DashboardType,P.Width FROM [UserPanels] UP LEFT JOIN [Panels] P ON UP.PanelId=P.PanelId WHERE Handlercode = @handlerCode AND ParentPanel IS NULL AND P.DashboardType=@DashboardType ), SecondLevel AS ( SELECT UP.UserPanelId, UP.HandlerCode,UP.PanelId, UP.PanelName, 0 AS ParentPanel,UP.Description,UP.DashboardType,UP.Width FROM FirstLevel UP UNION ALL SELECT u1.UserPanelId, u1.HandlerCode,u1.PanelId, u1.PanelName, sl.UserPanelId ,p1.Description,p1.DashboardType,p1.Width FROM UserPanels u1 INNER JOIN Panels p1 ON u1.PanelId=p1.PanelId INNER JOIN SecondLevel sl ON u1.ParentPanel = sl.UserPanelId )SELECT * FROM SecondLevel ORDER BY ParentPanel ;WITH FirstLevel AS ( SELECT UP.UserPanelId, UP.HandlerCode, UP.PanelId, UP.PanelName, UP.ParentPanel ,P.Description,P.DashboardType,P.Width FROM [UserPanels] UP LEFT JOIN [Panels] P ON UP.PanelId=P.PanelId WHERE Handlercode = @handlerCode AND ParentPanel IS NULL AND P.DashboardType=@DashboardType ), SecondLevel AS ( SELECT UP.UserPanelId, UP.HandlerCode,UP.PanelId, UP.PanelName, 0 AS ParentPanel,UP.Description,UP.DashboardType,UP.Width FROM FirstLevel UP UNION ALL SELECT u1.UserPanelId, u1.HandlerCode,u1.PanelId, u1.PanelName, sl.UserPanelId ,p1.Description,p1.DashboardType,p1.Width FROM UserPanels u1 INNER JOIN Panels p1 ON u1.PanelId=p1.PanelId INNER JOIN SecondLevel sl ON u1.ParentPanel = sl.UserPanelId )SELECT UW.UserWidgetsId, UW.UserPanelId, UW.WidgetId, UW.WidgetData, W.WidgetName, W.Description AS WidgetDescription, W.TemplateId FROM [UserWidgets] UW LEFT JOIN [Widgets] W ON UW.WidgetId=W.WidgetId WHERE UW.UserPanelId IN (SELECT UserPanelId FROM SecondLevel) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardGetSingleUserPanelData' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardGetSingleUserPanelData] END GO CREATE PROCEDURE KAAS_DashboardGetSingleUserPanelData ( @handlerCode varchar(10), @userPanelId int ) AS /******************************************************************************************************* * Get Single User Panel's Widgets and Child Panels. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardGetSingleUserPanelData] * * * * Modification History : * * 2019-05-20 Vinodhan K Created * *******************************************************************************************************/ BEGIN ;WITH FirstLevel AS ( SELECT UP.UserPanelId, UP.HandlerCode, UP.PanelId, UP.PanelName, UP.ParentPanel, P.Description, P.DashboardType, P.Width FROM [UserPanels] UP LEFT JOIN [Panels] P ON UP.PanelId=P.PanelId WHERE Handlercode = @handlerCode AND UserPanelId=@userPanelId ), SecondLevel AS ( SELECT UP.UserPanelId, UP.HandlerCode, UP.PanelId, UP.PanelName, 0 AS ParentPanel, UP.Description, UP.DashboardType, UP.Width FROM FirstLevel UP UNION ALL SELECT U1.UserPanelId, U1.HandlerCode, U1.PanelId, U1.PanelName, SL.UserPanelId, P1.Description, P1.DashboardType, P1.Width FROM UserPanels U1 INNER JOIN Panels P1 ON U1.PanelId=P1.PanelId INNER JOIN SecondLevel SL ON U1.ParentPanel = SL.UserPanelId WHERE SL.UserPanelId=@userPanelId )SELECT * FROM SecondLevel ORDER BY ParentPanel ;WITH FirstLevel AS ( SELECT UP.UserPanelId, UP.HandlerCode, UP.PanelId, UP.PanelName, UP.ParentPanel, P.Description, P.DashboardType, P.Width FROM [UserPanels] UP LEFT JOIN [Panels] P ON UP.PanelId=P.PanelId WHERE Handlercode = @handlerCode AND UserPanelId=@userPanelId ), SecondLevel AS ( SELECT UP.UserPanelId, UP.HandlerCode, UP.PanelId, UP.PanelName, 0 AS ParentPanel, UP.Description, UP.DashboardType, UP.Width FROM FirstLevel UP UNION ALL SELECT U1.UserPanelId, U1.HandlerCode, U1.PanelId, U1.PanelName, SL.UserPanelId, P1.Description, P1.DashboardType, P1.Width FROM UserPanels U1 INNER JOIN Panels P1 ON U1.PanelId=P1.PanelId INNER JOIN SecondLevel SL ON U1.ParentPanel = SL.UserPanelId WHERE SL.UserPanelId=@userPanelId )SELECT UW.UserWidgetsId, UW.UserPanelId, UW.WidgetId, UW.WidgetData, W.WidgetName, W.Description AS WidgetDescription, W.TemplateId FROM [UserWidgets] UW LEFT JOIN [Widgets] W ON UW.WidgetId=W.WidgetId WHERE UW.UserPanelId IN (SELECT UserPanelId FROM SecondLevel) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardGetWidgetData' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardGetWidgetData] END GO CREATE PROCEDURE [dbo].[KAAS_DashboardGetWidgetData] ( @handlerCode VARCHAR(10), @fromdate DATETIME=NULL, @todate DATETIME=NULL, @userWidgetId INT, @CaseCode VARCHAR(20)=NULL ) AS /******************************************************************************************************* * Fetches the Widget data. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardGetWidgetData] * * * * Modification History : * * 2019-05-16 Vinodhan K Created * * 2019-06-02 Vinodhan K Added a paramter CaseCode For CaseDiary Dashboard * * 2019-01-10 Ganapathy T Joined with [AppRedirectionUrls] table * * * *******************************************************************************************************/ BEGIN DECLARE @widgetData VARCHAR(MAX) SELECT uw.UserWidgetsId, uw.UserPanelId, uw.WidgetId, w.WidgetName, w.Description AS WidgetDescription, w.TemplateId, w.WidgetData, ui.TemplateName, A.urlLink AS [RedirectionUrl], w.RedirectionFilter FROM [UserWidgets] uw LEFT JOIN [Widgets] w ON uw.WidgetId = w.WidgetId LEFT JOIN [UITemplates] ui ON w.TemplateId=ui.TemplateId LEFT JOIN [AppRedirectionUrls] A ON A.UrlId = w.ReDirectionUrlId WHERE uw.UserWidgetsId=@userWidgetId; SET @fromdate=CASE WHEN @fromdate is null THEN GETUTCDATE() END SET @todate=CASE WHEN @todate is null THEN GETUTCDATE() END EXEC [KAAS_TemplateQueryExecutor] @handlerCode,@fromdate,@todate,@userWidgetId,@CaseCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_Dashboardmaxlimit' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_Dashboardmaxlimit] END GO CREATE PROCEDURE [dbo].[KAAS_Dashboardmaxlimit] (@HANDLER NVARCHAR(10))--@HANDLER MUST be NVARCHAR as it's defined as such in [dbo].[UserSettings] AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_Dashboardmaxlimit] * * Copied from : [dbo].[Ky_NETDashboardmaxlimit] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @TIMEDAYBOOKLIMIT DECIMAL(18, 2) DECLARE @TIMEDAYBOOKLIMITHR VARCHAR(20) DECLARE @TIMEFORWEEK DECIMAL(18, 2) DECLARE @TIMEFORWEEKHR VARCHAR(20) DECLARE @TIMEFORMONTH DECIMAL(18, 2) DECLARE @TIMEFORMONTHHR VARCHAR(20) DECLARE @TIMEFORYEAR DECIMAL(18, 2) DECLARE @TIMEFORYEARHR VARCHAR(20) DECLARE @TIMEYTD DECIMAL(18, 2) DECLARE @TIMEYTDHR VARCHAR(20) DECLARE @NCTIMEFORMONTH DECIMAL(18, 2) DECLARE @NCTIMEFORMONTHHR VARCHAR(20) DECLARE @NCTIMEFORYEAR DECIMAL(18, 2) DECLARE @NCTIMEFORYEARHR VARCHAR(20) DECLARE @FEESISSUEDCURMONTH DECIMAL(18, 2) DECLARE @FEESISSUEDLASTMONTH DECIMAL(18, 2) DECLARE @FEESISSUEDYTD DECIMAL(18, 2) DECLARE @FEESISSUEDLASTYTD DECIMAL(18, 2) DECLARE @FEESISSUEDLASTYEAR DECIMAL(18, 2) DECLARE @OSINVOICELIMIT DECIMAL(18, 2) DECLARE @CURRENTWIPLIMIT DECIMAL(18, 2) DECLARE @DRAFTINVOICELIMIT DECIMAL(18, 2) DECLARE @YEAR INT DECLARE @PERIOD INT -- Get the financial year and period from the KPI, if not there then control, if not there then use now. IF [dbo].[ISSAM4]() = 0 BEGIN SELECT @YEAR = ISNULL(KPI.[Year], ISNULL(CON.[YEAR], YEAR(GETDATE()))) FROM [dbo].[KPIParameters] AS KPI OUTER APPLY [dbo].[control] AS CON SELECT @PERIOD = ISNULL(KPI.[Period], ISNULL(CON.[CURPER], MONTH(GETDATE()))) FROM [dbo].[KPIParameters] AS KPI OUTER APPLY [dbo].[control] AS CON END ELSE BEGIN SELECT @YEAR = ISNULL(KPI.[Year], ISNULL(CON.[NumValue], YEAR(GETDATE()))) FROM [dbo].[KPIParameters] AS KPI OUTER APPLY (SELECT TOP 1 NUM.[NumValue] FROM [dbo].[CtrlNum] AS NUM WHERE NUM.[Code] = 'CurYear') AS CON SELECT @PERIOD = ISNULL(KPI.[Period], ISNULL(CON.[NumValue], MONTH(GETDATE()))) FROM [dbo].[KPIParameters] AS KPI OUTER APPLY (SELECT TOP 1 NUM.[NumValue] FROM [dbo].[CtrlNum] AS NUM WHERE NUM.[Code] = 'CurPeriod') AS CON END -- This is very unwieldy but not much choice when converting time values stored as strings into time formats (7.5 -> 07:30) SELECT @TIMEDAYBOOKLIMIT = 60.0 * CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END), @TIMEDAYBOOKLIMITHR = CONVERT(VARCHAR(5), DATEADD(SECOND, 3600.0 * CONVERT(DECIMAL(18, 2), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END), 0), 108), @TIMEFORWEEK = 60.0 * CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END) * 5.0, @TIMEFORWEEKHR = RIGHT('00' + CONVERT(VARCHAR, FLOOR(CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END) * 5.0)), 2) + ':' + RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (60.0 * CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END) * 5.0) % 60.0)), 2), 2) FROM [dbo].[UserSettings] AS US WHERE US.[Handler] = @HANDLER AND UPPER(RTRIM(US.[Key])) = 'TIMEDAYBOOKLIMIT' SELECT @OSINVOICELIMIT = CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END) FROM [dbo].[UserSettings] AS US WHERE US.[Handler] = @HANDLER AND UPPER(RTRIM(US.[Key])) = 'OSINVOICELIMIT' SELECT @DRAFTINVOICELIMIT = CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END) FROM [dbo].[UserSettings] AS US WHERE US.[Handler] = @HANDLER AND UPPER(RTRIM(US.[Key])) = 'DRAFTINVOICELIMIT' SELECT @CURRENTWIPLIMIT = CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END) FROM [dbo].[UserSettings] AS US WHERE US.[Handler] = @HANDLER AND UPPER(RTRIM(US.[Key])) = 'CURRENTWIPLIMIT' SELECT @TIMEFORMONTH = CASE WHEN FLOOR((SUM(ISNULL(BDG.[ChargableTimeBudget], 0))) * 60.0) < 10 THEN RIGHT('00' + FLOOR((SUM(ISNULL(BDG.[ChargableTimeBudget], 0))) * 60.0), 2) ELSE FLOOR((SUM(ISNULL(BDG.[ChargableTimeBudget], 0))) * 60.0) END, @TIMEFORMONTHHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[ChargableTimeBudget], 0)))) + ':' + RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2), @NCTIMEFORMONTH = FLOOR((SUM(ISNULL(BDG.[NonChargableTimeBudget], 0))) * 60.0), @NCTIMEFORMONTHHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)))) + ':' + RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2), @FEESISSUEDCURMONTH = SUM(ISNULL(BDG.[FeesBudget], 0)) FROM [dbo].[HandlerBudgets] AS BDG WHERE BDG.[HANDLER] = @HANDLER AND BDG.[MONTH] = @PERIOD AND BDG.[YEAR] = @YEAR SELECT @FEESISSUEDLASTMONTH = FLOOR(SUM(ISNULL(BDG.[FeesBudget], 0))) FROM [dbo].[HandlerBudgets] AS BDG WHERE BDG.[Handler] = @HANDLER AND BDG.[Month] = CASE WHEN @PERIOD - 1 = 0 THEN 12 ELSE @PERIOD END AND BDG.[Year] = CASE WHEN @PERIOD - 1 = 0 THEN @YEAR - 1 ELSE @YEAR END SELECT @FEESISSUEDYTD = FLOOR(SUM(BDG.[FeesBudget])), @TIMEYTD = SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0, @TIMEYTDHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0)) + ':' + RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2) FROM [dbo].[HandlerBudgets] AS BDG WHERE BDG.[Handler] = @HANDLER AND BDG.[Month] <= @PERIOD AND BDG.[Year] = @YEAR SELECT @TIMEFORYEAR = FLOOR(SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0), @TIMEFORYEARHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[ChargableTimeBudget], 0)))) + ':' + RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2), @NCTIMEFORYEAR = FLOOR(SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)) * 60.0), @NCTIMEFORYEARHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)))) + ':' + RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2) FROM [dbo].[HandlerBudgets] AS BDG WHERE BDG.[Handler] = @HANDLER AND BDG.[Year] = @YEAR SELECT @FEESISSUEDLASTYTD = FLOOR(SUM(ISNULL(CASE WHEN BDG.[Month] <= @PERIOD THEN BDG.[FeesBudget] ELSE 0 END, 0))), @FEESISSUEDLASTYEAR = FLOOR(SUM(ISNULL(BDG.[FeesBudget], 0))) FROM [dbo].[HandlerBudgets] AS BDG WHERE BDG.[Handler] = @HANDLER AND BDG.[Year] = @YEAR - 1 SELECT ISNULL(@TIMEDAYBOOKLIMIT,0) AS [TIMEDAYBOOKLIMIT], ISNULL(@TIMEFORWEEK ,0) AS [TIMEFORWEEK], ISNULL(@TIMEFORMONTH ,0) AS [TIMEFORMONTH], ISNULL(@TIMEFORYEAR, 0) AS [TIMEFORYEAR], ISNULL(@NCTIMEFORMONTH, 0) AS [NCTIMEFORMONTH], ISNULL(@NCTIMEFORYEAR, 0) AS [NCTIMEFORYEAR], ISNULL(@TIMEYTD, 0) AS [TIMEYTD], REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDCURMONTH, 0), 0), 1), '.00', '') AS [FEESISSUEDCURMONTH], REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDLASTMONTH, 0), 0), 1), '.00', '') AS [FEESISSUEDLASTMONTH], REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDYTD, 0), 0), 1), '.00', '') AS [FEESISSUEDYTD], REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDLASTYTD, 0), 0), 1), '.00', '') AS [FEESISSUEDLASTYTD], REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDLASTYEAR, 0), 0), 1), '.00', '') AS [FEESISSUEDLASTYEAR], REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@OSINVOICELIMIT, 0), 0), 1), '.00', '') AS [OSINVOICELIMIT], REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@CURRENTWIPLIMIT, 0), 0), 1), '.00', '') AS [CURRENTWIPLIMIT], REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@DRAFTINVOICELIMIT, 0), 0), 1), '.00', '') AS [DRAFTINVOICELIMIT], ISNULL(@TIMEDAYBOOKLIMITHR, '00:00') AS [TIMEDAYBOOKLIMITHR], ISNULL(@TIMEFORWEEKHR, '00:00') AS [TIMEFORWEEKHR], ISNULL(@TIMEFORMONTHHR, '00:00') AS [TIMEFORMONTHHR], ISNULL(@TIMEFORYEARHR, '00:00') AS [TIMEFORYEARHR], ISNULL(@NCTIMEFORMONTHHR, '00:00') AS [NCTIMEFORMONTHHR], ISNULL(@NCTIMEFORYEARHR, '00:00') AS [NCTIMEFORYEARHR], ISNULL(@TIMEYTDHR, '00:00') AS [TIMEYTDHR] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DashboardUpdatePanelName' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DashboardUpdatePanelName] END GO CREATE PROCEDURE KAAS_DashboardUpdatePanelName (@userPanelId int , @panelName varchar(50)) AS /******************************************************************************************************* * Update the name of the user Panel. * * * * Stored Procedure Name : [dbo].[KAAS_DashboardUpdatePanelName] * * * * Modification History : * * 2019-05-16 Vinodhan K Created * *******************************************************************************************************/ BEGIN UPDATE [UserPanels] SET panelname = @panelName WHERE userpanelid = @userPanelId END GO IF OBJECT_ID(N'KAAS_DeleteAction',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_DeleteAction] GO CREATE PROCEDURE [dbo].[KAAS_DeleteAction] ( @ACTIONID INT, @HANDLERCODE VARCHAR(10) , @IsAddAction BIT, @IsDraftInvoice BIT = 0 ) /******************************************************************************************************* * This procedure is used Delete an Action from the Case Diary. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteAction] * * Copied from : [dbo].[ky_NETAADelete] * * * * Modification History : * * 2019-04-22 Vinodhan K Created * 2021-03-17 Sadiq Added condition to check Config settings @AllowUserToDeleteAction from * Settings Table and returning Error if @AllowUserToDeleteAction is false* * 2021-03-18 Sadiq Need to delete Action if user cancels delete action * * 2022-02-23 Arun Log the diary attachment delete * * 2024-03-13 Pino Carafa Handle the absence of triggers * * Please use the following Aliases for the [deletedrow]: * * [dbo].[diary] - [Diary] * * [dbo].[DiaryAttachments] - [DiaryAttachments] * * [dbo].[DiaryDelegations] - [DiaryDelegations] * * 2024-05-16 Balamurugan.C Added @IsDraftInvoice parameter to restrict other * user action delete validation * *******************************************************************************************************/ AS BEGIN DECLARE @Error VARCHAR(200) DECLARE @NCOMMAND nvarchar(MAX) DECLARE @AllowUserToDeleteOthersAction BIT; DECLARE @AllowUserToDeleteAction BIT; DECLARE @Loginame NVARCHAR(128) SELECT @Loginame = RTRIM([P].[loginame]) FROM sys.sysprocesses [P] WHERE [P].[spid] = @@SPID --2024-03-13 SET NOCOUNT ON IF(@IsDraftInvoice = 0) BEGIN IF @IsAddAction = 0 BEGIN SELECT @AllowUserToDeleteAction = (CASE WHEN [SET].[KeyValue] = '1' THEN 1 ELSE 0 END) FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'AllowToDeleteAction' SET @AllowUserToDeleteAction = ISNULL(@AllowUserToDeleteAction, 0);-- If null '0', So that, Settings screen data and functionality is matched IF @AllowUserToDeleteAction = 0 BEGIN SELECT 'you are not allowed to delete this action.!' RETURN; END END SELECT @AllowUserToDeleteOthersAction = (CASE WHEN [SET].[KeyValue] = '1' THEN 1 ELSE 0 END) FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'AllowToDeleteOtherAction' SET @AllowUserToDeleteOthersAction = ISNULL(@AllowUserToDeleteOthersAction, 0);-- If null '0', So that, Settings screen data and functionality is matched IF @AllowUserToDeleteOthersAction = 0 BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM diary WHERE ACTIONID = @ACTIONID AND FNCODE = @HANDLERCODE) BEGIN SELECT 'You are not allowed to delete other user action!' RETURN; END END END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' IF EXISTS (SELECT TOP 1 1 FROM [dbo].[BillHeader] BH WHERE BH.[RELEASED] = ''Y'' AND BH.[BILLNO] <> 0 AND BH.[ACTIONID] = ' + CONVERT(NVARCHAR(10), @ActionID) + N') BEGIN SET @Error = ''You cannot delete a Draft Bill Action.'' END ELSE BEGIN SET @Error = NULL END' EXECUTE sp_executesql @NCOMMAND, N'@ActionID INT,@Error VARCHAR(200) OUTPUT', @ActionID = @ActionID, @Error=@Error OUTPUT END ELSE BEGIN SET @NCOMMAND = N' IF EXISTS (SELECT TOP 1 1 FROM [dbo].[diary] DIA INNER JOIN [dbo].[Billhead] BH ON BH.[BillingID] = DIA.[DRAFTBILLNO] AND BH.[InvoiceNo] <> 0 WHERE DIA.[ACTIONID] = ' + CONVERT(NVARCHAR(10), @ActionID) + N') BEGIN SET @Error = ''You cannot delete a Draft Bill Action.'' END ELSE BEGIN SET @Error = NULL END' EXECUTE sp_executesql @NCOMMAND, N'@ActionID INT,@Error VARCHAR(200) OUTPUT', @ActionID = @ActionID, @Error=@Error OUTPUT END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' IF EXISTS (SELECT TOP 1 1 FROM [dbo].[diary] DIA INNER JOIN [dbo].[ChequeRequisitionHeader] CRH ON CRH.[REQNO] = DIA.[CHEQUEREQNO] AND CRH.[REQNO] <> 0 AND CRH.[Status] = 2 WHERE DIA.[ACTIONID] = ' + CONVERT(NVARCHAR(10), @ActionID) + N') BEGIN SET @Error = ''You cannot delete an approved Cheque.'' END ELSE BEGIN SET @Error = NULL END' EXECUTE sp_executesql @NCOMMAND, N'@ActionID INT,@Error VARCHAR(200) OUTPUT', @ActionID = @ActionID, @Error=@Error OUTPUT END ELSE BEGIN SET @NCOMMAND = N' IF EXISTS (SELECT TOP 1 1 FROM [dbo].[diary] DIA INNER JOIN [dbo].[ChequeRequisitions] CRQ ON CRQ.[RecordID] = DIA.[CHEQUEREQNO] AND CRQ.[RecordID] <> 0 AND CRQ.[ChequeStatus] = ''Approved'' WHERE DIA.[ACTIONID] = ' + CONVERT(NVARCHAR(10), @ActionID) + N') BEGIN SET @Error = ''You cannot delete an approved Cheque.'' END ELSE BEGIN SET @Error = NULL END' EXECUTE sp_executesql @NCOMMAND, N'@ActionID INT,@Error VARCHAR(200) OUTPUT', @ActionID = @ActionID, @Error=@Error OUTPUT END IF (@Error IS NULL) BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[diary] DIA WHERE DIA.[STATUS] = 1 AND DIA.[ACTIONID] = @ACTIONID) BEGIN SET @Error = 'You cannot delete ANY Complete Action' END END IF (@Error IS NULL) BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[diary] DIA WHERE DIA.[ACTIONTYPE] = 'U' AND DIA.[ACTIONID] = @ACTIONID) BEGIN SET @Error = 'You cannot delete Undertakings Action.' END END IF (@Error IS NULL) BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[diary] DIA WHERE DIA.[ACTIONTYPE] = 'S' AND DIA.[ACTIONID] = @ACTIONID) BEGIN SET @Error = 'You cannot delete a Statute of Limitations Action.' END END IF (@Error IS NULL) BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[diary] DIA WHERE DIA.[ACTIONTYPE] = 'C' AND [ACTIONID] = @ACTIONID) BEGIN SET @Error = 'You cannot delete a Critical Date Action' END END IF (@Error IS NULL) BEGIN IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' IF EXISTS (SELECT TOP 1 1 FROM [dbo].[diary] DIA INNER JOIN [dbo].[BillHeader] BH ON BH.[BILLNO] <> 0 AND BH.[DRAFTNO] = DIA.[DRAFTBILLNO] WHERE DIA.[ACTIONID] = ' + CONVERT(NVARCHAR(10), @ActionID) + N') BEGIN SET @Error = ''You cannot delete a Draft Bill Action.'' END ELSE BEGIN SET @Error = NULL END' END END IF (@Error IS NULL) BEGIN IF EXISTS(SELECT 1 FROM [dbo].[diary] DIA INNER JOIN [dbo].[TemplateActions] TAC ON TAC.[ACTIONCODE] = DIA.[ACTIONCODE] AND TAC.[RequiredAction] = 'Y' WHERE DIA.[ACTIONID] = @ACTIONID) BEGIN SET @Error = 'This is a required action for this case and cannot be removed.' END END IF (@Error IS NULL) BEGIN --Before delete, log the entry in DiaryAttachmentAccess --Step1: Taking Diary attachment track reference id DECLARE @DeletedLog TABLE ( TrackReference INT ) INSERT INTO @DeletedLog SELECT [DAT].TrackReference FROM [dbo].[DiaryAttachments] DAT WHERE DAT.[DiaryID] = @ACTIONID --Step2: Delete entry from Diary Attachment -- 2024-03-13 START (1) IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] WHERE [SO].[name] = 'ky_NETTRDeleteDiaryAttachment' AND [SO].[type] = 'TR') BEGIN INSERT INTO [dbo].[DiaryAttachmentDeletionLog] ([on], [by], [Login], [HandlerCode], [ActionID], [TrackReference], [deletedrow]) SELECT GetDate(), APP_NAME(), @Loginame, @HANDLERCODE, [DEL].[DiaryID], [DEL].[TrackReference], (SELECT * FROM [dbo].[DiaryAttachments] [DiaryAttachments] WHERE [DiaryAttachments].[TrackReference] = [DEL].[TrackReference] FOR XML AUTO) AS [deletedrow] FROM [dbo].[DiaryAttachments] [DEL] WHERE [DEL].[DiaryID] = @ACTIONID INSERT INTO [dbo].[DiaryAttachmentAccess] ([TrackReference], [Handler], [Comment]) SELECT [DEL].[TrackReference], @HANDLERCODE, 'Deleted' FROM [dbo].[DiaryAttachments] [DEL] WHERE [DEL].[DiaryID] = @ACTIONID END -- 2024-03-13 END (1) DELETE DAT FROM [dbo].[DiaryAttachments] DAT WHERE DAT.[DiaryID] = @ACTIONID --Step3: Update Diary attachment entries -2024-03-13 no.... --UPDATE DAT --SET [DAT].Handler = @HANDLERCODE -- FROM [dbo].[DiaryAttachmentAccess] [DAT] -- WHERE [DAT].[Comment] = 'Deleted' -- AND [DAT].TrackReference IN --( --SELECT TrackReference FROM @DeletedLog --) -- 2024-03-13 START (2) IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] WHERE [SO].[name] = 'ky_NETTRDeleteDiaryDelegations' AND [SO].[type] = 'TR') BEGIN INSERT INTO [dbo].[DiaryDelegationDeletionLog] ([on], [by], [Login], [HandlerCode], [deletedrow], [ActionID], [AssignNo]) SELECT GetDate(), APP_NAME(), @Loginame, @HANDLERCODE, (SELECT * FROM [dbo].[DiaryDelegations] [DiaryDelegations] WHERE [DiaryDelegations].[AssignNo] = [DEL].[AssignNo] FOR XML AUTO) AS [deletedrow], [DEL].[ActionID], [DEL].[AssignNo] FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID END -- 2024-03-13 END (2) DELETE [DEL] FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID DELETE DLK FROM [dbo].[DiaryLinks] DLK WHERE DLK.[ACTIONID] = @ACTIONID DELETE DTM FROM [dbo].[DiaryTemp] DTM WHERE DTM.[ACTIONID] = @ACTIONID DELETE OLA FROM [dbo].[OLApptXref] OLA WHERE OLA.[ACTIONID] = @ACTIONID DECLARE @COMMAND VARCHAR(MAX) DECLARE @DRAFTBILLNO INT SELECT @DRAFTBILLNO = DIA.[DRAFTBILLNO] FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @ACTIONID IF ISNULL(@DRAFTBILLNO, 0) > 0 BEGIN DECLARE @SQL NVARCHAR(MAX) SET @SQL = 'EXEC [dbo].[KAAS_DeleteDraftBillOnly{SAM4}] ' + CONVERT(VARCHAR(10), @DRAFTBILLNO) + ', ''' + @HANDLERCODE + '''' IF [dbo].[ISSAM4]() = 0 BEGIN SET @SQL = REPLACE(@SQL, '{SAM4}', '') END ELSE BEGIN SET @SQL = REPLACE(@SQL, '{SAM4}', 'SAM4') END EXEC sp_executesql @SQL END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitions' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' DELETE CHRQ FROM [dbo].[diary] DIA INNER JOIN [dbo].[ChequeRequisitions] CHRQ ON CHRQ.[RecordId] = DIA.[CHEQUEREQNO] WHERE DIA.[ACTIONID] = ' + CONVERT(VARCHAR(10), @ACTIONID) EXEC (@COMMAND) END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitionDetail' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' DELETE CHRD FROM [dbo].[diary] DIA INNER JOIN [dbo].[ChequeRequisitionDetail] CHRD ON CHRD.[REQNO] = DIA.[CHEQUEREQNO] WHERE DIA.[ACTIONID] = ' + CONVERT(VARCHAR(10), @ACTIONID) EXEC (@COMMAND) END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitionHeader' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' DELETE CHRH FROM [dbo].[diary] DIA INNER JOIN [dbo].[ChequeRequisitionHeader] CHRH ON CHRH.[REQNO] = DIA.[CHEQUEREQNO] WHERE DIA.[ACTIONID] = ' + CONVERT(VARCHAR(10), @ACTIONID) EXEC (@COMMAND) END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitionLog' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' DELETE CRL FROM [dbo].[diary] AS DIA INNER JOIN [ChequeRequisitionLog] AS CRL ON CRL.[ID] = DIA.[CHEQUEREQNO] WHERE DIA.[ACTIONID] = ' + CONVERT(VARCHAR(10), @ACTIONID) EXEC (@COMMAND) END EXEC [dbo].[KAAS_UpdateActionAlarm] @ACTIONID -- 2024-03-13 START (3) IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] WHERE [SO].[name] = 'ky_NETTRDeleteDiary' AND [SO].[type] = 'TR') BEGIN INSERT INTO [dbo].[DiaryDeletionLog] ([on], [by], [Login], [HandlerCode], [ActionId], [CASECODE], [deletedrow]) SELECT GetDate(), APP_NAME(), @Loginame, @HANDLERCODE, [DEL].[ActionID], [DEL].[CASECODE], (SELECT * FROM [dbo].[diary] [Diary] WHERE [Diary].[ActionID] = [DEL].[ActionID] FOR XML AUTO) AS [deletedrow] FROM [dbo].[diary] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID END -- 2024-03-13 END (3) DELETE DIA FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @ACTIONID SELECT 'True' END ELSE BEGIN SELECT @Error END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DeleteAllClientChargeOutRates',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteAllClientChargeOutRates] GO CREATE PROCEDURE [dbo].[KAAS_DeleteAllClientChargeOutRates] ( @ClientCode VARCHAR(20), @Result INT OUTPUT) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_DeleteAllClientChargeOutRates] * * Copied from : NA * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DELETE FROM ClientChargeOutRates WHERE CLIENTCODE = @ClientCode SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DeleteAllMatterChargeOutRates',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteAllMatterChargeOutRates] GO CREATE PROCEDURE [dbo].[KAAS_DeleteAllMatterChargeOutRates] ( @MatterCode VARCHAR(20), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to delete all the matter charge out rates. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteAllMatterChargeOutRates] * * Copied from : NA * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DELETE FROM MatterChargeOutRates WHERE MatterCode = @MatterCode SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_DeleteAssociateContact]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteAssociateContact] GO CREATE PROCEDURE [KAAS_DeleteAssociateContact] ( @KeyId VARCHAR(20) ,@Code VARCHAR(20) ,@Result INT OUTPUT ) AS /******************************************************************************************************* * This procedure is used delete Case Associate.CaseAssoicatesContact * * * * Stored Procedure Name : [dbo].[KAAS_DeleteAssociateContact] * * Copied from : [dbo].[ky_NETDeleteAssociateContact] * * * * Modification History : * * 2019-06-03 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM CaseAssociatesContacts WHERE NAMECODE = @Code AND KEYID = @KeyId)IS NOT NULL BEGIN DELETE FROM CaseAssociatesContacts WHERE NAMECODE = @Code AND KEYID = @KeyId SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteAssociateDocument' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteAssociateDocument] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteAssociateDocument] (@ActionID VARCHAR(15), @Document VARCHAR(10)) /************************************************************************************************ * This procedure is used Delete the information for work flow Associate Page * * * * Stored Procedure Name : [dbo].[KAAS_DeleteAssociateDocument] * * Copied from : [dbo].[Ky_NetDeleteAssociateAction] * * * * Modification History : * * 2023-06-26 Nithyanandham M Created * ************************************************************************************************/ AS BEGIN SET NOCOUNT ON DELETE [TAD] FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ActionID AND [TAD].[DOCUMENT] = @Document EXEC [dbo].[ky_NETSPReSequenceTADsForAction] @ActionID SELECT 'True' SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteAssociateProfessional' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteAssociateProfessional] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteAssociateProfessional] (@Code VARCHAR(6), @Type VARCHAR(12), @Result INT OUTPUT) AS /************************************************************************************************************* * * * [dbo].[ky_NETDeleteProfessional] '904385', 'DEFENDANT' * * Deletes a Case Associate Type and its associated Case Associate Name if there are no remaining Types * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * ?????????? ??????????? Created * * 2015-02-12 Arun V. Change NVARCHAR to VARCHAR * * 2016-04-04 Arun V. have added Case Assocaite Type to delte particular associative * * 2017-11-10 Pino Carafa Coding Standards * * Bug: Was deleting Case Associate Contacts even when still keeping the * * Case Associate Name * * 2018-05-17 Pino Carafa KEYD-5253 was NOT deleting Type if ANY CaseContacts existed for ANY type * * 2019-06-03 Arun V Copied from [dbo].[ky_NETDeleteProfessional] * *************************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseContacts] [CC] WHERE [CC].[NAMECODE] = @Code AND ( ISNULL(@TYPE, '') = '' OR [CC].[CONTYPE] = ISNULL(@Type, ''))) BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code) -- if this code exists in the Case Associates Names (if) BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @Code AND [CAT].[TYPECODE] <> @Type) -- can we delete the associated data? BEGIN DELETE [CAC] FROM [dbo].[CaseAssociatesContacts] [CAC] WHERE [CAC].[NAMECODE] = @Code DELETE [CAT] FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @Code AND [CAT].[TYPECODE] = @Type DELETE [CAN] FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code END ELSE -- can we delete the associated data? (else) BEGIN DELETE [CAT] FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @Code AND [CAT].[TYPECODE] = @Type END SET @Result = 1 END ELSE -- if this code exists in the Case Associates Names (else) BEGIN SET @Result = 0 END END ELSE BEGIN SET @Result = 2 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DeleteAssociateUDFs',N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteAssociateUDFs] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteAssociateUDFs] ( @XML NVARCHAR(MAX)) AS /*************************************************************************************************************** * * Deletes the UDF from the Associate * * Stored procedure name : KAAS_DeleteAssociateUDFs * Copied from : ky_NETDeleteAssociateOtherDetails * * * * * * Modification History * 2019-01-15 John Ginnane KEYD-5645 - Created * 2019-07-29 Vinodhan Created Deletes the UDF from the Associate * **************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @idoc INT DECLARE @NAMECODE VARCHAR(100) DECLARE @FIELDS TABLE ([id] INT) BEGIN TRY EXEC sp_xml_preparedocument @idoc OUTPUT, @XML END TRY BEGIN CATCH END CATCH SELECT @NAMECODE = T.[NAMECODE] FROM OPENXML(@idoc, 'data', 2) WITH([NAMECODE] VARCHAR(100) '@namecode') AS T INSERT INTO @FIELDS ([id]) SELECT T.[id] FROM OPENXML(@idoc, 'data/item', 2) WITH([id] INT '@id') AS T DELETE AUD FROM [dbo].[AssociateUDF] AS AUD INNER JOIN @FIELDS AS TMP ON AUD.[Id] = TMP.[id] WHERE AUD.[NameCode] = @NAMECODE SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteAttachments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteAttachments] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteAttachments] (@TRACKREFERENCE INT) AS /***************************************************************************** Stored Procedure Name : KAAS_DeleteAttachments Copied From : [ky_NETAADeleteAttachments] Description: This procedure is used Delete the Contact for ClientCase Page. Imported into Framework for backward compatibility 22MAR2016 Sridharan KEYD-3422Changes to the Firm Undertakings Grid and Form * 2019-06-11 ????? Created KAAS_DeleteAttachments * 2021-10-06 Arun V Set Context info * 2024-03-13 Pino Carafa this procedure is obsolete and needs to be replaced with a call to [KAAS_DeleteAttachments2], passing in the current handler *****************************************************************************/ BEGIN --2024-03-13 EXEC [dbo].[KAAS_DeleteAttachments2] @TRACKREFERENCE = @TRACKREFERENCE, @Handler = NULL END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteAttachments2' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteAttachments2] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteAttachments2] (@TRACKREFERENCE INT, @Handler VARCHAR(10)) AS /***************************************************************************** Stored Procedure Name : KAAS_DeleteAttachments2 Copied From : [ky_NETAADeleteAttachments] supersedes KAAS_DeleteAttachments, which should no longer be used Description: This procedure is used to delete diary attachments Imported into Framework for backward compatibility 22MAR2016 Sridharan KEYD-3422Changes to the Firm Undertakings Grid and Form * 2019-06-11 ????? Created KAAS_DeleteAttachments * 2021-10-06 Arun V Set Context info * 2024-03-13 Pino Carafa use Handler Parameter * *****************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ActionID INT DECLARE @Description VARCHAR(500) DECLARE @Loginame NVARCHAR(128) SELECT @Loginame = RTRIM([P].[loginame]) FROM sys.sysprocesses [P] WHERE [P].[spid] = @@SPID --2024-03-13 SELECT @ActionID = [DAT].[DiaryID], @Description = (SELECT 'Attachment Deleted: ' + CHAR(13) + CHAR(10) + 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME, [DAT].[DATEENTERED]),106) + CHAR(13) + CHAR(10) + 'Document Name: ' + [DAT].[DOCUMENT] + CHAR(13) + CHAR(10) + 'Document Class: ' + [DAT].[DOCCLASS] + CHAR(13) + CHAR(10)) FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[TrackReference] = @TRACKREFERENCE DECLARE @UserName VARCHAR(30) DECLARE @HandlerCode VARCHAR(10) IF (@Handler IS NOT NULL) BEGIN --Handler needs to be passed in here ... SELECT @UserName = [HN].[NAME], @HandlerCode = [HN].[CODE] FROM [dbo].[HandlerNames] [HN] WHERE [HN].[CODE] = @Handler END IF (@HandlerCode IS NULL) BEGIN -- ... but if the Obsolete version of this SP is still used, it won't be so fall back to old mechanism SELECT @UserName = [HN].[NAME], @HandlerCode = [HN].[CODE] FROM [dbo].[HandlerNames] [HN] WHERE [HN].[CODE] = @Handler SELECT @UserName = [HAN].[NAME], @HandlerCode = [HAN].[CODE] FROM [Diary] [DIA] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [DIA].[FNCODE] WHERE [ACTIONID] = @ActionID END IF EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] WHERE [SO].[name] = 'ky_NETTRDeleteDiaryAttachment' AND [SO].[type] = 'TR') BEGIN --As long as this trigger still exists we need to keep setting the CONTEXT_INFO DECLARE @HandlerBin VARBINARY(128) SET @HandlerBin = CONVERT(VARBINARY(128), @HandlerCode) SET CONTEXT_INFO @HandlerBin END IF (@ActionID IS NOT NULL) BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID AND [DIA].[ACTIONTYPE] = 'U') BEGIN INSERT INTO [dbo].[UndertakingLog] ([UndertakingID], [FieldChanges], [FromValue], [ToValue], [ByWho], [ModifiedDate]) VALUES(@ActionID, 'Documents Deleted', '', @Description, @UserName, CONVERT(DATETIME,GETDATE(),112)) END -- 2024-03-13 START (1) IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] WHERE [SO].[name] = 'ky_NETTRDeleteDiaryAttachment' AND [SO].[type] = 'TR') BEGIN INSERT INTO [dbo].[DiaryAttachmentDeletionLog] ([on], [by], [Login], [HandlerCode], [ActionID], [TrackReference], [deletedrow]) SELECT GetDate(), APP_NAME(), @Loginame, @HANDLERCODE, [DEL].[DiaryID], [DEL].[TrackReference], (SELECT * FROM [dbo].[DiaryAttachments] [DiaryAttachments] WHERE [DiaryAttachments].[TrackReference] = [DEL].[TrackReference] FOR XML AUTO) AS [deletedrow] FROM [dbo].[DiaryAttachments] [DEL] WHERE [DEL].[DiaryID] = @ACTIONID INSERT INTO [dbo].[DiaryAttachmentAccess] ([TrackReference], [Handler], [Comment]) SELECT [DEL].[TrackReference], @HANDLERCODE, 'Deleted' FROM [dbo].[DiaryAttachments] [DEL] WHERE [DEL].[DiaryID] = @ACTIONID END -- 2024-03-13 END (1) DELETE [DAT] FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[TrackReference] = @TRACKREFERENCE END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteBrowseDocuments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteBrowseDocuments] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteBrowseDocuments] (@Code VARCHAR(15)) AS /*********************************************************************************************** * This procedure is used to Delete Browse Documents. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteBrowseDocuments] * * Copied from : [dbo].[ky_NETDeleteBrowseDocuments] * * * * Modification History : * * 2024-01-30 Vignesh M Created * ***********************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS (SELECT 1 FROM TemplateActionDcouments A LEFT OUTER JOIN TemplateActions B ON A.[ACTION]= B.ACTIONCODE WHERE A.DOCUMENT = @Code) BEGIN SELECT 'This record refer to another table. This record cannot be deleted while these references exist.' END ELSE BEGIN DELETE FROM TemplateDocuments WHERE CODE = @Code SELECT 'True' END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_DeleteCaseAssociate]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteCaseAssociate] GO CREATE PROCEDURE [KAAS_DeleteCaseAssociate] ( @Code VARCHAR(20) ,@CaseCode VARCHAR(20) ,@ConType VARCHAR(50) ,@Connum INT ,@Result INT OUTPUT ) AS /***************************************************************************** Stored Procedure Name : KAAS_DeleteCaseAssociate Copied From : ky_NETDeleteCaseAssociate Description: This procedure is used delete Case Associate. CaseAssoicatesTypes Last Updated: 12 FEB 2015 Arun- Change NVARCHAR to VARCHAR 23JUN2015 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM( 13JAN2015 Sridharan KEYD -3114 - Resequence Case Associates after sequence number changes 2016-04-11 John Now deleting only the @CONNUM contact 2019-07-27 Vinodhan Created KAAS_DeleteCaseAssociate *****************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM CaseContacts WHERE NAMECODE = @Code AND CASECODE = @CaseCode AND RTRIM(CONTYPE) = RTRIM(@ConType))IS NOT NULL BEGIN DELETE FROM [dbo].[CaseContacts] WHERE [NAMECODE] = @Code AND [CASECODE] = @CaseCode AND [CONTYPE] = @ConType AND [CONNUM] = @Connum EXEC KAAS_ReorderCaseContact @CaseCode,@ConType,@Connum,@Connum SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_DeleteCategory]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteCategory] GO CREATE PROCEDURE [KAAS_DeleteCategory] ( @RecordID INT ) /******************************************************************************************************* * This procedure is used Delete the Client page Category. * * * * * * Stored Procedure Name : [dbo].[KAAS_DeleteCategory] * * Copied from : [dbo].[ky_NETCONDeleteCategory] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON DELETE FROM ContactCategories WHERE RECORDID = @RecordID SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteChargeArragement' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteChargeArragement] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteChargeArragement] ( @CODE VARCHAR(3), @Result INT OUTPUT ) /************************************************************************************************************* * This procedure is used Delete the information for work flow Action Page Charge Arragement. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteChargeArragement] * * Copied from : [dbo].[Ky_NetDeleteChargeArragement] * * Modification History : * * 2023-07-03 Nithyanandham M Created * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON IF EXISTS (SELECT TOP 1 1 FROM ChargingMatrix WHERE ARRANGEMENTCODE = @CODE ) BEGIN SET @Result = 1 END ELSE BEGIN DELETE FROM ChargeArrangements WHERE CODE = @CODE SET @Result = 0 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteChargeCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteChargeCode] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteChargeCode] ( @ARRANGEMENTCODE VARCHAR(3), @CHARGECODE VARCHAR(3) ) /************************************************************************************************************* * procedure is used Delete the information for work flow Action Page Charge code Grid. * * * * Stored Procedure Name : [dbo].[KAAS_InsertChargeCode] * * Copied from : [dbo].[Ky_NetInsertChargeCode] * * Modification History : * * 2023-07-03 Nithyanandham M Created * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON DELETE FROM ChargingMatrix WHERE ARRANGEMENTCODE = @ARRANGEMENTCODE AND CHARGECODE = @CHARGECODE SELECT 'True' SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DeleteChequeRequest',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_DeleteChequeRequest] GO CREATE PROCEDURE [dbo].[KAAS_DeleteChequeRequest] (@IDV VARCHAR(10), @HANDLERCODE VARCHAR(10)) AS /************************************************************************************* * It deletes the selected cheque request * * * * * * Stored Procedure Name : [dbo].[KAAS_DeleteChequeRequest] * * Copied from : [dbo].[ky_NETSPDeleteChequeRequest] * * * * Modification History * * 2019-10-16 Dheepin Vijith Changed the name to KAAS_DeleteChequeRequest * * * ************************************************************************************/ BEGIN DECLARE @ID INT DECLARE @COMMAND VARCHAR(MAX) DECLARE @ActionID INT BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH SET @ActionID = NULL SELECT @ActionID = DIA.[ACTIONID] FROM [dbo].[diary] DIA WHERE DIA.[CHEQUEREQNO] = @ID IF (@ActionID IS NOT NULL) BEGIN EXEC [dbo].[ky_NETAADelete] @ActionID, @HANDLERCODE RETURN END -- If not linked to an Action, just delete the cheque itself. IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitions' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'DELETE [dbo].[ChequeRequisitions] WHERE [RecordId] = ' + CONVERT(VARCHAR(10), @ID) EXEC (@COMMAND) END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitionDetail' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'DELETE [dbo].[ChequeRequisitionDetail] WHERE [REQNO] = ' + CONVERT(VARCHAR(10), @ID) EXEC (@COMMAND) END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitionHeader' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'DELETE [dbo].[ChequeRequisitionHeader] WHERE [REQNO] = ' + CONVERT(VARCHAR(10), @ID) EXEC (@COMMAND) END END GO IF OBJECT_ID(N'[KAAS_DeleteClientChargeOutRates]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteClientChargeOutRates] GO CREATE PROCEDURE [KAAS_DeleteClientChargeOutRates] ( @ClientCode VARCHAR(10) ,@FeeEarnerCode VARCHAR(10) ,@Rate VARCHAR(10) ,@Result INT OUTPUT ) AS /******************************************************************************************************* * This stored procedure is used to delete ClientChargeOutRates details. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteClientChargeOutRates] * * Copied from : [dbo].[ky_NETCONDeleteClientChargeOutRates] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DELETE FROM ClientChargeOutRates WHERE ClientCode = @ClientCode AND FeCode = @FeeEarnerCode AND Rate = @Rate SET @Result = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteCommands' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteCommands] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteCommands] ( @ActionCode VARCHAR(50), @Order DECIMAL(3, 0) ) AS /***************************************************************************** * This procedure is used to Delete Commands. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteCommands] * * Copied from : [dbo].[Ky_NetDeleteCommands] * * * * Modification History : * * 2023-06-16 Nithyanandham M Created * *****************************************************************************/ BEGIN SET NOCOUNT ON DELETE FROM TemplateActionCommands WHERE ACTIONCODE = @ActionCode AND [ORDER] = @Order SELECT 'True' SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DeleteContactcategory',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_DeleteContactcategory] GO CREATE PROCEDURE [dbo].[KAAS_DeleteContactcategory] ( @ClientCode VARCHAR(10), @CatId INT, @CTCode VARCHAR(6), @CCode VARCHAR(10), @ContactNum INT, @Result INT OUTPUT ) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_DeleteContactcategory] * * Copied from : NA * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS(SELECT top 1 1 FROM ClientContactCategories WHERE CCCategoryId = @CatId ) BEGIN DELETE FROM ClientContactCategories WHERE ClientCode = @ClientCode AND CCCategoryId = @CatId AND CategoryType = @CTCode AND Category = @CCode AND ContactNum = @ContactNum SET @Result = 1 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_DeleteContactType]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteContactType] GO CREATE PROCEDURE [KAAS_DeleteContactType] ( @Code VARCHAR(20) ,@Result INT OUTPUT ) AS /******************************************************************************************************* * This procedure is used delete Associate type. CaseAssoicatesTypes * * * * Stored Procedure Name : [dbo].[KAAS_DeleteContactType] * * Copied from : [dbo].[ky_NETDeleteContactType] * * * * Modification History : * * 2019-05-30 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM AssociateTypes WHERE CODE = @Code)IS NOT NULL BEGIN IF(SELECT TOP 1 1 FROM CaseAssoicatesTypes WHERE TYPECODE = @Code) IS NULL BEGIN DELETE FROM AssociateTypes WHERE CODE = @Code SET @Result = 1 END ELSE BEGIN SET @Result = 0 END END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DeleteControlProfile',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_DeleteControlProfile] GO CREATE PROCEDURE [dbo].[KAAS_DeleteControlProfile] (@id VARCHAR(max)) AS /**************************************************************************** * * [dbo].[KAAS_DeleteControlProfile] * Retires a profile * * Modification History * Copied from [dbo].[ky_NETSPDeleteKHCtlProfile] * 2023-04-13 Revathy Created * 2023-05-05 Revathy Modified to accept list of profile IDs to perform delete operation ****************************************************************************/ BEGIN DECLARE @ProfileIDList table( ProfileID nvarchar(max)) INSERT INTO @ProfileIDList SELECT RTRIM(LTRIM([Item])) [ProfileID] FROM KAAS_FN_SplitString(@id, ',') UPDATE CTP SET CTP.[Retired] = 'Y' FROM [dbo].[KHCtlProfiles] CTP WHERE CTP.[id] in (SELECT ProfileID from @ProfileIDList) DELETE PFH FROM [dbo].[KHCtlProfileHandlers] PFH WHERE PFH.[ProfileID] in (SELECT ProfileID from @ProfileIDList) DELETE PFG FROM [dbo].[KHCtlProfileGroups] PFG WHERE PFG.[ProfileID] in (SELECT ProfileID from @ProfileIDList) END GO IF OBJECT_ID(N'[KAAS_DeleteCrossReference]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteCrossReference] GO CREATE PROCEDURE [KAAS_DeleteCrossReference] (@Code VARCHAR(10), @LinkToCode VARCHAR(10), @Relationship VARCHAR(50), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to delete ContactLinks details. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteCrossReference] * * Copied from : [dbo].[ky_NETCONDeleteCrossReference] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DELETE CL FROM [dbo].[ContactLinks] CL WHERE CL.[CONTACTA] = RTRIM(ISNULL(@Code, '')) AND CL.[CONTACTB] = RTRIM(ISNULL(@LinkToCode, '')) AND CL.[RELATE] = RTRIM(ISNULL(@Relationship, '')) SET @Result = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteDependentAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteDependentAction] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteDependentAction] ( @RecordID INT ) /*********************************************************************************************** * This procedure is used to Delete Dependent Action * * * * Stored Procedure Name : [dbo].[KAAS_DeleteDependentAction] * * Copied from : [dbo].[Ky_NetDeleteDependentAction] * * * * Modification History : * * 2023-06-19 Nithyanandham M Created * **************************************************************************************************/ AS BEGIN SET NOCOUNT ON DELETE FROM TemplateDependentActions WHERE RecordID = @RecordID SELECT 'True' SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_DeleteDiaryDelegations]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteDiaryDelegations] GO CREATE PROCEDURE [dbo].[KAAS_DeleteDiaryDelegations] (@ASSIGNNO INT, @CODE VARCHAR(20), @ACTIONID INT) /************************************************************************************************************* * * * [dbo].[KAAS_DeleteDiaryDelegations] * * * * Delete a Diary Assignment/Delegation * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: [dbo].[KAAS_DeleteDiaryDelegations2] * * * * * * * ***************************************************************************************************** * * * * Modification History * * ????-??-?? ??????????? Created * * 2015-02-12 Arun Vasu Change NVARCHAR to VARCHAR * * 2017-09-26 Arun Vasu KEYD-4577 * * 2017-09-26 Arun Vasu Added a condition to check any action is delegated by the owner * * 2021-01-11 Pino Carafa Coding Standards * * Use IN Clause and DISTINCT list to avoid issue with subquery returning * * more than one row. * * https://dev.azure.com/keyhouse365/Framework/_workitems/edit/11482 * * 2024-03-13 Pino Carafa Obsolete, do not use * * * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON EXEC [dbo].[KAAS_DeleteDiaryDelegations2] @ASSIGNNO = @ASSIGNNO, @CODE = @CODE, @ACTIONID = @ACTIONID, @HANDLERCODE = NULL SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_DeleteDiaryDelegations2]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteDiaryDelegations2] GO CREATE PROCEDURE [dbo].[KAAS_DeleteDiaryDelegations2] (@ASSIGNNO INT, @CODE VARCHAR(20), @ACTIONID INT, @HANDLERCODE VARCHAR(10)) /************************************************************************************************************* * * * [dbo].[KAAS_DeleteDiaryDelegations2] * * * * Delete a Diary Assignment/Delegation * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: [dbo].[KAAS_DeleteDiaryDelegations] * * * * First compatible version: 5.9.4.19 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * ????-??-?? ??????????? Created * * 2015-02-12 Arun Vasu Change NVARCHAR to VARCHAR * * 2017-09-26 Arun Vasu KEYD-4577 * * 2017-09-26 Arun Vasu Added a condition to check any action is delegated by the owner * * 2021-01-11 Pino Carafa Coding Standards * * Use IN Clause and DISTINCT list to avoid issue with subquery returning * * more than one row. * * https://dev.azure.com/keyhouse365/Framework/_workitems/edit/11482 * * 2024-03-13 Pino Carafa Added Handler code and functionality to avoid having to rely on triggers * * * *************************************************************************************************************/ AS BEGIN DECLARE @Loginame NVARCHAR(128) SELECT @Loginame = RTRIM([P].[loginame]) FROM sys.sysprocesses [P] WHERE [P].[spid] = @@SPID --2024-03-13 SET NOCOUNT ON IF EXISTS (SELECT TOP 1 1 FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[AssignNo] = @ASSIGNNO AND [DEL].[DelType] = 'Released') BEGIN UPDATE [DEL] SET [DEL].[DELEGATE] = @CODE, [DEL].[FromHandler] = @CODE FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID AND [DEL].[OWNER] = 'Y' END -- 2024-03-13 START (2) IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] WHERE [SO].[name] = 'ky_NETTRDeleteDiaryDelegations' AND [SO].[type] = 'TR') BEGIN INSERT INTO [dbo].[DiaryDelegationDeletionLog] ([on], [by], [Login], [HandlerCode], [deletedrow], [ActionID], [AssignNo]) SELECT GetDate(), APP_NAME(), @Loginame, @HANDLERCODE, (SELECT * FROM [dbo].[DiaryDelegations] [DiaryDelegations] WHERE [DiaryDelegations].[AssignNo] = [DEL].[AssignNo] FOR XML AUTO) AS [deletedrow], [DEL].[ActionID], [DEL].[AssignNo] FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[AssignNo] = @ASSIGNNO AND [DEL].[DelType] <> 'Created' END -- 2024-03-13 END (2) DELETE [DEL] FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[AssignNo] = @ASSIGNNO AND [DEL].[DelType] <> 'Created' IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[DELEGATE] IN (SELECT DISTINCT --https://dev.azure.com/keyhouse365/Framework/_workitems/edit/11482 [DEL2].[HANDLER] FROM [dbo].[DiaryDelegations] [DEL2] WHERE [DEL2].[OWNER] = 'Y' AND [DEL2].[ACTIONID] = @ACTIONID) AND [DEL].[DelType] = 'Delegated' AND [DEL].[ACTIONID] = @ACTIONID) BEGIN UPDATE [DIA] SET [DIA].[DELEGATIONSTATUS] = 0 FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ACTIONID END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DeleteDraftBill', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteDraftBill] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteDraftBill] ( @DraftNo INT, @HandlerCode VARCHAR(10)) AS /****************************************************************************** * KAAS_DeleteDraftBill * * * * Deletes the specified Draft Bill, compatible with SAM3 and SAM4 * * * * Modification History: * * 2020-02-05 Vinodhan Created KAAS_DeleteDraftBill * * 2020-03-13 Rajesh P from ky_NETSPDeleteDraftBill * * 2021-04-09 Aakif Updated with mandatory parameter @IsAddAction * for [dbo].[KAAS_DeleteAction] * * 2024-03-27 John Ginnane #17719 - Refactored * * 2024-05-16 Balamurugan C Added Draft Invoice parameter for DeleteAction * ******************************************************************************/ BEGIN SET NOCOUNT ON; DECLARE @ActionID INT SELECT @ActionID = [DIA].[ActionID] FROM [dbo].[diary] AS [DIA] WHERE [DIA].[DRAFTBILLNO] = @DraftNo IF @ActionID IS NOT NULL BEGIN -- Call KAAS_NETAADelete; this will delete the Action as well as all Bill-related data EXEC [dbo].[KAAS_DeleteAction] @ActionID, @HandlerCode, 1,1 RETURN 1 END -- If no associated Action (is this even possible?), just delete all Bill related information IF ISNULL(@DraftNo, 0) <> 0 BEGIN EXEC [dbo].[KAAS_DeleteDraftBillOnly] @DraftNo, @HandlerCode RETURN 1 END RETURN 0 END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteDraftBillDetail' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteDraftBillDetail] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteDraftBillDetail] (@IDV VARCHAR(10), @DRAFTNOV VARCHAR(10)) AS /*********************************************************************** * * ky_NETSPDeleteDraftBillDetail * * Deletes one (IDV set) or all (IDV = '0') Draft Bill Detail lines * * 2018-08-03 John Ginnane Added to SVN and added SAM4 compatibility *2019-11-07 Rajesh copied from ky_NETSPDeleteDraftBillDetail *2021 - 26-02 Sadiq Added to Stored Preocedure Folder ***********************************************************************/ BEGIN DECLARE @DRAFTNO INT DECLARE @ID INT BEGIN TRY SELECT @DRAFTNO = BH.[DRAFTNO] FROM [dbo].[BillHeader] BH WHERE BH.[DRAFTNO] = CONVERT(INT, @DRAFTNOV) END TRY BEGIN CATCH SET @DRAFTNO = 0 END CATCH IF (ISNULL(@DRAFTNO, 0) = 0) BEGIN RETURN END BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = -1 END CATCH IF (@ID = -1) BEGIN RETURN END IF (@ID > 0) BEGIN SET @ID = NULL SELECT @ID = BD.[KEYID] FROM [dbo].[BillDetails] BD WHERE BD.[KEYID] = CONVERT(INT, @IDV) AND BD.[DRAFTNO] = @DRAFTNO END IF (@ID IS NULL) BEGIN RETURN END IF (@ID = 0) BEGIN DELETE [dbo].[BillDetails] WHERE [DRAFTNO] = @DRAFTNO END ELSE BEGIN DELETE [dbo].[BillDetails] WHERE [DRAFTNO] = @DRAFTNO AND [KEYID] = @ID END IF (@@ROWCOUNT > 0) BEGIN EXEC [dbo].[ky_NETSPReorderDraftBillLines] @DRAFTNO EXEC [dbo].[ky_NETSPCorrectBillDetailsANDFEBreakdown] @DRAFTNO EXEC [dbo].[ky_NETSPRecalculateDraftBillTotals] @DRAFTNO END END GO IF [dbo].[ISSAM4]() = 0 BEGIN EXEC (' IF OBJECT_ID(N''KAAS_DeleteDraftBillOnly'',N''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteDraftBillOnly] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_DeleteDraftBillOnly] (@ID INT, @HANDLERCODE VARCHAR(10)) /*************************************************************************************** * * * Stored Procedure Name : KAAS_DeleteDraftBillOnly * * Copied From : [ky_NETSPDeleteDraftBillOnly] * * * * Description: This procedure is used to delete the Bill related details * * for a draft bill. This procedure can be called from: * * ky_NETAADelete * * ky_NETSPDeleteDraftBill * * The above procedures take care of the associated Action as * * well as the Bill information. This procedure only looks at * * the Bill information, and assumes that the Action is taken * * care of. * * * * Do NOT call this procedure on its own. * * * * Modification History: 2018-08-23 John Split this proc in two: SAM3 and SAM4 * * 2020-02-05 Vinodhan Created KAAS_DeleteDraftBillOnly * 2020-03-13 Rajesh P from ky_NETSPDeleteDraftBillOnly * * * *************************************************************************************/ AS BEGIN DECLARE @xml XML SET @xml = (SELECT BH.[MATTER], BH.[DRAFTNO], BH.[DATE], BH.[USER], BH.[ADDRESSEE], BH.[INVCR], BH.[BILLNO], BH.[OURREF], BH.[YOURREF], BH.[TOTAL], BH.[FEES], BH.[OUTLAY], BH.[TOTALVAT], BH.[FEEVATCODE], BH.[NET0], BH.[RATE1], BH.[NETRATE1], BH.[VATRATE1], BH.[RATE2], BH.[NETRATE2], BH.[VATRATE2], BH.[RATE3], BH.[NETRATE3], BH.[VATRATE3], BH.[RELEASED], BH.[RETURNREASON], BH.[MATTERDESCRIPTION], BH.[TRANSFER], BH.[WRITEDOWN], BH.[WRITEBACKHOURS], BH.[WRITEBACKVALUE], BH.[ACTIONID], BH.[OPENINVOICE], BH.[BATCHNO], BH.[FEMISCTOTAL], BH.[CreditInvoiceNo], BH.[ManualFeeBreakDown], BH.[BillSent], BH.[DefaultBillLayoutReportID] FROM [dbo].[BillHeader] BH WHERE BH.[DRAFTNO] = @ID FOR XML AUTO) INSERT INTO [dbo].[BillLogging] ([DATE], [Handler], [DRAFTNO], [Action]) SELECT GETDATE(), @HANDLERCODE, BH.[DRAFTNO], ''Deleted FROM Action: '' + CONVERT(VARCHAR(MAX), @xml) FROM [dbo].[BillHeader] BH WHERE BH.[DRAFTNO] = @ID EXEC [dbo].[KAAS_BGDelete] @ID, 0 DELETE BIH FROM [dbo].[BillHeader] AS BIH WHERE BIH.[DRAFTNO] = @ID DELETE BID FROM [dbo].[BillDetails] AS BID WHERE BID.[DRAFTNO] = @ID DELETE BFBD FROM [dbo].[BillFeeBreakDown] AS BFBD WHERE BFBD.[DRAFTNO] = @ID END') END ELSE BEGIN EXEC (' IF OBJECT_ID(N''KAAS_DeleteDraftBillOnly'',N''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteDraftBillOnly] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_DeleteDraftBillOnly] (@ID INT, @HANDLERCODE VARCHAR(10)) /***************************************************************************** * * [ky_NETSPDeleteDraftBillOnlySAM4] * This procedure is used to delete the Bill related details * for a draft bill. This procedure can be called from: * KAAS_DeleteAction * KAAS_DeleteDraftBill * The above procedures take care of the associated Action as * well as the Bill information. This procedure only looks at * the Bill information, and assumes that the Action is taken * care of. * * Do NOT call this procedure on its own. * * Suitable for SAM4 only * * 2018-08-23 John Ginnane Created * 2018-11-23 John Ginnane KEYD-5577 - Fixed time not being unmarked as "draft in progress" * 2019-10-22 John Ginnane KEYD-6161 - Added document reproduction support * * Modification History : * * 2020-03-13 Rajesh P from ky_NETSPDeleteDraftBillOnly *****************************************************************************/ AS BEGIN DECLARE @xml XML SET @xml = (SELECT BH.[BillingID], BH.[MatterCode], BH.[BillDescription], BH.[Addressee], BH.[FeCode], BH.[InvoiceTo], BH.[Address], BH.[Ref], BH.[Type], BH.[OpenInvoice], BH.[BillDate], BH.[TimeWriteDownDate], BH.[TransferToPay], BH.[Message], BH.[InvoiceNo], BH.[CreateBy], BH.[EntryDate], BH.[BillStatus], BH.[ReleasedBy], BH.[ReleasedDate], BH.[AccountsClearedBy], BH.[AccountsClearedDate], BH.[Billlayout], BH.[Branch], BH.[CreditInvoiceNo], BH.[ProForma], BH.[DefaultBillLayoutReportID] FROM [dbo].[Billhead] BH WHERE BH.[BillingID] = @ID FOR XML AUTO) INSERT INTO [dbo].[BillLogging] ([DATE], [Handler], [DRAFTNO], [Action]) SELECT GETDATE(), @HANDLERCODE, BH.[BillingID], ''Deleted FROM Action: '' + CONVERT(VARCHAR(MAX), @xml) FROM [dbo].[Billhead] BH WHERE BH.[BillingID] = @ID EXEC [dbo].[KAAS_BGDelete] @ID DELETE FROM [dbo].[Billhead] WHERE [BillingID] = @ID DELETE FROM [dbo].[BillDetail] WHERE [BillID] = @ID DELETE FROM [dbo].[BillingGuideFormated] WHERE [BillGuideNo] = @ID DELETE FROM [dbo].[BillingGuide] WHERE [BillingNo] = @ID DELETE FROM [dbo].[BillBreakdown] WHERE [BillingNo] = @ID DELETE FROM [dbo].[BillingLog] WHERE [BillingId] = @ID DELETE FROM [dbo].[BillCompMatter] WHERE [BillingNo] = @ID UPDATE TIE SET TIE.[BILLED] = 0 FROM [dbo].[TimeEntry] AS TIE WHERE TIE.[BILLED] = @ID * - 1 AND @ID <> 0 UPDATE TRN SET TRN.[DraftNo] = 0 FROM [dbo].[Transactions] AS TRN WHERE TRN.[DraftNo] = @ID * -1 AND @ID <> 0 UPDATE [PJT] SET [PJT].[InvoiceNo] = 0 FROM [dbo].[PrintJobTracker] AS [PJT] WHERE [PJT].[InvoiceNo] = @ID * -1 AND @ID <> 0 SET NOCOUNT OFF END') END GO IF [dbo].[ISSAM4]() = 1 BEGIN EXEC (' IF OBJECT_ID(N''KAAS_DeleteDraftBillOnlySAM4'',N''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteDraftBillOnlySAM4] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_DeleteDraftBillOnlySAM4] (@ID INT, @HANDLERCODE VARCHAR(10)) /******************************************************************************************************* * This procedure is used to delete the Bill related details for a draft bill. * * This procedure can be called from: * * KAAS_DeleteAction * * KAAS_DeleteDraftBillSAM4 * * The above procedures take care of the associated Action as well as the Bill information. * * This procedure only looks at the Bill information, and assumes that the Action is taken care of. * * * * Do NOT call this procedure on its own. * * Suitable for SAM4 only * * * * Stored Procedure Name : [dbo].[KAAS_DeleteDraftBillOnlySAM4] * * Copied from : [dbo].[ky_NETSPDeleteDraftBillOnlySAM4] * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN DECLARE @xml XML SET @xml = (SELECT BH.[BillingID], BH.[MatterCode], BH.[BillDescription], BH.[Addressee], BH.[FeCode], BH.[InvoiceTo], BH.[Address], BH.[Ref], BH.[Type], BH.[OpenInvoice], BH.[BillDate], BH.[TimeWriteDownDate], BH.[TransferToPay], BH.[Message], BH.[InvoiceNo], BH.[CreateBy], BH.[EntryDate], BH.[BillStatus], BH.[ReleasedBy], BH.[ReleasedDate], BH.[AccountsClearedBy], BH.[AccountsClearedDate], BH.[Billlayout], BH.[Branch], BH.[CreditInvoiceNo], BH.[ProForma], BH.[DefaultBillLayoutReportID] FROM [dbo].[Billhead] BH WHERE BH.[BillingID] = @ID FOR XML AUTO) INSERT INTO [dbo].[BillLogging] ([DATE], [Handler], [DRAFTNO], [Action]) SELECT GETDATE(), @HANDLERCODE, BH.[BillingID], ''Deleted FROM Action: '' + CONVERT(VARCHAR(MAX), @xml) FROM [dbo].[Billhead] BH WHERE BH.[BillingID] = @ID EXEC [dbo].[ky_BGDeleteSAM4] @ID DELETE FROM [dbo].[Billhead] WHERE [BillingID] = @ID DELETE FROM [dbo].[BillDetail] WHERE [BillID] = @ID DELETE FROM [dbo].[BillingGuideFormated] WHERE [BillGuideNo] = @ID DELETE FROM [dbo].[BillingGuide] WHERE [BillingNo] = @ID DELETE FROM [dbo].[BillBreakdown] WHERE [BillingNo] = @ID DELETE FROM [dbo].[BillingLog] WHERE [BillingId] = @ID DELETE FROM [dbo].[BillCompMatter] WHERE [BillingNo] = @ID UPDATE TIE SET TIE.[BILLED] = 0 FROM [dbo].[TimeEntry] AS TIE WHERE TIE.[BILLED] = @ID * - 1 UPDATE TRN SET TRN.[DraftNo] = 0 FROM [dbo].[Transactions] AS TRN WHERE TRN.[DraftNo] = @ID * -1 SET NOCOUNT OFF END') END GO IF OBJECT_ID(N'KAAS_DeleteFileItem', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteFileItem] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteFileItem] (@FileNumber INT, @Result BIT OUT) AS /*********************************************************************************************************** * Stored Procedure Name : KAAS_DeleteFileItem * Copied From : ky_NETDeleteFileItem * * This procedure is used to delelete strong room item by item code * * Modification history: * Arun.V Created * 2015-11-26 Pino Carafa Check whether NeedsAttention column needs to be referenced. It doesn't. * tidy up. * 2022-02-02 Aakif KAAS file created ***********************************************************************************************************/ BEGIN SET NOCOUNT ON UPDATE FMI SET FMI.[IsDeleted] = 1 FROM [dbo].[FileManagerItems] FMI WHERE FMI.[NUMBER] = @FileNumber SET @Result = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteFilterMenu' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteFilterMenu] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteFilterMenu]( @ID INT) AS BEGIN DELETE FROM [CustomSavedFilters] where FilterID = @ID DELETE FROM [CustomFilterbyUserandPage] where ID = @ID END GO IF NOT((SELECT SERVERPROPERTY('Edition') AS [Edition]) = 'SQL Azure') BEGIN IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteHybirdAttachments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteHybirdAttachments] END DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N'CREATE PROCEDURE [dbo].[KAAS_DeleteHybirdAttachments] (@FilePath VARCHAR(400)) AS /******************************************************************************************************* * To delete the attachments from a diary when the configuration is set to hybrid connection * * * * Stored Procedure Name : [dbo].[KAAS_DeleteHybirdAttachments] * * * * Modification History : * * 2019-06-11 Vinodhan K Created * 2020-06-17 Sadiq Updated (KEYSAAS-2121 - Hybrid procedure not necessarily to create in azure) *******************************************************************************************************/ BEGIN DECLARE @Command VARCHAR(500); SET @Command = ''DEL "'' + @FilePath + ''"''; EXECUTE XP_CMDSHELL @Command; END' EXECUTE SP_EXECUTESQL @NCOMMAND END GO IF OBJECT_ID(N'[KAAS_DeleteIntellisense]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteIntellisense] GO CREATE PROCEDURE [KAAS_DeleteIntellisense] ( @Handler VARCHAR(6), @Id INT ) AS /******************************************************************************************************* * This procedure is used To Delete the Intellisense. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteIntellisense] * * Copied from : [dbo].[ky_NETDeleteIntellisense] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DELETE FROM Intellisense WHERE Id = @Id SELECT RTRIM(Id) AS Id, RTRIM(Handler) AS Handler, RTRIM(Narrative) AS Narrative FROM Intellisense WHERE Handler = @Handler ORDER by Narrative SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_DeleteMatterChargeOutRates]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_DeleteMatterChargeOutRates] GO CREATE PROCEDURE [KAAS_DeleteMatterChargeOutRates] ( @MatterCode VARCHAR(20) ,@FeCode VARCHAR(10) ,@Result VARCHAR(5) OUTPUT ) AS /******************************************************************************************************* * This stored procedure is used to delete matter charge out rates. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteMatterChargeOutRates] * * Copied from : [dbo].[ky_NETMATDeleteMatterChargeOutRateIndicator] * * * * Modification History : * * 2019-05-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DELETE FROM MatterChargeOutRates WHERE MatterCode = @MatterCode AND FeCode = @FeCode SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DeleteMatterLinkbyRecordId','P')IS NOT NULL DROP PROCEDURE KAAS_DeleteMatterLinkbyRecordId GO CREATE PROCEDURE KAAS_DeleteMatterLinkbyRecordId ( @RecordId INT ) AS /* Created By : Arun V Date : 04Nov2014 Description : This procedure is used to delete matter linked reference by record id Modification History ----------------------------------------------------- Date | Modified By | Description ----------------------------------------------------- 22 May 2019 Arun V Copied from ky_NETDeleteMatterLinkbyRecordId */ BEGIN SET NOCOUNT ON DECLARE @PrimeMatter NVARCHAR(20) DECLARE @LinkedMatter NVARCHAR(20) SELECT @PrimeMatter = PrimeMatter , @LinkedMatter = LinkedMatter FROM LinkedMatters WHERE RecordId= @RecordId --Delete link A DELETE FROM LinkedMatters WHERE PrimeMatter = @PrimeMatter AND LinkedMatter = @LinkedMatter --Delete link B DELETE FROM LinkedMatters WHERE PrimeMatter = @LinkedMatter AND LinkedMatter = @PrimeMatter SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteMattersEstimatedFee' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteMattersEstimatedFee] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteMattersEstimatedFee] (@RecordID INT) AS /******************************************************************************************************* * This SP used to Delete a Matters Estimated Fee Detail * * * * Stored Procedure Name : [dbo].[KAAS_DeleteMattersEstimatedFee] * * Copied from : [dbo].[ky_NETDeleteMattersEstimatedFee] * * * * Modification History : * * 2019-05-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN DELETE [MEF] FROM [dbo].[MattersEstimatedFees] [MEF] WHERE [MEF].[RecordID] = @RecordID END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteMyDayBook' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteMyDayBook] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteMyDayBook] @RecordID INT AS /******************************************************************************************************* * Delete a time book from [dbo].[Timedaybook] for the selected record. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteMyDayBook] * * Copied from : [dbo].[ky_NETDeleteMyDayBook] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN DELETE Timedaybook WHERE RECORDID=@RecordID END GO IF OBJECT_ID(N'KAAS_DeleteOfficer',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_DeleteOfficer] GO CREATE PROCEDURE [dbo].[KAAS_DeleteOfficer] ( @ClientCode VARCHAR(20), @RecordId INT, @Result INT OUTPUT) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_DeleteOfficer] * * Copied from : NA * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DELETE FROM Officers WHERE CONTACTCODE = @ClientCode AND RECORDID = @RecordId SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DeleteOtherContacts',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_DeleteOtherContacts] GO CREATE PROCEDURE [dbo].[KAAS_DeleteOtherContacts] ( @ClientCode VARCHAR(20), @NumContact INT, @Result VARCHAR(10) OUTPUT) AS /******************************************************************************************************* * This procedure is used to delete client contact categories * * * * Stored Procedure Name : [dbo].[KAAS_DeleteOtherContacts] * * Copied from : [dbo].[ky_NETCONDeleteOtherContacts] * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DELETE CC FROM [dbo].[ClientContacts] AS CC WHERE CC.[CLCODE] = @ClientCode AND CC.[CLNUMCONTACT] = @NumContact DELETE CCC FROM [dbo].[ClientContactCategories] AS CCC WHERE CCC.[ClientCode] = @ClientCode AND CCC.[ContactNum] = @NumContact EXEC [dbo].[ky_NETReorderClientContacts] @ClientCode SET @Result = 1 SET NOCOUNT OFF END GO /****** Object: StoredProcedure [dbo].[KAAS_DeletePinFilterMenu] Script Date: 12/31/2019 4:55:15 PM ******/ IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeletePinFilterMenu' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeletePinFilterMenu] END GO CREATE PROCEDURE [dbo].[KAAS_DeletePinFilterMenu] ( @ID int ) AS BEGIN DELETE FROM CustomFilterbyUserandPage WHERE ID = @ID END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteTemplateAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteTemplateAction] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteTemplateAction] ( @WKCODE NVARCHAR(4), @ACTIONCODE NVARCHAR(15) ) AS /*********************************************************************************************** * This procedure is used to Delete Action . * * * * Stored Procedure Name : [dbo].[KAAS_DeleteTemplateAction] * * Copied from : [dbo].[Ky_NetDeleteTemplateAction] * * * * Modification History : * * 2019-04-12 Nithyanandham M Created * ***********************************************************************************************/ BEGIN SET NOCOUNT ON DELETE ActionWorkTypes WHERE WorkType = @WKCODE AND ACTIONCODE = @ACTIONCODE ;WITH T AS (SELECT SEQ, Row_number() OVER (ORDER BY SEQ) AS RN FROM ActionWorkTypes WHERE WORKTYPE = @WKCODE) UPDATE T SET SEQ = RN SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_DeleteTemplateLibrary]', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteTemplateLibrary] END GO CREATE PROCEDURE [KAAS_DeleteTemplateLibrary] ( @Code VARCHAR(50) ) /******************************************************************************************************* * This procedure is used Delete the information for TemplateLibrary. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteTemplateLibrary] * * Copied from : [dbo].[ky_NETDeleteTemplateLibrary] * * * * Modification History: * * 2019-11-04 Dheepin Vijith K Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON DELETE FROM TemplateDocuments WHERE RTRIM(CODE) = RTRIM(@Code) DELETE FROM TemplateActionDcouments WHERE RTRIM(DOCUMENT) = RTRIM(@Code) SELECT 'True' SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteTimeEntry' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteTimeEntry] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteTimeEntry] (@RecordID INT, @Handler VARCHAR(10), @User NVARCHAR(128)) AS /******************************************************************************************************* * Delete the data of a TimeEntry record page. * * * * Stored Procedure Name : [dbo].[KAAS_DeleteTimeEntry] * * Copied from : [dbo].[ky_NETDeleteTimeEntry] * * * * 2015-06-23 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM( * * 2015-11-12 Pino Carafa KEYD - 2894 - Log user data and timestamp * * 2015-11-12 John KEYD - 2901 - Deleting a write off will mark written off items * * as unbilled * * Modification History: * * 2019-07-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET @Handler = RTRIM(ISNULL(@Handler, '')) SET @User = RTRIM(ISNULL(@User, N'')) DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N'INSERT INTO [dbo].[TimeEntryLogNew] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [CHARGE], [TASK], [TIMEORCHARGE], [COMMENT], [BILLED], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [SHOULDHAVE], [INVOICENO], [PERIOD], [YEAR], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [RECORDID], [ActionId], [StageCode], [Leave], [BilledAmount], [IncludeInBill], [BILLINGDATE], [AxleNumber], [WriteOffDT], [WriteOffID], [LogFor]' IF @Handler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', [HandlerLogFor]' END IF @User <> N'' BEGIN SET @NCOMMAND = @NCOMMAND + N', [LoginLogFor]' END SET @NCOMMAND = @NCOMMAND + N') SELECT [TIE].[MATTER], [TIE].[FEEEARN], [TIE].[DATE], [TIE].[TIME], [TIE].[RATE], [TIE].[CHARGE], [TIE].[TASK], [TIE].[TIMEORCHARGE], [TIE].[COMMENT], [TIE].[BILLED], [TIE].[NCCODE], [TIE].[DOCKET], [TIE].[TEAM], [TIE].[TRACKREF], [TIE].[REC_IRR], [TIE].[SHOULDHAVE], [TIE].[INVOICENO], [TIE].[PERIOD], [TIE].[YEAR], [TIE].[BILLINGPERIOD], [TIE].[BILLINGYEAR], [TIE].[OPENINV], [TIE].[RECORDID], [TIE].[ActionId], [TIE].[StageCode], [TIE].[Leave], [TIE].[BilledAmount], [TIE].[IncludeInBill], [TIE].[BILLINGDATE], [TIE].[AxleNumber], [TIE].[WriteOffDT], [TIE].[WriteOffID], ''D''' IF @Handler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @Handler' END IF @User <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @User' END SET @NCOMMAND = @NCOMMAND + N' FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @RecordID' EXEC sp_executesql @NCOMMAND, N'@RecordID INT, @Handler VARCHAR(10), @User NVARCHAR(128)', @RecordID, @Handler, @User -- Check if we're deleting a write off entry DECLARE @TASK VARCHAR(MAX) SET @TASK = (SELECT TOP 1 [Task] FROM [dbo].[TimeEntry] WHERE [RecordID] = @RecordID) IF ISNULL(@TASK, '') = 'WRI' BEGIN -- Identify all written off items and mark as unbilled UPDATE [TIE] SET [WriteOffID] = NULL, [WriteOffDT] = NULL FROM [dbo].[TimeEntry] AS [TIE] WHERE [TIE].[WriteOffID] = @RecordID END DECLARE @MatterCode NVARCHAR(20) SELECT @MatterCode = RTRIM(ISNULL([TIE].[Matter], '')) FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @RecordID DELETE [TIE] FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @RecordID IF (@MatterCode IS NOT NULL) BEGIN EXEC [dbo].[ky_WDUpdateMatterTimeBalance] @MatterCode END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteUDFList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteUDFList] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteUDFList] ( @CODE VARCHAR(3), @FIELDNAME VARCHAR(30) ) AS /************************************************************************************************ * This procedure is used Delete the Document assists UDF list * * * * Stored Procedure Name : [dbo].[KAAS_DeleteUDFList] * * Copied from : [dbo].[ky_NETDeleteUDFList] * * * * Modification History : * * 2023-07-11 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON DELETE FROM UDFLookups WHERE CODE = @CODE AND FIELDNAME = @FIELDNAME SELECT 'True' SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DeleteFollowupActions' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DeleteFollowupActions] END GO CREATE PROCEDURE [dbo].[KAAS_DeleteFollowupActions] ( @Action VARCHAR(50), @NextAction VARCHAR(50) ) /***************************************************************************** * This procedure is used to Delete Follow Up Action Based on Action Id and NextAction * * * * Stored Procedure Name : [dbo].[KAAS_DeleteFollowupActions] * * Copied from : [dbo].[Ky_NetDelteFollowupActions] * * Modification History : * * 2023-06-21 Nithyanandham M Created * *****************************************************************************/ AS BEGIN SET NOCOUNT ON DELETE FROM dbo.TemplateNextActions WHERE [ACTION] = @Action AND NEXTACTION = @NextAction SELECT 'True' SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_DocumentHistoryLog',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_DocumentHistoryLog] GO CREATE PROCEDURE [dbo].[KAAS_DocumentHistoryLog] (@TrackReference INT) AS /************************************************************************************************************* * * * SP Name : KAAS_DocumentHistoryLog * * Retrieve the Access Log for a Diary Attachment * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * Original: - * * * * First compatible version: 5.8.1.19 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History: * * 2021-07-21 Pino Carafa Created * * 2022-05-16 Vinodhkumar.M Copied from ky_NETSPDATAccessLog * * 2022-12-22 Vignesh.M Modified id column added * * * *************************************************************************************************************/ BEGIN SET NOCOUNT ON select [DAA].[AccessDate] AS [AccessDate], CASE WHEN RTRIM(ISNULL([HAN].[CODE], '')) IN ('', 'ADM') AND [DAA].[Comment] IN ('Inserted', 'Updated') THEN CASE WHEN RTRIM(ISNULL([LAH].[CODE], '')) IN ('', 'ADM') THEN CASE WHEN RTRIM(ISNULL([EBH].[CODE], '')) IN ('', 'ADM') THEN 'ADM' ELSE RTRIM(ISNULL([EBH].[CODE], '')) END ELSE RTRIM(ISNULL([LAH].[CODE], '')) END ELSE RTRIM(ISNULL([HAN].[CODE], '')) END AS [HandlerCode], CASE WHEN RTRIM(ISNULL([HAN].[CODE], '')) IN ('', 'ADM') AND [DAA].[Comment] IN ('Inserted', 'Updated') THEN CASE WHEN RTRIM(ISNULL([LAH].[CODE], '')) IN ('', 'ADM') THEN CASE WHEN RTRIM(ISNULL([EBH].[CODE], '')) IN ('', 'ADM') THEN 'Unknown Handler: ' + RTRIM(ISNULL([DAA].[Handler], '')) ELSE RTRIM(ISNULL([EBH].[NAME], '')) END ELSE RTRIM(ISNULL([LAH].[NAME], '')) END ELSE RTRIM(ISNULL([HAN].[NAME], '')) END AS [HandlerName], [DAA].[Comment] AS [Comment], [DAA].[id] AS [Id] from [dbo].[DiaryAttachmentAccess] [DAA] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [DAA].[Handler] INNER JOIN [dbo].[DiaryAttachments] [DAT] LEFT OUTER JOIN [dbo].[Handlers] [EBH] ON [EBH].[CODE] = [DAT].[ENTEREDBY] LEFT OUTER JOIN [dbo].[Handlers] [LAH] ON [LAH].[CODE] = [DAT].[LASTACCESSBY] ON [DAT].[TrackReference] = [DAA].[TrackReference] where [DAA].[TrackReference] = @TrackReference order by [DAA].[AccessDate] DESC, [DAA].[id] DESC SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DocumentManagerGetDocDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DocumentManagerGetDocDetails] END GO CREATE PROCEDURE [dbo].[KAAS_DocumentManagerGetDocDetails] (@ActionID INT, @Text VARCHAR(MAX), @From VARCHAR(50), @Handler VARCHAR(10), @editLimit INT, @CloudOrHybrid VARCHAR(2)) AS /********************************************************************************************************************* * [dbo].[ky_NETDocumentManagerGetDocDetails2] * * This Procedure is used to get the sync Document name with subject checks * Originally written as ky_NETDocumentManagerGetDocDetails but the functionality dealing with DocSyncWithSubject * was so wrong it couldn't be corrected. * * Modification History * 2015 Unknown Originally created. * 2015-02-12 Arun V. Change NVARCHAR to VARCHAR * 2015-07-07 Sridharan KEYD-2433 "Remember sync document name setting is not working correctly" * 2016-02-05 Arun V. Specified the Varchar size * 2017-04-05 Pino Carafa @Handler was varchar(5) not 10 as it should be * NO idea what the original creator was thinking. * Corrected coding standards * Introduce a second Setting value to store the Yes/No value. Until now, there was * only DocSyncWithSubject, which was treated as "remember the choice 'YES'" if set * to True, and "don't remember anything" if set to False. Terrible. * 2017-05-11 Pino Carafa 1 - If @count (the number of attachments for a particular diary entry) is not 1, * then none of this applies, and it should just return 2 * 2 - When the EXISTS statements indicate that the requested items DO exist, then * nothing needs to be done so return 2 * 2019-06-04 Arun V Copied from ky_NETDocumentManagerGetDocDetails2 * 2021-05-10 Sadiq (12155) Added condition for cloud and hybrid and changes for subject attachment changes * 2021-05-11 Sadiq (12155) Added condition for cloud changes as well for subject attachment changes *********************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @count AS INT IF(@CloudOrHybrid='C' OR @CloudOrHybrid='H') BEGIN SELECT @count= COUNT(1)-@editLimit FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[DiaryID] = @ActionID END ELSE BEGIN SELECT @count= COUNT(1) FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[DiaryID] = @ActionID END DECLARE @DocSyncWithSubject BIT DECLARE @DocSyncWithSubjectYesNo INT SET @count = ISNULL(@count, 0) --2017-05-11 IF @count <> 1 BEGIN SELECT 2 RETURN END SELECT @DocSyncWithSubject = CASE WHEN [UST].[Value] = 'True' THEN 1 ELSE 0 END FROM [dbo].[UserSettings] [UST] WHERE [UST].[Handler] = @Handler AND [UST].[Key] = 'DocSyncWithSubject' SET @DocSyncWithSubject = ISNULL(@DocSyncWithSubject, 0) SELECT @DocSyncWithSubjectYesNo = CASE WHEN [UST].[Value] = 'True' THEN 1 ELSE 2 END FROM [dbo].[UserSettings] [UST] WHERE [UST].[Handler] = @Handler AND [UST].[Key] = 'DocSyncWithSubjectYesNo' SET @DocSyncWithSubjectYesNo = ISNULL(@DocSyncWithSubjectYesNo, 0) IF @From = 'Document Manager' BEGIN IF (@count = 1) BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[DiaryAttachments] [DAT] WHERE RTRIM([DAT].[DOCUMENT]) = @Text AND [DAT].[DIARYID] = @ActionID) BEGIN SELECT @DocSyncWithSubjectYesNo RETURN END ELSE BEGIN SELECT 2 RETURN END END END IF @From = 'Case Diary' BEGIN IF (@count = 1) BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[diary] [DIA] WHERE RTRIM(CONVERT(VARCHAR(30), [DIA].[SUBJECT])) = @Text AND [DIA].[ACTIONID] = @ActionID) BEGIN SELECT @DocSyncWithSubjectYesNo RETURN END ELSE BEGIN SELECT 2 RETURN END END END SELECT 0 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DocumentPopupsForCategory' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DocumentPopupsForCategory] END GO CREATE PROCEDURE [dbo].[KAAS_DocumentPopupsForCategory] (@Category VARCHAR(20)) AS /********************************************************************************************************************** * Stored Procedure Name : KAAS_DocumentPopupsForCategory * Copied From : ky_NETSPDocumentPopupsForCategory * * Description: List the document popups for the selected category * * Modification History * 2016-10-18 Pino Carafa Created * 2019-04-30 Pino Carafa Add Title * 2020-05-19 Prabhu.V Created as KAAS_DocumentPopupsForCategory frp Key House * 2021-07-19 Sadiq Handling max length in Front end (12291) **********************************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL([DP].[TEXTVALUE], '')) AS [ActualPopupText], [dbo].[ky_RemoveSpuriousWhitespace2]([DP].[TEXTVALUE], 200) AS [ListPopupText], [DP].[KEYFIELD] AS [KEYFIELD], CASE WHEN RTRIM(ISNULL([DP].[Title], '')) = '' THEN [dbo].[ky_RemoveSpuriousWhitespace2]([DP].[TEXTVALUE], 200) ELSE RTRIM([DP].[Title]) END AS [Title] FROM [dbo].[DocumentPopups] [DP] WHERE [DP].[CATEGORY] = @Category ORDER BY [DP].[KEYFIELD] ASC END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DoStoreEFTFile' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DoStoreEFTFile] END GO CREATE PROCEDURE [dbo].[KAAS_DoStoreEFTFile] (@SequenceNo int, @EndToEndID VARCHAR(35), @EFTXML NVARCHAR(MAX)) AS /******************************************************************************************************* * This sp used to Add bill narrative. * * * * Stored Procedure Name : [dbo].[KAAS_DoStoreEFTFile] * * Copied from : [dbo].[ky_NETDoStoreEFTFile] * * * * Modification History : * * 2024-03-19 Vignesh M Created * *******************************************************************************************************/ BEGIN DECLARE @RecordID INT DECLARE @MsgID VARCHAR(35) DECLARE @EFTXMLWork NVARCHAR(MAX) SELECT TOP 1 @RecordID = ETD.[RecordID] FROM [dbo].[EFTDetails] ETD WHERE ETD.[FileNumber] = @SequenceNo ORDER BY ETD.[RecordID] DESC IF RTRIM(ISNULL(@EndToEndID, '')) = '' BEGIN RETURN -1 END IF @RecordID IS NULL BEGIN RETURN -2 END DECLARE @iSL INT SET @EFTXMLWork = @EFTXML SET @EFTXMLWork = REPLACE(@EFTXMLWork, ' xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"', '') SET @EFTXMLWork = REPLACE(@EFTXMLWork, '', '') BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @EFTXMLWork END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @MsgId = SRC.[MsgID] FROM OPENXML(@iSL, N'Document') WITH ([MsgId] VARCHAR(35) './CstmrCdtTrfInitn/GrpHdr/MsgId') SRC EXEC sp_xml_removedocument @iSL IF (@MsgID IS NULL) BEGIN RETURN -3 END IF RTRIM(@MsgID) = '' BEGIN RETURN -4 END INSERT INTO [dbo].[EFTSent] ([ETTRecordID], [SequenceNo], [SentOn], [EndToEndID], [EFTXML]) VALUES(@RecordID, @SequenceNo, GetDate(), @EndToEndID, @EFTXML) RETURN 0 END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DraftBillDetailLineDown' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DraftBillDetailLineDown] END GO CREATE PROCEDURE [dbo].[KAAS_DraftBillDetailLineDown] (@KEYID INT) AS /*********************************************************************** * * ky_NETSPDraftBillDetailLineDown * * Moves Draft Bill Detail line down *2019-11-11 Rajesh Copied from ky_NETSPDraftBillDetailLineDown ***********************************************************************/ BEGIN DECLARE @DRAFTNO INT BEGIN TRY SELECT @DRAFTNO = BD.[DRAFTNO] FROM [dbo].[BillDetails] BD WHERE BD.[KEYID] = @KEYID END TRY BEGIN CATCH END CATCH IF NOT (@DRAFTNO IS NULL) BEGIN UPDATE BD SET BD.[LINENO] = BD.[LINENO] * 2 FROM [dbo].[BillDetails] BD WHERE BD.[DRAFTNO] = @DRAFTNO UPDATE BD SET BD.[LINENO] = BD.[LINENO] + 3 FROM [dbo].[BillDetails] BD WHERE BD.[KEYID] = @KEYID EXEC [dbo].[KAAS_ReorderDraftBillLines] @DRAFTNO END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DraftBillDetailLineUp' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DraftBillDetailLineUp] END GO CREATE PROCEDURE [dbo].[KAAS_DraftBillDetailLineUp] (@KEYID INT) AS /*********************************************************************** * * ky_NETSPDraftBillDetailLineUp * * Moves Draft Bill Detail line up *2019-11-11 Rajesh copied from ky_NETSPDraftBillDetailLineUp ***********************************************************************/ BEGIN DECLARE @DRAFTNO INT BEGIN TRY SELECT @DRAFTNO = BD.[DRAFTNO] FROM [dbo].[BillDetails] BD WHERE BD.[KEYID] = @KEYID END TRY BEGIN CATCH END CATCH IF NOT (@DRAFTNO IS NULL) BEGIN UPDATE BD SET BD.[LINENO] = 2 + (BD.[LINENO] * 2) FROM [dbo].[BillDetails] BD WHERE BD.[DRAFTNO] = @DRAFTNO UPDATE BD SET BD.[LINENO] = BD.[LINENO] - 3 FROM [dbo].[BillDetails] BD WHERE BD.[KEYID] = @KEYID EXEC [dbo].[KAAS_ReorderDraftBillLines] @DRAFTNO END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_DuplicateDocFolderTree' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_DuplicateDocFolderTree] END GO CREATE PROCEDURE [dbo].[KAAS_DuplicateDocFolderTree] (@originalid INT) AS /******************************************************************************************************* * Duplicates a folder tree to a new root * * * * Stored Procedure Name : [dbo].[KAAS_DuplicateDocFolderTree] * * Copied from : [dbo].[ky_NETSPDuplicateDocFolderTree] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @fromid INT SELECT TOP 1 @fromid = [DF].[id] FROM [dbo].[DocFolders] [DF] WHERE [DF].[id] = @originalid AND [DF].[parent] IS NULL DECLARE @MAX INT DECLARE @data TABLE ([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [id] INT NOT NULL, [parent] INT NOT NULL, [foldername] VARCHAR(500) NOT NULL, [foldericon] INT NOT NULL, [newfolder] BIT NOT NULL, [deletefolder] BIT NOT NULL) IF (@fromid IS NOT NULL) BEGIN INSERT INTO @data ([id], [parent], [foldername], [foldericon], [newfolder], [deletefolder]) SELECT SRC.[id], SRC.[parent], SRC.[foldername], SRC.[foldericon], 1, 0 FROM [dbo].[KAAS_TF_GetDocFolders3](@fromid, 1, 1) SRC END SELECT @MAX = ISNULL(MAX([DF].[id]), 0) FROM [dbo].[DocFolders] [DF] DECLARE @new TABLE ([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [oldid] INT NOT NULL UNIQUE NONCLUSTERED, [newid] INT NOT NULL) INSERT INTO @new ([oldid], [newid]) SELECT [DT].[id], 0 FROM @data [DT] WHERE [DT].[newfolder] = 1 UPDATE [nw] SET [nw].[newid] = @MAX + [nw].[seq] FROM @new [NW] SET IDENTITY_INSERT [dbo].[DocFolders] ON INSERT INTO [dbo].[DocFolders] ([id], [foldername], [parent], [foldericon]) SELECT [nw].[newid] AS [id], [dt].[foldername] AS [foldername], CASE ISNULL([pr].[newid], 0) WHEN 0 THEN CASE ISNULL([dt].[parent], 0) WHEN 0 THEN NULL ELSE [dt].[parent] END ELSE [pr].[newid] END AS [parent], [dt].[foldericon] AS [foldericon] FROM @data [dt] INNER JOIN @new [nw] ON [nw].[oldid] = [dt].[id] LEFT OUTER JOIN @new [pr] ON [pr].[oldid] = [dt].[parent] SET IDENTITY_INSERT [dbo].[DocFolders] OFF SELECT @MAX = ISNULL(MAX([DF].[id]), 0) + 1 FROM [dbo].[DocFolders] [DF] DBCC CHECKIDENT('DocFolders', RESEED, @MAX) DELETE [DF] FROM @data [dt] INNER JOIN [dbo].[DocFolders] [DF] ON [DF].[id] = [dt].[id] WHERE [dt].[deletefolder] = 1 UPDATE [DF] SET [DF].[foldername] = [dt].[foldername], [DF].[parent] = CASE ISNULL([dt].[parent], 0) WHEN 0 THEN NULL ELSE [dt].[parent] END, [DF].[foldericon] = [dt].[foldericon] FROM @data [dt] INNER JOIN [dbo].[DocFolders] [DF] ON [DF].[id] = [dt].[id] WHERE [dt].[deletefolder] = 0 AND [dt].[newfolder] = 0 DECLARE @newid INT SELECT TOP 1 @newid = ISNULL([nw].[newid], dt.[id]) FROM @data [dt] LEFT OUTER JOIN @new [nw] ON [nw].[oldid] = [dt].[id] SELECT @newid [id] RETURN @newid END GO IF OBJECT_ID(N'KAAS_FetchAccountSetting',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchAccountSetting] GO CREATE PROCEDURE [dbo].[KAAS_FetchAccountSetting] AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_FetchAccountSetting] * * Copied from : NA * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT NAME AS [Name] FROM [control] END GO IF OBJECT_ID(N'KAAS_FetchActionworkType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchActionworkType] GO CREATE PROCEDURE [dbo].[KAAS_FetchActionworkType] (@ActionCode VARCHAR(10)) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_FetchActionworkType] * * Copied from : NA * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT TOP 1 WORKTYPE AS [WorkType] FROM ActionWorkTypes [AWT] INNER JOIN TemplateActions [TA] ON [AWT].[WORKTYPE] = [TA].[WKTCODE] WHERE [TA].[ACTIONCODE] = @ActionCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchAllActions' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchAllActions] END GO CREATE PROCEDURE [dbo].[KAAS_FetchAllActions] AS /******************************************************************************************************* * This procedure is used to Fetch All Actions. * * * * Stored Procedure Name : [dbo].[KAAS_FetchAllActions] * * Copied from : [dbo].[Ky_NetFetchAllActions] * * * * Modification History : * * 2023-06-09 Nithyanandham M Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(ISNULL(TA.ACTIONCODE , '')) AS [Action], RTRIM(ISNULL(TA.[DESC], '')) AS [Desc], RTRIM(ISNULL(TA.WKTCODE, '')) AS WKTCode, RTRIM(ISNULL(TA.ACTTYPE, '')) AS ActType, RTRIM(ISNULL(TA.[STATUS], '')) AS [Status], RTRIM(ISNULL(TA.MILESTONETYPE, '')) AS MileStoneType, RTRIM(ISNULL(T.WKDESC,'')) AS [Description] FROM TemplateActions TA LEFT JOIN Templates T on TA.WKTCODE = T.WKCODE ORDER BY UPPER(ACTIONCODE) SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchAllAssociateUDFs', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_FetchAllAssociateUDFs] END GO CREATE PROCEDURE [dbo].[KAAS_FetchAllAssociateUDFs] AS /******************************************************************************************************* * Returns all UDFs for the "AUD:" prefix * * * * Stored Procedure Name : [dbo].[KAAS_FetchAllAssociateUDFs] * * Copied from : [dbo].[ky_NETFetchAllAssociateUDFs] * * * * Modification History: * * 2019-06-12 Vinodhan K Created * 2022-05-22 Ghayathri.S.V Added Type,Length,FilePrefix columns to fetch data *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT ISNULL(UDFC.[UDFCategory], '') AS [Category], SUDF.[PROMPT] AS [PROMPT], SUDF.[FIELDNAME] AS [FIELDNAME], SUDF.[TYPE] AS [Type], SUDF.[LENGTH] AS [Length], SUDF.[FILEPREFIX] as [FilePrefix] FROM [dbo].[SystemUserDefinedFields] AS SUDF LEFT OUTER JOIN [dbo].[UDFCategory] AS UDFC ON SUDF.[UDFCategory] = UDFC.[ID] WHERE SUDF.[FILEPREFIX] = 'AUD:' SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchAllClientChargeOutRates',N'P') IS NOT NULL DROP PROCEDURE KAAS_FetchAllClientChargeOutRates GO CREATE PROCEDURE [dbo].[KAAS_FetchAllClientChargeOutRates] ( @ClientCode VARCHAR(20), @HandlerType VARCHAR(20) ) AS /******************************************************************************************************* * This stored procedure is used to insert all unretired handlers/charge groups into * * the client charge out rate list. * * * * Stored Procedure Name : [dbo].[KAAS_FetchAllClientChargeOutRates] * * Copied from : [dbo].[ky_NETCONFetchAllClientChargeOutRates] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF (@HandlerType = 'FeeEarners') BEGIN INSERT INTO [dbo].[ClientChargeOutRates] ( [ClientCode], [FeCode], [Rate], [EffectiveDate], [ModifyDate]) SELECT @ClientCode, LTRIM(RTRIM(HAN.[CODE])), ISNULL(HAN.[RATE], 0), GETDATE(), GETDATE() FROM [dbo].[Handlers] AS HAN LEFT OUTER JOIN [dbo].[ClientChargeOutRates] AS CCOR ON CCOR.[ClientCode] = @ClientCode AND LTRIM(RTRIM(CCOR.[FeCode])) = LTRIM(RTRIM(HAN.[CODE])) WHERE ISNULL(HAN.[TEAMCODE], '') <> 'Y' AND ISNULL(HAN.[RETIRED], '') <> 'Y' AND CCOR.[FeCode] IS NULL END ELSE BEGIN INSERT INTO [dbo].[ClientChargeOutRates] ( [ClientCode], [FeCode], [Rate], [EffectiveDate], [ModifyDate]) SELECT @ClientCode, LTRIM(RTRIM(HCG.[Code])), ISNULL(HCG.[DefaultRate], 0), GETDATE(), GETDATE() FROM [dbo].[HandlerChargeGroups] AS HCG LEFT OUTER JOIN [dbo].[ClientChargeOutRates] AS CCOR ON CCOR.[ClientCode] = @ClientCode AND LTRIM(RTRIM(CCOR.[FeCode])) = LTRIM(RTRIM(HCG.[Code])) WHERE ISNULL(HCG.[Retired], '') <> 'Y' AND CCOR.[FeCode] IS NULL END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchAllDiary',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchAllDiary] GO CREATE PROCEDURE [KAAS_FetchAllDiary] ( @ACTIONID INT, @LoggedInHandler VARCHAR(10) = NULL) /******************************************************************************************************* * This procedure is used to fetch diary item by actionid. * * * * Stored Procedure Name : [dbo].[KAAS_FetchAllDiary] * * Copied from : NA * * * * Modification History : * * 2019-04-16 Vinodhan K Created * * 2020-05-04 Arun V DYSTARTTIME convertsion issue fixes, KEYHM-592 * * 2021-10-13 Sadiq Date Format issue Fixed (13221) * * 2022-07-13 VInodhkumar.M updated alias name from upper case to pascal case for web * * 2023-10-20 Vignesh M Modified Removed Extra white space in Char Columns * ********************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT RTRIM(ISNULL(D.[CASECODE], '')) AS CaseCode, CONVERT(VARCHAR, dbo.KAAS_FNConvertUTCDateToTargetTimeZone(D.[DATE], @LoggedInHandler) , 120) AS [Date], RTRIM(ISNULL(D.[STATUS], 0)) AS [Status], RTRIM(ISNULL(D.[ACTIONCODE], '')) AS ActionCode, RTRIM(ISNULL(D.[ACTIONSTATUS], '')) AS ActionStatus, RTRIM(ISNULL(D.[ACTIONTYPE], '')) AS ActionType, RTRIM(ISNULL(D.[PROCESSTYPE], '')) AS ProcessType, RTRIM(ISNULL(D.[FNCODE], '')) AS FNCode, RTRIM(ISNULL(D.[TEAMCODE], '')) AS TeamCode, CAST(RTRIM(LTRIM(CAST(D.[TEXT1] AS nVARCHAR(max)))) AS TEXT) as Text3, RTRIM(LTRIM(ISNULL(D.[TEXT1], ''))) AS Text1, RTRIM(LTRIM(ISNULL(D.[TEXT2], ''))) AS Text2, RTRIM(ISNULL(D.[DELEGATEDFNR], '')) AS DelegatedFNR, RTRIM(ISNULL(D.[DELEGATEDDATE], '')) AS DelegatedDate, RTRIM(ISNULL(D.[DELEGATEDBACKDATE], '')) AS DelegatedBackDate, RTRIM(ISNULL(D.[DEFERRED], '')) AS Deferred, CONVERT(VARCHAR, dbo.KAAS_FNConvertUTCDateToTargetTimeZone(D.[DUEDATE], @LoggedInHandler) , 120) AS [DueDate], RTRIM(ISNULL(D.[IMAGENO], '')) AS ImageNo, RTRIM(ISNULL(D.[PUBLISH], '')) AS Publish, --UTC time to LoggedIn Handler Time Zone , in case Logged In Handler is empty default to GMT CONVERT(VARCHAR(10),dbo.KAAS_FNConvertUTCDateToTargetTimeZone( DATEADD(day, DATEDIFF(day, 0, GETDATE()), dbo.KAAS_FN_ConvertClarionTimeToHHMM(D.[DYSTARTTIME])) , @LoggedInHandler), 108) AS [DYStartTime], --UTC time to LoggedIn Handler Time Zone , in case Logged In Handler is empty default to GMT CONVERT(VARCHAR(10),dbo.KAAS_FNConvertUTCDateToTargetTimeZone( DATEADD(day, DATEDIFF(day, 0, GETDATE()), dbo.KAAS_FN_ConvertClarionTimeToHHMM(D.[DYENDTIME])), @LoggedInHandler), 108) AS [DYEndTime], RTRIM(D.[DYSTARTTIME]) AS [DYStartTime1], RTRIM(D.[DYENDTIME]) AS [DYEndTime1], --CONVERT(VARCHAR, DATEADD(ms, 10 * (ISNULL(D.DYSTARTTIME, 0) - 0), CONVERT(VARCHAR, GETDATE(), 112)), 108) AS DYSTARTTIME, --CONVERT(VARCHAR, DATEADD(ms, 10 * (ISNULL(D.DYENDTIME, 0) - 0), CONVERT(VARCHAR, GETDATE(), 112)), 108) AS DYENDTIME, --stuff( right(CONVERT(VARCHAR, DATEADD(ms, 10 * (DYSTARTTIME - 1), CONVERT(VARCHAR, GETDATE(), 108)), 109), 15 ), 7, 7, ' ' ) AS DYSTARTTIME, --stuff( right(CONVERT(VARCHAR, DATEADD(ms, 10 * (DYENDTIME - 1), CONVERT(VARCHAR, getDate(), 108)), 109), 15 ), 7, 7, ' ' ) AS DYENDTIME, RTRIM(ISNULL(D.[DURATION], 0)) AS Duration, RTRIM(ISNULL(D.[ACTIONID], 0)) AS ActionId, RTRIM(ISNULL(D.[ORGINALACTIONID], 0)) AS OriginalActionId, RTRIM(ISNULL(D.[PRIORITY], '')) AS [Priority], RTRIM(ISNULL(D.[HIGHLIGHTED], '')) AS Highlighted, RTRIM(ISNULL(D.[MILESTEONETYPE], '')) AS MileStoneType, RTRIM(ISNULL(D.[ATTACHMENTS], '')) AS Attachments, RTRIM(ISNULL(D.[PROCESSSTATUS], 0)) AS ProcessStatus, RTRIM(ISNULL(D.[WORKPROCESS], 0)) AS WorkProcess, RTRIM(ISNULL(D.[BILLABLE], 0)) AS Billable, RTRIM(ISNULL(D.[BILLDESCRIPTION], '')) AS BillDescription, RTRIM(ISNULL(D.[EMAILADDRESS], '')) AS EmailAddress, ISNULL(D.[ADDRESSTO], '') AS AddressTo, ISNULL(D.[CCTo], '') AS CCTo, ISNULL(D.[BCCTo], '') AS BCCTo, RTRIM(ISNULL(D.[EMAIL], '')) AS Email, ISNULL(D.[SUBJECT], '') AS [Subject], RTRIM(ISNULL([DELEGATIONSTATUS], 0)) AS DelegationStatus, RTRIM(ISNULL([DRAFTBILLNO], 0)) AS DraftBillNo, RTRIM(ISNULL(D.[CHEQUEREQNO], 0)) AS ChequeReqNo, RTRIM(ISNULL(D.[TxmSent], 0)) AS TxmSent, RTRIM(ISNULL(D.[Location], '')) AS Location, RTRIM(ISNULL(D.[HearingType], '')) AS HearingType, RTRIM(ISNULL(D.[ForCopy], '')) AS ForCopy, RTRIM(ISNULL(D.[TxmDate], '')) AS TxmDate, RTRIM(ISNULL(D.[TxmSeqNo], 0)) AS TxmSeqNo, RTRIM(ISNULL(D.[Flag],0)) AS Flag, RTRIM(ISNULL(H.[RETIRED],'')) AS Retired, RTRIM(ISNULL(H.[NAME],'')) AS [Name], M.[Closed] AS [Closed], ISNULL(D.[KYC],'N') AS KYC, ISNULL(S.[Retired],'N') AS ActionRetired, RTRIM(ISNULL(TA.[Arrangement],'')) AS [Arrangement], RTRIM(ISNULL(M.[ChargeArrangement],'')) AS [ChargeArrangement], RTRIM(ISNULL([TA].[DESC], '')) AS [ActionCodeDescription] FROM [DIARY] D LEFT JOIN [Handlers] H ON D.[FNCODE] = H.[CODE] LEFT JOIN [matters] M ON D.[CASECODE] = M.[Code] LEFT JOIN [StatusCodes] S ON D.[ACTIONSTATUS] = S.[CODE] LEFT OUTER JOIN TemplateActions TA ON D.ACTIONCODE = TA.ACTIONCODE LEFT OUTER JOIN Templates T ON T.[WKCODE] = TA.WKTCODE WHERE [ACTIONID] = @ACTIONID SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchAllFeeEarners',N'P')IS NOT NULL DROP PROCEDURE KAAS_FetchAllFeeEarners GO CREATE PROCEDURE KAAS_FetchAllFeeEarners (@Code VARCHAR(10) = '') AS /******************************************************************************************************* * This stored procedure is used to FETCH all active fee earners * * * * Stored Procedure Name : [dbo].[KAAS_FetchAllFeeEarners] * * Copied from : [dbo].[ky_NETCONFetchAllFeeEarners] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(Code) AS Code, RTRIM(NAME) AS Handler FROM Handlers WHERE TEAMCODE <> 'Y' AND (RETIRED<>'Y' OR CODE = @Code) UNION ALL SELECT RTRIM(CODE), RTRIM(NAME) FROM HandlerChargeGroups SELECT CONVERT(VARCHAR(10),GETDATE(), 112) AS CurrentDate SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO WHERE SO.[name] = N'KAAS_FetchAllNotificationList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchAllNotificationList] END GO CREATE PROCEDURE [dbo].[KAAS_FetchAllNotificationList] ( @NotifyFromDate DATETIME = GETDATE, @NotifyToDate DATETIME = GETDATE, @UserCode VARCHAR(20) = '' ) AS /******************************************************************************************************* * To fetch all notification based on filter condition * * * * Stored Procedure Name : [dbo].[KAAS_FetchAllNotification] * * * * Modification History: * * 2021-12-09 Balamurugan C Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [NotificationId], [NotifyCreatedUserCode], [NotifyMessage], [NotifyCreatedDate], CASE WHEN [NotifyStatus]='R' THEN 'Read' ELSE 'Unread' END AS [NotifyStatus], [NotifyHeader] FROM [dbo].[NotificationDetails] WHERE CAST([NotifyCreatedDate] AS DATE) >= @NotifyFromDate AND CAST([NotifyCreatedDate] AS DATE) <= @NotifyToDate AND [NotifyReceiverUserCode] = @UserCode ORDER BY [NotifyCreatedDate] DESC SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchAllRecentMatterList',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchAllRecentMatterList] GO CREATE PROCEDURE [dbo].[KAAS_FetchAllRecentMatterList] (@Search NVARCHAR(MAX), @PageNumber INT, @PageSize INT) AS /******************************************************************************************************* * Performs a matter search based on search criteria passed in in XML format through @Search. * * * * Stored Procedure Name : [dbo].KAAS_FetchAllRecentMatterList] * * Copied from : [dbo].[ky_NETSPXMLMatterSearch2] * * * * Modification History: * * 2019-05-02 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @closed NCHAR(1) DECLARE @orderby NVARCHAR(50) DECLARE @order NVARCHAR(4) DECLARE @howmany INT DECLARE @handler NVARCHAR(10) DECLARE @which INT DECLARE @BitWiseID BIGINT DECLARE @searchtext VARCHAR(MAX) DECLARE @searchonlycode VARCHAR(3) DECLARE @departmentdesc VARCHAR(50) DECLARE @department VARCHAR(5) DECLARE @worktypedesc VARCHAR(50) DECLARE @worktype VARCHAR(5) DECLARE @filecolourdesc VARCHAR(20) DECLARE @filecolour VARCHAR(3) DECLARE @feecode VARCHAR(10) DECLARE @includename BIT DECLARE @includedescription BIT DECLARE @includeaddress BIT DECLARE @includeemail BIT DECLARE @includecode BIT DECLARE @includeoldref BIT DECLARE @includeuser1 BIT DECLARE @andorname VARCHAR(3) DECLARE @andornamevalue VARCHAR(200) DECLARE @andordescription VARCHAR(3) DECLARE @andordescriptionvalue VARCHAR(200) DECLARE @andoraddress VARCHAR(3) DECLARE @andoraddressvalue VARCHAR(200) DECLARE @andorcode VARCHAR(3) DECLARE @andorcodevalue VARCHAR(200) DECLARE @andorfeecode VARCHAR(3) DECLARE @andorfeecodevalue VARCHAR(200) DECLARE @andoroldref VARCHAR(3) DECLARE @andoroldrefvalue VARCHAR(200) DECLARE @andordept VARCHAR(3) DECLARE @andordeptvalue VARCHAR(200) DECLARE @andoruser1 VARCHAR(3) DECLARE @andoruser1value VARCHAR(200) DECLARE @andoruser2 VARCHAR(3) DECLARE @andoruser2value VARCHAR(200) DECLARE @andoruser3 VARCHAR(3) DECLARE @andoruser3value VARCHAR(200) DECLARE @andoryourref VARCHAR(3) DECLARE @andoryourrefvalue VARCHAR(200) DECLARE @andorwtype VARCHAR(3) DECLARE @andorwtypevalue VARCHAR(200) DECLARE @iSL INT DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @Search END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @closed = CASE ISNULL(SRC.[closed], N'N') WHEN N'Y' THEN N'Y' WHEN N'B' THEN N'B' ELSE N'N' END, @orderby = ISNULL(SRC.[orderby], N''), @order = CASE ISNULL(SRC.[order], N'DESC') WHEN N'DESC' THEN N'DESC' ELSE N'ASC' END, @howmany = ISNULL(SRC.[howmany], 500), @handler = ISNULL(SRC.[handler], N''), @which = CASE ISNULL(SRC.[which], 0) WHEN 1 THEN 1 --My Matters WHEN 2 THEN 2 --Recent Matters ELSE 0 END, --All Matters @searchtext = ISNULL(SRC.[search], ''), @searchonlycode = ISNULL(SRC.[searchonlycode], ''), @departmentdesc = ISNULL(SRC.[dept], ''), @worktypedesc = ISNULL(SRC.[wtype], ''), @filecolourdesc = ISNULL(SRC.[colour], ''), @feecode = ISNULL(SRC.[feecodefilter], ''), @includeaddress = ISNULL(SRC.[includeaddress], 0), @includeemail = ISNULL(SRC.[includeemail], 0), @includecode = ISNULL(SRC.[includecode], 0), @includedescription = ISNULL(SRC.[includedescription], 0), @includename = ISNULL(SRC.[includename], 0), @includeoldref = ISNULL(SRC.[includeoldref], 0), @includeuser1 = ISNULL(SRC.[includeuser1], 0), @andorname = ISNULL(SRC.[andorname], ''), @andornamevalue = ISNULL(SRC.[andornamevalue], ''), @andordescription = ISNULL(SRC.[andordescription], ''), @andordescriptionvalue = ISNULL(SRC.[andordescriptionvalue], ''), @andoraddress = ISNULL(SRC.[andoraddress], ''), @andoraddressvalue = ISNULL(SRC.[andoraddressvalue], ''), @andorcode = ISNULL(SRC.[andorcode], ''), @andorcodevalue = ISNULL(SRC.[andorcodevalue], ''), @andorfeecode = ISNULL(SRC.[andorfeecode], ''), @andorfeecodevalue = ISNULL(SRC.[andorfeecodevalue], ''), @andoroldref = ISNULL(SRC.[andoroldref], ''), @andoroldrefvalue = ISNULL(SRC.[andoroldrefvalue], ''), @andordept = ISNULL(SRC.[andordept], ''), @andordeptvalue = ISNULL(SRC.[andordeptvalue], ''), @andoruser1 = ISNULL(SRC.[andoruser1], ''), @andoruser1value = ISNULL(SRC.[andoruser1value], ''), @andoruser2 = ISNULL(SRC.[andoruser2], ''), @andoruser2value = ISNULL(SRC.[andoruser2value], ''), @andoruser3 = ISNULL(SRC.[andoruser3], ''), @andoruser3value = ISNULL(SRC.[andoruser3value], ''), @andoryourref = ISNULL(SRC.[andoryourref], ''), @andoryourrefvalue = ISNULL(SRC.[andoryourrefvalue], ''), @andorwtype = ISNULL(SRC.[andorwtype], ''), @andorwtypevalue = ISNULL(SRC.[andorwtypevalue], '') FROM OPENXML(@iSL, N'search') WITH ([closed] NCHAR(1) '@closed', [orderby] NVARCHAR(50) '@orderby', [order] NVARCHAR(4) '@order', [howmany] INT '@howmany', [handler] NVARCHAR(10) '@handler', [which] INT '@which', [search] VARCHAR(MAX) '@search', [searchonlycode] VARCHAR(3) '@searchonlycode', [dept] VARCHAR(50) '@departmentfilter', [wtype] VARCHAR(50) '@worktypefilter', [colour] VARCHAR(20) '@filecolourfilter', [feecodefilter] VARCHAR(10) '@feecodefilter', [includeaddress] BIT 'include/includefield[@name="address"]', [includecode] BIT 'include/includefield[@name="code"]', [includedescription] BIT 'include/includefield[@name="description"]', [includename] BIT 'include/includefield[@name="name"]', [includeoldref] BIT 'include/includefield[@name="oldref"]', [includeuser1] BIT 'include/includefield[@name="user1"]', [includeemail] BIT 'include/includefield[@name="email"]', [andorname] VARCHAR(3) 'andor/andorfield[@name="name"]/@andor', [andornamevalue] VARCHAR(100) 'andor/andorfield[@name="name"]/@search', [andordescription] VARCHAR(3) 'andor/andorfield[@name="description"]/@andor', [andordescriptionvalue] VARCHAR(100) 'andor/andorfield[@name="description"]/@search', [andoraddress] VARCHAR(3) 'andor/andorfield[@name="address"]/@andor', [andoraddressvalue] VARCHAR(100) 'andor/andorfield[@name="address"]/@search', [andorcode] VARCHAR(3) 'andor/andorfield[@name="code"]/@andor', [andorcodevalue] VARCHAR(100) 'andor/andorfield[@name="code"]/@search', [andorfeecode] VARCHAR(3) 'andor/andorfield[@name="feecode"]/@andor', [andorfeecodevalue] VARCHAR(100) 'andor/andorfield[@name="feecode"]/@search', [andoroldref] VARCHAR(3) 'andor/andorfield[@name="oldref"]/@andor', [andoroldrefvalue] VARCHAR(100) 'andor/andorfield[@name="oldref"]/@search', [andordept] VARCHAR(3) 'andor/andorfield[@name="dept"]/@andor', [andordeptvalue] VARCHAR(100) 'andor/andorfield[@name="dept"]/@search', [andoruser1] VARCHAR(3) 'andor/andorfield[@name="user1"]/@andor', [andoruser1value] VARCHAR(100) 'andor/andorfield[@name="user1"]/@search', [andoruser2] VARCHAR(3) 'andor/andorfield[@name="user2"]/@andor', [andoruser2value] VARCHAR(100) 'andor/andorfield[@name="user2"]/@search', [andoruser3] VARCHAR(3) 'andor/andorfield[@name="user3"]/@andor', [andoruser3value] VARCHAR(100) 'andor/andorfield[@name="user3"]/@search', [andoryourref] VARCHAR(3) 'andor/andorfield[@name="yourref"]/@andor', [andoryourrefvalue] VARCHAR(100) 'andor/andorfield[@name="yourref"]/@search', [andorwtype] VARCHAR(3) 'andor/andorfield[@name="wtype"]/@andor', [andorwtypevalue] VARCHAR(100) 'andor/andorfield[@name="wtype"]/@search') SRC IF @filecolourdesc <> '' BEGIN SELECT @filecolour = FC.[COLOURCODE] FROM [dbo].[FileColours] FC WITH (NOLOCK) WHERE FC.[COLOURDESC] = @filecolourdesc END SET @filecolour = ISNULL(@filecolour, '') IF @departmentdesc <> '' BEGIN SELECT @department = DP.[CODE] FROM [dbo].[Departments] DP WITH (NOLOCK) WHERE DP.[DESCRIPTION] = @departmentdesc END SET @department = ISNULL(@department, '') IF @worktypedesc <> '' BEGIN IF @worktypedesc LIKE 'Unknown Worktype: %' BEGIN SELECT @worktype = WT.[CODE] FROM [dbo].[WorkTypes] WT WITH (NOLOCK) WHERE 'Unknown Worktype: ' + WT.[CODE] = @worktypedesc OR WT.[DESC] = @worktypedesc END ELSE BEGIN SELECT @worktype = WT.[CODE] FROM [dbo].[WorkTypes] WT WITH (NOLOCK) WHERE WT.[DESC] = @worktypedesc END END SET @worktype = ISNULL(@worktype, '') SET @feecode = ISNULL(@feecode, '') EXEC sp_xml_removedocument @iSL DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @HasWhere BIT SET @HasWhere = 0 SET @handler = CASE WHEN RTRIM(ISNULL(@handler, '')) = '' THEN 'ADM' ELSE RTRIM(@handler) END SELECT @BitWiseID = HNG.[BitWiseID] FROM HandlerNETGroupMembership HNG WITH (NOLOCK) WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@handler, '')))) IF (@handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END SET @NCOMMAND = N' --SELECT ''How Many: '' + CONVERT(VARCHAR(10), @HowMany) --SELECT ''Handler: '' + @Handler --SELECT ''BitWise ID: '' + CONVERT(VARCHAR(10), @BitWiseID) DECLARE @Result TABLE ([id] INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED, [Code] VARCHAR(20) NOT NULL, [Name] VARCHAR(256) NOT NULL, [Description] VARCHAR(200) NOT NULL) INSERT INTO @Result ([Code], [Name], [Description]) SELECT SM.[Code] AS [Code], SM.[Name] AS [Name], SM.[Description] AS [Description] FROM [dbo].[SearchMatters] SM WITH (NOLOCK) CROSS APPLY (SELECT SUBSTRING(CONVERT(VARCHAR, DATEADD(minute, ISNULL(SUM(ISNULL(TDB.[time], 0)), 0), ''19000101''), 108), 1, 5) AS [TOTALTIME] FROM [dbo].[TimeDayBook] TDB WITH (NOLOCK) WHERE TDB.[FeeEarn] = @Handler AND TDB.[matter] = SM.[code]) TTT' SET @NCOMMAND = @NCOMMAND + N' LEFT OUTER JOIN [dbo].[RecentMatterList] RML WITH (NOLOCK) ON RML.[FEE] = @handler AND RML.[MATTER] = SM.[Code]' IF (@BitWiseID = 0) BEGIN SET @NCOMMAND = @NCOMMAND + N' WHERE ( SM.[Privileges] = 0 OR SM.[Privileges] = -1)' END ELSE IF (@BitWiseID = -1) BEGIN SET @NCOMMAND = @NCOMMAND + N' WHERE 1 = 1' END ELSE BEGIN SET @NCOMMAND = @NCOMMAND + N' WHERE SM.[Privileges] & @BitWiseID <> 0' END IF (@which = 1) BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FECode] = @handler' END IF (@closed = 'N') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Closed] = 0' END IF (@closed = 'Y') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Closed] = 1' END IF (@worktype <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[WType] = @WorkType' END IF (@department <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Dept] = @department' END IF (@filecolour <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FileColour] = @filecolour' END IF (@feecode <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FECode] = @feecode' END DECLARE @SearchIncludes NVARCHAR(MAX) SET @SearchIncludes = N'' IF (@searchtext <> '') BEGIN IF SUBSTRING(@searchtext, 1, 1) <> '%' BEGIN SET @searchtext = '%' + @searchtext END IF SUBSTRING(@searchtext, LEN(@searchtext), 1) <> '%' BEGIN SET @searchtext = @searchtext + '%' END SET @searchtext = @searchtext COLLATE SQL_Latin1_General_Cp1251_CS_AS IF (@includeaddress = 0) AND (@includecode = 0) AND (@includedescription = 0) AND (@includename = 0) AND (@includeoldref = 0) AND (@includeuser1 = 0) AND (@includeemail = 0) BEGIN -- This is the standard call - not from Advanced Matter Search, so we search in everything IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END IF @searchonlycode <> 'yes' BEGIN SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext OR SM.[Code] LIKE @searchtext OR SM.[User1] LIKE @searchtext OR SM.[User2] LIKE @searchtext OR SM.[User3] LIKE @searchtext OR SM.[OldRef] LIKE @searchtext OR SM.[YourRef] LIKE @searchtext OR SM.[NCName] LIKE @searchtext OR SM.[NCAddress] LIKE @searchtext OR SM.[Email] LIKE @searchtext OR SM.[NCHandlerName] LIKE @searchtext OR SM.[NCPartnerName] LIKE @searchtext OR SM.[DeptDescription] LIKE @searchtext OR SM.[WTypeDescription] LIKE @searchtext OR SM.[FileColourDescription] LIKE @searchtext OR SM.[MatterStatusDescription] LIKE @searchtext' END ELSE BEGIN SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext' END END ELSE BEGIN IF (@includeaddress = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @searchtext' END IF (@includecode = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext' END IF (@includedescription = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext' END IF (@includename = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @searchtext' END IF (@includeoldref = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @searchtext' END IF (@includeuser1 = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @searchtext' END IF (@includeemail = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Email] LIKE @searchtext' END END END IF @andoraddress = 'OR' BEGIN IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%' BEGIN SET @andoraddressvalue = '%' + @andoraddressvalue END IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%' BEGIN SET @andoraddressvalue = @andoraddressvalue + '%' END SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @andoraddressvalue' END IF @andorcode = 'OR' BEGIN IF CHARINDEX('%', @andorcodevalue, 1) = 0 BEGIN IF SUBSTRING(@andorcodevalue, 1, 1) <> '%' BEGIN SET @andorcodevalue = '%' + @andorcodevalue END IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%' BEGIN SET @andorcodevalue = @andorcodevalue + '%' END END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @andorcodevalue' END IF @andordept = 'OR' BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Dept]= @andordeptvalue' END IF @andordescription = 'OR' BEGIN IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%' BEGIN SET @andordescriptionvalue = '%' + @andordescriptionvalue END IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%' BEGIN SET @andordescriptionvalue = @andordescriptionvalue + '%' END SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @andordescriptionvalue' END IF @andorfeecode = 'OR' BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[FECode] = @andorfeecodevalue' END IF @andorname = 'OR' BEGIN IF SUBSTRING(@andornamevalue, 1, 1) <> '%' BEGIN SET @andornamevalue = '%' + @andornamevalue END IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%' BEGIN SET @andornamevalue = @andornamevalue + '%' END SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @andornamevalue' END IF @andoroldref = 'OR' BEGIN IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%' BEGIN SET @andoroldrefvalue = '%' + @andoroldrefvalue END IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%' BEGIN SET @andoroldrefvalue = @andoroldrefvalue + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @andoroldrefvalue' END IF @andoruser1 = 'OR' BEGIN IF SUBSTRING(@andoruser1value, 1, 1) <> '%' BEGIN SET @andoruser1value = '%' + @andoruser1value END IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%' BEGIN SET @andoruser1value = @andoruser1value + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @andoruser1value' END IF @andoruser2 = 'OR' BEGIN IF SUBSTRING(@andoruser2value, 1, 1) <> '%' BEGIN SET @andoruser2value = '%' + @andoruser2value END IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%' BEGIN SET @andoruser2value = @andoruser2value + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User2] LIKE @andoruser2value' END IF @andoruser3 = 'OR' BEGIN IF SUBSTRING(@andoruser3value, 1, 1) <> '%' BEGIN SET @andoruser3value = '%' + @andoruser3value END IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%' BEGIN SET @andoruser3value = @andoruser3value + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User3] LIKE @andoruser3value' END IF @andorwtype = 'OR' BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[WType] = @andorwtypevalue' END IF @andoryourref = 'OR' BEGIN IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%' BEGIN SET @andoryourrefvalue = '%' + @andoryourrefvalue END IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%' BEGIN SET @andoryourrefvalue = @andoryourrefvalue + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[YourRef] LIKE @andoryourrefvalue' END --SELECT @SearchIncludes IF @SearchIncludes <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND ( ' + @SearchIncludes + N')' END IF @andoraddress = 'AND' BEGIN IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%' BEGIN SET @andoraddressvalue = '%' + @andoraddressvalue END IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%' BEGIN SET @andoraddressvalue = @andoraddressvalue + '%' END SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS SET @NCOMMAND = @NCOMMAND + N' AND SM.[NCAddress] LIKE @andoraddressvalue' END IF @andorcode = 'AND' BEGIN IF SUBSTRING(@andorcodevalue, 1, 1) <> '%' BEGIN SET @andorcodevalue = '%' + @andorcodevalue END IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%' BEGIN SET @andorcodevalue = @andorcodevalue + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[Code] LIKE @andorcodevalue' END IF @andordept = 'AND' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Dept] = @andordeptvalue' END IF @andordescription = 'AND' BEGIN IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%' BEGIN SET @andordescriptionvalue = '%' + @andordescriptionvalue END IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%' BEGIN SET @andordescriptionvalue = @andordescriptionvalue + '%' END SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS SET @NCOMMAND = @NCOMMAND + N' AND SM.[NCDescription] LIKE @andordescriptionvalue' END IF @andorfeecode = 'AND' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FECode] = @andorfeecodevalue' END IF @andorname = 'AND' BEGIN IF SUBSTRING(@andornamevalue, 1, 1) <> '%' BEGIN SET @andornamevalue = '%' + @andornamevalue END IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%' BEGIN SET @andornamevalue = @andornamevalue + '%' END SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS SET @NCOMMAND = @NCOMMAND + N' AND SM.[NCName] LIKE @andornamevalue' END IF @andoroldref = 'AND' BEGIN IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%' BEGIN SET @andoroldrefvalue = '%' + @andoroldrefvalue END IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%' BEGIN SET @andoroldrefvalue = @andoroldrefvalue + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[OldRef] LIKE @andoroldrefvalue' END IF @andoruser1 = 'AND' BEGIN IF SUBSTRING(@andoruser1value, 1, 1) <> '%' BEGIN SET @andoruser1value = '%' + @andoruser1value END IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%' BEGIN SET @andoruser1value = @andoruser1value + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[User1] LIKE @andoruser1value' END IF @andoruser2 = 'AND' BEGIN IF SUBSTRING(@andoruser2value, 1, 1) <> '%' BEGIN SET @andoruser2value = '%' + @andoruser2value END IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%' BEGIN SET @andoruser2value = @andoruser2value + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[User2] LIKE @andoruser2value' END IF @andoruser3 = 'AND' BEGIN IF SUBSTRING(@andoruser3value, 1, 1) <> '%' BEGIN SET @andoruser3value = '%' + @andoruser3value END IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%' BEGIN SET @andoruser3value = @andoruser3value + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[User3] LIKE @andoruser3value' END IF @andorwtype = 'AND' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[WType] = @andorwtypevalue' END IF @andoryourref = 'AND' BEGIN IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%' BEGIN SET @andoryourrefvalue = '%' + @andoryourrefvalue END IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%' BEGIN SET @andoryourrefvalue = @andoryourrefvalue + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[YourRef] LIKE @andoryourrefvalue' END --SELECT @orderby, @order SET @NCOMMAND = @NCOMMAND + N' ORDER BY ' + CASE @orderby WHEN N'description' THEN N'CASE WHEN SM.[Description] = '''' THEN 1 ELSE 0 END, SM.[Description] ' + @order + N', SM.[Code] ' + @order WHEN N'Code' THEN N'CASE WHEN SM.[Code] = '''' THEN 1 ELSE 0 END, SM.[Code] ' + @order WHEN N'Name' THEN N'CASE WHEN SM.[Name] = '''' THEN 1 ELSE 0 END, SM.[Name] ' + @order + N', SM.[Code] ' + @order WHEN N'Address' THEN N'CASE WHEN SM.[Address] = '''' THEN 1 ELSE 0 END, SM.[Address] ' + @order + N', SM.[Code] ' + @order WHEN N'Email' THEN N'CASE WHEN SM.[Email] = '''' THEN 1 ELSE 0 END, SM.[Email] ' + @order + N', SM.[Code] ' + @order WHEN N'PhoneNumber' THEN N'CASE WHEN SM.[PhoneNumber] = '''' THEN 1 ELSE 0 END, SM.[PhoneNumber] ' + @order + N', SM.[Code] ' + @order WHEN N'user1' THEN N'CASE WHEN SM.[User1] = '''' THEN 1 ELSE 0 END, SM.[User1] ' + @order + N', SM.[Code] ' + @order WHEN N'user2' THEN N'CASE WHEN SM.[User2] = '''' THEN 1 ELSE 0 END, SM.[User2] ' + @order + N', SM.[Code] ' + @order WHEN N'user3' THEN N'CASE WHEN SM.[User3] = '''' THEN 1 ELSE 0 END, SM.[User3] ' + @order + N', SM.[Code] ' + @order WHEN N'yourref' THEN N'CASE WHEN SM.[YourRef] = '''' THEN 1 ELSE 0 END, SM.[YourRef] ' + @order + N', SM.[Code] ' + @order WHEN N'OldRef' THEN N'CASE WHEN SM.[OldRef] = '''' THEN 1 ELSE 0 END, SM.[OldRef] ' + @order + N', SM.[Code] ' + @order WHEN N'FileNum' THEN N'CASE WHEN SM.[FileNum] = 0 THEN 1 ELSE 0 END, SM.[FileNum] ' + @order + N', SM.[Code] ' + @order WHEN N'department' THEN N'CASE WHEN SM.[DeptDescription] = '''' THEN 1 ELSE 0 END, SM.[DeptDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'Dept' THEN N'CASE WHEN SM.[DeptDescription] = '''' THEN 1 ELSE 0 END, SM.[DeptDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'worktype' THEN N'CASE WHEN SM.[WTypeDescription] = '''' THEN 1 ELSE 0 END, SM.[WTypeDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'FeeCode' THEN N'CASE WHEN SM.[FECode] = '''' THEN 2 WHEN SM.[FECode] = ''ADM'' THEN 1 ELSE 0 END, SM.[FECode] ' + @order + N', SM.[Code] ' + @order WHEN N'FeeEarner' THEN N'CASE WHEN SM.[HandlerName] = '''' AND SM.[FECode] = '''' THEN 3 WHEN SM.[HandlerName] = '''' THEN 2 WHEN SM.[HandlerName] = ''Admin'' THEN 1 ELSE 0 END, SM.[HandlerName] ' + @order + N', SM.[Code] ' + @order WHEN N'FileColour_Fld' THEN N'CASE WHEN SM.[FileColourDescription] = '''' THEN 1 ELSE 0 END, SM.[FileColourDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'FileColour' THEN N'CASE WHEN SM.[FileColourDescription] = '''' THEN 1 ELSE 0 END, SM.[FileColourDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'started' THEN N'SM.[Started] ' + @order + N', SM.[Code] ' + @order WHEN N'LastAccessed' THEN N'CASE WHEN RML.[DateField] IS NULL THEN 1 ELSE 0 END, RML.[DateField] ' + @order + N', SM.[Code] ' + @order WHEN N'closedate' THEN N'CASE WHEN SM.[CloseDate] IS NULL THEN 1 ELSE 0 END, SM.[CloseDate] ' + @order + N', SM.[Code] ' + @order WHEN N'orgcloseddate' THEN N'CASE WHEN SM.[orgcloseddate] IS NULL THEN 1 ELSE 0 END, SM.[orgcloseddate] ' + @order + N', SM.[Code] ' + @order WHEN N'casestatusdesc' THEN N'CASE WHEN SM.[MatterStatusDescription] IS NULL THEN 1 ELSE 0 END, SM.[MatterStatusDescription] ' + @order + N', SM.[Code] ' + @order ELSE CASE WHEN @Which <> 2 THEN N'SM.[Code] ' + @order ELSE N'CASE WHEN RML.[DateField] IS NULL THEN 1 ELSE 0 END, RML.[DateField] DESC, SM.[Code] ' + @order END END SET @NCOMMAND = @NCOMMAND + N' SELECT * FROM( SELECT ROW_NUMBER() OVER(ORDER BY [RES].[id]) AS [RowNumber], [RES].[Code], [RES].[Name], [RES].[Description] FROM @Result [RES])AS MatterTable WHERE MatterTable.[RowNumber] BETWEEN @StartRow AND @EndRow ORDER BY MatterTable.[RowNumber] ASC SELECT COUNT([RES].[id]) AS [TotalRecord] FROM @Result [RES]' --SELECT @NCOMMAND EXECUTE sp_executesql @NCOMMAND, N'@HowMany INT, @BitWiseID BIGINT, @Handler VARCHAR(10), @WorkType VARCHAR(5), @department VARCHAR(5), @filecolour VARCHAR(3), @feecode VARCHAR(10), @searchtext VARCHAR(MAX), @andoraddressvalue VARCHAR(200), @andorcodevalue VARCHAR(200), @andordeptvalue VARCHAR(200), @andordescriptionvalue VARCHAR(200), @andorfeecodevalue VARCHAR(200), @andornamevalue VARCHAR(200), @andoroldrefvalue VARCHAR(200), @andoruser1value VARCHAR(200), @andoruser2value VARCHAR(200), @andoruser3value VARCHAR(200), @andorwtypevalue VARCHAR(200), @andoryourrefvalue VARCHAR(200), @StartRow INT, @EndRow INT', @Howmany, @BitWiseID, @handler, @worktype, @department, @filecolour, @feecode, @searchtext, @andoraddressvalue, @andorcodevalue, @andordeptvalue, @andordescriptionvalue, @andorfeecodevalue, @andornamevalue, @andoroldrefvalue, @andoruser1value, @andoruser2value, @andoruser3value, @andorwtypevalue, @andoryourrefvalue, @StartRow, @EndRow END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchAllSettings' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchAllSettings] END GO CREATE PROCEDURE [dbo].[KAAS_FetchAllSettings] AS /**************************************************************************************************************** * * [dbo].[spGetSettings] * * Get system configuration settings * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * remains fully functional * ****************************************************************************************** * * * * Supersedes: - * * First compatible version: - * * Last compatible software version: - * * Superseded by: - * * * ****************************************************************************************** * * Modification History * ????-??-?? ??????????? Created * 2018-08-24 Pino Carafa Override values for SAM4 where necessary * 2018-08-28 John Ginnane Converting CtrlStr.StrValue to VARCHAR(100) so ISNULL doesn't truncate Settings.KeyValue * 2021-05-13 Pino Carafa Do the logic to distinguish SAM3/SAM4 when creating the SP in order the hugely * simplify the SP itself. Use NoLock. Don't use a Table Variable * * 2022-07-04 Vinodhkumar.M [KAAS_FetchAllSettings] * ****************************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [SET].[KeyName], [SET].[KeyValue] FROM [dbo].[Settings] [SET] WITH (NOLOCK) SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchAssociateUDFForEdit' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchAssociateUDFForEdit] END GO CREATE PROCEDURE [dbo].[KAAS_FetchAssociateUDFForEdit] (@NAMECODE VARCHAR(20), @FILEPREFIX VARCHAR(5), @FIELDNAME VARCHAR(30), @CASECODE VARCHAR(20) = '') AS /******************************************************************************************************* * Fetches the details for a field to be edited * * * * NOTE: @CASECODE is used to determine the field's document code. The code is * * usually [AUD:FieldName.AssociateType#01] but as associates can be more than * * one type, it checks what type the associate is in the specified case. Otherwise * * it will return the associate's primary type * * * * Stored Procedure Name : [dbo].[KAAS_FetchAssociateUDFForEdit] * * Copied from : [dbo].[ky_NETFetchAssociateUDFForEdit] * * * * Modification History : * * 2019-06-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @INITIALVALUE VARCHAR(MAX) DECLARE @INITIALFORMAT VARCHAR(50) DECLARE @INITIALTYPE VARCHAR(11) DECLARE @INITIALNUMERICVALUE DECIMAL(20, 2) DECLARE @INITIALDATE DATETIME SELECT @INITIALVALUE = [SUF].[INITIALVALUE], @INITIALFORMAT = [SUF].[FORMAT], @INITIALTYPE = [SUF].[TYPE] FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] = @FILEPREFIX AND [SUF].[FIELDNAME] = @FIELDNAME IF @INITIALVALUE IS NOT NULL BEGIN IF (@INITIALTYPE = 'Numeric') OR (@INITIALFORMAT LIKE '@n%') BEGIN BEGIN TRY SET @INITIALNUMERICVALUE = CONVERT(DECIMAL(20, 2), CONVERT(MONEY, @INITIALVALUE)) END TRY BEGIN CATCH END CATCH END ELSE IF (@INITIALTYPE = 'Date') OR (@INITIALFORMAT LIKE '@d%') OR (@INITIALFORMAT LIKE '%DD%') OR (@INITIALFORMAT LIKE '%MM%') OR (@INITIALFORMAT LIKE '%YY%') BEGIN BEGIN TRY SET @INITIALVALUE = [dbo].[ky_SUFFormat](@INITIALVALUE, @INITIALFORMAT) IF RTRIM(ISNULL(@INITIALVALUE, '')) <> '' BEGIN SET @INITIALDATE = CONVERT(DATETIME, [dbo].[ky_SUFFormat](@INITIALVALUE, '@D8')) END END TRY BEGIN CATCH END CATCH END END SELECT [SUF].[PROMPT] AS [Detail], [SUF].[LENGTH] AS [Size], [SUF].[FORMAT] AS [Format], RTRIM([SUF].[FILEPREFIX]) + RTRIM(ISNULL([SUF].[FIELDNAME], '')) + '.' + ISNULL(RTRIM([CC].[CONTYPE]), RTRIM([CAN].[TYPE])) + '#' + RIGHT('00' + CONVERT(VARCHAR(2), ISNULL([CC].[CONNUM], 1)), 2) AS [DocumentCode], CASE WHEN [AUD].[NameCode] IS NULL THEN CONVERT(VARCHAR(11), @INITIALDATE, 106) ELSE CONVERT(VARCHAR(11), [AUD].[DateValue], 106) END AS [DateValue], CASE WHEN [AUD].[NameCode] IS NULL THEN CONVERT(DECIMAL(20, 2), ISNULL(@INITIALNUMERICVALUE, 0)) ELSE [AUD].[NumberValue] END AS [NumberValue], CASE WHEN [AUD].[NameCode] IS NULL THEN ISNULL(@INITIALVALUE, '') ELSE [AUD].[TextValue] END AS [TextValue], [SUF].[TYPE] AS [TYPE], [SUF].[FILEPREFIX] AS [FILEPREFIX], [SUF].[FIELDNAME] AS [FIELDNAME], RTRIM(ISNULL([SUF].[VALIDATION], '')) AS [VALIDATION], ISNULL([SUF].[LENGTH], 0) AS [LENGTH], ISNULL([SUF].[LOW], 0) AS [LOW], ISNULL([SUF].[HIGH], 0) AS [HIGH], ISNULL([SUF].[DECMIAL], 0) AS [DECIMAL] FROM [dbo].[SystemUserDefinedFields] AS [SUF] LEFT OUTER JOIN [dbo].[AssociateUDF] AS [AUD] ON [AUD].[NameCode] = @NAMECODE AND [AUD].[FilePrefix] = [SUF].[FILEPREFIX] AND [AUD].[FieldName] = [SUF].[FIELDNAME] LEFT OUTER JOIN [dbo].[CaseAssociatesNames] AS [CAN] ON [CAN].[CODE] = [AUD].[NameCode] LEFT OUTER JOIN [dbo].[CaseContacts] AS [CC] ON [CC].[CASECODE] = @CASECODE AND RTRIM(ISNULL([CC].[CASECODE], '')) <> '' AND [CC].[NAMECODE] = @NAMECODE WHERE [SUF].[FILEPREFIX] = @FILEPREFIX AND [SUF].[FIELDNAME] = @FIELDNAME /* KEYD-5690 - This fills in the details of the associate on the AUD prompt */ SELECT LTRIM(RTRIM([CAN].[CODE])) AS [Code], ISNULL(LTRIM(RTRIM([CAN].[NAME])), '') AS [Name], ISNULL([AST].[DESCRIPTION], ISNULL([CC].[CONTYPE], [CAN].[TYPE])) AS [Type], ISNULL(@CASECODE, '') AS [CaseCode], [CC].[CONNUM] AS [Sequence] FROM [dbo].[CaseAssociatesNames] AS [CAN] LEFT OUTER JOIN [dbo].[CaseContacts] AS [CC] ON [CAN].[CODE] = [CC].[NAMECODE] AND [CC].[CASECODE] = @CASECODE LEFT OUTER JOIN [dbo].[AssociateTypes] AS [AST] ON ISNULL([CC].[CONTYPE], [CAN].[TYPE]) = [AST].[CODE] WHERE [CAN].[CODE] = @NAMECODE SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchAssociateUDFs', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_FetchAssociateUDFs] END GO CREATE PROCEDURE [dbo].[KAAS_FetchAssociateUDFs] ( @NAMECODE VARCHAR(20)) AS /******************************************************************************************************* * This procedure is used load the data for Edit professional page. * * * * Stored Procedure Name : [dbo].[KAAS_FetchAssociateUDFs] * * Copied from : [dbo].[ky_NETFetchAssociateUDFs] * * * * Modification History : * * 2019-06-03 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON -- Add any missing UDFs to this associate from all of their types ;WITH CTE ([FILEPREFIX], [FIELDNAME]) AS ( SELECT LTRIM(RTRIM(ATU.[FILEPREFIX])), LTRIM(RTRIM(ATU.[FIELDNAME])) FROM [dbo].[AssociateTypeUDFs] AS ATU INNER JOIN [dbo].[AssociateTypes] AS [AT] ON ATU.[TypeCode] = [AT].[CODE] INNER JOIN [dbo].[CaseAssoicatesTypes] AS CAT ON [AT].[CODE] = CAT.[TYPECODE] WHERE LTRIM(RTRIM(CAT.[NAMECODE])) = LTRIM(RTRIM(@NAMECODE)) GROUP BY LTRIM(RTRIM(ATU.[FILEPREFIX])), LTRIM(RTRIM(ATU.[FIELDNAME]))) INSERT INTO [dbo].[AssociateUDF] ( [NameCode], [FilePrefix], [FieldName], [TextValue], [NumberValue], [DateValue]) SELECT @NAMECODE, SUDF.[FILEPREFIX], SUDF.[FIELDNAME], CASE WHEN SUDF.[TYPE] = 'Text' THEN SUDF.[INITIALVALUE] WHEN SUDF.[TYPE] = 'Numeric' AND ISNULL(SUDF.[INITIALVALUE], '') <> '' AND PATINDEX('%[^0-9.]%', SUDF.[INITIALVALUE]) <= 0 THEN SUDF.[INITIALVALUE] ELSE '' END, CASE WHEN SUDF.[TYPE] = 'Numeric' AND ISNULL(SUDF.[INITIALVALUE], '') <> '' AND PATINDEX('%[^0-9.]%', SUDF.[INITIALVALUE]) <= 0 THEN CONVERT(DECIMAL(19, 2), SUDF.[INITIALVALUE]) ELSE 0.00 END, NULL FROM [dbo].[SystemUserDefinedFields] AS SUDF INNER JOIN CTE ON CTE.[FILEPREFIX] = LTRIM(RTRIM(SUDF.[FILEPREFIX])) AND CTE.[FIELDNAME] = LTRIM(RTRIM(SUDF.[FIELDNAME])) LEFT OUTER JOIN [dbo].[AssociateUDF] AS AUD ON AUD.[FilePrefix] = SUDF.[FILEPREFIX] AND AUD.[FieldName] = SUDF.[FIELDNAME] AND AUD.[NameCode] = @NAMECODE WHERE AUD.[Id] IS NULL SELECT AUD.[Id] AS [ID], RTRIM(ISNULL(UDFC.[UDFCategory],'')) AS [GroupName], RTRIM(SUDF.[PROMPT]) AS [Detail], RTRIM(AUD.[DateValue]) AS [DateValue], CASE RTRIM(SUDF.[VALIDATION]) WHEN 'L' THEN RTRIM(ISNULL(AUD.[TextValue],'')) + ' - ' + RTRIM(ISNULL(UDFL.[DESCRIPTION], '')) WHEN 'R' THEN CONVERT(VARCHAR(200), RTRIM(ISNULL(AUD.[TextValue],''))) WHEN 'T' THEN CONVERT(VARCHAR(200), RTRIM(ISNULL(AUD.[TextValue],''))) ELSE CASE RTRIM(SUDF.[TYPE]) WHEN 'Text' THEN AUD.[TextValue] WHEN 'Numeric' THEN CONVERT(VARCHAR(20), CAST(AUD.[NumberValue] AS MONEY ), 1) WHEN 'Date' THEN CONVERT(VARCHAR(20), AUD.[DateValue], 106) ELSE CONVERT(VARCHAR(200), RTRIM(ISNULL(AUD.[TextValue],''))) END END AS [Value], RTRIM(ISNULL(AUD.[NumberValue], 0)) AS [NumberValue], RTRIM(ISNULL(AUD.[TextValue], '')) AS [TextValue], RTRIM(SUDF.[TYPE]) AS [TYPE], RTRIM(SUDF.[FILEPREFIX]) AS [FILEPREFIX], RTRIM(SUDF.[FIELDNAME]) AS [FIELDNAME], RTRIM(ISNULL(SUDF.[UDFCategory], 0)) AS [UDFCategory], ISNULL(RTRIM(LTRIM(UDFC.[UDFCategory])), '') AS [GroupName], SUDF.[DECMIAL] AS [DECIMAL], SUDF.[LENGTH] AS [LENGTH] FROM [dbo].[AssociateUDF] AS AUD INNER JOIN [dbo].[SystemUserDefinedFields] AS SUDF ON AUD.[FilePrefix] = SUDF.[FILEPREFIX] AND AUD.[FieldName] = SUDF.[FIELDNAME] LEFT OUTER JOIN [dbo].[UDFCategory] AS UDFC ON SUDF.[UDFCategory] = UDFC.[ID] LEFT OUTER JOIN [dbo].[UDFLookups] AS UDFL ON AUD.[FieldName] = UDFL.[FIELDNAME] AND AUD.[TextValue] = UDFL.[CODE] WHERE RTRIM(AUD.[NameCode]) = RTRIM(@NAMECODE) ORDER BY AUD.[Id] ASC SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchBrowseDocuments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchBrowseDocuments] END GO CREATE PROCEDURE [dbo].[KAAS_FetchBrowseDocuments] AS /************************************************************************************************ * This procedure is used to fetch browse documents * * * * Stored Procedure Name : [dbo].[KAAS_FetchBrowseDocuments] * * Copied from : [dbo].[Ky_NetFetchBrowseDocuments] * * * * Modification History : * * 2023-06-26 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(ISNULL([TDC].[CODE], '')) AS [Code], RTRIM(ISNULL([TDC].[FILEPATH], '')) AS [FilePath], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([TDC].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([TDC].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([TDC].[FILEPATH], ''))) - 2) END AS [UNCFilePath], RTRIM(ISNULL([TDC].[NAME], '')) AS [Name], RTRIM(ISNULL([TDC].[TYPE], '')) AS [Type], RTRIM(ISNULL([TDC].[DOCCLASS], '')) AS [DOCClass], RTRIM(ISNULL([TDC].[STORE], '')) AS [Store] FROM [dbo].[TemplateDocuments] [TDC] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([TDC].[FILEPATH], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([TDC].[FILEPATH], 1, 1) ORDER BY [TDC].[CODE] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchBrowseSubDocuments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchBrowseSubDocuments] END GO CREATE PROCEDURE [dbo].[KAAS_FetchBrowseSubDocuments] (@Document VARCHAR(10)) AS /************************************************************************************************ * This procedure is used Fetch the information for work flow Action Page Browse Documents * * * * Stored Procedure Name : [dbo].[KAAS_FetchBrowseSubDocuments] * * Copied from : [dbo].[Ky_NetFetchBrowseSubDocuments] * * * * Modification History : * * 2023-06-26 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [TAD].[Action], [TAD].[Document], [TAC].[ActionCode], [TAC].[Desc], [TAC].[WKTCode], [TAC].[ACTType], [TAC].[Status], [TAC].[MilestoneType] FROM [dbo].[TemplateActionDcouments] [TAD] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] ON [TAC].[ACTIONCODE] = [TAD].[ACTION] WHERE [TAD].[DOCUMENT] = @Document ORDER BY [TAD].[DOCUMENT], [TAD].[ACTION] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchCaseAssociateEditLoadData' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchCaseAssociateEditLoadData] END GO CREATE PROCEDURE [dbo].[KAAS_FetchCaseAssociateEditLoadData] (@Code VARCHAR(20), @CaseCode VARCHAR(50), @ConType VARCHAR(15), @ConNum INT) AS /**************************************************************************************************************************** * * * Description : This sp is used to Fetch Data for Case Associate popup window on Edit * * * * Stored Procedure Name : KAAS_FetchCaseAssociateEditLoadData * * Copied From : ky_NETFetchCaseAssociateEditLoadData * * * * Modification History * * 2015-01-21 PINO Change NVARCHAR to VARCHAR * * various issues with incorrectly processed columns, e.g. * * formatting the [DECEASED] column as a DATETIME, and * * numeric columns as VARCHAR * * Alignment, aliasing and readability improvements * * 2015-01-21 ARUN Convert AssigendContact from decimal to nvarchar while fetch. and * * if its null then it return empty * * 2015-02-03 Praveen Added following field BankName,BankAddress,BankSortCode,BankAccNo,IBan,Bic * * 2015-10-01 Sridharan KEYD - 2584 Unable to delete or retire certain Codes and Narratives * * 2015-10-15 Sridharan RDJ - 156 -Adding same Associate twice * * 2015-11-09 Pino As per ky_NETCaseAssociateFetchAddProfessionalLoadData, we need to Uppercase the type * * 2016-03-09 Sridharan KEYD-3352-When you add an undertakings with “Add as Comment to Ledger” check box unticked, * * when you open that undertakings the check box ticked automatically. * * 2016-04-04 Pino KEYD-3483 - Should not be allowed to delete a type when it's been used for any * * case. Added a "UsedInCase" column in the second table returned by this SP. * * 2016-10-27 Sridharan KEYD-4197: EFT Bank Details Validation on Contact and Case Associate screens * * 2018-09-07 Pino KEYD-5401: The company reg no is saving just fine. It's just not retrieve here! * * 2019-01-24 Pino KEYD-5503: Add EFTEmailAddress * * 2019-02-07 Pino KEYD-5619: Add SOLISCAN and INSISCAN (SOLCODE c.q. INSCODE is a Case Associate Name code) * * 2019-07-30 Vindohan Created ky_NETFetchCaseAssociateEditLoadData * * 2019-12-09 Vinodhan Removed the conversion of DATETIME to VARCHAR of type 112 * * * ****************************************************************************************************************************/ BEGIN DECLARE @AssCont VARCHAR(100) SET NOCOUNT ON SELECT RTRIM(ISNULL([CAN].[CODE],'')) AS [Code], RTRIM(ISNULL(CONVERT(VARCHAR(18),[CC].[AssignedContact]),'')) AS [AssignedContact], RTRIM(ISNULL([CC].[CASECODE],'')) AS [CaseCode], UPPER(RTRIM(ISNULL([CC].[CONTYPE],''))) AS [Type], RTRIM(ISNULL([CAN].[NAME],'')) AS [Name], RTRIM(ISNULL([CAN].[SALUTATION],'')) AS [Salutation], RTRIM(ISNULL([CAN].[TITLE],'')) AS [Title], RTRIM(ISNULL([CAN].[COMPANY],'')) AS [Company], RTRIM(ISNULL([CAN].[ADDRESS],'')) AS [Address], RTRIM(ISNULL([CAN].[FORENAME],'')) AS [ForeName], RTRIM(ISNULL([CAN].[SURNAME],'')) AS [SurName], RTRIM(ISNULL([CAN].[PHONENO],'')) AS [PhoneNo], RTRIM(ISNULL([CAN].[FAXNO],'')) AS [FaxNo], RTRIM(ISNULL([CAN].[HOME],'')) AS [Home], RTRIM(ISNULL([CAN].[MOBILENO],'')) AS [MobileNo], RTRIM(ISNULL([CAN].[EMAIL],'')) AS [Email], RTRIM(ISNULL([CAN].[WEBADDRESS],'')) AS [WebAddress], RTRIM(ISNULL([CAN].[SSNUMBER],'')) AS [SSNumber], RTRIM(ISNULL([CAN].[LEGALNAME],'')) AS [LegalName], RTRIM(ISNULL([CAN].[LEGALADDRESS],'')) AS [LegalAddress], ISNULL([CAN].[COURTNO],0) AS [CourtNo], RTRIM(ISNULL([CAN].[COURTAREA],'')) AS [CourtArea], RTRIM(ISNULL([CAN].[TAX],'')) AS [Tax], RTRIM(ISNULL([CAN].[DXREF],'')) AS [DXRef], CASE [CAN].[DOB] WHEN NULL THEN '' ELSE CONVERT(VARCHAR(20),[CAN].[DOB],112) END AS [DOB], RTRIM(ISNULL([CAN].[MARTIALSTATUS], '')) AS [MaritalStatus], CASE [CAN].[MARRIAGEDATE] WHEN NULL THEN '' ELSE CONVERT(VARCHAR(20),[CAN].[MARRIAGEDATE],112) END AS [MarriageDate], RTRIM(ISNULL([CAN].[DECEASED], '')) AS [Deceased], CASE [CAN].[DATESEPARATED] WHEN NULL THEN '' ELSE CONVERT(VARCHAR(20),[CAN].[DATESEPARATED],112) END AS [DateSeparated], CASE [CAN].[DECEASEDDATE] WHEN NULL THEN '' ELSE CONVERT(VARCHAR(20),[CAN].[DECEASEDDATE],112) END AS [DeceasedDate], RTRIM(ISNULL([CAN].[SEPARATED],'')) AS [Separated], RTRIM(ISNULL([CAN].[HOWSEPARATED],'')) AS [HowSeparated], RTRIM(ISNULL([CAN].[OCCUPATION],'')) AS [Occupation], RTRIM(ISNULL([CAN].[SEARCH],'')) AS [Search], ISNULL([CAN].[CONTACTNO],0) AS [ContactNo], RTRIM(ISNULL([CAN].[NOTES],'')) AS [Notes], RTRIM(ISNULL([CAN].[Area],'')) AS [Area], RTRIM(ISNULL([CAN].[Town],'')) AS [Town], RTRIM(ISNULL([CAN].[Gender],'')) AS [Gender], RTRIM(ISNULL([CAN].[AddressType],'')) AS [AddressType], RTRIM(ISNULL([CAN].[ServiceType],'')) AS [ServiceType], RTRIM(ISNULL([CAN].[CRONumber],'')) AS [CRONumber], RTRIM(ISNULL([CAN].[VATNumber],'')) AS [VATNumber], RTRIM(ISNULL([CAN].[CompanyRegNo],'')) AS [CompanyRegNo], ISNULL([CC].[CONNUM],0) AS [ConNum], RTRIM(ISNULL([CC].[SOLCODE],'')) AS [SolCode], RTRIM(ISNULL([CC].[SOLREF],'')) AS [SolRef], RTRIM(ISNULL([CC].[INSCODE],'')) AS [INSCode], RTRIM(ISNULL([CC].[INSREF],'')) AS [INSRef], RTRIM(ISNULL([CC].[COURTRECORDNO],'')) AS [CourtRecordNo], [CC].[HEARINGDATE] AS [HearingDate], RTRIM(ISNULL([CC].[TIME],'')) AS [Time], RTRIM(ISNULL([CC].[Relationship],'')) AS [Relationship], RTRIM(ISNULL([CC].[Nominated],'')) AS [Nominated], [CC].[CivilSumSDate] AS [CivilSumSDate], [CC].[CivilBillSDate] AS [CivilBillSDate], [CC].[SSumSDate] AS [SSumSDate], [CC].[InstOrdSDate] AS [InstOrdSDate], [CC].[ComOrdSDate] AS [ComOrdSDate], [CC].[WarrantIssDate] AS [WarrantIssDate], RTRIM(ISNULL([CAN].[County], '')) AS [County], RTRIM(ISNULL([CAN].[PostalCode], '')) AS [PostalCode] , RTRIM(ISNULL([CAN].[BankName], '')) AS [BankName] , RTRIM(ISNULL([CAN].[BankAddress], '')) AS [BankAddress] , RTRIM(ISNULL([CAN].[BankSortCode], '')) AS [BankSortCode] , RTRIM(ISNULL([CAN].[BankAccNo], '')) AS [BankAccNo] , RTRIM(ISNULL([CAN].[IBAN], '')) AS [IBAN] , RTRIM(ISNULL([CAN].[BIC], '')) AS [BIC], [CC].[IsAssociateOtherSide] AS [IsAssociateOtherSide], [CC].[PUBLISH] AS [Publish] , ISNULL([MC].[Retired], 'N') AS [Retired], ISNULL([CC].[Retired], 'N') AS [CCRetired], ISNULL([CAN].[BankType],'') AS [BankType], RTRIM(ISNULL([CAN].[EFTEmailAddress], '')) AS [EFTEmailAddress], [CC].[SOLISCAN] AS [SOLISCAN], [CC].[INSISCAN] AS [INSISCAN], RTRIM(ISNULL([SOLCAN].[name], '')) AS [SOLName], RTRIM(ISNULL([INSCAN].[name], '')) AS [INSName] FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[CaseAssociatesNames] [CAN] ON [CAN].[CODE] = [CC].[NAMECODE] LEFT OUTER JOIN [dbo].[MiscCodes] [MC] ON [MC].[CDECODE] = [CAN].[MARTIALSTATUS] OUTER APPLY (SELECT TOP 1 [SCAN].[Name] + CASE WHEN RTRIM(ISNULL([SCAN].[Company], '')) = '' THEN '' ELSE ' (' + RTRIM(ISNULL([SCAN].[Company], '')) + ')' END AS [Name] FROM [dbo].[CaseAssociatesNames] [SCAN] WHERE [SCAN].[CODE] = [CC].[SOLCODE]) [SOLCAN] OUTER APPLY (SELECT TOP 1 [ICAN].[Name] + CASE WHEN RTRIM(ISNULL([ICAN].[Company], '')) = '' THEN '' ELSE ' (' + RTRIM(ISNULL([ICAN].[Company], '')) + ')' END AS [Name] FROM [dbo].[CaseAssociatesNames] [ICAN] WHERE [ICAN].[CODE] = [CC].[INSCODE]) [INSCAN] WHERE [CAN].[CODE] = @Code AND [CC].[CASECODE] = @CaseCode AND [CC].[CONTYPE] = @ConType AND [CC].[CONNUM] = @ConNum SELECT RTRIM(ISNULL([CAC].[NAMECODE], '')) AS [NameCode], RTRIM(ISNULL(CAST([CAC].[KEYID] AS VARCHAR(20)), '')) AS [KeyId], RTRIM(ISNULL([CAC].[NAME], '')) AS [Name], RTRIM(ISNULL([CAC].[SALUTATION], '')) AS [Salutation], RTRIM(ISNULL([CAC].[JOBTITLE], '')) AS [JobTitle], RTRIM(ISNULL([CAC].[ADDRESS], '')) AS [Address], RTRIM(ISNULL([CAC].[PHONE], '')) AS [Phone], RTRIM(ISNULL([CAC].[FAX], '')) AS [Fax], RTRIM(ISNULL([CAC].[MOBILE], '')) AS [Mobile], RTRIM(ISNULL([CAC].[EMAIL], '')) AS [Email], RTRIM(ISNULL([CAC].[RELATIONSHIP], '')) AS [Relationship], RTRIM(ISNULL([CAC].[NOTES], '')) AS [Notes] FROM [dbo].[CaseAssociatesContacts] [CAC] WHERE [CAC].[NAMECODE] = @Code SELECT @AssCont = ISNULL([CC].[AssignedContact], 0) FROM [dbo].[CaseContacts] CC WHERE [CC].[NAMECODE] = @Code AND [CC].[CASECODE] = @CaseCode SELECT RTRIM(ISNULL([CAC].[NAMECODE], '')) AS [NameCode], RTRIM(ISNULL(CAST([CAC].[KEYID] AS VARCHAR(20)), '')) AS [KeyId], RTRIM(ISNULL([CAC].[NAME], '')) AS [Name], RTRIM(ISNULL([CAC].[SALUTATION], '')) AS [Salutation], RTRIM(ISNULL([CAC].[JOBTITLE], '')) AS [JobTitle], RTRIM(ISNULL([CAC].[ADDRESS], '')) AS [Address], RTRIM(ISNULL([CAC].[PHONE], '')) AS [Phone], RTRIM(ISNULL([CAC].[FAX], '')) AS [Fax], RTRIM(ISNULL([CAC].[MOBILE], '')) AS [Mobile], RTRIM(ISNULL([CAC].[EMAIL], '')) AS [Email], RTRIM(ISNULL([CAC].[RELATIONSHIP], '')) AS [Relationship], RTRIM(ISNULL([CAC].[NOTES], '')) AS [Notes] FROM [dbo].[CaseAssociatesContacts] [CAC] WHERE [CAC].[KEYID] = @AssCont SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OtherCaseInvolvementTable FROM ( SELECT [CC].[CASECODE] AS [CASECODE], [CC].[CONTYPE] AS [CONTYPE], [CC].[CONNUM] AS [CONNUM], [CC].[NAMECODE] AS [NAMECODE], [CTC].[NAME] AS [NAME], [MAT].[DESCRIPTION] AS [DESCRIPTION] FROM [dbo].[CaseContacts] [CC] LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[CODE] = [CC].[CASECODE] LEFT OUTER JOIN [dbo].[Contacts] [CTC] ON [CTC].[CODE] = [MAT].[CLIENTCODE] WHERE [CC].[NAMECODE] = @Code ) AS OtherCaseInvolvementTable ORDER BY [NAMECODE] ASC, [CONTYPE] ASC, [CASECODE] ASC SELECT * FROM #OtherCaseInvolvementTable SELECT RTRIM([CT].[NAMECODE]) AS [NAMECODE], RTRIM([CT].[TYPECODE]) AS [BankTypeCode], RTRIM([CT].[TYPECODE]) AS [TYPECODE], RTRIM([CAT].[DESCRIPTION]) AS [SEARCHCODE], CASE WHEN [UIC].[TOTAL] = 0 THEN 'N' ELSE 'Y' END AS [UsedInCase] FROM [dbo].[CaseAssoicatesTypes] [CT] INNER JOIN [dbo].[AssociateTypes] [CAT] ON [CAT].[CODE] = [CT].[TYPECODE] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[CaseContacts] [CC] WHERE [CC].[NAMECODE] = [CT].[NAMECODE] AND [CC].[CONTYPE] = [CT].[TYPECODE]) [UIC] WHERE [CT].[NAMECODE] = @Code SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchCaseAssociateType]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchCaseAssociateType] GO CREATE PROCEDURE [KAAS_FetchCaseAssociateType] ( @NAMECODE VARCHAR(20) = '', @Status INT = 0, @PageNumber INT = NULL, @PageSize INT = NULL, @SearchText VARCHAR(400) = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL ) AS /*************************************************************************** Stored Procedure Name : KAAS_FetchCaseAssociateType Copied From : [ky_NETFetchCaseAssociateType] Description: This procedure is used load the data for associate page Popup. 2019-29-07 Vinodhan K Created KAAS_FetchCaseAssociateType ***************************************************************************/ BEGIN SET NOCOUNT ON IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'CODE' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@Status = 1) BEGIN SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #AssociateTableWithCondition FROM (SELECT AssociateTypes.CODE, AssociateTypes.[DESCRIPTION] FROM CaseAssoicatesTypes INNER JOIN AssociateTypes ON CaseAssoicatesTypes.TYPECODE = AssociateTypes.CODE WHERE ( @SearchText IS NULL OR RTRIM(LTRIM(@SearchText)) = '' OR ( [AssociateTypes].[CODE] LIKE '%' + @SearchText + '%' OR [AssociateTypes].[DESCRIPTION] LIKE '%' + @SearchText + '%' ) ) AND (CaseAssoicatesTypes.NAMECODE = @NAMECODE)) AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE WHEN @SortColumn ='CODE' THEN [CODE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE WHEN @SortColumn ='CODE' THEN [CODE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE WHEN @SortColumn ='DESCRIPTION' THEN [DESCRIPTION] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE WHEN @SortColumn ='DESCRIPTION' THEN [DESCRIPTION] END END DESC SELECT * FROM #AssociateTableWithCondition WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #AssociateTableWithCondition END ELSE BEGIN SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #AssociateTable FROM (SELECT AssociateTypes.CODE, AssociateTypes.[DESCRIPTION] FROM AssociateTypes WHERE @SearchText IS NULL OR RTRIM(LTRIM(@SearchText)) = '' OR ( [AssociateTypes].[CODE] LIKE '%' + @SearchText + '%' OR [AssociateTypes].[DESCRIPTION] LIKE '%' + @SearchText + '%' ))AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE WHEN @SortColumn ='CODE' THEN [CODE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE WHEN @SortColumn ='CODE' THEN [CODE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE WHEN @SortColumn ='DESCRIPTION' THEN [DESCRIPTION] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE WHEN @SortColumn ='DESCRIPTION' THEN [DESCRIPTION] END END DESC SELECT * FROM #AssociateTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #AssociateTable END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchCaseClients' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchCaseClients] END GO CREATE PROCEDURE [dbo].KAAS_FetchCaseClients (@MattterCode VARCHAR(20)) AS /******************************************************************************************************* * This is used to fetch case clients * * * * Stored Procedure Name : [dbo].[KAAS_FetchCaseClients] * * * * Modification History : * * 2019-03-06 Vindohan Created * * * *******************************************************************************************************/ BEGIN SELECT [CC].[CLNUMCONTACT] AS [No] FROM [ClientContacts] [CC] INNER JOIN [Matters] [MAT] ON [CC].[CLCODE] = [MAT].[ClientCode] WHERE [MAT].[CODE] = @MattterCode END GO IF OBJECT_ID(N'KAAS_FetchCategory',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchCategory] GO CREATE PROCEDURE [dbo].[KAAS_FetchCategory] ( @CatType VARCHAR(6), @Code VARCHAR(10)) /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_FetchCategory] * * Copied from : NA * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT RTRIM(CategoryType) AS [CategoryType], RTRIM([Description]) AS [Description] FROM CategoryType SELECT RTRIM(Code) AS [Code], RTRIM(Desc$) AS [Description] FROM Category WHERE CatType = @CatType SELECT RTRIM(Cattype) AS [CatType], RTRIM(Code) AS [Code], RTRIM(Desc$) AS [Description], RTRIM(Prompt1) AS [Prompt1], RTRIM(Prompt2) AS [Prompt2], RTRIM(Prompt3) AS [Prompt3], RTRIM(Prompt4) AS [Prompt4], RTRIM(Prompt5) AS [Prompt5], RTRIM(Prompt6) AS [Prompt6], RTRIM(Prompt7) AS [Prompt7], RTRIM(Prompt8) AS [Prompt8], RTRIM(Prompt9) AS [Prompt9], RTRIM(Prompt10) AS [Prompt10] FROM Category WHERE CatType = @CatType AND Code = @Code SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchCategoryDetails]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchCategoryDetails] GO CREATE PROCEDURE [KAAS_FetchCategoryDetails] (@ClientCode VARCHAR(10)) /******************************************************************************************************* * This procedure is used load the Data in Client page Category Grid. * * * * Stored Procedure Name : [dbo].[KAAS_FetchCategoryDetails] * * Copied from : [dbo].[ky_NETCONFetchCategoryDetails] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT C.CONTACT, C.CATEGORYTYPE Code, C.CATEGORY CategoryType, C.[DATE], C.RECORDID, D.Desc$ [CDescription], A.[Description], C.FIELDVALUE1, C.FIELDVALUE2, C.FIELDVALUE3, C.FIELDVALUE3, C.FIELDVALUE4 , C.FIELDVALUE5 , C.FIELDVALUE6, C.FIELDVALUE7, C.FIELDVALUE8, C.FIELDVALUE9, C.FIELDVALUE10 FROM ContactCategories C LEFT JOIN Category D ON D.CatType = C.CATEGORYTYPE LEFT JOIN CategoryType A ON A.CategoryType = C.CATEGORYTYPE WHERE CONTACT = @ClientCode AND C.CATEGORYTYPE = D.CatType AND C.CATEGORY = D.Code SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchChargeArragement' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchChargeArragement] END GO CREATE PROCEDURE [dbo].[KAAS_FetchChargeArragement] As /*********************************************************************************************** * This procedure is used to Fetch Charge Arrangement . * * * * Stored Procedure Name : [dbo].[KAAS_FetchChargeArragement] * * Copied from : [dbo].[Ky_NetFetchChargeArragement] * * * * Modification History : * * 2023-06-15 Nithyanandham M Created * ***********************************************************************************************/ BEGIN SET NOCOUNT ON SELECT UPPER(RTRIM(ISNULL(CODE, '' ))) AS CODE, RTRIM(ISNULL([DESCRIPTION], '' )) AS [DESCRIPTION], RTRIM(ISNULL(TIMECHARGE, '' )) AS TIMECHARGE, RTRIM(ISNULL([ACTION], '' )) AS [ACTION], RTRIM(ISNULL(BAND1LIMIT, 0 )) AS BAND1LIMIT, RTRIM(ISNULL(BAND1RATE, 0 )) AS BAND1RATE, RTRIM(ISNULL(BAND2LIMIT, 0 )) AS BAND2LIMIT, RTRIM(ISNULL(BAND2RATE, 0 )) AS BAND2RATE, RTRIM(ISNULL(BAND3LIMIT, 0 )) AS BAND3LIMIT, RTRIM(ISNULL(BAND3RATE, 0 )) AS BAND3RATE, RTRIM(ISNULL(BAND4LIMIT, 0 )) AS BAND4LIMIT, RTRIM(ISNULL(BAND4LIMIT, 0 )) AS BAND4RATE, RTRIM(ISNULL(BAND5LIMIT, 0 )) AS BAND5LIMIT, RTRIM(ISNULL(BAND5RATE, 0 )) AS BAND5RATE FROM ChargeArrangements ORDER BY CODE ASC SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchChargeCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchChargeCode] END GO CREATE PROCEDURE [dbo].[KAAS_FetchChargeCode] ( @code VARCHAR(5) ) /************************************************************************************************************* * This procedure is used Fetch the information for work flow Action Page Charge code Grid. * * * * Stored Procedure Name : [dbo].[KAAS_FetchChargeCode] * * Copied from : [dbo].[Ky_NetFetchChargeCode] * * Modification History : * * 2023-07-03 Nithyanandham M Created * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT UPPER(RTRIM(ISNULL(ARRANGEMENTCODE, ''))) AS ArrangementCode, UPPER(RTRIM(ISNULL(CHARGECODE, ''))) AS ChargeCode, RTRIM(ISNULL([DESCRIPTION], '')) AS [Description], RTRIM(ISNULL(Band1Limit, 0)) AS Band1Limit, RTRIM(ISNULL(Band1Rate, 0)) AS Band1Rate, RTRIM(ISNULL(Band2Limit, 0)) AS Band2Limit, RTRIM(ISNULL(Band2Rate, 0)) AS Band2Rate, RTRIM(ISNULL(Band3Limit, 0)) AS Band3Limit, RTRIM(ISNULL(Band3Rate, 0)) AS Band3Rate, RTRIM(ISNULL(Band4Limit, 0)) AS Band4Limit, RTRIM(ISNULL(Band4Rate, 0)) AS Band4Rate, RTRIM(ISNULL(Band5Limit, 0)) AS Band5Limit, RTRIM(ISNULL(Band5Rate, 0)) AS Band5Rate, RTRIM(ISNULL(Band6Limit, 0)) AS Band6Limit, RTRIM(ISNULL(Band6Rate, 0)) AS Band6Rate, RTRIM(ISNULL(Band7Limit, 0)) AS Band7Limit, RTRIM(ISNULL(Band7Rate, 0)) AS Band7Rate, RTRIM(ISNULL(Band8Limit, 0)) AS Band8Limit, RTRIM(ISNULL(Band8Rate, 0)) AS Band8Rate, RTRIM(ISNULL(StageCode, '')) AS StageCode FROM ChargingMatrix WHERE ARRANGEMENTCODE = @code SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_FetchChequeRequisitionLog' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchChequeRequisitionLog] END GO CREATE PROCEDURE [dbo].[KAAS_FetchChequeRequisitionLog] ( @ID INT) AS /************************************************************* * * Fetches the log for a cheque requisition * * Stored Procedure Name : KAAS_FetchChequeRequisitionLog * Copied From : ky_NETFetchChequeRequisitionLog * Modification History * 2017-07-13 John Created * 2019-08-06 Vinodhan Created * *************************************************************/ BEGIN SELECT [ID], [User], [ActionDate], [Action], [Date], [Bank], [Matter], [ClientCode], [Nominal], [Value], [Narrative], [LedgerNarrative], [Payee], [Notes], [FeeEarner], [ThirdParty], [Supplier], [OutlayCode], [PayClient], [EFTYorN], [OnceOffPayment], [CaseAssociateCode] FROM [dbo].[ChequeRequisitionLog] AS CRL WHERE CRL.[ID] = @ID END GO IF OBJECT_ID(N'[KAAS_FetchClientChargeOutRates]',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchClientChargeOutRates] GO CREATE PROCEDURE [dbo].[KAAS_FetchClientChargeOutRates] (@ClientCode VARCHAR(20), @IncludeRetired CHAR(1) = 'Y' ) AS /******************************************************************************************************* * This procedure is used to fetch Clinet Charge out Rates. * * * * Stored Procedure Name : [dbo].[KAAS_FetchClientChargeOutRates] * * Copied from : [dbo].[ky_NETCONFetchClientChargeOutRates] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * * 2022-01-18 Sadiq Last rate has been added now * *******************************************************************************************************/ BEGIN SET NOCOUNT ON --Client Charge out rate Indicator SELECT A.RECORDID, A.CLIENTCODE, A.FECODE, A.RATE, A.EFFECTIVEDATE, A.LASTRATE AS OldRate, COALESCE(H.Name, H.Name, A.fecode) AS FeeEarnerName, (CASE WHEN ISNULL(H.Retired,'N') = 'Y' THEN ISNULL(H.Retired,'N') ELSE ISNULL(Hg.RETIRED,'N') END) AS IsRetired FROM ClientChargeOutRates A LEFT JOIN Handlers H on H.Code = A.FeCode LEFT JOIN HandlerChargeGroups Hg on Hg.Code = A.FeCode WHERE A.CLIENTCODE = @ClientCode and (@IncludeRetired = 'Y' OR ISNULL(H.Retired, 'N') <> 'Y' or ISNULL(Hg.Retired, 'N') <> 'Y') SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchClientContactCategories',N'P')IS NOT NULL DROP PROCEDURE KAAS_FetchClientContactCategories GO CREATE PROCEDURE KAAS_FetchClientContactCategories ( @ClientCode VARCHAR(10), @ContactNum INT ) AS /******************************************************************************************************* * This procedure is used to fetch client contact categories. * * * * * * Stored Procedure Name : [dbo].[KAAS_FetchClientContactCategories] * * Copied from : [dbo].[ky_NETCONFetchClientContactCategories] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * * 2022-01-11 Sadiq Handled Datetime format gloabally * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT CC.[CategoryType] as [CTCode], CT.[Description] AS [CTDescription], CC.[Category] as [CCode], C.[Desc$] AS [CDescription], CONVERT(VARCHAR, CC.[Date] , 120) AS [Date], CC.[FieldValue1] As [Prompt1], CC.[FieldValue2] AS [Prompt2], CC.[FieldValue3] AS [Prompt3], CC.[FieldValue4] AS [Prompt4], CC.[FieldValue5] AS [Prompt5], CC.[FieldValue6] AS [Prompt6], CC.[FieldValue7] AS [Prompt7], CC.[FieldValue8] AS [Prompt8], CC.[FieldValue9] AS [Prompt9], CC.[FieldValue10] AS [Prompt10], Cc.ContactNum AS [ContactNum], ROW_NUMBER() over (order by Cc.ContactNum ) AS RowNumber, CC.CCCategoryId as [CatId] FROM ClientContactCategories CC LEFT JOIN CategoryType CT on CT.CategoryType = CC.CategoryType LEFT JOIN Category C on C.Code = CC.Category and CT.CategoryType = C.CatType WHERE ClientCode = @ClientCode AND ContactNum = @ContactNum SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchCodeConfiguration',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchCodeConfiguration] GO CREATE PROCEDURE [dbo].[KAAS_FetchCodeConfiguration] AS /******************************************************************************************************* * This will load the following data's for Code Configuration. * * Stored Procedure Name : [dbo].[KAAS_FetchCodeConfiguration] * * * * Modification History: * * 2023-11-20 Sadiq Created *******************************************************************************************************/ BEGIN Declare @AutoNumberClient BIT Declare @AutoAlphaNumberingClient BIT Declare @MaxNumberOfMatters INT Declare @UniqueMatterCodeNumbering BIT Declare @MaxClientCode INT Declare @MaxMatterCode INT Declare @AutoNumberIfBlank BIT Declare @AllowManualEntryOnMatterCode BIT Declare @ManualClientCode BIT SELECT @AutoNumberClient = (CASE WHEN AUTONUMBER = 'Y' THEN 'True' ELSE 'False' END), @AutoAlphaNumberingClient = (CASE WHEN AUTOALPHACLIENTNUMBERING = 'Y' THEN 'True' ELSE 'False' END), @MaxNumberOfMatters = MAXNUMBEROFMATTERS, @UniqueMatterCodeNumbering = (CASE WHEN INDICATOR19 = 'Y' THEN 'True' ELSE 'False' END) FROM [CONTROL] SELECT @MaxClientCode = (CASE WHEN [SET].[KeyName] = 'MaxClCode' THEN [SET].[KeyValue] ELSE @MaxClientCode END), @MaxMatterCode = (CASE WHEN [SET].[KeyName] = 'MaxMatNum' THEN [SET].[KeyValue] ELSE @MaxMatterCode END), @AutoNumberIfBlank = (CASE WHEN [SET].[KeyName] = 'AutoNumberIfBlank' THEN [SET].[KeyValue] ELSE @AutoNumberIfBlank END), @AllowManualEntryOnMatterCode = (CASE WHEN [SET].[KeyName] = 'ShowMatterCode' THEN [SET].[KeyValue] ELSE @AllowManualEntryOnMatterCode END), @ManualClientCode = (CASE WHEN [SET].[KeyName] = 'ManualClientCode' THEN [SET].[KeyValue] ELSE ISNULL(@ManualClientCode,'False') END) FROM SETTINGS [SET] SELECT @MaxClientCode AS [MaxClientCode], @MaxMatterCode AS [MaxMatterCode], @AutoNumberIfBlank AS [AutoNumberIfBlank], @AllowManualEntryOnMatterCode AS [AllowManualEntryOnMatterCode], @AutoNumberClient AS [AutoNumberClient], @AutoAlphaNumberingClient AS [AutoAlphaNumberingClient], @MaxNumberOfMatters AS [MaxNumberOfMatters], @UniqueMatterCodeNumbering AS [UniqueMatterCodeNumbering], @ManualClientCode AS [ManualClientCode] END GO IF OBJECT_ID(N'KAAS_FetchConfigurationSettings',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchConfigurationSettings] GO CREATE PROCEDURE [dbo].[KAAS_FetchConfigurationSettings] AS /******************************************************************************************************* * This Stored procedure is used to fetch Configuration settings. * * * * Stored Procedure Name : [dbo].[KAAS_FetchConfigurationSettings] * * Copied from : [dbo].[ky_NETSYSCONFetchConfigurationSettings7] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @PrecedentFolder VARCHAR(200) declare @StorageMethod VARCHAR(10) DECLARE @WpFolder VARCHAR(200) DECLARE @EmailOn VARCHAR(2) DECLARE @AllowMultipleDraftBills VARCHAR(2) DECLARE @SolicitorCategoryType VARCHAR(10) DECLARE @OtherPartyCategoryType VARCHAR(10) DECLARE @SupplierCategoryType VARCHAR(10) DECLARE @DefaultVATCode VARCHAR(3) DECLARE @EstFeeRequiredAtMatterStartup bit DECLARE @ExpInvoiceDateRequiredAtMatterStartup bit DECLARE @BranchRequired BIT DECLARE @WIPWarningLimit DECIMAL(18,2) DECLARE @DebtorWarningDaysLimit INT DECLARE @LastActionMonth INT DECLARE @LockupValue DECIMAL(18,2) DECLARE @ShowAlarm BIT DECLARE @IsSplitCheque VARCHAR(1) DECLARE @IsHideCheque VARCHAR(1) DECLARE @IsHideClient VARCHAR(1) DECLARE @IsNewDocSearch VARCHAR(1) DECLARE @IsAdestLink VARCHAR(1) DECLARE @IsPostReq VARCHAR(1) DECLARE @IsCaseBooks VARCHAR(1) DECLARE @IsAxxiaLinks VARCHAR(1) DECLARE @IsEnquiry VARCHAR(1) DECLARE @IsTimeCosting VARCHAR(1) DECLARE @IsBilling VARCHAR(1) DECLARE @IsChqueReq VARCHAR(1) DECLARE @IsClientReq VARCHAR(1) DECLARE @IsCaseMan VARCHAR(1) DECLARE @MaxClientCode VARCHAR(2) DECLARE @MaxMatterCode VARCHAR(2) DECLARE @LKVALUE VARCHAR(30) DECLARE @IsSAM4 BIT DECLARE @TUTNUMVALUE DECIMAL(17, 2) DECLARE @DELETEACTION BIT DECLARE @DELETEOTHERACTION BIT DECLARE @SDLTPath VARCHAR(500) DECLARE @UseTeamLeader VARCHAR(10) DECLARE @DocumentSyncVisible VARCHAR(10) DECLARE @CompositeBilling VARCHAR(10) DEClARE @EnableDictation VARCHAR(10) DECLARE @ExportReportsToLegacyFormats VARCHAR(10) DECLARE @TopBarMatterDetails VARCHAR(10) DECLARE @TopBarRef1 VARCHAR(10) DECLARE @TopBarRef2 VARCHAR(10) DECLARE @TopBarRef3 VARCHAR(10) DECLARE @TopBarYourRef VARCHAR(10) DECLARE @TopBarOldRef VARCHAR(10) DECLARE @TopBarRecordNo VARCHAR(10) SET @IsSAM4 = [dbo].[ISSAM4]() DECLARE @TimeDaybookLimit VARCHAR(100) DECLARE @OSInvoiceLimit VARCHAR(100) DECLARE @CurrentWIPLimit VARCHAR(100) DECLARE @DraftInvoiceLimit VARCHAR(100) DECLARE @RoundupUnits BIT DECLARE @AllowAssignToClosed BIT DECLARE @AllowAnimation BIT DECLARE @EmailUserName VARCHAR(100) DECLARE @EmailPassword VARCHAR(25) DECLARE @EmailSMTP VARCHAR(25) DECLARE @EmailPort VARCHAR(7) DECLARE @EmailEnableSSL BIT DECLARE @EmailUseDefaultCredentials BIT DECLARE @StrongRoomAdminEmail VARCHAR(100) DECLARE @StrongRoomAdmin VARCHAR(20) DECLARE @FileNoLabelText VARCHAR(20) DECLARE @DeleteAttachment BIT DECLARE @ReadyonlyAttachment BIT DECLARE @ShowAddAssociates BIT DECLARE @AddAssociatesDefaultValue VARCHAR(50) DECLARE @ChargeOutRateCheck BIT DECLARE @NotAllowMultipleDraftBill BIT DECLARE @EnablePaymentReceipt BIT DECLARE @EnableDestroyMatter BIT DECLARE @PrintLedgerVisibility BIT DECLARE @EnableP4WLink BIT DECLARE @P4WProgramPath VARCHAR(200) DECLARE @P4WPattern VARCHAR(200) DECLARE @PrintLedgerOutlayCode VARCHAR(5) DECLARE @DefaultReceiptBank VARCHAR(20) DECLARE @AMLRequiredForTime BIT DECLARE @EnablePFChequeProcess BIT DECLARE @DefaultChequeRequestActionAssignee VARCHAR(20) SET @EmailEnableSSL = 0 SET @EmailUseDefaultCredentials = 0 -- Default Values SET @WIPWarningLimit = 0 SET @DebtorWarningDaysLimit = 0 SET @LastActionMonth = 0 SET @DebtorWarningDaysLimit = '0' SET @TimeDaybookLimit = '0' SET @OSInvoiceLimit = '0' SET @CurrentWIPLimit = '0' SET @DraftInvoiceLimit = '0' SET @RoundupUnits = 0 SET @AllowAssignToClosed = 0 IF @IsSAM4 = 0 BEGIN SET @MaxClientCode = '6' SET @MaxMatterCode = '4' END ELSE BEGIN SET @MaxClientCode = '8' SET @MaxMatterCode = '8' END SET @LockupValue = 0 SET @ShowAlarm = 0 SET @EstFeeRequiredAtMatterStartup = 0 SET @ExpInvoiceDateRequiredAtMatterStartup = 0 SET @BranchRequired = 0 SET @DELETEACTION = 0 SET @DELETEOTHERACTION = 0 SET @DeleteAttachment = 1 SET @AllowAnimation = 'False' SET @ReadyonlyAttachment = 0 SET @ShowAddAssociates = 0 SET @AddAssociatesDefaultValue = '' SET @ChargeOutRateCheck = 0 SET @NotAllowMultipleDraftBill = 1 SET @UseTeamLeader = 'False' SET @DocumentSyncVisible = 'False' SET @CompositeBilling = 'N' SET @EnableDictation = 'False' SET @ExportReportsToLegacyFormats = 'False' SET @EnablePaymentReceipt = 'False' SET @EnableDestroyMatter = 'False' SET @PrintLedgerVisibility = 'False' SET @EnableP4WLink = 'False' SET @P4WProgramPath = '' SET @P4WPattern = '(?![\w\d]+)[\D\W\S]{1}(?=\d+)' -- This might be hard coded, but it's the initial format SET @PrintLedgerOutlayCode = '' SET @AMLRequiredForTime = 0 SET @TopBarMatterDetails = 'False' SET @TopBarRef1 = 'False' SET @TopBarRef2 = 'False' SET @TopBarRef3 = 'False' SET @TopBarYourRef = 'False' SET @TopBarOldRef = 'False' SET @TopBarRecordNo = 'False' SET @DefaultReceiptBank = '' SET @EnablePFChequeProcess = 'False' SET @DefaultChequeRequestActionAssignee = '' --And try get them from the database. If not present, default values will remain intact. SELECT @WIPWarningLimit = CASE WHEN [SET].[KeyName] = 'EstFeeWarningLimit' THEN [SET].[KeyValue] ELSE @WIPWarningLimit END, @DebtorWarningDaysLimit = CASE WHEN [SET].[KeyName] = 'DebtorWarningDaysLimit' THEN [SET].[KeyValue] ELSE @DebtorWarningDaysLimit END, @MaxClientCode = CASE WHEN [SET].[KeyName] = 'MaxClCode' THEN [SET].[KeyValue] ELSE @MaxClientCode END, @MaxMatterCode = CASE WHEN [SET].[KeyName] = 'MaxMatNum' THEN [SET].[KeyValue] ELSE @MaxMatterCode END, @LockupValue = CASE WHEN [SET].[KeyName] = 'LockupUpValue' THEN [SET].[KeyValue] ELSE @LockupValue END, @ShowAlarm = CASE WHEN [SET].[KeyName] = 'ShowAlarm' THEN [SET].[KeyValue] ELSE @ShowAlarm END, @EstFeeRequiredAtMatterStartup = CASE WHEN [SET].[KeyName] = 'EstFeeRequiredatMatterSetup' THEN [SET].[KeyValue] ELSE @EstFeeRequiredAtMatterStartup END, @ExpInvoiceDateRequiredAtMatterStartup = CASE WHEN [SET].[KeyName] = 'ExpInvoiceDateRequiredatMatterSetup' THEN [SET].[KeyValue] ELSE @ExpInvoiceDateRequiredAtMatterStartup END, @LastActionMonth = CASE WHEN [SET].[KeyName] = 'LastActionMonth' THEN [SET].[KeyValue] ELSE @LastActionMonth END, @TimeDaybookLimit = CASE WHEN [SET].[KeyName] = 'TimeDayBookLimit' THEN [SET].[KeyValue] ELSE @TimeDaybookLimit END, @OSInvoiceLimit = CASE WHEN [SET].[KeyName] = 'OSInvoiceLimit' THEN [SET].[KeyValue] ELSE @OSInvoiceLimit END, @CurrentWIPLimit = CASE WHEN [SET].[KeyName] = 'CurrentWIPLimit' THEN [SET].[KeyValue] ELSE @CurrentWIPLimit END, @DraftInvoiceLimit = CASE WHEN [SET].[KeyName] = 'DraftInvoiceLimit' THEN [SET].[KeyValue] ELSE @DraftInvoiceLimit END, @RoundupUnits = CASE WHEN [SET].[KeyName] = 'RoundupUnits' THEN [SET].[KeyValue] ELSE @RoundupUnits END, @AllowAssignToClosed = CASE WHEN [SET].[KeyName] = 'AllowAssignToClosed' THEN [SET].[KeyValue] ELSE @AllowAssignToClosed END, @DELETEACTION = CASE WHEN [SET].[KeyName] = 'AllowToDeleteAction' THEN [SET].[KeyValue] ELSE @DELETEACTION END, @DELETEOTHERACTION = CASE WHEN [SET].[KeyName] = 'AllowToDeleteOtherAction' THEN [SET].[KeyValue] ELSE @DELETEOTHERACTION END, @AllowAnimation = CASE WHEN [SET].[KeyName] = 'AllowAnimation' THEN [SET].[KeyValue] ELSE @AllowAnimation END, @EmailUserName = CASE WHEN [SET].[KeyName] = 'EmailUserName' THEN [SET].[KeyValue] ELSE @EmailUserName END, @EmailPassword = CASE WHEN [SET].[KeyName] = 'EmailPassword' THEN [SET].[KeyValue] ELSE @EmailPassword END, @EmailSMTP = CASE WHEN [SET].[KeyName] = 'EMailSMTP' THEN [SET].[KeyValue] ELSE @EmailSMTP END, @EmailPort = CASE WHEN [SET].[KeyName] = 'EmailPort' THEN [SET].[KeyValue] ELSE @EmailPort END, @EmailEnableSSL = CASE WHEN [SET].[KeyName] = 'EmailEnableSSL' THEN [SET].[KeyValue] ELSE @EmailEnableSSL END, @EmailUseDefaultCredentials = CASE WHEN [SET].[KeyName] = 'EmailUseDefaultCredentials' THEN [SET].[KeyValue] ELSE @EmailUseDefaultCredentials END, @StrongRoomAdminEmail = CASE WHEN [SET].[KeyName] = 'StrongRoomAdminEmail' THEN [SET].[KeyValue] ELSE @StrongRoomAdminEmail END, @StrongRoomAdmin = CASE WHEN [SET].[KeyName] = 'StrongRoomAdmin' THEN [SET].[KeyValue] ELSE @StrongRoomAdmin END, @FileNoLabelText = CASE WHEN [SET].[KeyName] = 'FileNoLabelText' THEN [SET].[KeyValue] ELSE @FileNoLabelText END, @DeleteAttachment =CASE WHEN [SET].[KeyName] = 'AllowToDeleteActionAttachment' THEN [SET].[KeyValue] ELSE @DeleteAttachment END, @SDLTPath =CASE WHEN [SET].[KeyName] = 'SDLTGlobalPath' THEN [SET].[KeyValue] ELSE '' END, @BranchRequired =CASE WHEN [set].[KeyName]='NewCaseWizardBranch' THEN [SET].[KeyValue] ELSE @BranchRequired END, @ReadyonlyAttachment =CASE WHEN [set].[KeyName]='MakeFileReadonlyWhenComplete' THEN [SET].[KeyValue] ELSE @ReadyonlyAttachment END, @ShowAddAssociates =CASE WHEN [set].[KeyName] = 'ShowAddAssociates' THEN [SET].[KeyValue] ELSE @ShowAddAssociates END, @AddAssociatesDefaultValue =CASE WHEN [set].[KeyName] = 'AddAssociatesDefaultValue' THEN [SET].[KeyValue] ELSE @AddAssociatesDefaultValue END, @ChargeOutRateCheck = CASE WHEN [SET].[KeyName] = 'ChargeOutRateCheck' THEN [SET].[KeyValue] ELSE @ChargeOutRateCheck END, @NotAllowMultipleDraftBill = CASE WHEN [SET].[KeyName] = 'NotAllowMulipleDraftBill' THEN [SET].[KeyValue] ELSE @NotAllowMultipleDraftBill END, @UseTeamLeader = CASE WHEN [SET].[KeyName] = 'UseTeamLeader' THEN [SET].[KeyValue] ELSE @UseTeamLeader END, @DocumentSyncVisible = CASE WHEN [SET].[KeyName] = 'DocumentSyncVisible' THEN [SET].[KeyValue] ELSE @DocumentSyncVisible END, @CompositeBilling = CASE WHEN [SET].[KeyName] = 'CompositeBilling' THEN [SET].[KeyValue] ELSE @CompositeBilling END, @EnableDictation = CASE WHEN [SET].[KeyName] = 'EnableDictation' THEN [SET].[KeyValue] ELSE @EnableDictation END, @ExportReportsToLegacyFormats = CASE WHEN [SET].[KeyName] = 'ExportReportsToLegacyFormats' THEN [SET].[KeyValue] ELSE @ExportReportsToLegacyFormats END, @EnablePaymentReceipt = CASE WHEN [SET].[KeyName] = 'EnablePaymentReceipt' THEN [SET].[KeyValue] ELSE @EnablePaymentReceipt END, @EnableDestroyMatter = CASE WHEN [SET].[KeyName] = 'EnableDestroyMatter' THEN [SET].[KeyValue] ELSE @EnableDestroyMatter END, @PrintLedgerVisibility = CASE WHEN [SET].[KeyName] = 'PrintLedgerVisibility' THEN [SET].[KeyValue] ELSE @PrintLedgerVisibility END, @EnableP4WLink = CASE WHEN [SET].[KeyName] = 'EnableP4WLink' THEN [SET].[KeyValue] ELSE @EnableP4WLink END, @P4WProgramPath = CASE WHEN [SET].[KeyName] = 'P4WProgramPath' THEN [SET].[KeyValue] ELSE @P4WProgramPath END, @P4WPattern = CASE WHEN [SET].[KeyName] = 'P4WPattern' THEN [SET].[KeyValue] ELSE @P4WPattern END, @PrintLedgerOutlayCode = CASE WHEN [SET].[KeyName] = 'PrintLedgerOutlayCode' THEN LEFT([SET].[KeyValue], 5) ELSE @PrintLedgerOutlayCode END, @AMLRequiredForTime = CASE WHEN [SET].[KeyName] = 'AMLRequiredForTime' THEN LEFT([SET].[KeyValue], 5) ELSE @AMLRequiredForTime END, @TopBarMatterDetails = CASE WHEN [SET].[KeyName] = 'TopBarMatterDetails' THEN [SET].[KeyValue] ELSE @TopBarMatterDetails END, @TopBarRef1 = CASE WHEN [SET].[KeyName] = 'TopBarRef1' THEN [SET].[KeyValue] ELSE @TopBarRef1 END, @TopBarRef2 = CASE WHEN [SET].[KeyName] = 'TopBarRef2' THEN [SET].[KeyValue] ELSE @TopBarRef2 END, @TopBarRef3 = CASE WHEN [SET].[KeyName] = 'TopBarRef3' THEN [SET].[KeyValue] ELSE @TopBarRef3 END, @TopBarYourRef = CASE WHEN [SET].[KeyName] = 'TopBarYourRef' THEN [SET].[KeyValue] ELSE @TopBarYourRef END, @TopBarOldRef = CASE WHEN [SET].[KeyName] = 'TopBarOldRef' THEN [SET].[KeyValue] ELSE @TopBarOldRef END, @TopBarRecordNo = CASE WHEN [SET].[KeyName] = 'TopBarRecordNo' THEN [SET].[KeyValue] ELSE @TopBarRecordNo END, @DefaultReceiptBank = CASE WHEN [SET].[KeyName] = 'DefaultPaymentReceiptBank' THEN [SET].[KeyValue] ELSE @DefaultReceiptBank END, @EnablePFChequeProcess = CASE WHEN [SET].[KeyName] = 'PFChequeProcess' THEN [SET].[KeyValue] ELSE @EnablePFChequeProcess END, @DefaultChequeRequestActionAssignee = CASE WHEN [SET].[KeyName] = 'DefaultChequeRequestActionAssignee' THEN [SET].[KeyValue] ELSE @DefaultChequeRequestActionAssignee END FROM [dbo].[Settings] [SET] --IF @IsSAM4 = 1 -- BEGIN SELECT @TUTNUMVALUE = CTN.[NumValue] FROM [dbo].[CtrlNum] CTN WHERE CTN.[Code] = 'TimeUnit' -- END SET @TUTNUMVALUE = CASE WHEN ISNULL(@TUTNUMVALUE, 0) = 0 THEN 6 ELSE @TUTNUMVALUE END --PINO 2015-02-24 replaced 9 select statements with single one above. --SET @WIPWarningLimit = (SELECT KeyValue FROM Settings WHERE KeyName='EstFeeWarningLimit') --SET @DebtorWarningDaysLimit = (SELECT KeyValue FROM Settings WHERE KeyName='DebtorWarningDaysLimit') --SET @LastActionMonth = (SELECT KeyValue FROM Settings WHERE KeyName='LastActionMonth') --SET @MaxClientCode = (SELECT KeyValue FROM Settings WHERE KeyName='MaxClCode') --SET @MaxMatterCode = (SELECT KeyValue FROM Settings WHERE KeyName='MaxMatNum') --SET @LKVALUE = (SELECT KeyValue FROM Settings WHERE KeyName='LockupUpValue') --SET @LockupValue = CONVERT(DECIMAL(18,2),@LKVALUE) --SET @ShowAlarm = (SELECT KeyValue FROM Settings WHERE KeyName='ShowAlarm') --SET @ShowAlarm = ISNULL(@ShowAlarm, 0) --SET @EstFeeRequiredAtMatterStartup = (SELECT ISNULL(KeyValue, 'False') FROM Settings WHERE KeyName='EstFeeRequiredatMatterSetup') --SET @EstFeeRequiredAtMatterStartup = ISNULL(@EstFeeRequiredAtMatterStartup, 0) --SET @ExpInvoiceDateRequiredAtMatterStartup = (SELECT ISNULL(KeyValue, 'False') FROM Settings WHERE KeyName='ExpInvoiceDateRequiredatMatterSetup') --SET @ExpInvoiceDateRequiredAtMatterStartup = ISNULL(@ExpInvoiceDateRequiredAtMatterStartup, 0) SET @SolicitorCategoryType = (SELECT TOP 1 CatType FROM Category where Code = (select TOP 1 Solicitor from [control] )) SET @OtherPartyCategoryType = (SELECT TOP 1 CatType FROM Category where Code = (select TOP 1 Othparty from [control] )) SET @SupplierCategoryType = (SELECT TOP 1 CatType FROM Category where Code = (select TOP 1 SupplierCategory from [control] )) SELECT @PrecedentFolder= ScprecedentFolder, @StorageMethod= Storagemethod, @WpFolder=ScWpFolder, @EmailOn=EmailOn FROM systemConfig --Allow Multiple Draft Bills SELECT @AllowMultipleDraftBills = Indicator5, @DefaultVATCode = REQUESTER , @IsSplitCheque =SPLITCHEQUES , @IsHideCheque = INDICATOR3 , @IsHideClient = INDICATOR4 , @IsNewDocSearch = INDICATOR6 , @IsAdestLink = INDICATOR7 , @IsPostReq = INDICATOR8 , @IsCaseBooks = INDICATOR9 , @IsAxxiaLinks = INDICATOR10 , @IsEnquiry = ENQUIRY , @IsTimeCosting = TIMECOSTING , @IsBilling = BILLING , @IsChqueReq = CHEQUEREQ , @IsClientReq = CLIENTREQ , @IsCaseMan = CASEMAN FROM DEsktopControl SELECT Name, Vatno, Debtors, Creditor, Outlay, VAT, PL, Client, FeesWriteOff, OutlayWriteOff, BillsWriteOff, DefaultOfficeAc, DefaultClientAc, DefaultClientDEP, MiscOutlay, PettyCash, WithTax, [YEAR], [CurPer], Outlaybudget, LastBill, VatExclude, DefaultVAT, FeeExclude, MiscFe, EnableFNL, 'VAT' as VAT, AlarmStartupLaunch AS LaunchAlarmSystemAtStartup, 'ReserveLedger' as ReserveLedger, UserPrompt1, userPrompt2 AS UserPrompt2, UserPrompt3, Solicitor, Othparty, SupplierCategory, DefaultCategory, AutoNumber, AutoAlphaClientNumbering, ThirdPartyLimit, DateFutValidation, DatePastValidation, NextFile, ClosedFileNo, ChequePrinting, EnableCP, EIConvert, @PrecedentFolder as PrecedentFolder, @StorageMethod as StorageMethod, @WpFolder as WPFolder, DocumentNamingMethod as DocumentNamingMethod, @EmailOn as EmailOn, @AllowMultipleDraftBills as AllowMultipleDraftBills, @SolicitorCategoryType as SolicitorCategory, @OtherPartyCategoryType as OtherPartyCategory, @SupplierCategoryType as SupplierCategoryType, @DefaultVATCode as DefaultVATCode, @WIPWarningLimit AS WIPWarningLimit, @DebtorWarningDaysLimit as DebtorWarningDaysLimit, @LastActionMonth as LastActionMonth, CONVERT(DECIMAL(18,2),@LockupValue) as LockupValue, @ShowAlarm as ShowAlarm, @EstFeeRequiredAtMatterStartup as EstFeeRequiredAtMatterStartup, @ExpInvoiceDateRequiredAtMatterStartup as ExpInvoiceDateRequiredAtMatterStartup, ENABLECDB, ENABLEDW, ENABLEFM, RECINSTALLED, NOBAR, WORDPERFECT, OPSISLINK, TIMECOSTING, FORCEFE, UK, USEOUTLAYTYPE, PENDINGOUTLAY, INDICATOR18, INDICATOR19, INDICATOR20, DEMOEXPIRE, MAXNUMBEROFMATTERS, LABELPRINTER, YEARENDCOMPLETED, INDICATOR22, INDICATOR23, INDICATOR24, INDICATOR25, INDICATOR26, INDICATOR27, INDICATOR28, INDICATOR29, INDICATOR30, FEESREPSEQ, @IsSplitCheque AS [SplitCheque], @IsHideCheque AS [HideCheque], @IsHideClient AS [HideClient], @IsNewDocSearch AS [NewDocSearch], @IsAdestLink AS [AdestLink], @IsPostReq AS [IsPostReq], @IsCaseBooks AS [IsCaseBook], @IsAxxiaLinks AS [AxxiaLinks], @IsEnquiry AS [Enquiry], @IsTimeCosting AS [DOTimeCosting], @IsBilling AS [Billing], @IsChqueReq AS [IsChequeReq], @IsClientReq AS [IsClientReq], @IsCaseMan AS [CaseMan], AUTONUMBER AS [AutoNumber], ISNULL(@MaxClientCode,6) AS [MaxClientCode], ISNULL(@MaxMatterCode,4) AS [MaxMatterCode], YourRef AS [YourRef], @DELETEACTION AS [DeleteAction], @DELETEOTHERACTION AS [DeleteOtherAction], @AllowAnimation AS [AllowAnimation], @EmailUserName AS [EmailUserName], @EmailPassword AS [EmailPassword], @EmailSMTP AS [EmailSMTP], @EmailPort AS [EmailPort], @EmailEnableSSL AS [EmailEnableSSL], @EmailUseDefaultCredentials AS [UseDefaultCredentials], @StrongRoomAdminEmail AS [StrongRoomAdminEmail], @StrongRoomAdmin AS [StrongRoomAdmin], ISNULL(@FileNoLabelText,'File No') AS [FileNoLabelText], @DeleteAttachment AS [DeleteAttachement], ISNULL(@SDLTPath,'') AS [SDLTPath], @BranchRequired AS [BranchRequired], @ReadyonlyAttachment AS [ReadyonlyAttachment], @ShowAddAssociates AS [ShowAddAssociates], @AddAssociatesDefaultValue AS [AddAssociatesDefaultValue], @ChargeOutRateCheck AS [ChargeOutRateCheck], @NotAllowMultipleDraftBill AS [NotAllowMutlipleDraftBill], @UseTeamLeader AS [UseTeamLeader], @DocumentSyncVisible AS [DocumentSyncVisible], @CompositeBilling AS [CompositeBilling], @EnableDictation AS [EnableDictation], @ExportReportsToLegacyFormats AS [ExportReportsToLegacyFormats], @EnablePaymentReceipt AS [EnablePaymentReceipt], @EnableDestroyMatter AS [EnableDestroyMatter], @PrintLedgerVisibility AS [PrintLedgerVisibility], @EnableP4WLink AS [EnableP4WLink], @P4WProgramPath AS [P4WProgramPath], @P4WPattern AS [P4WPattern], @PrintLedgerOutlayCode AS [PrintLedgerOutlayCode], @AMLRequiredForTime AS [AMLRequiredForTime], @TopBarMatterDetails AS TopBarMatterDetails, @TopBarRef1 AS TopBarRef1, @TopBarRef2 AS TopBarRef2, @TopBarRef3 AS TopBarRef3, @TopBarYourRef AS TopBarYourRef, @TopBarOldRef AS TopBarOldRef, @TopBarRecordNo AS TopBarRecordNo, @DefaultReceiptBank AS [DefaultPaymentReceiptBank], @EnablePFChequeProcess AS [EnablePFChequeProcess], @DefaultChequeRequestActionAssignee AS [DefaultChequeRequestActionAssignee] FROM [dbo].[CONTROL] SELECT @TimeDaybookLimit AS [TimeDayBookLimit], @OSInvoiceLimit AS [OSInvoiceLimit], @CurrentWIPLimit AS [CurrentWIPLimit], @DraftInvoiceLimit AS [DraftInvoiceLimit], @RoundupUnits AS [RoundupUnits], @AllowAssignToClosed AS [AllowAssignToClosed], @TUTNUMVALUE AS [MinutesPerUnit] --fetch revenue details --fetch revenue details --KEYD-1166.... AGAIN.... DECLARE @CLIENTNO1 VARCHAR(20) DECLARE @CLIENTNO2 VARCHAR(20) DECLARE @CLIENTNO3 VARCHAR(20) DECLARE @ClientGroup VARCHAR(10) DECLARE @HoldDays VARCHAR(10) DECLARE @Team VARCHAR(10) DECLARE @FE VARCHAR(10) DECLARE @Dept VARCHAR(10) DECLARE @WorkType VARCHAR(10) DECLARE @LastOutlay VARCHAR(50) DECLARE @CasePlan VARCHAR(10) DECLARE @NewReferral VARCHAR(50) DECLARE @AmdReferral VARCHAR(50) DECLARE @RejReferral VARCHAR(50) DECLARE @MandateNo VARCHAR(50) DECLARE @SolicitorNo VARCHAR(50) DECLARE @BankAcc VARCHAR(50) DECLARE @ClaimSystemEnabled VARCHAR(10) DECLARE @EFTSheriffBankName VARCHAR(100) DECLARE @EFTSheriffSortCode VARCHAR(100) DECLARE @EFTSheriffAccountNumber VARCHAR(100) DECLARE @EFTSheriffIBAN VARCHAR(100) DECLARE @EFTSheriffBIC VARCHAR(100) DECLARE @EFTSheriffOriginalIDNumber VARCHAR(100) DECLARE @EFTPayeeBankName VARCHAR(100) DECLARE @EFTPayeeSortCode VARCHAR(100) DECLARE @EFTPayeeAccountNumber VARCHAR(100) DECLARE @EFTPayeeIBAN VARCHAR(100) DECLARE @EFTPayeeBIC VARCHAR(100) --KEYD-1166.... AGAIN.... SELECT @CLIENTNO1 = '', @CLIENTNO2 = '', @CLIENTNO3 = '', @ClientGroup = '', @HoldDays = '', @Team = '', @FE = '', @Dept = '', @WorkType = '', @LastOutlay = '', @CasePlan = '', @NewReferral = '', @AmdReferral = '', @RejReferral = '', @MandateNo = '', @SolicitorNo = '', @BankAcc = '', @ClaimSystemEnabled = 'False', @EFTSheriffBankName = '', @EFTSheriffSortCode = '', @EFTSheriffAccountNumber = '', @EFTSheriffIBAN = '', @EFTSheriffBIC = '', @EFTSheriffOriginalIDNumber = '', @EFTPayeeBankName = '', @EFTPayeeSortCode = '', @EFTPayeeAccountNumber = '', @EFTPayeeIBAN = '', @EFTPayeeBIC = '' SELECT @CLIENTNO1 = CASE WHEN [SET].[KeyName] = 'ClientNo1' THEN [SET].[KeyValue] ELSE @CLIENTNO1 END, @CLIENTNO2 = CASE WHEN [SET].[KeyName] = 'ClientNo2' THEN [SET].[KeyValue] ELSE @CLIENTNO2 END, @CLIENTNO3 = CASE WHEN [SET].[KeyName] = 'ClientNo3' THEN [SET].[KeyValue] ELSE @CLIENTNO3 END, @ClientGroup = CASE WHEN [SET].[KeyName] = 'ClientGroup' THEN [SET].[KeyValue] ELSE @ClientGroup END, @HoldDays = CASE WHEN [SET].[KeyName] = 'HoldDays' THEN [SET].[KeyValue] ELSE @HoldDays END, @Team = CASE WHEN [SET].[KeyName] = 'Team' THEN [SET].[KeyValue] ELSE @Team END, @FE = CASE WHEN [SET].[KeyName] = 'FE' THEN [SET].[KeyValue] ELSE @FE END, @Dept = CASE WHEN [SET].[KeyName] = 'Dept' THEN [SET].[KeyValue] ELSE @Dept END, @WorkType = CASE WHEN [SET].[KeyName] = 'WorkType' THEN [SET].[KeyValue] ELSE @WorkType END, @LastOutlay = CASE WHEN [SET].[KeyName] = 'LastOutlay' THEN [SET].[KeyValue] ELSE @LastOutlay END, @CasePlan = CASE WHEN [SET].[KeyName] = 'CasePlan' THEN [SET].[KeyValue] ELSE @CasePlan END, @NewReferral = CASE WHEN [SET].[KeyName] = 'NewReferral' THEN [SET].[KeyValue] ELSE @NewReferral END, @AmdReferral = CASE WHEN [SET].[KeyName] = 'AmdReferral' THEN [SET].[KeyValue] ELSE @AmdReferral END, @MandateNo = CASE WHEN [SET].[KeyName] = 'MandateNo' THEN [SET].[KeyValue] ELSE @MandateNo END, @SolicitorNo = CASE WHEN [SET].[KeyName] = 'SolicitorNo' THEN [SET].[KeyValue] ELSE @SolicitorNo END, @BankAcc = CASE WHEN [SET].[KeyName] = 'BankAcc' THEN [SET].[KeyValue] ELSE @BankAcc END, @RejReferral = CASE WHEN [SET].[KeyName] = 'RejReferral' THEN [SET].[KeyValue] ELSE @RejReferral END, @ClaimSystemEnabled = CASE WHEN [SET].[KeyName] = 'ClaimSystemEnabled' THEN [SET].[KeyValue] ELSE @ClaimSystemEnabled END, @EFTSheriffBankName = CASE WHEN [SET].[KeyName] = 'EFTSheriffBankName' THEN [SET].[KeyValue] ELSE @EFTSheriffBankName END, @EFTSheriffSortCode = CASE WHEN [SET].[KeyName] = 'EFTSheriffSortCode' THEN [SET].[KeyValue] ELSE @EFTSheriffSortCode END, @EFTSheriffAccountNumber = CASE WHEN [SET].[KeyName] = 'EFTSheriffAccountNumber' THEN [SET].[KeyValue] ELSE @EFTSheriffAccountNumber END, @EFTSheriffIBAN = CASE WHEN [SET].[KeyName] = 'EFTSheriffIBAN' THEN [SET].[KeyValue] ELSE @EFTSheriffIBAN END, @EFTSheriffBIC = CASE WHEN [SET].[KeyName] = 'EFTSheriffBIC' THEN [SET].[KeyValue] ELSE @EFTSheriffBIC END, @EFTSheriffOriginalIDNumber = CASE WHEN [SET].[KeyName] = 'EFTSheriffOriginalIDNumber' THEN [SET].[KeyValue] ELSE @EFTSheriffOriginalIDNumber END, @EFTPayeeBankName = CASE WHEN [SET].[KeyName] = 'EFTPayeeBankName' THEN [SET].[KeyValue] ELSE @EFTPayeeBankName END, @EFTPayeeSortCode = CASE WHEN [SET].[KeyName] = 'EFTPayeeSortCode' THEN [SET].[KeyValue] ELSE @EFTPayeeSortCode END, @EFTPayeeAccountNumber = CASE WHEN [SET].[KeyName] = 'EFTPayeeAccountNumber' THEN [SET].[KeyValue] ELSE @EFTPayeeAccountNumber END, @EFTPayeeIBAN = CASE WHEN [SET].[KeyName] = 'EFTPayeeIBAN' THEN [SET].[KeyValue] ELSE @EFTPayeeIBAN END, @EFTPayeeBIC = CASE WHEN [SET].[KeyName] = 'EFTPayeeBIC' THEN [SET].[KeyValue] ELSE @EFTPayeeBIC END FROM [dbo].[RevenueSettings] AS [SET] SELECT @CLIENTNO1 AS [CLIENTNO1], @CLIENTNO2 AS [CLIENTNO2], @CLIENTNO3 AS [CLIENTNO3], @ClientGroup AS [CLIENTGROUP], @HoldDays AS [HOLDDAYS], @Team AS [TEAM], @FE AS [FE], @Dept AS [DEPT], @WorkType AS [WORKTYPE], @LastOutlay AS [LASTOUTLAY], @CasePlan AS [CASEPLAN], @NewReferral AS [NEWREFERRAL], @AmdReferral AS [AMDREFERRAL], @RejReferral AS [REJREFERRAL], @MandateNo AS [MANDATENO], @SolicitorNo AS [SOLICITORNO], @BankAcc AS [BANKACC], @ClaimSystemEnabled AS [ClaimSystemEnabled], @EFTSheriffBankName AS [EFTSheriffBankName], @EFTSheriffSortCode AS [EFTSheriffSortCode], @EFTSheriffAccountNumber AS [EFTSheriffAccountNumber], @EFTSheriffIBAN AS [EFTSheriffIBAN], @EFTSheriffBIC AS [EFTSheriffBIC], @EFTSheriffOriginalIDNumber AS [EFTSheriffOriginalIDNumber], @EFTPayeeBankName AS [EFTPayeeBankName], @EFTPayeeSortCode AS [EFTPayeeSortCode], @EFTPayeeAccountNumber AS [EFTPayeeAccountNumber], @EFTPayeeIBAN AS [EFTPayeeIBAN], @EFTPayeeBIC AS [EFTPayeeBIC] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchContactbyClientCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchContactbyClientCode] END GO CREATE PROCEDURE [dbo].[KAAS_FetchContactbyClientCode] (@ClientCode VARCHAR(20), @Handler VARCHAR(10)) AS /******************************************************************************************************* * This stored procedure is used to FETCH contact details by Contact Code for update details * * * * Stored Procedure Name : [dbo].[KAAS_FetchContactbyClientCode] * * * * Modification History: * * 2021-07-16 Prabhu V Created * * 2022-05-20 Vignesh M Modified Case sensitive column name changed * * 2023-05-25 Sadiq Modified ApprovedDate has been added now * * 2023-05-30 Vignesh M Removed unwanted extra white space in char column * * 2024-01-24 Balamurugan.C Reframed the Current Client Contact Categories * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @BitWiseID BIGINT SELECT @BitWiseID = HNG.[BitWiseID] FROM HandlerNETGroupMembership HNG WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @Handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@Handler, '')))) IF (@Handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END --Client Details SELECT TOP 1 [CON].[Code], [CON].[Name], [CON].[Address], [CON].[Salut], [CON].[Tel], [CON].[Fax], [CON].[Email], [CON].[Principal], [CON].[FE], LTRIM(RTRIM([CON].[Nation])) AS [Nation], [CON].[Spouse], [CON].[DOB] AS [DOB], [CON].[SpouseDOB] AS [SpouseDOB], [CON].[Introducer], [CON].[IntroFE], [CON].[Comments], CASE WHEN ISNULL([CON].[Corporate], 'N') = 'Y' THEN '1' ELSE '0' END AS [Corporate], [CON].[DateOfMarriage] AS [DateOfMarriage], CASE WHEN ISNULL([CON].[SpouseDead], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsDead], CASE WHEN ISNULL([CON].[Separated], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsSeparated], [CON].[HowSeparated], [CON].[Partner], [CON].[PartnerSince] AS [PartnerSince], [CON].[Occupation], [CON].[OtherRef], [CON].[ChargeArrangement], [CON].[BillingMethod], [CON].[Approved] AS Approved, [CON].[ApprovedDate], [CON].[SpousePPS], [CON].[ClientGroup], [CON].[ClientVATNo], CASE WHEN ISNULL([CON].[ChargeOutRateInd], 'N') = 'Y' THEN '1' ELSE '0' END AS [ChargeOutRateInd], [CON].[TaxType], [CLT].[CLGRP], [CLT].[ClLegalName], [CLT].[CllegalAddr], [CLT].[CLTEL], [CLT].[CLMobNo], [CLT].[CLMartialCde], [CLT].[CLOccupCDE], [CLT].[CLEmployer], [CLT].[CLContactCde], [CLT].[DcoumentFolder], [CON].[CompFrequency], CASE WHEN ISNULL([CON].[InActive], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsDeceased], [CON].DateInActive AS [DOD], [CON].[RSINo] AS [PPSNo], CASE WHEN ISNULL([CON].[Statements], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsStatement], CASE WHEN ISNULL([CON].[Inactive], 'N') = 'Y' THEN '1' ELSE '0' END AS [InActive], [CON].[DateInactive] AS [Dateinactive], [CON].[LastAR] AS [LastAr], [CON].[CRONumber], [CON].[CompanyWebSite], [CON].[OtherAddress], [CON].[County], [CON].[PostalCode], [CON].[CompMatter], [CON].[BankName], [CON].[BankAddress], [CON].[BankSortCode], [CON].[BankAccNo], [CON].[IBan], [CON].[Bic], [CON].[EnvelopeName], [CON].[ChargeLevel] AS [ChargeLevel], [CON].[WarningMsg] AS [WarningMessage], ISNULL([CON].[DisallowNewMatter], 0) AS [DisallowNewMatter], ISNULL([MC].[Retired], 'N') AS [Retired], [DXAddress] AS [DXAddress], [SecondaryEmail] AS [SecondaryEmail], REPLACE(ISNULL([FC].[Retired], 'N'),' ','N') AS [FeeEarnerRetired], [CON].[Password], CASE WHEN ISNULL([CON].[RemoteAccess], 'N') = 'Y' THEN '1' ELSE '0' END AS [RemoteAccess], ISNULL([CON].[BankType], '') AS [BankType], RTRIM(ISNULL([CON].[EFTEmailAddress], '')) AS [EFTEmailAddress] FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[Contacts] [CON] ON [CON].[Code] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[client] [CLT] LEFT OUTER JOIN [dbo].[MiscCodes] [MC] ON [MC].[CDECODE] = [CLT].[ClMartialCde] ON [CLT].[CLCODE] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] [FC] ON [FC].[Code] = [CON].[FE] WHERE [MAT].[ClientCode] = @ClientCode --Cross References --DECLARE @ClientCode VARCHAR(20) DECLARE @Matter VARCHAR(20) SET @ClientCode = (SELECT TOP 1 [MAT].[ClientCode] FROM [dbo].[matters] [MAT] WHERE [MAT].[ClientCode] = @ClientCode) SET @Matter = (SELECT TOP 1 [MAT].[Matter] FROM [dbo].[matters] [MAT] WHERE [MAT].[ClientCode] = @ClientCode) SELECT [CL].[CONTACTB] AS [LinkTo], [CON].[Name], [CL].[RELATE] AS [Relationship], [CL].[id] AS [Id] FROM [dbo].[ContactLinks] [CL] LEFT OUTER JOIN [dbo].[Contacts] [CON] ON [CON].[Code] = [CL].[CONTACTB] WHERE [CL].[CONTACTA] = @ClientCode --Client Charge out rate Indicator SELECT [CCR].[RECORDID], [CCR].[CLIENTCODE], [CCR].[FECODE], [CCR].[RATE], [CCR].[EFFECTIVEDATE], COALESCE([HAN].[Name], [HAN].[Name], [CCR].[fecode]) AS [FeeEarnerName], CASE WHEN ISNULL([HAN].[Retired], 'N') = 'Y' THEN 'Y' ELSE ISNULL([HCG].[RETIRED], 'N') END AS [IsRetired] FROM [dbo].[ClientChargeOutRates] [CCR] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [CCR].[FeCode] LEFT OUTER JOIN [dbo].[HandlerChargeGroups] [HCG] ON [HCG].[Code] = [CCR].[FeCode] WHERE [CCR].[ClientCode] = @ClientCode AND ( ISNULL([HAN].[RETIRED], 'N') <> 'Y' OR ISNULL([HCG].[Retired], 'N') <> 'Y') --Client related matters SELECT [MAT].[Matter] AS [Matter], [MAT].[Description] AS [Description], [MAT].[FECode] AS [FeeEarner], [MAT].[Dept] AS [Department], [MAT].[WType] AS [WorkType], [MAT].[Started] AS [Started], [MAT].[Code] AS [MatterCode] FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[MatterNETPrivileges] [MNP] ON [MNP].[MATTER] = [MAT].[Code] WHERE [MAT].[ClientCode] = @ClientCode AND ( ISNULL([MNP].[Privileges], CONVERT(BIGINT, -1)) & @BitWiseID <> 0 OR [MNP].[Privileges] IS NULL) --Other Contacts EXEC [dbo].[ky_NETGetClientContacts] @ClientCode --Category SELECT [CCA].[CONTACT] AS [Contact], [CCA].[CATEGORYTYPE] AS [Code], [CCA].[CATEGORYTYPE] AS [CategoryType], [CCA].[CATEGORY] AS [Category], [CCA].[DATE] AS [Date], [CCA].[RECORDID] AS [RECORDID], [CAT].[Desc$] AS [CDescription], [CTP].[Description] AS [Description], [CCA].[FIELDVALUE1] AS [FieldValue1], [CCA].[FIELDVALUE2] AS [FieldValue2], [CCA].[FIELDVALUE3] AS [FieldValue3], [CCA].[FIELDVALUE4] AS [FieldValue4], [CCA].[FIELDVALUE5] AS [FieldValue5], [CCA].[FIELDVALUE6] AS [FieldValue6], [CCA].[FIELDVALUE7] AS [FieldValue7], [CCA].[FIELDVALUE8] AS [FieldValue8], [CCA].[FIELDVALUE9] AS [FieldValue9], [CCA].[FIELDVALUE10] AS [FieldValue10] FROM [dbo].[ContactCategories] [CCA] LEFT OUTER JOIN [dbo].[Category] [CAT] ON [CAT].[CatType] = [CCA].[CATEGORYTYPE] AND [CAT].[Code] = [CCA].[CATEGORY] LEFT OUTER JOIN [dbo].[CategoryType] [CTP] ON [CTP].[CategoryType] = [CCA].[CATEGORYTYPE] WHERE [CCA].[CONTACT] = @ClientCode SELECT [OFC].[CONTACTOFFICER], [OFC].[NAME], [OFC].[COSECRETARY], [OFC].[DATEAPPOINTED], [OFC].[DATERESIGNED], [OFC].[RECORDID] FROM [dbo].[Officers] [OFC] WHERE [OFC].CONTACTCODE = @ClientCode EXECUTE ky_NETGetContactPrivilegeGroups @ClientCode EXECUTE KAAS_GetNotificationApprovalData @Matter, @ClientCode SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchContactCategory',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchContactCategory] GO CREATE PROCEDURE [dbo].[KAAS_FetchContactCategory] ( @ClientCode VARCHAR(10) ) /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_FetchContactCategory] * * Copied from : [dbo].[ky_NETCONFetchContactCategory] * * * * Modification History : * * 2019-04-22 Vinodhan K Created * * 2024-01-23 Balamurugan.C Modified - Revamped the sp according to current client category details* *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT [CCA].[CONTACT] AS [Contact], [CCA].[CATEGORYTYPE] AS [Code], [CCA].[CATEGORYTYPE] AS [CategoryType], [CCA].[CATEGORY] AS [Category], [CCA].[DATE] AS [Date], [CCA].[RECORDID] AS [RECORDID], [CAT].[Desc$] AS [CDescription], [CTP].[Description] AS [Description], [CCA].[FIELDVALUE1] AS [FieldValue1], [CCA].[FIELDVALUE2] AS [FieldValue2], [CCA].[FIELDVALUE3] AS [FieldValue3], [CCA].[FIELDVALUE4] AS [FieldValue4], [CCA].[FIELDVALUE5] AS [FieldValue5], [CCA].[FIELDVALUE6] AS [FieldValue6], [CCA].[FIELDVALUE7] AS [FieldValue7], [CCA].[FIELDVALUE8] AS [FieldValue8], [CCA].[FIELDVALUE9] AS [FieldValue9], [CCA].[FIELDVALUE10] AS [FieldValue10] FROM [dbo].[ContactCategories] [CCA] LEFT OUTER JOIN [dbo].[Category] [CAT] ON [CAT].[CatType] = [CCA].[CATEGORYTYPE] AND [CAT].[Code] = [CCA].[CATEGORY] LEFT OUTER JOIN [dbo].[CategoryType] [CTP] ON [CTP].[CategoryType] = [CCA].[CATEGORYTYPE] WHERE [CCA].[CONTACT] = @ClientCode SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchContactCategoryForEdit',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchContactCategoryForEdit] GO CREATE PROCEDURE [dbo].[KAAS_FetchContactCategoryForEdit] ( @Contact VARCHAR(8), @RecordId INT) /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_FetchContactCategoryForEdit] * * Copied from : [dbo].[ky_NETCONFetchContactCategory] * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT CC.CONTACT, CC.categorytype AS [CategoryType], CC.category AS [Category], CC.RECORDID, CC.[DATE], CC.FIELDVALUE1, CC.FIELDVALUE2, CC.FIELDVALUE3, CC.FIELDVALUE4, CC.FIELDVALUE5, CC.FIELDVALUE6, CC.FIELDVALUE7, CC.FIELDVALUE8, CC.FIELDVALUE9, CC.FIELDVALUE10, C.[Description] AS [CDescription], D.Desc$ AS [Description] FROM ContactCategories CC LEFT JOIN CategoryType C ON CC.categorytype = C.CategoryType LEFT JOIN Category D ON D.CatType = CC.categorytype AND D.Code = CC.category WHERE CC.CONTACT = @Contact AND CC.RECORDID = @RecordId SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchContactForEdit' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchContactForEdit] END GO CREATE PROCEDURE [dbo].[KAAS_FetchContactForEdit] (@Code VARCHAR(20), @Handler VARCHAR(10)) AS /******************************************************************************************************* * This stored procedure is used to FETCH contact details by Contact Code for update details * * * * Stored Procedure Name : [dbo].[KAAS_FetchContactForEdit] * * Copied from : [dbo].[ky_NETCONFetchContactForEdit] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * * 2021-10-13 Sadiq Date Format issue Fixed (13221) * * 2021-12-29 Sadiq RESIGNED date was not showing in Corporate TAB * * 2022-01-18 Sadiq Last rate has been added now * * 2023-05-25 Sadiq ApprovedDate has been added now * * 2024-01-24 Balamurugan.C Reframed the Current Client Contact Categories * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @BitWiseID BIGINT SELECT @BitWiseID = HNG.[BitWiseID] FROM HandlerNETGroupMembership HNG WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @Handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@Handler, '')))) IF (@Handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END --Client Details SELECT [CON].[Code], [CON].[Name], [CON].[Address], [CON].[Salut], [CON].[Tel], [CON].[Fax], [CON].[Email], [CON].[Principal], [CON].[FE], [CON].[Nation], [CON].[Spouse], CONVERT(VARCHAR, [CON].[DOB] , 120) AS [DOB], CONVERT(VARCHAR, [CON].[SpouseDOB] , 120) AS [SpouseDOB], [CON].[Introducer], [CON].[IntroFE], [CON].[Comments], CASE WHEN ISNULL([CON].[Corporate], 'N') = 'Y' THEN '1' ELSE '0' END AS [Corporate], CONVERT(VARCHAR, [CON].[DateOfMarriage] , 120) AS [DateOfMarriage], CASE WHEN ISNULL([CON].[SpouseDead], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsDead], CASE WHEN ISNULL([CON].[Separated], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsSeparated], [CON].[HowSeparated], [CON].[Partner], CONVERT(VARCHAR, [CON].[PartnerSince] , 120) AS [PartnerSince], [CON].[Occupation], [CON].[OtherRef], [CON].[ChargeArrangement], [CON].[BillingMethod], [CON].[Approved] AS Approved, [CON].[SpousePPS], [CON].[ClientGroup], [CON].[ClientVATNo], CASE WHEN ISNULL([CON].[ChargeOutRateInd], 'N') = 'Y' THEN '1' ELSE '0' END AS [ChargeOutRateInd], [CON].[TaxType], [CLT].[CLGRP], [CLT].[ClLegalName], [CLT].[CllegalAddr], [CLT].[CLTEL], [CLT].[CLMobNo], [CLT].[CLMartialCde], [CLT].[CLOccupCDE], [CLT].[CLEmployer], [CLT].[CLContactCde], [CLT].[DcoumentFolder], [CON].[CompFrequency], CASE WHEN ISNULL([CON].[InActive], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsDeceased], CONVERT(VARCHAR, [CON].DateInActive , 120) AS [DOD], [CON].[RSINo] AS [PPSNo], CASE WHEN ISNULL([CON].[Statements], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsStatement], CASE WHEN ISNULL([CON].[Inactive], 'N') = 'Y' THEN '1' ELSE '0' END AS [InActive], CONVERT(VARCHAR, [CON].[DateInactive] , 120) AS [Dateinactive], CONVERT(VARCHAR, [CON].[LastAR] , 120) AS [LastAr], [CON].[CRONumber], [CON].[CompanyWebSite], [CON].[OtherAddress], [CON].[County], [CON].[PostalCode], [CON].[CompMatter], [CON].[BankName], [CON].[BankAddress], [CON].[BankSortCode], [CON].[BankAccNo], [CON].[ApprovedDate], [CON].[IBan], [CON].[Bic], [CON].[EnvelopeName], [CON].[ChargeLevel] AS [ChargeLevel], [CON].[WarningMsg] AS [WarningMessage], ISNULL([CON].[DisallowNewMatter], 0) AS [DisallowNewMatter], ISNULL([MC].[Retired], 'N') AS [Retired], [DXAddress] AS [DXAddress], [SecondaryEmail] AS [SecondaryEmail], REPLACE(ISNULL([FC].[Retired], 'N'),' ','N') AS [FeeEarnerRetired], [CON].[Password], CASE WHEN ISNULL([CON].[RemoteAccess], 'N') = 'Y' THEN '1' ELSE '0' END AS [RemoteAccess], ISNULL([CON].[BankType], '') AS [BankType], RTRIM(ISNULL([CON].[EFTEmailAddress], '')) AS [EFTEmailAddress] FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[Contacts] [CON] ON [CON].[Code] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[client] [CLT] LEFT OUTER JOIN [dbo].[MiscCodes] [MC] ON [MC].[CDECODE] = [CLT].[ClMartialCde] ON [CLT].[CLCODE] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] [FC] ON [FC].[Code] = [CON].[FE] WHERE [MAT].[Code] = @Code --Cross References DECLARE @ClientCode VARCHAR(20) DECLARE @Matter VARCHAR(20) SET @ClientCode = (SELECT TOP 1 [MAT].[ClientCode] FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @Code) SET @Matter = (SELECT TOP 1 [MAT].[Matter] FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @Code) SELECT [CL].[CONTACTB] AS [LinkTo], [CON].[Name], [CL].[RELATE] AS [Relationship], [CL].[id] AS [Id] FROM [dbo].[ContactLinks] [CL] LEFT OUTER JOIN [dbo].[Contacts] [CON] ON [CON].[Code] = [CL].[CONTACTB] WHERE [CL].[CONTACTA] = @ClientCode --Client Charge out rate Indicator SELECT [CCR].[RECORDID], [CCR].[CLIENTCODE], [CCR].[FECODE], [CCR].[RATE], [CCR].[LastRate] AS OldRate, CONVERT(VARCHAR, [CCR].[EFFECTIVEDATE] , 120), [CCR].[EFFECTIVEDATE], COALESCE([HAN].[Name], [HAN].[Name], [CCR].[fecode]) AS [FeeEarnerName], CASE WHEN ISNULL([HAN].[Retired], 'N') = 'Y' THEN 'Y' ELSE ISNULL([HCG].[RETIRED], 'N') END AS [IsRetired] FROM [dbo].[ClientChargeOutRates] [CCR] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [CCR].[FeCode] LEFT OUTER JOIN [dbo].[HandlerChargeGroups] [HCG] ON [HCG].[Code] = [CCR].[FeCode] WHERE [CCR].[ClientCode] = @ClientCode AND ( ISNULL([HAN].[RETIRED], 'N') <> 'Y' OR ISNULL([HCG].[Retired], 'N') <> 'Y') --Client related matters SELECT [MAT].[Matter] AS [Matter], [MAT].[Description] AS [Description], [MAT].[FECode] AS [FeeEarner], [MAT].[Dept] AS [Department], [MAT].[WType] AS [WorkType], CONVERT(VARCHAR, [MAT].[Started] , 120) AS [Started], [MAT].[Code] AS [MatterCode] FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[MatterNETPrivileges] [MNP] ON [MNP].[MATTER] = [MAT].[Code] WHERE [MAT].[ClientCode] = @ClientCode AND ( ISNULL([MNP].[Privileges], CONVERT(BIGINT, -1)) & @BitWiseID <> 0 OR [MNP].[Privileges] IS NULL) --Other Contacts EXEC [dbo].[ky_NETGetClientContacts] @ClientCode --Category SELECT [CCA].[CONTACT] AS [Contact], [CCA].[CATEGORYTYPE] AS [Code], [CCA].[CATEGORYTYPE] AS [CategoryType], [CCA].[CATEGORY] AS [Category], [CCA].[DATE] AS [Date], [CCA].[RECORDID] AS [RECORDID], [CAT].[Desc$] AS [CDescription], [CTP].[Description] AS [Description], [CCA].[FIELDVALUE1] AS [FieldValue1], [CCA].[FIELDVALUE2] AS [FieldValue2], [CCA].[FIELDVALUE3] AS [FieldValue3], [CCA].[FIELDVALUE4] AS [FieldValue4], [CCA].[FIELDVALUE5] AS [FieldValue5], [CCA].[FIELDVALUE6] AS [FieldValue6], [CCA].[FIELDVALUE7] AS [FieldValue7], [CCA].[FIELDVALUE8] AS [FieldValue8], [CCA].[FIELDVALUE9] AS [FieldValue9], [CCA].[FIELDVALUE10] AS [FieldValue10] FROM [dbo].[ContactCategories] [CCA] LEFT OUTER JOIN [dbo].[Category] [CAT] ON [CAT].[CatType] = [CCA].[CATEGORYTYPE] AND [CAT].[Code] = [CCA].[CATEGORY] LEFT OUTER JOIN [dbo].[CategoryType] [CTP] ON [CTP].[CategoryType] = [CCA].[CATEGORYTYPE] WHERE [CCA].[CONTACT] = @ClientCode SELECT [OFC].[CONTACTOFFICER], [OFC].[NAME], [OFC].[COSECRETARY], [DATEAPPOINTED], [OFC].[DATERESIGNED] , [OFC].[RECORDID] FROM [dbo].[Officers] [OFC] WHERE [OFC].CONTACTCODE = @ClientCode EXECUTE ky_NETGetContactPrivilegeGroups @ClientCode EXECUTE KAAS_GetNotificationApprovalData @Matter, @ClientCode SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchContactForEdit_KEYHM',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchContactForEdit_KEYHM] GO CREATE PROCEDURE [dbo].[KAAS_FetchContactForEdit_KEYHM] (@Code VARCHAR(20), @Handler VARCHAR(10), @SearchText VARCHAR(4000)) AS /*************************************************************************************************************** * This stored procedure is used to FETCH CLIENT and OTHER details by Contact Code to update details * * for Keyhouse Mobile App * * * * Stored Procedure Name: [dbo].[KAAS_FetchContactForEdit_KEYHM] * * Copied from : [dbo].[ky_NETCONFetchContactForEdit] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * * 2019-07-01 Vinodhan K Full name will be filled with Firstname and Surname if its empty or null * ***************************************************************************************************************/ BEGIN SET NOCOUNT ON --Client Details SELECT [CON].[Code], [CON].[Name], [CON].[Address], [CON].[Salut], [CON].[Tel], [CON].[Fax], [CON].[Email], [CON].[Principal], [CON].[FE], [CON].[Nation], [CON].[Spouse], CONVERT(VARCHAR(10), [CON].[DOB], 112) AS [DOB], CONVERT(VARCHAR(10), [CON].[SpouseDOB], 112) AS [SpouseDOB], [CON].[Introducer], [CON].[IntroFE], [CON].[Comments], CASE WHEN ISNULL([CON].[Corporate], 'N') = 'Y' THEN '1' ELSE '0' END AS [Corporate], CONVERT(VARCHAR(10), [CON].[DateOfMarriage], 112) AS [DateOfMarriage], CASE WHEN ISNULL([CON].[SpouseDead], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsDead], CASE WHEN ISNULL([CON].[Separated], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsSeparated], [CON].[HowSeparated], [CON].[Partner], CONVERT(VARCHAR(10), [CON].[PartnerSince], 112) AS [PartnerSince], [CON].[Occupation], [CON].[OtherRef], [CON].[ChargeArrangement], [CON].[BillingMethod], [CON].[Approved] AS [Approved], [CON].[SpousePPS], [CON].[ClientGroup], [CON].[ClientVATNo], CASE WHEN ISNULL([CON].[ChargeOutRateInd], 'N') = 'Y' THEN '1' ELSE '0' END AS [ChargeOutRateInd], [CON].[TaxType], [CLT].[CLGRP], [CLT].[ClLegalName] AS [ClLegalName], [CLT].[CllegalAddr] AS [CllegalAddr], [CLT].[CLTEL] AS [CLTEL], [CLT].[CLMobNo], [CLT].[CLMartialCde], [CLT].[CLOccupCDE], [CLT].[CLEmployer], [CLT].[CLContactCde], [CLT].[DcoumentFolder] AS [DcoumentFolder], [CON].[CompFrequency], CASE WHEN ISNULL([CON].[InActive], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsDeceased], CONVERT(VARCHAR(10), [CON].DateInActive, 112) AS [DOD], [CON].[RSINo] AS [PPSNo], CASE WHEN ISNULL([CON].[Statements], 'N') = 'Y' THEN '1' ELSE '0' END AS [IsStatement], CASE WHEN ISNULL([CON].[Inactive], 'N') = 'Y' THEN '1' ELSE '0' END AS [InActive], CONVERT(VARCHAR(10), [CON].[DateInactive], 112) AS [Dateinactive], CONVERT(VARCHAR(10), [CON].[LastAR], 112) AS [LastAr], [CON].[CRONumber], [CON].[CompanyWebSite], [CON].[OtherAddress], [CON].[County], [CON].[PostalCode], [CON].[CompMatter], [CON].[BankName], [CON].[BankAddress], [CON].[BankSortCode], [CON].[BankAccNo], [CON].[IBan], [CON].[Bic], [CON].[EnvelopeName], [CON].[ChargeLevel] AS [ChargeLevel], [CON].[WarningMsg] AS [WarningMessage], ISNULL([CON].[DisallowNewMatter], 0) AS [DisallowNewMatter], ISNULL([MC].[Retired], 'N') AS [Retired], [DXAddress] AS [DXAddress], [SecondaryEmail] AS [SecondaryEmail], REPLACE(ISNULL([FC].[Retired], 'N'),' ','N') AS [FeeEarnerRetired], [CON].[Password], CASE WHEN ISNULL([CON].[RemoteAccess], 'N') = 'Y' THEN '1' ELSE '0' END AS [RemoteAccess], ISNULL([CON].[BankType], '') AS [BankType] FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[Contacts] [CON] ON [CON].[Code] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[client] [CLT] LEFT OUTER JOIN [dbo].[MiscCodes] [MC] ON [MC].[CDECODE] = [CLT].[ClMartialCde] ON [CLT].[CLCODE] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] [FC] ON [FC].[Code] = [CON].[FE] WHERE [MAT].[Code] = @Code --Other Contacts DECLARE @ClientCode VARCHAR(20) SET @ClientCode = (SELECT TOP 1 [MAT].[ClientCode] FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @Code) SELECT [CC].[CLINITS] AS [Initials], CASE WHEN ISNULL(CC.[CLNAMECON], '') = '' OR CC.[CLNAMECON] = '' THEN [CC].[FIRSTNAME] + ' ' + [CC].[SURNAME] ELSE [CC].[CLNAMECON] END AS [FullName], [CC].[HomePhone] AS [HomePhone], [CC].[WorkPhone] AS [WorkPhone], [CC].[Mobile] AS [Mobile], [CC].[FIRSTNAME] AS [FirstName], [CC].[SURNAME] AS [Surname], [CC].[CLSALUTE] AS [Salutation], [CC].[PPSNo] AS [PPSNumber], [CC].[CLTITLE] AS [Title], [CC].[Address], [CC].[EmailAddress], CONVERT(VARCHAR(11), [CC].[DOB], 106) AS [DOB], CONVERT(VARCHAR(11), [CC].[MarrigeDate], 106) AS [MarriageDate], [CC].[Occupation], [CC].[DateofDeath] AS [DateOfDeath], [MC].[CDEDESC] AS [MaritalStatus], [CC].[MartialStatus] AS [MStatus], [CC].[FaxNumber], [CC].[PostalCode], [CC].[County], [CC].[CLNUMCONTACT], [CC].[DXREF] FROM [dbo].[ClientContacts] [CC] LEFT OUTER JOIN [dbo].[MiscCodes] [MC] ON [MC].[CDECODE] = [CC].[MartialStatus] AND [MC].[CDETYPE] = 'MRS' WHERE [CC].[CLCODE] = @ClientCode AND ( @SearchText = '' OR ([CC].[CLNAMECON] LIKE '%' + @SearchText + '%') ) SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchContactPageLoad',N'P')IS NOT NULL DROP PROCEDURE KAAS_FetchContactPageLoad GO CREATE PROCEDURE KAAS_FetchContactPageLoad (@ClientCode VARCHAR(30)) AS /******************************************************************************************************* * This stored procedure is used to FETCH contact window load data * * 1. Tax Type Desc * * 2. Nationality * * 3. Fee Earner * * 4. Maritial Status * * 5. Charge Arrangement * * 6. Client Group * * 7. Contact type * * 8. Occupation Type . * * * * Stored Procedure Name : [dbo].[KAAS_FetchContactPageLoad] * * Copied from : [dbo].[ky_NETCONFetchContactPageLoad] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @FEEEARNER AS VARCHAR(10) DECLARE @MARITALSTATUS AS VARCHAR(10) DECLARE @OCCTYPE AS VARCHAR(10) DECLARE @CONTACTTYPE AS VARCHAR(10) DECLARE @INTROFE AS VARCHAR(10) SET @FEEEARNER = (SELECT C.[FE] FROM [Contacts] C LEFT JOIN [FeeEarnerCodes] FE ON FE.[code] = C.[FE] WHERE C.[Code] = @ClientCode AND FE.[Retired] = 'Y') SET @MARITALSTATUS = (SELECT CL.[ClMartialCde] FROM [CLIENT] CL LEFT JOIN [MISCCODES] MC ON MC.[CdeCode] = CL.[ClMartialCde] WHERE MC.[CDETYPE]='MRS' AND CL.[CLCODE] = @ClientCode AND MC.[Retired] = 'Y') SET @OCCTYPE = (SELECT CL.[CLOCCUPCDE] FROM [CLIENT] CL LEFT JOIN [MISCCODES] MC ON MC.[CdeCode] = CL.[CLOCCUPCDE] WHERE MC.[CDETYPE]='OCC' AND CL.[CLCODE] = @ClientCode AND MC.[Retired] = 'Y') SET @CONTACTTYPE = (SELECT CL.[CLCONTACTCDE] FROM [CLIENT] CL LEFT JOIN [MISCCODES] MC ON MC.[CdeCode] = CL.[CLOCCUPCDE] WHERE MC.[CDETYPE]='CCL' AND CL.[CLCODE] = @ClientCode AND MC.[Retired] = 'Y') SET @INTROFE = (SELECT C.[INTROFE] FROM [Contacts] C LEFT JOIN [FeeEarnerCodes] FE ON FE.[CODE] = C.[INTROFE] WHERE C.[Code] = @ClientCode AND FE.[Retired] = 'Y') SET NOCOUNT ON --Tax Type SELECT RTRIM([TaxType]) AS Code, RTRIM([TaxDesc]) AS TaxDesc FROM [TaxType] --Nationality SELECT RTRIM([Nation]) AS Code, RTRIM([Desc]) AS Nationality FROM NationCodes --Fee Earner SELECT RTRIM([Code]) AS Code, RTRIM(ISNULL([Name],'')) AS FeeEarners FROM [FeeEarnerCodes] WHERE ISNULL(Retired,'N') <> 'Y' OR [Code] = @FEEEARNER --Mairitial Status SELECT RTRIM([CdeCode]) AS Code, RTRIM(ISNULL([Cdedesc],'')) AS MaritialStatus FROM [MISCCODES] WHERE CDETYPE = 'MRS' AND (ISNULL(Retired,'N') <> 'Y' OR [CDECODE]= @MARITALSTATUS) --ChargeArrangements SELECT RTRIM(ISNULL([Code],'')) AS Code, RTRIM(ISNULL([Description],'')) AS ChargeArrangement FROM ChargeArrangements --ClientGroup SELECT RTRIM([GroupCode]) AS Code, RTRIM(ISNULL([GroupName],'')) AS ClientGroup FROM Clientgroup --ContactType SELECT RTRIM([CdeCode]) AS Code, RTRIM(ISNULL([CdeDesc],'')) AS ContactType FROM [MISCCODES] WHERE [CDEType] = 'CCL' AND (ISNULL(Retired,'N') <> 'Y' OR [CDECODE]= @CONTACTTYPE) --OccupationType SELECT RTRIM([CdeCode]) AS Code, RTRIM(ISNULL([CdeDesc],'')) AS OccupationType FROM [MISCCODES] WHERE [CDETYPE] = 'OCC' AND (ISNULL(Retired,'N') <> 'Y' OR CDECODE= @OCCTYPE) --Handler Charge Group SELECT 'H' as Code,'Handlers' As ChargeGroup UNION ALL SELECT 'CG', 'Charge Groups' -- Intro Fee Earner SELECT RTRIM([Code]) AS Code, RTRIM(ISNULL([Name],'')) AS IntroFeeEarners FROM [FeeEarnerCodes] WHERE ISNULL(Retired,'N') <> 'Y' OR [Code] = @INTROFE SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchCrossReference]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchCrossReference] GO CREATE PROCEDURE [KAAS_FetchCrossReference] (@ClientCode VARCHAR(20)) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_FetchCrossReference] * * Copied from : [dbo].[ky_NETCONFetchCrossReference] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON --Cross References SELECT CL.ContactB AS LinkTo, C.[Name], CL.Relate AS Relationship, CL.Id FROM ContactLinks CL LEFT JOIN Contacts C ON C.Code = CL.ContactB WHERE CL.ContactA = @ClientCode SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchCurrentPeriodAndYear',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchCurrentPeriodAndYear] GO CREATE PROCEDURE [dbo].[KAAS_FetchCurrentPeriodAndYear] AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_FetchCurrentPeriodAndYear] * * Description: To Get control table year and period(System Options ) * * * * Modification History: * * 2024-04-01 Balamurugan C Created * *******************************************************************************************************/ BEGIN SELECT [CON].[YEAR] AS [CurrentYear], [CON].[CURPER] AS [CurrentPeriod] FROM [dbo].[Control] [CON] END GO IF EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] WHERE [SO].[name] = 'KAAS_FetchDBUpdateInfo' AND [SO].[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchDBUpdateInfo] END GO CREATE PROCEDURE [dbo].[KAAS_FetchDBUpdateInfo] /************************************************************************************************************* * * * [dbo].[KAAS_FetchDBUpdateInfo] * * * * Fetches information about the current Database Version and an estimate of when this was applied * * based on when users logged in using the corresponding software version * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: FW 5.5.1.1 and later * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2024-01-17 Pino Carafa Created * * * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON DECLARE @VERSION VARCHAR(20) BEGIN TRY SELECT @VERSION = [KSL].[Hotfix] FROM [dbo].[KYScriptLog] [KSL] WHERE [KSL].[COMMENT] = 'Database update complete' AND [KSL].[CompatibleVersion] = 'Build 5.5.1.1' END TRY BEGIN CATCH END CATCH IF ISNULL(@VERSION, '') = '' BEGIN SELECT TOP 0 CONVERT(DATETIME, NULL) AS [Earliest Login], CONVERT(VARCHAR(20), '') AS [Version] END SELECT MIN([LoginTime]) AS [Earliest Login], @VERSION AS [Version] FROM [dbo].[LogonLog] WHERE [EntryAssemblyFullName] LIKE 'KHFramework, Version=' + @Version + ',%' SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchDependentAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchDependentAction] END GO CREATE PROCEDURE [dbo].[KAAS_FetchDependentAction] ( @ActionCode VARCHAR(50) ) /***************************************************************************** * This procedure is used to Fetch Dependent Action Based on Action Id * * * * Stored Procedure Name : [dbo].[KAAS_FetchDependentAction] * * Copied from : [dbo].[Ky_NetFetchDependentAction] * * * * Modification History : * * 2023-06-19 Nithyanandham M Created * *****************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT RTRIM(ISNULL([TDA].[RECORDID], '')) AS [RecordId], RTRIM(ISNULL([TDA].[ACTIONCODE], '')) AS [ActionCode], RTRIM(ISNULL([TDA].[DEPENDENTACTIONCODE], '')) AS [DependentActionCode], RTRIM(ISNULL([TDA].[TIMEFRAMAMOUNT], '')) AS [TimeFramAmount], RTRIM(ISNULL([TDA].[TIMEFRAMAMOUNT], '')) + ' ' + RTRIM(ISNULL([TDA].[TIMEFRAME], '')) AS [TimeFrame], RTRIM(ISNULL([TAC].[ACTIONCODE], '')) AS [Action], RTRIM(ISNULL([TAC].[DESC], '')) AS [Desc], RTRIM(ISNULL([TAC].[WKTCODE], '')) AS [WKTCode], RTRIM(ISNULL([TAC].[ACTTYPE], '')) AS [ACTType], RTRIM(ISNULL([TAC].[STATUS], '')) AS [Status], RTRIM(ISNULL([TAC].[MILESTONETYPE], '')) AS [MilestoneType] FROM [dbo].[TemplateDependentActions] [TDA] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] ON [TDA].[DEPENDENTACTIONCODE] = [TAC].[ACTIONCODE] WHERE [TDA].[ACTIONCODE] = @ActionCode ORDER BY [TDA].[ACTIONCODE] DESC, [TDA].[DEPENDENTACTIONCODE] DESC SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchDiaryAttachments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchDiaryAttachments] END GO CREATE PROCEDURE [dbo].[KAAS_FetchDiaryAttachments] (@DIARYID Integer, @Handler VARCHAR(10)) /******************************************************************************************************* * This procedure is used load the data for TaskAddAction page Attachment Grid. * * * * Stored Procedure Name : [dbo].[KAAS_FetchDiaryAttachments] * * Copied from : [dbo].[ky_NETCCFetchDiaryAttachments] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2022-07-13 VinodhKumar M Updated Alias names from Upper case to Pascal Case * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON INSERT INTO [dbo].[DiaryAttachmentAccess] ([TrackReference], [Handler], [Comment]) SELECT [DAT].[TrackReference], @Handler, 'Listed for Action' FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[DiaryID] = @DIARYID SELECT [DAT].[DIARYID] AS [DiaryId], [DAT].[TRACKREFERENCE] AS [TrackReference], RTRIM(ISNULL([DAT].[CASECODE], '')) AS [CaseCode], RTRIM(ISNULL([DAT].[NAME], '')) AS [Name], RTRIM(ISNULL([DAT].[DOCUMENT], '')) AS [Document], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [FilePath], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [LFilePath], RTRIM(ISNULL([DAT].[TYPE], '')) AS [Type], RTRIM(ISNULL([DCL].[CLASSCODE], '')) AS [DocClass], RTRIM(ISNULL([DCL].[CLASSDESCRIPTION], '')) AS [DocClassDesc], CONVERT(VARCHAR, [DAT].[DATEENTERED], 20) AS [DateEntered], RTRIM(ISNULL([DAT].[SYSTEM], 'N')) AS [System], RTRIM(ISNULL([DAT].[DOCCLASS], '')) AS [DocClass], RTRIM(ISNULL([DAT].[ENTEREDBY], '')) AS [EnteredBy], CONVERT(VARCHAR, [DAT].[LASTACCESSDATE], 20) AS [LastAccessDate], RTRIM(ISNULL([DAT].[LASTACCESSBY], '')) AS [LastAccessBy], RTRIM(ISNULL([DAT].[DICTATIONFILE], '')) AS [DictationFile], RTRIM(ISNULL([DAT].[SOURCE], '')) AS [Source], RTRIM(ISNULL([DAT].[Fees], '')) AS [Fees], RTRIM(ISNULL([DAT].[Outlay], '')) AS [Outlay], [DV].[CurrentVersion] AS [CurrentVersion], RTRIM(ISNULL([DX].[IMDocID], '')) AS [IMDocID], [MAT].[uniqueid] AS [UniqueId] FROM [dbo].[DiaryAttachments] [DAT] INNER JOIN [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CASECODE] ON [DIA].[ActionID] = [DAT].[DiaryID] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE [DAV].[TrackReference] = [DAT].[TRACKREFERENCE]) DV LEFT OUTER JOIN [dbo].[DocumentClasses] [DCL] ON [DCL].[CLASSCODE] = [DAT].[DOCCLASS] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DAT].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1) LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] ON [DX].[TrackReference] = [DAT].[TRACKREFERENCE] WHERE [DAT].[DIARYID] = @DIARYID ORDER BY [DAT].[TRACKREFERENCE] DESC SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchDiaryByMatterCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchDiaryByMatterCode] END GO CREATE PROCEDURE [dbo].[KAAS_FetchDiaryByMatterCode] (@Matter VARCHAR(20), @Search VARCHAR(200) = NULL, @PageNumber INT = NULL, @PageSize INT = NULL, @ActionTypeXML XML = NULL, @PriorityXML XML = NULL, @FlagXML XML = NULL, @DateXML XML = NULL, @LoggedInHandler VARCHAR(10) = NULL ) AS /************************************************************************************************************* * * * [dbo].[KAAS_FetchDiaryByMatterCode] * * * * Fetch Diary Items by Matter Code, with support for pagination and for filtering on ActionType, * * Priority and/or Flag. * * * * @Search can be any string. Wildcard % will be appended at start and finish * * @ActionTypeXML: example - '' * * @PriorityXML: example - '' * * @DateXML: example - '' * * @FlagXML: example- '' * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: [dbo].[ky_NETCASEDIARYFetchDiarybyMatterCode] * * * * Original: [dbo].[ky_NETSPFetchDiaryByMatterCode] * * * * First compatible version: 5.7.2.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2019-04-02 Pino Carafa Created * * 2019-04-30 Pino Carafa Added Subject search and Date Range * * 2019-05-21 Saravanan Performance tuning done * * 2019-05-29 Arun KEYHM-402 - Sorting order was correct till @FOUND table * variable(Line No: 232), after this, few column have joined for desired * output, at that time, sorting order gets changed, so explicitily have * soredted by id column after join operation completed(Line no: 380). * * 2019-10-23 Vinodhan If Flag is null, it be replaced with 0 and filtered while filtering the case diary data * soredted by id column after join operation completed(Line no: 380). * * 2019-10-29 Arun Have used KAAS_FNConvertUTCDateToTargetTimeZone function to convert * action date to utc * *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ShowFromToSynopsis BIT DECLARE @FromDate DATETIME DECLARE @ToDate DATETIME SET @ShowFromToSynopsis = CASE WHEN ISNULL((SELECT TOP 1 [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'ShowFromToSynopsis'), 'True') = 'False' THEN 0 ELSE 1 END -- Convert @ActionTypesXML etc into Table Variables for easier reference in later scripts START DECLARE @ACTIONTYPES TABLE ([ActionType] VARCHAR(1) PRIMARY KEY) DECLARE @ACTIONTYPESFILTERED BIT SET @ACTIONTYPESFILTERED = 0 --Squeeze the last little bit of performance out of this DECLARE @PRIORITIES TABLE ([Priority] VARCHAR(1) PRIMARY KEY) DECLARE @PRIORITIESFILTERED BIT SET @PRIORITIESFILTERED = 0 --Squeeze the last little bit of performance out of this DECLARE @Flags TABLE ([Flag] TINYINT PRIMARY KEY) DECLARE @FLAGSFILTERED BIT SET @FLAGSFILTERED = 0 --Squeeze the last little bit of performance out of this IF NOT (@DateXML IS NULL) IF NOT (CONVERT(VARCHAR(MAX), @DateXML) = '') BEGIN SELECT [FromDate], [ToDate] FROM (SELECT [DT].[COL].value('@FromDate', 'DATETIME') AS [FromDate], -- Use >= for comparison DATEADD(DAY, 1, [DT].[COL].value('@ToDate', 'DATETIME')) AS [ToDate] -- Add 1 Day to ToDate so that we can use < for comparison FROM @DateXML.nodes('/Dates') AS [DT]([COL])) [DTP] END IF NOT (@ActionTypeXML IS NULL) IF NOT (CONVERT(VARCHAR(MAX), @ActionTypeXML) = '') BEGIN INSERT INTO @ACTIONTYPES ([ActionType]) SELECT [ActionType] FROM (SELECT [AT].[COL].value('@Value', 'VARCHAR(10)') AS [ActionType] FROM @ActionTypeXML.nodes('/ActionType') AS [AT]([COL])) [ATP] SELECT @ACTIONTYPESFILTERED = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM @ACTIONTYPES END --Select * from @ActionTypes IF NOT (@PriorityXML IS NULL) IF NOT (CONVERT(VARCHAR(MAX), @PriorityXML) = '') BEGIN INSERT INTO @PRIORITIES ([Priority]) SELECT [Priority] FROM (SELECT [PT].[COL].value('@Value', 'VARCHAR(10)') AS [Priority] FROM @PriorityXML.nodes('/Priority') AS [PT]([COL])) [PTY] SELECT @PRIORITIESFILTERED = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM @PRIORITIES END IF NOT (@FlagXML IS NULL) IF NOT (CONVERT(VARCHAR(MAX), @FlagXML) = '') BEGIN INSERT INTO @Flags ([Flag]) SELECT [Flag] FROM (SELECT [FG].[COL].value('@Value', 'INT') AS [Flag] FROM @FlagXML.nodes('/Flag') AS [FG]([COL])) [FLG] SELECT @FLAGSFILTERED = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM @Flags END -- Convert @ActionTypesXML etc into Table Variables for easier reference in later scripts END -- Set @SearchText to NULL if nothing entered, otherwise ensure search starts and ends with -- a wildcard character % - START DECLARE @SEARCHTEXT VARCHAR(202) SET @SearchText = CASE WHEN RTRIM(ISNULL(@Search, '')) = '' THEN NULL ELSE RTRIM(ISNULL(@Search, '')) END IF @SearchText IS NOT NULL BEGIN IF SUBSTRING(@SearchText, 1, 1) <> '%' BEGIN SET @SearchText = '%' + @SearchText END IF SUBSTRING(@SearchText, LEN(@SearchText), 1) <> '%' BEGIN SET @SearchText = @SearchText + '%' END END -- Set @SearchText to NULL if nothing entered, otherwise ensure search starts and ends with -- a wildcard character % - END -- Avoid Unnecessary Join START DECLARE @ChargeArrangement VARCHAR(3) SELECT @ChargeArrangement = RTRIM(ISNULL([MAT].[ChargeArrangement], '')) FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @Matter -- Avoid Unnecessary Join END --SELECT ActionType FROM #ACTIONTYPES -- Table to contain all matching ActionIDs in the desired order DECLARE @FOUND TABLE ([id] INT IDENTITY(1, 1) PRIMARY KEY, [ActionID] INT) -- Insert ONLY the Primary Keys into the @FOUND Table so that it's much faster to retrieve only the requested page - Performance! INSERT INTO @FOUND ([ActionID]) SELECT [DIA].[ActionID] FROM [dbo].[diary] [DIA] LEFT OUTER JOIN [dbo].[Handlers] [FN] ON [FN].[CODE] = [DIA].[FNCODE] WHERE [DIA].[CASECODE] = @Matter -- -- Use the CASE Construct to ensure it doesn't perform the PATINDEX unless it's actually necessary - Performance! AND CASE WHEN @SEARCHTEXT IS NULL THEN 0 WHEN PATINDEX(@SEARCHTEXT, [DIA].[TEXT1]) > 0 THEN 0 WHEN PATINDEX(@SEARCHTEXT, [DIA].[SUBJECT]) > 0 THEN 0 WHEN [FN].[NAME] IS NULL THEN 1 WHEN PATINDEX(@SEARCHTEXT, [FN].[NAME]) > 0 THEN 0 ELSE 1 END = 0 -- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance! AND CASE WHEN @FromDate IS NULL THEN 0 WHEN [DIA].[DATE] >= @FromDate THEN 0 ELSE 1 END = 0 -- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance! AND CASE WHEN @ToDate IS NULL THEN 0 WHEN [DIA].[DATE] < @ToDate THEN 0 ELSE 1 END = 0 -- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance! AND (@ACTIONTYPESFILTERED = 0 Or ([DIA].[ActionType] in (SELECT * FROM @ACTIONTYPES))) -- -- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance! AND (@PRIORITIESFILTERED = 0 OR ([DIA].[Priority] IN (SELECT * FROM @Priorities))) -- -- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance! AND (@FLAGSFILTERED = 0 OR (ISNULL([DIA].[Flag], 0) IN (SELECT * FROM @Flags))) -- The Order By Clause is only required here, as further down the @FOUND table will return values ordered by [id] -- which is the exact order they were entered into it here - Again, Performance! ORDER BY [DIA].[CASECODE] ASC, [DIA].[STATUS] ASC, [DIA].[DATE] DESC, [DIA].[DYSTARTTIME] DESC, [DIA].[ACTIONID] DESC --for debugging uncomment this below line, after completion please dont forget to uncomment --select * from @FOUND DECLARE @TOTAL INT SET @TOTAL = (SELECT COUNT(1) FROM @FOUND) SELECT @TOTAL AS [TotalRecords] declare @HandlerTimeZone nvarchar(100) -- Only do the full SELECT with all columns when returning the actual result set. Driven from @FOUND SELECT --[FND].[id], RTRIM(ISNULL([DIA].[CASECODE], '')) AS [CASECODE], --CONVERT(VARCHAR, [DIA].[DATE], 20) AS [DATE], --CONVERT(VARCHAR(5), [DIA].[DATE], 108) AS [Time], dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DIA].[DATE], @LoggedInHandler) AS [DATE], CONVERT(VARCHAR(5),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DIA].[DATE], @LoggedInHandler), 108) AS [Time], RTRIM(ISNULL([DIA].[STATUS], 0)) AS [DStatus], RTRIM(ISNULL([DIA].[ACTIONCODE], '')) AS [ACTIONCODE], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE], RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL([DIA].[FNCODE], '')) AS [FNCODE], RTRIM(ISNULL([FN].[NAME], '')) AS [FNNAME], RTRIM(ISNULL([DIA].[TEAMCODE], '')) AS [TEAMCODE], RTRIM(ISNULL([DIA].[DisplayText], '')) AS [TEXT1], ISNULL(CASE WHEN ISNUMERIC([DIA].[DYSTARTTIME]) = 1 THEN [DIA].[DYSTARTTIME] ELSE [dbo].[ky_ConvertTimeToClarion]([DIA].[DYSTARTTIME]) END, 0) AS [DYSTARTTIME], ISNULL(CASE WHEN ISNUMERIC([DIA].[DYENDTIME]) = 1 THEN [DIA].[DYENDTIME] ELSE [dbo].[ky_ConvertTimeToClarion]([DIA].[DYENDTIME]) END, 0) AS [DYENDTIME], ISNULL([DIA].[ACTIONID],0) AS [ACTIONID], ISNULL([DIA].[ORGINALACTIONID],0) AS [ORGINALACTIONID], RTRIM(ISNULL([DIA].[PRIORITY], '')) AS [PRIORITY], RTRIM(ISNULL([DIA].[HIGHLIGHTED], 'N')) AS [HIGHLIGHTED], [HAT].[HasAttachments] AS [ATTACHMENTS], ISNULL([DIA].[PROCESSSTATUS], 0) AS [PROCESSSTATUS], ISNULL([DIA].[WORKPROCESS], 0) AS [WORKPROCESS], ISNULL([DIA].[BILLABLE], 0) AS [BILLABLE], RTRIM(ISNULL([DIA].[EMAILADDRESS], '')) AS [EMAILADDRESS], RTRIM(ISNULL(CONVERT(VARCHAR(200), [DIA].[ADDRESSTO]), '')) AS [ADDRESSTO], RTRIM(ISNULL([DIA].[EMAIL], 'N')) AS [EMAIL], RTRIM(ISNULL(CONVERT(VARCHAR(200), [DIA].[SUBJECT]), '')) AS [SUBJECT], ISNULL([DIA].[DELEGATIONSTATUS], 0) AS [DELEGATIONSTATUS], ISNULL([DIA].[DRAFTBILLNO], 0) AS [DRAFTBILLNO], ISNULL([DIA].[CHEQUEREQNO], 0) AS [CHEQUEREQNO], CAST(CASE WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE],'')) ='E' AND @ShowFromToSynopsis = 1 THEN CASE WHEN ISNULL([DIA].[PROCESSTYPE],'O')='I' THEN 'Email From:' + (RTRIM(ISNULL(CAST([DIA].[EMAILADDRESS] AS VARCHAR(300)), ''))) + ' - ' + ISNULL(CAST ([DIA].[Subject] AS VARCHAR(300)),'') ELSE 'Email To:' + RTRIM(CAST(ISNULL([DIA].[AddressTo], '') AS VARCHAR(300))) + ' - ' + ISNULL(CAST([DIA].[Subject] AS VARCHAR(300)), '') END ELSE CASE WHEN DATALENGTH([DIA].[SUBJECT]) = 0 THEN CASE WHEN SUBSTRING([DIA].[DisplayText], 0, CHARINDEX(CHAR(13), [DIA].[DisplayText])) = '' THEN ISNULL([DIA].[TEXT1], '') ELSE SUBSTRING([DIA].[DisplayText], 0, CHARINDEX(CHAR(13), [DIA].[DisplayText])) END WHEN RTRIM(CAST([DIA].[SUBJECT] AS VARCHAR(300))) = '' THEN CASE WHEN SUBSTRING([DIA].[DisplayText], 0, CHARINDEX(CHAR(13), [DIA].[DisplayText])) = '' THEN ISNULL([DIA].[TEXT1], '') ELSE SUBSTRING([DIA].[DisplayText], 0, CHARINDEX(CHAR(13), [DIA].[DisplayText])) END WHEN [DIA].[SUBJECT] IS NULL THEN CASE WHEN SUBSTRING([DIA].[DisplayText], 0, CHARINDEX(CHAR(13), [DIA].[DisplayText])) = '' THEN ISNULL([DIA].[TEXT1], '') ELSE SUBSTRING([DIA].[DisplayText], 0, CHARINDEX(CHAR(13), [DIA].[DisplayText])) END ELSE [DIA].[SUBJECT] END END AS VARCHAR(300)) AS [Synopsis], ISNULL([DIA].[Flag],0) AS [Flag], CASE WHEN RTRIM(ISNULL([DIA].[ForCopy], 0)) = '1' THEN 'True' ELSE 'False' END AS [ForCopy], CASE WHEN ISNULL([DIA].[WORKPROCESS], 0) = 1 AND ISNULL([DIA].[STATUS], 0) <> 1 THEN 'G' WHEN ISNULL([DIA].[STATUS], 0) = 1 THEN 'C' ELSE '' END AS [COMPELETEORGENERATE], CASE WHEN ISNULL([DIA].[WORKPROCESS], 0) = 1 AND ISNULL([DIA].[STATUS], 0) <> 1 THEN 'G' WHEN ISNULL([DIA].[STATUS], 0) = 1 THEN 'C' ELSE '' END AS [COMPELETEORGENERATEDD], ISNULL([TAC].[DESC], '') AS [ActionTitle], ISNULL([TMP].[WKDESC], '') AS [WorkFlow], CASE WHEN ISNULL([UND].[NeedsAttention], 0) = 1 THEN 'Yes' ELSE 'No' END AS [Needs Attention], CASE WHEN ISNULL([UND].[NeedsAttention], 0) = 1 THEN 'Visible' ELSE 'Collapsed' END AS [NeedsAttentionIcon], CASE WHEN @SearchText IS NULL THEN '' WHEN PATINDEX(@SearchText, [DIA].[TEXT1]) > 0 THEN @Search ELSE '' END AS [SearchMatch], ISNULL([DIA].[CreationDate], CONVERT(DATETIME, [DIA].[DATE])) AS [CreationDate], CASE WHEN [DIA].[DUEDATE] != NULL OR [DIA].[DUEDATE] != '' THEN CONVERT(VARCHAR, dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DIA].[DUEDATE], @LoggedInHandler) , 20) ELSE CONVERT(VARCHAR, dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DIA].[DATE], @LoggedInHandler) , 20) END AS [DUEDATE], RTRIM(ISNULL([DIA].[DELEGATEDFNR], '')) AS [DelegatedFE], RTRIM(ISNULL([TAC].[Arrangement], '')) AS [Arrangement], @ChargeArrangement AS [ChargeArrangement] FROM @FOUND [FND] INNER JOIN [dbo].[diary] [DIA] LEFT OUTER JOIN [dbo].[Handlers] [FN] ON [FN].[CODE] = [DIA].[FNCODE] ON [DIA].[ActionID] = [FND].[ActionID] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] LEFT OUTER JOIN [dbo].[Templates] [TMP] ON [TMP].[WKCODE] = [TAC].[WKTCODE] ON [TAC].[ACTIONCODE] = [DIA].[ACTIONCODE] LEFT OUTER JOIN [dbo].[Undertakings] [UND] ON [UND].[ActionID] = [DIA].[ACTIONID] AND [UND].[ActionID] <> 0 AND [UND].[ActionID] IS NOT NULL CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN 'N' ELSE 'Y' END AS [HasAttachments] FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[DiaryID] = [DIA].[ACTIONID]) [HAT] WHERE CASE WHEN @PageNumber = 0 THEN 0 WHEN [FND].[ID] <= (@PageNumber - 1) * @PageSize THEN 1 WHEN [FND].[ID] > @PageNumber * @PageSize THEN 1 ELSE 0 END = 0 ORDER BY [FND].[id] End GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchDiaryByMatterCodeForWeb' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchDiaryByMatterCodeForWeb] END GO CREATE PROCEDURE [dbo].[KAAS_FetchDiaryByMatterCodeForWeb] (@Matter VARCHAR(20), @Search VARCHAR(200) = NULL, @ActionTypeXML XML = NULL, @PriorityXML XML = NULL, @FlagXML XML = NULL, @DateXML XML = NULL, @LoggedInHandler VARCHAR(10) = NULL, @ColumnNames VARCHAR(100) = '', @FilterValues VARCHAR(4000) = '', @ActionIsLoad BIT = 0, @ActionStartDate DATE='', @PageSize INT=100, @ActionEndDate DATE='', @PageNumber INT=1, @SortColumn VARCHAR(100) = 'Id', @SortOrder VARCHAR(100) = 'ASC' ) AS /************************************************************************************************************* * * * [dbo].[KAAS_FetchDiaryByMatterCodeForWeb] * * * * Fetch Diary Items by Matter Code, with support for pagination and for filtering on ActionType, * * Priority and/or Flag. * * * * @Search can be any string. Wildcard % will be appended at start and finish * * @ActionTypeXML: example - '' * * @PriorityXML: example - '' * * @DateXML: example - '' * * @FlagXML: example- '' * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: [dbo].[ky_NETCASEDIARYFetchDiarybyMatterCode] * * * * Original: [dbo].[ky_NETSPFetchDiaryByMatterCode] * * * * First compatible version: 5.7.2.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2019-04-02 Pino Carafa Created * * 2019-04-30 Pino Carafa Added Subject search and Date Range * * 2019-05-21 Saravanan Performance tuning done * * 2019-05-29 Arun KEYHM-402 - Sorting order was correct till @FOUND table * variable(Line No: 232), after this, few column have joined for desired * output, at that time, sorting order gets changed, so explicitily have * soredted by id column after join operation completed(Line no: 380). * * 2019-10-23 Vinodhan If Flag is null, it be replaced with 0 and filtered while filtering the case diary data * soredted by id column after join operation completed(Line no: 380). * * 2019-10-29 Arun Have used KAAS_FNConvertUTCDateToTargetTimeZone function to convert * action date to utc * * 2019-02-10 Ganapathy Included search filter for Action id column (for GoTo) * * 2019-02-18 Prabhu V Added Custom Filter for Case Diary * * 2020-03-19 Prabhu V Improved Performance * * 2020-03-23 Prabhu V Improved Performance Fetching 20k data in 2 seconds * * It was taken 40 seconds with previous query * 2021-05-28 Sadiq Added parametrs to Action near this (New functionality in Case diary) and handled the output (11988) * * 2021-06-07 Sadiq Filter option need to be added when "Action Near this" is selected(11988) * * 2021-08-26 Sadiq Removed pagination concept and adding TEAM NAME to existing SP * * 2021-08-30 Sadiq MOdified Priority and C/G columns so that Dev extreme sort properly (12955) * * 2021-12-20 Aakif Included filter options for Handler & Action code in diary list * * 2022-05-30 Aakif Fix for property mapping issue for Attention field * * 2022-06-22 Sadiq Added pagination concept for Max Row COunt * * 2022-07-11 Revathy Modified pagination concept for scroll load * 2022-09-06 Ghayathri Modified procedure as a dynamic query to implement sort and search across all the records. * * 2022-09-15 Ghayathri Modified procedure to create condition order by clause for different * columns in the final select statement with following details: * 1) Created a new column 'CompleteORGeneratedValue' in the Final select * statement. * 2) Modified order by clause to fetch only non empty values from Handler, * TeamCode,ActionType columns . * 3) Handled 'Highlighted' column null and empty values as N. * 4) All date columns in the final order by clause is fetched from * Diary Table. * * 2023-05-31 Nithyanandham Modified procedure to reduce the loading time * Some of the Case Code taking more time than the expected * 1) Removed the Diary and Handler join in select statement * 2) Added the needed columns in the tamporary table and insert those * Columns before select * 4) Select the needed columns only in the final select clause and removed * the un wanted joins * *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ShowFromToSynopsis BIT DECLARE @FromDate DATETIME DECLARE @ToDate DATETIME DECLARE @OrderByVariable NVARCHAR(MAX); SET @ShowFromToSynopsis = CASE WHEN ISNULL((SELECT TOP 1 [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'ShowFromToSynopsis'), 'True') = 'False' THEN 0 ELSE 1 END IF NOT (@DateXML IS NULL) IF NOT (CONVERT(VARCHAR(MAX), @DateXML) = '') BEGIN SELECT [FromDate], [ToDate] FROM (SELECT [DT].[COL].value('@FromDate', 'DATETIME') AS [FromDate], -- Use >= for comparison DATEADD(DAY, 1, [DT].[COL].value('@ToDate', 'DATETIME')) AS [ToDate] -- Add 1 Day to ToDate so that we can use < for comparison FROM @DateXML.nodes('/Dates') AS [DT]([COL])) [DTP] END -- Set @SearchText to NULL if nothing entered, otherwise ensure search starts and ends with -- a wildcard character % - START -- Custom Filter Start DECLARE @ActionTypeFilterCount INT = 0; DECLARE @PriorityFilterCount INT = 0; DECLARE @FlagFilterCount INT = 0; DECLARE @FNCodeCount INT = 0; DECLARE @ActionCodeCount INT = 0; DECLARE @ActionStatusCount INT = 0; DECLARE @SEARCHTEXT VARCHAR(202) SET @SearchText = CASE WHEN RTRIM(ISNULL(@Search, '')) = '' THEN NULL ELSE RTRIM(ISNULL(@Search, '')) END IF @SearchText IS NOT NULL BEGIN IF SUBSTRING(@SearchText, 1, 1) <> '%' BEGIN SET @SearchText = '%' + @SearchText END IF SUBSTRING(@SearchText, LEN(@SearchText), 1) <> '%' BEGIN SET @SearchText = @SearchText + '%' END END -- Set @SearchText to NULL if nothing entered, otherwise ensure search starts and ends with -- a wildcard character % - END -- Avoid Unnecessary Join START DECLARE @ChargeArrangement VARCHAR(3) SELECT @ChargeArrangement = RTRIM(ISNULL([MAT].[ChargeArrangement], '')) FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @Matter -- Avoid Unnecessary Join END DECLARE @COMMAND NVARCHAR(MAX) SET @COMMAND = ' IF @ColumnNames <> '''' BEGIN DECLARE @CustomFilter TABLE ([ActionType] VARCHAR(2000), [Priority] VARCHAR(2000), [Flag] VARCHAR(2000), [FNCode] VARCHAR(MAX), [ActionCode] VARCHAR(2000), [ActionStatus] VARCHAR(2000)) SELECT columnName,rownumber INTO #columntbl FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS columnName, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM ( SELECT CAST('''' + REPLACE(@ColumnNames,'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) ColumnTbl SELECT FilterValue,rownumber INTO #FILTERVALUETBL FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM ( SELECT CAST('''' + REPLACE(@FilterValues,''|'','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBL DECLARE @count INT DECLARE @lptcnt INT=1 DECLARE @ColumnName VARCHAR(100) DECLARE @FilterValue VARCHAR(2000) SELECT @count = count(1) FROM #columntbl; WHILE @lptcnt <= @count BEGIN SET @FilterValue ='''' SELECT @ColumnName = columnName FROM #columntbl WHERE rownumber = @lptcnt SELECT @FilterValue = FilterValue FROM #FILTERVALUETBL WHERE rownumber = @lptcnt IF(@ColumnName = ''Action Type'') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (@FilterValue,null,null,NULL,NULL,NULL) ELSE IF(@ColumnName = ''Action Priority'') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,@FilterValue,null,NULL,NULL,NULL) ELSE IF(@ColumnName = ''Action Flag'') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,null,@FilterValue,NULL,NULL,NULL) ELSE IF(@ColumnName = ''Handler'') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,null,NULL,@FilterValue,NULL,NULL) ELSE IF(@ColumnName = ''Action Code'') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,null,NULL,NULL,@FilterValue,NULL) ELSE IF(@ColumnName = ''Action Status'') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,null,NULL,NULL,NULL,@FilterValue) SET @lptcnt = @lptcnt + 1; END SET @ActionTypeFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [ActionType] IS NOT NULL AND [ActionType] <>'''') SET @PriorityFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [Priority] IS NOT NULL AND [Priority] <>'''') SET @FlagFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [Flag] IS NOT NULL AND [Flag] <>'''') SET @FNCodeCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [FNCode] IS NOT NULL AND [FNCode] <>'''') SET @ActionCodeCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [ActionCode] IS NOT NULL AND [ActionCode] <>'''') SET @ActionStatusCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [ActionStatus] IS NOT NULL AND [ActionStatus] <>'''') END -- Custom Filter End' SET @COMMAND = @COMMAND + N' DECLARE @DiaryActionIDdetails TABLE ([ID] INT identity(1, 1), [ACTIONID] INT, [CASECODE] VARCHAR(20), [STATUS] INT, [DATE] datetime, [DYSTARTTIME] VARCHAR(10), [FNNAME] VARCHAR(100), [TEXT1] VARCHAR(max), [CreationDate] DATETIME, [DUEDATE] DATETIME, [DELEGATEDFNR] VARCHAR(10), [FNCode] VARCHAR(10), [TEAMCODE] VARCHAR(10), [ACTIONTYPE] VARCHAR(1), [WORKPROCESS] SMALLINT, [ForCopy] VARCHAR(1), [Flag] TINYINT, [SUBJECT] VARCHAR(500), [DisplayText] VARCHAR(200), [AddressTo] VARCHAR(2000), [EMAILADDRESS] VARCHAR(150), [CHEQUEREQNO] INT, [DRAFTBILLNO] INT, [DELEGATIONSTATUS] INT, [EMAIL] VARCHAR(1), [BILLABLE] INT, [PROCESSSTATUS] SMALLINT, [HIGHLIGHTED] VARCHAR(1), [PRIORITY] VARCHAR(1), [ORGINALACTIONID] INT, [DYENDTIME] VARCHAR(10), [PROCESSTYPE] VARCHAR(1), [ACTIONCODE] VARCHAR(15), [TOTALROWSCOUNT] INT); IF(@ActionIsLoad=1) BEGIN INSERT INTO @DiaryActionIDdetails SELECT [DIA].[ACTIONID],[DIA].[CASECODE] , [DIA].[STATUS] , [DIA].[DATE] , [DIA].[DYSTARTTIME] , [FN].[NAME], [DIA].[TEXT1] , [DIA].[CreationDate], [DIA].[DUEDATE], [DIA].[DELEGATEDFNR], [DIA].[FNCode], [DIA].[TEAMCODE], [DIA].[ACTIONTYPE], [DIA].[WORKPROCESS], [DIA].[ForCopy], [DIA].[Flag], [DIA].[SUBJECT], [DIA].[DisplayText], [DIA].[AddressTo], [DIA].[EMAILADDRESS], [DIA].[CHEQUEREQNO], [DIA].[DRAFTBILLNO], [DIA].[DELEGATIONSTATUS], [DIA].[EMAIL], [DIA].[BILLABLE], [DIA].[PROCESSSTATUS], [DIA].[HIGHLIGHTED], [DIA].[PRIORITY], [DIA].[ORGINALACTIONID], [DIA].[DYENDTIME], [DIA].[PROCESSTYPE], [DIA].[ACTIONCODE], count(1) OVER() as TotalRowsCount FROM [dbo].[diary] [DIA] LEFT OUTER JOIN [dbo].[Handlers] [FN] ON [FN].[CODE] = [DIA].[FNCODE] WHERE [DIA].[CASECODE] = @Matter AND [DIA].[DATE]>=@ActionStartDate AND [DIA].[DATE] <= @ActionEndDate AND ( (CASE WHEN @ActionTypeFilterCount = 0 THEN 1 WHEN [DIA].[ActionType] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [ActionType] FROM @CustomFilter WHERE [ActionType] IS NOT NULL and [ActionType] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END ) =1 AND (CASE WHEN @PriorityFilterCount = 0 THEN 1 WHEN [DIA].[Priority] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [Priority] FROM @CustomFilter WHERE [Priority] IS NOT NULL and [Priority] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @FlagFilterCount = 0 THEN 1 WHEN ISNULL([DIA].[Flag], 0) in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [Flag] FROM @CustomFilter WHERE [Flag] IS NOT NULL and [Flag] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @FNCodeCount = 0 THEN 1 WHEN ISNULL([DIA].[FNCODE], '''') in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [FNCode] FROM @CustomFilter WHERE [FNCode] IS NOT NULL and [FNCode] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @ActionCodeCount = 0 THEN 1 WHEN ISNULL([DIA].[ACTIONCODE], '''') in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [ActionCode] FROM @CustomFilter WHERE [ActionCode] IS NOT NULL and [ActionCode] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @ActionStatusCount = 0 THEN 1 WHEN (CASE WHEN ISNULL([DIA].[WORKPROCESS],0) = 1 AND ISNULL([DIA].[STATUS], 0) <> 1 THEN ''G'' WHEN ISNULL([DIA].[STATUS], 0) = 1 THEN ''GC'' ELSE ''N'' END) in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [ActionStatus] FROM @CustomFilter WHERE [ActionStatus] IS NOT NULL and [ActionStatus] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 ) GROUP BY [DIA].[ACTIONID],[DIA].[CASECODE] , [DIA].[STATUS] , [DIA].[DATE] , [DIA].[DYSTARTTIME], [FN].[NAME], [DIA].[TEXT1] , [DIA].[CreationDate], [DIA].[DUEDATE], [DIA].[DELEGATEDFNR], [DIA].[FNCode], [DIA].[TEAMCODE], [DIA].[ACTIONTYPE], [DIA].[WORKPROCESS], [DIA].[ForCopy], [DIA].[Flag], [DIA].[SUBJECT], [DIA].[DisplayText], [DIA].[AddressTo], [DIA].[EMAILADDRESS], [DIA].[CHEQUEREQNO], [DIA].[DRAFTBILLNO], [DIA].[DELEGATIONSTATUS], [DIA].[EMAIL], [DIA].[BILLABLE], [DIA].[PROCESSSTATUS], [DIA].[HIGHLIGHTED], [DIA].[PRIORITY], [DIA].[ORGINALACTIONID], [DIA].[DYENDTIME], [DIA].[PROCESSTYPE], [DIA].[ACTIONCODE] ORDER BY [DIA].[CASECODE] ASC, [DIA].[STATUS] ASC, [DIA].[DATE] DESC, [DIA].[DYSTARTTIME] DESC, [DIA].[ACTIONID] DESC END ELSE BEGIN INSERT INTO @DiaryActionIDdetails SELECT [DIA].[ACTIONID],[DIA].[CASECODE] , [DIA].[STATUS] , [DIA].[DATE] , [DIA].[DYSTARTTIME] , [FN].[NAME], [DIA].[TEXT1] , [DIA].[CreationDate], [DIA].[DUEDATE], [DIA].[DELEGATEDFNR], [DIA].[FNCode], [DIA].[TEAMCODE], [DIA].[ACTIONTYPE], [DIA].[WORKPROCESS], [DIA].[ForCopy], [DIA].[Flag], [DIA].[SUBJECT], [DIA].[DisplayText], [DIA].[AddressTo], [DIA].[EMAILADDRESS], [DIA].[CHEQUEREQNO], [DIA].[DRAFTBILLNO], [DIA].[DELEGATIONSTATUS], [DIA].[EMAIL], [DIA].[BILLABLE], [DIA].[PROCESSSTATUS], [DIA].[HIGHLIGHTED], [DIA].[PRIORITY], [DIA].[ORGINALACTIONID], [DIA].[DYENDTIME], [DIA].[PROCESSTYPE], [DIA].[ACTIONCODE], count(1) OVER() as TotalRowsCount FROM [dbo].[diary] [DIA] LEFT OUTER JOIN [dbo].[Handlers] [FN] ON [FN].[CODE] = [DIA].[FNCODE] WHERE [DIA].[CASECODE] = @Matter AND -- Use the CASE Construct to ensure it doesnot perform the PATINDEX unless its actually necessary - Performance! CASE WHEN @SEARCHTEXT IS NULL THEN 0 WHEN PATINDEX(@SEARCHTEXT, [DIA].[TEXT1]) > 0 THEN 0 WHEN PATINDEX(@SEARCHTEXT, [DIA].[ACTIONCODE]) > 0 THEN 0 WHEN PATINDEX(@SEARCHTEXT, [DIA].[SUBJECT]) > 0 THEN 0 WHEN [FN].[NAME] IS NULL THEN 1 WHEN PATINDEX(@SEARCHTEXT, [FN].[NAME]) > 0 THEN 0 WHEN PATINDEX(@SEARCHTEXT, CAST([DIA].[ACTIONID] AS VARCHAR(50))) > 0 THEN 0 ELSE 1 END = 0 -- Use the CASE Construct to ensure it doesnot perform SELECT until an actual filter is specified - Performance! AND CASE WHEN @FromDate IS NULL THEN 0 WHEN [DIA].[DATE] >= @FromDate THEN 0 ELSE 1 END = 0 -- Use the CASE Construct to ensure it doesnot perform SELECT until an actual filter is specified - Performance! AND CASE WHEN @ToDate IS NULL THEN 0 WHEN [DIA].[DATE] < @ToDate THEN 0 ELSE 1 END = 0 AND ( (CASE WHEN @ActionTypeFilterCount = 0 THEN 1 WHEN [DIA].[ActionType] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [ActionType] FROM @CustomFilter WHERE [ActionType] IS NOT NULL and [ActionType] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END ) =1 AND (CASE WHEN @PriorityFilterCount = 0 THEN 1 WHEN [DIA].[Priority] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [Priority] FROM @CustomFilter WHERE [Priority] IS NOT NULL and [Priority] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @FlagFilterCount = 0 THEN 1 WHEN ISNULL([DIA].[Flag], 0) in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [Flag] FROM @CustomFilter WHERE [Flag] IS NOT NULL and [Flag] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @FNCodeCount = 0 THEN 1 WHEN ISNULL([DIA].[FNCODE], 0) in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [FNCode] FROM @CustomFilter WHERE [FNCode] IS NOT NULL and [FNCode] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @ActionCodeCount = 0 THEN 1 WHEN ISNULL([DIA].[ACTIONCODE], 0) in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [ActionCode] FROM @CustomFilter WHERE [ActionCode] IS NOT NULL and [ActionCode] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @ActionStatusCount = 0 THEN 1 WHEN (CASE WHEN ISNULL([DIA].[WORKPROCESS],0) = 1 AND ISNULL([DIA].[STATUS], 0) <> 1 THEN ''G'' WHEN ISNULL([DIA].[STATUS], 0) = 1 THEN ''GC'' ELSE ''N'' END) in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [ActionStatus] FROM @CustomFilter WHERE [ActionStatus] IS NOT NULL and [ActionStatus] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 ) GROUP BY [DIA].[ACTIONID],[DIA].[CASECODE] , [DIA].[STATUS] , [DIA].[DATE] , [DIA].[DYSTARTTIME], [FN].[NAME], [DIA].[TEXT1] , [DIA].[CreationDate], [DIA].[DUEDATE], [DIA].[DELEGATEDFNR], [DIA].[FNCode], [DIA].[TEAMCODE], [DIA].[ACTIONTYPE], [DIA].[WORKPROCESS], [DIA].[ForCopy], [DIA].[Flag], [DIA].[SUBJECT], [DIA].[DisplayText], [DIA].[AddressTo], [DIA].[EMAILADDRESS], [DIA].[CHEQUEREQNO], [DIA].[DRAFTBILLNO], [DIA].[DELEGATIONSTATUS], [DIA].[EMAIL], [DIA].[BILLABLE], [DIA].[PROCESSSTATUS], [DIA].[HIGHLIGHTED], [DIA].[PRIORITY], [DIA].[ORGINALACTIONID], [DIA].[DYENDTIME], [DIA].[PROCESSTYPE], [DIA].[ACTIONCODE] ORDER BY [DIA].[CASECODE] ASC, [DIA].[STATUS] ASC, [DIA].[DATE] DESC, [DIA].[DYSTARTTIME] DESC, [DIA].[ACTIONID] DESC END IF EXISTS(SELECT TOP 1 [TOTALROWSCOUNT] FROM @DiaryActionIDdetails ) BEGIN SELECT TOP 1 [TOTALROWSCOUNT] AS TotalRecords FROM @DiaryActionIDdetails END ELSE BEGIN SELECT 0 as TotalRecords END DECLARE @HandlerTimeZone nvarchar(100) SELECT RTRIM(ISNULL([AID].[CASECODE], '''')) AS [CaseCode], CONVERT(NVARCHAR(15), dbo.KAAS_FNConvertUTCDateToTargetTimeZone([AID].[DATE], @LoggedInHandler), 23) AS [Date], CONVERT(VARCHAR(5),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([AID].[DATE], @LoggedInHandler), 108) AS [Time], RTRIM(ISNULL([AID].[STATUS], 0)) AS [DStatus], RTRIM(ISNULL([AID].[ACTIONCODE], '''')) AS [ActionCode], RTRIM(ISNULL([AID].[ACTIONTYPE], '''')) AS [ActionType], RTRIM(ISNULL([AID].[PROCESSTYPE], '''')) AS [ProcessType], RTRIM(ISNULL([AID].[FNCODE], '''')) AS [FNCode], RTRIM(ISNULL([AID].[FNNAME], '''')) AS [FNName], RTRIM(ISNULL([AID].[TEAMCODE], '''')) AS [TeamCode], RTRIM(ISNULL([TFN].[NAME], '''')) AS [TeamName], RTRIM(ISNULL([AID].[DisplayText], '''')) AS [Text1], ISNULL(CASE WHEN ISNUMERIC([AID].[DYSTARTTIME]) = 1 THEN [AID].[DYSTARTTIME] ELSE [dbo].[ky_ConvertTimeToClarion]([AID].[DYSTARTTIME]) END, 0) AS [DYStartTime], ISNULL(CASE WHEN ISNUMERIC([AID].[DYENDTIME]) = 1 THEN [AID].[DYENDTIME] ELSE [dbo].[ky_ConvertTimeToClarion]([AID].[DYENDTIME]) END, 0) AS [DYEndTime], ISNULL([AID].[ACTIONID],0) AS [ActionId], ISNULL([AID].[ORGINALACTIONID],0) AS [OriginalActionId], RTRIM(ISNULL([AID].[PRIORITY], '''')) AS [Priority], CASE WHEN (RTRIM(ISNULL([AID].[PRIORITY], '''')) = ''H'') THEN 2 WHEN (RTRIM(ISNULL([AID].[PRIORITY], '''')) = ''N'') THEN 1 WHEN (RTRIM(ISNULL([AID].[PRIORITY], '''')) = ''L'') THEN 0 ELSE 0 END AS [PriorityValue], CASE WHEN (RTRIM(ISNULL([AID].[HIGHLIGHTED], ''N'')) = ''N'') THEN ''N'' WHEN [AID].[HIGHLIGHTED] = '' '' THEN ''N'' ELSE ''Y'' END AS [Highlighted], [HAT].[HasAttachments] AS [Attachments], ISNULL([AID].[PROCESSSTATUS], 0) AS [ProcessStatus], ISNULL([AID].[WORKPROCESS], 0) AS [WorkProcess], ISNULL([AID].[BILLABLE], 0) AS [Billable], RTRIM(ISNULL([AID].[EMAILADDRESS], '''')) AS [EmailAddress], RTRIM(ISNULL(CONVERT(VARCHAR(200), [AID].[ADDRESSTO]), '''')) AS [AddressTo], RTRIM(ISNULL([AID].[EMAIL], ''N'')) AS [Email], RTRIM(ISNULL(CONVERT(VARCHAR(200), [AID].[SUBJECT]), '''')) AS [Subject], ISNULL([AID].[DELEGATIONSTATUS], 0) AS [DelegationStatus], ISNULL([AID].[DRAFTBILLNO], 0) AS [DraftBillNo], ISNULL([AID].[CHEQUEREQNO], 0) AS [ChequeReqNo], CAST(CASE WHEN RTRIM(ISNULL([AID].[ACTIONTYPE],'''')) =''E'' AND @ShowFromToSynopsis = 1 THEN CASE WHEN ISNULL([AID].[PROCESSTYPE],''O'')=''I'' THEN ''Email From:'' + (RTRIM(ISNULL(CAST([AID].[EMAILADDRESS] AS VARCHAR(300)), ''''))) + ''-'' + ISNULL(CAST ([AID].[Subject] AS VARCHAR(300)),'''') ELSE ''Email To:'' + RTRIM(CAST(ISNULL([AID].[AddressTo], '''') AS VARCHAR(300))) + ''-'' + ISNULL(CAST([AID].[Subject] AS VARCHAR(300)), '''') END ELSE CASE WHEN DATALENGTH([AID].[SUBJECT]) = 0 THEN CASE WHEN SUBSTRING([AID].[DisplayText], 0, CHARINDEX(CHAR(13), [AID].[DisplayText])) = '''' THEN ISNULL([AID].[TEXT1], '''') ELSE SUBSTRING([AID].[DisplayText], 0, CHARINDEX(CHAR(13), [AID].[DisplayText])) END WHEN RTRIM(CAST([AID].[SUBJECT] AS VARCHAR(300))) = '''' THEN CASE WHEN SUBSTRING([AID].[DisplayText], 0, CHARINDEX(CHAR(13), [AID].[DisplayText])) = '''' THEN ISNULL([AID].[TEXT1], '''') ELSE SUBSTRING([AID].[DisplayText], 0, CHARINDEX(CHAR(13), [AID].[DisplayText])) END WHEN [AID].[SUBJECT] IS NULL THEN CASE WHEN SUBSTRING([AID].[DisplayText], 0, CHARINDEX(CHAR(13), [AID].[DisplayText])) = '''' THEN ISNULL([AID].[TEXT1], '''') ELSE SUBSTRING([AID].[DisplayText], 0, CHARINDEX(CHAR(13), [AID].[DisplayText])) END ELSE [AID].[SUBJECT] END END AS VARCHAR(300)) AS [Synopsis], ISNULL([AID].[Flag],0) AS [Flag], CASE WHEN RTRIM(ISNULL([AID].[ForCopy], 0)) = ''1'' THEN ''True'' ELSE ''False'' END AS [ForCopy], CASE WHEN ISNULL([AID].[WORKPROCESS], 0) = 1 AND ISNULL([AID].[STATUS], 0) <> 1 THEN ''G'' WHEN ISNULL([AID].[STATUS], 0) = 1 THEN ''C'' ELSE '''' END AS [CompleteORGenerate], CASE WHEN ISNULL([AID].[WORKPROCESS], 0) = 1 AND ISNULL([AID].[STATUS], 0) <> 1 THEN ''G'' WHEN ISNULL([AID].[STATUS], 0) = 1 THEN ''GC'' ELSE '''' END AS [CompleteORGenerated], CASE WHEN ISNULL([AID].[WORKPROCESS], 0) = 1 AND ISNULL([AID].[STATUS], 0) <> 1 THEN ''1'' WHEN ISNULL([AID].[STATUS], 0) = 1 THEN ''2'' ELSE ''0'' END AS [CompleteORGeneratedValue], ISNULL([TAC].[DESC], '''') AS [ActionTitle], ISNULL([TMP].[WKDESC], '''') AS [WorkFlow], CASE WHEN ISNULL([UND].[NeedsAttention], 0) = 1 THEN ''Yes'' ELSE ''No'' END AS [NeedsAttention], CASE WHEN ISNULL([UND].[NeedsAttention], 0) = 1 THEN ''Visible'' ELSE ''Collapsed'' END AS [NeedsAttentionIcon], CASE WHEN @SearchText IS NULL THEN '''' WHEN ((PATINDEX(@SearchText, [AID].[TEXT1]) > 0) OR (PATINDEX(@SearchText, CAST([AID].[ACTIONID] AS VARCHAR(50))) > 0)) THEN @Search ELSE '''' END AS [SearchMatch], ISNULL([AID].[CreationDate], CONVERT(DATETIME, [AID].[DATE])) AS [CreationDate], CASE WHEN [AID].[DUEDATE] != NULL OR [AID].[DUEDATE] != '''' THEN CONVERT(VARCHAR, dbo.KAAS_FNConvertUTCDateToTargetTimeZone([AID].[DUEDATE], @LoggedInHandler) , 20) ELSE CONVERT(VARCHAR, dbo.KAAS_FNConvertUTCDateToTargetTimeZone([AID].[DATE], @LoggedInHandler) , 20) END AS [DueDate], RTRIM(ISNULL([AID].[DELEGATEDFNR], '''')) AS [DelegatedFE], RTRIM(ISNULL([TAC].[Arrangement], '''')) AS [Arrangement], @ChargeArrangement AS [ChargeArrangement] FROM @DiaryActionIDdetails [AID] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] LEFT OUTER JOIN [dbo].[Templates] [TMP] ON [TMP].[WKCODE] = [TAC].[WKTCODE] ON [TAC].[ACTIONCODE] = [AID].[ACTIONCODE] LEFT OUTER JOIN [dbo].[Undertakings] [UND] ON [UND].[ActionID] = [AID].[ACTIONID] AND [UND].[ActionID] <> 0 AND [UND].[ActionID] IS NOT NULL LEFT OUTER JOIN [dbo].[Handlers] [TFN] ON [TFN].[CODE] = [AID].[TEAMCODE] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN ''N'' ELSE ''Y'' END AS [HasAttachments] FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[DiaryID] = [AID].[ACTIONID]) [HAT] ' IF (@SortColumn = 'Id') SET @OrderByVariable = ' ORDER BY [AID].[CASECODE] ASC,[AID].[STATUS] ASC ,[AID].[DATE] DESC,[AID].[DYSTARTTIME] DESC,[AID].[ACTIONID] DESC' ELSE IF (@SortColumn = 'CompleteORGenerated' ) SET @OrderByVariable = ' ORDER BY CompleteORGeneratedValue ' + CAST(@SortOrder AS VARCHAR(100)) + ' , [AID].[DATE] ' + CAST(@SortOrder AS VARCHAR(100)) ELSE IF (@SortColumn = 'FNCode') SET @OrderByVariable = ' WHERE [AID].[FNCode] <> '' '' ORDER BY FNCode ' + CAST(@SortOrder AS VARCHAR(100)) +', CompleteORGeneratedValue DESC, [AID].[DATE] ASC ' ELSE IF (@SortColumn = 'TeamCode' ) SET @OrderByVariable = ' WHERE [AID].[TEAMCODE] <> '' '' ORDER BY TeamCode ' + CAST(@SortOrder AS VARCHAR(100)) + ', [AID].[FNCode] ' + CAST(@SortOrder AS VARCHAR(100)) + ' , CompleteORGeneratedValue DESC,[AID].[DATE] ASC ' ELSE IF (@SortColumn = 'ActionType' ) SET @OrderByVariable = ' WHERE [AID].[ACTIONTYPE] <> '' '' ORDER BY ActionType ' + CAST(@SortOrder AS VARCHAR(100)) +', CompleteORGeneratedValue ASC, [AID].[DATE] ASC ' ELSE IF (@SortColumn = 'PriorityValue' ) SET @OrderByVariable = ' ORDER BY PriorityValue ' + CAST(@SortOrder AS VARCHAR(100)) +', CompleteORGeneratedValue ASC, [AID].[DATE] ASC ' ELSE IF (@SortColumn = 'DelegationStatus' OR @SortColumn = 'Flag') SET @OrderByVariable = ' ORDER BY ' + CAST(@SortColumn AS VARCHAR(100)) + ' ' + CAST(@SortOrder AS VARCHAR(100)) +', CompleteORGeneratedValue ASC, [AID].[DATE] ASC ' ELSE IF (@SortColumn = 'Highlighted' OR @SortColumn = 'Attachments' OR @SortColumn = 'WorkFlow' OR @SortColumn = 'ActionCode') SET @OrderByVariable = ' ORDER BY ' + CAST(@SortColumn AS VARCHAR(100)) + ' ' +CAST(@SortOrder AS VARCHAR(100))+ ' , [AID].[DATE] ' + CAST(@SortOrder AS VARCHAR(100)) + ' , ActionId ' + CAST(@SortOrder AS VARCHAR(100)) ELSE IF (@SortColumn = 'Date' ) SET @OrderByVariable = ' ORDER BY DStatus ASC, [AID].[DATE] ' + CAST(@SortOrder AS VARCHAR(100)) ELSE SET @OrderByVariable = ' ORDER BY CompleteORGeneratedValue ASC, ' + CAST(@SortColumn AS VARCHAR(100)) + ' ' + CAST(@SortOrder AS VARCHAR(100)) SET @COMMAND = @COMMAND + @OrderByVariable + ' OFFSET @PageSize * (@PageNumber - 1) ROWS FETCH NEXT @PageSize ROWS ONLY'; EXEC Sp_executesql @COMMAND, N' @ColumnNames VARCHAR(100) , @FilterValues VARCHAR(4000), @SortColumn VARCHAR(100), @SortOrder VARCHAR(100), @ShowFromToSynopsis BIT , @SearchText VARCHAR(202) , @Search VARCHAR(200) , @LoggedInHandler VARCHAR(10) , @ChargeArrangement VARCHAR(3) , @Matter VARCHAR(20) , @ActionIsLoad BIT, @ActionStartDate DATE, @ActionEndDate DATE , @ActionTypeFilterCount INT, @PriorityFilterCount INT, @FlagFilterCount INT, @FNCodeCount INT, @ActionCodeCount INT, @ActionStatusCount INT, @PageSize INT, @PageNumber INT , @FromDate DATETIME, @ToDate DATETIME', @ColumnNames = @ColumnNames, @FilterValues = @FilterValues, @SortColumn = @SortColumn, @SortOrder = @SortOrder, @ShowFromToSynopsis = @ShowFromToSynopsis, @SearchText = @SearchText, @Search = @Search, @LoggedInHandler = @LoggedInHandler, @ChargeArrangement = @ChargeArrangement, @Matter = @Matter, @ActionIsLoad = @ActionIsLoad, @ActionStartDate = @ActionStartDate, @ActionEndDate = @ActionEndDate, @ActionTypeFilterCount = @ActionTypeFilterCount, @PriorityFilterCount = @PriorityFilterCount, @FlagFilterCount= @FlagFilterCount, @FNCodeCount = @FNCodeCount, @ActionCodeCount= @ActionCodeCount, @ActionStatusCount= @ActionStatusCount, @PageSize= @PageSize, @PageNumber = @PageNumber, @FromDate = @FromDate, @ToDate = @ToDate End GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchDiaryDelegations' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchDiaryDelegations] END GO CREATE PROCEDURE [dbo].[KAAS_FetchDiaryDelegations] (@ACTIONID INT, @ASSIGNNO INT, @STATUS INT, @Handler VARCHAR(10)) /******************************************************************************************************* * This procedure is used load the data for TaskAddAction page Delegation Grid. * * * * Stored Procedure Name : [dbo].[KAAS_FetchDiaryDelegations] * * Copied from : [dbo].[ky_NETCCFetchDiaryDelegations] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * * 2021-10-06 Aakif Included user timezone conversion for diary delegation time fields * * 2022-07-13 VinodhKumar M Updated Alias names from Upper case to Pascal Case * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON DECLARE @BY VARCHAR(100) DECLARE @FOR VARCHAR(100) IF(@STATUS = 2) BEGIN SELECT D.[ACTIONID] AS [ActionId], RTRIM(ISNULL(D.[HANDLER], '')) AS [Handler], RTRIM(ISNULL(D.[TEAM], '')) AS [Team], D.[DATE] AS [Date], CONVERT(VARCHAR(5),[dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( [dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[TIME]), @Handler), 108) AS [Time], D.[DATER] AS [Dater], CASE WHEN D.[TIMER] IS NULL THEN '' ELSE CONVERT(VARCHAR(5),[dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( [dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[TIMER]), @Handler), 108) END AS [Timer], D.[DUEDATE] AS [DueDate], CONVERT(VARCHAR(5),[dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( [dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[DUETIME]), @Handler), 108) AS [DueTime], RTRIM(ISNULL(D.[REVIEW], '')) AS [Review], RTRIM(ISNULL(D.[STATUS], 0)) AS [Status], RTRIM(ISNULL(D.[OWNER], 'N')) AS [Owner], RTRIM(ISNULL(D.[DELEGATE], '')) AS [Delegate], RTRIM(ISNULL(D.[DELEGATESTATUS], 0)) AS [DelegateStatus], RTRIM(ISNULL(D.[ACTIONTYPE], '')) AS [ActionType], RTRIM(ISNULL(D.[ASSIGNNO], 0)) AS [AssignNo], RTRIM(ISNULL(D.[FROMHANDLER], '')) AS [FromHandler], RTRIM(ISNULL(D.[RETURNEDBY], '')) AS [ReturnedBy], RTRIM(ISNULL(D.[DELTYPE], '')) AS [DelType], CASE WHEN ISNULL(D.[DelType], '') = 'Created' THEN RTRIM(H.[NAME]) + '(' + RTRIM(ISNULL(D.[HANDLER], '')) + ')' WHEN ISNULL(D.[ReturnedBy], '') = '' THEN RTRIM(GH.[NAME]) + '(' + RTRIM(ISNULL(D.[FromHandler], '')) + ')' ELSE RTRIM(FH.[NAME]) + '(' + RTRIM(ISNULL(D.[ReturnedBy], '')) + ')' END AS [By], RTRIM(ISNULL(H.[NAME], '')) + '(' + RTRIM(D.[HANDLER]) + ')' AS [For] FROM dbo.[DiaryDelegations] D LEFT OUTER JOIN [dbo].[Handlers] H ON H.[CODE] = D.[HANDLER] LEFT OUTER JOIN [dbo].[Handlers] FH ON FH.[CODE] = D.[ReturnedBy] LEFT OUTER JOIN [dbo].[Handlers] GH ON GH.[CODE] = D.[FromHandler] WHERE D.[ACTIONID] = @ACTIONID ORDER BY D.[AssignNo] DESC END ELSE BEGIN SELECT D.[ACTIONID] AS [ActionId], RTRIM(ISNULL(D.[HANDLER], '')) AS [Handler], RTRIM(ISNULL(D.[TEAM], '')) AS [Team], D.[DATE] AS [Date], CONVERT(VARCHAR(5),[dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( [dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[TIME]), @Handler), 108) AS [Time], D.[DATER] AS [Dater], CASE WHEN D.[TIMER] IS NULL THEN '' ELSE CONVERT(VARCHAR(5),[dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( [dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[TIMER]), @Handler), 108) END AS [Timer], D.[DUEDATE] AS [DueDate], CONVERT(VARCHAR(5),[dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( [dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[DUETIME]), @Handler), 108) AS [DueTime], RTRIM(ISNULL(D.[REVIEW], '')) AS [Review], RTRIM(ISNULL(D.[STATUS], 0)) AS [Status], RTRIM(ISNULL(D.[OWNER], 'N')) AS [Owner], RTRIM(ISNULL(D.[DELEGATE], '')) AS [Delegate], RTRIM(ISNULL(D.[DELEGATESTATUS], 0)) AS [DelegateStatus], RTRIM(ISNULL(D.[ACTIONTYPE], '')) AS [ActionType], RTRIM(ISNULL(D.[ASSIGNNO], 0)) AS [AssignNo], RTRIM(ISNULL(D.[FROMHANDLER], '')) AS [FromHandler], RTRIM(ISNULL(D.[RETURNEDBY], '')) AS [ReturnedBy], RTRIM(ISNULL(D.[DELTYPE], '')) AS [DelType], CASE WHEN ISNULL(D.[DelType], '') = 'Created' THEN RTRIM(H.[NAME]) + '(' + RTRIM(ISNULL(D.[HANDLER], '')) + ')' WHEN ISNULL(D.[ReturnedBy], '') = '' THEN RTRIM(GH.[NAME]) + '(' + RTRIM(ISNULL(D.[FromHandler], '')) + ')' ELSE RTRIM(FH.[NAME]) + '(' + RTRIM(ISNULL(D.[ReturnedBy], '')) + ')' END AS [By], RTRIM(ISNULL(H.[NAME], '')) + '(' + RTRIM(D.[HANDLER]) + ')' AS [For] FROM dbo.[DiaryDelegations] D LEFT OUTER JOIN [dbo].[Handlers] H ON H.[CODE] = D.[HANDLER] LEFT OUTER JOIN [dbo].[Handlers] FH ON FH.[CODE] = D.[ReturnedBy] LEFT OUTER JOIN [dbo].[Handlers] GH ON GH.[CODE] = D.[FromHandler] WHERE D.[AssignNo] = @ASSIGNNO END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchDocumentAssistValue' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchDocumentAssistValue] END GO CREATE PROCEDURE [dbo].[KAAS_FetchDocumentAssistValue] (@FILEPREFIX VARCHAR(10), @FIELDNAME VARCHAR(30)) AS /************************************************************************************************ * Fetch information for maintaining a Doc Assist (System User Defined Field) * * * * Stored Procedure Name : [dbo].[KAAS_FetchDocumentAssistValue] * * Copied from : [dbo].[ky_NETFetchDocumentAssistValue] * * * * Modification History : * * 2023-07-11 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM([SUF].[FILEPREFIX]) AS [FILEPREFIX], RTRIM([SUF].[FIELDNAME]) AS [FIELDNAME], RTRIM([SUF].[TYPE]) AS [TYPE], RTRIM([SUF].[PROMPT]) AS [PROMPT], [SUF].[LENGTH] AS [LENGTH], [SUF].[DECMIAL] AS [DECMIAL], RTRIM([SUF].[FORMAT]) AS [FORMAT], RTRIM([SUF].[INITIALVALUE]) AS [INITIALVALUE], RTRIM([SUF].[CALCINITIALVALUE]) AS [CALCINITIALVALUE], RTRIM([SUF].[OVERRIDEINITIALVALUE]) AS [OVERRIDEINITIALVALUE], RTRIM([SUF].[REQUIRED]) AS [REQUIRED], RTRIM([SUF].[VALIDATION]) AS [VALIDATION], [SUF].[LOW] AS [LOW], [SUF].[HIGH] AS [HIGH], RTRIM([SUF].[SYSTEMFIELD]) AS [SYSTEMFIELD], [SUF].[TOP] AS [TOP], [SUF].[LEFT] AS [LEFT], [SUF].[HEIGHT] AS [HEIGHT], [SUF].[WIDTH] AS [WIDTH], RTRIM([SUF].[FONT]) AS [FONT], RTRIM([SUF].[VISIBLE]) AS [VISIBLE], RTRIM([SUF].[ENABLED]) AS [ENABLED], RTRIM([SUF].[READONLY]) AS [READONLY], RTRIM([SUF].[MULTILINE]) AS [MULTILINE], RTRIM([SUF].[ACTUALNAME]) AS [ACTUALNAME], [SUF].[COMMON] AS [COMMON], ISNULL([SUF].[UDFCategory], 0) AS [UDFCategory], [SUF].[ISLOCK] AS [ISLock], RTRIM(ISNULL([SUF].[SQLSTATEMENT],'')) AS [SQLStatement], RTRIM([SUF].[ToolTip]) AS [ToolTip], [SUF].[PUBLISH] AS [PUBLISH] FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] = @FILEPREFIX AND [SUF].[FIELDNAME] = @FIELDNAME SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchDocumentClass]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchDocumentClass] GO CREATE PROCEDURE [KAAS_FetchDocumentClass] (@Retired VARCHAR(3), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This stored procedure is used to Fetch the DocumentClasses for update Document Page. * * * * Stored Procedure Name : [dbo].[KAAS_FetchUpdateDocument] * * Copied from : [dbo].[ky_NETFetchUpdateDocument] * * * * Modification History : * * 2016-06-22 Suriya M KEYD-3562-The warning message for the Retired fields * * needs to be popup when you go into that matter. * * 2016-06-22 Suriya M KEYD-3595-URGENT: Please review a number of recently * * created Stored Procedures and Functions * * 2019-10-31 Dheepin Vijith Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(ISNULL(A.[CLASSCODE], '' )) AS [CLASSCODE], RTRIM(ISNULL(A.[CLASSDESCRIPTION], '' )) AS [CLASSDESCRIPTION], RTRIM(ISNULL(A.[RETIRED], '' )) AS [RETIRED] FROM dbo.[DocumentClasses] A WHERE A.[Retired] IN ('N', @Retired) OR A.[CLASSCODE] = @Code SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchDocumentPropertiesForEdit',N'P')IS NOT NULL DROP PROCEDURE KAAS_FetchDocumentPropertiesForEdit GO CREATE PROCEDURE [dbo].[KAAS_FetchDocumentPropertiesForEdit] ( @TRV VARCHAR(10) ) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [KAAS_FetchDocumentPropertiesForEdit] * * Copied from : [ky_NETSPListDocumentClasses], [ky_NETSPGetDocProperties] * * * * Modification History: * * 2019-05-15 Arun Created, merged from two stored procedure to fetch document classes and* * document properties * *******************************************************************************************************/ BEGIN --To List Document Class SELECT RTRIM(ISNULL(DCL.[CLASSCODE], '')) AS [CLASSCODE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) AS [CLASSDESCRIPTION], CASE WHEN RTRIM(ISNULL(DCL.[RETIRED], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [Retired] FROM [dbo].[DocumentClasses] DCL ORDER BY RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) --To List the File information based on Track Reference Number DECLARE @TR INT BEGIN TRY SET @TR = CONVERT(INT, @TRV) END TRY BEGIN CATCH SET @TR = 0 END CATCH SELECT [DAT].[DATEENTERED] AS [DateEntered], RTRIM(ISNULL(HANE.[NAME], '')) AS [EnteredBy], [DAT].[LASTACCESSDATE] AS [LastAccessedDate], RTRIM(ISNULL([HANA].[NAME], '')) AS [LastAccessedBy], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [FILEPATH], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE] FROM [dbo].[DiaryAttachments] [DAT] LEFT OUTER JOIN [dbo].[Handlers] [HANE] ON HANE.[CODE] = [DAT].[ENTEREDBY] LEFT OUTER JOIN [dbo].[Handlers] [HANA] ON [HANA].[CODE] = [DAT].[LASTACCESSBY] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DAT].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1) LEFT OUTER JOIN [dbo].[diary] [DIA] ON [DIA].[ACTIONID] = [DAT].[DiaryID] WHERE [DAT].[TRACKREFERENCE] = @TR AND [DAT].[TrackReference] <> 0 END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchEditDataUndertakings' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchEditDataUndertakings] END GO CREATE PROCEDURE [KAAS_FetchEditDataUndertakings] (@CaseCode VARCHAR(20), @RecordId INT, @PageNumber INT, @PageSize INT) AS /******************************************************************************************************* * This procedure is used to get the values for editing the Undertakings. * * * * Stored Procedure Name : [dbo].[KAAS_FetchEditDataUndertakings] * * Copied from : [dbo].[ky_NETFetchEditDataUndertakings] * * * * Modification History : * * 2019-06-24 Vinodhan K Created * * 2019-08-19 Dheepin Vijith K Modified - [TYPE] & [CommercialOrNon] are retrieved directly * * unlike using case previously . * * 2020-04-09 Ganapathy T DATE, DISCHARGEDATE VARCHAR Conversion removed, Timezone added * * 2022-12-19 Vignesh M Server Side pagination implemented * ********************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(ISNULL(UND.[MATTER], '')) AS [MATTER], UND.[SEQ] AS [SEQ], --CONVERT(NVARCHAR(20), UND.[DATE], 112) AS [DATE], --CASE WHEN UND.[DISCHARGEDATE] IS NULL -- THEN '' -- ELSE CONVERT(VARCHAR(20), -- UND.[DISCHARGEDATE], -- 112) END AS [DISCHARGEDATE], dbo.KAAS_FNConvertUTCDateToTargetTimeZone(UND.[DATE],UND.[AuthorisedByFE]) AS [DATE], dbo.KAAS_FNConvertUTCDateToTargetTimeZone(UND.[DISCHARGEDATE] ,UND.[AuthorisedByFE]) AS [DISCHARGEDATE], RTRIM(ISNULL(UND.[TYPE], '')) AS [TYPE], RTRIM(ISNULL(UND.[CommercialOrNon], '')) AS [CommercialOrNon], RTRIM(ISNULL(UND.[GivenOrReceived], '')) AS [GivenOrReceived], RTRIM(ISNULL(UND.[DESCRIPTION], '')) AS [DESCRIPTION], RTRIM(ISNULL(UND.[DischargeDescription], '')) AS [DisDescription], RTRIM(ISNULL(UND.[WHO], '')) AS [WHO], UND.[VALUE] AS [VALUE], UND.[RECORDID] AS [RECORDID], ISNULL(UND.[ACTIONID], 0) AS [ACTIONID], RTRIM(ISNULL(UND.[AUTHORISEDBYFE], '')) AS [AUTHORISEDBYFE], RTRIM(ISNULL(UNS.[StatusDesc], '')) AS [STATUS], RTRIM(ISNULL(UND.[UndertakingTo], '')) AS [UndertakingTo], RTRIM(ISNULL(UND.[DealingNumber], '')) AS [DealingNumber], RTRIM(ISNULL(UND.[Notes], '')) AS [Notes], UNS.[RecordID] AS StatusID, RTRIM(ISNULL(UND.[Category], '')) AS [Category], ISNULL(UND.[IsConditional], CONVERT(BIT, 0)) AS [IsConditional], RTRIM(ISNULL(UND.[Condition], '')) AS [Condition], ISNULL(UNS.Retired,'N') AS [Retired], UND.[NeedsAttention] AS [NeedsAttention], ISNULL(UND.[AddCommentLedger],1) AS [AddCommentLedger] FROM [dbo].[Undertakings] UND LEFT OUTER JOIN [dbo].[UndertakingStatus] UNS ON UNS.[RecordID] = UND.[STATUS] WHERE UND.[MATTER] = @CaseCode AND UND.[RECORDID] = @RecordId ORDER BY UND.[MATTER] DESC, UND.[SEQ] DESC, UND.[DATE] DESC, UND.[RECORDID] DESC DECLARE @ACTIONIDORG BIGINT SELECT @ACTIONIDORG = UND.[ActionID] FROM [dbo].[Undertakings] UND WHERE UND.[RECORDID] = @RecordId SELECT TOP 1 CONVERT(VARCHAR(20),DEL.[DATE],112) AS [Date] FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ActionID] = @ACTIONIDORG ORDER BY DEL.[AssignNo] DESC SELECT UNL.[UndertakingLogID], UNL.[UndertakingID], UNL.[FieldChanges], UNL.[FromValue], UNL.[ToValue], UNL.[ByWho], UNL.[ModifiedDate] FROM [dbo].[UndertakingLog] UNL WHERE UNL.[UndertakingID] = @ACTIONIDORG ORDER BY UNL.[ModifiedDate] DESC OFFSET @PageSize * (@PageNumber -1) ROWS FETCH NEXT @PageSize ROWS ONLY SELECT COUNT(*) 'TotalRecord' FROM [dbo].[UndertakingLog] UNL WHERE UNL.[UndertakingID] = @ACTIONIDORG SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchEFTDetails]',N'P')IS NOT NULL BEGIN DROP PROCEDURE [KAAS_FetchEFTDetails] END GO CREATE PROCEDURE [KAAS_FetchEFTDetails] /********************************************************************************************* * * Description: This procedure is used to FETCH EFT details * * Stored Procedure Name : KAAS_FetchEFTDetails * Copied From : ky_NETFetchEFTDetails2 * * Modification History: * 2017-10-03 John Created v2, added EFT Generator Location * 2019-08-06 Vinodhan Created KAAS_FetchEFTDetails * *********************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT ISNULL(EFT.[EFTYN], 'N') AS [EFTYN], ISNULL(EFT.[EFTLimit], '0.00') AS [EFTLimit], ISNULL(EFT.[EFTTransactionLimit], '0') AS [EFTTransactionLimit], ISNULL(EFT.[BankFileName], '') AS [BankFileName], ISNULL(EFT.[Location], '') AS [Location], ISNULL(EFT.[FileNumber], '0') AS [FileNumber], EFT.[RecordID] AS [RecordID], ISNULL(EFTGL.[KeyValue], '') AS [EFTGeneratorLocation] FROM [dbo].[EFTDetails] AS EFT OUTER APPLY (SELECT TOP 1 [SET].[KeyValue] FROM [dbo].[Settings] AS [SET] WHERE [SET].[KeyName] = 'EFTGeneratorLocation') AS EFTGL SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchFileDetailsbyFileNumber', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_FetchFileDetailsbyFileNumber] END GO CREATE PROCEDURE [dbo].[KAAS_FetchFileDetailsbyFileNumber] (@Number INT) AS /*************************************************************************** * Stored Procedure Name : KAAS_FetchFileDetailsbyFileNumber * Copied From : ky_NETFetchFileDetailsbyFileNumber * * This procedure is used to fetch file details by file number * * Modification History * 2015-06-23 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM( * 2015-11-26 Pino checked for NeedsAttention. Not required. * 2016-03-23 Pino KEYD-3467 - Return location description, not * its code. * 2016-10-10 John KEYD-3998 - Added SearchCode column for use in * the email template * 2022-04-01 Aakif KAAS file created ***************************************************************************/ BEGIN DECLARE @FirmName VARCHAR (40) SET @FirmName = (SELECT RTRIM(ISNULL(NAME,'')) FROM [control]) SELECT RTRIM(ISNULL(ITL.[DESCRIPTION], ISNULL(FMI.[LOCATION], ''))) AS [Location], FMI.[ITEMCODE] AS [ItemCode], RTRIM(ISNULL(IT.[TYPEDESCRIPTION], '')) + ' / ' + RTRIM(ISNULL(FMI.[DESCRIPTION],'')) AS [ItemDescription], @FirmName AS [FirmName], ISNULL(FMI.[SEARCHCODE], '') AS [SearchCode] FROM [dbo].[FileManagerItems] FMI LEFT OUTER JOIN [dbo].[ItemTypes] IT ON IT.[TYPECODE] = FMI.[ITEMTYPE] LEFT OUTER JOIN [dbo].[ItemLocations] ITL ON ITL.[CODE] = FMI.[LOCATION] WHERE FMI.[NUMBER] = @Number END GO IF OBJECT_ID(N'KAAS_FetchFiltercolumnsbyPagename',N'P') IS NOT NULL DROP PROCEDURE [DBO].[KAAS_FetchFiltercolumnsbyPagename] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [DBO].[KAAS_FetchFiltercolumnsbyPagename] ( @COLUMNNAMES VARCHAR(50), @TABLENAME VARCHAR(50), @PAGENAME VARCHAR(50), @ISALIASREQUIRED BIT, @CaseCode VARCHAR(15) = NULL ) AS /******************************************************************************************************************************** * * STORED PROCEDURE NAME : [DBO].[KAAS_FetchFiltercolumnsbyPagename] * * THIS STORED PROCEDURE IS USED TO GET FILTER COLUMN VALUES TO CREATE OR EDIT FILTER * * MODIFICATION HISTORY * 2020-02-13 Prabhu.V To Fetch the Column and values based on input parameters * * 2020-02-25 Prabhu.V Added Page name as input to handle the columnNames with alias * * 2020-02-25 Prabhu.V Added Case Diary, MyCheque,My Invoice to load the filter values from DB script * * 2020-03-04 Prabhu.V Added New table CustomFilterColumndetails to manage * All defined filter items By page and Filter Column * * 2020-03-09 Prabhu.V Changed the Tab Order for Document Manager page * * 2021-12-20 Aakif Included case handler & action code for CaseDiary filter * * 2021-12-22 Aakif Fixed order by clause for ActionCode in CaseDiary filter * * 2022-05-31 Vinodhkumar.M My Task page - new filter is addded * * 2022-07-07 Vinodhkumar.M Team Task page - new filter is addded * * 2022-10-07 Revathy Included Action status filter * * 2023-07-05 Vignesh M Added Fee Earner and Requested by columns for My Payments * * 2023-07-07 Revathy Added Source and Attachment fields for filter * 2022-07-12 Revathy Added Draft no, open invoice, type, FE code and mattercode columns for filter * ********************************************************************************************************************************/ BEGIN IF @ISALIASREQUIRED = 0 BEGIN SELECT COLUMNNAME,ROWNUMBER INTO #COLUMNTBL FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','VARCHAR(8000)'))) AS COLUMNNAME, ROW_NUMBER() OVER (ORDER BY m.n.value('.[1]','VARCHAR(8000)')) AS ROWNUMBER FROM ( SELECT CAST('' + REPLACE(@COLUMNNAMES,',','') + '' AS XML) AS X )T CROSS APPLY X.nodes('/XMLROOT/ROWDATA')m(n)) COLUMNTBL DECLARE @COUNT INT DECLARE @LPTCNT INT=1 DECLARE @COLUMNNAME VARCHAR(50) SELECT @COUNT = COUNT(1) FROM #COLUMNTBL WHILE @LPTCNT <= @COUNT BEGIN SELECT @COLUMNNAME = COLUMNNAME FROM #COLUMNTBL WHERE ROWNUMBER = @LPTCNT EXEC ('SELECT DISTINCT ' +@COLUMNNAME+' AS name,'+ @COLUMNNAME+' AS Code,' +' 1 AS isSelected ,0 AS IsIconAvailable, '''' AS Iconpath FROM '+ @TABLENAME +' where isnull('+ @COLUMNNAME +','''') <> ''''' ) SET @LPTCNT = @LPTCNT + 1; END END ELSE BEGIN IF @PAGENAME = 'SearchMatters' BEGIN SELECT DISTINCT CASE ISNULL([Closed],0) WHEN 0 THEN 'Open' ELSE 'Closed' END AS name, CASE ISNULL([Closed],0) WHEN 0 THEN '0' ELSE '1' END AS Code,1 AS isSelected FROM [dbo].[SearchMatters] END ELSE IF @PAGENAME = 'Matter' BEGIN -- Fee Earner SELECT ROW_NUMBER() OVER(ORDER BY [Code]) AS [ID] ,[name] ,[Code] ,1 [isSelected] ,0 [FilterOrder] ,0 [IsIconAvailable] ,'' [Iconpath] ,'Fee Earner' [ColumnName] ,'Matter' [PageName] FROM [dbo].[FeeEarnerCodes] -- Department SELECT ROW_NUMBER() OVER(ORDER BY [Code]) AS [ID] ,[DESCRIPTION][name] ,[Code] ,1 [isSelected] ,0 [FilterOrder] ,0 [IsIconAvailable] ,'' [Iconpath] ,'Department' [ColumnName] ,'Matter' [PageName] FROM [dbo].[Departments] -- Work type SELECT ROW_NUMBER() OVER(ORDER BY [Code]) AS [ID] ,[DESCRIPTION][name] ,[Code] ,1 [isSelected] ,0 [FilterOrder] ,0 [IsIconAvailable] ,'' [Iconpath] ,'Work type' [ColumnName] ,'Matter' [PageName] FROM [dbo].[WorkTypes] -- File Color SELECT ROW_NUMBER() OVER(ORDER BY [COLOURCODE]) AS [ID] ,[COLOURDESC][name] ,[COLOURCODE][Code] ,1 [isSelected] ,0 [FilterOrder] ,0 [IsIconAvailable] ,'' [Iconpath] ,'Work type' [ColumnName] ,'Matter' [PageName] FROM [dbo].[FileColours] -- Close or Open SELECT DISTINCT CASE ISNULL([Closed],0) WHEN 0 THEN 'Open' ELSE 'Closed' END AS name, CASE ISNULL([Closed],0) WHEN 0 THEN '0' ELSE '1' END AS Code, 1 AS isSelected ,0 [FilterOrder] ,0 [IsIconAvailable] ,'' [Iconpath] ,'Close or Open' [ColumnName] ,'Matter' [PageName] FROM [dbo].[SearchMatters] END ELSE IF @PAGENAME = 'CaseDiary' BEGIN -- Action Type SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Type' ORDER BY FilterOrder -- Priority SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Priority' ORDER BY FilterOrder -- Flag SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Flag' ORDER BY FilterOrder -- HANDLER --SELECT -- ROW_NUMBER() OVER(ORDER BY [HAN].[CODE]) AS [ID] -- ,[HAN].[CODE] AS [Code] -- ,[Han].[NAME] AS [name] -- ,1 AS [isSelected] --FROM [Handlers] [HAN] SELECT ROW_NUMBER() OVER(ORDER BY [FNS].[FNCode]) AS [ID] ,[FNS].[FNCode] AS [Code] ,RTRIM(ISNULL([HAN].[Name], '')) AS [name] ,1 AS [isSelected] FROM ( SELECT DISTINCT [DIA].[FNCode] FROM [dbo].[diary] [DIA] WHERE [DIA].[CASECODE] = @CaseCode AND RTRIM(ISNULL([DIA].[FNCODE], '')) <> '') [FNS] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [FNS].[FNCode] ORDER BY RTRIM(ISNULL([HAN].[Name], '')) -- ACTION CODE TABLE SELECT ROW_NUMBER() OVER(ORDER BY [FNS].[ACTIONCODE]) AS [ID] ,[FNS].[ACTIONCODE] AS [Code] ,RTRIM(ISNULL([TAC].[DESC], '')) AS [name] ,1 AS [isSelected] FROM ( SELECT DISTINCT [DIA].[ACTIONCODE] FROM [dbo].[diary] [DIA] WHERE [DIA].[CASECODE] = @CaseCode AND RTRIM(ISNULL([DIA].[ACTIONCODE], '')) <> '') [FNS] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] ON [TAC].[ACTIONCODE] = [FNS].[ACTIONCODE] ORDER BY CASE WHEN RTRIM(ISNULL([TAC].[DESC], '')) = '' THEN 4 WHEN SUBSTRING(RTRIM(ISNULL([TAC].[DESC], '')), 1, 1) = '-' THEN 3 WHEN SUBSTRING(RTRIM(ISNULL([TAC].[DESC], '')), 1, 1) >= '0' AND SUBSTRING(RTRIM(ISNULL([TAC].[DESC], '')), 1, 1) <= '9' THEN 2 ELSE 1 END, RTRIM(ISNULL([TAC].[DESC], '')) --Action Status SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Status' ORDER BY FilterOrder END ELSE IF @PAGENAME = 'MyInvoice' BEGIN -- Released Type SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Released' ORDER BY FilterOrder -- Bill No. SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='BillNo' ORDER BY FilterOrder SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Type' ORDER BY FilterOrder SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='OpenInvoice' ORDER BY FilterOrder SELECT ROW_NUMBER() OVER(ORDER BY [FeCode]) AS [ID] ,[FeCode] [name] ,[FeCode] [Code] ,1 [isSelected] ,0 [FilterOrder] ,0 [IsIconAvailable] ,'' [Iconpath] ,'FeCode'[ColumnName] ,@PAGENAME [PageName] FROM (SELECT DISTINCT [BH].[FeCode] [FeCode] FROM [dbo].[BillHeader] [BH] WHERE RTRIM(ISNULL([FeCode], '''')) <> '''') [BIH] ORDER BY FilterOrder SELECT ROW_NUMBER() OVER(ORDER BY [MATTER]) AS [ID] ,[MATTER] [name] ,[MATTER] [Code] ,1 [isSelected] ,0 [FilterOrder] ,0 [IsIconAvailable] ,'' [Iconpath] ,'MatterCode'[ColumnName] ,@PAGENAME [PageName] FROM (SELECT DISTINCT [BH].[MATTER] [MATTER] FROM [dbo].[BillHeader] [BH] WHERE RTRIM(ISNULL([MATTER], '''')) <> '''') [BIH] ORDER BY FilterOrder SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='DraftNo' ORDER BY FilterOrder END ELSE IF @PAGENAME = 'MyCheque' BEGIN -- Status SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Status' ORDER BY FilterOrder -- Fee Earner SELECT ROW_NUMBER() OVER(ORDER BY [Code]) AS [ID] ,[name] ,[Code] ,1 [isSelected] ,0 [FilterOrder] ,0 [IsIconAvailable] ,'' [Iconpath] ,'Fee Earner' [ColumnName] ,@PAGENAME [PageName] FROM [dbo].[FeeEarnerCodes] -- Requested By SELECT ROW_NUMBER() OVER(ORDER BY [Code]) AS [ID] ,[name] ,[Code] ,1 [isSelected] ,0 [FilterOrder] ,0 [IsIconAvailable] ,'' [Iconpath] ,'Requested By' [ColumnName] ,@PAGENAME [PageName] FROM [dbo].[FeeEarnerCodes] END ELSE IF @PAGENAME = 'DocumentManager' BEGIN -- Type SELECT * FROM ( SELECT [name],[Code],[isSelected] ,[FilterOrder] ,[IsIconAvailable] , [Iconpath] , [ColumnName], [PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Type' UNION SELECT 'Other Files' AS [name] , (SELECT DISTINCT stuff((SELECT ',' + [Type] FROM dbo.DiaryAttachments WHERE [Type] Not in (SELECT DocumentCode FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS DocumentCode , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM(SELECT CAST('' + REPLACE((SELECT DISTINCT stuff((SELECT ',' + [Code] FROM dbo.CustomFilterColumndetails WHERE [PageName] = 'DocumentManager' and ColumnName='Type' for xml path('') ),1,1,'') AS DocumentCode FROM dbo.CustomFilterColumndetails),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) GROUP BY [Type] for xml path('') ),1,1,'') AS Code FROM dbo.DiaryAttachments) AS Code , 1 AS [isSelected] , 15 AS [FilterOrder] , 1 AS [IsIconAvailable] , 'assets/images/filetypes/Unknown.png' AS [Iconpath] , 'Type' AS [ColumnName], 'DocumentManager' AS [PageName] )TypeDetails ORDER BY FilterOrder -- DOCCLASS SELECT CLASSDESCRIPTION as [name] ,CLASSCODE as [Code] ,1 AS [isSelected] ,0 AS [FilterOrder] ,0 AS [IsIconAvailable] , '' AS [Iconpath] , 'DOCCLASS' AS [ColumnName] , 'DocumentManager' AS [PageName] FROM DocumentClasses WHERE LEN(CLASSCODE)>0 SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='HasAttachment' ORDER BY FilterOrder SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Document Source' ORDER BY FilterOrder END IF @PAGENAME = 'MyTask' BEGIN -- Action Type SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Type' ORDER BY FilterOrder -- Priority SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Priority' ORDER BY FilterOrder -- Flag SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Flag' ORDER BY FilterOrder -- HANDLER --SELECT -- ROW_NUMBER() OVER(ORDER BY [HAN].[CODE]) AS [ID] -- ,[HAN].[CODE] AS [Code] -- ,[Han].[NAME] AS [name] -- ,1 AS [isSelected] --FROM [Handlers] [HAN] SELECT ROW_NUMBER() OVER(ORDER BY [FNS].[FNCode]) AS [ID] ,[FNS].[FNCode] AS [Code] ,RTRIM(ISNULL([HAN].[Name], '')) AS [name] ,1 AS [isSelected] FROM ( SELECT DISTINCT [DIA].[FNCode] FROM [dbo].[diary] [DIA] WHERE --[DIA].[CASECODE] = @CaseCode --AND RTRIM(ISNULL([DIA].[FNCODE], '')) <> '') [FNS] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [FNS].[FNCode] ORDER BY RTRIM(ISNULL([HAN].[Name], '')) -- ACTION CODE TABLE SELECT ROW_NUMBER() OVER(ORDER BY [FNS].[ACTIONCODE]) AS [ID] ,[FNS].[ACTIONCODE] AS [Code] ,RTRIM(ISNULL([TAC].[DESC], '')) AS [name] ,1 AS [isSelected] FROM ( SELECT DISTINCT [DIA].[ACTIONCODE] FROM [dbo].[diary] [DIA] WHERE -- [DIA].[CASECODE] = @CaseCode AND RTRIM(ISNULL([DIA].[ACTIONCODE], '')) <> '') [FNS] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] ON [TAC].[ACTIONCODE] = [FNS].[ACTIONCODE] ORDER BY CASE WHEN RTRIM(ISNULL([TAC].[DESC], '')) = '' THEN 4 WHEN SUBSTRING(RTRIM(ISNULL([TAC].[DESC], '')), 1, 1) = '-' THEN 3 WHEN SUBSTRING(RTRIM(ISNULL([TAC].[DESC], '')), 1, 1) >= '0' AND SUBSTRING(RTRIM(ISNULL([TAC].[DESC], '')), 1, 1) <= '9' THEN 2 ELSE 1 END, RTRIM(ISNULL([TAC].[DESC], '')) --Action Status SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Status' ORDER BY FilterOrder END ELSE IF @PAGENAME = 'TeamTask' BEGIN -- Action Type SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Type' ORDER BY FilterOrder -- Priority SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Priority' ORDER BY FilterOrder -- Flag SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Flag' ORDER BY FilterOrder -- HANDLER --SELECT -- ROW_NUMBER() OVER(ORDER BY [HAN].[CODE]) AS [ID] -- ,[HAN].[CODE] AS [Code] -- ,[Han].[NAME] AS [name] -- ,1 AS [isSelected] --FROM [Handlers] [HAN] SELECT ROW_NUMBER() OVER(ORDER BY [FNS].[FNCode]) AS [ID] ,[FNS].[FNCode] AS [Code] ,RTRIM(ISNULL([HAN].[Name], '')) AS [name] ,1 AS [isSelected] FROM ( SELECT DISTINCT [DIA].[FNCode] FROM [dbo].[diary] [DIA] WHERE --[DIA].[CASECODE] = @CaseCode --AND RTRIM(ISNULL([DIA].[FNCODE], '')) <> '') [FNS] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [FNS].[FNCode] ORDER BY RTRIM(ISNULL([HAN].[Name], '')) -- ACTION CODE TABLE SELECT ROW_NUMBER() OVER(ORDER BY [FNS].[ACTIONCODE]) AS [ID] ,[FNS].[ACTIONCODE] AS [Code] ,RTRIM(ISNULL([TAC].[DESC], '')) AS [name] ,1 AS [isSelected] FROM ( SELECT DISTINCT [DIA].[ACTIONCODE] FROM [dbo].[diary] [DIA] WHERE -- [DIA].[CASECODE] = @CaseCode AND RTRIM(ISNULL([DIA].[ACTIONCODE], '')) <> '') [FNS] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] ON [TAC].[ACTIONCODE] = [FNS].[ACTIONCODE] ORDER BY CASE WHEN RTRIM(ISNULL([TAC].[DESC], '')) = '' THEN 4 WHEN SUBSTRING(RTRIM(ISNULL([TAC].[DESC], '')), 1, 1) = '-' THEN 3 WHEN SUBSTRING(RTRIM(ISNULL([TAC].[DESC], '')), 1, 1) >= '0' AND SUBSTRING(RTRIM(ISNULL([TAC].[DESC], '')), 1, 1) <= '9' THEN 2 ELSE 1 END, RTRIM(ISNULL([TAC].[DESC], '')) --Action Status SELECT [ID] ,[name] ,[Code] ,[isSelected] ,[FilterOrder] ,[IsIconAvailable] ,[Iconpath] ,[ColumnName] ,[PageName] FROM dbo.CustomFilterColumndetails WHERE [PageName] = @PAGENAME and ColumnName='Action Status' ORDER BY FilterOrder END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchFilterMenuByHandlerandPage' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchFilterMenuByHandlerandPage] END GO CREATE PROCEDURE [dbo].[KAAS_FetchFilterMenuByHandlerandPage] ( @HandlerCode VARCHAR(50), @PageName VARCHAR(100) ) AS /**************************************************************************************************** * * * Created to Fetch the FilterMenu based on user and page name * * * * Stored Procedure : KAAS_FetchFilterMenuByHandlerandPage * * * * Modification History * * 2019-12-31 Prabhu.V Created * * 2020-02-13 Prabhu.V Modified the SP to Implement filter works with dynamic values * * 2020-02-13 Prabhu.V Case diary Check removed * * 2021-12-21 Aakif Included GridViewState field which contains column details for page * * 2023-08-23 Aakif Fixed 'Standard View with SelectAll column values' * ****************************************************************************************************/ BEGIN IF(@PageName='QueryPosting') BEGIN SELECT DISTINCT CFN.[ID], [HandlerCode], [PageName], [FilterName], [ActionType], [Priority], [flag], [CreatedDate], [Filterorder], [GridViewState], '' AS FilterColumns, (SELECT t1.Value from dbo.[CustomSavedFilters] t1 WHERE CFN.ID = t1.FilterID AND t1.Value IS NOT NULL AND LTRIM(RTRIM(t1.Value)) <> '' ) FilterValues FROM dbo.[CustomFilterbyUserandPage] CFN (NoLock) LEFT JOIN dbo.[CustomSavedFilters] CFV (Nolock) ON CFV.FilterID = CFN.ID WHERE [PageName] = @PageName AND ([HandlerCode] = @HandlerCode OR [HandlerCode]='STANDARD') ORDER BY [Filterorder] DESC END ELSE BEGIN SELECT DISTINCT CFN.[ID], [HandlerCode], [PageName], [FilterName], [ActionType], [Priority], [flag], [CreatedDate], [Filterorder], [GridViewState], STUFF( (SELECT ',' + t1.FilterColumn FROM dbo.[CustomSavedFilters] t1 WHERE CFN.ID = t1.FilterID FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') FilterColumns , STUFF( (SELECT '|' + t1.Value from dbo.[CustomSavedFilters] t1 WHERE CFN.ID = t1.FilterID AND t1.Value IS NOT NULL AND LTRIM(RTRIM(t1.Value)) <> '' ORDER BY t1.ID ASC FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') FilterValues --CFV.Value FROM dbo.[CustomFilterbyUserandPage] CFN (NoLock) LEFT JOIN dbo.[CustomSavedFilters] CFV (Nolock) ON CFV.FilterID = CFN.ID WHERE [PageName] = @PageName AND ([HandlerCode] = @HandlerCode OR [HandlerCode]='STANDARD') ORDER BY [Filterorder] DESC--,[ID] ASC END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchFollowup' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchFollowup] END GO CREATE PROCEDURE [dbo].[KAAS_FetchFollowup] (@ActionCode VARCHAR(15), @NextAction VARCHAR(15)) /************************************************************************************************************* * This procedure is used to Fetch Followup * * * * Stored Procedure Name : [dbo].[KAAS_FetchFollowup] * * Copied from : [dbo].[Ky_NetFetchFollowup] * * Modification History : * * 2023-06-21 Nithyanandham M Created * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON --Please note that the OPTIONAL field actually contains a Y or N value to indicate that the Next Action is --CONDITIONAL, i.e. Conditioned On the following values SELECT RTRIM(ISNULL([TNA].[ACTION], '')) AS [Action], RTRIM(ISNULL([TNA].[NEXTACTION], '')) AS [NextAction], RTRIM(ISNULL([TNA].[DECISION], '')) AS [Decision], RTRIM(ISNULL([TNA].[WHENTYPE], '')) AS [WhenType], CONVERT(DECIMAL(7, 2), ISNULL([TNA].[WHEN], 0)) AS [When], RTRIM(ISNULL([TAC].[ACTIONCODE], '')) AS [ActionCode], RTRIM(ISNULL([TAC].[DESC], '')) AS [Desc], RTRIM(ISNULL([TAC].[WKTCODE], '')) AS [WKTCode], ISNULL([TAC].[ACTTYPE], ' ') AS [ACTType], RTRIM(ISNULL([TAC].[STATUS], '')) AS [Status], RTRIM(ISNULL([TAC].[MILESTONETYPE], '')) AS [MilestoneType], CASE WHEN ISNULL([TNA].[OPTIONAL], '') = 'Y' THEN 'Y' ELSE 'N' END AS [Optional], CASE WHEN ISNULL([TNA].[OPTIONAL], '') = 'Y' THEN [TNA].[SUFFilePrefix] ELSE CONVERT(VARCHAR(5), 'UDF:') END AS [SUFFilePrefix], CASE WHEN ISNULL([TNA].[OPTIONAL], '') = 'Y' THEN [TNA].[SUFFieldName] ELSE CONVERT(VARCHAR(30), '') END AS [SUFFieldName], CASE WHEN ISNULL([TNA].[OPTIONAL], '') = 'Y' THEN [TNA].[SUFComparison] ELSE CONVERT(VARCHAR(8), 'is') END AS [SUFComparison], CASE WHEN ISNULL([TNA].[OPTIONAL], '') = 'Y' THEN [TNA].[SUFValue] ELSE CONVERT(VARCHAR(max), NULL) END AS [SUFValue] FROM [dbo].[TemplateNextActions] [TNA] INNER JOIN [dbo].[TemplateActions] [TAC] ON [TAC].[ACTIONCODE] = [TNA].[NEXTACTION] WHERE [TNA].[ACTION] = @ActionCode AND [TNA].[NEXTACTION] = @NextAction SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchFollowUpAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchFollowUpAction] END GO CREATE PROCEDURE [dbo].[KAAS_FetchFollowUpAction] ( @ActionCode VARCHAR(50) ) /***************************************************************************** * This procedure is used to Fetch Follow Up Action Based on Action Id * * * * Stored Procedure Name : [dbo].[KAAS_FetchFollowUpAction] * * * * Modification History : * * 2023-06-21 Nithyanandham M Created * *****************************************************************************/ AS BEGIN SELECT RTRIM(ISNULL([TNA].[ACTION], '')) AS [Action], RTRIM(ISNULL([TNA].[NEXTACTION], '')) AS [NextAction], RTRIM(ISNULL([TNA].[DECISION], '')) AS [Decision], RTRIM(ISNULL([TNA].[WHENTYPE], '')) AS [WhenType], RTRIM(ISNULL([TNA].[WHEN], 0)) AS [When], RTRIM(ISNULL([TAC].[ACTIONCODE], '')) AS [ActionCode], RTRIM(ISNULL([TAC].[DESC], '')) AS [Desc], RTRIM(ISNULL([TAC].[WKTCODE], '')) AS [WKTCode], RTRIM(ISNULL([TAC].[ACTTYPE], '')) AS [ACTType], RTRIM(ISNULL([TAC].[STATUS], '')) AS [Status], RTRIM(ISNULL([TAC].[MILESTONETYPE], '')) AS [MilestoneType] FROM [dbo].[TemplateNextActions] [TNA] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] ON [TAC].[ACTIONCODE] = [TNA].[NEXTACTION] WHERE [TNA].[ACTION] = @ActionCode ORDER BY [TNA].[ACTION], [TNA].[NEXTACTION] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchFollowupNextAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchFollowupNextAction] END GO Create PROCEDURE [dbo].[KAAS_FetchFollowupNextAction] AS /************************************************************************************************************* * This procedure is used to Fetch Followup Next Action * * * * Stored Procedure Name : [dbo].[KAAS_FetchFollowupNextAction] * * Copied from : [dbo].[ky_NetFetchFollowupNextAction] * * Modification History : * * 2023-06-21 Nithyanandham M Created * *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @WorkTypes TABLE ([CID] INT IDENTITY(1, 1) NOT NULL, [WKCode] VARCHAR(4) NOT NULL PRIMARY KEY, [WKDesc] VARCHAR(40) NOT NULL, UNIQUE NONCLUSTERED ([CID])) DECLARE @WTCount INT SELECT @WTCount = COUNT(1) FROM [dbo].[Templates] INSERT INTO @WorkTypes ([WKCode], [WKDesc]) select TOP (@WTCount) RTRIM(ISNULL([TMP].[WKCode], '')), RTRIM(ISNULL([TMP].[WKDesc], '')) from [dbo].[Templates] [TMP] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[ActionWorkTypes] [AWT] WHERE [AWT].[WorkType] = [TMP].[WKCode]) [ACT] where [ACT].[TOTAL] > 0 and ISNULL([TMP].[Retired], 'N') <> 'Y' order by RTRIM(ISNULL([TMP].[WKDesc], '')) SELECT [WT].[Cid], [WT].[WKDesc], [AWT].[ActionCode], RTRIM(ISNULL([TAC].[DESC], '')) AS [Desc] FROM @WorkTypes [WT] INNER JOIN [dbo].[ActionWorkTypes] [AWT] INNER JOIN [dbo].[TemplateActions] [TAC] ON [TAC].[ACTIONCODE] = [AWT].[ACTIONCODE] ON [AWT].[WORKTYPE] = [WT].[WKCODE] ORDER BY [WT].[CID], [AWT].[SEQ] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchHandler' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchHandler] END GO CREATE PROCEDURE [KAAS_FetchHandler] (@Code VARCHAR(10) = '') AS /******************************************************************************************************* * This procedure used to fetch only active handler with out team and retired handler. * * * * Stored Procedure Name : [dbo].[KAAS_FetchHandler] * * Copied from : [dbo].[ky_NETFetchHandler] * * * * Modification History: * * 2019-07-05 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM([HAN].[TEAMCODE]) AS [TEAMCODE], RTRIM([HAN].[CODE]) AS [Code], RTRIM([HAN].[NAME]) AS [Name], RTRIM(ISNULL([HAN].[TEAM], '')) AS [Team], [HAN].[RATE] AS [Rate], CASE WHEN ISNULL([HAN].[RETIRED], 'N') = 'Y' THEN 'Y' ELSE 'N' END AS [Retired], RTRIM(ISNULL([HAN].[EMAIL], '')) AS [Email], RTRIM(ISNULL([HAN].[SIGNATURE], '')) AS [Signature] FROM [dbo].[Handlers] [HAN] WHERE ( ISNULL([HAN].[Retired], 'N') <> 'Y' OR [HAN].[CODE] = @Code) AND ISNULL([HAN].[TEAMCODE], 'N') <> 'Y' SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchIntellisense]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchIntellisense] GO CREATE PROCEDURE [KAAS_FetchIntellisense] ( @Handler VARCHAR(6) ) AS /******************************************************************************************************* * This procedure is used To fetch the Intellisense. * * * * Stored Procedure Name : [dbo].[KAAS_FetchIntellisense] * * Copied from : [dbo].[ky_NETFetchIntellisense] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(Id) AS Id, RTRIM(Handler) AS Handler, RTRIM(Narrative) AS Narrative FROM Intellisense WHERE Handler = @Handler ORDER by Narrative SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchLinkedMatters',N'P')IS NOT NULL DROP PROCEDURE KAAS_FetchLinkedMatters GO CREATE PROCEDURE KAAS_FetchLinkedMatters ( @MatterCode NVARCHAR(20)--@MatterCode MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters] ) AS /* Created By : Arun V Date : 29Oct2014 Description : This procedure is used to FETCH links cases based on matter code Modification History ----------------------------------------------------- Date | Modified By | Description ----------------------------------------------------- 2019-05-23 Arun V Copied from ky_NETFetchLinkedMatters */ BEGIN SET NOCOUNT ON SELECT l.RecordId, m.Code AS CaseCode, m.FECode AS FeeEarner,c.Name AS Name, m.[Description], l.Relationship FROM LinkedMatters L LEFT JOIN matters M ON m.Code = L.LinkedMatter LEFT JOIN Contacts C ON c.Code = m.ClientCode WHERE l.PrimeMatter = @MatterCode SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchLoadUndertakings]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchLoadUndertakings] GO CREATE PROCEDURE [KAAS_FetchLoadUndertakings] (@CaseCode VARCHAR(20), @Code VARCHAR(10) = '') AS /******************************************************************************************************* *This procedure is used load the data for add Undertakings page. * * 1. Fee Earner. * * 2. Case Associate type list box * * * * Stored Procedure Name : [dbo].[KAAS_FetchLoadUndertakings] * * Copied from : [dbo].[ky_NETFetchLoadUndertakings] * * * * Modification History : * * 2019-06-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @FeeEarner VARCHAR(10) DECLARE @UndertakingTo VARCHAR(10) SET @FeeEarner = (SELECT U.AuthorisedByFE FROM Undertakings U LEFT JOIN FeeEarnerCodes F ON U.AuthorisedByFE = F.Code WHERE U.RECORDID = CONVERT(INT,@Code)) SET @UndertakingTo = (SELECT ISNULL(U.UndertakingTo,'') FROM Undertakings U WHERE U.RECORDID = CONVERT(INT,@Code)) SELECT RTRIM(Code) AS Code, RTRIM(Name) AS FeeEarners FROM FeeEarnerCodes WHERE REPLACE(ISNULL(Retired,'N'),' ','N') <> 'Y' OR Code = @FeeEarner SELECT RTRIM(D.CODE) AS CODE, RTRIM(C.[DESCRIPTION]) AS [DESCRIPTION], CASE WHEN RTRIM(D.COMPANY) <> '' THEN RTRIM(D.Name) + ' ('+ RTRIM(D.COMPANY) +')' ELSE RTRIM(D.Name) END AS NMCMP FROM CaseContacts A LEFT OUTER JOIN CaseAssociatesContacts B ON A.ASSIGNEDCONTACT= B.KEYID LEFT OUTER JOIN AssociateTypes C ON A.CONTYPE= C.CODE LEFT OUTER JOIN CaseAssociatesNames D ON A.NAMECODE= D.CODE WHERE UPPER(A.CASECODE) = UPPER(RTRIM(@CaseCode)) AND A.NAMECODE <> '' AND (ISNULL(A.Retired,'') <> 'Y' OR A.NAMECODE = CASE @UndertakingTo WHEN '' THEN A.NAMECODE ELSE @UndertakingTo END) ORDER BY A.CASECODE, A.CONTYPE, A.CONNUM SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchMaritalStatus',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchMaritalStatus] GO CREATE PROCEDURE [dbo].[KAAS_FetchMaritalStatus] (@AssciateCode VARCHAR(10) = '' ) AS /******************************************************************************************************* * This procedure is used to FETCH marital status * * * * Stored Procedure Name : [dbo].[KAAS_FetchMaritalStatus] * * Copied from : [dbo].[ky_NETCONFetchMaritalStatus] * * * * Modification History : * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM([CDECODE]) AS Code, RTRIM(ISNULL([CDEDESC],'')) AS [MaritialStatus] FROM [MiscCodes] WHERE [CDETYPE] = 'MRS' AND [CDECODE] <> '' AND (ISNULL([Retired],'N') = 'N' OR [CDECODE] = @AssciateCode) SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchMatterChargeOutRates]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchMatterChargeOutRates] GO CREATE PROCEDURE [KAAS_FetchMatterChargeOutRates] ( @MatterCode VARCHAR(20), @IncludeRetired CHAR(1) = 'Y' ) AS /******************************************************************************************************* * This procedure is used FETCH matter charge out rates. * * * * Stored Procedure Name : [dbo].[KAAS_FetchMatterChargeOutRates] * * Copied from : [dbo].[ky_NETMATFetchMatterChargeOutRates] * * * * Modification History : * * 2019-05-23 Vinodhan K Created * * 2019-07-11 Vinodhan K Modified - Added [OldRate] field * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT M.RECORDID AS RECORDID, RTRIM(M.FECODE) AS FECODE, ISNULL(M.RATE,0) AS RATE, ISNULL(M.LastRate,'0.0') AS OldRate, M.EffectiveDate AS EFFECTIVEDATE, COALESCE(H.Name, Hg.Name,m.fecode) AS FeeEarnerName, (CASE WHEN ISNULL(H.Retired,'N') = 'Y' THEN ISNULL(H.Retired,'N') ELSE ISNULL(Hg.RETIRED,'N') END) AS IsRetired FROM MatterChargeOutRates M LEFT JOIN Handlers H on H.Code = m.FeCode LEFT JOIN HandlerChargeGroups Hg on Hg.Code = m.FeCode WHERE M.MatterCode = @MatterCode AND (@IncludeRetired = 'Y' OR ISNULL(H.Retired, 'N') <> 'Y' or ISNULL(Hg.Retired, 'N') <> 'Y') SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchMatterEstimateFeeLogs',N'P')IS NOT NULL DROP PROCEDURE KAAS_FetchMatterEstimateFeeLogs GO CREATE PROCEDURE KAAS_FetchMatterEstimateFeeLogs ( @MatterCode VARCHAR(20) ) AS /******************************************************************************************************* * This procedure is used to fetch the matter estimate fees logs based on matters * * * * Stored Procedure Name : [dbo].[KAAS_FetchMatterEstimateFeeLogs] * * Copied from : [dbo].[Ky_NETFetchMatterEstimateFeeLogs] * * * * Modification History : * * 2019-05-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT ML.[Log], ML.[MatterCode], ML.[Date], ML.[Who], ML.[EstimateFee], M.[Description] FROM MatterEstimateFeeLogs ML LEFT JOIN matters M ON M.Code = ML.MatterCode WHERE ML.[MatterCode] = (CASE WHEN @MatterCode<>'' THEN @MatterCode ELSE ML.[MatterCode] END) ORDER BY ML.[Date] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_FetchMattersbyClientCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchMattersbyClientCode] END GO CREATE PROCEDURE [KAAS_FetchMattersbyClientCode] ( @Code NVARCHAR(MAX)) AS /******************************************************************************************************* * This stored procedure is used to Fetech Matters by ClientCode. * * * * Stored Procedure Name : [dbo].[KAAS_FetchMattersbyClientCode] * * Copied from : [dbo].[ky_NETFetechMattersbyClientCode] * * * * Modification History : * /***************************************************************************** * * Stored Procedure Name: [ky_NETFetechMattersbyClientCode] * * 2014-12-12 Arun V Created * * 2015-02-12 Arun V Change NVARCHAR to VARCHAR * * 2016-01-19 John Ginnane Matters now ordered by [Code] ascending * * 2018-12-07 John Ginnane KEYD-5609 - Now trimming columns * * 2019-06-06 John Ginnane KEYD-5904 - Changed parameter to XML, however check if * * the client code is present (for backwards compatibility) * * Added permission handling * * * *****************************************************************************/ * * 2020-05-18 Ganapathy T Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @CLIENTCODE VARCHAR(20) DECLARE @HANDLER VARCHAR(20) DECLARE @BitWiseID BIGINT DECLARE @idoc INT IF EXISTS (SELECT TOP 1 1 FROM [dbo].[Contacts] AS [CNT] WHERE [CNT].[Code] = @Code) BEGIN SET @CLIENTCODE = @Code SET @HANDLER = 'ADM' SET @BitWiseID = -1 END ELSE BEGIN BEGIN TRY EXEC sp_xml_preparedocument @idoc OUTPUT, @Code END TRY BEGIN CATCH EXEC sp_xml_preparedocument @idoc OUTPUT, N'' END CATCH SELECT @HANDLER = [XML].[handler], @CLIENTCODE = [XML].[clientcode] FROM OPENXML(@idoc, N'search') WITH ([handler] VARCHAR(20) '@handler', [clientcode] VARCHAR(20) '@clientcode') AS [XML] EXEC sp_xml_removedocument @idoc SELECT @BitWiseID = HNG.[BitWiseID] FROM [dbo].[HandlerNETGroupMembership] AS HNG WHERE HNG.[HANDLER] = @HANDLER SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@HANDLER, '')))) IF @HANDLER = 'ADM' BEGIN SET @BitWiseID = -1 END END SELECT LTRIM(RTRIM(MAT.[Code])) AS [Matter], LTRIM(RTRIM(MAT.[Description])) AS [Description] FROM [dbo].[matters] AS [MAT] LEFT OUTER JOIN [dbo].[MatterNETPrivileges] AS [MNP] ON [MAT].[Code] = [MNP].[MATTER] WHERE MAT.[ClientCode] = @CLIENTCODE AND ([MNP].[MATTER] IS NULL /* Matter permissions not found */ OR CASE @BitWiseID WHEN 0 THEN CASE [MNP].[Privileges] WHEN 0 THEN 1 WHEN -1 THEN 1 ELSE 0 END ELSE CASE @BitWiseID & [MNP].[Privileges] WHEN 0 THEN 0 ELSE 1 END END = 1) ORDER BY MAT.[Code] ASC SELECT LTRIM(RTRIM([CNT].[Name])) AS [Name] FROM [dbo].[Contacts] AS [CNT] LEFT OUTER JOIN [dbo].[ContactNETPrivileges] AS [CNP] ON [CNT].[Code] = [CNP].[ContactCode] WHERE [CNT].[Code] = @CLIENTCODE AND ([CNP].[ContactCode] IS NULL /* Contact permissios not found */ OR CASE @BitWiseID WHEN 0 THEN CASE [CNP].[Previleges] WHEN 0 THEN 1 WHEN -1 THEN 1 ELSE 0 END ELSE CASE @BitWiseID & [CNP].[Previleges] WHEN 0 THEN 0 ELSE 1 END END = 1) SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchMattersEstimatedFee' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchMattersEstimatedFee] END GO CREATE PROCEDURE [dbo].[KAAS_FetchMattersEstimatedFee] ( @MatterCode VARCHAR(20)) AS /******************************************************************************************************* * This SP used to Fetch details FROM Matters Estimated Fees table * * * * Stored Procedure Name : [dbo].[KAAS_FetchMattersEstimatedFee] * * Copied from : [dbo].[ky_NETFetchMattersEstimatedFee] * * * * Modification History : * * 2019-05-22 Vinodhan K Created * 2021-01-28 Ghayathri Modified (Added Fee Description column in Select Statement) *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(ME.[RecordID] , 0)) AS [ID], RTRIM(ISNULL(ME.[MatterCode] , '')) AS [MatterCode], ME.[EstimatedBillDate] AS [EstimatedBillDate], ISNULL(ME.[EstimatedFeesAmt],0) AS [EstimatedFeesAmt], ISNULL(ME.[FeeType],0) As [FeeType], FE.[Description] As [FeeDescription] FROM [dbo].[MattersEstimatedFees] ME LEFT JOIN [dbo].[FeeTypes] FE ON FE.[ID] = ME.[FeeType] WHERE RTRIM(ME.[MatterCode]) = RTRIM(@MatterCode) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchMergeCaseAssociates' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchMergeCaseAssociates] END GO CREATE PROCEDURE [dbo].[KAAS_FetchMergeCaseAssociates] (@CASECODE VARCHAR(20), @NAMECODE VARCHAR(10), @CONTYPE VARCHAR(15)) AS /*************************************************************************************** * KAAS_FetchMergeCaseAssociates * Description: This procedure is used to select the merge case. * * * 2023-07-03 Sadiq Copied from ky_NETFetchMergeCaseAssociates *****************************************************************************************/ BEGIN SET NOCOUNT ON IF(@CASECODE = '') BEGIN SELECT TYP.CODE , ROW_NUMBER() OVER(Order by TYP.CODE) as [Row_Number], ISNULL([TYP].[Description],'') AS [DESCRIPTION], CASE WHEN RTRIM(ISNULL([CAN].[COMPANY], '')) = '' THEN RTRIM(ISNULL([CAN].[NAME], '')) ELSE LTRIM(RTRIM(ISNULL([CAN].[NAME], '')) + ' (' + RTRIM(ISNULL([CAN].[COMPANY], '')) + ')') END AS [NMCMP], [dbo].[ky_RemoveSpuriousWhitespace2](RTRIM(ISNULL([CAN].[ADDRESS], '')), 200) AS [ADDRESS], RTRIM(ISNULL([CAN].[PHONENO], '')) AS [PHONENO], RTRIM(ISNULL([CAN].[EMAIL], '')) AS [EMAIL], RTRIM(ISNULL([CAN].[COMPANY], '')) AS [COMPANY], RTRIM(ISNULL([CAN].[MOBILENO], '')) AS [MOBILENO], RTRIM(ISNULL([CAN].[NAME], '')) AS [NAME], RTRIM(NAMECODE) AS [NAMECODE], ISNULL(CAT.Retired,'N') AS [Retired] FROM [dbo].[CaseAssociatesNames] [CAN] INNER JOIN [dbo].[CaseAssoicatesTypes] CAT INNER JOIN [dbo].[AssociateTypes] TYP ON TYP.[CODE] = CAT.[TYPECODE] ON CAT.[NAMECODE] = CAN.[CODE] WHERE RTRIM(ISNULL([CAN].[CODE], '')) <> '' AND RTRIM(ISNULL([CAN].[NAME], '')) <> '' AND ISNULL(CAT.[Retired],'N') <> 'Y' AND TYPECODE = @CONTYPE AND NAMECODE <> @NAMECODE END ELSE BEGIN SELECT CCN.[CASECODE], ROW_NUMBER() OVER(Order by CCN.[CASECODE]) as [Row_Number], RTRIM(CCN.[CONTYPE]) AS [CONTYPE], CCN.[CONNUM], CCN.[NAMECODE], CCN.[SOLCODE], CCN.[SOLREF], CCN.[INSCODE], CCN.[ASSIGNEDCONTACT], CAC.[NAMECODE], CAC.[KEYID], CAC.[NAME], CAC.[PHONE], CAC.[EMAIL] AS [EMAIL1], AST.[CODE], AST.[DESCRIPTION], CAN.[CODE], CAN.[TYPE], CAN.[NAME] AS [ConName], CAN.[COMPANY], CAN.[ADDRESS], CAN.[PHONENO], CAN.[MOBILENO], CAN.[EMAIL], CAN.[SEARCH], CAN.[CONTACTNO], CAN.[SALUTATION], CCN.[CONNUM] As [Seq], CASE WHEN RTRIM(ISNULL(CAN.[COMPANY],'')) <> '' THEN RTRIM(CAN.[Name]) + ' ('+ RTRIM(CAN.[COMPANY]) +')' ELSE RTRIM(CAN.[Name]) END AS [NMCMP], CASE WHEN (RTRIM(ISNULL(CCN.[ForCopy],'0')) = '1' OR RTRIM(ISNULL(CCN.[ForCopy],'0')) = 'Y' ) THEN 'True' ELSE 'False' END AS [ForCopy], CAC.[NAME] AS [AssignedContactName], CAC.[PHONE] AS [AssignedContactPhone], ISNULL(CCN.[IsAssociateOtherSide],'False') AS [IsAssociateOtherSide], ISNULL(CCN.Retired,'N') AS Retired FROM [dbo].[CaseContacts] CCN LEFT OUTER JOIN [dbo].[CaseAssociatesContacts] CAC ON CAC.[KEYID] = CCN.[ASSIGNEDCONTACT] LEFT OUTER JOIN [dbo].[AssociateTypes] AST ON AST.[CODE] = CCN.[CONTYPE] LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CAN ON CAN.[CODE] = CCN.[NAMECODE] WHERE UPPER(CCN.[CASECODE]) = UPPER(@CASECODE) AND LEN(ISNULL(CCN.[NAMECODE],'')) >0 AND CCN.[NAMECODE] <> 'N/A' AND LEN(ISNULL(CAN.[NAME],''))>0 AND CCN.CONTYPE = @CONTYPE AND CCN.NAMECODE <> @NAMECODE AND ISNULL(CCN.[Retired],'N') <> 'Y' ORDER BY CCN.[CASECODE], CCN.[CONTYPE], CCN.[CONNUM] END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchMinutesPerUnit',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchMinutesPerUnit] GO CREATE PROCEDURE [dbo].[KAAS_FetchMinutesPerUnit] AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_FetchMinutesPerUnit] * * Copied from : [dbo].[ky_NETDashboardCaseAlert] * * * * Modification History: * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @TUTNUMVALUE DECIMAL(17, 2) SELECT @TUTNUMVALUE = CTN.[NumValue] FROM [dbo].[CtrlNum] CTN WHERE CTN.[Code] = 'TimeUnit' SET @TUTNUMVALUE = CASE WHEN ISNULL(@TUTNUMVALUE, 0) = 0 THEN 6 ELSE @TUTNUMVALUE END SELECT @TUTNUMVALUE AS [MinutesPerUnit] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchNewExternalDictations' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchNewExternalDictations] END GO CREATE PROCEDURE [dbo].[KAAS_FetchNewExternalDictations] AS /************************************************************************************************************* * * * [dbo].[KAAS_FetchNewExternalDictations] * * Fetch list of dictations that could be sent to external typist * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * Original: - * * * * First compatible version: 5.9.4.35 (FW) * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2024-05-20 Pino Carafa Created * * * *************************************************************************************************************/ BEGIN INSERT INTO [dbo].[ExternalDictations] ([TrackReference], [Status]) SELECT [OD].[TrackReference], 0 --0=Created FROM [dbo].[OpenDictations] [OD] WITH (NOEXPAND) LEFT OUTER JOIN [dbo].[ExternalDictations] [ED] WITH (NOLOCK) ON [ED].[TrackReference] = [OD].[TrackReference] WHERE [ED].[TrackReference] IS NULL SELECT [NED].[CaseCode], [NED].[ActionId], [NED].[TrackReference], [NED].[DOCUMENT] FROM [dbo].[NewExternalDictations] [NED] WITH (NOEXPAND) ORDER BY [NED].[TrackReference] END GO IF OBJECT_ID(N'KAAS_FetchOfficersList',N'P')IS NOT NULL DROP PROCEDURE KAAS_FetchOfficersList GO CREATE PROCEDURE KAAS_FetchOfficersList ( @ClientCode VARCHAR(15) ) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_FetchOfficersList] * * Copied from : [dbo].[ky_NETFetchOfficersList] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT CONTACTOFFICER, NAME, COSECRETARY, DATEAPPOINTED, DATERESIGNED, RECORDID FROM Officers WHERE CONTACTCODE = @ClientCode SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchOpenedMatterList', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_FetchOpenedMatterList] END GO CREATE PROCEDURE [dbo].[KAAS_FetchOpenedMatterList] (@Search NVARCHAR(MAX)) AS /******************************************************************************************************* * * * Stored Procedure Name: [dbo].[KAAS_FetchOpenedMatterList] * * Copied from : [dbo].[ky_NETSPXMLMatterSearch2] * * * * Modification History: * * 2019-04-01 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @closed NCHAR(1) DECLARE @orderby NVARCHAR(50) DECLARE @order NVARCHAR(4) DECLARE @howmany INT DECLARE @handler NVARCHAR(10) DECLARE @which INT DECLARE @BitWiseID BIGINT DECLARE @searchtext VARCHAR(MAX) DECLARE @searchonlycode VARCHAR(3) DECLARE @departmentdesc VARCHAR(50) DECLARE @department VARCHAR(5) DECLARE @worktypedesc VARCHAR(50) DECLARE @worktype VARCHAR(5) DECLARE @filecolourdesc VARCHAR(20) DECLARE @filecolour VARCHAR(3) DECLARE @feecode VARCHAR(10) DECLARE @includename BIT DECLARE @includedescription BIT DECLARE @includeaddress BIT DECLARE @includeemail BIT DECLARE @includecode BIT DECLARE @includeoldref BIT DECLARE @includeuser1 BIT DECLARE @andorname VARCHAR(3) DECLARE @andornamevalue VARCHAR(200) DECLARE @andordescription VARCHAR(3) DECLARE @andordescriptionvalue VARCHAR(200) DECLARE @andoraddress VARCHAR(3) DECLARE @andoraddressvalue VARCHAR(200) DECLARE @andorcode VARCHAR(3) DECLARE @andorcodevalue VARCHAR(200) DECLARE @andorfeecode VARCHAR(3) DECLARE @andorfeecodevalue VARCHAR(200) DECLARE @andoroldref VARCHAR(3) DECLARE @andoroldrefvalue VARCHAR(200) DECLARE @andordept VARCHAR(3) DECLARE @andordeptvalue VARCHAR(200) DECLARE @andoruser1 VARCHAR(3) DECLARE @andoruser1value VARCHAR(200) DECLARE @andoruser2 VARCHAR(3) DECLARE @andoruser2value VARCHAR(200) DECLARE @andoruser3 VARCHAR(3) DECLARE @andoruser3value VARCHAR(200) DECLARE @andoryourref VARCHAR(3) DECLARE @andoryourrefvalue VARCHAR(200) DECLARE @andorwtype VARCHAR(3) DECLARE @andorwtypevalue VARCHAR(200) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @Search END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @closed = CASE ISNULL(SRC.[closed], N'N') WHEN N'Y' THEN N'Y' WHEN N'B' THEN N'B' ELSE N'N' END, @orderby = ISNULL(SRC.[orderby], N''), @order = CASE ISNULL(SRC.[order], N'DESC') WHEN N'DESC' THEN N'DESC' ELSE N'ASC' END, @howmany = ISNULL(SRC.[howmany], 500), @handler = ISNULL(SRC.[handler], N''), @which = CASE ISNULL(SRC.[which], 0) WHEN 1 THEN 1 --My Matters WHEN 2 THEN 2 --Recent Matters ELSE 0 END, --All Matters @searchtext = ISNULL(SRC.[search], ''), @searchonlycode = ISNULL(SRC.[searchonlycode], ''), @departmentdesc = ISNULL(SRC.[dept], ''), @worktypedesc = ISNULL(SRC.[wtype], ''), @filecolourdesc = ISNULL(SRC.[colour], ''), @feecode = ISNULL(SRC.[feecodefilter], ''), @includeaddress = ISNULL(SRC.[includeaddress], 0), @includeemail = ISNULL(SRC.[includeemail], 0), @includecode = ISNULL(SRC.[includecode], 0), @includedescription = ISNULL(SRC.[includedescription], 0), @includename = ISNULL(SRC.[includename], 0), @includeoldref = ISNULL(SRC.[includeoldref], 0), @includeuser1 = ISNULL(SRC.[includeuser1], 0), @andorname = ISNULL(SRC.[andorname], ''), @andornamevalue = ISNULL(SRC.[andornamevalue], ''), @andordescription = ISNULL(SRC.[andordescription], ''), @andordescriptionvalue = ISNULL(SRC.[andordescriptionvalue], ''), @andoraddress = ISNULL(SRC.[andoraddress], ''), @andoraddressvalue = ISNULL(SRC.[andoraddressvalue], ''), @andorcode = ISNULL(SRC.[andorcode], ''), @andorcodevalue = ISNULL(SRC.[andorcodevalue], ''), @andorfeecode = ISNULL(SRC.[andorfeecode], ''), @andorfeecodevalue = ISNULL(SRC.[andorfeecodevalue], ''), @andoroldref = ISNULL(SRC.[andoroldref], ''), @andoroldrefvalue = ISNULL(SRC.[andoroldrefvalue], ''), @andordept = ISNULL(SRC.[andordept], ''), @andordeptvalue = ISNULL(SRC.[andordeptvalue], ''), @andoruser1 = ISNULL(SRC.[andoruser1], ''), @andoruser1value = ISNULL(SRC.[andoruser1value], ''), @andoruser2 = ISNULL(SRC.[andoruser2], ''), @andoruser2value = ISNULL(SRC.[andoruser2value], ''), @andoruser3 = ISNULL(SRC.[andoruser3], ''), @andoruser3value = ISNULL(SRC.[andoruser3value], ''), @andoryourref = ISNULL(SRC.[andoryourref], ''), @andoryourrefvalue = ISNULL(SRC.[andoryourrefvalue], ''), @andorwtype = ISNULL(SRC.[andorwtype], ''), @andorwtypevalue = ISNULL(SRC.[andorwtypevalue], '') FROM OPENXML(@iSL, N'search') WITH ([closed] NCHAR(1) '@closed', [orderby] NVARCHAR(50) '@orderby', [order] NVARCHAR(4) '@order', [howmany] INT '@howmany', [handler] NVARCHAR(10) '@handler', [which] INT '@which', [search] VARCHAR(MAX) '@search', [searchonlycode] VARCHAR(3) '@searchonlycode', [dept] VARCHAR(50) '@departmentfilter', [wtype] VARCHAR(50) '@worktypefilter', [colour] VARCHAR(20) '@filecolourfilter', [feecodefilter] VARCHAR(10) '@feecodefilter', [includeaddress] BIT 'include/includefield[@name="address"]', [includecode] BIT 'include/includefield[@name="code"]', [includedescription] BIT 'include/includefield[@name="description"]', [includename] BIT 'include/includefield[@name="name"]', [includeoldref] BIT 'include/includefield[@name="oldref"]', [includeuser1] BIT 'include/includefield[@name="user1"]', [includeemail] BIT 'include/includefield[@name="email"]', [andorname] VARCHAR(3) 'andor/andorfield[@name="name"]/@andor', [andornamevalue] VARCHAR(100) 'andor/andorfield[@name="name"]/@search', [andordescription] VARCHAR(3) 'andor/andorfield[@name="description"]/@andor', [andordescriptionvalue] VARCHAR(100) 'andor/andorfield[@name="description"]/@search', [andoraddress] VARCHAR(3) 'andor/andorfield[@name="address"]/@andor', [andoraddressvalue] VARCHAR(100) 'andor/andorfield[@name="address"]/@search', [andorcode] VARCHAR(3) 'andor/andorfield[@name="code"]/@andor', [andorcodevalue] VARCHAR(100) 'andor/andorfield[@name="code"]/@search', [andorfeecode] VARCHAR(3) 'andor/andorfield[@name="feecode"]/@andor', [andorfeecodevalue] VARCHAR(100) 'andor/andorfield[@name="feecode"]/@search', [andoroldref] VARCHAR(3) 'andor/andorfield[@name="oldref"]/@andor', [andoroldrefvalue] VARCHAR(100) 'andor/andorfield[@name="oldref"]/@search', [andordept] VARCHAR(3) 'andor/andorfield[@name="dept"]/@andor', [andordeptvalue] VARCHAR(100) 'andor/andorfield[@name="dept"]/@search', [andoruser1] VARCHAR(3) 'andor/andorfield[@name="user1"]/@andor', [andoruser1value] VARCHAR(100) 'andor/andorfield[@name="user1"]/@search', [andoruser2] VARCHAR(3) 'andor/andorfield[@name="user2"]/@andor', [andoruser2value] VARCHAR(100) 'andor/andorfield[@name="user2"]/@search', [andoruser3] VARCHAR(3) 'andor/andorfield[@name="user3"]/@andor', [andoruser3value] VARCHAR(100) 'andor/andorfield[@name="user3"]/@search', [andoryourref] VARCHAR(3) 'andor/andorfield[@name="yourref"]/@andor', [andoryourrefvalue] VARCHAR(100) 'andor/andorfield[@name="yourref"]/@search', [andorwtype] VARCHAR(3) 'andor/andorfield[@name="wtype"]/@andor', [andorwtypevalue] VARCHAR(100) 'andor/andorfield[@name="wtype"]/@search') SRC IF @filecolourdesc <> '' BEGIN SELECT @filecolour = FC.[COLOURCODE] FROM [dbo].[FileColours] FC WITH (NOLOCK) WHERE FC.[COLOURDESC] = @filecolourdesc END SET @filecolour = ISNULL(@filecolour, '') IF @departmentdesc <> '' BEGIN SELECT @department = DP.[CODE] FROM [dbo].[Departments] DP WITH (NOLOCK) WHERE DP.[DESCRIPTION] = @departmentdesc END SET @department = ISNULL(@department, '') IF @worktypedesc <> '' BEGIN IF @worktypedesc LIKE 'Unknown Worktype: %' BEGIN SELECT @worktype = WT.[CODE] FROM [dbo].[WorkTypes] WT WITH (NOLOCK) WHERE 'Unknown Worktype: ' + WT.[CODE] = @worktypedesc OR WT.[DESC] = @worktypedesc END ELSE BEGIN SELECT @worktype = WT.[CODE] FROM [dbo].[WorkTypes] WT WITH (NOLOCK) WHERE WT.[DESC] = @worktypedesc END END SET @worktype = ISNULL(@worktype, '') SET @feecode = ISNULL(@feecode, '') EXEC sp_xml_removedocument @iSL DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @HasWhere BIT SET @HasWhere = 0 SET @handler = CASE WHEN RTRIM(ISNULL(@handler, '')) = '' THEN 'ADM' ELSE RTRIM(@handler) END SELECT @BitWiseID = HNG.[BitWiseID] FROM HandlerNETGroupMembership HNG WITH (NOLOCK) WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@handler, '')))) IF (@handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END SET @NCOMMAND = N' --SELECT ''How Many: '' + CONVERT(VARCHAR(10), @HowMany) --SELECT ''Handler: '' + @Handler --SELECT ''BitWise ID: '' + CONVERT(VARCHAR(10), @BitWiseID) DECLARE @Result TABLE ([id] INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED, [Code] VARCHAR(20) NOT NULL, [Name] VARCHAR(256) NOT NULL, [Description] VARCHAR(200) NOT NULL) INSERT INTO @Result ([Code], [Name], [Description]) SELECT SM.[Code] AS [Code], SM.[Name] AS [Name], SM.[Description] AS [Description] FROM [dbo].[SearchMatters] SM WITH (NOLOCK) CROSS APPLY (SELECT SUBSTRING(CONVERT(VARCHAR, DATEADD(minute, ISNULL(SUM(ISNULL(TDB.[time], 0)), 0), ''19000101''), 108), 1, 5) AS [TOTALTIME] FROM [dbo].[TimeDayBook] TDB WITH (NOLOCK) WHERE TDB.[FeeEarn] = @Handler AND TDB.[matter] = SM.[code]) TTT' SET @NCOMMAND = @NCOMMAND + N' LEFT OUTER JOIN [dbo].[RecentMatterList] RML WITH (NOLOCK) ON RML.[FEE] = @handler AND RML.[MATTER] = SM.[Code]' IF (@BitWiseID = 0) BEGIN SET @NCOMMAND = @NCOMMAND + N' WHERE ( SM.[Privileges] = 0 OR SM.[Privileges] = -1)' END ELSE IF (@BitWiseID = -1) BEGIN SET @NCOMMAND = @NCOMMAND + N' WHERE 1 = 1' END ELSE BEGIN SET @NCOMMAND = @NCOMMAND + N' WHERE SM.[Privileges] & @BitWiseID <> 0' END IF (@which = 1) BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FECode] = @handler' END IF (@closed = 'N') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Closed] = 0' END IF (@closed = 'Y') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Closed] = 1' END IF (@worktype <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[WType] = @WorkType' END IF (@department <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Dept] = @department' END IF (@filecolour <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FileColour] = @filecolour' END IF (@feecode <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FECode] = @feecode' END DECLARE @SearchIncludes NVARCHAR(MAX) SET @SearchIncludes = N'' IF (@searchtext <> '') BEGIN IF SUBSTRING(@searchtext, 1, 1) <> '%' BEGIN SET @searchtext = '%' + @searchtext END IF SUBSTRING(@searchtext, LEN(@searchtext), 1) <> '%' BEGIN SET @searchtext = @searchtext + '%' END SET @searchtext = @searchtext COLLATE SQL_Latin1_General_Cp1251_CS_AS IF (@includeaddress = 0) AND (@includecode = 0) AND (@includedescription = 0) AND (@includename = 0) AND (@includeoldref = 0) AND (@includeuser1 = 0) AND (@includeemail = 0) BEGIN -- This is the standard call - not from Advanced Matter Search, so we search in everything IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END IF @searchonlycode <> 'yes' BEGIN SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext OR SM.[Code] LIKE @searchtext OR SM.[User1] LIKE @searchtext OR SM.[User2] LIKE @searchtext OR SM.[User3] LIKE @searchtext OR SM.[OldRef] LIKE @searchtext OR SM.[YourRef] LIKE @searchtext OR SM.[NCName] LIKE @searchtext OR SM.[NCAddress] LIKE @searchtext OR SM.[Email] LIKE @searchtext OR SM.[NCHandlerName] LIKE @searchtext OR SM.[NCPartnerName] LIKE @searchtext OR SM.[DeptDescription] LIKE @searchtext OR SM.[WTypeDescription] LIKE @searchtext OR SM.[FileColourDescription] LIKE @searchtext OR SM.[MatterStatusDescription] LIKE @searchtext' END ELSE BEGIN SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext' END END ELSE BEGIN IF (@includeaddress = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @searchtext' END IF (@includecode = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext' END IF (@includedescription = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext' END IF (@includename = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @searchtext' END IF (@includeoldref = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @searchtext' END IF (@includeuser1 = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @searchtext' END IF (@includeemail = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Email] LIKE @searchtext' END END END IF @andoraddress = 'OR' BEGIN IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%' BEGIN SET @andoraddressvalue = '%' + @andoraddressvalue END IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%' BEGIN SET @andoraddressvalue = @andoraddressvalue + '%' END SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @andoraddressvalue' END IF @andorcode = 'OR' BEGIN IF CHARINDEX('%', @andorcodevalue, 1) = 0 BEGIN IF SUBSTRING(@andorcodevalue, 1, 1) <> '%' BEGIN SET @andorcodevalue = '%' + @andorcodevalue END IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%' BEGIN SET @andorcodevalue = @andorcodevalue + '%' END END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @andorcodevalue' END IF @andordept = 'OR' BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Dept] = @andordeptvalue' END IF @andordescription = 'OR' BEGIN IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%' BEGIN SET @andordescriptionvalue = '%' + @andordescriptionvalue END IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%' BEGIN SET @andordescriptionvalue = @andordescriptionvalue + '%' END SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @andordescriptionvalue' END IF @andorfeecode = 'OR' BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[FECode] = @andorfeecodevalue' END IF @andorname = 'OR' BEGIN IF SUBSTRING(@andornamevalue, 1, 1) <> '%' BEGIN SET @andornamevalue = '%' + @andornamevalue END IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%' BEGIN SET @andornamevalue = @andornamevalue + '%' END SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @andornamevalue' END IF @andoroldref = 'OR' BEGIN IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%' BEGIN SET @andoroldrefvalue = '%' + @andoroldrefvalue END IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%' BEGIN SET @andoroldrefvalue = @andoroldrefvalue + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @andoroldrefvalue' END IF @andoruser1 = 'OR' BEGIN IF SUBSTRING(@andoruser1value, 1, 1) <> '%' BEGIN SET @andoruser1value = '%' + @andoruser1value END IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%' BEGIN SET @andoruser1value = @andoruser1value + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @andoruser1value' END IF @andoruser2 = 'OR' BEGIN IF SUBSTRING(@andoruser2value, 1, 1) <> '%' BEGIN SET @andoruser2value = '%' + @andoruser2value END IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%' BEGIN SET @andoruser2value = @andoruser2value + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User2] LIKE @andoruser2value' END IF @andoruser3 = 'OR' BEGIN IF SUBSTRING(@andoruser3value, 1, 1) <> '%' BEGIN SET @andoruser3value = '%' + @andoruser3value END IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%' BEGIN SET @andoruser3value = @andoruser3value + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User3] LIKE @andoruser3value' END IF @andorwtype = 'OR' BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[WType] = @andorwtypevalue' END IF @andoryourref = 'OR' BEGIN IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%' BEGIN SET @andoryourrefvalue = '%' + @andoryourrefvalue END IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%' BEGIN SET @andoryourrefvalue = @andoryourrefvalue + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[YourRef] LIKE @andoryourrefvalue' END --SELECT @SearchIncludes IF @SearchIncludes <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND ( ' + @SearchIncludes + N')' END IF @andoraddress = 'AND' BEGIN IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%' BEGIN SET @andoraddressvalue = '%' + @andoraddressvalue END IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%' BEGIN SET @andoraddressvalue = @andoraddressvalue + '%' END SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS SET @NCOMMAND = @NCOMMAND + N' AND SM.[NCAddress] LIKE @andoraddressvalue' END IF @andorcode = 'AND' BEGIN IF SUBSTRING(@andorcodevalue, 1, 1) <> '%' BEGIN SET @andorcodevalue = '%' + @andorcodevalue END IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%' BEGIN SET @andorcodevalue = @andorcodevalue + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[Code] LIKE @andorcodevalue' END IF @andordept = 'AND' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Dept] = @andordeptvalue' END IF @andordescription = 'AND' BEGIN IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%' BEGIN SET @andordescriptionvalue = '%' + @andordescriptionvalue END IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%' BEGIN SET @andordescriptionvalue = @andordescriptionvalue + '%' END SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS SET @NCOMMAND = @NCOMMAND + N' AND SM.[NCDescription] LIKE @andordescriptionvalue' END IF @andorfeecode = 'AND' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FECode] = @andorfeecodevalue' END IF @andorname = 'AND' BEGIN IF SUBSTRING(@andornamevalue, 1, 1) <> '%' BEGIN SET @andornamevalue = '%' + @andornamevalue END IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%' BEGIN SET @andornamevalue = @andornamevalue + '%' END SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS SET @NCOMMAND = @NCOMMAND + N' AND SM.[NCName] LIKE @andornamevalue' END IF @andoroldref = 'AND' BEGIN IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%' BEGIN SET @andoroldrefvalue = '%' + @andoroldrefvalue END IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%' BEGIN SET @andoroldrefvalue = @andoroldrefvalue + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[OldRef] LIKE @andoroldrefvalue' END IF @andoruser1 = 'AND' BEGIN IF SUBSTRING(@andoruser1value, 1, 1) <> '%' BEGIN SET @andoruser1value = '%' + @andoruser1value END IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%' BEGIN SET @andoruser1value = @andoruser1value + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[User1] LIKE @andoruser1value' END IF @andoruser2 = 'AND' BEGIN IF SUBSTRING(@andoruser2value, 1, 1) <> '%' BEGIN SET @andoruser2value = '%' + @andoruser2value END IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%' BEGIN SET @andoruser2value = @andoruser2value + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[User2] LIKE @andoruser2value' END IF @andoruser3 = 'AND' BEGIN IF SUBSTRING(@andoruser3value, 1, 1) <> '%' BEGIN SET @andoruser3value = '%' + @andoruser3value END IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%' BEGIN SET @andoruser3value = @andoruser3value + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[User3] LIKE @andoruser3value' END IF @andorwtype = 'AND' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[WType] = @andorwtypevalue' END IF @andoryourref = 'AND' BEGIN IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%' BEGIN SET @andoryourrefvalue = '%' + @andoryourrefvalue END IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%' BEGIN SET @andoryourrefvalue = @andoryourrefvalue + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[YourRef] LIKE @andoryourrefvalue' END --SELECT @orderby, @order SET @NCOMMAND = @NCOMMAND + N' ORDER BY ' + CASE @orderby WHEN N'description' THEN N'CASE WHEN SM.[Description] = '''' THEN 1 ELSE 0 END, SM.[Description] ' + @order + N', SM.[Code] ' + @order WHEN N'Code' THEN N'CASE WHEN SM.[Code] = '''' THEN 1 ELSE 0 END, SM.[Code] ' + @order WHEN N'Name' THEN N'CASE WHEN SM.[Name] = '''' THEN 1 ELSE 0 END, SM.[Name] ' + @order + N', SM.[Code] ' + @order WHEN N'Address' THEN N'CASE WHEN SM.[Address] = '''' THEN 1 ELSE 0 END, SM.[Address] ' + @order + N', SM.[Code] ' + @order WHEN N'Email' THEN N'CASE WHEN SM.[Email] = '''' THEN 1 ELSE 0 END, SM.[Email] ' + @order + N', SM.[Code] ' + @order WHEN N'PhoneNumber' THEN N'CASE WHEN SM.[PhoneNumber] = '''' THEN 1 ELSE 0 END, SM.[PhoneNumber] ' + @order + N', SM.[Code] ' + @order WHEN N'user1' THEN N'CASE WHEN SM.[User1] = '''' THEN 1 ELSE 0 END, SM.[User1] ' + @order + N', SM.[Code] ' + @order WHEN N'user2' THEN N'CASE WHEN SM.[User2] = '''' THEN 1 ELSE 0 END, SM.[User2] ' + @order + N', SM.[Code] ' + @order WHEN N'user3' THEN N'CASE WHEN SM.[User3] = '''' THEN 1 ELSE 0 END, SM.[User3] ' + @order + N', SM.[Code] ' + @order WHEN N'yourref' THEN N'CASE WHEN SM.[YourRef] = '''' THEN 1 ELSE 0 END, SM.[YourRef] ' + @order + N', SM.[Code] ' + @order WHEN N'OldRef' THEN N'CASE WHEN SM.[OldRef] = '''' THEN 1 ELSE 0 END, SM.[OldRef] ' + @order + N', SM.[Code] ' + @order WHEN N'FileNum' THEN N'CASE WHEN SM.[FileNum] = 0 THEN 1 ELSE 0 END, SM.[FileNum] ' + @order + N', SM.[Code] ' + @order WHEN N'department' THEN N'CASE WHEN SM.[DeptDescription] = '''' THEN 1 ELSE 0 END, SM.[DeptDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'Dept' THEN N'CASE WHEN SM.[DeptDescription] = '''' THEN 1 ELSE 0 END, SM.[DeptDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'worktype' THEN N'CASE WHEN SM.[WTypeDescription] = '''' THEN 1 ELSE 0 END, SM.[WTypeDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'FeeCode' THEN N'CASE WHEN SM.[FECode] = '''' THEN 2 WHEN SM.[FECode] = ''ADM'' THEN 1 ELSE 0 END, SM.[FECode] ' + @order + N', SM.[Code] ' + @order WHEN N'FeeEarner' THEN N'CASE WHEN SM.[HandlerName] = '''' AND SM.[FECode] = '''' THEN 3 WHEN SM.[HandlerName] = '''' THEN 2 WHEN SM.[HandlerName] = ''Admin'' THEN 1 ELSE 0 END, SM.[HandlerName] ' + @order + N', SM.[Code] ' + @order WHEN N'FileColour_Fld' THEN N'CASE WHEN SM.[FileColourDescription] = '''' THEN 1 ELSE 0 END, SM.[FileColourDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'FileColour' THEN N'CASE WHEN SM.[FileColourDescription] = '''' THEN 1 ELSE 0 END, SM.[FileColourDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'started' THEN N'SM.[Started] ' + @order + N', SM.[Code] ' + @order WHEN N'LastAccessed' THEN N'CASE WHEN RML.[DateField] IS NULL THEN 1 ELSE 0 END, RML.[DateField] ' + @order + N', SM.[Code] ' + @order WHEN N'closedate' THEN N'CASE WHEN SM.[CloseDate] IS NULL THEN 1 ELSE 0 END, SM.[CloseDate] ' + @order + N', SM.[Code] ' + @order WHEN N'orgcloseddate' THEN N'CASE WHEN SM.[orgcloseddate] IS NULL THEN 1 ELSE 0 END, SM.[orgcloseddate] ' + @order + N', SM.[Code] ' + @order WHEN N'casestatusdesc' THEN N'CASE WHEN SM.[MatterStatusDescription] IS NULL THEN 1 ELSE 0 END, SM.[MatterStatusDescription] ' + @order + N', SM.[Code] ' + @order ELSE CASE WHEN @Which <> 2 THEN N'SM.[Code] ' + @order ELSE N'CASE WHEN RML.[DateField] IS NULL THEN 1 ELSE 0 END, RML.[DateField] DESC, SM.[Code] ' + @order END END SET @NCOMMAND = @NCOMMAND + N' DECLARE @MatterCode AS VARCHAR(20); SET @MatterCode = (SELECT TOP 1 MATTER FROM [RecentMatterList]); SELECT [RES].[Code], [RES].[Name], [RES].[Description] FROM @Result [RES] WHERE RTRIM(LTRIM(@SearchText)) = '''' OR ( [RES].[Code] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [RES].[Name] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [RES].[Description] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' ) ORDER BY( CASE WHEN [RES].[Code] = @MatterCode THEN 0 ELSE 1 END), [Code] SELECT COUNT([RES].[id]) AS [TotalRecord] FROM @Result [RES] WHERE RTRIM(LTRIM(@SearchText)) = '''' OR ( [RES].[Code] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [RES].[Name] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [RES].[Description] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' )' --SELECT @NCOMMAND EXECUTE sp_executesql @NCOMMAND, N'@HowMany INT, @BitWiseID BIGINT, @Handler VARCHAR(10), @WorkType VARCHAR(5), @department VARCHAR(5), @filecolour VARCHAR(3), @feecode VARCHAR(10), @searchtext VARCHAR(MAX), @andoraddressvalue VARCHAR(200), @andorcodevalue VARCHAR(200), @andordeptvalue VARCHAR(200), @andordescriptionvalue VARCHAR(200), @andorfeecodevalue VARCHAR(200), @andornamevalue VARCHAR(200), @andoroldrefvalue VARCHAR(200), @andoruser1value VARCHAR(200), @andoruser2value VARCHAR(200), @andoruser3value VARCHAR(200), @andorwtypevalue VARCHAR(200), @andoryourrefvalue VARCHAR(200)', @Howmany, @BitWiseID, @handler, @worktype, @department, @filecolour, @feecode, @searchtext, @andoraddressvalue, @andorcodevalue, @andordeptvalue, @andordescriptionvalue, @andorfeecodevalue, @andornamevalue, @andoroldrefvalue, @andoruser1value, @andoruser2value, @andoruser3value, @andorwtypevalue, @andoryourrefvalue END GO IF OBJECT_ID(N'KAAS_FetchOptionstoAssignEmailToCase', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_FetchOptionstoAssignEmailToCase] END GO CREATE PROCEDURE [dbo].[KAAS_FetchOptionstoAssignEmailToCase] ( @CaseCodeToFetchDocumentClasses VARCHAR(20), @MatterCode VARCHAR(20), @WKCode VARCHAR(20), @ActionCategory VARCHAR(1) ) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_FetchOptionstoAssignEmailToCase] * * Copied from : NA * * * * Modification History: * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN --To fetch the document classes EXECUTE KAAS_ListDocumentClassesForCase @CaseCodeToFetchDocumentClasses --To fetch the matter details SELECT RTRIM(ISNULL([MAT].[Code], '')) AS [CaseRef], RTRIM(ISNULL([MAT].[ClientCode], '')) AS [ClientCode], RTRIM(ISNULL([CL].[CLNAME], '')) AS [CLNAME], RTRIM(ISNULL([MAT].[Description], '')) AS [Description] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[client] [CL] ON [CL].[CLCODE] = [MAT].[ClientCode] WHERE [MAT].[Code] = @MatterCode --To fetch list of work type SELECT RTRIM(ISNULL(TMP.[WKCODE], '')) AS [WKCODE], RTRIM(ISNULL(TMP.[WKDESC], '')) AS [WKDESC] FROM [dbo].[Templates] TMP ORDER BY CASE WHEN RTRIM(ISNULL(TMP.[WKCODE], '')) = 'SYS' THEN '1' WHEN RTRIM(ISNULL(TMP.[WKCODE], '')) = '' THEN '2' WHEN RTRIM(ISNULL(TMP.[WKCODE], '')) = '' THEN '3' ELSE '4' END, TMP.[WKDESC] --To fetch list of actions SELECT AC.[ACTIONCODE], AC.[DESC] FROM [dbo].[ky_WDGetTAList2](@MatterCode, @WKCode, @ActionCategory) AC END GO IF OBJECT_ID(N'KAAS_FetchOtherContactDetails', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_FetchOtherContactDetails] END GO CREATE PROCEDURE [dbo].[KAAS_FetchOtherContactDetails] (@ClientCode VARCHAR(10), @CLNUMCONTACT INT) AS /******************************************************************************************************* * List Client Contacts * * * * Stored Procedure Name : [dbo].[KAAS_FetchOtherContactDetails] * * Copied from : [dbo].[ky_NETCONFetchOtherContactDetails2] * * * * Modification History: * * 2019-04-22 Vinodhan K Created * * 2021-10-13 Sadiq Date Format issue Fixed (13221) * *******************************************************************************************************/ BEGIN SET NOCOUNT ON --Other Contacts SELECT [CLC].[CLINITS] AS [Initials], [CLC].[CLNAMECON] AS [FullName], [CLC].[HomePhone] AS [HomePhone], [CLC].[WorkPhone] AS [WorkPhone], [CLC].[Mobile] AS [Mobile], [CLC].[FIRSTNAME] AS [FirstName], [CLC].[SURNAME] AS [Surname], [CLC].[CLSALUTE] AS [Salutation], [CLC].[PPSNo] AS [PPSNumber], [CLC].[CLTitle] AS [Title], [CLC].[Address] AS [Address], [CLC].[EmailAddress] AS [EmailAddress], CONVERT(VARCHAR, [CLC].[DOB] , 120) AS [DOB], CONVERT(VARCHAR, [CLC].[MarrigeDate] , 120) AS [MarriageDate], [CLC].[MartialStatus] AS [MStatus], [CLC].[Occupation] AS [Occupation], CONVERT(VARCHAR, [CLC].[DateofDeath] , 120) AS [DateOfDeath], [MIC].[CDEDESC] AS [MartialStatus], [CLC].[FaxNumber] AS [FaxNumber], [CLC].[PostalCode] AS [PostalCode], [CLC].[County] AS [County], [CLC].[CLNUMCONTACT] AS [CLNUMCONTACT], [CLC].[DXREF] AS [DXREF], [CLC].[BankName] AS [BankName], [CLC].[BankAddress] AS [BankAddress], [CLC].[BankSortCode] AS [BankSortCode], [CLC].[BankAccNo] AS [BankAccNo], [CLC].[IBAN] AS [IBAN], [CLC].[BIC] AS [BIC], [CLC].[BankType] AS [BankType] FROM [dbo].[ClientContacts] [CLC] LEFT OUTER JOIN [dbo].[MiscCodes] [MIC] ON [CLC].[MartialStatus] = [MIC].[CDECODE] AND [MIC].[CDETYPE] = 'MRS' WHERE [CLC].[ClCode] = @ClientCode AND CASE WHEN ISNULL(@CLNUMCONTACT, 0) = 0 THEN 1 WHEN [CLC].[CLNUMCONTACT] = @CLNUMCONTACT THEN 1 ELSE 0 END = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchPhoneLog' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchPhoneLog] END GO CREATE PROCEDURE [dbo].[KAAS_FetchPhoneLog] (@SEARCH VARCHAR(100) = '', @SearchText VARCHAR(4000) = NULL, @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /********************************************************************************** * Description: This procedure is used to load the data for Phonelog page Grid. * * Stored Procedure Name : [KAAS_FetchPhoneLog] * Copied From : [ky_NETFetchPhoneLog] * * Modification History: * 2014-06-19 Created * 2014-07-09 Pino Carafa Performance Improvement * 2014-08-20 Pino Carafa Matter [Closed] Column * 2015-05-28 Pino Carafa Apply TOP 1200 when inserting * Get 1200 rows at first to cater for recently * closed matters * Then get top 1000 when selecting * * Fetch the Additional information * Casecode,Description,Client Name. * 2015-07-23 Sridharan KEYD-2491 ERROR when viewing case diary * 2015-09-30 Sridharan KEYD-2664 Caller added to Column Chooser * in the Phone Log * 2016-08-23 Pino Carafa Re-write. Added @SEARCH parameter * 2016-08-24 Pino Carafa Use TOP (1000) for VERY short Search strings * 2019-01-11 Vinodhan Created KAAS_FetchPhoneLog * 2021-12-01 Aakif Added priority column as numeric value to support * sorting in DevExtreme grid * 2022-21-09 Ghayathri.S.V Included caller column in search condition * 2023-02-15 Ghayathri.S.V Modifed the order by clause for sorting condition **********************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(ISNULL(@SortDirection, '') = '' OR RTRIM(LTRIM(@SortDirection)) = '') BEGIN SET @SortDirection = 'ASC' END DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = ' DECLARE @RES TABLE ([ActionID] INT NOT NULL PRIMARY KEY CLUSTERED, [DATE] DATETIME NOT NULL, [TIME] VARCHAR(5) NOT NULL) DECLARE @MATZ TABLE ([CASECODE] VARCHAR(20) NOT NULL PRIMARY KEY CLUSTERED) DECLARE @TODAY DATETIME SET @TODAY = CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112)) SET @SEARCH = RTRIM(ISNULL(@SEARCH, '''')) IF (@SEARCH = '''') BEGIN INSERT INTO @RES ([ActionID], [DATE], [TIME]) SELECT TOP (1000) [DIA].[ActionID], [DIA].[DATE], '''' FROM [dbo].[Diary] [DIA] INNER JOIN [dbo].[SearchMatters] [SM] ON [SM].[Code] = [DIA].[CASECODE] AND [SM].[Closed] = 0 WHERE [DIA].[Actiontype] = ''T'' ORDER BY [DIA].[DATE] DESC OPTION (KEEPFIXED PLAN) END ELSE BEGIN SET @SEARCH = REPLACE(''%'' + @SEARCH + ''%'', ''%%'', ''%'') INSERT INTO @MATZ ([CASECODE]) SELECT [SM].[Code] FROM [dbo].[SearchMatters] [SM] WHERE [SM].[Code] LIKE @SEARCH OR [SM].[Name] LIKE @SEARCH OR [SM].[Description] LIKE @SEARCH OPTION (KEEPFIXED PLAN) IF LEN(@SEARCH) < 4 BEGIN INSERT INTO @RES ([ActionID], [DATE], [TIME]) SELECT TOP (1000) [DIA].[ActionID], [DIA].[DATE], '''' FROM [dbo].[Diary] [DIA] INNER JOIN [dbo].[SearchMatters] [SM] ON [SM].[Code] = [DIA].[CASECODE] WHERE [DIA].[Actiontype] = ''T'' AND [DIA].[SUBJECT] LIKE @SEARCH ORDER BY [DIA].[DATE] DESC OPTION (KEEPFIXED PLAN) END ELSE BEGIN INSERT INTO @RES ([ActionID], [DATE], [TIME]) SELECT [DIA].[ActionID], [DIA].[DATE], '''' FROM [dbo].[Diary] [DIA] INNER JOIN [dbo].[SearchMatters] [SM] ON [SM].[Code] = [DIA].[CASECODE] WHERE [DIA].[Actiontype] = ''T'' AND [DIA].[SUBJECT] LIKE @SEARCH OPTION (KEEPFIXED PLAN) END INSERT INTO @RES ([ActionID], [DATE], [TIME]) SELECT TOP (1000) [DIA].[ActionID], [DIA].[DATE], '''' FROM [dbo].[Diary] [DIA] INNER JOIN [dbo].[SearchMatters] [SM] ON [SM].[Code] = [DIA].[CASECODE] LEFT OUTER JOIN @RES [RES] ON [RES].[ActionID] = [DIA].[ACTIONID] WHERE [DIA].[Actiontype] = ''T'' AND CONVERT(VARCHAR(500), SUBSTRING([DIA].[TEXT1], 1, 500)) LIKE @SEARCH AND [RES].[ActionID] IS NULL ORDER BY [DIA].[DATE] DESC INSERT INTO @RES ([ActionID], [DATE], [TIME]) SELECT [DIA].[ActionID], [DIA].[DATE], '''' FROM [dbo].[Diary] [DIA] INNER JOIN @MATZ [SM] ON [SM].[CASECODE] = [DIA].[CASECODE] LEFT OUTER JOIN @RES [RES] ON [RES].[ActionID] = [DIA].[ACTIONID] WHERE [DIA].[Actiontype] = ''T'' AND [RES].[ActionID] IS NULL OPTION (KEEPFIXED PLAN) END UPDATE [RES] SET RES.[TIME] = CONVERT(VARCHAR(5), DATEADD(ms, 10 * ISNULL(CASE WHEN ISNUMERIC(DIA.[DYSTARTTIME]) = 1 THEN DIA.[DYSTARTTIME] ELSE dbo.KAAS_ConvertTimeToClarion(DIA.[DYSTARTTIME]) END, 0), @TODAY), 108) FROM @RES [RES] INNER JOIN [dbo].[diary] [DIA] ON [DIA].[ACTIONID] = [RES].[ActionID] OPTION (KEEPFIXED PLAN) SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #PhoneLogTable FROM (SELECT TOP (1000) RTRIM(ISNULL(DIA.[STATUS], '''')) AS [Status], RTRIM(ISNULL(DIA.[PRIORITY], ''N'')) AS [Priority], CASE WHEN (RTRIM(ISNULL(DIA.[PRIORITY], '''')) = ''H'') THEN 2 WHEN (RTRIM(ISNULL(DIA.[PRIORITY], '''')) = ''N'') THEN 1 WHEN (RTRIM(ISNULL(DIA.[PRIORITY], '''')) = ''L'') THEN 0 ELSE 0 END AS [PriorityValue], CONVERT(NVARCHAR(30), DIA.[DATE],23) AS [Date], RES.[TIME] AS [Time], RTRIM(ISNULL(DIA.[FNCode], '''')) AS [Who], RTRIM(ISNULL(DIA.[DisplayText], '''')) AS [Message], RTRIM(ISNULL(DIA.[ActionID], '''')) AS [ActionId], RTRIM(ISNULL(DIA.[CaseCode], '''')) AS [CaseCode], [SM].[Description] AS [Description], [SM].[Name] AS [Name], RTRIM(ISNULL([DIA].[Subject], '''')) AS [Caller] FROM @RES [RES] INNER JOIN [dbo].[diary] [DIA] INNER JOIN [dbo].[SearchMatters] [SM] ON [SM].[Code] = [DIA].[CASECODE] ON [DIA].[ACTIONID] = [RES].[ActionID]) AS FoundTable WHERE -- Search filters ( (RTRIM(LTRIM(ISNULL(@SearchText, ''''))) = '''') OR (RTRIM(LTRIM(@SearchText)) = '''') OR ( [CaseCode] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [Date] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [Name] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [Who] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [Message] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [Description] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' OR [Caller] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%'' ) )' IF ((ISNULL(@SortColumn, '') = '') OR (@SortColumn = '') OR (ISNULL(@SortDirection, '') = '') OR (@SortDirection = '')) BEGIN SET @NCOMMAND = @NCOMMAND + 'ORDER BY [FoundTable].[DATE] DESC, [FoundTable].[TIME] DESC, [FoundTable].[ACTIONID] DESC' END ELSE BEGIN SET @NCOMMAND = @NCOMMAND + 'ORDER BY CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Status'' THEN [Status] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Status'' THEN [Status] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''PriorityValue'' THEN [PriorityValue] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''PriorityValue'' THEN [PriorityValue] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Date'' THEN [Date] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Date'' THEN [Date] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Date'' THEN [Time] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Date'' THEN [Time] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Date'' THEN CAST([ActionId] AS INT) END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Date'' THEN CAST([ActionId] AS INT) END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Who'' THEN [Who] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Who'' THEN [Who] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Message'' THEN [Message] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Message'' THEN [Message] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''ActionId'' THEN CAST([ActionId] AS INT) END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''ActionId'' THEN CAST([ActionId] AS INT) END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''CaseCode'' THEN [CaseCode] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''CaseCode'' THEN [CaseCode] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Description'' THEN [Description] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Description'' THEN [Description] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Name'' THEN [Name] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Name'' THEN [Name] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Caller'' THEN [Caller] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Caller'' THEN [Caller] END END DESC ' END SET @NCOMMAND = @NCOMMAND + ' SELECT * FROM #PhoneLogTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #PhoneLogTable OPTION (KEEPFIXED PLAN)' EXECUTE SP_EXECUTESQL @NCOMMAND, N'@SEARCH VARCHAR(100), @SearchText VARCHAR(4000), @StartRow INT, @EndRow INT, @SortColumn VARCHAR(50), @SortDirection VARCHAR(10)', @SEARCH = @SEARCH, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow, @SortColumn = @SortColumn, @SortDirection = @SortDirection SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchSameEmailAssociates' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchSameEmailAssociates] END GO CREATE PROCEDURE KAAS_FetchSameEmailAssociates ( @Email VARCHAR(100), @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL ) AS /******************************************************************************************************* Stored Procedure Name : KAAS_FetchSameEmailAssociates Copied From : Ky_NETFetchSameEmailAssociates This procedure is used to fetch the case associate where same email addres. Last Updated: 23 MAY 2016 Suriya M KEYD-3384-Case Associate check for Duplication on insert (email address) 04 Jun 2019 Vinodhan K Created KAAS_FetchSameEmailAssociates ********************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT ASY.CODE AS [Code], ISNULL(ASY.[Description],'') AS [Description], CASE WHEN RTRIM(ISNULL([CAN].[COMPANY], '')) = '' THEN RTRIM(ISNULL([CAN].[NAME], '')) ELSE LTRIM(RTRIM(ISNULL([CAN].[NAME], '')) + ' (' + RTRIM(ISNULL([CAN].[COMPANY], '')) + ')') END AS [NMCMP], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CAN].[ADDRESS], '')), 200) AS [Address], RTRIM(ISNULL([CAN].[PHONENO], '')) AS [PhoneNo], RTRIM(ISNULL([CAN].[EMAIL], '')) AS [Email], RTRIM(ISNULL([CAN].[COMPANY], '')) AS [Company], RTRIM(ISNULL([CAN].[MOBILENO], '')) AS [MobileNo], RTRIM(ISNULL([CAN].[NAME], '')) AS [Name], RTRIM(CAN.CODE) AS [NameCode] FROM [CaseAssociatesNames] [CAN] INNER JOIN [dbo].[CaseAssoicatesTypes] CAT INNER JOIN [dbo].[AssociateTypes] ASY ON ASY.[CODE] = CAT.[TYPECODE] ON CAT.[NAMECODE] = CAN.[CODE] WHERE UPPER(RTRIM(EMAIL)) = UPPER(RTRIM(@Email)) AND ( [ASY].[CODE] LIKE '%' + @SearchText + '%' OR ISNULL(ASY.[Description],'') LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([CAN].[COMPANY], '')) LIKE '%' + @SearchText + '%' OR LTRIM(RTRIM(ISNULL([CAN].[NAME], ''))) LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([CAN].[COMPANY], '')) LIKE '%' + @SearchText + '%' OR [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CAN].[ADDRESS], '')), 200) LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([CAN].[PHONENO], '')) LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([CAN].[EMAIL], '')) LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([CAN].[COMPANY], '')) LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([CAN].[MOBILENO], '')) LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([CAN].[NAME], '')) LIKE '%' + @SearchText + '%' OR RTRIM(CAN.CODE) LIKE '%' + @SearchText + '%' )) AS FoundTable SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Row_Number' THEN [Row_Number] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Row_Number' THEN [Row_Number] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Code' THEN [Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'NMCMP' THEN [NMCMP] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'NMCMP' THEN [NMCMP] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'PhoneNo' THEN [PhoneNo] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'PhoneNo' THEN [PhoneNo] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Email' THEN [Email] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Email' THEN [Email] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Company' THEN [Company] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Company' THEN [Company] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'MobileNo' THEN [MobileNo] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'MobileNo' THEN [MobileNo] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'NameCode' THEN [NameCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'NameCode' THEN [NameCode] END END DESC SELECT (COUNT([Row_Number])) FROM #FoundTable SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchTasksAction',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchTasksAction] GO CREATE PROCEDURE [dbo].[KAAS_FetchTasksAction] (@ActionID INT) AS /******************************************************************************************************* * * * To load the data in Add Action for Client Case Page. * * * * Stored Procedure Name : [dbo].[KAAS_FetchTasksAction] * * Copied from : [dbo].[ky_NETFetchTasksAction] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * * 2019-01-07 Vinodhan k Added Department to team list * * 2022-07-13 VinodhKumar M Updated Alias names from Upper case to Pascal Case * * * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Status AS VARCHAR(10) DECLARE @Team AS VARCHAR(10) SET @Status = (SELECT [ACTIONSTATUS] FROM [diary] WHERE [ACTIONID] = @ActionID) SET @Team = (SELECT [TEAMCODE] FROM [diary] WHERE [ACTIONID] = @ActionID) --Fee Earner SELECT RTRIM(ISNULL(UPPER(HAN.[CODE]), '')) AS [Code], RTRIM(ISNULL(HAN.[NAME], '')) AS [Name], RTRIM(ISNULL(HAN.[TEAM], '')) AS [Team] FROM [Handlers] HAN WHERE ISNULL(HAN.[RETIRED], 'N') <> 'Y' --AND ISNULL(TEAMCODE,'N') <> 'Y' ORDER BY RTRIM(ISNULL(HAN.[CODE], '')) --Team SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [Code], RTRIM(ISNULL(HAN.[NAME], '')) AS [Name], RTRIM(ISNULL(HAN.[DEPT], '')) AS [Dept] FROM [Handlers] HAN WHERE ISNULL(HAN.[TEAMCODE], '') <> '' AND [TEAMCODE] != 'N' AND (ISNULL(HAN.[RETIRED],'N') <> 'Y' OR HAN.[CODE] = @Team) ORDER BY RTRIM(ISNULL(HAN.[CODE], '')) --Status Code SELECT RTRIM(ISNULL(S.[CODE], '')) AS [Code], RTRIM(ISNULL(S.[DESCRIPTION], '')) AS [Description] FROM [StatusCodes] S WHERE ISNULL([Retired],'N') = 'N' OR [CODE] = @Status --Flag SELECT [ActionFlagID] AS [ActionFlagId], RTRIM(ISNULL([Description],'')) AS [Description] FROM [ActionFlag] WHERE [IsActive] = 1 ORDER BY [ActionFlagID] SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchTemplateLibrary]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchTemplateLibrary] GO CREATE PROCEDURE [KAAS_FetchTemplateLibrary] ( @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(20) = NULL, @SortDirection VARCHAR(4) = NULL) /******************************************************************************************************* * This stored procedure is used to Fetch the information for template library grid. * * * * Stored Procedure Name : [dbo].[KAAS_FetchTemplateLibrary] * * Copied from : [dbo].[ky_NETFetchTemplateLibrary] * * * * Modification History : * * 11 SEP 2015 - Sridharan - KEYD-2553 - Retire Case plans * * 18Feb2016 ARUN Have changed the square brackets instead of double quote * * 2019-10-30 Dheepin Vijith Created * * 2019-10-30 Dheepin Vijith Searching , Sorting , Pagination added. * * 2021-07-26 Aakif Used proper concatenation in dynamic query to avoid SQL injection * * 2022-03-10 Aakif Modified char length for Sort parameters to avoid SQL injection * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON DECLARE @COMMAND NVARCHAR(MAX) DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = '' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = '' END SET @COMMAND = ' SELECT IDENTITY(INT, 1,1) AS [RowNumber], * INTO #MyTemplateTable FROM (SELECT RTRIM(ISNULL(TEM.WKDESC,'''')) AS WorkFlow, RTRIM(ISNULL(TEMD.CODE,'''')) AS DocumentCode, RTRIM(ISNULL(TEMD.NAME, '''')) AS DocumentName, RTRIM(ISNULL(TEMD.DOCCLASS, '''')) AS DClass, RTRIM(ISNULL(DocumentClasses.CLASSDESCRIPTION, '''')) AS DocumentClass, RTRIM(ISNULL(TEMD.[TYPE], '''')) AS DocumentType, RTRIM(ISNULL(TEMD.FILEPATH, '''' )) AS FilePath FROM Templates TEM INNER JOIN TemplateDocuments TEMD INNER JOIN TemplateActionDcouments on TEMD.CODE = TemplateActionDcouments.DOCUMENT INNER JOIN ActionWorkTypes INNER JOIN TemplateActions on ActionWorkTypes.ACTIONCODE = TemplateActions.ACTIONCODE on TemplateActionDcouments."ACTION" = TemplateActions.ACTIONCODE on TEM.WKCODE = ActionWorkTypes.WORKTYPE Left OUTER JOIN DocumentClasses on TEMD.DOCCLASS = DocumentClasses.CLASSCODE WHERE TEM.Retired = ''N'' AND ( TEM.WKDESC LIKE ''%'' + @SearchText + ''%'' OR TEMD.CODE LIKE ''%'' + @SearchText + ''%'' OR TEMD.NAME LIKE ''%'' + @SearchText + ''%'' OR TEMD.DOCCLASS LIKE ''%'' + @SearchText + ''%'' OR DocumentClasses.CLASSDESCRIPTION LIKE ''%'' + @SearchText + ''%'' OR TEMD.[TYPE] LIKE ''%'' + @SearchText + ''%'' OR TEMD.FILEPATH LIKE ''%'' + @SearchText + ''%'' )) AS MyTemplateTable ORDER BY CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''WorkFlow'' THEN WorkFlow END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''WorkFlow'' THEN WorkFlow END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''DocumentCode'' THEN DocumentCode END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''DocumentCode'' THEN DocumentCode END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''DocumentName'' THEN DocumentName END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''DocumentName'' THEN DocumentName END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''DClass'' THEN DClass END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''DClass'' THEN DClass END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''DocumentClass'' THEN DocumentClass END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''DocumentClass'' THEN DocumentClass END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''DocumentType'' THEN DocumentType END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''DocumentType'' THEN DocumentType END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''FilePath'' THEN FilePath END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''FilePath'' THEN FilePath END END DESC SELECT * FROM #MyTemplateTable WHERE ( @StartRow IS NULL OR ( [RowNumber] BETWEEN @StartRow AND @EndRow ) ) SELECT COUNT([RowNumber]) AS TotalRecords FROM #MyTemplateTable' EXEC sp_executesql @COMMAND, N'@SearchText VARCHAR(4000), @StartRow INT, @EndRow INT, @SortColumn VARCHAR(50), @SortDirection VARCHAR(10)', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow, @SortColumn = @SortColumn, @SortDirection = @SortDirection SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchTimeEntry',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchTimeEntry] GO CREATE PROCEDURE [dbo].[KAAS_FetchTimeEntry] (@CaseCode VARCHAR(20)) AS /******************************************************************************************************* * This procedure is used to get net Action Code based on the given Action ID. * * * * Stored Procedure Name : [dbo].[KAAS_FetchTimeEntry] * * Copied from : [dbo].[ky_NETTLFetchTimeEntry3] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * * 2019-04-24 Vinodhan K TimeInHours Format modified to be dispalyed as '00:00' format * * 2020-05-04 Arun V Have corrected the Writeoff MInutes calculation issue. KEYHM-574 * * 2020-05-04 Arun V Have corrected the Writeoff Value TimeInCharge value make it as ABS, * * In UI, negative value is handled and added minus in Front END * * KEYHM-574 * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @IsSAM4 bit DECLARE @TimeEntryTotalCharge DECIMAL(19, 2) DECLARE @TimeEntryTotalTime INT DECLARE @TotalCharge Decimal(19, 2) DECLARE @TotalTime INT DECLARE @TimeBal INT DECLARE @ChargeBal DECIMAL(19, 2) DECLARE @ChargeableBal DECIMAL(19, 2) DECLARE @NonChargeableBal DECIMAL(19, 2) DECLARE @NonChargeableTimeBal INT DECLARE @ChargeableTimeBal INT DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @TotalFeesIssued DECIMAL(19, 2) SET @IsSAM4 = [dbo].[ISSAM4]() SELECT TIE.[RecordID] AS [RecordID], RTRIM(ISNULL(HAN.[CODE], '')) AS [HandlerCode], RTRIM(ISNULL(HAN.[NAME], '')) AS [FEEEARN], TIE.[DATE] AS [DATE], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](TIE.[COMMENT], 200) AS [COMMENT], CASE TIE.[TimeOrCharge] WHEN 'T' THEN 'Time' WHEN 'B' THEN 'Bill' WHEN 'C' THEN 'Charge' END AS [TIMEORCHARGE], TIE.[TIME] AS [TIME], CASE WHEN ([TIME] = 0) THEN ('00:00') WHEN ([Time] > 0) THEN CASE WHEN LEN([TIME] / 60) < 2 THEN '0' + CAST([TIME] / 60 AS VARCHAR) ELSE CAST([TIME] / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(5), [TIME] - (60 * ([TIME] / 60))))), 2, 2) WHEN ([TIME] < 0) THEN CASE WHEN LEN([TIME] / 60) < 2 THEN '0' + CAST(ABS([TIME]) / 60 AS VARCHAR) ELSE CAST(ABS([TIME]) / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(5), -[TIME] - (60 * (-[TIME] / 60))))), 2, 2) END AS [TimeInHours], CASE TIE.[Rec_Irr] WHEN 'C' THEN 'Chargeable' WHEN 'N' THEN 'Non-Chargeable' WHEN '' THEN 'Chargeable' END AS [REC_IRR], ISNULL(TIE.[CHARGE], 0.00) AS [CHARGE], ISNULL(TIE.[BILLEDAMOUNT], 0.00) AS [BILLEDAMOUNT], ISNULL(TIE.[INVOICENO], 0) AS [INVOICENO], CASE WHEN TC.[DESC] IS NULL THEN TIE.[TASK] WHEN TC.[DESC] IS NOT NULL THEN TC.[DESC] ELSE '' END AS [TASK], CASE WHEN ISNULL(TIE.[WriteOffID], 0) = 0 THEN '' ELSE CONVERT(VARCHAR(MAX), ISNULL(TIE.[WriteOffID], 0)) END AS [WriteOffID], TIE.[WriteOffDT] AS [WriteOffDT], ISNULL(TIE.[Rate], 0) AS [Rate], ISNULL(TIE.[IncludeInBill], 0) AS [IncludeInBill], CASE WHEN TIE.[TIMEORCHARGE] = 'B' OR TIE.[IncludeInBill] = 2 OR TIE.[Rec_Irr] <> 'C' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[INVOICENO], 0) <> 0 THEN 0 WHEN @IsSAM4 <> 1 THEN ISNULL(TIE.[CHARGE], 0) - ISNULL(TIE.[BILLEDAMOUNT], 0) ELSE ISNULL(TIE.[CHARGE], 0) END AS [WIP], TIE.[Task] AS [TaskCode] FROM [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Matters] MAT ON MAT.[Code] = TIE.[Matter] LEFT OUTER JOIN [dbo].[TasksCodes] TC ON TC.[CODE] = TIE.[Task] LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = TIE.[FeeEarn] WHERE TIE.[Matter] = @CaseCode -- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_CaseSummaryPageLoad. If you change any of these calculations, -- ensure the ones in there are changed as well. SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0), @TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0), @TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Charge], 0) END), 0), @ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0), @NonChargeableBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' AND ISNULL(TIE.[Task], '') <> 'WRI' THEN ISNULL(TIE.[Charge], 0) ELSE 0 END), 0), @ChargeableBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') <> 'N' AND ISNULL(TIE.[Task], '') <> 'WRI' THEN ISNULL(TIE.[Charge], 0) ELSE 0 END), 0), @TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN CASE WHEN TIE.[Charge] = 0 THEN 0 ELSE CONVERT(INT,FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME]) * ((TIE.[Charge] - TIE.[BilledAmount]) / TIE.[Charge]))) END ELSE ISNULL(TIE.[Time], 0) END), 0), @NonChargeableTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' AND ISNULL(TIE.[Task], '') <> 'WRI' THEN ISNULL(TIE.[TIME], 0) ELSE 0 END), 0), @ChargeableTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' OR ISNULL(TIE.[Task], '') = 'WRI' THEN 0 ELSE ISNULL(TIE.[TIME], 0) END), 0), @TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' OR ISNULL(TIE.[Task], '') = 'WRI' THEN 0 ELSE ISNULL(TIE.[Time], 0) END), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @CaseCode AND ((TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun -- PLEASE NOTE THAT THIS MUST BE IDENTICAL TO RESULT SET 10 IN KAAS_CaseSummaryPageLoad. Please -- modify both procedures if this needs to be changed. -- Result Set 10 -- The fees issued to date IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT @TotalFeesIssued = ISNULL(SUM((CASE WHEN HED.[INVCR] = ''I'' THEN TRN.[VALUE] ELSE TRN.[VALUE] * - 1 END)), 0) FROM [dbo].[BatchH] HED INNER JOIN [dbo].[BatchDetails] TRN ON TRN.[BATCHNO] = HED.[BATCHNO] WHERE HED.[MATTER] = @CaseCode AND HED.[POSTED] = ''Y'' AND TRN.[TYPE] = ''I'' AND TRN.[OUTLAY] = ''F''' END ELSE BEGIN SET @NCOMMAND = N' SELECT @TotalFeesIssued = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[TransactionsHeaders] HED INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') WHERE HED.[MatterCode] = @CaseCode --values imported from Axxia SELECT @TotalFeesIssued = @TotalFeesIssued + ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[Transactions] TRN LEFT OUTER JOIN [dbo].[TransactionsHeaders] HED ON HED.[BatchNo] = TRN.[BatchNo] WHERE TRN.[MatterCode] = @CaseCode AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') AND HED.[BatchNo] IS NULL' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TotalFeesIssued DECIMAL(19, 2) OUTPUT', @CaseCode = @CaseCode, @TotalFeesIssued = @TotalFeesIssued OUTPUT /*WIP Calculations*/ SELECT CASE WHEN LEN(@TimeBal / 60) < 2 THEN '0' + CAST(@TimeBal / 60 AS VARCHAR) ELSE CAST(@TimeBal / 60 AS VARCHAR) END AS [WIPHrs], SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeBal - (60 * (@TimeBal / 60))), 2, 2) AS [WIPMins], @ChargeBal AS [WIPAmt] /*Total Record Calculations*/ SELECT CASE WHEN LEN(@TimeEntryTotalTime / 60) < 2 THEN '0' + CAST(@TimeEntryTotalTime / 60 AS VARCHAR) ELSE CAST(@TimeEntryTotalTime / 60 AS VARCHAR) END AS [TotalHours], SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeEntryTotalTime - (60 * (@TimeEntryTotalTime / 60))), 2, 2) AS [TotalMins], @TimeEntryTotalCharge AS [TotalAmt], CASE WHEN LEN(@NonChargeableTimeBal / 60) < 2 THEN '0' + CAST(@NonChargeableTimeBal / 60 AS VARCHAR) ELSE CAST(@NonChargeableTimeBal / 60 AS VARCHAR) END AS [RecNonChargeableHrs], SUBSTRING(CONVERT(VARCHAR(3), 100 + @NonChargeableTimeBal - (60 * (@NonChargeableTimeBal / 60))), 2, 2) AS [RecNonChargeableMins], @NonChargeableBal AS [RecNonChargeableAmt], CASE WHEN LEN(@ChargeableTimeBal / 60) < 2 THEN '0' + CAST(@ChargeableTimeBal / 60 AS VARCHAR) ELSE CAST(@ChargeableTimeBal / 60 AS VARCHAR) END AS [RecChargeableHrs], SUBSTRING(CONVERT(VARCHAR(3), 100 + @ChargeableTimeBal - (60 * (@ChargeableTimeBal / 60))), 2, 2) AS [RecChargeableMins], @ChargeableBal AS [RecChargeableAmt], CASE WHEN LEN((@ChargeableTimeBal + @NonChargeableTimeBal) / 60) < 2 THEN '0' + CAST((@ChargeableTimeBal + @NonChargeableTimeBal) / 60 AS VARCHAR) ELSE CAST((@ChargeableTimeBal + @NonChargeableTimeBal) / 60 AS VARCHAR) END AS [RecTotalHrs], SUBSTRING(CONVERT(VARCHAR(3), 100 + (@ChargeableTimeBal + @NonChargeableTimeBal) - (60 * ((@ChargeableTimeBal + @NonChargeableTimeBal) / 60))), 2, 2) AS [RecTotalMins], @ChargeableBal + @NonChargeableBal AS [RecTotalAmt], @TotalFeesIssued AS [TotalBilled], @TotalFeesIssued - (@ChargeableBal + @NonChargeableBal) AS [ProfitLoss] -- Current Profit/Loss = TotalBilled - RecTotalAmt; /*Write Off Calculations*/ SELECT CASE WHEN TIES.[WriteOffTime] > 0 THEN '-' ELSE '' END + CASE WHEN LEN(TIES.[WriteOffTime] / 60) < 2 THEN '0' + CAST(TIES.[WriteOffTime] / 60 AS VARCHAR) ELSE CAST(TIES.[WriteOffTime] / 60 AS VARCHAR) END AS [WOHrs], CONVERT(VARCHAR(5), (TIES.[WriteOffTime] % 60)*-1) AS [WOMins], ---TIES.[WriteOffTime] / 60 AS [WOHrs], ---TIES.[WriteOffTime] % 60 AS [WOMins], TIES.[WriteOffValue] As [WOAmt] FROM (SELECT ISNULL(SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))), 0) AS [WriteOffValue], ISNULL(SUM(ISNULL(TIE.[Time], 0)), 0) AS [WriteOffTime] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[MATTER] = MAT.[Code] WHERE TIE.[MATTER] = @CaseCode AND ((TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) AND TIE.[Task] = 'WRI') TIES /*Total Billed Amount Calculations */ ------ Commented out as reversed KEYD-3657 --IF @IsSAM4 = 0 -- SELECT ISNULL(SUM(ISNULL([TIE].[BilledAmount], 0)), 0) AS [TotalBill] -- FROM [dbo].[TimeEntry] [TIE] -- WHERE [TIE].[Matter] = @CaseCode --ELSE -- SELECT @TotalFeesIssued AS [TotalBill] -- FROM [dbo].[TimeEntry] [TIE] -- WHERE [TIE].[Matter] = @CaseCode DECLARE @DraftBillValue DECIMAL(18, 2) SET @IsSAM4 = [dbo].[ISSAM4]() IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0) FROM [dbo].[BillHeader] HED INNER JOIN [dbo].[BillDetails] BD ON BD.[DRAFTNO] = HED.[DRAFTNO] WHERE HED.[MATTER] = @CaseCode AND HED.[BILLNO] = 0' END ELSE BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0) FROM [dbo].[BillHead] HED INNER JOIN [dbo].[BillDetail] BD ON BD.[BillID] = HED.[BillingID] WHERE HED.[MatterCode] = @CaseCode AND HED.[BillStatus] <> ''Approved'' AND ISNULL(HED.[ProForma], '''') = ''Y''' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @CaseCode = @CaseCode, @DraftBillValue=@DraftBillValue OUTPUT DECLARE @Section68 VARCHAR(10) DECLARE @IsApproved VARCHAR(10) DECLARE @CSTimeBal INT DECLARE @CSChargeBal DECIMAL(19, 2) DECLARE @CSTotalCharge Decimal(19, 2) DECLARE @CSTotalTime INT --Matter values that are re-used elsewhere in this procedure. SELECT @Section68 = ISNULL(MAT.[Section68],''), @IsApproved = ISNULL(CON.[Approved],'') FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE MAT.[Code] = @CaseCode DECLARE @LDIADATE DATETIME DECLARE @LDIAACTIONTYPE VARCHAR(1) DECLARE @LDIATEXT1 VARCHAR(MAX) DECLARE @LDIAFNCODE VARCHAR(10) DECLARE @LDIAFNNAME VARCHAR(50) SELECT TOP 1 @LDIADATE = LDIA.[DATE], @LDIAACTIONTYPE = LDIA.[ACTIONTYPE], @LDIATEXT1 = LDIA.[TEXT1], @LDIAFNCODE = LDIA.[FNCODE], @LDIAFNNAME = [FEC].[Name] FROM [dbo].[diary] LDIA INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON LDIA.FNCODE = [FEC].[CODE] WHERE LDIA.[CASECODE] = @CaseCode ORDER BY LDIA.[DATE] DESC DECLARE @MDIADATE DATETIME DECLARE @MDIAACTIONTYPE VARCHAR(1) DECLARE @MDIATEXT1 VARCHAR(MAX) DECLARE @MDIAFNCODE VARCHAR(10) DECLARE @MDIAFNNAME VARCHAR(50) SELECT TOP 1 @MDIADATE= MDIA.[DATE], @MDIAACTIONTYPE = MDIA.[ACTIONTYPE], @MDIATEXT1 = MDIA.[TEXT1], @MDIAFNCODE = MDIA.[FNCODE], @MDIAFNNAME = [FEC].[Name] FROM [dbo].[diary] MDIA INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON MDIA.FNCODE = [FEC].[CODE] WHERE MDIA.[CASECODE] = @CaseCode AND MDIA.[HIGHLIGHTED] = 'Y' ORDER BY MDIA.[DATE] DESC DECLARE @NDIADATE DATETIME DECLARE @NDIAACTIONTYPE VARCHAR(1) DECLARE @NDIATEXT1 VARCHAR(MAX) DECLARE @NDIAFNCODE VARCHAR(10) DECLARE @NDIAFNNAME VARCHAR(50) SELECT TOP 1 @NDIADATE = NDIA.[DATE], @NDIAACTIONTYPE = NDIA.[ACTIONTYPE], @NDIATEXT1 = NDIA.[TEXT1], @NDIAFNCODE = NDIA.[FNCODE], @NDIAFNNAME = [FEC].[Name] FROM dbo.[diary] NDIA INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON NDIA.FNCODE = [FEC].[CODE] WHERE NDIA.[CASECODE] = @CaseCode AND NDIA.[STATUS] = 0 ORDER BY NDIA.[DATE] ASC DECLARE @TIEDATE DATETIME --Pino 2015-05-27 Start --SELECT @TIEDATE = (MAX(TIE.[DATE])) -- FROM [dbo].[TimeEntry] TIE -- WHERE TIE.[Matter] = @CaseCode IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL THEN CONVERT(DATETIME, NULL) WHEN DLG.[DATE] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE DLG.[DATE] END) FROM [dbo].[DebtorsLedger] DLG WHERE DLG.[MATTER] = @CaseCode' END ELSE BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL THEN CONVERT(DATETIME, NULL) WHEN TRN.[TransDate] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE TRN.[TransDate] END) FROM [dbo].[Transactions] TRN WHERE TRN.[Posted] = ''Y'' AND TRN.[MatterCode] = @CaseCode AND TRN.[DebtorsValue] <> 0 AND TRN.[CorrectionInd] = ''L'' AND ( ( TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'') OR ( TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @CaseCode = @CaseCode, @TIEDATE = @TIEDATE OUTPUT --Pino 2015-05-27 End DECLARE @LastTimeEntryDate DATETIME DECLARE @LastTimeEntryTime INT DECLARE @LastTimeEntryRate DECIMAL(10, 2) DECLARE @LastTimeEntryCharge DECIMAL(10, 2) DECLARE @LastTimeEntryTask VARCHAR(6) DECLARE @LastTimeEntryComment VARCHAR(1000) DECLARE @LastTimeEntryFE VARCHAR(10) DECLARE @LastTimeEntryFEName VARCHAR(50) DECLARE @CSTimeEntryTotalCharge DECIMAL(19, 2) DECLARE @CSTimeEntryTotalTime INT SELECT TOP (1) @LastTimeEntryDate = TIE.[DATE], @LastTimeEntryTime = TIE.[Time], @LastTimeEntryRate = TIE.[Rate], @LastTimeEntryCharge = TIE.[Charge], @LastTimeEntryTask = TIE.[Task], @LastTimeEntryComment = TIE.[Comment], @LastTimeEntryFE = TIE.[FeeEarn], @LastTimeEntryFEName = [FEC].[Name] FROM [dbo].[TimeEntry] TIE INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON [TIE].[FeeEarn] = [FEC].[CODE] WHERE TIE.[Matter] = @CaseCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun ORDER BY TIE.[Date] DESC, TIE.[Time] DESC SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0) SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0) -- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. SELECT @CSTimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0), @CSTimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0), @CSTotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Charge], 0) END), 0), @CSChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0), @CSTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN CASE WHEN TIE.[Charge] = 0 THEN 0 ELSE CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME]) * ( (TIE.[Charge] - TIE.[BilledAmount]) / TIE.[Charge]))) END ELSE ISNULL(TIE.[Time], 0) END), 0), @CSTotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Time], 0) END), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @CaseCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun DECLARE @DebtBal DECIMAL(19, 2) DECLARE @OutlayBal DECIMAL(19, 2) DECLARE @DebtBalDate DATETIME DECLARE @OutlayBalDate DATETIME DECLARE @ClientCurrent DECIMAL(19, 2) DECLARE @ClientDeposit DECIMAL(19, 2) -- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- -- To ensure SAM3 will retrieve these from [dbo].[matters] SET @DebtBal = 0 SET @OutlayBal = 0 SET @ClientCurrent = 0 SET @ClientDeposit = 0 IF @IsSAM4 = 1 BEGIN SET @NCOMMAND = N' SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)), @DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)), @OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)), @ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0)) FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @CaseCode AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] = ''L''' EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @DebtBal DECIMAL(19, 2) OUTPUT, @DebtBalDate DATETIME OUTPUT, @OutlayBal DECIMAL(19, 2) OUTPUT, @OutlayBalDate DATETIME OUTPUT, @ClientCurrent DECIMAL(19, 2) OUTPUT, @ClientDeposit DECIMAL(19, 2) OUTPUT', @CaseCode = @CaseCode, @DebtBal = @DebtBal OUTPUT, @DebtBalDate = @DebtBalDate OUTPUT, @OutlayBal = @OutlayBal OUTPUT, @OutlayBalDate = @OutlayBalDate OUTPUT, @ClientCurrent = @ClientCurrent OUTPUT, @ClientDeposit = @ClientDeposit OUTPUT END --Result Set 1 --WIP SELECT TIES.[FeeEarn] AS [FeeEarn], TIES.[NAME] AS [Name], CASE WHEN LEN(TIES.[TOTALTIME] / 60) < 2 THEN '0' + CAST(TIES.[TOTALTIME] / 60 AS VARCHAR) ELSE CAST(TIES.[TOTALTIME] / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [FETotalHours], TIES.[Charge] AS [FECharge], TIES.[ChargeBal] AS [FEChargeBal], CASE WHEN LEN(TIES.[WIPTOTALTIME] / 60) < 2 THEN '0' + CAST(TIES.[WIPTOTALTIME] / 60 AS VARCHAR) ELSE CAST(TIES.[WIPTOTALTIME] / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[WIPTOTALTIME] % 60)), 2, 2) AS [FEWIPHours] FROM ( SELECT TIE.[FeeEarn] AS [FeeEarn], HAN.[NAME] AS [NAME], ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME], SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Charge], SUM(CONVERT(DECIMAL(18, 2), CASE WHEN @IsSAM4 = 1 AND TIE.[InvoiceNo] <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) ELSE ISNULL(TIE.[Charge], 0) END)) AS [ChargeBal], CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), ISNULL(SUM(CASE WHEN @IsSAM4 = 1 AND [TIE].[InvoiceNo] <> 0 THEN 0 WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0 THEN 0 ELSE TIE.[TIME] END) , 0)) * CASE WHEN SUM(CONVERT(DECIMAL(18, 2), CASE WHEN @IsSAM4 = 1 AND [TIE].[InvoiceNo] <> 0 THEN 0 WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0 THEN 0 ELSE TIE.[Charge] END)) = 0 THEN 0 ELSE SUM(CONVERT(DECIMAL(18, 2), CASE WHEN @IsSAM4 = 1 AND TIE.[InvoiceNo] <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) ELSE ISNULL(TIE.[Charge], 0) END)) / SUM(CONVERT(DECIMAL(18, 2), CASE WHEN @IsSAM4 = 1 AND [TIE].[InvoiceNo] <> 0 THEN 0 WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0 THEN 0 ELSE TIE.[Charge] END)) END)) AS [WIPTOTALTIME] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[MATTER] = MAT.[Code] INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = TIE.[FeeEarn] WHERE TIE.[MATTER] = @CaseCode AND TIE.[DATE] < GETDATE() AND ((TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun AND TIE.[REC_IRR] <> 'N' GROUP BY TIE.[FEEEARN], HAN.[NAME]) TIES ORDER BY TIES.[ChargeBal] DESC, TIES.[TOTALTIME] DESC --Result Set 4 --Activity to Date SELECT TIES.[Activity], CASE WHEN TIES.[TOTALTIME] < 0 THEN '-' ELSE '' END + CASE WHEN LEN(TIES.[TOTALTIME] / 60) < 2 THEN '0' + CAST(TIES.[TOTALTIME] / 60 AS VARCHAR) ELSE CAST(TIES.[TOTALTIME] / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (ABS(TIES.[TOTALTIME]) % 60)), 2, 2) AS [ActivityToDateTime], TIES.[Value] AS [ActivityToDateValue] FROM ( SELECT TIE.[TASK] AS [Task], CASE WHEN TSC.[DESC] IS NULL THEN 'Task Code: ' + ISNULL(TIE.[TASK], '') ELSE RTRIM(ISNULL(TSC.[DESC],'')) END AS [Activity], ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME], SUM( CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[TasksCodes] TSC ON TSC.[CODE] = TIE.[Task] ON TIE.[MATTER] = MAT.[Code] WHERE TIE.[MATTER] = @CaseCode AND TIE.[DATE] < GETDATE() AND ((TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun AND TIE.[REC_IRR] <> 'N' AND TIE.[Task] <> 'WRI' GROUP BY TIE.[TASK], CASE WHEN TSC.[DESC] IS NULL THEN 'Task Code: ' + ISNULL(TIE.[TASK], '') ELSE RTRIM(ISNULL(TSC.[DESC],'')) END) TIES ORDER BY TIES.[Value] DESC, TIES.[TOTALTIME] DESC --Result Set 6 --Total Time [Activity] SELECT CASE WHEN LEN(TIES.[TOTALTIME] / 60) < 2 THEN '0' + CAST(TIES.[TOTALTIME] / 60 AS VARCHAR) ELSE CAST(TIES.[TOTALTIME] / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [ActivityTotalTime], TIES.[Value] AS [ActivityTotalValue] FROM ( SELECT ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME], SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[MATTER] = MAT.[Code] WHERE TIE.[MATTER] = @CaseCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) AND TIE.[TASK] <> 'WRI') TIES --Result Set 0 --Matter Data SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code], RTRIM(ISNULL(MAT.[Description], '')) AS [Description], RTRIM(ISNULL(MAT.[ClientCode], '')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '')) AS [CLName], RTRIM(ISNULL(CLT.[CLADDR], '')) AS [CLAddr], RTRIM(ISNULL(MAT.[FECode], '')) AS [FECode], RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName], RTRIM(ISNULL(MAT.[Dept], '')) AS [Dept], RTRIM(ISNULL(DPT.[DESC], '')) AS [Desc], RTRIM(MAT.WType) AS [WType], RTRIM(ISNULL(WKT.[DESC], '')) AS [WorkType], MAT.[Started] AS [Started], MAT.[EstFee] AS [EstFee], MAT.[ExpBillD] AS [ExpBillD], CONVERT(DECIMAL(19, 2), CASE WHEN @DebtBal <> 0 THEN @DebtBal ELSE ISNULL(MAT.[DebtBal], 0) END) AS [DebtBal], CONVERT(DECIMAL(19, 2), CASE WHEN @OutlayBal <> 0 THEN @OutlayBal ELSE ISNULL(MAT.[OutlayBal], 0) END) AS [OutlayBal], MAT.[OutlayBud] AS [OutlayBud], CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0 THEN @ClientCurrent + @ClientDeposit WHEN @ClientDeposit <> 0 THEN @ClientCurrent + @ClientDeposit ELSE ISNULL(MAT.[ClientBal], 0) END) AS [ClientBal], CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0 THEN @ClientCurrent ELSE ISNULL(MAT.[ClientCurBal], 0) END) AS [ClientCurBal], CONVERT(DECIMAL(19, 2), CASE WHEN @ClientDeposit <> 0 THEN @ClientDeposit ELSE ISNULL(MAT.[ClientDepBal], 0) END) AS [ClientDepBal], MAT.[StatuteLimits] AS [StatuteLimits], RTRIM(ISNULL(MAT.[User1], '')) AS [User1], RTRIM(ISNULL(MAT.[User2], '')) AS [User2], RTRIM(ISNULL(MAT.[User3], '')) AS [User3], MAT.[Value] AS [Value], @CSTimeBal AS [TimeBal], CASE WHEN LEN(@CSTimeBal / 60) < 2 THEN '0' + CAST(@CSTimeBal / 60 AS VARCHAR) ELSE CAST(@CSTimeBal / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @CSTimeBal) % 60), 2, 2) AS [TimeBalHours], @CSChargeBal AS [ChargeBal], CASE WHEN LEN(@CSTotalTime / 60) < 2 THEN '0' + CAST(@CSTotalTime / 60 AS VARCHAR) ELSE CAST(@CSTotalTime / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @CSTotalTime) % 60), 2, 2) AS [TotalHours], @CSTotalCharge AS [TotalCharge], MAT.[FileColour] AS [FileColour], RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef], RTRIM(ISNULL(MAT.[Status], '')) AS [Status], MAT.[StatuteLimits] AS [StatuteLims], RTRIM(ISNULL(MAT.[Comment], '')) AS [Comment], @DraftBillValue AS [DraftBillTotal], @TIEDATE AS [LastBillDate], @LDIADATE AS [LastActionDate], RTRIM(ISNULL(@LDIAActionType, '')) AS [LastActionType], RTRIM(ISNULL(@LDIATEXT1, '')) AS [LastActionText], RTRIM(ISNULL(@LDIAFNCODE, '')) AS [LastActionFE], RTRIM(ISNULL(@LDIAFNNAME, '')) AS [LastActionFEName], @MDIADATE AS [LastMilestoneDate], RTRIM(ISNULL(@MDIAActionType, '')) AS [LastMilestoneType], RTRIM(ISNULL(@MDIATEXT1, '')) AS [LastMilestoneText], RTRIM(ISNULL(@MDIAFNCODE, '')) AS [LastMilestoneFE], RTRIM(ISNULL(@MDIAFNNAME, '')) AS [LastMilestoneFEName], @NDIADATE AS [NextActionDate], RTRIM(ISNULL(@NDIAActionType, '')) AS [NextActionType], RTRIM(ISNULL(@NDIATEXT1, '')) AS [NextActionText], RTRIM(ISNULL(@NDIAFNCODE, '')) AS [NextActionFE], RTRIM(ISNULL(@NDIAFNNAME, '')) AS [NextActionFEName], @LastTimeEntryDate AS [LastTimeEntryDate], @LastTimeEntryTime AS [LastTimeEntryTime], @LastTimeEntryRate AS [LastTimeEntryRate], @LastTimeEntryCharge AS [LastTimeEntryCharge], @LastTimeEntryTask AS [LastTimeEntrytask], @LastTimeEntryComment AS [LastTimeEntryComment], @LastTimeEntryFE AS [LastTimeEntryFE], @LastTimeEntryFEName AS [LastTimeEntryFEName], @CSTimeEntryTotalCharge AS [TimeEntryTotalCharge], @CSTimeEntryTotalTime AS [TotalTime], STC.[DESCRIPTION] AS [StatusCodeDescription], CSM.[CSWKTCODE] AS [CSWKTCode], TMP.[WKDESC] AS [WKDesc], CASE WHEN MAT.[ShowCommentInAlarm] = 'Y' THEN 'True' ELSE 'False' END AS [ShowCommentInAlarm], RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [FileColourDescription], ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB], @Section68 AS [Section68], @IsApproved AS [IsApproved] FROM dbo.[matters] MAT LEFT JOIN dbo.[WorkTypes] WKT ON WKT.[CODE] = MAT.[WType] LEFT OUTER JOIN dbo.[Departments] DPT ON DPT.[CODE] = MAT.[Dept] LEFT OUTER JOIN dbo.[Handlers] HAN ON HAN.[CODE] = MAT.[FECode] LEFT OUTER JOIN dbo.[client] CLT ON CLT.[CLCODE] = MAT.[ClientCode] LEFT OUTER JOIN dbo.[StatusCodes] STC ON STC.[CODE] = MAT.[Status] LEFT OUTER JOIN dbo.[CaseMaster] CSM LEFT OUTER JOIN dbo.[Templates] TMP ON TMP.[WKCODE] = CSM.[CSWKTCODE] ON CSM.[CSCODE] = MAT.[Code] LEFT OUTER JOIN [dbo].[FileColours] FCL ON FCL.[COLOURCODE] = MAT.[FileColour] WHERE MAT.[Code] = @CaseCode SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchTimeEntry_Log' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchTimeEntry_Log] END GO CREATE PROCEDURE [dbo].[KAAS_FetchTimeEntry_Log] (@MATTER VARCHAR(20)) AS /******************************************************************************************************* * This procedure is used show the data for TimeEntry_Log Details. * * * * Stored Procedure Name : [dbo].[KAAS_FetchTimeEntry_Log] ` * * Copied from : [dbo].[ky_NETFetchTimeEntry_Log] * * * * Modification History: * * 2015-11-12 Pino Carafa Imported into Release 2 of Framework * * Include new columns * * 2019-07-25 Vinodhan K Created * 2021-02-26 Mahalakshmi L Added TimeEntryLogID for uniqueID * 2023-08-02 Ghayathri S V Added RecordId column while fetching data *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [HAN].[NAME] AS [FEEEARN], --[TEL].[DATE] AS [DATE], CONVERT(VARCHAR, [TEL].[DATE], 23) AS [DATE], [TEL].[COMMENT] AS [COMMENT], CASE [TEL].[TIMEORCHARGE] WHEN 'T' THEN 'Time' WHEN 'B' THEN 'Bill' WHEN 'C' THEN 'Charge' END AS [TIMEORCHARGE], [TEL].[TIME] AS [TIME], CASE [TEL].[REC_IRR] WHEN 'C' THEN 'Chargeable' WHEN 'N' THEN 'Non Chargeable' WHEN '' THEN 'Chargeable' END AS [REC_IRR], ISNULL([TEL].[CHARGE], 0.00) AS [CHARGE], ISNULL([TEL].[BILLEDAMOUNT], 0.00) AS [BILLEDAMOUNT], ISNULL([TEL].[INVOICENO], 0) AS [INVOICENO], CASE WHEN [TAC].[DESC] IS NULL THEN RTRIM(ISNULL([TEL].[TASK], '')) ELSE RTRIM(ISNULL([TAC].[DESC], '')) END AS [TASK], CASE [TEL].[LogFor] WHEN 'C' THEN 'Updated' WHEN 'D' THEN 'Deleted' WHEN 'B' THEN 'Marked As Billed' WHEN 'U' THEN 'Marked As Un-Billed' WHEN 'M' THEN 'Moved' END AS [LogType], [TEL].[HandlerLogFor] AS [ByHandler], RTRIM(ISNULL([BHA].[NAME], '')) AS [ByHandlerName], [TEL].[LoginLogFor] AS [ByUser], [TEL].[WhenLogFor] AS [ByDateTime], [TEL].[TimeEntryLogID] AS [ByTimeLogID], [TEL].[RECORDID] AS [RecordId] FROM [dbo].[TimeEntryLogNew] [TEL] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[CODE] = [TEL].[MATTER] INNER JOIN [dbo].[TasksCodes] [TAC] ON [TAC].[CODE] = [TEL].[TASK] INNER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [TEL].[FEEEARN] LEFT OUTER JOIN [dbo].[Handlers] [BHA] ON BHA.[CODE] = [TEL].[HandlerLogFor] WHERE [TEL].[MATTER] = @MATTER ORDER BY [TEL].[MATTER] ASC, [TEL].[DATE] ASC, [TEL].[TimeEntryLogID] DESC SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FetchTimeEntry_Web',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FetchTimeEntry_Web] GO CREATE PROCEDURE [dbo].[KAAS_FetchTimeEntry_Web] (@CaseCode VARCHAR(20), @PageNumber INT = NULL, @PageSize INT = NULL, @SearchText VARCHAR(400) = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /******************************************************************************************************* * This procedure is used to get net Action Code based on the given Action ID. * * * * Stored Procedure Name : [dbo].[KAAS_FetchTimeEntry_Web] * * Copied from : [dbo].[ky_NETTLFetchTimeEntry3] * * * * Modification History: * * 2019-06-05 Vinodhan K Created * * 2019-10-24 Dheepin Vijith K TimeInHours Format to be displayed as '00:00' format (from mobile sp)* * 2020-03-03 Arun V increated varchar(10) , due to Arithmetic overflow error converting * expression to data type nvarchar. * * 2021-12-10 Aakif Included TotalTimeBilled field for summary details * 2022-09-20 Ghayathri Included IncludeInBillValue field in final select * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @IsSAM4 bit DECLARE @TimeEntryTotalCharge DECIMAL(19, 2) DECLARE @TimeEntryTotalTime INT DECLARE @TotalCharge Decimal(19, 2) DECLARE @TotalTime INT DECLARE @TimeBal INT DECLARE @ChargeBal DECIMAL(19, 2) DECLARE @ChargeableBal DECIMAL(19, 2) DECLARE @NonChargeableBal DECIMAL(19, 2) DECLARE @NonChargeableTimeBal INT DECLARE @ChargeableTimeBal INT DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @TotalFeesIssued DECIMAL(19, 2) DECLARE @TotalTimeBilled DECIMAL(19, 2) SET @IsSAM4 = [dbo].[ISSAM4]() DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(RTRIM(ISNULL(@SearchText, '')) = '' OR RTRIM(@SearchText) = '') BEGIN SET @SearchText = '' END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #TimeLedgerTable FROM (SELECT TIE.[RecordID] AS [RecordID], RTRIM(ISNULL(HAN.[CODE], '')) AS [HandlerCode], RTRIM(ISNULL(HAN.[NAME], '')) AS [FEEEARN], TIE.[DATE] AS [DATE], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](TIE.[COMMENT], 200) AS [COMMENT], CASE TIE.[TimeOrCharge] WHEN 'T' THEN 'Time' WHEN 'B' THEN 'Bill' WHEN 'C' THEN 'Charge' END AS [TIMEORCHARGE], TIE.[TIME] AS [TIME], CASE WHEN ([TIME] = 0) THEN ('00:00') WHEN ([Time] > 0) THEN SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(10), [TIME] / 60))), 2, 2) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(10), [TIME] - (60 * ([TIME] / 60))))), 2, 2) WHEN ([TIME] < 0) THEN '-' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(10), -[TIME] / 60))), 2, 2) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(10), -[TIME] - (60 * (-[TIME] / 60))))), 2, 2) END AS [TimeInHours], CASE TIE.[Rec_Irr] WHEN 'C' THEN 'Chargeable' WHEN 'N' THEN 'Non-Chargeable' WHEN '' THEN 'Chargeable' END AS [REC_IRR], ISNULL(TIE.[CHARGE], 0.00) AS [CHARGE], ISNULL(TIE.[BILLEDAMOUNT], 0.00) AS [BILLEDAMOUNT], ISNULL(TIE.[INVOICENO], 0) AS [INVOICENO], CASE WHEN TC.[DESC] IS NULL THEN TIE.[TASK] WHEN TC.[DESC] IS NOT NULL THEN TC.[DESC] ELSE '' END AS [TASK], CASE WHEN ISNULL(TIE.[WriteOffID], 0) = 0 THEN '' ELSE CONVERT(VARCHAR(MAX), ISNULL(TIE.[WriteOffID], 0)) END AS [WriteOffID], TIE.[WriteOffDT] AS [WriteOffDT], ISNULL(TIE.[Rate], 0) AS [Rate], CASE WHEN ISNULL(TIE.[IncludeInBill], 0) = 0 THEN 'No' ELSE 'Yes' END AS [IncludeInBillValue], ISNULL(TIE.[IncludeInBill], 0) AS [IncludeInBill], CASE WHEN TIE.[TIMEORCHARGE] = 'B' OR TIE.[IncludeInBill] = 2 OR TIE.[Rec_Irr] <> 'C' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[INVOICENO], 0) <> 0 THEN 0 WHEN @IsSAM4 <> 1 THEN ISNULL(TIE.[CHARGE], 0) - ISNULL(TIE.[BILLEDAMOUNT], 0) ELSE ISNULL(TIE.[CHARGE], 0) END AS [WIP], TIE.[Task] AS [TaskCode] FROM [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Matters] MAT ON MAT.[Code] = TIE.[Matter] LEFT OUTER JOIN [dbo].[TasksCodes] TC ON TC.[CODE] = TIE.[Task] LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = TIE.[FeeEarn] WHERE ( [TIE].[RecordID] LIKE '%' + @SearchText + '%' OR [HAN].[CODE] LIKE '%' + @SearchText + '%' OR [HAN].[NAME] LIKE '%' + @SearchText + '%' OR [TIE].[DATE] LIKE '%' + @SearchText + '%' OR [TIE].[COMMENT] LIKE '%' + @SearchText + '%' OR [TIE].[TimeOrCharge] LIKE '%' + @SearchText + '%' OR [TIE].[Rec_Irr] LIKE '%' + @SearchText + '%' OR [TIE].[CHARGE] LIKE '%' + @SearchText + '%' OR [TIE].[BILLEDAMOUNT] LIKE '%' + @SearchText + '%' OR [TIE].[INVOICENO] LIKE '%' + @SearchText + '%' OR [TC].[DESC] LIKE '%' + @SearchText + '%' OR [TIE].[TASK] LIKE '%' + @SearchText + '%' OR [TIE].[WriteOffID] LIKE '%' + @SearchText + '%' OR [TIE].[WriteOffDT] LIKE '%' + @SearchText + '%' OR [TIE].[Rate] LIKE '%' + @SearchText + '%' OR [TIE].[IncludeInBill] LIKE '%' + @SearchText + '%' OR [TIE].[TIMEORCHARGE] LIKE '%' + @SearchText + '%' ) AND TIE.[Matter] = @CaseCode) AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'RecordID' THEN [RecordID] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'RecordID' THEN [RecordID] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'HandlerCode' THEN [HandlerCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'HandlerCode' THEN [HandlerCode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'FEEEARN' THEN [FEEEARN] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'FEEEARN' THEN [FEEEARN] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DATE' THEN [DATE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DATE' THEN [DATE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'COMMENT' THEN [COMMENT] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'COMMENT' THEN [COMMENT] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'TIMEORCHARGE' THEN [TIMEORCHARGE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'TIMEORCHARGE' THEN [TIMEORCHARGE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'TIME' THEN [TIME] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'TIME' THEN [TIME] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'TimeInHours' THEN [TimeInHours] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'TimeInHours' THEN [TimeInHours] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'REC_IRR' THEN [REC_IRR] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'REC_IRR' THEN [REC_IRR] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CHARGE' THEN [CHARGE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CHARGE' THEN [CHARGE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'BILLEDAMOUNT' THEN [BILLEDAMOUNT] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'BILLEDAMOUNT' THEN [BILLEDAMOUNT] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'INVOICENO' THEN [INVOICENO] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'INVOICENO' THEN [INVOICENO] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'TASK' THEN [TASK] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'TASK' THEN [TASK] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'WriteOffID' THEN [WriteOffID] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'WriteOffID' THEN [WriteOffID] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'WriteOffDT' THEN [WriteOffDT] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'WriteOffDT' THEN [WriteOffDT] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Rate' THEN [Rate] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Rate' THEN [Rate] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'IncludeInBill]' THEN [IncludeInBill] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'IncludeInBill]' THEN [IncludeInBill] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'WIP' THEN [WIP] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'TaskCode' THEN [TaskCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'TaskCode' THEN [TaskCode] END END DESC SELECT * FROM #TimeLedgerTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #TimeLedgerTable -- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_CaseSummaryPageLoad. If you change any of these calculations, -- ensure the ones in there are changed as well. SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0), @TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0), @TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Charge], 0) END), 0), @ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0), @NonChargeableBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' AND ISNULL(TIE.[Task], '') <> 'WRI' THEN ISNULL(TIE.[Charge], 0) ELSE 0 END), 0), @ChargeableBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') <> 'N' AND ISNULL(TIE.[Task], '') <> 'WRI' THEN ISNULL(TIE.[Charge], 0) ELSE 0 END), 0), @TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN CASE WHEN TIE.[Charge] = 0 THEN 0 ELSE CONVERT(INT,FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME]) * ((TIE.[Charge] - TIE.[BilledAmount]) / TIE.[Charge]))) END ELSE ISNULL(TIE.[Time], 0) END), 0), @NonChargeableTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' AND ISNULL(TIE.[Task], '') <> 'WRI' THEN ISNULL(TIE.[TIME], 0) ELSE 0 END), 0), @ChargeableTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' OR ISNULL(TIE.[Task], '') = 'WRI' THEN 0 ELSE ISNULL(TIE.[TIME], 0) END), 0), @TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' OR ISNULL(TIE.[Task], '') = 'WRI' THEN 0 ELSE ISNULL(TIE.[Time], 0) END), 0), @TotalTimeBilled = ISNULL(SUM(CASE WHEN [TIE].[InvoiceNo] = 0 OR [TIE].[IncludeInBill] = 2 THEN 0 WHEN @IsSAM4 = 0 THEN ISNULL([TIE].[BilledAmount], 0) WHEN @IsSAM4 = 1 AND [TIE].[InvoiceNo] <> 0 THEN [TIE].[Charge] ELSE 0 END), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @CaseCode AND ((TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun -- PLEASE NOTE THAT THIS MUST BE IDENTICAL TO RESULT SET 10 IN KAAS_CaseSummaryPageLoad. Please -- modify both procedures if this needs to be changed. -- Result Set 10 -- The fees issued to date IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT @TotalFeesIssued = ISNULL(SUM((CASE WHEN HED.[INVCR] = ''I'' THEN TRN.[VALUE] ELSE TRN.[VALUE] * - 1 END)), 0) FROM [dbo].[BatchH] HED INNER JOIN [dbo].[BatchDetails] TRN ON TRN.[BATCHNO] = HED.[BATCHNO] WHERE HED.[MATTER] = @CaseCode AND HED.[POSTED] = ''Y'' AND TRN.[TYPE] = ''I'' AND TRN.[OUTLAY] = ''F''' END ELSE BEGIN SET @NCOMMAND = N' SELECT @TotalFeesIssued = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[TransactionsHeaders] HED INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') WHERE HED.[MatterCode] = @CaseCode --values imported from Axxia SELECT @TotalFeesIssued = @TotalFeesIssued + ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[Transactions] TRN LEFT OUTER JOIN [dbo].[TransactionsHeaders] HED ON HED.[BatchNo] = TRN.[BatchNo] WHERE TRN.[MatterCode] = @CaseCode AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') AND HED.[BatchNo] IS NULL' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TotalFeesIssued DECIMAL(19, 2) OUTPUT', @CaseCode = @CaseCode, @TotalFeesIssued = @TotalFeesIssued OUTPUT /*WIP Calculations*/ SELECT CASE WHEN LEN(@TimeBal / 60) < 2 THEN '0' + CAST(@TimeBal / 60 AS VARCHAR) ELSE CAST(@TimeBal / 60 AS VARCHAR) END AS [WIPHrs], SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeBal - (60 * (@TimeBal / 60))), 2, 2) AS [WIPMins], @ChargeBal AS [WIPAmt] /*Total Record Calculations*/ SELECT CASE WHEN LEN(@TimeEntryTotalTime / 60) < 2 THEN '0' + CAST(@TimeEntryTotalTime / 60 AS VARCHAR) ELSE CAST(@TimeEntryTotalTime / 60 AS VARCHAR) END AS [TotalHours], SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeEntryTotalTime - (60 * (@TimeEntryTotalTime / 60))), 2, 2) AS [TotalMins], @TimeEntryTotalCharge AS [TotalAmt], CASE WHEN LEN(@NonChargeableTimeBal / 60) < 2 THEN '0' + CAST(@NonChargeableTimeBal / 60 AS VARCHAR) ELSE CAST(@NonChargeableTimeBal / 60 AS VARCHAR) END AS [RecNonChargeableHrs], SUBSTRING(CONVERT(VARCHAR(3), 100 + @NonChargeableTimeBal - (60 * (@NonChargeableTimeBal / 60))), 2, 2) AS [RecNonChargeableMins], @NonChargeableBal AS [RecNonChargeableAmt], CASE WHEN LEN(@ChargeableTimeBal / 60) < 2 THEN '0' + CAST(@ChargeableTimeBal / 60 AS VARCHAR) ELSE CAST(@ChargeableTimeBal / 60 AS VARCHAR) END AS [RecChargeableHrs], SUBSTRING(CONVERT(VARCHAR(3), 100 + @ChargeableTimeBal - (60 * (@ChargeableTimeBal / 60))), 2, 2) AS [RecChargeableMins], @ChargeableBal AS [RecChargeableAmt], CASE WHEN LEN((@ChargeableTimeBal + @NonChargeableTimeBal) / 60) < 2 THEN '0' + CAST((@ChargeableTimeBal + @NonChargeableTimeBal) / 60 AS VARCHAR) ELSE CAST((@ChargeableTimeBal + @NonChargeableTimeBal) / 60 AS VARCHAR) END AS [RecTotalHrs], SUBSTRING(CONVERT(VARCHAR(3), 100 + (@ChargeableTimeBal + @NonChargeableTimeBal) - (60 * ((@ChargeableTimeBal + @NonChargeableTimeBal) / 60))), 2, 2) AS [RecTotalMins], @ChargeableBal + @NonChargeableBal AS [RecTotalAmt], @TotalFeesIssued AS [TotalBilled], @TotalTimeBilled AS [TotalTimeBilled], @TotalFeesIssued - (@ChargeableBal + @NonChargeableBal) AS [ProfitLoss] -- Current Profit/Loss = TotalBilled - RecTotalAmt; AS [ProfitLoss] -- Current Profit/Loss = TotalBilled - RecTotalAmt; /*Write Off Calculations*/ SELECT CASE WHEN TIES.[WriteOffTime] > 0 THEN '-' ELSE '' END + CASE WHEN LEN(TIES.[WriteOffTime] / 60) < 2 THEN '0' + CAST(TIES.[WriteOffTime] / 60 AS VARCHAR) ELSE CAST(TIES.[WriteOffTime] / 60 AS VARCHAR) END AS [WOHrs], SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[WriteOffTime] % 60)), 2, 2) AS [WOMins], ---TIES.[WriteOffTime] / 60 AS [WOHrs], ---TIES.[WriteOffTime] % 60 AS [WOMins], TIES.[WriteOffValue] As [WOAmt] FROM (SELECT ISNULL(SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))), 0) AS [WriteOffValue], ISNULL(SUM(ISNULL(TIE.[Time], 0)), 0) AS [WriteOffTime] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[MATTER] = MAT.[Code] WHERE TIE.[MATTER] = @CaseCode AND ((TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) AND TIE.[Task] = 'WRI') TIES /*Total Billed Amount Calculations */ ------ Commented out as reversed KEYD-3657 --IF @IsSAM4 = 0 -- SELECT ISNULL(SUM(ISNULL([TIE].[BilledAmount], 0)), 0) AS [TotalBill] -- FROM [dbo].[TimeEntry] [TIE] -- WHERE [TIE].[Matter] = @CaseCode --ELSE -- SELECT @TotalFeesIssued AS [TotalBill] -- FROM [dbo].[TimeEntry] [TIE] -- WHERE [TIE].[Matter] = @CaseCode DECLARE @DraftBillValue DECIMAL(18, 2) SET @IsSAM4 = [dbo].[ISSAM4]() IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0) FROM [dbo].[BillHeader] HED INNER JOIN [dbo].[BillDetails] BD ON BD.[DRAFTNO] = HED.[DRAFTNO] WHERE HED.[MATTER] = @CaseCode AND HED.[BILLNO] = 0' END ELSE BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0) FROM [dbo].[BillHead] HED INNER JOIN [dbo].[BillDetail] BD ON BD.[BillID] = HED.[BillingID] WHERE HED.[MatterCode] = @CaseCode AND HED.[BillStatus] <> ''Approved'' AND ISNULL(HED.[ProForma], '''') = ''Y''' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @CaseCode = @CaseCode, @DraftBillValue=@DraftBillValue OUTPUT DECLARE @Section68 VARCHAR(10) DECLARE @IsApproved VARCHAR(10) DECLARE @CSTimeBal INT DECLARE @CSChargeBal DECIMAL(19, 2) DECLARE @CSTotalCharge Decimal(19, 2) DECLARE @CSTotalTime INT --Matter values that are re-used elsewhere in this procedure. SELECT @Section68 = ISNULL(MAT.[Section68],''), @IsApproved = ISNULL(CON.[Approved],'') FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE MAT.[Code] = @CaseCode DECLARE @LDIADATE DATETIME DECLARE @LDIAACTIONTYPE VARCHAR(1) DECLARE @LDIATEXT1 VARCHAR(MAX) DECLARE @LDIAFNCODE VARCHAR(10) DECLARE @LDIAFNNAME VARCHAR(50) SELECT TOP 1 @LDIADATE = LDIA.[DATE], @LDIAACTIONTYPE = LDIA.[ACTIONTYPE], @LDIATEXT1 = LDIA.[TEXT1], @LDIAFNCODE = LDIA.[FNCODE], @LDIAFNNAME = [FEC].[Name] FROM [dbo].[diary] LDIA INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON LDIA.FNCODE = [FEC].[CODE] WHERE LDIA.[CASECODE] = @CaseCode ORDER BY LDIA.[DATE] DESC DECLARE @MDIADATE DATETIME DECLARE @MDIAACTIONTYPE VARCHAR(1) DECLARE @MDIATEXT1 VARCHAR(MAX) DECLARE @MDIAFNCODE VARCHAR(10) DECLARE @MDIAFNNAME VARCHAR(50) SELECT TOP 1 @MDIADATE= MDIA.[DATE], @MDIAACTIONTYPE = MDIA.[ACTIONTYPE], @MDIATEXT1 = MDIA.[TEXT1], @MDIAFNCODE = MDIA.[FNCODE], @MDIAFNNAME = [FEC].[Name] FROM [dbo].[diary] MDIA INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON MDIA.FNCODE = [FEC].[CODE] WHERE MDIA.[CASECODE] = @CaseCode AND MDIA.[HIGHLIGHTED] = 'Y' ORDER BY MDIA.[DATE] DESC DECLARE @NDIADATE DATETIME DECLARE @NDIAACTIONTYPE VARCHAR(1) DECLARE @NDIATEXT1 VARCHAR(MAX) DECLARE @NDIAFNCODE VARCHAR(10) DECLARE @NDIAFNNAME VARCHAR(50) SELECT TOP 1 @NDIADATE = NDIA.[DATE], @NDIAACTIONTYPE = NDIA.[ACTIONTYPE], @NDIATEXT1 = NDIA.[TEXT1], @NDIAFNCODE = NDIA.[FNCODE], @NDIAFNNAME = [FEC].[Name] FROM dbo.[diary] NDIA INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON NDIA.FNCODE = [FEC].[CODE] WHERE NDIA.[CASECODE] = @CaseCode AND NDIA.[STATUS] = 0 ORDER BY NDIA.[DATE] ASC DECLARE @TIEDATE DATETIME --Pino 2015-05-27 Start --SELECT @TIEDATE = (MAX(TIE.[DATE])) -- FROM [dbo].[TimeEntry] TIE -- WHERE TIE.[Matter] = @CaseCode IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL THEN CONVERT(DATETIME, NULL) WHEN DLG.[DATE] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE DLG.[DATE] END) FROM [dbo].[DebtorsLedger] DLG WHERE DLG.[MATTER] = @CaseCode' END ELSE BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL THEN CONVERT(DATETIME, NULL) WHEN TRN.[TransDate] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE TRN.[TransDate] END) FROM [dbo].[Transactions] TRN WHERE TRN.[Posted] = ''Y'' AND TRN.[MatterCode] = @CaseCode AND TRN.[DebtorsValue] <> 0 AND TRN.[CorrectionInd] = ''L'' AND ( ( TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'') OR ( TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))' END EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @CaseCode = @CaseCode, @TIEDATE = @TIEDATE OUTPUT --Pino 2015-05-27 End DECLARE @LastTimeEntryDate DATETIME DECLARE @LastTimeEntryTime INT DECLARE @LastTimeEntryRate DECIMAL(10, 2) DECLARE @LastTimeEntryCharge DECIMAL(10, 2) DECLARE @LastTimeEntryTask VARCHAR(6) DECLARE @LastTimeEntryComment VARCHAR(1000) DECLARE @LastTimeEntryFE VARCHAR(10) DECLARE @LastTimeEntryFEName VARCHAR(50) DECLARE @CSTimeEntryTotalCharge DECIMAL(19, 2) DECLARE @CSTimeEntryTotalTime INT SELECT TOP (1) @LastTimeEntryDate = TIE.[DATE], @LastTimeEntryTime = TIE.[Time], @LastTimeEntryRate = TIE.[Rate], @LastTimeEntryCharge = TIE.[Charge], @LastTimeEntryTask = TIE.[Task], @LastTimeEntryComment = TIE.[Comment], @LastTimeEntryFE = TIE.[FeeEarn], @LastTimeEntryFEName = [FEC].[Name] FROM [dbo].[TimeEntry] TIE INNER JOIN [dbo].[FeeEarnerCodes] [FEC] ON [TIE].[FeeEarn] = [FEC].[CODE] WHERE TIE.[Matter] = @CaseCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun ORDER BY TIE.[Date] DESC, TIE.[Time] DESC SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0) SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0) -- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. SELECT @CSTimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0), @CSTimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0), @CSTotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Charge], 0) END), 0), @CSChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0), @CSTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN CASE WHEN TIE.[Charge] = 0 THEN 0 ELSE CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME]) * ( (TIE.[Charge] - TIE.[BilledAmount]) / TIE.[Charge]))) END ELSE ISNULL(TIE.[Time], 0) END), 0), @CSTotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Time], 0) END), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @CaseCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun DECLARE @DebtBal DECIMAL(19, 2) DECLARE @OutlayBal DECIMAL(19, 2) DECLARE @DebtBalDate DATETIME DECLARE @OutlayBalDate DATETIME DECLARE @ClientCurrent DECIMAL(19, 2) DECLARE @ClientDeposit DECIMAL(19, 2) -- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- -- To ensure SAM3 will retrieve these from [dbo].[matters] SET @DebtBal = 0 SET @OutlayBal = 0 SET @ClientCurrent = 0 SET @ClientDeposit = 0 IF @IsSAM4 = 1 BEGIN SET @NCOMMAND = N' SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)), @DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)), @OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)), @ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0)) FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @CaseCode AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] = ''L''' EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @DebtBal DECIMAL(19, 2) OUTPUT, @DebtBalDate DATETIME OUTPUT, @OutlayBal DECIMAL(19, 2) OUTPUT, @OutlayBalDate DATETIME OUTPUT, @ClientCurrent DECIMAL(19, 2) OUTPUT, @ClientDeposit DECIMAL(19, 2) OUTPUT', @CaseCode = @CaseCode, @DebtBal = @DebtBal OUTPUT, @DebtBalDate = @DebtBalDate OUTPUT, @OutlayBal = @OutlayBal OUTPUT, @OutlayBalDate = @OutlayBalDate OUTPUT, @ClientCurrent = @ClientCurrent OUTPUT, @ClientDeposit = @ClientDeposit OUTPUT END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchUpdateDocument]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchUpdateDocument] GO CREATE PROCEDURE [KAAS_FetchUpdateDocument] ( @Code VARCHAR(50) ) /******************************************************************************************************* * This stored procedure is used to Fetch the DocumentClasses for update Document Page. * * * * Stored Procedure Name : [dbo].[KAAS_FetchUpdateDocument] * * Copied from : [dbo].[ky_NETFetchUpdateDocument] * * * * Modification History : * * 2019-10-31 Dheepin Vijith Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT RTRIM(ISNULL(FILEPATH, '')) AS FILEPATH, RTRIM(ISNULL(NAME, '')) AS NAME, RTRIM(ISNULL([TYPE], '')) AS [TYPE], RTRIM(ISNULL(DOCCLASS, '')) AS DOCCLASS, RTRIM(ISNULL(STORE, '')) AS STORE, RTRIM(ISNULL(DICTATION, '')) AS DICTATION, RTRIM(ISNULL(OPENDURINGDICTATION, '')) AS OPENDURINGDICTATION, RTRIM(ISNULL(StartToken, '')) AS StartToken, RTRIM(ISNULL(EndToken, '')) AS EndToken, RTRIM(ISNULL(OverWrite, '')) AS OverWrite FROM TemplateDocuments WHERE CODE = @Code SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_FetchUserVariables]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_FetchUserVariables] GO CREATE PROCEDURE [KAAS_FetchUserVariables] ( @CaseCode VARCHAR(20), @CasePlan VARCHAR(5) ) AS /* [KAAS_FetchUserVariables] This procedure is used to update user variables based on case plan Modification History --------------------------------------------------------------------------------- Date Name Description --------------------------------------------------------------------------------- 2015FEB12 Arun Change NVARCHAR to VARCHAR 2015JUN23 Sridharan KEYD - 2332 - Use of LTRIM(RTRIM( 2019JUL01 Arun Copied from ky_NETMATFetchUserVariables NOTE: CASE UDF field have removed, hence it not used in UI ----------------------------------------------------------------------------------- */ BEGIN SET NOCOUNT ON --SELECT -- U.UDFCATEGORY, -- RTRIM(S.PROMPT) AS PROMPT, -- Case RTRIM(s.[TYPE]) WHEN 'Text' THEN CONVERT(NVARCHAR(200),CA.TEXT1) -- WHEN 'Numeric' THEN CONVERT(NVARCHAR(50),CA.NumberValue) -- WHEN 'Date' THEN CONVERT(NVARCHAR(20), CA.DateValue, 106) -- ELSE CONVERT(NVARCHAR(200),CA.TEXT1) -- END AS [Value], -- CA.CASECODE, -- CA.UDFFile, -- CA.UDFNAME, -- CA.SEQNO, -- ISNULL(CA.TEXT1,'-') AS [Text1], -- S.FILEPREFIX, -- S.FIELDNAME, -- S.[FORMAT], -- S.ACTUALNAME --FROM -- CaseUDFAnswers CA --LEFT OUTER JOIN -- SystemUserDefinedFields S ON S.FILEPREFIX = CA.UDFFile AND S.FIELDNAME = CA.UDFNAME --LEFT OUTER JOIN -- UDFCategory U ON U.ID = s.UDFCategory --WHERE -- CA.CASECODE = @CaseCode --ORDER BY -- CA.SEQNO SELECT WKACCSRN, WKSRNLIT, WKSRNCON, WKSRNPRB, WKSRNDRC, WKSRNGEN,* FROM Templates WHERE WKCODE=@CasePlan SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchWorkFlow' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchWorkFlow] END GO CREATE PROCEDURE [dbo].[KAAS_FetchWorkFlow] (@ActionID VARCHAR(50)) AS /************************************************************************************************ * This procedure is used to Fetch Workflow List * * * * Stored Procedure Name : [dbo].[KAAS_FetchWorkFlow] * * Copied from : [dbo].[Ky_NetFetchWorkFlow] * * * * Modification History : * * 2023-06-19 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @STSCODE AS VARCHAR(10) SELECT @STSCODE = [TAC].[STATUS] FROM [dbo].[TemplateActions] [TAC] INNER JOIN [dbo].[StatusCodes] [SC] ON [SC].[CODE] = [TAC].[STATUS] WHERE [TAC].[ACTIONCODE] = @ActionID AND [SC].[Retired] = 'Y' SET @STSCODE = ISNULL(@STSCODE, '') --follow up action SELECT RTRIM(ISNULL([TNA].[ACTION], '')) AS [ACTION], RTRIM(ISNULL([TNA].[NEXTACTION], '')) AS [NEXTACTION], RTRIM(ISNULL([TNA].[DECISION], '')) AS [DECISION], RTRIM(ISNULL([TNA].[WHENTYPE], '')) AS [WHENTYPE], RTRIM(ISNULL([TNA].[WHEN], 0)) AS [WHEN], RTRIM(ISNULL([TAC].[ACTIONCODE], '')) AS [ACTIONCODE], RTRIM(ISNULL([TAC].[DESC], '')) AS [DESC], RTRIM(ISNULL([TAC].[WKTCODE], '')) AS [WKTCODE], RTRIM(ISNULL([TAC].[ACTTYPE], '')) AS [ACTTYPE], RTRIM(ISNULL([TAC].[STATUS], '')) AS [STATUS], RTRIM(ISNULL([TAC].[MILESTONETYPE], '')) AS [MILESTONETYPE] FROM [dbo].[TemplateNextActions] [TNA] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] ON [TAC].[ACTIONCODE] = [TNA].[NEXTACTION] WHERE [TNA].[ACTION] = @ActionID ORDER BY [TNA].[ACTION], [TNA].[NEXTACTION] --Associated Documents 2022-07-08 START DECLARE @TADS TABLE ([SeqNo] INT IDENTITY(1, 1) PRIMARY KEY NOT NULL, [ACTION] VARCHAR(15) NOT NULL, [DOCUMENT] VARCHAR(10) NOT NULL, [OPTIONAL] CHAR(1) NOT NULL) --2022-07-08 use work table to cater for NULL SeqNos INSERT INTO @TADS ([ACTION], [DOCUMENT], [OPTIONAL]) SELECT RTRIM(ISNULL([TAD].[ACTION], '')), RTRIM(ISNULL([TAD].[DOCUMENT], '')), CASE WHEN RTRIM(ISNULL([TAD].[OPTIONAL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ActionID ORDER BY ISNULL([TAD].[SeqNo], 999), RTRIM(ISNULL([TAD].[DOCUMENT], '')) --2022-07-08 Use Work Table instead of original [dbo].[TemplateActionDcouments] to ensure we always get contiguous SeqNo values here SELECT [TAD].[ACTION] AS [ACTION], [TAD].[DOCUMENT] AS [DOCUMENT], [TAD].[OPTIONAL] AS [OPTIONAL], RTRIM(ISNULL([TD].[CODE], '')) AS [CODE], RTRIM(ISNULL([TD].[FILEPATH], '')) AS [LFILEPATH], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([TD].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([TD].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([TD].[FILEPATH], ''))) - 2) END AS [FILEPATH], RTRIM(ISNULL([TD].[NAME], '')) AS [NAME], RTRIM(ISNULL([TD].[TYPE], '')) AS [TYPE], RTRIM(ISNULL([TD].[DOCCLASS], '')) AS [DOCCLASS], [TAD].[SeqNo] AS [SeqNo], [TD].[STARTTOKEN] AS [StartToken], [TD].[ENDTOKEN] AS [EndToken], [TD].[ConvertToPDF] FROM @TADS [TAD] LEFT OUTER JOIN [dbo].[TemplateDocuments] [TD] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([TD].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([TD].[FilePath], 1, 1) ON [TD].[CODE] = [TAD].[DOCUMENT] WHERE [TAD].[ACTION] = @ActionID ORDER BY [TAD].[SeqNo] --commands SELECT RTRIM(ISNULL([TCM].[ACTIONCODE], '')) AS [ActionCode], RTRIM(ISNULL([TCM].[ORDER], 0)) AS [Order], RTRIM(ISNULL([TCM].[COMMAND], '')) AS [Command], RTRIM(ISNULL([TCM].[PARAMETERS], '')) AS [Parameters], RTRIM(ISNULL([TCM].[DESCRIPTION], '')) AS [Description] FROM [dbo].[TemplateActionCommands] [TCM] WHERE [TCM].[ACTIONCODE] = @ActionID ORDER BY [TCM].[ACTIONCODE], [TCM].[ORDER] --Email SELECT RTRIM(ISNULL([TEM].[RECORDID], '')) AS [RECORDID], RTRIM(ISNULL([TEM].[ACTIONID], '')) AS [ACTIONID], RTRIM(ISNULL([TEM].[EMAILTO], '')) AS [EMAILTO], RTRIM(ISNULL([TEM].[SUBJECT], '')) AS [SUBJECT], RTRIM(ISNULL([TEM].[INCLUDEATTACHMENTS], '')) AS [INCLUDEATTACHMENTS] FROM [dbo].[TemplateEmails] [TEM] WHERE [TEM].[ACTIONID] = @ActionID ORDER BY [TEM].[ACTIONID], [TEM].[RECORDID] --Status SELECT RTRIM(ISNULL([SCD].[CODE], '')) AS [CODE], RTRIM(ISNULL([SCD].[DESCRIPTION], '')) AS [DESCRIPTION] FROM [dbo].[StatusCodes] [SCD] WHERE ISNULL([SCD].[Retired], 'N') = 'N' OR [SCD].[CODE] = @STSCODE ORDER BY [SCD].[CODE] --Add Action SELECT RTRIM(ISNULL([TAC].[DESC], '')) AS [DESC], RTRIM(ISNULL([TAC].[WKTCODE], '')) AS [Code], RTRIM(ISNULL([TAC].[ACTTYPE], '')) AS [ACTTYPE], RTRIM(ISNULL([TAC].[ACTIONCATEGORY], 'A')) AS [actioncategory], RTRIM(ISNULL([TAC].[STATUS], 'NA')) AS [STATUS], RTRIM(ISNULL([TAC].[PROCESSTYPE], 'I')) AS [PROCESSTYPE], RTRIM(ISNULL([TAC].[PUBLISHER], 'N')) AS [PUBLISHER], RTRIM(ISNULL([TAC].[UPDATEFIELD], 'N')) AS [UPDATEFIELD], RTRIM(ISNULL([TAC].[UPDATEVALUE], '')) AS [UPDATEVALUE], RTRIM(ISNULL([TAC].[HIGHLIGHTED], 'N')) AS [HIGHLIGHTED], RTRIM(ISNULL([TAC].[MILESTONETYPE], '')) AS [MILESTONETYPE], RTRIM(ISNULL([TAC].[PRIORITY], 'Normal')) AS [PRIORITY], RTRIM(ISNULL([TAC].[NEXTACTIONOPTIONAL], 'Y')) AS [NEXTACTIONOPTIONAL], RTRIM(ISNULL([TAC].[BILLABLE], 'N')) AS [BILLABLE], RTRIM(ISNULL([TAC].[EMAIL], '')) AS [EMAIL], RTRIM(ISNULL([TAC].[BILLDESCRIPTION], '')) AS [BILLDESCRIPTION], RTRIM(ISNULL([TAC].[AssignActionTo], 'L')) AS [AssignActionTo], RTRIM(ISNULL([TAC].[ASSIGNHANDLER], '')) AS [ASSIGNHANDLER], RTRIM(ISNULL([TAC].[AssignTeamActionTo], 'L')) AS [AssignTeamActionTo], RTRIM(ISNULL([TAC].[ASSIGNTEAM], '')) AS [ASSIGNTEAM], RTRIM(ISNULL([TAC].[ChargeValue], 0)) AS [ChargeValue], RTRIM(ISNULL([TAC].[Arrangement], '')) AS [Arrangement], RTRIM(ISNULL([TAC].[ChargeInterest], '')) AS [ChargeInterest], RTRIM(ISNULL([TAC].[Description], '')) AS [Description], RTRIM(ISNULL([TAC].[AutoPopulate], 'N')) AS [AutoPopulate], RTRIM(ISNULL([TAC].[RequiredAction], 'N')) AS [RequiredAction], RTRIM(ISNULL([TAC].[AuthorisationRequired], '')) AS [AuthorisationRequired], RTRIM(ISNULL([TAC].[Authby], '')) AS [Authby], RTRIM(ISNULL([TAC].[ConfirmByPW], 'N')) AS [ConfirmByPW], RTRIM(ISNULL([TAC].[Flag], 0)) AS [Flag], RTRIM(ISNULL([TAC].[HoldCasePlan], 'N')) AS [HoldCasePlan], ISNULL([TAC].[KYC], 'N') AS [KYC], ISNULL([SCD].[Retired], 'N') AS [Retired], [TAC].[CreateAsCompleted] AS [CreateAsCompleted] FROM [dbo].[TemplateActions] [TAC] LEFT OUTER JOIN [dbo].[StatusCodes] [SCD] ON [SCD].[CODE] = [TAC].[STATUS] WHERE [TAC].[ACTIONCODE] = @ActionID --Dependent Actions SELECT RTRIM(ISNULL([TDA].[RECORDID], '')) AS [RecordId], RTRIM(ISNULL([TDA].[ACTIONCODE], '')) AS [ActionCode], RTRIM(ISNULL([TDA].[DEPENDENTACTIONCODE], '')) AS [DependentActionCode], RTRIM(ISNULL([TDA].[TIMEFRAMAMOUNT], '')) AS [TimeFramAmount], RTRIM(ISNULL([TDA].[TIMEFRAMAMOUNT], '')) + ' ' + RTRIM(ISNULL([TDA].[TIMEFRAME], '')) AS [TimeFrame], RTRIM(ISNULL([TAC].[ACTIONCODE], '')) AS [Action], RTRIM(ISNULL([TAC].[DESC], '')) AS [Desc], RTRIM(ISNULL([TAC].[WKTCODE], '')) AS [WKTCode], RTRIM(ISNULL([TAC].[ACTTYPE], '')) AS [ACTType], RTRIM(ISNULL([TAC].[STATUS], '')) AS [Status], RTRIM(ISNULL([TAC].[MILESTONETYPE], '')) AS [MilestoneType] FROM [dbo].[TemplateDependentActions] [TDA] LEFT OUTER JOIN [dbo].[TemplateActions] [TAC] ON [TDA].[DEPENDENTACTIONCODE] = [TAC].[ACTIONCODE] WHERE [TDA].[ACTIONCODE] = @ActionID ORDER BY [TDA].[ACTIONCODE] DESC, [TDA].[DEPENDENTACTIONCODE] DESC -- Checklists SELECT [TACL].[id], [TACL].[Sequence], [TACL].[ChecklistItem], [TACL].[Optional] FROM [dbo].[TemplateActionChecklists] [TACL] WHERE [TACL].[ACTIONCODE] = @ActionID ORDER BY [TACL].[Sequence] -- Associate Document Codes SELECT [DA].[DocAssistCode], CASE WHEN [DA].[Prompt] = '' THEN [DA].[DocAssistCode] ELSE [DA].[Prompt] END AS [Prompt], [DA].[CodeIsValid], COUNT(1) AS [UsedInDocuments] FROM ( select [TDOC].[DOCUMENT], [SXR].[Prefix] + CASE WHEN [SXR].[Prefix] = 'sys:' THEN [SXR].[FullName] ELSE [SXR].[FieldName] END AS [DocAssistCode], RTRIM(ISNULL([SUF].[Prompt], '')) AS [Prompt], CASE WHEN [SXR].[Prefix] = 'sys:' THEN CONVERT(BIT, 1) WHEN [SUF].[FILEPREFIX] IS NULL THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [CodeisValid] from [dbo].[TemplateActionDcouments] [TDOC] INNER JOIN [dbo].[SUFDocumentXRef] [SDXR] INNER JOIN [dbo].[SUFXRef] [SXR] ON [SXR].[id] = [SDXR].[SUFXRefID] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SXR].[Prefix] AND [SUF].[FIELDNAME] = [SXR].[FieldName] ON [SDXR].[TemplateCode] = [TDOC].[DOCUMENT] where [TDOC].[ACTION] = @ActionID and [SXR].[Prefix] NOT IN ('can:', 'aud:', 'lcn:') UNION select [TDOC].[DOCUMENT], [SXR].[Prefix] + CASE WHEN [SXR].[Prefix] = 'sys:' THEN [SXR].[FullName] ELSE [SXR].[FieldName] END + CASE WHEN [SXR].[Prefix] IN ('can:', 'aud:') THEN '.' + [SXRCT].[TYPE] ELSE '' END + CASE WHEN [SXR].[Prefix] IN ('can:', 'aud:', 'lcn:') THEN RTRIM(ISNULL([SXRCTA].[Aggregate], '')) ELSE '' END AS [Doc Assist Code], RTRIM(ISNULL([SUF].[Prompt], '')) AS [Prompt], CASE WHEN [SXR].[Prefix] = 'sys:' THEN CONVERT(BIT, 1) WHEN [SUF].[FILEPREFIX] IS NULL THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [Code is Valid] from [dbo].[TemplateActionDcouments] [TDOC] INNER JOIN [dbo].[SUFDocumentXRefByCANTypeAgg] [SDXRCTA] ON [SDXRCTA].[TemplateCode] = [TDOC].[DOCUMENT] INNER JOIN [dbo].[SUFXRefByCANTypeAgg] [SXRCTA] ON [SXRCTA].[id] = [SDXRCTA].[SUFXRefByCANTypeAggID] INNER JOIN [dbo].[SUFDocumentXRefByCANType] [SDXRCT] ON [SDXRCT].[TemplateCode] = [TDOC].[DOCUMENT] INNER JOIN [dbo].[SUFXRefByCANType] [SXRCT] ON [SXRCT].[id] = [SDXRCT].[SUFXRefByCANTypeID] AND [SXRCT].[id] = [SXRCTA].[SUFXRefByCANTypeID] INNER JOIN [dbo].[SUFDocumentXRef] [SDXR] ON [SDXR].[TemplateCode] = [TDOC].[DOCUMENT] INNER JOIN [dbo].[SUFXRef] [SXR] ON [SXR].[id] = [SDXR].[SUFXRefID] AND [SXR].[id] = [SXRCT].[SUFXRefID] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SXR].[Prefix] AND [SUF].[FIELDNAME] = [SXR].[FieldName] where [TDOC].[ACTION] = @ActionID and [SXR].[Prefix] IN ('can:', 'aud:', 'lcn:')) [DA] GROUP BY [DA].[DocAssistCode], [DA].[Prompt], [DA].[CodeisValid] ORDER BY [DA].[DocAssistCode] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FetchWorkFlowByActionCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FetchWorkFlowByActionCode] END GO CREATE PROCEDURE [dbo].[KAAS_FetchWorkFlowByActionCode] (@ACTIONCODE VARCHAR(15)) AS /*********************************************************************************************** * This procedure is used to FETCH Work Type by Action code. * * * * Stored Procedure Name : [dbo].[KAAS_FetchWorkFlowByActionCode] * * Copied from : [dbo].[KAAS_FetchWorkFlow] * * * * Modification History : * * 2024-01-19 Vignesh M Created * ***********************************************************************************************/ BEGIN SELECT TOP 1 1 AS [STATUS] FROM [dbo].[TemplateActions] [TAC] LEFT OUTER JOIN [dbo].[StatusCodes] [SCD] ON [SCD].[CODE] = [TAC].[STATUS] WHERE [TAC].[ACTIONCODE] = @ACTIONCODE END GO IF NOT((SELECT SERVERPROPERTY('Edition') AS [Edition]) = 'SQL Azure') BEGIN IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FileAvailabilityCheck' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FileAvailabilityCheck] END DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N'CREATE PROCEDURE KAAS_FileAvailabilityCheck (@FilePath VARCHAR(4000)) AS /******************************************************************* * * * To check whether file available in the specified path * * * * Function Name : KAAS_FileAvailabilityCheck * * * * Modify History: * * 2019-09-12 Vinodhan Created KAAS_FileAvailabilityCheck * * 2019-12-26 Arun V have include method to convert file * * path to UNC file path. * *******************************************************************/ BEGIN DECLARE @FileExists INT; DECLARE @UNCFilePath NVARCHAR(256) SET @UNCFilePath = (select dbo.KAAS_GetUNCPathFromFile(@FilePath)) EXECUTE [MASTER].[DBO].XP_FILEEXIST @UNCFilePath, @FileExists OUTPUT SELECT CAST(@FileExists AS BIT) AS [IsFileAvailable] END' EXECUTE SP_EXECUTESQL @NCOMMAND END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FileSharingHandlerConnections' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FileSharingHandlerConnections] END GO CREATE PROCEDURE [KAAS_FileSharingHandlerConnections] (@HandlerCode VARCHAR(10), @DocFolderID INT) AS /************************************************************************************************************* * Stored Procedure Name : KAAS_FileSharingHandlerConnections * * Copied From : [dbo].[ky_NETSPFileSharingHandlerConnections] * * * * List a handler's connection details for all File Sharing servers * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.5.1.2 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2017-06-22 Pino Carafa Created * * 2017-08-03 Pino Carafa Added Client ID and Client Secret * * 2017-08-04 Pino Carafa Added Site ID * * 2017-08-24 Pino Carafa Added Domain and Proxy Settings KEYD-4750 and KEYD-4751 * * 2017-12-05 Pino Carafa No need to check for Personal Credentials for a Collab server * * 2019-11-06 Vinodhan Created KAAS_FileSharingHandlerConnections * * * *************************************************************************************************************/ BEGIN SELECT [FSS].[id] AS [ServerID], [FSS].[Name] AS [ServerName], [FSS].[Server] AS [Server], CONVERT(BIT, CASE WHEN [FSH].[id] IS NULL AND RTRIM(ISNULL([FSS].[CollabMatter], '')) = '' --2017-12-05 THEN 0 ELSE 1 END) AS [PersonalCredentials], [FSS].[TypeId] AS [ServerTypeID], [FSST].[TypeName] AS [ServerType], ISNULL([FSH].[UserId], [FSS].[AdminUserId]) AS [UserID], ISNULL([FSH].[Password], [FSS].[AdminPassword]) AS [Password], ISNULL([FSS].[CollabMatter], '') AS [CollabMatter], ISNULL([FSS].[CollabFolder], '') AS [CollabFolder], [FSS].[ClientID] AS [ClientID], [FSS].[ClientSecret] AS [ClientSecret], [FSS].[SiteID] AS [SiteID], [FSS].[Domain] AS [Domain], [FSS].[ProxyType] AS [ProxyType], [FSS].[ProxyServer] AS [ProxyServer], [FSS].[ProxyPort] AS [ProxyPort] FROM [dbo].[FileSharingServers] [FSS] INNER JOIN [dbo].[FileSharingServerTypes] [FSST] ON [FSST].[id] = [FSS].[TypeId] LEFT OUTER JOIN [dbo].[FileSharingHandlers] [FSH] ON [FSH].[FileSharingHandlerCode] = @HandlerCode AND [FSH].[FileSharingServersID] = [FSS].[id] WHERE [FSS].[Retired] = 0 AND ISNULL(@DocFolderID, 0) = ISNULL([FSS].[CollabDocFolderID], 0) ORDER BY [FSS].[Name] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_FilterGetSettings' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_FilterGetSettings] END GO CREATE PROCEDURE [dbo].[KAAS_FilterGetSettings] (@KeyName VARCHAR(50)) AS /**************************************************************************************************************** * * [dbo].[KAAS_FilterGetSettings] * * Get system configuration settings using Like Operator * * 2022-07-05 Vinodhkumar.M [KAAS_FilterGetSettings] * ****************************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [SET].[KeyName], [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] LIKE @KeyName+'%' SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FindKeyId',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_FindKeyId] GO CREATE PROCEDURE KAAS_FindKeyId ( @Result INT OUTPUT ) AS /****************************************************************************************************** Stored Procedure Name : KAAS_FindKeyId Copied From : ky_NETFindKeyId Description: To find the KeyId for case contact window, when the data is Stored temporary in the grid. 11 JUL 2019 Vinodhan K Created ******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT @Result = IDENT_CURRENT( 'CaseAssociatesContacts' ) SET @Result = @Result + 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_FlagGetDetails', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_FlagGetDetails] END GO CREATE PROCEDURE [dbo].[KAAS_FlagGetDetails] ( @CalledFrom INT=0 ) AS /******************************************************************************************************* * This Procedure is used to Action Flag Details * * * * Stored Procedure Name : [dbo].[KAAS_FlagGetDetails] * * Copied from : [dbo].[Ky_NETFlagGetDetails] * * * * Modification History: * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF (@CalledFrom =1) SELECT [ActionFlagID], RTRIM(ISNULL([Description],'')) as [Description], [IsActive] FROM [dbo].[ActionFlag] ORDER BY [ActionFlagID] ELSE SELECT [ActionFlagID], RTRIM(ISNULL([Description],'')) as [Description] FROM [dbo].[ActionFlag] WHERE [IsActive] = 1 ORDER BY [ActionFlagID] SET NOCOUNT OFF END GO /****** Object: StoredProcedure [dbo].[KAAS_GenerateCaseAssociateCode] Script Date: 21/01/2015 12:44:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID(N'KAAS_GenerateCaseAssociateCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GenerateCaseAssociateCode] GO CREATE PROCEDURE [dbo].[KAAS_GenerateCaseAssociateCode] (@code VARCHAR(100), @result VARCHAR(100) OUTPUT) AS /******************************************************************************************************* * This procedure is used to Generate Case Associate code. * * * * Stored Procedure Name : [dbo].[KAAS_GenerateCaseAssociateCode] * * Copied from : [dbo].[ky_NETGenerateCaseAssociateCode] * * * * Modification History : * * 2019-05-31 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @var VARCHAR(100) DECLARE @var1 VARCHAR(100) DECLARE @zero VARCHAR(100) DECLARE @len INT DECLARE @i INT DECLARE @k VARCHAR(100) SET @k='0' SET @i = 0 SET @zero = ''; IF(@code <> '') BEGIN SELECT @var = MAX(SUBSTRING(CODE,LEN(@code)+1,6-LEN(@code)))+1 FROM CaseAssociatesNames WHERE CODE LIKE @Code+'[0-9]%' END ELSE BEGIN SELECT @var = MAX(SUBSTRING(CODE,LEN(@code)+1,6-LEN(@code)))+1 FROM CaseAssociatesNames WHERE CODE NOT LIKE @Code+'%[^0-9]%' END --PRINT @var; IF @var <> '' BEGIN SET @var1 = (@code+@var); SET @len = LEN(@var1); --PRINT @var; --PRINT @len; WHILE @i < (6-@len) BEGIN SET @i = @i + 1 SET @zero = (@k+@zero); END SET @result = (@code+@zero+@var); END ELSE BEGIN --PRINT @code; SET @len = LEN(@code); --PRINT @code; WHILE @i < (5-@len) BEGIN SET @i = @i + 1 SET @zero = (@k+@zero); END SET @result = (@code+@zero+'1'); IF(@len = 6) BEGIN SET @result = @code; END --PRINT @result; END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_GetActionCode]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_GetActionCode] GO CREATE PROCEDURE [KAAS_GetActionCode] ( @CSCODE VARCHAR(15) ) /******************************************************************************************************* * This procedure is used to get the Action code. * * * * Stored Procedure Name : [dbo].[KAAS_GetActionCode] * * Copied from : [dbo].[ky_NETGetActionCode] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT RTRIM(CSWKTCODE) FROM CaseMaster WHERE RTRIM(CSCODE) = RTRIM(@CSCODE) SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetActionFlagIDs', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetActionFlagIDs] END GO CREATE PROCEDURE [dbo].[KAAS_GetActionFlagIDs] AS /******************************************************************************************************* * This Procedure is used to select Action Flag Details * * * * Stored Procedure Name : [dbo].[KAAS_GetActionFlagIDs] * * Copied from : [dbo].[Ky_NETGetActionFlagIDs] * * * * Modification History: * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT ActionFlagID FROM ActionFlag WHERE IsActive =1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetActionIDFromTrackRef' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetActionIDFromTrackRef] END GO CREATE PROCEDURE [dbo].[KAAS_GetActionIDFromTrackRef] ( @TrackReference INT, @ActionId INT OUT ) AS /******************************************************************************************************* Created By : Magesh Kumar Date : 25March2015 06:28 PM Description: This procedure is used get Action ID from diary table based on Track reference ID. * Stored Procedure Name : [dbo].[KAAS_GetActionIDFromTrackRef] * * Copied from : [dbo].[KY_NETGetActionIDFromTrackRef] * * * * Modification History : * * 2020-02-28 Ganapathy T Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT @ActionId = ISNULL(ACTIONID,0) FROM diary D INNER JOIN DiaryAttachments DA ON D.ACTIONID =DA.DiaryID WHERE DA.TrackReference = @TrackReference SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetActiveHandlersLookupList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetActiveHandlersLookupList] END GO Create PROCEDURE [dbo].[KAAS_GetActiveHandlersLookupList] AS /********************************************************************************************************* * * Return all active handlers in alphabetical order by name * * Modification History: * 2015-02-27 PINO - Found that the Left Outer Join to FeeEarnerCodes had been * replaced with an inner join. Reverted back to a left outer join * However, the BRANCH and NOMINAL need to be retrieved from the fee * earner, so for those handlers who don't have an associated Fee Earner * record with the same code, try to link by the [MAILADDRESS] column * instead. * 2016-01-29 PINO - Added "IsPartner" * 2016-02-01 PINO - The Fee Earner row could be Retired while the Handler is active * 2018-09-06 JOHN - NOMINAL now returns NominalCode for SAM4 systems. *2019-11-29 Rajesh Copied from [ky_NETSPGetActiveHandlersLookupList] *********************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [CODE], RTRIM(ISNULL(HAN.[NAME], '')) AS [NAME], RTRIM(ISNULL(HAN.[TEAM], '')) AS [TEAM], RTRIM(ISNULL(HAN.[EXCHANGEALIAS], '')) AS [EXCHANGEALIAS], CASE WHEN RTRIM(ISNULL(HAN.[Retired], 'Y')) = 'Y' THEN 'Y' ELSE 'N' END AS [Retired], RTRIM(ISNULL(FEC.[BRANCH], ISNULL(FEC2.[BRANCH], ''))) AS [BRANCH], CASE [dbo].[ISSAM4]() WHEN 1 THEN RTRIM(ISNULL(FEC.[NominalCode], ISNULL(FEC2.[NOMINAL], ''))) ELSE RTRIM(ISNULL(FEC.[NOMINAL], ISNULL(FEC2.[NOMINAL], ''))) END AS [NOMINAL], RTRIM(ISNULL(HAN.[EMAIL], '')) AS [EMAIL], RTRIM(ISNULL(TEA.[NAME], '')) AS [TeamName], CASE WHEN ISNULL(FEC.[CODE], FEC2.[CODE]) IS NULL THEN CONVERT(BIT, 0) WHEN RTRIM(ISNULL(FEC.[Retired], ISNULL(FEC2.[Retired], 'Y'))) = 'Y' THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsFeeEarner], CASE WHEN RTRIM(ISNULL(HAN.[TYPE], '')) = 'P' THEN CONVERT(BIT, 1) ELSE CONVERT(BIT, 0) END AS [IsPartner] FROM [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC ON FEC.[CODE] = HAN.[CODE] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC2 ON FEC2.[CODE] = HAN.[MAILADDRESS] LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] WHERE ISNULL(HAN.[RETIRED], 'N') <> 'Y' AND RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) <> 'Y' ORDER BY RTRIM(ISNULL(HAN.[NAME], '')) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetAdestRate' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAdestRate] END GO CREATE PROCEDURE [dbo].[KAAS_GetAdestRate] (@MatterCode VARCHAR(20), @ChargeCode VARCHAR(3)) AS /******************************************************************************************************* * This procedure is used to get default value from charging matrix for SAM4 * * * * Stored Procedure Name : [dbo].[KAAS_GetAdestRate] * * Copied from : [dbo].[ky_NETGetAdestRate] * * * * Modification History : * * 2019-05-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @ChargeArrangement VARCHAR(3) DECLARE @MatDebt DECIMAL(18, 2) DECLARE @MatRate DECIMAL(13, 2) SELECT @ChargeArrangement = RTRIM(ISNULL([MAT].[ChargeArrangement], ISNULL([CNT].[ChargeArrangement], ''))), @MatDebt = ISNULL([MAT].[OriginalDebt], 0) + ISNULL([MAT].[DebtInterest], 0) - ISNULL([MAT].[DebtCollected], 0) FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[Contacts] [CNT] ON [CNT].[Code] = [MAT].[ClientCode] WHERE [MAT].[Code] = @MatterCode SELECT @MatRate = CASE WHEN [CMX].[BAND1LIMIT] >= @MatDebt THEN [CMX].[BAND1RATE] WHEN [CMX].[BAND2LIMIT] >= @MatDebt THEN [CMX].[BAND2RATE] WHEN [CMX].[BAND3LIMIT] >= @MatDebt THEN [CMX].[BAND3RATE] WHEN [CMX].[BAND4LIMIT] >= @MatDebt THEN [CMX].[BAND4RATE] WHEN [CMX].[BAND5LIMIT] >= @MatDebt THEN [CMX].[BAND5RATE] WHEN [CMX].[BAND6LIMIT] >= @MatDebt THEN [CMX].[BAND6RATE] WHEN [CMX].[BAND7LIMIT] >= @MatDebt THEN [CMX].[BAND7RATE] ELSE [CMX].[BAND8RATE] END FROM [dbo].[ChargingMatrix] [CMX] WHERE [CMX].[ARRANGEMENTCODE] = @ChargeArrangement AND [CMX].[CHARGECODE] = @ChargeCode SELECT ISNULL(@MatRate, CONVERT(DECIMAL(13, 2), 0)) AS Rate END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetAllConfigFromSettings' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAllConfigFromSettings] END GO CREATE PROCEDURE [dbo].[KAAS_GetAllConfigFromSettings] AS /******************************************************************************************************* * This Procedure is used to Get Settings * * * * Stored Procedure Name : [dbo].[KAAS_GetAllConfigFromSettings] * * * * Modification History : * * 2022-03-09 Vinodhkumar.M Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [SET].[KeyName], [SET].[KeyValue] FROM [dbo].[Settings] [SET] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetAllHandlersLookupList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAllHandlersLookupList] END GO CREATE PROCEDURE [dbo].[KAAS_GetAllHandlersLookupList] AS /************************************************************************************************************ * * Return all handlers in alphabetical order by name * * Stored Procedure Name : KAAS_GetAllHandlersLookupList * Copied From : ky_NETSPGetAllHandlersLookupList * * Modification History * 2015-09-17 PINO - Found that the Left Outer Join to FeeEarnerCodes had been * replaced with an inner join. Reverted back to a left outer join * However, the BRANCH and NOMINAL need to be retrieved from the fee * earner, so for those handlers who don't have an associated Fee Earner * record with the same code, try to link by the [MAILADDRESS] column * instead. * 2016-01-29 PINO - Added "IsPartner" * 2016-02-01 PINO - The Fee Earner row could be Retired while the Handler is active * 2017-08-06 Vinodhan Created KAAS_GetAllHandlersLookupList * 2020-06-03 Prabhu Nominal Code Selected based on Fee Earner Code * 2021-06-24 Sadiq Changed Teamcode with retired condition (12505) * 2021-11-23 Aakif Copied IsFeeEarner & IsPartner field to map it to boolean (Custom dropdownlist) ************************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [CODE], RTRIM(ISNULL(HAN.[NAME], '')) AS [NAME], RTRIM(ISNULL(HAN.[TEAM], '')) AS [TEAM], RTRIM(ISNULL(HAN.[EXCHANGEALIAS], '')) AS [EXCHANGEALIAS], CASE WHEN RTRIM(ISNULL(HAN.[Retired], 'Y')) = 'Y' THEN 'Y' ELSE 'N' END AS [RETIRED], RTRIM(ISNULL(FEC.[BRANCH], ISNULL(FEC2.[BRANCH], ''))) AS [BRANCH], RTRIM(ISNULL(FEC.[NominalCode], ISNULL(FEC2.[NOMINAL], ''))) AS [NOMINAL], RTRIM(ISNULL(HAN.[EMAIL], '')) AS [EMAIL], RTRIM(ISNULL(TEA.[NAME], '')) AS [TeamName], CASE WHEN ISNULL(FEC.[CODE], FEC2.[CODE]) IS NULL THEN CONVERT(BIT, 0) WHEN RTRIM(ISNULL(FEC.[Retired], ISNULL(FEC2.[Retired], 'Y'))) = 'Y' THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsFeeEarner], CASE WHEN RTRIM(ISNULL(HAN.[TYPE], '')) = 'P' THEN CONVERT(BIT, 1) ELSE CONVERT(BIT, 0) END AS [IsPartner], CASE WHEN ISNULL(FEC.[CODE], FEC2.[CODE]) IS NULL THEN CONVERT(BIT, 0) WHEN RTRIM(ISNULL(FEC.[Retired], ISNULL(FEC2.[Retired], 'Y'))) = 'Y' THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsFeeEarnerBit], CASE WHEN RTRIM(ISNULL(HAN.[TYPE], '')) = 'P' THEN CONVERT(BIT, 1) ELSE CONVERT(BIT, 0) END AS [IsPartnerBit] FROM [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC ON FEC.[CODE] = HAN.[CODE] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC2 ON FEC2.[CODE] = HAN.[MAILADDRESS] LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] WHERE ISNULL(HAN.[RETIRED], 'N') <> 'Y' ORDER BY RTRIM(ISNULL(HAN.[NAME], '')) END GO IF [dbo].[ISSAM4]() = 0 BEGIN EXEC(' IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N''KAAS_GetAllInvoices'' AND SO.[type] = ''P'') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAllInvoices] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_GetAllInvoices] (@matter VARCHAR(20)) AS /******************************************************************* * * ky_NETSPGetOutstandingInvoices * Get Outstanding Invoices for a matter * * 2018-12-05 John Ginnane Created * 2020-04-18 Arun Copied from ky_NETSPGetAllInvoices *******************************************************************/ BEGIN SELECT RTRIM(ISNULL(DTL.[MATTER], '''')) AS [MatterCode], RTRIM(ISNULL(DTL.[TYPE], '''')) AS [Type], RTRIM(ISNULL(DTL.[CLIENT], '''')) AS [ClientCode], DTL.[DATE] As [Date], RTRIM(ISNULL(DTL.[REF], '''')) AS [Ref], ISNULL(DTL.[BATCHNO], 0) AS [BatchNo], ISNULL(DTL.[PREF], 0) AS [Pref], ISNULL(DTL.[NARR], 0) AS [Narrative], ISNULL(DTL.[ORIGINAL], 0) AS [Original], ISNULL(DTL.[ORFEES], 0) AS [Original Fees], ISNULL(DTL.[OROUTLAY], 0) AS [Original Outlay], ISNULL(DTL.[ORVAT], 0) AS [Original VAT], ISNULL(DTL.[OSVALUE], 0) AS [OSValue], ISNULL(DTL.[OSFEES], 0) AS [Outstanding Fees], ISNULL(DTL.[OSOUTLAY], 0) AS [Outstanding Outlay], ISNULL(DTL.[OSVAT], 0) AS [Outstanding VAT], RTRIM(ISNULL(DTL.[VATCODE], '''')) AS [VAT Code], ISNULL(DTL.[PER], 0) AS [Period], ISNULL(DTL.[YEAR], 0) AS [Year], RTRIM(ISNULL(DTL.[FEECODE], '''')) AS [Ledger FeeEarnerCode], RTRIM(ISNULL(LFE.[NAME], '''')) AS [Ledger FeeEarner], CONVERT(INT, ISNULL(DTL.[RECORDID], 0)) AS [RecordID], RTRIM(ISNULL(MAT.[FECODE], '''')) AS [FeeEarnerCode], RTRIM(ISNULL(FE.[NAME], '''')) AS [FeeEarner], RTRIM(ISNULL(MAT.[DEPT], '''')) AS [Dept], RTRIM(ISNULL(MAT.[WTYPE], '''')) AS [WType], RTRIM(ISNULL(MAT.[BRANCH], '''')) AS [Branch], ISNULL(MAT.[FILENUM], 0) AS [FileNum], RTRIM(ISNULL(MAT.[THIRDPART], '''')) AS [ThirdPart], RTRIM(ISNULL(MAT.[ThPartSol], '''')) AS [ThPartSol], RTRIM(ISNULL(MAT.[OldRef], '''')) AS [OldRef], RTRIM(ISNULL(MAT.[PCODE], '''')) AS [PCODE], RTRIM(ISNULL(MAT.[PFECODE], '''')) AS [PFeeEarnerCode], RTRIM(ISNULL(PFE.[NAME], '''')) AS [PFeeEarner], RTRIM(ISNULL(MAT.[USER1], '''')) AS [User1], RTRIM(ISNULL(MAT.[USER2], '''')) AS [User2], RTRIM(ISNULL(MAT.[USER3], '''')) AS [User3], RTRIM(ISNULL(MAT.[FileColour], '''')) AS [FileColour], ISNULL(MAT.[OUTFILENO], 0) AS [OutFileNo], RTRIM(ISNULL(CTC.[NAME], '''')) AS [ClientName], RTRIM(ISNULL(CTC.[FE], '''')) AS [ClientFeeEarnerCode], RTRIM(ISNULL(CFE.[NAME], '''')) AS [ClientFeeEarner], CASE WHEN RTRIM(ISNULL(CTC.[CLIENT], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Client], RTRIM(ISNULL(CTC.[OTHERREF], '''')) AS [OtherRef], RTRIM(ISNULL(CTC.[OPSISREF], '''')) AS [OpsisRef], ISNULL(CTC.[CONTACTNO], 0) AS [ContactNo], ISNULL(CTC.[COMPBILLONOFF], 0) AS [CompBillOnOff], RTRIM(ISNULL(CTC.[CLIENTGROUP], '''')) AS [ClientGroup], RTRIM(ISNULL(CTC.[TAXTYPE], '''')) AS [TaxType], RTRIM(ISNULL(FCL.[COLOURDESC], '''')) AS [FileColourDescription], ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB] FROM [dbo].[DebtorsLedger] DTL LEFT OUTER JOIN [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Handlers] FE ON FE.[CODE] = MAT.[FECode] LEFT OUTER JOIN [dbo].[Handlers] PFE ON PFE.[CODE] = MAT.[PFECODE] LEFT OUTER JOIN [dbo].[contacts] CTC LEFT OUTER JOIN [dbo].[Handlers] CFE ON CFE.[CODE] = CTC.[FE] ON MAT.[ClientCode]= CTC.[Code] ON DTL.[MATTER] = MAT.[Code] LEFT OUTER JOIN [dbo].[Handlers] LFE ON LFE.[CODE] = DTL.[FEECODE] LEFT OUTER JOIN [dbo].[FileColours] FCL ON FCL.[COLOURCODE] = MAT.[FileColour] WHERE DTL.[MATTER] = @matter AND DTL.[TYPE] = ''I'' AND DTL.[DATE] IS NOT NULL ORDER BY DTL.[RECORDID] ASC END') END GO IF [dbo].[ISSAM4]() = 1 BEGIN EXEC(' IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N''KAAS_GetAllInvoicesSAM4'' AND SO.[type] = ''P'') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAllInvoicesSAM4] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_GetAllInvoicesSAM4] ( @matter VARCHAR(20)) AS /******************************************************************* * * ky_NETSPGetOutstandingInvoices * Get Outstanding Invoices for a matter * * 2018-12-05 John Ginnane Created * *******************************************************************/ BEGIN SELECT RTRIM(ISNULL(TRN.[MatterCode], '''')) AS [MatterCode], RTRIM(ISNULL(TRN.[XnType], '''')) AS [Type], RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], TRN.[TransDate] AS [TransDate], RTRIM(ISNULL(TRN.[TransRef], '''')) AS [TransRef], ISNULL(TRN.[BatchNo], 0) AS [BatchNo], ISNULL(TRN.[PostRef], 0) AS [PostRef], ISNULL(TRN.[Narrative], 0) AS [Narrative], RTRIM(ISNULL(TRN.[VATRate], '''')) AS [VATRate], ISNULL(TRN.[PostingPeriod], 0) AS [PostingPeriod], ISNULL(TRN.[PostingYear], 0) AS [PostingYear], TRN.[XnID] AS [XnID], ISNULL(TRN.[DebtorsValue], 0) AS [DebtorsValue], ISNULL(TRN.[FeesBilled], 0) AS [FeesBilled], ISNULL(TRN.[OutlayNV], 0) AS [OutlayNV], ISNULL(TRN.[OutlayV], 0) AS [OutlayV], ISNULL(TRN.[MiscBilled], 0) AS [MiscBilled], ISNULL(TRN.[VATonFees], 0) AS [VATonFees], ISNULL(TRN.[VATonOutlay], 0) AS [VATonOutlay], ISNULL(TRN.[VATonMisc], 0) AS [VATonMisc], ISNULL(TRN.[DebtorsValueOS], 0) AS [DebtorsValueOS], ISNULL(TRN.[FeesOS], 0) AS [FeesOS], ISNULL(TRN.[OutlayNVOS], 0) AS [OutlayNVOS], ISNULL(TRN.[OutlayVOS], 0) AS [OutlayVOS], ISNULL(TRN.[MiscOS], 0) AS [MiscOS], ISNULL(TRN.[VATonFeesOS], 0) AS [VATonFeesOS], ISNULL(TRN.[VATOutlayOS], 0) AS [VATOutlayOS], ISNULL(TRN.[VATMiscOS], 0) AS [VATMiscOS] FROM [dbo].[Transactions] AS TRN LEFT OUTER JOIN [dbo].[matters] MAT ON TRN.[MatterCode] = MAT.[Code] WHERE TRN.[DebtorsValue] <> 0 AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[XnType] = ''I'' AND TRN.[CorrectionInd] IN (''L'', ''C'') AND TRN.[MatterCode] = @matter AND TRN.[TransDate] IS NOT NULL AND TRN.[TypeCode] = ''Invoice Issued'' ORDER BY TRN.[XnID] ASC END') END GO IF EXISTS (SELECT * FROM [sys].[objects] AS [SO] WHERE [SO].[name] = 'KAAS_GetAllNominals' AND [SO].[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAllNominals] END GO CREATE PROCEDURE [dbo].[KAAS_GetAllNominals] AS /******************************************************************************************************* * * * [dbo].[KAAS_GetAllNominals] * * * * Returns a list of all nominal accounts. * * * * Modification History: * * 2019-11-11 Dheepin Vijith K Created * * 2024-04-05 John Ginnane #11719 Rewrote and refactored * *******************************************************************************************************/ BEGIN SET NOCOUNT ON; SELECT ISNULL(LTRIM(RTRIM([NOM].[CODE])), '') AS [Code], ISNULL(LTRIM(RTRIM([NOM].[DESC])), '') AS [Description], CASE WHEN RTRIM(ISNULL([NOM].[CLIENTAC], '')) = 'Y' THEN 1 ELSE 0 END AS [IsClientAccount], CASE WHEN RTRIM(ISNULL([NOM].[DEPOSITYN], '')) = 'Y' THEN 1 ELSE 0 END AS [IsDepositAccount], ISNULL(LTRIM(RTRIM([NOM].[DEPOSITTYPE])), '') AS [DepositType], ISNULL(LTRIM(RTRIM([NOM].[SEQ])), '') AS [Sequence], ISNULL(LTRIM(RTRIM([NOM].[PB])), '') AS [ProfitLossOrBalanceSheet], ISNULL(LTRIM(RTRIM([NOM].[TYPE])), '') AS [TypeCode], ISNULL(LTRIM(RTRIM([NT].[NTYDESC])), '') AS [TypeDescription] FROM [dbo].[Nominal] AS [NOM] LEFT OUTER JOIN [dbo].[NominalTypes] AS [NT] ON [NT].[NTYCODE] = [NOM].[TYPE] ORDER BY [NOM].[CODE] ASC END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetAllSettings' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAllSettings] END GO CREATE PROCEDURE [dbo].[KAAS_GetAllSettings] AS /******************************************************************************************************* * Get system configuration settings * * * * Stored Procedure Name : [dbo].[KAAS_GetAllSettings] * * Copied from : [dbo].[spGetSettings] * * * * Modification History : * * 2019-04-10 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @SETTINGS TABLE ([KeyName] VARCHAR(50), [KeyValue] VARCHAR(100)) DECLARE @NCOMMAND NVARCHAR(MAX) IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = ' SELECT [SET].[KeyName], [SET].[KeyValue] FROM [dbo].[Settings] [SET]' END ELSE BEGIN SET @NCOMMAND = ' SELECT [SET].[KeyName], ISNULL(RTRIM(CONVERT(VARCHAR(100), [CTS].[strValue])), [SET].[Keyvalue]) AS [KeyValue] FROM [dbo].[Settings] [SET] LEFT OUTER JOIN [dbo].[CtrlStr] [CTS] ON [CTS].[Code] = [SET].[KeyName]' END INSERT INTO @SETTINGS ([KeyName], [KeyValue]) EXEC sp_executesql @NCOMMAND -- Default settings START IF [dbo].[ISSAM4]() = 0 BEGIN INSERT INTO @SETTINGS ([KeyName], [KeyValue]) SELECT DEF.[KeyName], DEF.[KeyValue] FROM (SELECT 'MaxClCode' AS [KeyName], '6' AS [KeyValue]) DEF LEFT OUTER JOIN [dbo].[Settings] [SET] ON [SET].[KeyName] = DEF.[KeyName] WHERE [SET].[SettingID] IS NULL END ELSE BEGIN INSERT INTO @SETTINGS ([KeyName], [KeyValue]) SELECT DEF.[KeyName], DEF.[KeyValue] FROM (SELECT 'MaxClCode' AS [KeyName], '8' AS [KeyValue]) DEF LEFT OUTER JOIN [dbo].[Settings] [SET] ON [SET].[KeyName] = DEF.[KeyName] WHERE [SET].[SettingID] IS NULL END IF [dbo].[ISSAM4]() = 0 BEGIN INSERT INTO @SETTINGS ([KeyName], [KeyValue]) SELECT DEF.[KeyName], DEF.[KeyValue] FROM (SELECT 'MaxMatNum' AS [KeyName], '4' AS [KeyValue]) DEF LEFT OUTER JOIN [dbo].[Settings] [SET] ON [SET].[KeyName] = DEF.[KeyName] WHERE [SET].[SettingID] IS NULL END ELSE BEGIN INSERT INTO @SETTINGS ([KeyName], [KeyValue]) SELECT DEF.[KeyName], DEF.[KeyValue] FROM (SELECT 'MaxMatNum' AS [KeyName], '8' AS [KeyValue]) DEF LEFT OUTER JOIN [dbo].[Settings] [SET] ON [SET].[KeyName] = DEF.[KeyName] WHERE [SET].[SettingID] IS NULL END SELECT [SET].[KeyName], [SET].[KeyValue] FROM @SETTINGS [SET] SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetAPIVersion',N'P')IS NOT NULL DROP PROCEDURE KAAS_GetAPIVersion GO CREATE PROCEDURE KAAS_GetAPIVersion AS /********************************************************** KAAS_GetAPIVersion This procedure is used to fetch the latest version of the script Modification History: --------------------- DATE NAME DESCRIPTION -------------------------------------------------------------- 2019AUG22 ARUN Created 2019JUN25 Arun V Added SQL Server 2021Jan25 Sadiq Added Framework version 2023DEC15 Vignesh M Modified Multiple to single result row **************************************************************/ BEGIN DECLARE @SqlServerVersion NVARCHAR(500) SELECT @SqlServerVersion = @@VERSION SELECT TOP 1 [Version] as DBVersion, [ReleaseDate] as ReleaseDate, @SqlServerVersion as SQLVersion, (SELECT TOP 1 [CompatibleVersion] as KHFrameworkVersion FROM [dbo].[KYScriptLog] ORDER BY id DESC)KHFrameworkVersion, (SELECT TOP 1 [timestamp] as KHFrameworkVersionReleaseDate FROM [dbo].[KYScriptLog] ORDER BY id DESC)KHFrameworkVersionReleaseDate FROM [Common].[Release] ORDER BY ReleaseID DESC END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetAssociatedDocument' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAssociatedDocument] END GO CREATE PROCEDURE [dbo].[KAAS_GetAssociatedDocument] (@ActionID VARCHAR(50)) AS /************************************************************************************************ * This procedure is used to Fetch Associated document * * * * Stored Procedure Name : [dbo].[KAAS_GetAssociatedDocument] * * Copied from : [dbo].[Ky_NetGetAssociatedDocument] * * * * Modification History : * * 2023-06-19 Nithyanandham M Created * ************************************************************************************************/ BEGIN --Associated Documents 2022-07-08 START DECLARE @TADS TABLE ([SeqNo] INT IDENTITY(1, 1) PRIMARY KEY NOT NULL, [ACTION] VARCHAR(15) NOT NULL, [DOCUMENT] VARCHAR(10) NOT NULL, [OPTIONAL] CHAR(1) NOT NULL) --2022-07-08 use work table to cater for NULL SeqNos INSERT INTO @TADS ([ACTION], [DOCUMENT], [OPTIONAL]) SELECT RTRIM(ISNULL([TAD].[ACTION], '')), RTRIM(ISNULL([TAD].[DOCUMENT], '')), CASE WHEN RTRIM(ISNULL([TAD].[OPTIONAL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ActionID ORDER BY ISNULL([TAD].[SeqNo], 999), RTRIM(ISNULL([TAD].[DOCUMENT], '')) --2022-07-08 Use Work Table instead of original [dbo].[TemplateActionDcouments] to ensure we always get contiguous SeqNo values here SELECT [TAD].[ACTION] AS [ACTION], [TAD].[DOCUMENT] AS [DOCUMENT], [TAD].[OPTIONAL] AS [OPTIONAL], RTRIM(ISNULL([TD].[CODE], '')) AS [CODE], RTRIM(ISNULL([TD].[FILEPATH], '')) AS [LFILEPATH], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([TD].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([TD].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([TD].[FILEPATH], ''))) - 2) END AS [FILEPATH], RTRIM(ISNULL([TD].[NAME], '')) AS [NAME], RTRIM(ISNULL([TD].[TYPE], '')) AS [TYPE], RTRIM(ISNULL([TD].[DOCCLASS], '')) AS [DOCCLASS], [TAD].[SeqNo] AS [SeqNo], [TD].[STARTTOKEN] AS [StartToken], [TD].[ENDTOKEN] AS [EndToken], [TD].[ConvertToPDF] FROM @TADS [TAD] LEFT OUTER JOIN [dbo].[TemplateDocuments] [TD] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([TD].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([TD].[FilePath], 1, 1) ON [TD].[CODE] = [TAD].[DOCUMENT] WHERE [TAD].[ACTION] = @ActionID ORDER BY [TAD].[SeqNo] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetAzureDATInfo' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAzureDATInfo] END GO Create Procedure [dbo].[KAAS_GetAzureDATInfo] (@TrackReference INT, @Version INT) AS /************************************************************************************************************* * * * [dbo].[ky_NETSPGetAzureDATInfo] * * * * Gets the information Azure needs to retrieve a Diary Attachment * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.6.4.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2018-11-12 Pino Carafa Created * * 2019-11-19 Pino Carafa Add Link to DiaryAttachmentOriginalMatterLinks * * 2020-02-06 Pino Carafa Filepath loses colon for file paths that are really local, and that don't * * have a drive letter covered by [dbo].[UNCAlias] * * 2020-05-26 Pino Carafa Add Matter Code and Client Code * * 2020-06-08 Arun Vasu Copied from Ky_NETSPGetAzureDATInfo * * * 2024-05-24 Vignesh M Modified Diary Id is added * * *************************************************************************************************************/ BEGIN DECLARE @FilePath VARCHAR(500) DECLARE @Document VARCHAR(100) DECLARE @DotPos INT DECLARE @SlashPos INT DECLARE @FileExtension VARCHAR(10) DECLARE @MatterUniqueID INT DECLARE @IsCurrent BIT DECLARE @Type VARCHAR(10) DECLARE @MatterCode VARCHAR(20) DECLARE @ClientCode VARCHAR(10) DECLARE @ActionId INT SELECT @TrackReference = [DAT].[TrackReference], @Document = RTRIM(ISNULL([DAT].[DOCUMENT], '')), @FilePath = REVERSE(RTRIM(ISNULL([DAV].[Filepath], ISNULL([DAT].[FILEPATH], '')))), @MatterUniqueID = ISNULL([DAOML].[OriginalUniqueID], [MAT].[uniqueid]), @Version = CASE WHEN [DAV].[Version] IS NULL THEN [CV].[CurrentVersion] ELSE [DAV].[Version] END, @IsCurrent = CASE WHEN [DAV].[Version] IS NULL THEN 1 ELSE 0 END, @Type = [DAT].[TYPE], @MatterCode = RTRIM(ISNULL([MAT].[Code], '')), @ClientCode = RTRIM(ISNULL([MAT].[ClientCode], '')), @ActionId = [DAT].[DiaryID] FROM [dbo].[DiaryAttachments] [DAT] LEFT OUTER JOIN [dbo].[DiaryAttachmentOriginalMatterLinks] [DAOML] ON [DAOML].[TrackReference] = [DAT].[TrackReference] INNER JOIN [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CASECODE] ON [DIA].[ACTIONID] = [DAT].[DiaryID] LEFT OUTER JOIN [dbo].[DiaryAttachmentVersioning] [DAV] ON [DAV].[TrackReference] = [DAT].[TrackReference] AND [DAV].[Version] = @Version CROSS APPLY (SELECT ISNULL(MAX([DAV2].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV2] WHERE [DAV2].[TrackReference] = [DAT].[TrackReference]) [CV] WHERE [DAT].[TrackReference] = @TrackReference SET @DotPos = CHARINDEX('.', @FilePath) SET @SlashPos = CHARINDEX('\', @FilePath) IF @DotPos < 1 BEGIN SET @FileExtension = '' END ELSE IF @DotPos < @SlashPos BEGIN SET @FileExtension = REVERSE(SUBSTRING(@FilePath, 1, @DotPos)) END ELSE BEGIN SET @FileExtension = '' END IF @Document = '' BEGIN IF @SlashPos > 0 BEGIN SET @Document = REVERSE(SUBSTRING(@FilePath, 1, @SlashPos - 1)) SET @Document = SUBSTRING(@Document, 1, LEN(@Document) - LEN(@FileExtension)) IF @Document LIKE '%_' + CONVERT(VARCHAR(10), @TrackReference) BEGIN SET @Document = SUBSTRING(@Document, 1, LEN(@Document) - LEN('_' + CONVERT(VARCHAR(10), @TrackReference))) END END ELSE BEGIN SET @Document = 'File' END END SET @FilePath = REVERSE(@FilePath) IF LEN(@FilePath) > 1 BEGIN IF SUBSTRING(@FilePath, 2, 1) = ':' BEGIN IF (SELECT [UNC].[UNC] FROM [dbo].[UNCAlias] [UNC] WHERE [UNC].[Drive] = SUBSTRING(@FilePath, 1, 1)) IS NOT NULL BEGIN SELECT @FilePath = ISNULL((SELECT [UNC].[UNC] FROM [dbo].[UNCAlias] [UNC] WHERE [UNC].[Drive] = SUBSTRING(@FilePath, 1, 1)), SUBSTRING(@FilePath, 1, 1)) + SUBSTRING(@FilePath, 3, LEN(@FilePath) - 2) END END END SELECT @TrackReference AS [TrackReference], @Document AS [Document], @FileExtension AS [FileExtension], @MatterUniqueID AS [MatterUniqueID], @FilePath AS [FilePath], @Version AS [RetrievedVersion], @IsCurrent AS [IsCurrent], @Type AS [Type], @MatterCode AS [MatterCode], @ClientCode AS [ClientCode], @ActionId AS [ActionId] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetBank' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetBank] END GO CREATE PROCEDURE [dbo].[KAAS_GetBank] (@BankAcc VARCHAR(10)) AS /**************************************************************************************************************** * * Stored Procedure Name - KAASGetBank * Copied from - ky_NETSPGetBank * * This stored procedure retrieves the details for a Bank Account * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * remains fully functional * ****************************************************************************************** * * * * Supersedes: - * * First compatible version: 5.6.3.1 * * Last compatible software version: - * * Superseded by: - * * * ****************************************************************************************** * * Modification History * 2018-08-21 Pino Carafa Created * 2019-08-27 John Ginnane KEYD-6081 - Added retired column (only used in SAM3 for now) * 2018-08-21 Sadiq Copied from ky_NETSPGetBank ****************************************************************************************************************/ BEGIN DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'NominalCode' WHERE SO.[name] = 'Nominal' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' SELECT RTRIM(ISNULL([NCD].[NominalCode], '''')) As [NominalCode], RTRIM(ISNULL([NCD].[NominalCode], '''')) As [Code], RTRIM(ISNULL([NCD].[AccountName], '''')) AS [Description], CASE WHEN RTRIM(ISNULL([NCD].[Client], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Client Account], CASE WHEN RTRIM(ISNULL([NCD].[Deposit], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Deposit Account], '''' AS [Deposit Type], '''' AS [Sequence], RTRIM(ISNULL([NCD].[PorB], '''')) AS [P or B], '''' AS [Nominal Type Code], '''' AS [Nominal Type], CONVERT(BIT, 1) AS [ValidBank],' + CASE WHEN EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Nominal' AND COLUMN_NAME = 'Retired') THEN ' CASE WHEN ISNULL([NCD].[Retired], '''') = ''Y'' THEN ''Y'' ELSE ''N'' END' ELSE ' ''N''' END + ' AS [Retired] FROM [dbo].[Nominal] [NCD] WHERE [NCD].[NominalCode] = ''' + RTRIM(ISNULL(@BankAcc, '')) + '''' END ELSE BEGIN SET @COMMAND = ' SELECT RTRIM(ISNULL([NCD].[CODE], '''')) As [NominalCode], RTRIM(ISNULL([NCD].[CODE], '''')) As [Code], RTRIM(ISNULL([NCD].[DESC], '''')) AS [Description], CASE WHEN RTRIM(ISNULL([NCD].[CLIENTAC], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Client Account], CASE WHEN RTRIM(ISNULL([NCD].[DEPOSITYN], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Deposit Account], RTRIM(ISNULL([NCD].[DEPOSITTYPE], '''')) AS [Deposit Type], RTRIM(ISNULL([NCD].[SEQ], '''')) AS [Sequence], RTRIM(ISNULL([NCD].[PB], '''')) AS [P or B], RTRIM(ISNULL([NCD].[TYPE], '''')) AS [Nominal Type Code], RTRIM(ISNULL([NT].[NTYDESC], '''')) AS [Nominal Type], CASE RTRIM(ISNULL([NCD].[ChequeReq], ''N'')) WHEN ''Y'' THEN CONVERT(BIT, 1) ELSE CONVERT(BIT, 0) END AS [ValidBank], ''N'' AS [Retired] FROM [dbo].[Nominal] [NCD] LEFT OUTER JOIN [dbo].[NominalTypes] [NT] ON [NT].[NTYCODE] = [NCD].[TYPE] WHERE [NCD].[CODE] = ''' + REPLACE(@BankAcc, '''', '''''') + '''' END EXEC (@COMMAND) END GO DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 1 BEGIN EXEC (' IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = ''KAAS_GetBillDetailsSAM4'' AND SO.[type] = ''P'') BEGIN DROP PROCEDURE [dbo].[KAAS_GetBillDetailsSAM4] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_GetBillDetailsSAM4] (@IDV VARCHAR(10)) AS /*********************************************************************************************** * * [dbo].[KAAS_GetBillDetailsSAM4] * Gets detail lines for a Bill * * Modification History * 2018-08-07 John Ginnane Created * 2020-05-29 Prabhu Copied from ky_NETSPGetBillDetailsSAM4 * 2020-05-29 Prabhu Removed Space for the fetching Column to .Net code ***********************************************************************************************/ BEGIN DECLARE @ID INT BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH SELECT RTRIM(ISNULL(BH.[MatterCode], '''')) AS [MatterCode], ISNULL(BH.[BillingID], 0) AS [DRAFTNO], CASE WHEN RTRIM(ISNULL(BD.[RecordType], '''')) IN (''F'', ''M'', ''O'', ''N'') THEN RTRIM(ISNULL(BD.[RecordType], '''')) ELSE ''F'' END AS [RecordType], RTRIM(ISNULL(HAN.[CODE], '''')) AS [FeeEarnerCode], RTRIM(ISNULL(HAN.[NAME], '''')) AS [FeeEarner], RTRIM(ISNULL(NOM.[NominalCode], '''')) AS [NominalCode], RTRIM(ISNULL(NOM.[AccountName], '''')) AS [Nominal], RTRIM(ISNULL(BD.[VATCODE], '''')) AS [VATCode], ISNULL(BD.[VATRATE], 0) AS [VATRate], ISNULL(BD.[NetValue], 0) AS [NetValue], ISNULL(BD.[VATVALUE], 0) AS [VATValue], RTRIM(ISNULL(BD.[Narrative], '''')) AS [Narrative], ISNULL(BD.[RecordID], 0) AS [ID], ISNULL(BD.[Seq], 0) AS [LINENO], RTRIM(ISNULL(OC.[OutlayCode], '''')) AS [OutlayCode], RTRIM(ISNULL(BD.[PreBilledOutlay], '''')) AS [PreBilledOutlay], ISNULL(BD.[Style], 0) AS [Style], ISNULL(BD.[Indent], 1) AS [Indent] FROM [dbo].[BillHead] BH INNER JOIN [dbo].[BillDetail] BD ON BD.[BillID] = BH.[BillingID] LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = BD.[FeCode] LEFT OUTER JOIN [dbo].[Nominal] NOM ON NOM.[NominalCode] = BD.[NoninalCode] LEFT OUTER JOIN [dbo].[OutlayCode] AS OC ON OC.[OutlayCode] = BD.[OutlayCode] WHERE BD.[BillID] = @ID ORDER BY BD.[Seq] ASC END') END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetBillDiaryItem' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetBillDiaryItem] END GO CREATE PROCEDURE[dbo].[KAAS_GetBillDiaryItem] ( @CaseCode VARCHAR(20), @DraftBillNo INT ) AS /****************************************************************************************************** * Fetch the Action ID linked to a bill * * * * Stored Procedure Name : [dbo].[KAAS_GetBillDiaryItem] * * * * Copied From : [dbo].[ky_NETSPGetBillDiaryItem] * * * * Modification History: * * 2024-05-08 Balamurugan C Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT TOP 1 [DIA].[ACTIONID] FROM [dbo].[diary] [DIA] WITH (NOLOCK) WHERE [DIA].[CASECODE] = @CaseCode AND [DIA].[DRAFTBILLNO] = @DraftBillNo ORDER BY [DIA].[ACTIONID] DESC SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetBillingDetail',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetBillingDetail] GO CREATE PROCEDURE [dbo].[KAAS_GetBillingDetail] @DraftNo VARCHAR(100) /****************************************************************************************************************** * Used to get billing detail. * * * * Stored Procedure Name: [dbo].[KAAS_GetBillingId] * * * * Modification History: * * 2024-03-28 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN SELECT Id , DraftNo FROM BgControl WHERE DraftNo = @DraftNo END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetBillingReports' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetBillingReports] END GO Create PROCEDURE [dbo].[KAAS_GetBillingReports] AS /********************************************************************************************* * * [dbo].[ky_NETSPGetBillingReports] * CREATED 2014-12-01 PINO * Lists all the Billing Layout reports, default one first. *--------------------------------------------------------------------------------------------- *2019-11-06 Rajesh Copied from ky_NETSPGetBillingReports *2023-02-21 Nithyanandham M Modified-Table name has been updated to newly created one *********************************************************************************************/ BEGIN DECLARE @ReportID INT DECLARE @Reports TABLE ([outid] INT IDENTITY(1, 1), [reportid] INT, [name] VARCHAR(500), [filename] VARCHAR(500)) SET @ReportID = [dbo].[ky_FNDefaultBillLayoutReport]() IF (@ReportID <> 0) BEGIN INSERT INTO @Reports ([reportid], [name], [filename]) SELECT CRR.[Reportid], CRR.[name], CRR.[filename] FROM [dbo].[KaaS_CRReport] CRR WHERE CRR.[Reportid] = @ReportID END INSERT INTO @Reports ([reportid], [name], [filename]) SELECT CRR.[Reportid], CRR.[name], CRR.[filename] FROM [dbo].[KaaS_CRReport] CRR WHERE CRR.[report_type] = 'B' AND CRR.[Reportid] <> @ReportID ORDER BY CRR.[name], CRR.[Reportid] SELECT REP.[name], REP.[filename], REP.[reportid] FROM @Reports REP END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetBriefSectionDocuments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetBriefSectionDocuments] END GO CREATE PROCEDURE [dbo].[KAAS_GetBriefSectionDocuments] (@SectionIDV VARCHAR(10)) AS /************************************************************************************************************* * Stored Procedure Name : [dbo].[KAAS_GetBriefSectionDocuments] * * Copied from : [dbo].[ky_NETSPSectionDocuments] * * * * List the documents in a Brief Section * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2019-03-07 Pino Carafa Retrieved from existing procedure definition * * 2019-03-07 Pino Carafa Included matter Unique ID * * 2019-10-14 Ganapathy T Created * * * *************************************************************************************************************/ BEGIN DECLARE @SectionID INT BEGIN TRY SET @SectionID = CONVERT(INT, @SectionIDV) END TRY BEGIN CATCH SET @SectionID = 0 END CATCH IF (@SectionID <> 0) BEGIN SELECT RTRIM(ISNULL([BD].[DocumentName], '')) AS [DocumentName], ISNULL([BD].[TrackReference], 0) AS [TrackReference], CASE WHEN [UNC].[Drive] IS NULL THEN RTRIM(ISNULL([BD].[FileLocation], '')) ELSE RTRIM(ISNULL( [UNC].[UNC] + SUBSTRING([BD].[FileLocation], 3, LEN([BD].[FileLocation]) - 2), '')) END AS [FileLocation], [BD].[Filedate] AS [Filedate], UPPER(RTRIM(ISNULL([BD].[DocumentType], ''))) AS [DocumentType], RTRIM(ISNULL([BD].[DocumentClass], '')) AS [DocumentClass], RTRIM(ISNULL([BD].[IMDOCID], '')) AS [IMDocID], [BD].[recordid] AS [RecordId], [BD].[SortOrder] AS [SortOrder], CASE WHEN ISNULL([DIA].[PRIORITY], 'N') = 'H' THEN 'High' WHEN ISNULL([DIA].[PRIORITY], 'N') = 'L' THEN 'Low' ELSE 'Normal' END AS [Priority], RTRIM(ISNULL([DT].[ActionTypeDescription], 'Action')) AS [ActionType], ISNULL([MAT].[UniqueID], 0) AS [MatterUniqueID] FROM [dbo].[BriefDocuments] [BD] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON [UNC].[Drive] = CASE WHEN SUBSTRING([BD].[FileLocation], 2, 1) = ':' THEN LEFT([BD].[FileLocation], 1) ELSE '' END LEFT OUTER JOIN [dbo].[DiaryAttachments] [DAT] INNER JOIN [dbo].[Diary] [DIA] INNER JOIN [dbo].[DiaryDelActionType] [DT] ON [DT].[ActionType] = [DIA].[ACTIONTYPE] ON [DIA].[ActionID] = [DAT].[DiaryID] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CaseCode] ON [DAT].[TrackReference] = ISNULL([BD].[TrackReference], 0) AND [DAT].[TrackReference] <> 0 WHERE [BD].[SECTIONID] = @SectionID ORDER BY [BD].[SortOrder] END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetBriefSections' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetBriefSections] END GO CREATE PROCEDURE [dbo].[KAAS_GetBriefSections] (@matter VARCHAR(20), @CopyBriefV VARCHAR(10)) AS /******************************************************************************************************************************** * * Stored Procedure Name : [dbo].[KAAS_BriefTemplates] * Copied from : [dbo].[ky_NETSPGetBriefSections] * * List the sections in a Brief * * 2019-10-12 Ganapathy T Created * ********************************************************************************************************************************/ BEGIN DECLARE @CopyBrief INT BEGIN TRY SET @CopyBrief = CONVERT(INT, @CopyBriefV) END TRY BEGIN CATCH SET @CopyBrief = NULL END CATCH IF (@CopyBrief = 0) BEGIN SET @CopyBrief = NULL END SELECT BRS.[ID] As [SectionID], BRS.[CoverPage], BRS.[Sequence], BRS.[Section], BRF.[ID], BRF.[Title] FROM [dbo].[BriefSections] BRS CROSS APPLY ( SELECT TOP 1 BRI.[ID], BRI.[Title] FROM [dbo].[Brief] BRI WHERE BRI.[MatterCode] = @Matter AND ISNULL(@CopyBrief, BRI.[ID]) = BRI.[ID] ORDER BY BRI.[PublishDate] DESC, BRI.[ID] DESC) BRF WHERE BRS.[BriefID] = BRF.[ID] ORDER BY BRS.[CoverPage] DESC, BRS.[Sequence] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetCaseAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetCaseAction] END GO CREATE PROCEDURE [dbo].[KAAS_GetCaseAction] (@ActionID INT) /******************************************************************************************************* * This procedure is used to check the condition for case code enable or disabled * * * * Stored Procedure Name : [dbo].[KAAS_GetCaseAction] * * Copied from : [dbo].[Ky_NETGetCaseAction] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON IF EXISTS (SELECT TOP 1 1 FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @ActionID AND DIA.[STATUS] = 0) BEGIN DECLARE @COMMAND VARCHAR(MAX) IF [dbo].[ISSAM4]() = 0 BEGIN SET @COMMAND = ' IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillHeader] BH WHERE BH.[ACTIONID] = ' + CONVERT(VARCHAR(10), @ActionID) + ') BEGIN SELECT ''True'' END ELSE BEGIN SELECT ''False'' END' END ELSE BEGIN SET @COMMAND = 'SELECT ''True''' END EXEC (@COMMAND) END ELSE BEGIN SELECT 'False' END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetCaseActionsForCaseType', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetCaseActionsForCaseType] END GO CREATE PROCEDURE [dbo].[KAAS_GetCaseActionsForCaseType] (@CaseType VARCHAR(4)) /******************************************************************************************************* * This Procedure has been checked for SQL statement general standards/optimization * * * * Stored Procedure Name : [dbo].[KAAS_GetCaseActionsForCaseType] * * Copied from : [dbo].[spGetCaseActionsForCaseType] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2023-04-24 Sadiq Added Flag,Priority value(15826) *******************************************************************************************************/ AS BEGIN SELECT RTRIM(A.WORKTYPE) AS WorkType, RTRIM(A.ACTIONCODE) AS ActionCode, CONVERT(INT, A.SEQ) AS Seq, RTRIM(B.[DESC]) AS [Desc], RTRIM(B.WKTCODE) AS WKTCode, RTRIM(B.ACTTYPE) AS ActType, RTRIM(B.[STATUS]) AS [Status], RTRIM(B.PROCESSTYPE) AS ProcessType, RTRIM(B.MILESTONETYPE) AS MileStoneType, RTRIM(ISNULL(B.[Arrangement],'')) AS [Arrangement], RTRIM(ISNULL(B.[Flag],'')) AS Flag, RTRIM(ISNULL(B.[PRIORITY],'')) AS [Priority] FROM ActionWorkTypes A LEFT OUTER JOIN TemplateActions B ON A.ACTIONCODE= B.ACTIONCODE WHERE UPPER(A.WORKTYPE)= UPPER(@CaseType) ORDER BY WORKTYPE,SEQ END GO IF OBJECT_ID(N'KAAS_GetCaseAssociateContacts', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetCaseAssociateContacts] END GO CREATE PROCEDURE [dbo].[KAAS_GetCaseAssociateContacts] ( @NameCode VARCHAR(20) ) AS /******************************************************************************************************* * This sp is used to Fetch Data for Case Associate Contacts WebApi * * * * Stored Procedure Name : [dbo].[KAAS_GetCaseAssociateContacts] * * Copied from : [dbo].[ky_NETFetchCaseAssociateEditLoadData] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @AssCont VARCHAR(100) SET NOCOUNT ON SELECT RTRIM(ISNULL(CAC.[NAMECODE], '')) AS [NameCode], RTRIM(ISNULL(CAST(CAC.[KEYID] AS VARCHAR(20)), '')) AS [KeyId], RTRIM(ISNULL(CAC.[NAME], '')) AS [Name], RTRIM(ISNULL(CAC.[SALUTATION], '')) AS [Salutation], RTRIM(ISNULL(CAC.[JOBTITLE], '')) AS [JobTitle], RTRIM(ISNULL(CAC.[ADDRESS], '')) AS [Address], RTRIM(ISNULL(CAC.[PHONE], '')) AS [Phone], RTRIM(ISNULL(CAC.[FAX], '')) AS [Fax], RTRIM(ISNULL(CAC.[MOBILE], '')) AS [Mobile], RTRIM(ISNULL(CAC.[EMAIL], '')) AS [Email], RTRIM(ISNULL(CAC.[RELATIONSHIP], '')) AS [Relationship], RTRIM(ISNULL(CAC.[NOTES], '')) AS [Notes] FROM [dbo].[CaseAssociatesContacts] CAC WHERE CAC.[NAMECODE] = @NameCode SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetCaseAssociates', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetCaseAssociates] END GO CREATE PROCEDURE [dbo].[KAAS_GetCaseAssociates] ( @CaseCode VARCHAR(20), @Retired VARCHAR(1) = 'N', @EmailSearch NVARCHAR(500) = NULL ) AS /******************************************************************************************************* * This procedure is used to return Case Associate from WebApi * * * * Stored Procedure Name : [dbo].[KAAS_GetCaseAssociates] * * Copied from : [dbo].[ky_NETCaseAssociateLoadMainGrid] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2019-07-12 Ramesh K Modified to implement the email search for OWA * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SET @EmailSearch = LTRIM(RTRIM(@EmailSearch)); IF @EmailSearch = '' BEGIN SET @EmailSearch = NULL; END SELECT CCN.[CASECODE] AS [CaseCode], RTRIM(CCN.[CONTYPE]) AS [ConType], CCN.[CONNUM] AS [ConNum], CCN.[NAMECODE] AS [CaseContactsNameCode], CCN.[SOLCODE] AS [CaseContactsSolCode], CCN.[SOLREF] AS [CaseContactsSolRef], CCN.[INSCODE] AS [CaseContactsInsCode], CCN.[ASSIGNEDCONTACT] AS [AssignedContact], CCN.[CONNUM] AS [CaseContactsSeq], CASE WHEN (RTRIM(ISNULL(CCN.[ForCopy],'0')) = '1' OR RTRIM(ISNULL(CCN.[ForCopy],'0')) = 'Y' ) THEN 'True' ELSE 'False' END AS [CaseContactsForCopy], ISNULL(CCN.[IsAssociateOtherSide],'False') AS [CaseContactsIsAssociateOtherSide], ISNULL(CCN.Retired,'N') AS [CaseContactsRetired], CAC.[NAMECODE] AS [CaseAssociatesContactsNameCode], CAC.[KEYID] AS [CaseAssociatesContactsKeyId], CAC.[NAME] AS [CaseAssociatesContactsName], CAC.[PHONE] AS [CaseAssociatesContactsPhone], CAC.[EMAIL] AS [CaseAssociatesContactsEmail1], CAC.[NAME] AS [AssignedContactName], CAC.[PHONE] AS [AssignedContactPhone], AST.[CODE] AS [AssociateTypeCode], AST.[DESCRIPTION] AS [AssociateTypeDescription], CAN.[CODE] AS [CaseAssociateCode], CAN.[TYPE] AS [CaseAssociateType], CAN.[NAME] AS [CaseAssociateName], CAN.[COMPANY] AS [CaseAssociateCompany], CAN.[ADDRESS] AS [CaseAssociateAddress], CAN.[PHONENO] AS [CaseAssociatePhoneNo], CAN.[MOBILENO] AS [CaseAssociateMonileNo], CAN.[EMAIL] AS [CaseAssociateEmail], CAN.[SEARCH] AS [CaseAssociateSearch], CAN.[CONTACTNO] AS [CaseAssociateContactNo], CAN.[SALUTATION], CASE WHEN RTRIM(ISNULL(CAN.[COMPANY],'')) <> '' THEN RTRIM(CAN.[Name]) + ' ('+ RTRIM(CAN.[COMPANY]) +')' ELSE RTRIM(CAN.[Name]) END AS [CaseAssociateNameNCompany] FROM [dbo].[CaseContacts] CCN LEFT OUTER JOIN [dbo].[CaseAssociatesContacts] CAC ON CAC.[KEYID] = CCN.[ASSIGNEDCONTACT] LEFT OUTER JOIN [dbo].[AssociateTypes] AST ON AST.[CODE] = CCN.[CONTYPE] LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CAN ON CAN.[CODE] = CCN.[NAMECODE] WHERE UPPER(CCN.[CASECODE]) = UPPER(@CaseCode) AND LEN(ISNULL(CCN.[NAMECODE],'')) >0 AND CCN.[NAMECODE] <> 'N/A' AND LEN(ISNULL(CAN.[NAME],''))>0 AND CAN.[NAME] <> 'N/A' AND (@RETIRED = 'Y' OR ISNULL(CCN.Retired, 'N') <> 'Y') AND ( @EmailSearch IS NULL OR CAN.[EMAIL] LIKE '%' + @EmailSearch + '%' ) ORDER BY CCN.[CASECODE], CCN.[CONTYPE], CCN.[CONNUM] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetCaseBriefs' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetCaseBriefs] END GO CREATE PROCEDURE [dbo].[KAAS_GetCaseBriefs] (@matter VARCHAR(20)) AS /************************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_GetCaseBriefs] * * Copied from : [dbo].[ky_NETSPCaseBriefs] * * * * List the Briefs that have been created for this Case * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.-.-.- * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2016-07-05 Pino Carafa Created * * 2019-03-15 Pino Carafa Add Action ID in output * * 2019-10-01 Ganapathy T Created * * * *************************************************************************************************************/ BEGIN SELECT [BRF].[ID] AS [ID], [BRF].[TITLE] AS [Title], [BRF].[Description] AS [Description], [BRF].[Author] AS [Author], [BRF].[Finalised] AS [Finalised], [BRF].[CreationDate] AS [CreationDate], [BRF].[PublishDate] AS [PublishDate], CASE WHEN [UNC].[Drive] IS NULL THEN [BRF].[Location] ELSE REPLACE([BRF].[Location], [UNC].[Drive] + ':', [UNC].[UNC]) END AS [Location], ISNULL([ACT].[DiaryID], 0) AS [ActionID], ISNULL([MAT].[uniqueid], 0) AS [UniqueId] FROM [dbo].[brief] [BRF] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [BRF].MatterCode LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON [UNC].[Drive] = CASE WHEN SUBSTRING([BRF].[Location], 2, 1) = ':' THEN LEFT([BRF].[Location], 1) ELSE '' END OUTER APPLY (SELECT TOP 1 [DAT].[DiaryID] FROM [dbo].[BriefAttachments] [BAT] INNER JOIN [dbo].[DiaryAttachments] [DAT] ON [DAT].[TrackReference] = [BAT].[TrackReference] WHERE [BAT].[BriefID] = [BRF].[ID]) [ACT] WHERE [BRF].[MatterCode] = @matter ORDER BY [BRF].[CreationDate] DESC END GO IF OBJECT_ID(N'KAAS_GetCaseContactsList',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetCaseContactsList] GO CREATE PROCEDURE [dbo].[KAAS_GetCaseContactsList] (@CaseCode VARCHAR(20), @ForEmail BIT = 1, @Number INT = 0, @Status VARCHAR(1) = '', @SearchText VARCHAR(4000) = NULL ) AS /************************************************************************************************************* * Stored Procedure Name: [KAAS_GetCaseContactsList] * Copied From : [KAAS_CP_ListCaseContacts] * List Case Contacts for Outlook Add-in * * ******************* * * * * * PLEASE NOTE: * If you make any changes to this procedure's parameters, please inform Pino Carafa as * * ============ * this will impact the Outlook Add-in! * * * * ******************* * * Modification History * 2015-12-03 Pino Make it usable for Framework, too * 2016-07-21 Suriya M KEYD-3783 - When you add a new strong room Deed file to a case, the Retired * Associates are showing in the "From Whom" & "To Whom" fields of "DEED" tab. * 2016-07-22 Pino Set default value for Status to ensure Outlook Add-in remains unaffected * 2018-05-01 Pino Carafa KEYD-4573 Add Secondary Email * 2019-12-04 Pino Carafa Return CC CONTYPE rather than CAN TYPE in first query * 2019-12-16 Pino Carafa Return Occupation * 2020-06-03 John Ginnane KEYD-6531 - Added mobile no to output * 2020-07-14 John Ginnane KEYD-6531 - Added SourceTable and SourceCode to output * 2020-08-25 Pino Carafa KEYD-6753 - Added Title to output * 2020-09-24 Arun Vasu KEYD-6648 - Added Work phone number to output * 2021-03-11 Arun Vasu Have get the FeeEarner, Partner label from setting table ref: 11634 * 2021-03-12 Arun Vasu Changed the logic the get the handler label values and set for handlers label ref: 11634 * 2021-06-18 Aakif Created * 2021-06-22 Aakif Fixed issue to fetch published contact * 2022-02-02 Vinodhkumar.M Created - Case Contacts list based on Matter Code for Saas Web App * 2022-02-03 Vinodhkumar.M Modified - added Id from ClientContacts * 2022-02-08 Vinodhkumar.M Modified - uncomment the query of ClientContacts, clients * 2022-02-24 Vinodhkumar.M Modified - Display all contacts whether it is published or not *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @FromWhom VARCHAR(10) DECLARE @FeeEarnerLabel VARCHAR(20) DECLARE @Partner VARCHAR(20) IF(@Status = 'T') BEGIN SET @FromWhom = RTRIM(ISNULL((SELECT [FMI].[TOWHOCODE] FROM [dbo].[FileManagerItems] [FMI] WHERE [FMI].[NUMBER] = @Number), '')) END ELSE BEGIN SET @FromWhom = RTRIM(ISNULL((SELECT [FMI].[FROMWHOCODE] FROM [dbo].[FileManagerItems] [FMI] WHERE [FMI].[NUMBER] = @Number), '')) END --Getting the fee earner, and Partner label value from setting SELECT @FeeEarnerLabel = [Keyvalue] FROM [Settings] WHERE [KeyName] = 'FeeEarnerLabel' SELECT @Partner = [Keyvalue] FROM [Settings] WHERE [KeyName] = 'PartnerLabel' SELECT [RES].[CODE] AS [Code], CASE WHEN [RES].[NAME] = '' THEN [RES].[COMPANY] ELSE [RES].[NAME] END AS [Name], [RES].[COMPANY] AS [Company], [RES].[EMAIL] AS [Email], [RES].[NAMECODE], [RES].[CASECODE] AS [CaseCode], [RES].[TYPE] AS [Type], [RES].[Occupation] AS [Occupation], CASE WHEN RTRIM(ISNULL([AST].[DESCRIPTION], '')) = '' THEN [RES].[TYPE] ELSE RTRIM(ISNULL([AST].[DESCRIPTION], '')) END AS [TypeDesc], LTRIM( CASE WHEN [RES].[NAME] = '' THEN '' WHEN [RES].[NAME] = [RES].[COMPANY] THEN '' ELSE [RES].[NAME] END + CASE WHEN [RES].[COMPANY] = '' THEN '' ELSE ' (' + [RES].[COMPANY] + ')' END) AS [NAMECOMP], [RES].[MobileNo] AS [MobileNo], [RES].[TITLE] AS [Title], [RES].[SourceTable], [RES].[SourceCode], [RES].[Work], [RES].[ClientNumberContact] FROM (SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CAN].[CODE], ''))) AS [CODE], CONVERT(VARCHAR(300), RTRIM(ISNULL([CAN].[NAME], ''))) AS [NAME], CONVERT(VARCHAR(50), RTRIM(ISNULL([CAN].[COMPANY], ''))) AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[EMAIL], ''))) AS [Email], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[OCCUPATION], ''))) AS [Occupation], CONVERT(VARCHAR(10), RTRIM(ISNULL([CC].[NAMECODE], ''))) AS [NAMECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CASECODE], ''))) AS [CASECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CONTYPE], ''))) AS [TYPE], --PINO 2019-12-04, WAS [CAN].[TYPE] CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[TITLE], ''))) AS [Title], CONVERT(VARCHAR(50), ISNULL([CAN].[MOBILENO], '')) AS [MobileNo], 'CaseAssociatesNames' AS [SourceTable], [CAN].[CODE] AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([CAN].[PHONENO], '')) AS [Work], CONVERT(VARCHAR(50), '') AS [ClientNumberContact] FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[CaseAssociatesNames] [CAN] ON [CAN].[CODE] = [CC].[NameCODE] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CAN].[EMAIL], '')) <> '') WHERE [CC].[CASECODE] = @CaseCode -- AND ISNULL([CC].PUBLISH, '') = 'Y' AND ( ISNULL([CC].Retired,'N') <> 'Y' OR [CC].NAMECODE = CASE @Number WHEN 0 THEN '' ELSE @FromWhom END) -- UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CLCODE], ''))) AS [Code], CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[FIRSTNAME], '')) + ' ' + RTRIM(ISNULL([CTC].[SURNAME], ''))) AS [Name], CONVERT(VARCHAR(50), RTRIM(ISNULL([CTC].[CLNAMECON], ''))) AS [Company], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[EmailAddress], ''))) AS [Email], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[Occupation], ''))) AS [Occupation], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CaseCode], CONVERT(VARCHAR(20), 'Client Contact') AS [Type], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[CLTITLE], ''))) AS [TITLE], CONVERT(VARCHAR(50), ISNULL([CTC].[Mobile], '')) AS [MobileNo], 'ClientContacts' AS [SourceTable], CONVERT(VARCHAR(50), [CTC].[id]) AS [SourceCode], CONVERT(VARCHAR(50),ISNULL([CTC].[WorkPhone],'')) AS [Work], CONVERT(VARCHAR(50),ISNULL([CTC].[CLNUMCONTACT],'')) AS [ClientNumberContact] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[ClientContacts] [CTC] ON [CTC].[CLCODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[EmailAddress], '')) <> '') WHERE [MAT].[CODE] = @CaseCode -- UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CAN].[CODE], ''))) AS [Code], CONVERT(VARCHAR(300), RTRIM(ISNULL([CAC].[NAME], ''))) AS [Name], CONVERT(VARCHAR(50), RTRIM(ISNULL([CAN].[COMPANY], ''))) AS [Company], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAC].[EMAIL], ''))) AS [Email], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[OCCUPATION], ''))) AS [Occupation], CONVERT(VARCHAR(10), RTRIM(ISNULL([CC].[NAMECODE], ''))) AS [NAMECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CASECODE], ''))) AS [CaseCode], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CONTYPE], ''))) AS [Type], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAC].[JOBTITLE], ''))) AS [Title], CONVERT(VARCHAR(50), ISNULL([CAC].[MOBILE], '')) AS [MobileNo], 'CaseAssociatesContacts' AS [SourceTable], CONVERT(VARCHAR(50), [CAC].[KEYID]) AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([CAC].[PHONE],'')) AS [Work], CONVERT(VARCHAR(50), '') AS [ClientNumberContact] FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[CaseAssociatesNames] [CAN] INNER JOIN [dbo].[CaseAssociatesContacts] [CAC] ON [CAC].[NAMECODE] = [CAN].[CODE] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CAC].[EMAIL], '')) <> '') ON [CAN].[CODE] = [CC].[NameCODE] WHERE [CC].[CASECODE] = @CaseCode -- AND ISNULL([CC].PUBLISH, '') = 'Y' --- UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CODE], ''))) AS [Code], CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[Name], ''))) AS [Name], CONVERT(VARCHAR(50), '') AS [Company], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[email], ''))) AS [Email], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[Occupation], ''))) AS [Occupation], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CaseCode], CONVERT(VARCHAR(20), 'Client') AS [Type], CONVERT(VARCHAR(100), '') AS [Title], --Not sure there is a column representing this in Contacts or client CONVERT(VARCHAR(50), ISNULL([CLI].[CLMOBNO], '')) AS [MobileNo], 'client' AS [SourceTable], [CTC].[CODE] AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([CTC].[Tel], '')) AS [Work], CONVERT(VARCHAR(50), '') AS [ClientNumberContact] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[Contacts] [CTC] ON [CTC].[CODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[email], '')) <> '') LEFT OUTER JOIN [dbo].[client] AS [CLI] ON [CLI].[CLCODE] = [CTC].[CODE] WHERE [MAT].[CODE] = @CaseCode --- UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([HAN].[CODE], ''))) AS [Code], CONVERT(VARCHAR(300), RTRIM(ISNULL([HAN].[Name], ''))) AS [Name], CONVERT(VARCHAR(50), '') AS [Company], CONVERT(VARCHAR(100), RTRIM(ISNULL([HAN].[email], ''))) AS [Email], CONVERT(VARCHAR(100), '') AS [Occupation], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CaseCode], CONVERT(VARCHAR(20), (CASE WHEN ColumnName='FECode' THEN ISNULL(@FeeEarnerLabel, 'Fee Earner') WHEN ColumnName='Partner' THEN ISNULL(@Partner, 'Partner') ELSE ColumnName END)) AS [Type], CONVERT(VARCHAR(100), '') AS [Title], CONVERT(VARCHAR(50), ISNULL([HAN].[PhoneNumber], '')) AS [MobileNo], 'Handlers' AS [SourceTable], [HAN].[CODE] AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([HAN].[Phoneno], '')) AS [Work], CONVERT(VARCHAR(50), '') AS [ClientNumberContact] FROM (SELECT [UNPVT].[Handlers] AS [HandlerValue], [UNPVT].[Handlerslist] AS [ColumnName] FROM [dbo].[matters] [MAT] UNPIVOT ( [Handlers] FOR [Handlerslist] IN ([MAT].[FECode], [MAT].[Partner], [MAT].[Secretary])) [UNPVT] WHERE [UNPVT].[Code] = @CaseCode AND [UNPVT].[Handlers] <> '') [HANDLERLIST] INNER JOIN [Handlers] [HAN] ON [HAN].[CODE] = [HANDLERLIST].[HandlerValue] UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CODE], ''))) AS [Code], CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[Name], ''))) AS [Name], CONVERT(VARCHAR(50), '') AS [Company], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[SecondaryEmail], ''))) AS [Email], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[Occupation], ''))) AS [Occupation], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CaseCode], CONVERT(VARCHAR(20), 'Client') AS [Type], CONVERT(VARCHAR(100), '') AS [Title], --Not sure there is a column representing this in Contacts or client CONVERT(VARCHAR(50), ISNULL([CLI].[CLMOBNO], '')) AS [MobileNo], 'client' AS [SourceTable], [CTC].[CODE] AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([CTC].[Tel], '')) AS [Work], CONVERT(VARCHAR(50), '') AS [ClientNumberContact] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[Contacts] [CTC] ON [CTC].[CODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[SecondaryEmail], '')) <> '') LEFT OUTER JOIN [dbo].[client] AS [CLI] ON [CLI].[CLCODE] = [CTC].[CODE] WHERE [MAT].[CODE] = @CaseCode) [RES] LEFT OUTER JOIN [dbo].[AssociateTypes] [AST] ON [AST].[CODE] = [RES].[TYPE] WHERE --[RES].[TYPE] <> 'client' --AND ( (RTRIM(LTRIM(ISNULL(@SearchText, ''''))) = '''') OR (RTRIM(LTRIM(@SearchText)) = '''') OR ( [NAME] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [TYPE] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [Email] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [MobileNo] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [Work] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' ) ) ORDER BY CASE WHEN [RES].[NAME] = '' THEN [RES].[COMPANY] ELSE [RES].[NAME] END, [RES].[TYPE] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetCaseFolders' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetCaseFolders] END GO CREATE PROCEDURE [dbo].[KAAS_GetCaseFolders] (@matter VARCHAR(20), @documentnamingmethod VARCHAR(1)) AS BEGIN /******************************************************************************************************* * Returns the default location for any documents stored against a case/matter * * * * Stored Procedure Name : [dbo].[KAAS_GetCaseFolders] * * Copied from : [dbo].[ky_NETGetCaseFolders] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ DECLARE @continue INT DECLARE @strDefaultFolder VARCHAR(255) DECLARE @error VARCHAR(1000) DECLARE @strFileName VARCHAR(255) DECLARE @strClientCode VARCHAR(20) DECLARE @strMatterNumber VARCHAR(20) DECLARE @storagemethod VARCHAR(1) DECLARE @docFolder VARCHAR(255) SET @continue = 0 SELECT @storagemethod = SCF.[StorageMethod] FROM [dbo].[SystemConfig] SCF SET @storagemethod = ISNULL(@storagemethod, 'C') SELECT @strClientCode = MAT.[ClientCode], @strMatterNumber = MAT.[Matter] FROM [dbo].[matters] MAT WHERE MAT.[Code] = @matter IF (@continue = 0) BEGIN BEGIN TRY SELECT @strDefaultFolder = (SELECT RTRIM(ISNULL(SC.[SCWPFOLDER], '')) FROM [dbo].[SystemConfig] SC) SET @strDefaultFolder = ISNULL(@strDefaultFolder, '') IF (@strDefaultFolder = '') BEGIN SET @continue = 4 SET @error = 'SCWPFOLDER not SET in System Config' END END TRY BEGIN CATCH SET @continue = 5 SET @error = 'Error retrieving SCWPFOLDER: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN BEGIN TRY SELECT @strFileName = RTRIM(ISNULL(CLT.[DCOUMENTFOLDER], '')) FROM [dbo].[client] CLT WHERE CLT.[CLCODE] = @strClientCode SET @strFileName = RTRIM(ISNULL(@strFileName, '')) IF (@strFileName = '') BEGIN SET @strFileName = @strDefaultFolder + '\' + @strClientCode UPDATE CLT SET CLT.[DCOUMENTFOLDER] = @strFileName FROM [dbo].[client] CLT WHERE CLT.[CLCODE] = @strClientCode END END TRY BEGIN CATCH SET @continue = 1 SET @error = 'Failed to establish Client Document Folder' END CATCH END IF (@storagemethod = 'D') BEGIN SET @docFolder = @strDefaultFolder + '\' + SUBSTRING(CONVERT(VARCHAR(5), 10000 + YEAR(GETDATE())), 2, 4) + SUBSTRING(CONVERT(VARCHAR(3), 100 + MONTH(GETDATE())), 2, 4) END IF (@storagemethod = 'C') BEGIN SET @docFolder = @strFileName + '\' + @strMatterNumber END SET @docFolder = ISNULL(@docFolder, '') SELECT RSL.[Continue], RSL.[Error], @strDefaultFolder AS [SCWPFolder], CASE WHEN UNCS.[Drive] IS NULL THEN @strDefaultFolder ELSE UNCS.[UNC] + SUBSTRING(@strDefaultFolder, 3, LEN(@strDefaultFolder) - 2) END AS [UNCSCWPFolder], RSL.[ClientFolder], CASE WHEN UNC.[Drive] IS NULL THEN RSL.[ClientFolder] ELSE UNC.[UNC] + SUBSTRING(RSL.[ClientFolder], 3, LEN(RSL.[ClientFolder]) - 2) END AS [UNCClientFolder], @docFolder As [DocumentFolder], CASE WHEN UNCD.[Drive] IS NULL THEN @docFolder ELSE UNCD.[UNC] + SUBSTRING(@docFolder, 3, LEN(@docFolder) - 2) END AS [UNCDocumentFolder], @storagemethod AS [StorageMethod], @documentnamingmethod AS [DocumentNamingMethod] FROM (SELECT @continue AS [Continue], RTRIM(ISNULL(@strFileName, '')) AS [ClientFolder], RTRIM(ISNULL(@error, '')) AS [Error]) RSL LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON UNC.[Drive] = CASE WHEN SUBSTRING(RSL.[ClientFolder], 2, 1) = ':' THEN LEFT(RSL.[ClientFolder], 1) ELSE '' END LEFT OUTER JOIN [dbo].[UNCAlias] UNCS ON UNCS.[Drive] = CASE WHEN SUBSTRING(@strDefaultFolder, 2, 1) = ':' THEN LEFT(@strDefaultFolder, 1) ELSE '' END LEFT OUTER JOIN [dbo].[UNCAlias] UNCD ON UNCD.[Drive] = CASE WHEN SUBSTRING(@docFolder, 2, 1) = ':' THEN LEFT(@docFolder, 1) ELSE '' END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetCaseplanDocFolderTree' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetCaseplanDocFolderTree] END GO CREATE PROCEDURE [dbo].[KAAS_GetCaseplanDocFolderTree] (@caseplan CHAR(4)) AS /************************************************************************************************ * Gets the folder structure for a Case Plan. Creates it if it doesn't exist * * * * Stored Procedure Name : [dbo].[KAAS_GetCaseplanDocFolderTree] * * Copied from : [dbo].[ky_NETSPGetCaseplanDocFolderTree] * * * * Modification History : * * 2023-06-27 Nithyanandham M Created * ************************************************************************************************/ BEGIN DECLARE @WKCODE CHAR(4) DECLARE @folderid INT SELECT TOP 1 @WKCODE = [TMP].[WKCODE] FROM [dbo].[Templates] [TMP] WHERE [TMP].[WKCODE] = @caseplan IF @WKCODE IS NULL BEGIN -- Dummy statement SELECT TOP 0 CONVERT(INT, 0) AS [id], CONVERT(INT, 0) AS [parent], CONVERT(VARCHAR(500), '') AS [foldername], CONVERT(INT, 0) AS [foldericon] RETURN END SELECT TOP 1 @folderid = CDF.[DocFolderID] FROM [dbo].[CasePlanDocFolders] CDF WHERE [CDF].[WKCode] = @WKCODE IF @folderid IS NULL BEGIN EXEC @folderid = [dbo].[ky_NETSPSaveDocFolderTree] '' INSERT INTO [dbo].[CasePlanDocFolders] ([WKCode], [DocFolderID]) SELECT @WKCODE, @folderid DECLARE @DefaultRootFolderName VARCHAR(500) SELECT @DefaultRootFolderName = CONVERT(VARCHAR(500), [SET].[KeyValue]) FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'DocFolderDefaultRootName' SET @DefaultRootFolderName = RTRIM(ISNULL(@DefaultRootFolderName, 'Documents')) UPDATE [DF] SET [DF].[foldername] = @DefaultRootFolderName FROM [dbo].[DocFolders] [DF] WHERE [DF].[id] = @folderid END SELECT * FROM [dbo].[KAAS_FN_GetDocFolders](@caseplan, @folderid, 1, 1) END GO IF OBJECT_ID(N'KAAS_GetCaseTypeLookupList',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetCaseTypeLookupList] GO CREATE PROCEDURE [dbo].[KAAS_GetCaseTypeLookupList] (@Retired VARCHAR(1) = 'N', @CasePlan VARCHAR(20) = '') /******************************************************************************************************* * To fetch case plan * * * * Stored Procedure Name : [dbo].[KAAS_GetCaseTypeLookupList] * * Copied from : [dbo].[spGetCaseTypeLookupList] * * * * Modification History : * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN SELECT RTRIM(WKCODE) AS Code, RTRIM(WKDESC) AS [Description], RTRIM(WKPATH) AS CTPath FROM Templates WHERE ISNULL(Retired,'N') in (@Retired, 'N' ) OR WKCODE=@CasePlan ORDER BY WKCODE END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetCaseUDFsForSearch' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetCaseUDFsForSearch] END GO CREATE PROCEDURE [dbo].[KAAS_GetCaseUDFsForSearch] (@matter VARCHAR(20)) AS /******************************************************************************************************* * Lists the Case UDF Fields at the bottom of the Matter selection pages * * * * Stored Procedure Name : [dbo].[KAAS_GetCaseUDFsForSearch] * * Copied from : [dbo].[ky_NETSPGetCaseUDFsForSearch] * * * * Modification History : * * 2019-05-08 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(SUF.[PROMPT], '')) AS [Prompt], CASE WHEN ISNULL(SUF.[Type], '') = 'Numeric' THEN CASE WHEN CUF.[NumberValue] IS NULL THEN RTRIM(ISNULL(CONVERT(VARCHAR(MAX), CUF.[TEXT1]), '')) ELSE CONVERT(VARCHAR(20), ISNULL(CUF.[NumberValue], 0)) END --2017-03-24 WHEN ISNULL(SUF.[Type], '') <> 'Date' THEN RTRIM(ISNULL(LUP.[Description], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), CUF.[TEXT1]), '')))) WHEN NOT CONVERT(VARCHAR(20),ISNULL(CUF.[NumberValue],0)) = '0.00' THEN CONVERT(VARCHAR, DATEADD(dd, ISNULL(CUF.[NumberValue], 0), '18001228'), 106) ELSE RTRIM(ISNULL(CONVERT(VARCHAR(MAX), CUF.[TEXT1]), '')) END AS [Value], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), CUF.[TEXT1]), '')) AS [Text] FROM [dbo].[CaseUDFAnswers] CUF LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] SUF ON SUF.[FILEPREFIX] = CUF.[UDFFILE] AND SUF.[FIELDNAME] = CUF.[UDFNAME] LEFT OUTER JOIN [dbo].[UDFLookups] LUP ON LUP.[FieldName] = CONVERT(VARCHAR(30), CUF.[UDFNAME]) AND LUP.[CODE] = CONVERT(VARCHAR(3), CUF.[Text1]) WHERE CUF.[CASECODE] = @matter AND SUF.[COMMON] = 1 ORDER BY CUF.[SEQNO] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetCaseWorkType' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetCaseWorkType] END GO CREATE PROCEDURE [dbo].[KAAS_GetCaseWorkType] (@MatterCode VARCHAR(20)) AS /******************************************************************************************************* * Gets the Work Type to default to in the Case Diary for this matter * * - will get CSWKTCODE if this refers to an existing Work Type * * - if that fails it will get the GEN code if it exists and it isn't retired * * - finally, as a last resort, if both the above fail it will get the first available non-retired one * * * * Stored Procedure Name : [dbo].[KAAS_GetCaseWorkType] * * Copied from : [dbo].[ky_NETSPGetCaseWorkType] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @WKCODE VARCHAR(4) DECLARE @WKDESC CHAR (40) DECLARE @Retired CHAR(1) SELECT @WKCODE = RTRIM(ISNULL([TMP].[WKCODE], '')), @WKDESC = RTRIM(ISNULL([TMP].[WKDESC], '')), @Retired = CASE WHEN ISNULL([TMP].[Retired], 'N') = 'Y' THEN 'Y' ELSE 'N' END FROM [dbo].[CaseMaster] [CSM] INNER JOIN [dbo].[Templates] [TMP] ON [TMP].[WKCODE] = [CSM].[CSWKTCODE] WHERE [CSM].[CSCODE] = @MatterCode IF NOT @WKCODE IS NULL BEGIN SELECT @WKCODE AS [CsWktCode], @WKDESC AS [CsWktDesc], @Retired AS [Retired] RETURN END SELECT @WKCODE = RTRIM(ISNULL([TMP].[WKCODE], '')), @WKDESC = RTRIM(ISNULL([TMP].[WKDESC], '')), @Retired = CASE WHEN ISNULL([TMP].[Retired], 'N') = 'Y' THEN 'Y' ELSE 'N' END FROM [dbo].[Templates] [TMP] WHERE [TMP].[WKCODE] = 'GEN' AND ISNULL([TMP].[Retired], 'N') <> 'Y' IF NOT @WKCODE IS NULL BEGIN SELECT @WKCODE AS [CsWktCode], @WKDESC AS [CsWktDesc], @Retired AS [Retired] RETURN END SELECT TOP 1 @WKCODE = RTRIM(ISNULL([TMP].[WKCODE], '')), @WKDESC = RTRIM(ISNULL([TMP].[WKDESC], '')), @Retired = CASE WHEN ISNULL([TMP].[Retired], 'N') = 'Y' THEN 'Y' ELSE 'N' END FROM [dbo].[Templates] [TMP] WHERE [TMP].[WKCODE] = 'GEN' AND ISNULL([TMP].[Retired], 'N') <> 'Y' ORDER BY [TMP].[WKCODE] IF NOT @WKCODE IS NULL BEGIN SELECT @WKCODE AS [CsWktCode], @WKDESC AS [CsWktDesc], @Retired AS [Retired] RETURN END SELECT CONVERT(VARCHAR(4), '') AS [CsWktCode], CONVERT(CHAR(40), '') AS [CsWktDesc], CONVERT(CHAR(1), 'Y') AS [Retired] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetChargeArragement' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetChargeArragement] END GO CREATE PROCEDURE [dbo].[KAAS_GetChargeArragement] ( @Code VARCHAR(20) ) /************************************************************************************************************* * This procedure is used Fetch the information for work flow Action Page Charge Arragement Change Action.* * * * Stored Procedure Name : [dbo].[KAAS_GetChargeArragement] * * Copied from : [dbo].[Ky_NetGetChargeArragement] * * Modification History : * * 2023-07-03 Nithyanandham M Created * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT RTRIM(ISNULL([DESCRIPTION], '' )) AS [Description], RTRIM(ISNULL(TIMECHARGE, '' )) AS TimeCharge, RTRIM(ISNULL([ACTION], '' )) AS [Action], RTRIM(ISNULL(BAND1LIMIT, 0 )) AS Band1Limit, RTRIM(ISNULL(BAND1RATE, 0 )) AS Band1Rate, RTRIM(ISNULL(BAND2LIMIT, 0 )) AS Band2Limit, RTRIM(ISNULL(BAND2RATE, 0 )) AS Band2Rate, RTRIM(ISNULL(BAND3LIMIT, 0 )) AS Band3Limit, RTRIM(ISNULL(BAND3RATE, 0 )) AS Band3Rate, RTRIM(ISNULL(BAND4LIMIT, 0 )) AS Band4Limit, RTRIM(ISNULL(BAND4RATE , 0 )) AS Band4Rate, RTRIM(ISNULL(BAND5LIMIT, 0 )) AS Band5Limit, RTRIM(ISNULL(BAND5RATE, 0 )) AS Band5Rate FROM ChargeArrangements WHERE CODE = @Code SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GETChargeRate',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GETChargeRate] GO CREATE PROCEDURE [dbo].[KAAS_GETChargeRate] (@HandlerCode VARCHAR(10), @Matter VARCHAR(20), @TaskCode VARCHAR(6) = '') AS /******************************************************************************************************* * Get rate for posting time based on Handler, Matter and Task Code. * * * * Stored Procedure Name : [dbo].[KAAS_GETChargeRate] * * Copied from : NA * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @TimeorCharge VARCHAR(1) SET @TimeorCharge = ( SELECT TOP 1 TimeOrCharge FROM TimeDayBook WHERE Matter = @Matter or FeeEarn = @HandlerCode ORDER BY 1 DESC ) SELECT CASE WHEN ISNULL(MAT.[ChargeOutRateInd], 'N') = 'Y' THEN CASE WHEN MHCG.[Rate] IS NULL THEN ISNULL(MCR.[Rate], 0) WHEN MHCG.[Rate] IS NOT NULL AND MCR.[Rate] IS NOT NULL THEN ISNULL(MCR.[Rate], 0) ELSE MHCG.[Rate] END WHEN ISNULL(CON.[ChargeOutRateInd], 'N') = 'Y' THEN CASE WHEN CHCG.[Rate] IS NULL THEN ISNULL(CCR.[Rate], 0) WHEN CHCG.[Rate] IS NOT NULL AND CCR.[Rate] IS NOT NULL THEN ISNULL(CCR.[Rate], 0) ELSE CHCG.[Rate] END ELSE ISNULL(FEP.[ChargeFct], 1.00) * (CASE WHEN FER.[RATE] = 0 THEN ISNULL(H.[RATE], 0) ELSE FER.[RATE] END) END AS [Rate], ISNULL(@TimeorCharge,'T') AS [TimeorCharge] FROM [dbo].[Matters] MAT INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] OUTER APPLY (SELECT MCOR.[Rate] FROM [dbo].[Handlers] HS INNER JOIN [dbo].[HandlerChargeGroups] HCG ON HS.[ChargeGroup] = HCG.[Code] INNER JOIN [dbo].[MatterChargeOutRates] MCOR ON MCOR.[FeCode] = HCG.[Code] AND MCOR.[MatterCode] = @Matter WHERE HS.[CODE] = @HandlerCode) MHCG OUTER APPLY (SELECT MCOR.[Rate] FROM [dbo].[Handlers] HS INNER JOIN [dbo].[HandlerChargeGroups] HCG ON HS.[ChargeGroup] = HCG.[Code] INNER JOIN [dbo].[ClientChargeOutRates] MCOR ON MCOR.[FeCode] = HCG.[Code] AND MCOR.[ClientCode] = MAT.[ClientCode] WHERE HS.[CODE] = @HandlerCode) CHCG OUTER APPLY (SELECT MCOR.[Rate] FROM [dbo].[MatterChargeOutRates] MCOR WHERE MCOR.[FeCode] = @HandlerCode AND MCOR.[MatterCode] = @Matter) MCR OUTER APPLY (SELECT CCOR.[Rate] FROM [dbo].[ClientChargeOutRates] CCOR WHERE CCOR.[FeCode] = @HandlerCode AND CCOR.[ClientCode] = MAT.[CLIENTCODE]) CCR CROSS APPLY (SELECT CASE ISNULL(MAT.[ChargeLevel], 3) WHEN 1 THEN ISNULL(HDL.[RATE1], 0) WHEN 2 THEN ISNULL(HDL.[RATE2], 0) WHEN 3 THEN ISNULL(HDL.[RATE3], 0) WHEN 4 THEN ISNULL(HDL.[RATE4], 0) WHEN 5 THEN ISNULL(HDL.[RATE5], 0) ELSE ISNULL(HDL.[RATE], 0) END AS [RATE] FROM [dbo].[Handlers] HDL WHERE HDL.[CODE] = @HandlerCode) FER OUTER APPLY (SELECT CASE ISNULL(TAC.[ChargeLevel], 'C') WHEN 'A' THEN 0.33 WHEN 'B' THEN 0.67 WHEN 'C' THEN 1.00 WHEN 'D' THEN 1.33 WHEN 'E' THEN 1.67 ELSE 1.00 END AS [ChargeFct] FROM [dbo].[TasksCodes] TAC WHERE TAC.[CODE] = @TaskCode) FEP LEFT OUTER JOIN [dbo].[Handlers] H ON H.[CODE] = @HandlerCode WHERE MAT.[Code] = @Matter END GO IF OBJECT_ID(N'KAAS_GetChequeColumns', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetChequeColumns] END GO CREATE PROCEDURE [dbo].[KAAS_GetChequeColumns] AS /******************************************************************* * * Gets the sizes of the columns in Cheque related tables * * Stored Procedure Name : KAAS_GetChequeColumns * Copied From : ky_NETSPGetChequeColumns * * Modify History: * ????-??-?? ??? Created * 2019-08-06 John Ginnane Added to SVN * 2019-08-06 Vinodhan Created KAAS_GetChequeColumns *******************************************************************/ BEGIN DECLARE @ChequeTables VARCHAR(MAX) SET @ChequeTables = '**ChequeRequisitionHeader**ChequeRequisitionDetail**ChequeRequisitions**' SELECT DISTINCT LOWER(SC.[name]) AS [ColumnName], ST.[name] As [TypeName], [dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) AS [MaxLength] FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] WHERE PATINDEX('%**' + SO.[name] + '**%', @ChequeTables) > 0 AND SO.[type] = 'U' END GO IF OBJECT_ID(N'KAAS_GetCK',N'P')IS NOT NULL DROP PROCEDURE KAAS_GetCK GO CREATE PROCEDURE [dbo].[KAAS_GetCK] AS /**************************************************************************************************** * * ky_NETGetCK * * Gets a unique string representing the server machine name and the DB name * * ????-??-?? Created * 2019-04-09 Pino Carafa - use a Fixed CK value to aid Azure migration * 2020-05-28 Pino Carafa - add code to insert DBCK value if it doesn't already exist * 2021-05-311 Sadiq Copied from ky_NETGetCK for Creating tenant User (12048) ****************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'DBCK') BEGIN -- The database has not yet been updated, so use the original method DECLARE @CK VARCHAR(50) SET @CK = RIGHT(convert(VARCHAR(30), @@SERVERNAME) + convert(VARCHAR(30), @@SERVERNAME) + convert(VARCHAR(30), @@SERVERNAME) + convert(VARCHAR(30), @@SERVERNAME) + convert(VARCHAR(30), @@SERVERNAME) + DB_NAME(), 50) INSERT INTO [dbo].[Settings] ([KeyName], [KeyValue]) VALUES('DBCK', @CK) SELECT @CK AS [CK] RETURN END SELECT TOP 1 CONVERT(VARCHAR(50), [SET].[KeyValue]) AS [CK] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'DBCK' SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetClientAssociateContact',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetClientAssociateContact] GO CREATE PROCEDURE [dbo].[KAAS_GetClientAssociateContact] (@CaseCode VARCHAR(20), @ForEmail BIT = 0, @Number INT = 0, @Status VARCHAR(1) = '', @SearchText VARCHAR(4000) = '' ) AS /************************************************************************************************************* * Stored Procedure Name: [KAAS_GetClientAssociateContact] * Copied From : [KAAS_GetCaseContactsList] * List Case Contacts for Outlook Add-in * * ******************* * * * * * PLEASE NOTE: * If you make any changes to this procedure's parameters, please inform Pino Carafa as * * ============ * this will impact the Outlook Add-in! * * * * ******************* * * Modification History * 2015-12-03 Pino Make it usable for Framework, too * 2016-07-21 Suriya M KEYD-3783 - When you add a new strong room Deed file to a case, the Retired * Associates are showing in the "From Whom" & "To Whom" fields of "DEED" tab. * 2016-07-22 Pino Set default value for Status to ensure Outlook Add-in remains unaffected * 2018-05-01 Pino Carafa KEYD-4573 Add Secondary Email * 2019-12-04 Pino Carafa Return CC CONTYPE rather than CAN TYPE in first query * 2019-12-16 Pino Carafa Return Occupation * 2020-06-03 John Ginnane KEYD-6531 - Added mobile no to output * 2020-07-14 John Ginnane KEYD-6531 - Added SourceTable and SourceCode to output * 2020-08-25 Pino Carafa KEYD-6753 - Added Title to output * 2020-09-24 Arun Vasu KEYD-6648 - Added Work phone number to output * 2021-03-11 Arun Vasu Have get the FeeEarner, Partner label from setting table ref: 11634 * 2021-03-12 Arun Vasu Changed the logic the get the handler label values and set for handlers label ref: 11634 * 2021-06-18 Aakif Created * 2021-06-22 Aakif Fixed issue to fetch published contact * 2022-02-23 Vinodhkumar.M Created - Case Contacts list based on Matter Code for Saas Web App *************************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [RES].[CODE] AS [Code], CASE WHEN [RES].[NAME] = '' THEN [RES].[COMPANY] ELSE [RES].[NAME] END AS [Name], [RES].[COMPANY] AS [Company], [RES].[EMAIL] AS [Email], [RES].[NAMECODE], [RES].[CASECODE] AS [CaseCode], [RES].[TYPE] AS [Type], [RES].[Occupation] AS [Occupation], CASE WHEN RTRIM(ISNULL([AST].[DESCRIPTION], '')) = '' THEN [RES].[TYPE] ELSE RTRIM(ISNULL([AST].[DESCRIPTION], '')) END AS [TypeDesc], LTRIM( CASE WHEN [RES].[NAME] = '' THEN '' WHEN [RES].[NAME] = [RES].[COMPANY] THEN '' ELSE [RES].[NAME] END + CASE WHEN [RES].[COMPANY] = '' THEN '' ELSE ' (' + [RES].[COMPANY] + ')' END) AS [NAMECOMP], [RES].[MobileNo] AS [MobileNo], [RES].[TITLE] AS [Title], [RES].[SourceTable], [RES].[SourceCode], [RES].[Work], [RES].[ClientNumberContact] FROM ( SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CLCODE], ''))) AS [Code], CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[FIRSTNAME], '')) + ' ' + RTRIM(ISNULL([CTC].[SURNAME], ''))) AS [Name], CONVERT(VARCHAR(50), RTRIM(ISNULL([CTC].[CLNAMECON], ''))) AS [Company], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[EmailAddress], ''))) AS [Email], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[Occupation], ''))) AS [Occupation], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CaseCode], CONVERT(VARCHAR(20), 'Client Contact') AS [Type], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[CLTITLE], ''))) AS [TITLE], CONVERT(VARCHAR(50), ISNULL([CTC].[Mobile], '')) AS [MobileNo], 'ClientContacts' AS [SourceTable], CONVERT(VARCHAR(50), [CTC].[id]) AS [SourceCode], CONVERT(VARCHAR(50),ISNULL([CTC].[WorkPhone],'')) AS [Work], CONVERT(VARCHAR(50),ISNULL([CTC].[CLNUMCONTACT],'')) AS [ClientNumberContact] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[ClientContacts] [CTC] ON [CTC].[CLCODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[EmailAddress], '')) <> '') WHERE [MAT].[CODE] = @CaseCode -- UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CAN].[CODE], ''))) AS [Code], CONVERT(VARCHAR(300), RTRIM(ISNULL([CAC].[NAME], ''))) AS [Name], CONVERT(VARCHAR(50), RTRIM(ISNULL([CAN].[COMPANY], ''))) AS [Company], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAC].[EMAIL], ''))) AS [Email], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[OCCUPATION], ''))) AS [Occupation], CONVERT(VARCHAR(10), RTRIM(ISNULL([CC].[NAMECODE], ''))) AS [NAMECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CASECODE], ''))) AS [CaseCode], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CONTYPE], ''))) AS [Type], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAC].[JOBTITLE], ''))) AS [Title], CONVERT(VARCHAR(50), ISNULL([CAC].[MOBILE], '')) AS [MobileNo], 'CaseAssociatesContacts' AS [SourceTable], CONVERT(VARCHAR(50), [CAC].[KEYID]) AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([CAC].[PHONE],'')) AS [Work], CONVERT(VARCHAR(50), '') AS [ClientNumberContact] FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[CaseAssociatesNames] [CAN] INNER JOIN [dbo].[CaseAssociatesContacts] [CAC] ON [CAC].[NAMECODE] = [CAN].[CODE] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CAC].[EMAIL], '')) <> '') ON [CAN].[CODE] = [CC].[NameCODE] WHERE [CC].[CASECODE] = @CaseCode ) [RES] LEFT OUTER JOIN [dbo].[AssociateTypes] [AST] ON [AST].[CODE] = [RES].[TYPE] WHERE [RES].[TYPE] <> 'client' AND ( (RTRIM(LTRIM(ISNULL(@SearchText, ''''))) = '''') OR (RTRIM(LTRIM(@SearchText)) = '''') OR ( [NAME] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [TYPE] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [Email] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [MobileNo] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [Work] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' ) ) ORDER BY CASE WHEN [RES].[NAME] = '' THEN [RES].[COMPANY] ELSE [RES].[NAME] END, [RES].[TYPE] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetClientContact' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetClientContact] END GO CREATE PROCEDURE [dbo].[KAAS_GetClientContact] (@CLCODE VARCHAR(8), @CLNUMCONTACT INT) AS /******************************************************************************************************* * Gets the details for a Client Contact. * * * * * * Stored Procedure Name : [dbo].[KAAS_GetClientContact] * * Copied from : [dbo].[ky_NETSPGetClientContact] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM([CC].[CLCODE]) AS [CLCODE], [CC].[CLNUMCONTACT] AS [CLNUMCONTACT], RTRIM(ISNULL([CC].[CLTITLE], '')) AS [CLTITLE], RTRIM(ISNULL([CC].[CLINITS], '')) AS [CLINITS], RTRIM(ISNULL([CC].[CLNAMECON], '')) AS [CLNAMECON], RTRIM(ISNULL([CC].[CLSALUTE], '')) AS [CLSALUTE], RTRIM(ISNULL([CC].[CLSSNUMBER], '')) AS [CLSSNUMBER], RTRIM(ISNULL([CC].[FIRSTNAME], '')) AS [FIRSTNAME], RTRIM(ISNULL([CC].[SURNAME], '')) AS [SURNAME], RTRIM(ISNULL([CC].[Address], '')) AS [Address], RTRIM(ISNULL([CC].[HomePhone], '')) AS [HomePhone], RTRIM(ISNULL([CC].[WorkPhone], '')) AS [WorkPhone], RTRIM(ISNULL([CC].[Mobile], '')) AS [Mobile], RTRIM(ISNULL([CC].[EmailAddress], '')) AS [EmailAddress], RTRIM(ISNULL([CC].[PPSNo], '')) AS [PPSNo], RTRIM(ISNULL([CC].[BankSortCode], '')) AS [BankSortCode], CONVERT(NVARCHAR(11),RTRIM([CC].[Dob]),121) AS [Dob], CONVERT(NVARCHAR(11),RTRIM([CC].[MarrigeDate]),121) AS [MarrigeDate], CONVERT(NVARCHAR(11),RTRIM([CC].[DateofDeath]),121) AS [DateofDeath], RTRIM(ISNULL([CC].[Occupation], '')) AS [Occupation], RTRIM(ISNULL([CC].[Marketing], '')) AS [Marketing], RTRIM(ISNULL([CC].[MartialStatus], '')) AS [MartialStatus], RTRIM(ISNULL([CC].[County], '')) AS [County], RTRIM(ISNULL([CC].[PostalCode], '')) AS [PostalCode], RTRIM(ISNULL([CC].[FaxNumber], '')) AS [FaxNumber], RTRIM(ISNULL([CC].[BankName], '')) AS [BankName], RTRIM(ISNULL([CC].[BankAddress], '')) AS [BankAddress], RTRIM(ISNULL([CC].[BankSortCode], '')) AS [BankSortCode], RTRIM(ISNULL([CC].[BankAccNo], '')) AS [BankAccNo], RTRIM(ISNULL([CC].[IBAN], '')) AS [IBAN], RTRIM(ISNULL([CC].[BIC], '')) AS [BIC], RTRIM(ISNULL([CC].[EFTEmailAddress], '')) AS [EFTEmailAddress], RTRIM(ISNULL([CC].[BankType], '')) AS [BankType], [CC].[id] AS [id], RTRIM(ISNULL([CC].[DXREF], '')) AS [DXREF] FROM [dbo].[ClientContacts] [CC] WHERE [CC].[CLCODE] = @CLCODE AND [CC].[CLNUMCONTACT] = @CLNUMCONTACT END GO IF OBJECT_ID(N'KAAS_GetClientContacts', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetClientContacts] END GO CREATE PROCEDURE [dbo].[KAAS_GetClientContacts] ( @CLIENTCODE VARCHAR(20)) AS /******************************************************************************************************* * This procedure returns the specified client's contacts * * * * Stored Procedure Name : [dbo].[KAAS_GetClientContacts] * * Copied from : [dbo].[ky_NETGetClientContacts] * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [CC].[CLINITS] AS [Initials], [CC].[CLNAMECON] AS [FullName], [CC].[HomePhone] AS [HomePhone], [CC].[WorkPhone] AS [WorkPhone], [CC].[Mobile] AS [Mobile], [CC].[FIRSTNAME] AS [FirstName], [CC].[SURNAME] AS [Surname], [CC].[CLSALUTE] AS [Salutation], [CC].[PPSNo] AS [PPSNumber], [CC].[CLTITLE] AS [Title], [CC].[Address], [CC].[EmailAddress], CONVERT(VARCHAR(11), [CC].[DOB], 106) AS [DOB], CONVERT(VARCHAR(11), [CC].[MarrigeDate], 106) AS [MarriageDate], [CC].[Occupation], [CC].[DateofDeath], [MC].[CDEDESC] AS [MartialStatus], [CC].[MartialStatus] AS [MStatus], [CC].[FaxNumber], [CC].[PostalCode], [CC].[County], [CC].[CLNUMCONTACT], [CC].[DXREF] FROM [dbo].[ClientContacts] [CC] LEFT OUTER JOIN [dbo].[MiscCodes] [MC] ON [MC].[CDECODE] = [CC].[MartialStatus] AND [MC].[CDETYPE] = 'MRS' WHERE [CC].[CLCODE] = @CLIENTCODE SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetClientListForCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetClientListForCode] GO CREATE PROCEDURE [dbo].[KAAS_GetClientListForCode] ( @ClientCode VARCHAR(15), @Handler VARCHAR(10) ) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_GetClientListForCode] * * Description: To get list of client for a given client code * * * * Modification History: * * 2021-06-24 Aakif Created * * 2021-06-28 Aakif Included client mail id and last access date fields * * 2021-07-16 Aakif Included IsEmailVerified field * * 2021-12-29 Sadiq Handled Date time values for All date formats Globally * * 2022-07-28 vinodhkumar restrict deletes user from listing * * 2022-09-27 Revathy.D Added the condition [IsDeleted] = 0 in join and removed the same from * WHERE clause to tune the performance.Client processing time has reduced * to 7ms from 11ms * *******************************************************************************************************/ BEGIN SELECT DISTINCT [CLA].[ContactCode] AS [ClientCode], [CLA].[PublishedHandlerCode] AS [PublishedHandlerCode], [HAN].[NAME] AS [HandlerName], CONVERT(VARCHAR(15),[dbo].KAAS_FNConvertUTCDateToTargetTimeZone([CLA].[PublishedDateTime], @Handler), 106) AS [PublishedTime], [CL].[ClientLoginId] AS [ClientLoginId], [CL].[Name] AS [ClientName], [CL].[Email] AS [ClientEmail], [CL].[PhoneNumber] AS [ClientPhoneNo], CONVERT(VARCHAR,[dbo].KAAS_FNConvertUTCDateToTargetTimeZone([dbo].KAAS_CP_GetLastLoginDateTime([CL].[ClientLoginId]), 'MK'),120) AS [ClientLastAccessDateTime], [CL].[IsUserVerifiedEmail] AS [IsUserVerifiedEmail] FROM [ClientLoginAccess] [CLA] JOIN [ClientLogin] [CL] ON [CLA].[ClientLoginId] = [CL].[ClientLoginId] AND [CL].[IsDeleted] = 0 JOIN [Handlers] [HAN] ON [HAN].[CODE] = [CLA].[PublishedHandlerCode] WHERE [ContactCode] = @ClientCode ORDER BY [PublishedTime] DESC END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetClientUDFFormDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetClientUDFFormDetails] END GO Create PROCEDURE [dbo].[KAAS_GetClientUDFFormDetails] @ClientCode AS VARCHAR(10)='', @PAGES AS VARCHAR(10)='' AS /* Created By : Magesh Kumar Date : 07-09-2015 Description: This procedure is used to get UDF form details for particular Client code. Modification History ----------------------------------------------------- Date | Modified By | Description ----------------------------------------------------- 22-09-2015 Magesh Added extra condition to load UDF form which are not linked to the client code and added condition to check whether the sp call is from KYC page. ---------------------------------------------------------- 24-10-2019 Rajesh Copied from KY_NETGetClientUDFFormDetails ----------------------------------------------------------- */ BEGIN SET NOCOUNT ON IF @PAGES ='' BEGIN IF @ClientCode ='' BEGIN SELECT CUDF.FormID, ISNULL(FormName,'') AS FormName FROM ClientUDFForms CUDF WHERE ISNULL(CUDF.CLIENTCODE,'')=@ClientCode ORDER BY FormName ASC END ELSE BEGIN SELECT CUDF.FormID, ISNULL(FormName,'') AS FormName FROM ClientUDFForms CUDF WHERE CUDF.CLIENTCODE=@ClientCode ORDER BY FormName ASC END END ELSE IF @PAGES ='KYC' BEGIN SELECT CUF.FormID,CUF.FormName FROM ClientsUDFFormsMapping CUFM RIGHT JOIN ClientUDFFORMS CUF on CUF.FormID = CUFM.FormId WHERE CUFM.ClientCode = @ClientCode OR CUF.IsGlobal = 1 ORDER BY CUFM.FormID ASC END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetContactPrivilegeGroups' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetContactPrivilegeGroups] END GO CREATE PROCEDURE [KAAS_GetContactPrivilegeGroups] (@ContactCode VARCHAR(20)) AS /******************************************************************************************************* * Lists the privilege groups in the system, AND whether the matter passed in * * through @matter is part of these groups. * * * * Stored Procedure Name : [dbo].[KAAS_GetContactPrivilegeGroups] * * Copied from : [dbo].[ky_NETGetContactPrivilegeGroups] * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT CONVERT(VARCHAR(20), RTRIM(ISNULL(MAT.[Code], ''))) AS [MATTER], SNG.[GroupID], SNG.[BitWiseID], SNG.[GroupName], CASE WHEN MNP.[ContactCode] IS NULL THEN 'NOT SET' WHEN MNP.[Previleges] & SNG.[BitWiseID] <> 0 THEN 'YES' ELSE 'NO' END AS [IsInGroup], ApplyToNewMatters FROM [Contacts] MAT CROSS APPLY [SecurityNetGroups] SNG LEFT OUTER JOIN [ContactNETPrivileges] MNP ON MNP.[ContactCode] = MAT.[Code] WHERE MAT.[Code] = @ContactCode END GO IF OBJECT_ID(N'KAAS_GetContactsByHandlerPrivilege',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetContactsByHandlerPrivilege] GO CREATE PROCEDURE [dbo].[KAAS_GetContactsByHandlerPrivilege] (@Handler VARCHAR(10), @SearchText VARCHAR(4000) = '', @PageSize INT, @PageNumber INT = 1, @SortColumn VARCHAR(50) = 'Code', @SortDirection VARCHAR(10) = 'ASC') AS /******************************************************************************************************* * This stored procedure is used to fetch SecurityNETGroups details. * * * * Stored Procedure Name : [dbo].[KAAS_GetContactsByHandlerPrivilege] * * Copied from : [dbo].[ky_NetGetContactsByHandlerPrivilege] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * * 2019-07-29 Vinodhan K Searching, Sorting, Pagination added. * * 2020-04-23 Arun V DisallowNewMatter Column added * * 2022-01-09 Sadiq Incorrect ordering in New case - Client contacts few times(13642) * * 2022-01-11 Sadiq Removed Pagination and Search concept as we are using dev extreme * * 2022-06-10 Sadiq Added COndition to get only Page size records when page size is Passed * * 2022-08-26 Vinodhkumar.M Server Side Pagination is added * * 2022-09-06 Vinodhkumar.M Set Default value to Page Number so only offset value will not become negative * 2022-09-21 Ghayathri.S.V Removed page size based conditional coding as this the page size value is handled from Client Side. * * 2022-12-27 Ghayathri.S.V Mentioned the PageNumber parameter equal to 1 to avoid internal error in loading TRansact Wizard Matter List * *******************************************************************************************************/ BEGIN DECLARE @BitWiseID BIGINT SELECT @BitWiseID = HGM.[BitWiseID] FROM [dbo].[HandlerNETGroupMembership] HGM WHERE HGM.[HANDLER] = @Handler SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@HANDLER, '')))) DECLARE @sql NVARCHAR(max) DECLARE @offset INT = @PageSize * (@PageNumber -1) IF (@HANDLER = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END IF((@SortColumn IS NOT NULL) AND (RTRIM(@SortColumn) = 'Code')) BEGIN SET @SortColumn = 'CON.[Code]' END BEGIN SET @sql = 'SELECT ROW_NUMBER() OVER (ORDER BY CON.[Code]) AS [Row_Number], RTRIM(ISNULL(CON.[Code], '''')) AS [Code], RTRIM(ISNULL(CON.[Name], '''')) AS [Name], RTRIM(ISNULL(CON.[Address], '''')) AS [Address], RTRIM(ISNULL(CON.[Tel], '''')) AS [Tel], RTRIM(ISNULL(CON.[email], '''')) AS [Email], RTRIM(ISNULL(CON.[FE], '''')) AS [Fe], RTRIM(ISNULL(CON.[CompMatter], '''')) AS [BillingMatter], RTRIM(ISNULL(FEC.[Name],'''')) AS FeeName, RTRIM(ISNULL(CON.[DisallowNewMatter], 0)) AS DisallowNewMatter FROM [dbo].[Contacts] CON LEFT OUTER JOIN [dbo].[ContactNETPrivileges] CNP ON CNP.[ContactCode] = CON.[Code] LEFT OUTER JOIN [dbo].FeeEarnerCodes FEC on FEC.Code = CON.FE WHERE ( CNP.[Previleges] IS NULL OR ISNULL(CNP.[Previleges], CONVERT(BIGINT, -1)) & '+ CAST(@BitWiseID AS NVARCHAR(10)) + '<> 0)' + 'AND (CON.[Code] LIKE' + '''%' + @SearchText + '%' + '''' + ' OR CON.[Name] LIKE' + '''%' + @SearchText + '%' + '''' + 'OR CON.[Address] LIKE ' + '''%' + @SearchText + '%' + '''' + ' OR CON.[Tel] LIKE ' + '''%' + @SearchText + '%' + '''' + 'OR CON.[email] LIKE ' + '''%' + @SearchText + '%' + '''' + 'OR CON.[CompMatter] LIKE ' + '''%' + @SearchText + '%' + '''' + 'OR CON.[FE] LIKE ' + '''%' + @SearchText + '%' + '''' + 'OR FEC.[Name] LIKE ' + '''%' + @SearchText + '%' + '''' +') ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' ' + 'OFFSET ' + CAST(@offset AS NVARCHAR(10)) + ' ROWS ' + 'FETCH NEXT ' + CAST(@PageSize AS NVARCHAR(10)) + ' ROWS ONLY'; EXEC Sp_executesql @sql SELECT COUNT(*) 'TotalRecord' FROM [dbo].[Contacts] CON LEFT OUTER JOIN [dbo].[ContactNETPrivileges] CNP ON CNP.[ContactCode] = CON.[Code] LEFT OUTER JOIN [dbo].FeeEarnerCodes FEC on FEC.Code = CON.FE WHERE ( CNP.[Previleges] IS NULL OR ISNULL(CNP.[Previleges], CONVERT(BIGINT, -1)) & @BitWiseID <> 0) AND (CON.[Code] LIKE '%' + @SearchText + '%' OR CON.[Name] LIKE '%' + @SearchText + '%' OR CON.[Address] LIKE '%' + @SearchText + '%' OR CON.[Tel] LIKE '%' + @SearchText + '%' OR CON.[email] LIKE '%' + @SearchText + '%' OR CON.[CompMatter] LIKE '%' + @SearchText + '%' OR CON.[FE] LIKE '%' + @SearchText + '%' OR FEC.[Name] LIKE '%' + @SearchText + '%' ) END END GO IF OBJECT_ID(N'KAAS_GetControlGroupPermissionSettings',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetControlGroupPermissionSettings] GO CREATE PROCEDURE [dbo].[KAAS_GetControlGroupPermissionSettings] ( @Handler VARCHAR(10)) AS /***************************************************************************** [KAAS_GetControlGroupPermissionSettings] 2023-12-04 Ghayathri.S.V Modified to be compatbale with new Keyhouse Permission Table 2024-03-01 Sadiq Added to database SP folder in Repo *****************************************************************************/ BEGIN SET @Handler = ISNULL(@Handler, '') SELECT CTM.[ControlGroupName], CTM.[ComponentName], CTM.[ElementType], CTM.[ElementId], CTM.[PermissionMode] FROM [dbo].[KHCtlGroups] CTG INNER JOIN (SELECT DISTINCT [groupid] FROM [dbo].[KHCtlHandlers] CTH WHERE ( CTH.[Handler] = @Handler AND CTH.[AllHandlers] = 0) OR ( CTH.[Handler] = '' AND CTH.[AllHandlers] = 1)) INC ON INC.[groupid] = CTG.[id] INNER JOIN [dbo].[KaasGroupControlsMap] CTC INNER JOIN [dbo].[KaasControlMaster] CTM ON CTM.[ControlMasterId] = CTC.[MasterId] ON CTC.[GroupId] = CTG.[id] WHERE CTG.[Deleted] = 0 END GO IF OBJECT_ID('KAAS_GetControlGroupPermissionSettings','P')IS NOT NULL DROP PROCEDURE KAAS_GetControlGroupPermissionSettings GO CREATE PROCEDURE [dbo].[KAAS_GetControlGroupPermissionSettings] ( @Handler VARCHAR(10)) AS /***************************************************************************** [KAAS_GetControlGroupPermissionSettings] 2023-12-04 Ghayathri.S.V Modified to be compatbale with new Keyhouse Permission Table *****************************************************************************/ BEGIN SET @Handler = ISNULL(@Handler, '') SELECT CTM.[ControlGroupName], CTM.[ComponentName], CTM.[ElementType], CTM.[ElementId], CTM.[PermissionMode] FROM [dbo].[KHCtlGroups] CTG INNER JOIN (SELECT DISTINCT [groupid] FROM [dbo].[KHCtlHandlers] CTH WHERE ( CTH.[Handler] = @Handler AND CTH.[AllHandlers] = 0) OR ( CTH.[Handler] = '' AND CTH.[AllHandlers] = 1)) INC ON INC.[groupid] = CTG.[id] INNER JOIN [dbo].[KaasGroupControlsMap] CTC INNER JOIN [dbo].[KaasControlMaster] CTM ON CTM.[ControlMasterId] = CTC.[MasterId] ON CTC.[GroupId] = CTG.[id] WHERE CTG.[Deleted] = 0 END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetControlNominals' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetControlNominals] END GO CREATE PROCEDURE [dbo].[KAAS_GetControlNominals] (@BRANCH VARCHAR(10)) AS /******************************************************************** * KAAS_GetControlNominals * * Returns a list of branch-specific nominals. * If no branch is specified or found then system defaults are used * * 2018-08-02 John Ginnane Created * 2018-08-20 Pino Carafa moved SAM4 check inside procedure * 2020-06-02 Prabhu Copied from ky_NETGetControlNominals ********************************************************************/ BEGIN SET NOCOUNT ON DECLARE @DEBTORS VARCHAR(30) DECLARE @CREDITORS VARCHAR(30) DECLARE @OUTLAY VARCHAR(30) DECLARE @VAT VARCHAR(30) DECLARE @VATCODE VARCHAR(30) DECLARE @EXCLUDEVAT VARCHAR(30) DECLARE @MISC VARCHAR(30) DECLARE @MISCFE VARCHAR(30) DECLARE @ISSAM4 BIT SET @ISSAM4 = [dbo].[ISSAM4]() DECLARE @NCOMMAND NVARCHAR(MAX) SET @BRANCH = RTRIM(ISNULL(@BRANCH, '')) IF EXISTS(SELECT TOP 1 1 FROM [dbo].[Branch] AS [BRA] WHERE [BRA].[BRANCHCODE] = RTRIM(ISNULL(@BRANCH, ''))) BEGIN SELECT @DEBTORS = [BRA].[DEBTORSCTRL], @CREDITORS = [BRA].[CREDITORSCTRL], @OUTLAY = [BRA].[OUTLAYCTRL], @VAT = [BRA].[VATCTRL] FROM [dbo].[Branch] AS [BRA] WHERE [BRA].[BRANCHCODE] = RTRIM(ISNULL(@BRANCH, '')) END ELSE BEGIN IF @ISSAM4 = 1 BEGIN SET @NCOMMAND = N' SELECT @DEBTORS = CASE WHEN CTRL.[Code] = ''Debtors'' THEN CTRL.[NomValue] ELSE @DEBTORS END, @CREDITORS = CASE WHEN CTRL.[Code] = ''Creditors'' THEN CTRL.[NomValue] ELSE @CREDITORS END, @OUTLAY = CASE WHEN CTRL.[Code] = ''Outlay'' THEN CTRL.[NomValue] ELSE @OUTLAY END, @VAT = CASE WHEN CTRL.[Code] = ''VATInputs'' THEN CTRL.[NomValue] ELSE @VAT END, @MISC = CASE WHEN CTRL.[Code] = ''Misc Outlay'' THEN CTRL.[NomValue] ELSE @MISC END FROM [dbo].[CtrlNom] AS CTRL WHERE CTRL.[Code] IN (''Debtors'', ''Creditors'', ''Outlay'', ''VATInputs'', ''Misc Outlay'')' EXEC sp_executesql @NCOMMAND, N'@DEBTORS VARCHAR(30) OUTPUT, @CREDITORS VARCHAR(30) OUTPUT, @OUTLAY VARCHAR(30) OUTPUT, @VAT VARCHAR(30) OUTPUT, @MISC VARCHAR(30) OUTPUT', @DEBTORS = @DEBTORS OUTPUT, @CREDITORS = @CREDITORS OUTPUT, @OUTLAY = @OUTLAY OUTPUT, @VAT = @VAT OUTPUT, @MISC = @MISC OUTPUT END ELSE BEGIN -- To do: SAM3 version, if this is ever needed. SET @DEBTORS = '' SET @CREDITORS = '' SET @OUTLAY = '' SET @VAT = '' SET @MISC = '' END END IF @ISSAM4 = 1 BEGIN SET @NCOMMAND = N' SELECT @VATCODE = CASE WHEN CTRL.[Code] = ''DefaultVAT'' THEN CTRL.[StrValue] ELSE @VATCODE END, @EXCLUDEVAT = CASE WHEN CTRL.[Code] = ''VATExempt'' THEN CTRL.[StrValue] ELSE @EXCLUDEVAT END FROM [dbo].[CtrlStr] AS CTRL WHERE CTRL.[Code] IN (''DefaultVAT'', ''VATExempt'')' EXEC sp_executesql @NCOMMAND, N'@VATCODE VARCHAR(30) OUTPUT, @EXCLUDEVAT VARCHAR(30) OUTPUT', @VATCODE = @VATCODE OUTPUT, @EXCLUDEVAT = @EXCLUDEVAT OUTPUT END ELSE BEGIN -- To do: SAM3 version, if this is ever needed. SET @VATCODE = '' SET @EXCLUDEVAT = '' END SELECT @MISCFE = CON.[MISCFE] FROM [dbo].[control] AS CON SELECT ISNULL(@DEBTORS, '') AS [Debtors], ISNULL(@CREDITORS, '') AS [Creditors], ISNULL(@OUTLAY, '') AS [Outlay], ISNULL(@VAT, '') AS [VAT], ISNULL(@VATCode, '') AS [VATCode], ISNULL(@ExcludeVAT, '') AS [ExcludeVAT], ISNULL(@MISC, '') AS [Misc], ISNULL(@MISCFE, '') AS [MiscFE] SET NOCOUNT OFF END GO IF OBJECT_ID('KAAS_GetControlSettings','P')IS NOT NULL DROP PROCEDURE KAAS_GetControlSettings GO CREATE PROCEDURE [dbo].[KAAS_GetControlSettings] ( @Handler VARCHAR(10)) AS /***************************************************************************** [KaaS_GetControlSettings] 2019-05-08 Arun Vasu Modified to compatable with Keyhouse SaaS *****************************************************************************/ BEGIN SET @Handler = ISNULL(@Handler, '') SELECT CTM.ComponentName, CTM.[ControlName], CTM.IsVisible FROM [dbo].[KHCtlGroups] CTG INNER JOIN (SELECT DISTINCT [groupid] FROM [dbo].[KHCtlHandlers] CTH WHERE ( CTH.[Handler] = @Handler AND CTH.[AllHandlers] = 0) OR ( CTH.[Handler] = '' AND CTH.[AllHandlers] = 1)) INC ON INC.[groupid] = CTG.[id] INNER JOIN [dbo].[KaaSCtlGroupControls] CTC INNER JOIN [dbo].[KaaSCtlMaster] CTM ON CTM.[ParentId] = CTC.[masterid] AND CTM.[Deleted] = 0 ON CTC.[groupid] = CTG.[id] WHERE CTG.[Deleted] = 0 END GO IF EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO WHERE SO.[name] = N'KAAS_GetCurrentCaseDetailsData' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetCurrentCaseDetailsData] END GO CREATE PROCEDURE [dbo].[KAAS_GetCurrentCaseDetailsData] (@MatterCode VARCHAR(30)) AS /******************************************************************************************************* * This stored procedure is used to Get Current Case Details data associated with all the tabs in it. * * * * Stored Procedure Name : [dbo].[KAAS_GetCurrentCaseDetailsData] * * * * Modification History : * * 2019-05-21 Vinodhan K Created * * 2020-03-03 Arun V Have fixed date conversion error * 2020-12-02 Sadiq Picking [FeeType] also from Matter Table * * 2021-08-25 Revathy.D Added Outstanding Case dairy and undertaking * * 07-06-2023 Revathy.D Fetched Paperless Column from Matter Table * 2023-06-26 Vignesh M Fetched Reopened Date from Matters * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @IsPaperlessColumn AS BIT IF EXISTS( SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_NAME(OBJECT_ID) = 'Matters' and [NAME] = 'Paperless') BEGIN EXEC ('SELECT RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL(MAT.[Matter], '''')) AS [Matter], RTRIM(ISNULL(MAT.[Description], '''')) AS [Description] , RTRIM(ISNULL(MAT.[FECode], '''')) AS [FeeEarner], RTRIM(ISNULL(MAT.[Partner], '''')) AS [Partner], RTRIM(ISNULL(MAT.[Secretary], '''')) AS [Secretary], RTRIM(ISNULL(MAT.[Dept], '''')) AS [Dept] , RTRIM(ISNULL(MAT.[WType], '''')) AS [WType] , RTRIM(ISNULL(MAT.[OldRef], '''')) AS [OldRef] , RTRIM(ISNULL(MAT.[User1], '''')) AS [User1], RTRIM(ISNULL(MAT.[User2], '''')) AS [User2], RTRIM(ISNULL(MAT.[User3], '''')) AS [User3], RTRIM(ISNULL(MAT.[YourRef], '''')) AS [YourRef], CASE WHEN RTRIM(ISNULL(MAT.[Statements], '''')) = ''Y'' THEN ''True'' ELSE ''False'' END AS [Statements], RTRIM(ISNULL(MAT.[Paperless], 0)) AS [Paperless], ISNULL(MAT.[Importance], 0) AS [Importance], RTRIM(ISNULL(MAT.[Status], '''')) AS [Status], RTRIM(ISNULL(MAT.[FileColour], '''')) AS [FileColour], ISNULL(MAT.[Value], 0) AS [ValueToClient], ISNULL(CONVERT(NVARCHAR(30),MAT.[Started],23),'''') AS [Started], ISNULL(convert(NVARCHAR(30),MAT.[StatuteLimits],23),'''') AS [StatuteLimits], RTRIM(ISNULL(MAT.[DepositName], '''')) AS [DepositName], ISNULL(MAT.[EstFee], 0) AS [EstFee], ISNULL(CONVERT(NVARCHAR(30),MAT.[ExpBillD],23),'''') AS [ExpBillD], CASE WHEN RTRIM(ISNULL(MAT.[Section68], '''')) = ''Y'' THEN ''True'' ELSE ''False'' END AS [EstimateGiven], CASE WHEN RTRIM(ISNULL(MAT.[S13], '''')) = ''Y'' THEN ''True'' ELSE ''False'' END AS [S13], ISNULL(MAT.[OutlayBud], 0) AS [OutlayBud], RTRIM(ISNULL(MAT.[DepositType], '''')) AS [DepositType], RTRIM(ISNULL(MAT.[Comment], '''')) AS [Comment], ISNULL(MAT.[ChargeLevel], 0) AS [ChargeLevel], ISNULL(MAT.[DebtCollected], 0) AS [DebtCollected], RTRIM(ISNULL(MAT.[ClientName], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[ClientAddress], '''')) AS [ClientAddress], RTRIM(ISNULL(MAT.[ClientSalutation], '''')) AS [ClientSalutation], RTRIM(ISNULL(MAT.[ChargeArrangement], '''')) AS [ChargeArrangement], CASE WHEN RTRIM(ISNULL(MAT.[ChargeOutRateInd], '''')) = ''Y'' THEN ''True'' ELSE ''False'' END AS [ChargeOutRateInd], RTRIM(ISNULL(MAT.[CompFrequency], '''')) AS [BillingType], RTRIM(ISNULL(MAT.[BillingMethod], '''')) AS [BillingMethod], CASE WHEN RTRIM(ISNULL(MAT.[Publish], '''')) = ''P'' THEN ''True'' ELSE ''False'' END AS [Publish], RTRIM(ISNULL(CSM.[CSPREMISES], '''')) AS [Premises], RTRIM(ISNULL(CSM.[CSWKTCODE], '''')) AS [CasePlanType], ISNULL(MAT.[CollectingBalance], 0) AS [CollectingBalance], RTRIM(ISNULL(MAT.[PCode], '''')) AS [PCode], RTRIM(ISNULL(MAT.[PFECode], '''')) AS [PFECode], RTRIM(ISNULL(CSM.[CSCLBENYN], '''')) AS [CSCLBENYN], RTRIM(ISNULL(CSM.[CSCLEXEYN], '''')) AS [CSCLEXEYN], ISNULL(CSM.[CSDATEACCEPT_DATE],'''') AS [CSDATEACCEPT_DATE], ISNULL(MAT.[OriginalDebt], 0) AS [CSORGDEBT], -- John 2015-11-12 This field is used more often (e.g. reports, case import) ISNULL(CSM.[CSBALDEBT], 0) AS [CSBALDEBT], RTRIM(ISNULL(CSM.[CSIRTCODE], '''')) AS [InterestCode], RTRIM(ISNULL(CSM.[CSPLAINTNO], '''')) AS [RecordNo], RTRIM(ISNULL(MAT.[FixedFee], '''')) AS [FixedFee], RTRIM(ISNULL(MAT.[ShowCommentInAlarm], '''')) AS [ShowCommentInAlarm], RTRIM(ISNULL(MAT.[Closed], '''')) AS [Closed], ISNULL(MAT.[OrgClosedDate],'''') AS [OrgClosedDate], ISNULL(MAT.[ReOpenedDate],'''') AS [ReOpenedDate], ISNULL(MAT.[CloseDate],'''') AS [CloseDate], RTRIM(ISNULL(FCL.[COLOURDESC], '''')) AS [FileColourDescription], ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB], RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) AS [CompBillingMatter], RTRIM(ISNULL(MAT.[Branch], '''')) AS [Branch], ISNULL(MAT.[FileNum], 0) AS [FileNum], ISNULL(MAT.[ClosingDate],'''') AS [ClosingDate], RTRIM(ISNULL(MAT.[Location], '''')) AS [Location], RTRIM(ISNULL(MAT.[ArchiveLocation], '''')) AS [ArchiveLocation], RTRIM(ISNULL(MAT.[FileBarCodeNo], '''')) AS [FileBarCodeNo], RTRIM(ISNULL(MAT.[BoxBarCodeNo], '''')) AS [BoxBarCodeNo], RTRIM(ISNULL(MAT.[BoxNumber], '''')) AS [BoxNumber], ISNULL(CONVERT(NVARCHAR(30),MAT.[DestroyDate],23),'''') AS [DestroyDate], ISNULL(CONVERT(NVARCHAR(30),[ActualDestroyDate],23),'''') AS [ActualDestroyDate], RTRIM(ISNULL(MAT.[DestroyedBy], '''')) AS [DestroyedBy], REPLACE(ISNULL(S.Retired,''N''),'' '',''N'') AS [Retired], REPLACE(ISNULL(FCL.Retired,''N''),'' '',''N'') AS [FileColourRetired], REPLACE(ISNULL(FE.Retired,''N''),'' '',''N'') AS [FeeEarnerRetired], REPLACE(ISNULL(D.RETIRED,''N''),'' '',''N'') AS [DepartmentRetired], REPLACE(ISNULL(W.RETIRED,''N''),'' '',''N'') AS [WorkTypeRetired], REPLACE(ISNULL(P.RETIRED,''N''),'' '',''N'') AS [PartnerRetired], REPLACE(ISNULL(T.RETIRED,''N''),'' '',''N'') AS [CasePlanRetired], RTRIM(ISNULL(MAT.[BillingFE], '''')) AS [BillingFeeEarner], ISNULL(MAT.[Started],'''') AS [Started1], MAT.[FeeType], CASE WHEN ISNULL(MAT.NoWinNoFee,''N'') = ''Y'' THEN ''True'' ELSE ''False'' END AS [NoWinNoFee], 1 AS [PaperlessColumnExist] FROM [dbo].[matters] MAT LEFT JOIN [dbo].[CaseMaster] CSM ON CSM.[CSCODE] = MAT.[Code] LEFT OUTER JOIN [dbo].[FileColours] FCL ON FCL.[COLOURCODE] = MAT.[FileColour] LEFT JOIN StatusCodes S ON MAT.[Status] = S.CODE LEFT JOIN FeeEarnerCodes FE ON RTRIM(MAT.FECode) = RTRIM(FE.Code) LEFT JOIN Departments D ON RTRIM(MAT.Dept) = RTRIM(D.CODE) LEFT JOIN WorkTypes W ON RTRIM(MAT.WType) = RTRIM(W.CODE) LEFT JOIN Partners P ON RTRIM(MAT.[Partner]) = RTRIM(P.CODE) LEFT JOIN Templates T ON RTRIM(CSM.CSWKTCODE) = RTRIM(T.WKCODE) WHERE MAT.[Code] ='''+@MatterCode+'''') END ELSE BEGIN --Matter Details SELECT RTRIM(ISNULL(MAT.[ClientCode], '')) AS [ClientCode], RTRIM(ISNULL(MAT.[Matter], '')) AS [Matter], RTRIM(ISNULL(MAT.[Description], '')) AS [Description] , RTRIM(ISNULL(MAT.[FECode], '')) AS [FeeEarner], RTRIM(ISNULL(MAT.[Partner], '')) AS [Partner], RTRIM(ISNULL(MAT.[Secretary], '')) AS [Secretary], RTRIM(ISNULL(MAT.[Dept], '')) AS [Dept] , RTRIM(ISNULL(MAT.[WType], '')) AS [WType] , RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef] , RTRIM(ISNULL(MAT.[User1], '')) AS [User1], RTRIM(ISNULL(MAT.[User2], '')) AS [User2], RTRIM(ISNULL(MAT.[User3], '')) AS [User3], RTRIM(ISNULL(MAT.[YourRef], '')) AS [YourRef], CASE WHEN RTRIM(ISNULL(MAT.[Statements], '')) = 'Y' THEN 'True' ELSE 'False' END AS [Statements], 0 AS [Paperless], ISNULL(MAT.[Importance], 0) AS [Importance], RTRIM(ISNULL(MAT.[Status], '')) AS [Status], RTRIM(ISNULL(MAT.[FileColour], '')) AS [FileColour], ISNULL(MAT.[Value], 0) AS [ValueToClient], ISNULL(CONVERT(NVARCHAR(30),MAT.[Started],23),'') AS [Started], ISNULL(convert(NVARCHAR(30),MAT.[StatuteLimits],23),'') AS [StatuteLimits], RTRIM(ISNULL(MAT.[DepositName], '')) AS [DepositName], ISNULL(MAT.[EstFee], 0) AS [EstFee], ISNULL(CONVERT(NVARCHAR(30),MAT.[ExpBillD],23),'') AS [ExpBillD], CASE WHEN RTRIM(ISNULL(MAT.[Section68], '')) = 'Y' THEN 'True' ELSE 'False' END AS [EstimateGiven], CASE WHEN RTRIM(ISNULL(MAT.[S13], '')) = 'Y' THEN 'True' ELSE 'False' END AS [S13], ISNULL(MAT.[OutlayBud], 0) AS [OutlayBud], RTRIM(ISNULL(MAT.[DepositType], '')) AS [DepositType], RTRIM(ISNULL(MAT.[Comment], '')) AS [Comment], ISNULL(MAT.[ChargeLevel], 0) AS [ChargeLevel], ISNULL(MAT.[DebtCollected], 0) AS [DebtCollected], RTRIM(ISNULL(MAT.[ClientName], '')) AS [ClientName], RTRIM(ISNULL(MAT.[ClientAddress], '')) AS [ClientAddress], RTRIM(ISNULL(MAT.[ClientSalutation], '')) AS [ClientSalutation], RTRIM(ISNULL(MAT.[ChargeArrangement], '')) AS [ChargeArrangement], CASE WHEN RTRIM(ISNULL(MAT.[ChargeOutRateInd], '')) = 'Y' THEN 'True' ELSE 'False' END AS [ChargeOutRateInd], RTRIM(ISNULL(MAT.[CompFrequency], '')) AS [BillingType], RTRIM(ISNULL(MAT.[BillingMethod], '')) AS [BillingMethod], CASE WHEN RTRIM(ISNULL(MAT.[Publish], '')) = 'P' THEN 'True' ELSE 'False' END AS [Publish], RTRIM(ISNULL(CSM.[CSPREMISES], '')) AS [Premises], RTRIM(ISNULL(CSM.[CSWKTCODE], '')) AS [CasePlanType], ISNULL(MAT.[CollectingBalance], 0) AS [CollectingBalance], RTRIM(ISNULL(MAT.[PCode], '')) AS [PCode], RTRIM(ISNULL(MAT.[PFECode], '')) AS [PFECode], RTRIM(ISNULL(CSM.[CSCLBENYN], '')) AS [CSCLBENYN], RTRIM(ISNULL(CSM.[CSCLEXEYN], '')) AS [CSCLEXEYN], ISNULL(CSM.[CSDATEACCEPT_DATE],'') AS [CSDATEACCEPT_DATE], ISNULL(MAT.[OriginalDebt], 0) AS [CSORGDEBT], -- John 2015-11-12 This field is used more often (e.g. reports, case import) ISNULL(CSM.[CSBALDEBT], 0) AS [CSBALDEBT], RTRIM(ISNULL(CSM.[CSIRTCODE], '')) AS [InterestCode], RTRIM(ISNULL(CSM.[CSPLAINTNO], '')) AS [RecordNo], RTRIM(ISNULL(MAT.[FixedFee], '')) AS [FixedFee], RTRIM(ISNULL(MAT.[ShowCommentInAlarm], '')) AS [ShowCommentInAlarm], RTRIM(ISNULL(MAT.[Closed], '')) AS [Closed], ISNULL(MAT.[OrgClosedDate],'') AS [OrgClosedDate], ISNULL(MAT.[CloseDate],'') AS [CloseDate], RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [FileColourDescription], ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB], RTRIM(ISNULL(MAT.[CompBillingMatter], '')) AS [CompBillingMatter], RTRIM(ISNULL(MAT.[Branch], '')) AS [Branch], ISNULL(MAT.[FileNum], 0) AS [FileNum], ISNULL(MAT.[ClosingDate],'') AS [ClosingDate], RTRIM(ISNULL(MAT.[Location], '')) AS [Location], RTRIM(ISNULL(MAT.[ArchiveLocation], '')) AS [ArchiveLocation], RTRIM(ISNULL(MAT.[FileBarCodeNo], '')) AS [FileBarCodeNo], RTRIM(ISNULL(MAT.[BoxBarCodeNo], '')) AS [BoxBarCodeNo], RTRIM(ISNULL(MAT.[BoxNumber], '')) AS [BoxNumber], ISNULL(CONVERT(NVARCHAR(30),MAT.[DestroyDate],23),'') AS [DestroyDate], ISNULL(CONVERT(NVARCHAR(30),[ActualDestroyDate],23),'') AS [ActualDestroyDate], RTRIM(ISNULL(MAT.[DestroyedBy], '')) AS [DestroyedBy], REPLACE(ISNULL(S.Retired,'N'),' ','N') AS [Retired], REPLACE(ISNULL(FCL.Retired,'N'),' ','N') AS [FileColourRetired], REPLACE(ISNULL(FE.Retired,'N'),' ','N') AS [FeeEarnerRetired], REPLACE(ISNULL(D.RETIRED,'N'),' ','N') AS [DepartmentRetired], REPLACE(ISNULL(W.RETIRED,'N'),' ','N') AS [WorkTypeRetired], REPLACE(ISNULL(P.RETIRED,'N'),' ','N') AS [PartnerRetired], REPLACE(ISNULL(T.RETIRED,'N'),' ','N') AS [CasePlanRetired], RTRIM(ISNULL(MAT.[BillingFE], '')) AS [BillingFeeEarner], ISNULL(MAT.[Started],'') AS [Started1], MAT.[FeeType], CASE WHEN ISNULL(MAT.NoWinNoFee,'N') = 'Y' THEN 'True' ELSE 'False' END AS [NoWinNoFee], 0 AS [PaperlessColumnExist] FROM [dbo].[matters] MAT LEFT JOIN [dbo].[CaseMaster] CSM ON CSM.[CSCODE] = MAT.[Code] LEFT OUTER JOIN [dbo].[FileColours] FCL ON FCL.[COLOURCODE] = MAT.[FileColour] LEFT JOIN StatusCodes S ON MAT.[Status] = S.CODE LEFT JOIN FeeEarnerCodes FE ON RTRIM(MAT.FECode) = RTRIM(FE.Code) LEFT JOIN Departments D ON RTRIM(MAT.Dept) = RTRIM(D.CODE) LEFT JOIN WorkTypes W ON RTRIM(MAT.WType) = RTRIM(W.CODE) LEFT JOIN Partners P ON RTRIM(MAT.[Partner]) = RTRIM(P.CODE) LEFT JOIN Templates T ON RTRIM(CSM.CSWKTCODE) = RTRIM(T.WKCODE) WHERE MAT.[Code] = @MatterCode END --Privileges EXEC KAAS_GetMatterPrivilegeGroups @MatterCode --Udf Fields SELECT RTRIM(ISNULL(UFC.[UDFCategory], '')) AS [UDFCategory], RTRIM(ISNULL(SUF.[PROMPT], '')) AS [Prompt], CASE RTRIM(ISNULL(SUF.[TYPE], '')) WHEN 'Text' THEN CONVERT(VARCHAR(200), CUF.[TEXT1]) WHEN 'Numeric' THEN CONVERT(VARCHAR(50), CUF.[NumberValue]) WHEN 'Date' THEN CONVERT(VARCHAR, CUF.[DateValue], 106) ELSE CONVERT(VARCHAR(200), CUF.[TEXT1]) END AS [Value], RTRIM(ISNULL(CUF.[CASECODE], '')) AS [CaseCode], RTRIM(ISNULL(CUF.[UDFFile], '')) AS [UDFFile], RTRIM(ISNULL(CUF.[UDFNAME], '')) AS [UDFName], ISNULL(CUF.[SEQNO], 0) AS [SeqNo], RTRIM(ISNULL(CUF.[TEXT1], '-')) AS [Text1], RTRIM(ISNULL(SUF.[FILEPREFIX], '')) AS [FilePrefix], RTRIM(ISNULL(SUF.[FIELDNAME], '')) AS [FieldName], RTRIM(ISNULL(SUF.[FORMAT], '')) AS [Format], RTRIM(ISNULL(SUF.[ACTUALNAME], '')) AS [ActualName], ISNULL(CUF.[NumberValue], 0) AS [NumberValue], CUF.[DateValue] AS [DateValue] FROM [dbo].[CaseUDFAnswers] CUF INNER JOIN [dbo].[SystemUserDefinedFields] SUF ON SUF.[FILEPREFIX] = CUF.[UDFFile] AND SUF.[FIELDNAME] = CUF.[UDFNAME] INNER JOIN [dbo].[UDFCategory] UFC ON UFC.[ID] = SUF.[UDFCategory] WHERE CUF.[CASECODE] = @MatterCode ORDER BY ISNULL(CUF.[SEQNO], 0) --Case Associates SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT RTRIM(ISNULL(CSC.[CASECODE], '')) AS [CaseCode], RTRIM(CSC.[CONTYPE]) AS [ConType], ISNULL(CSC.[CONNUM], 0) AS [ConNum], RTRIM(ISNULL(CSC.[NAMECODE], '')) AS [ConNameCode], RTRIM(ISNULL(CSC.[SOLCODE], '')) AS [SolCode], RTRIM(ISNULL(CSC.[SOLREF], '')) AS [SolRef], RTRIM(ISNULL(CSC.[INSCODE], '')) AS [InsCode], ISNULL(CSC.[ASSIGNEDCONTACT], 0) AS [AssignedContact], RTRIM(ISNULL(CAC.[NAMECODE], '')) AS [AssociateNameCode], ISNULL(CAC.[KEYID], 0) AS [KeyId], RTRIM(ISNULL(CAC.[NAME], '')) AS [ConName], RTRIM(ISNULL(CAC.[PHONE], '')) AS [Phone], RTRIM(ISNULL(CAC.[EMAIL], '')) AS [ConEmail], RTRIM(ISNULL(AST.[CODE], '')) AS [Code], RTRIM(ISNULL(AST.[DESCRIPTION], '')) AS [Description], RTRIM(ISNULL(CAN.[CODE], '')) AS [ConCode], RTRIM(ISNULL(CAN.[TYPE], '')) AS [Type], RTRIM(ISNULL(CAN.[NAME], '')) AS [AssociateName], RTRIM(ISNULL(CAN.[COMPANY], '')) AS [Company], RTRIM(ISNULL(CAN.[ADDRESS], '')) AS [Address], RTRIM(ISNULL(CAN.[PHONENO], '')) AS [PhoneNo], RTRIM(ISNULL(CAN.[MOBILENO], '')) AS [MobileNo], RTRIM(ISNULL(CAN.[EMAIL], '')) AS [AssociateEmail], RTRIM(ISNULL(CAN.[SEARCH], '')) AS [Search], ISNULL(CAN.[CONTACTNO], 0) AS [ContactNo], RTRIM(ISNULL(CAN.[SALUTATION], '')) AS [Salutation], ISNULL(CSC.[CONNUM], 0) AS [Seq], CASE WHEN RTRIM(ISNULL(CAN.[COMPANY], '')) <> '' THEN LTRIM( RTRIM(ISNULL(CAN.[NAME], '')) + ' (' + RTRIM(ISNULL(CAN.[COMPANY], '')) + ')') ELSE RTRIM(ISNULL(CAN.[NAME], '')) END AS [NameCompany], ISNULL(CSC.Retired,'N') AS [Retired] FROM [dbo].[CaseContacts] CSC LEFT JOIN [dbo].[CaseAssociatesContacts] CAC ON CAC.[KEYID] = CSC.[AssignedContact] LEFT JOIN [dbo].[AssociateTypes] AST ON AST.[CODE] = CSC.[CONTYPE] LEFT JOIN [dbo].[CaseAssociatesNames] CAN ON CAN.[CODE] = CSC.[NAMECODE] AND CAN.[NAME] <> '' AND CAN.[NAME] <> 'N/A' AND CAN.[NAME] IS NOT NULL WHERE CSC.[CASECODE] = @MatterCode AND CSC.[NAMECODE] <> '' AND CSC.[NAMECODE] <> 'N/A' AND CSC.[NAMECODE] IS NOT NULL) AS FoundTable ORDER BY [CASECODE], [CONTYPE], [CONNUM] SELECT * FROM #FoundTable --ChargeOut Rate Indicator SELECT MCOR.[RecordID] AS [RecordId], RTRIM(MCOR.[FeCode]) AS [FeCode], ISNULL(MCOR.[Rate], 0) AS [Rate], MCOR.[EffectiveDate] AS [EffectiveDate], COALESCE(HAN.[Name], HCG.[Name], MCOR.[FeCode]) AS [FeeEarnerName], CASE WHEN ISNULL(HAN.[Retired], 'N') = 'Y' THEN ISNULL(HAN.[Retired], 'N') ELSE ISNULL(HCG.[Retired], 'N') END AS [IsRetired] FROM [dbo].[MatterChargeOutRates] AS MCOR LEFT OUTER JOIN [dbo].[Handlers] AS HAN ON HAN.[Code] = MCOR.[FeCode] LEFT OUTER JOIN [dbo].[HandlerChargeGroups] AS HCG ON HCG.[Code] = MCOR.[FeCode] WHERE MCOR.[MatterCode] = @MatterCode AND (ISNULL(HAN.[Retired], 'N') <> 'Y' OR ISNULL(HCG.[Retired], 'N') <> 'Y') --Linked Cases List SELECT LMT.[RecordId] AS [RecordId], MAT.[Code] AS [CaseCode], MAT.[FECode] AS [FeeEarner], CNT.[Name] AS [Name], MAT.[Description] AS [Description], LMT.[RelationShip] AS [Relationship] FROM [dbo].[LinkedMatters] LMT INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = LMT.[LinkedMatter] INNER JOIN [dbo].[Contacts] CNT ON CNT.[Code] = MAT.[ClientCode] WHERE LMT.[PrimeMatter] = @MatterCode --Revenue Module SELECT RTRIM(LTRIM(ISNULL(MCC.[CheckCharacter], '') )) AS [CheckCharacter], RTRIM(LTRIM(ISNULL(MCC.[AddCheckCharacter], ''))) AS [AddCheckCharacter] FROM [dbo].[MatterCheckChars] AS MCC WHERE MCC.[MatterCode] = @MatterCode --Locations EXECUTE KAAS_ListItemLocations --Outstanding Undertaking and Case diary SELECT COUNT(1) OutstandingUndertaking FROM [dbo].[Undertakings] UTS WHERE [UTS].[Matter] = @MatterCode AND ISNULL([UTS].[DischargeDate],'') = '' SELECT COUNT(1) OutstandingCaseDiary FROM [dbo].[Diary] DRY WHERE [DRY].[casecode] = @MatterCode AND ISNULL([DRY].[Status],0) = 0 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetCurrentCaseDetailsPageLoad',N'P')IS NOT NULL DROP PROCEDURE KAAS_GetCurrentCaseDetailsPageLoad GO CREATE PROCEDURE KAAS_GetCurrentCaseDetailsPageLoad (@MatterCode VARCHAR(30)) AS /******************************************************************************************************* * This stored procedure is used to Get Current Case Details on Page Load. * * 1. Fee Earner * * 2. Secretary * * 3. Partner * * 4. Department * * 5. Work Type * * 6. File Colour * * 7. Case plan / Type * * 8. Case Status * * 9. Deposit Types * * 10. Charge Arrangement * * 11. User Prompt * * 12. Interest Code * * 13. Handler Charge Group * * 14. Branch * 15.Fee Type * * * * Stored Procedure Name : [dbo].[KAAS_GetCurrentCaseDetailsPageLoad] * * * * Modification History : * * 2019-05-21 Vinodhan K Created * * 2020-04-28 Arun V Have added Rtrim for Userprompt field * 2020-12-02 Sadiq Have added select statement to fetch Fee Type values * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @FEARNER VARCHAR(10) DECLARE @Handler VARCHAR(10) DECLARE @Partner VARCHAR(10) DECLARE @Department VARCHAR(10) DECLARE @WorkType VARCHAR(10) DECLARE @FileColor VARCHAR(10) DECLARE @CasePlan VARCHAR(10) DECLARE @Status VARCHAR(10) DECLARE @Interest VARCHAR(10) SELECT @FEARNER = ISNULL([MAT].[FECode], ''), @Handler = ISNULL([MAT].[Secretary], ''), @Partner = ISNULL([MAT].[Partner], ''), @Department = ISNULL([MAT].[Dept], ''), @WorkType = ISNULL([MAT].[WType], ''), @FileColor = ISNULL([MAT].[FileColour], ''), @CasePlan = ISNULL([CSM].[CSWKTCODE], ''), @Status = ISNULL([MAT].[Status], ''), @Interest = ISNULL([CSM].[CSIRTCODE], '') FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[CaseMaster] [CSM] ON [CSM].[CSCODE] = [MAT].[Code] WHERE [MAT].[Code] = @MatterCode --Fee Earner SELECT RTRIM([Code]) AS [Code], RTRIM(ISNULL([FEC].[Name], '')) AS [FeeEarners] FROM [dbo].[FeeEarnerCodes] [FEC] WHERE ISNULL([FEC].[Retired], 'N') <> 'Y' OR [FEC].[Code] = @FEARNER --Secretary SELECT RTRIM([HAN].[CODE]) AS [Code], RTRIM(ISNULL([HAN].[NAME], '')) AS [Secretary] FROM [dbo].[Handlers] [HAN] WHERE ( [HAN].[Type] ='S' AND ISNULL([HAN].[RETIRED], 'N') <> 'Y') OR [HAN].[CODE] = @Handler --[Partner] SELECT RTRIM([HAN].[CODE]) AS [Code], RTRIM(ISNULL([HAN].[NAME], '')) AS [Partners] FROM [dbo].[Handlers] [HAN] WHERE ( [HAN].[Type] ='P' AND ISNULL([HAN].[RETIRED], 'N') <> 'Y') OR [HAN].[CODE] = @Partner --Department SELECT RTRIM([Code]) AS Code, RTRIM([Desc]) AS Department FROM Departments WHERE RETIRED <> 'Y' OR [CODE] = @Department --Work Types SELECT RTRIM([Code]) AS WKCODE, RTRIM(ISNULL([DESC],'')) AS WKDESC FROM WorkTypes WHERE RETIRED <> 'Y' OR CODE = @WorkType --File Colour SELECT RTRIM(ISNULL([ColourCode],'')) AS Code, RTRIM(ISNULL([ColourDesc],'')) AS FileDescription, [RGBColour] FROM FileColours WHERE ISNULL(Retired,'N') <> 'Y' OR COLOURCODE = @FileColor --CasePlan SELECT RTRIM([Wkcode]) AS Code, RTRIM(ISNULL([Wkdesc],'')) AS [CasePlan] FROM Templates WHERE Retired <> 'Y' OR WKCODE = @CasePlan --StatusCodes SELECT RTRIM([Code]) AS Code, RTRIM([Description]) AS CaseStatus FROM StatusCodes WHERE ISNULL(Retired,'N') <> 'Y' OR CODE = @Status --Deposit Types SELECT RTRIM([Code]) AS Code, RTRIM(ISNULL([Description],'')) AS DepositType FROM DepositType --Charge Arrangement SELECT RTRIM(ISNULL(Code,'')) AS Code, RTRIM(ISNULL([Description],'')) AS ChargeArrangement FROM ChargeArrangements --User Prompt SELECT RTRIM(UserPrompt1) AS UserPrompt1 , RTRIM(UserPrompt2) AS UserPrompt2, RTRIM(UserPrompt3) AS UserPrompt3, RTRIM(YourRef) AS YourRef FROM [CONTROL] --Interest Code SELECT RTRIM(A.CDETYPE) AS CDETYPE, RTRIM(A.CDECODE) AS CDECODE, RTRIM(ISNULL(A.CDEDESC,'')) AS CDEDESC FROM dbo.MiscCodes A WHERE A.CDETYPE = 'IRT' AND RETIRED <> 'Y' OR CDECODE = CASE @Interest WHEN '' THEN '' ELSE @Interest END ORDER BY A.CDETYPE DESC, A.CDECODE DESC --Handler Charge Group SELECT 'H' as Code, 'Handlers' As ChargeGroup UNION ALL SELECT 'CG', 'Charge Groups' --Branch SELECT RTRIM([BranchCode]) as [Code], RTRIM(ISNULL([Description],'')) as [Branch] FROM Branch --Fee Type SELECT [ID] ,[Description] FROM FeeTypes SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetCurrentEditCaseType' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetCurrentEditCaseType] END GO Create PROCEDURE [dbo].[KAAS_GetCurrentEditCaseType] (@ActionCode VARCHAR(4) ) AS /******************************************************************************************************* * This procedure is used to Get the current edit case type details . * * * * Stored Procedure Name : [dbo].[KAAS_GetCurrentEditCaseType] * * * * Modification History : * * 2023-06-09 Nithyanandham M Created * *******************************************************************************************************/ BEGIN Select * from [dbo].[Templates] where WKCODE = @ActionCode; End Go IF OBJECT_ID(N'KAAS_GetCurrentUserName', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetCurrentUserName] END GO CREATE PROCEDURE [dbo].[KAAS_GetCurrentUserName] (@HandlerCode VARCHAR(10)) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_GetCurrentUserName] * * * * Modification History: * * 2022-02-21 Vinodhkumar.M Created * * 2022-02-25 Vinodhkumar.M Modified - added email field * *******************************************************************************************************/ BEGIN SELECT Top 1 [HAN].[NAME] AS [HandlerName], [HAN].[EMAIL] AS [Email] FROM [dbo].[Handlers] [HAN] WHERE [HAN].[CODE] = @HandlerCode END GO IF OBJECT_ID(N'KAAS_GetDbObjectCount',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetDbObjectCount] GO CREATE PROCEDURE [dbo].[KAAS_GetDbObjectCount] AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_GetDbObjectCount] * * Description: To get count of various DB objects in KH Framework, KAAS Web and Client Portal * * * * Modification History: * * 2021-10-05 Aakif Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON -- VARIABLES TO HOLD COUNT IN DIFFERENT CATEGORIES DECLARE @TablesCount INT, @KaasWebStoredProcedureCount INT, @KHFrameworkStoredProcedureCount INT, @ClientPortalStoredProcedureCount INT, @KaasWebTableFunctionCount INT, @KHFrameworkTableFunctionCount INT, @ClientPortalTableFunctionCount INT, @KaasWebFunctionCount INT, @KHFrameworkFunctionCount INT, @ClientPortalFunctionCount INT, @TriggerCount INT -- No of tables present in tenant DB SELECT @TablesCount = COUNT(1) FROM sys.tables; -- TRIGGER COUNT SELECT @TriggerCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'TR' --No of SP specifically for KH Framework SELECT @KHFrameworkStoredProcedureCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'P' AND [SO].[name] LIKE 'ky%' --No of SP specifically for KAAS Web SELECT @KaasWebStoredProcedureCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'P' AND [SO].[name] LIKE 'KAAS_%' AND [SO].[name] NOT LIKE 'KAAS_CP%' --No of SP specifically for Client Portal SELECT @ClientPortalStoredProcedureCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'P' AND [SO].[name] LIKE 'KAAS_CP%' --No of UFN specifically for KH Framework SELECT @KHFrameworkFunctionCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'FN' AND [SO].[name] LIKE 'ky%' --No of SP specifically for KAAS Web SELECT @KaasWebFunctionCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'FN' AND [SO].[name] LIKE 'KAAS_%' AND [SO].[name] NOT LIKE 'KAAS_CP%' --No of SP specifically for Client Portal SELECT @ClientPortalFunctionCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'FN' AND [SO].[name] LIKE 'KAAS_CP%' --No of UFN specifically for KH Framework SELECT @KHFrameworkTableFunctionCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'TF' AND [SO].[name] LIKE 'ky%' --No of SP specifically for KAAS Web SELECT @KaasWebTableFunctionCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'TF' AND [SO].[name] LIKE 'KAAS_%' AND [SO].[name] NOT LIKE 'KAAS_CP%' --No of SP specifically for Client Portal SELECT @ClientPortalTableFunctionCount = COUNT(1) FROM sys.objects [SO] WHERE [SO].[type] = 'TF' AND [SO].[name] LIKE 'KAAS_CP%' --Consolidate all count into single select SELECT @TablesCount AS [TenantTablesCount], @TriggerCount AS [TenantTriggerCount], @KHFrameworkStoredProcedureCount AS [FrameworkProceduresCount], @KaasWebStoredProcedureCount AS [KeyhouseWebProceduresCount], @ClientPortalStoredProcedureCount AS [ClientPortalProceduresCount], @KHFrameworkTableFunctionCount AS [FrameworkTableFunctionCount], @KHFrameworkFunctionCount AS [FrameworkFunctionCount], @KaasWebTableFunctionCount AS [KeyhouseWebTableFunctionCount], @KaasWebFunctionCount AS [KeyhouseWebFunctionCount], @ClientPortalTableFunctionCount AS [ClientPortalTableFunctionCount], @ClientPortalFunctionCount AS [ClientPortalFunctionCount] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDefaultBankAccountSAM4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDefaultBankAccountSAM4] END GO CREATE PROCEDURE [dbo].[KAAS_GetDefaultBankAccountSAM4] (@matter VARCHAR(20), @TypeCode VARCHAR(1)) AS /**************************************************************************************************************** * * Stored Procedure Name - KAAS_GetDefaultBankAccountSAM4 * Copied From - ky_NETSPGetDefaultBankAccountSAM4 * * This stored procedure retrieves the default Client or Office Bank Account (based on matter code and Type Code) * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * remains fully functional * ****************************************************************************************** * * * * Supersedes: - * * First compatible version: 5.6.3.1 * * Last compatible software version: - * * Superseded by: - * * * ****************************************************************************************** * * Modification History * 2018-08-21 Pino Carafa Created * 2020-06-01 Sadiq Copied from ky_NETSPGetDefaultBankAccountSAM4 * ****************************************************************************************************************/ BEGIN DECLARE @BankAcc VARCHAR(10) DECLARE @Branch VARCHAR(3) IF RTRIM(ISNULL(@matter, '')) <> '' BEGIN SELECT @Branch = RTRIM(ISNULL([MAT].[Branch], '')), @BankAcc = CASE WHEN ISNULL(@TypeCode, 'C') = 'O' THEN RTRIM(ISNULL([MAT].[OfficeBankAc], '')) ELSE RTRIM(ISNULL([MAT].[DepositAC3], '')) END FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @matter END IF (@BankAcc = '') AND (@Branch <> '') BEGIN SELECT @BankAcc = CASE WHEN ISNULL(@TypeCode, 'C') = 'O' THEN RTRIM(ISNULL([BCH].[DEFOFFICE], '')) ELSE RTRIM(ISNULL([BCH].[DEFCLIENT], '')) END FROM [dbo].[Branch] [BCH] WHERE [BCH].[BRANCHCODE] = @Branch END IF (@BankAcc = '') BEGIN SELECT @BankAcc = ISNULL((SELECT TOP 1 RTRIM(ISNULL([CTL].[NomValue], '')) FROM [dbo].[CtrlNom] [CTL] WHERE [CTL].[Code] = CASE WHEN ISNULL(@TypeCode, 'C') = 'O' THEN 'Office Bank' ELSE 'Client Bank' END), '') END SELECT @BankAcc AS [DefaultBankAccount] END GO DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 0 BEGIN EXEC(' IF OBJECT_ID(''KAAS_GetDefaultFeeEarnerBreakdown'', ''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetDefaultFeeEarnerBreakdown] END') EXEC(' CREATE PROCEDURE [dbo].[KAAS_GetDefaultFeeEarnerBreakdown] (@DRAFTNO INT) AS /****************************************************************************************** * * * ky_NETSPGetDefaultFeeEarnerBreakdown * * * * Gets the Default Fee Earner Breakdown for a Draft Bill * * If a Billing Guide is present, it uses the billing guide, * * otherwise it uses the Bill Detail Lines to work it out. * * *2019-12-05 Rajesh P Copied from ky_NETSPGetDefaultFeeEarnerBreakdown * *2024-05-17 Balamurugan.C Modified Final result as per FeeEarnerBreakdownDTO Model * ******************************************************************************************/ BEGIN DECLARE @BFEB TABLE ([MATTER] VARCHAR(20) NOT NULL, [DRAFTNO] INT NOT NULL, [BILLNO] INT NOT NULL, [FECODE] VARCHAR(10) NULL, [TYPE] VARCHAR(1) NULL, [PERCENT] DECIMAL(5, 2) NULL, [CALCULATION] DECIMAL(9, 5) NULL, [VALUE] DECIMAL(11, 2) NULL, [VATCODE] VARCHAR(1) NULL, [VATAMT] DECIMAL(11, 2) NULL, [RECORDID] INT IDENTITY(1,1) NOT NULL, [VATCalculation] DECIMAL(15, 5) NULL) INSERT INTO @BFEB ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation]) SELECT [MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation] FROM [ky_BGNewBillFeeBreakdown](@DRAFTNO) IF NOT EXISTS (SELECT TOP 1 1 FROM @BFEB) BEGIN INSERT INTO @BFEB ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation]) SELECT [MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation] FROM [ky_BGNewBillFeeBreakdownBD](@DRAFTNO) END SELECT BFEB.[RECORDID] AS [RecordID], RTRIM(ISNULL(HAN.[NAME], '''')) AS [Handler], RTRIM(ISNULL(HAN.[CODE], '''')) AS [HandlerCode], BFEB.[PERCENT] AS [Percent], BFEB.[CALCULATION] AS [Calculation], BFEB.[VALUE] AS [Value], BFEB.[VATAMT] AS [VATValue], BFEB.[VATCalculation] AS [VATCalculation], RTRIM(ISNULL(BFEB.[VATCode], '''')) AS [VATCode] FROM @BFEB BFEB LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[code] = BFEB.[FECODE] END') END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDiaryAttachmentForCopy' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDiaryAttachmentForCopy] END GO CREATE PROCEDURE [dbo].[KAAS_GetDiaryAttachmentForCopy] (@TRV VARCHAR(10)) AS /************************************************************************** * * * Get Diary Attachment information for copying * * * * Stored Procedure Name : KAAS_GetDiaryAttachmentForCopy * * Copied From : ky_NETSPGetDiaryAttachmentForCopy * * * * 2019-09-03 Vinodhan Created KAAS_GetDiaryAttachmentForCopy * * * **************************************************************************/ BEGIN DECLARE @TR INT BEGIN TRY SET @TR = CONVERT(INT, @TRV) END TRY BEGIN CATCH SET @TR = 0 END CATCH SELECT RTRIM(ISNULL(DAT.[NAME], '')) AS [NAME], RTRIM(ISNULL(DAT.[DOCUMENT], '')) AS [DOCUMENT], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), DIA.[SUBJECT]), '')) AS [SUBJECT], RTRIM(ISNULL(DAT.[TYPE], '')) AS [TYPE], RTRIM(ISNULL(DAT.[DOCCLASS], '')) AS [DOCCLASS], RTRIM(ISNULL(DAT.[SYSTEM], '')) AS [SYSTEM], RTRIM(ISNULL(DAT.[DICTATIONFILE], '')) AS [DICTATIONFILE], RTRIM(ISNULL(DAT.[SOURCE], '')) AS [Source], DAT.[DIARYID] AS [ACTIONID], RTRIM(ISNULL(DIA.[CASECODE], '')) AS [CASECODE], RTRIM(ISNULL([DAT].[FILEPATH], '')) AS [FILEPATH], [MAT].[UniqueId] AS [UniqueId] FROM [dbo].[DiaryAttachments] DAT INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = DAT.[DIARYID] LEFT OUTER JOIN matters [MAT] ON [DIA].[CASECODE] = [MAT].[Code] WHERE DAT.[TrackReference] = @TR AND DAT.[TrackReference] <> 0 END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDocumentCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDocumentCode] END GO CREATE PROCEDURE [dbo].[KAAS_GetDocumentCode] (@Code VARCHAR(50) , @DocumentValue VARCHAR(50) = '' OUTPUT) AS /************************************************************************************************ * This procedure is used get the Code for work flow Action Page word Documents. * * * * Stored Procedure Name : [dbo].[KAAS_GetDocumentCode] * * Copied from : [dbo].[Ky_NetGetDocumentCode] * * * * Modification History : * * 2023-06-19 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ClientCode VARCHAR(20) DECLARE @AsciiCode VARCHAR(30) DECLARE @TemplateCode VARCHAR(10) SET @TemplateCode = (SELECT RTRIM(Max([code])) FROM [TemplateDocuments] WHERE [CODE] like '%' + @Code + '%') SET @AsciiCode = ASCII(RIGHT((@TemplateCode ), 1)) + 1 IF (@AsciiCode > 90) BEGIN SET @DocumentValue = @TemplateCode + (CHAR(65)) END ELSE BEGIN SET @ClientCode = LEFT(@TemplateCode, DATALENGTH(@TemplateCode)-1) + (CHAR(@AsciiCode)) IF(@ClientCode IS NULL) BEGIN SET @DocumentValue = @Code + 'A' END ELSE BEGIN SET @DocumentValue = @ClientCode END END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDocumentCodeByCasePlan' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDocumentCodeByCasePlan] END GO CREATE PROCEDURE [dbo].[KAAS_GetDocumentCodeByCasePlan] (@caseplan VARCHAR(4)) AS /************************************************************************************************ * Lists the DocAssistCodes used in a Case Plans * * * * Stored Procedure Name : [dbo].[KAAS_GetDocumentCodeByCasePlan] * * Copied from : [dbo].[ky_NETSPSUFByCasePlan] * * * * Modification History : * * 2023-06-27 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [DA].[DocAssistCode], CASE WHEN [DA].[Prompt] = '' THEN [DA].[DocAssistCode] ELSE [DA].[Prompt] END AS [Prompt], [DA].[CodeIsValid], COUNT(DISTINCT [DA].[ACTIONCODE]) AS [UsedInActions], COUNT(1) AS [UsedInDocuments] FROM ( select [AWT].[WorkType], [AWT].[ACTIONCODE], [TDOC].[DOCUMENT], [SXR].[Prefix] + CASE WHEN [SXR].[Prefix] = 'sys:' THEN [SXR].[FullName] ELSE [SXR].[FieldName] END AS [DocAssistCode], RTRIM(ISNULL([SUF].[Prompt], '')) AS [Prompt], CASE WHEN [SXR].[Prefix] = 'sys:' THEN CONVERT(BIT, 1) WHEN [SUF].[FILEPREFIX] IS NULL THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [CodeIsValid] from [dbo].[ActionWorkTypes] [AWT] INNER JOIN [dbo].[TemplateActionDcouments] [TDOC] INNER JOIN [dbo].[SUFDocumentXRef] [SDXR] INNER JOIN [dbo].[SUFXRef] [SXR] ON [SXR].[id] = [SDXR].[SUFXRefID] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SXR].[Prefix] AND [SUF].[FIELDNAME] = [SXR].[FieldName] ON [SDXR].[TemplateCode] = [TDOC].[DOCUMENT] ON [TDOC].[ACTION] = [AWT].[ACTIONCODE] where [AWT].[WORKTYPE] = @caseplan and [SXR].[Prefix] NOT IN ('can:', 'aud:', 'lcn:') UNION select [AWT].[WorkType], [AWT].[ACTIONCODE], [TDOC].[DOCUMENT], [SXR].[Prefix] + CASE WHEN [SXR].[Prefix] = 'sys:' THEN [SXR].[FullName] ELSE [SXR].[FieldName] END + CASE WHEN [SXR].[Prefix] IN ('can:', 'aud:') THEN '.' + [SXRCT].[TYPE] ELSE '' END + CASE WHEN [SXR].[Prefix] IN ('can:', 'aud:', 'lcn:') THEN RTRIM(ISNULL([SXRCTA].[Aggregate], '')) ELSE '' END AS [DocAssistCode], RTRIM(ISNULL([SUF].[Prompt], '')) AS [Prompt], CASE WHEN [SXR].[Prefix] = 'sys:' THEN CONVERT(BIT, 1) WHEN [SUF].[FILEPREFIX] IS NULL THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [CodeIsValid] from [dbo].[ActionWorkTypes] [AWT] INNER JOIN [dbo].[TemplateActionDcouments] [TDOC] INNER JOIN [dbo].[SUFDocumentXRefByCANTypeAgg] [SDXRCTA] ON [SDXRCTA].[TemplateCode] = [TDOC].[DOCUMENT] INNER JOIN [dbo].[SUFXRefByCANTypeAgg] [SXRCTA] ON [SXRCTA].[id] = [SDXRCTA].[SUFXRefByCANTypeAggID] INNER JOIN [dbo].[SUFDocumentXRefByCANType] [SDXRCT] ON [SDXRCT].[TemplateCode] = [TDOC].[DOCUMENT] INNER JOIN [dbo].[SUFXRefByCANType] [SXRCT] ON [SXRCT].[id] = [SDXRCT].[SUFXRefByCANTypeID] AND [SXRCT].[id] = [SXRCTA].[SUFXRefByCANTypeID] INNER JOIN [dbo].[SUFDocumentXRef] [SDXR] ON [SDXR].[TemplateCode] = [TDOC].[DOCUMENT] INNER JOIN [dbo].[SUFXRef] [SXR] ON [SXR].[id] = [SDXR].[SUFXRefID] AND [SXR].[id] = [SXRCT].[SUFXRefID] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SXR].[Prefix] AND [SUF].[FIELDNAME] = [SXR].[FieldName] ON [TDOC].[ACTION] = [AWT].[ACTIONCODE] where [AWT].[WORKTYPE] = @caseplan and [SXR].[Prefix] IN ('can:', 'aud:', 'lcn:')) [DA] GROUP BY [DA].[DocAssistCode], [DA].[Prompt], [DA].[CodeIsValid] ORDER BY [DA].[DocAssistCode] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_GetDocumentParagraph' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDocumentParagraph] END GO CREATE PROCEDURE [dbo].[KAAS_GetDocumentParagraph] AS /************************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_GetDocumentParagraph] * * Copied from : [dbo].[Ky_NETGetDocumentParagraph] * * Description: Lists document paragraphs for Selection. * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2021-05-10 Aakif New file created * * * *************************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [DP].[KEYFIELD], RTRIM(ISNULL([DP].[CATEGORY], '')) AS [Category], RTRIM(ISNULL([DP].[TEXTVALUE], '')) AS [TextValue], CASE WHEN RTRIM(ISNULL([DP].[Title], '')) = '' THEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace]([DP].[TEXTVALUE], 100) ELSE RTRIM([DP].[Title]) END AS [Title] FROM [dbo].[DocumentPopups] [DP] ORDER BY RTRIM(ISNULL([DP].[CATEGORY], '')) ASC SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDocumentsIM' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDocumentsIM] END GO CREATE PROCEDURE [dbo].[KAAS_GetDocumentsIM] (@matter VARCHAR(20), @ActionID INT, @DocFolderID INT, @IMDocs VARCHAR(MAX), @PageNo INT = NULL, @PageSize INT = NULL, @SearchText VARCHAR(4000) = '', @FileType VARCHAR(4000) = '', @SortColumn VARCHAR(50) = '', @SortDirection VARCHAR(10) = '', @LoggedInHandler VARCHAR(10) = NULL, @ColumnNames VARCHAR(50) = '', @FilterValues VARCHAR(4000) = '', @DocumentIsNear BIT = 0, @DocumentStartDate DATE='', @DocumentEndDate DATE='' ) AS /************************************************************************************************************************ * * * [dbo].[KAAS_GetDocumentsIM] * * * * Get list of Documents for the Document Manager * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * Original: [ky_NETSPGetDocumentsIM] * * * * First compatible version: 5.7.2.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2019-04-23 Vinodhan K Created * * 2019-05-24 Pino Carafa Performance improvements * * 2019-05-24 Vinodhan Search field have changed as document instead of filepath * * 2019-05-24 Arun Performance improvements, * * 2019-09-09 Vinodhan K Search now can be done on Document class description field * * 2019-09-18 Vinodhan K Total no. of records now will be displayed based on searched text (KEYSAAS - 1035) * * 2020-02-13 Prabhu.V Modified the SP to Implement filter works with dynamic values * * 2020-04-23 Prabhu.V Performance Improved * * 2020-04-29 Prabhu.V Fixed FileType Filter Not working after Improved the SP * * 2020-05-04 Arun V Document classes datatype size incresed. KEYHM-582 * * 2020-05-04 Prabhu V Document total reocrd issue fixed * * 2020-05-20 Prabhu V Custom Filter Condition missed on performance improvement and added it now * * 2021-06-02 Sadiq Handled seaching for Document near this Funcionlaity in Document manager(11989) * * 2021-06-07 Sadiq Filter option need to be added when "DOcument Near this" is selected(11988) * * 2021-06-11 Sadiq Added document name search also now . (12398) * 2021-06-23 Sadiq Added DiaryDate which was wrongly wrote as Date . (12469) * 2021-09-03 Aakif Included time for diary action and document * * 2022-06-03 Vinodhkumar.M INcluded signing Status in the list * * 2022-09-05 Revathy.D Fixed Random records missing issue * * 2022-12-12 Balamurugan.C Added LastAccessDate column to the list for Brief Building Purpose * * 2022-12-19 Sadiq Added LastAccessDate column to the whole SP and fixed error in 15782 * * 2023-07-07 Revathy Added Source and Attachment fields for filter * ************************************************************************************************************************/ BEGIN DECLARE @res TABLE ([id] INT identity(1, 1), [ActionId] INT, [TrackReference] INT, [IMDocID] VARCHAR(500), [IMClass] VARCHAR(20), [DocClass] VARCHAR(10), [Document] VARCHAR(2000), [DiaryDate] DATETIME, [DocumentDate] DATETIME, [TYPE] VARCHAR(20), [Attachments] CHAR(1), [EMAIL] VARCHAR(1), [EMAILFROM] VARCHAR(200), [EMAILSENT] DATETIME, [EMAILTO] VARCHAR(1000), [CurrentVersion] INT, [IsInDocFolder] BIT, [IsShared] BIT, [DocumentClassDescription] VARCHAR(40), [UniqueId] INT, [FilePath] VARCHAR(500), [Subject] VARCHAR(2000), [ShortText] VARCHAR(120), [NAME] VARCHAR(500), [ProcessType] VARCHAR(50), [ACTIONTYPE] VARCHAR(50), [ActionTypeDescription] VARCHAR(500), [DOCUMENTSOURCE] VARCHAR(500), [SigningStatus] VARCHAR(100), [LASTACCESSDATE] DATETIME, [TotalRecord] INT ) DECLARE @TOTALRECORDS INT =0; DECLARE @classes TABLE ([KeyhouseClass] INT, [IMClass] INT, [ClassCode] VARCHAR(20), [ClassDescription] VARCHAR(100)) DECLARE @IMDocTable TABLE ([IMDocID] VARCHAR(500) PRIMARY KEY, [Description] VARCHAR(2000), [IMClass] VARCHAR(20), [IMType] VARCHAR(20), [EmailFrom] VARCHAR(200), [EmailTo] VARCHAR(1000), [EmailSent] DATETIME, [DocumentDate] DATETIME) DECLARE @IMDocExpanded TABLE ([id] INT IDENTITY(1, 1) PRIMARY KEY, [ActionID] INT, [TrackReference] INT, [IMDocID] VARCHAR(500), [IMClass] VARCHAR(20), [DocClass] VARCHAR(10), [Document] VARCHAR(2000), [DiaryDate] DATETIME, [DocumentDate] DATETIME, [EmailSent] DATETIME, [TYPE] VARCHAR(20), [Attachments] CHAR(1), [EMAIL] CHAR(1), [EmailFrom] VARCHAR(200), [EmailTo] VARCHAR(1000), [CurrentVersion] INT) DECLARE @FileTypeList TABLE ([FileType] VARCHAR(20) PRIMARY KEY) INSERT INTO @FileTypeList SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@FileType, ',') DECLARE @idoc INT /* DECLARE @StartRow INT = NULL; DECLARE @EndRow INT = NULL; IF(((ISNULL(@PageNo, 0)) != 0 AND (ISNULL(@PageSize, 0)) != 0) AND (@PageNo > -1)) BEGIN SET @PageNo = ISNULL(@PageNo, 0) - 1; -- 0 BASED INDEX SET @StartRow = ((@PageNo) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END */ IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'RowNumber' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END DECLARE @uniqueid AS INT=0; SELECT @uniqueid = [uniqueid] FROM dbo.[matters] WHERE [Code] = @matter DECLARE @CustomFilter TABLE ([DOCCLASS] VARCHAR(2000), [TYPE] VARCHAR(2000), [SOURCE] VARCHAR(2000), [ATTACHMENT] VARCHAR(2000)) DECLARE @DOCCLASSFilterCount INT = 0; DECLARE @TypeFilterCount INT = 0; DECLARE @AttachmentFilterCount INT = 0; DECLARE @SourceFilterCount INT = 0; IF @ColumnNames <> '' BEGIN -- Dynamic Filter By Custome Filter Settings Start SELECT columnName,rownumber INTO #columntbl FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS columnName, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM ( SELECT CAST('' + REPLACE(@ColumnNames,',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) ColumnTbl -- count(*) over(), SELECT FilterValue,rownumber INTO #FILTERVALUETBL FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM ( SELECT CAST('' + REPLACE(@FilterValues,'|','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBL DECLARE @count int DECLARE @lptcnt int=1 DECLARE @ColumnName varchar(50) DECLARE @FilterValue varchar(2000) SELECT @count = count(1) FROM #columntbl; WHILE @lptcnt <= @count BEGIN SET @FilterValue ='' SELECT @ColumnName = columnName FROM #columntbl WHERE rownumber = @lptcnt SELECT @FilterValue = FilterValue FROM #FILTERVALUETBL WHERE rownumber = @lptcnt IF(@ColumnName = 'DOCCLASS') insert into @CustomFilter (DOCCLASS,[TYPE],[SOURCE],[ATTACHMENT]) values (@FilterValue,null,null,null) ELSE IF(@ColumnName = 'Type') insert into @CustomFilter (DOCCLASS,[TYPE],[SOURCE],[ATTACHMENT]) values (null,@FilterValue,null,null) ELSE IF(@ColumnName = 'DocumentSource') insert into @CustomFilter (DOCCLASS,[TYPE],[SOURCE],[ATTACHMENT]) values (null,null,@FilterValue,null) ELSE IF(@ColumnName = 'Attachment') insert into @CustomFilter (DOCCLASS,[TYPE],[SOURCE],[ATTACHMENT]) values (null,null,null,@FilterValue) SET @lptcnt = @lptcnt + 1; END SET @DOCCLASSFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE DOCCLASS IS NOT NULL AND DOCCLASS <>'') SET @TypeFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE TYPE IS NOT NULL AND TYPE <>'') SET @SourceFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [SOURCE] IS NOT NULL AND [SOURCE] <>'') SET @AttachmentFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [ATTACHMENT] IS NOT NULL AND [ATTACHMENT] <>'') END IF (ISNULL(@DocFolderID, 0) = 0) AND (ISNULL(@ActionID, 0) = 0) BEGIN SET @IMDocs = ISNULL(@IMDocs, '' + CHAR(13) + CHAR(10) + '') IF (ISNULL(PATINDEX('%' + CHAR(13) + CHAR(10) + @IMDocs END BEGIN TRY EXEC sp_xml_preparedocument @idoc OUTPUT, @IMDocs END TRY BEGIN CATCH EXEC sp_xml_preparedocument @idoc OUTPUT, '' END CATCH INSERT INTO @IMDocTable ([IMDocID], [Description], [IMClass], [IMType], [EmailFrom], [EmailTo], [EmailSent], [DocumentDate]) SELECT [DAL].[IMDocID], [DAL].[Description], [DAL].[IMClass], [DAL].[IMType], [DAL].[EmailFrom], [DAL].[EmailTo], [DAL].[EmailSent], [DAL].[DocumentDate] FROM OPENXML(@idoc, 'IMDocs/Doc', 2) WITH([IMDocID] VARCHAR(500) '@DocId', [Description] VARCHAR(2000) '@Description', [IMClass] VARCHAR(20) '@ClassId', [IMType] VARCHAR(20) '@TypeId', [EmailFrom] VARCHAR(200) '@EmailFrom', [EmailTo] VARCHAR(1000) '@EmailTo', [EmailSent] DATETIME '@EmailSent', [DocumentDate] DATETIME '@DocumentDate') [DAL] EXEC sp_xml_removedocument @idoc INSERT INTO @res ([ActionId], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [DiaryDate], [DocumentDate], [EmailSent], [TYPE], [Attachments], [EMAIL], [EmailFrom], [EmailTo], [CurrentVersion], [IsInDocFolder], [IsShared]) SELECT convert(INT, NULL) AS [ActionID], convert(INT, NULL) AS [TrackReference], [DAL].[IMDocID] AS [IMDocID], [DAL].[IMClass] AS [IMClass], convert(VARCHAR(10), NULL) AS [DocClass], [DAL].[Description] AS [Document], convert(DATETIME, ISNULL([DAL].[DocumentDate], [DAL].[EmailSent])) AS [DiaryDate], convert(DATETIME, ISNULL([DAL].[DocumentDate], [DAL].[EmailSent])) AS [DocumentDate], convert(DATETIME, [DAL].[EmailSent]) AS [EMAILSENT], CASE convert(VARCHAR(20), [DAL].[IMTYPE]) WHEN 'WORD' THEN 'DOC' WHEN 'WORDX' THEN 'DOC' WHEN 'WPF' THEN 'DOC' WHEN 'ANSI' THEN 'DOC' WHEN 'ACROBAT' THEN 'PDF' WHEN 'EXCEL' THEN 'XLS' WHEN 'EXCELX' THEN 'XLS' WHEN 'MIME' THEN CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN 'MSG' ELSE 'MIME' END ELSE [DAL].[IMTYPE] END AS [TYPE], CONVERT(CHAR(1), 'N') AS [Attachments], CONVERT(CHAR(1), CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail' THEN 'Y' ELSE 'N' END) As [EMAIL], CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail' THEN [DAL].[EMAILFROM] ELSE CONVERT(VARCHAR(200), NULL) END AS [EmailFrom], CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail' THEN [DAL].[EMAILTO] ELSE CONVERT(VARCHAR(1000), NULL) END AS [EmailTo], CONVERT(INT, 1) AS [CurrentVersion], 0 AS [IsInDocFolder], 0 AS [IsShared] FROM @IMDocTable [DAL] LEFT OUTER JOIN [dbo].[DAIMXref] [DX] ON [DX].[IMDocID] = [DAL].[IMDocID] WHERE [DX].[TrackReference] IS NULL AND ( @SearchText = '' OR ([DAL].[Description] LIKE '%' + @SearchText + '%') OR (CONVERT(DATETIME, ISNULL([DAL].[DocumentDate], [DAL].[EmailSent])) LIKE '%' + @SearchText + '%') ) AND ( ISNULL(@FileType, '') = '' OR (CASE CONVERT(VARCHAR(20),[DAL].[IMTYPE]) WHEN 'WORD' THEN 'DOC' WHEN 'WORDX' THEN 'DOC' WHEN 'WPF' THEN 'DOC' WHEN 'ANSI' THEN 'DOC' WHEN 'ACROBAT' THEN 'PDF' WHEN 'EXCEL' THEN 'XLS' WHEN 'EXCELX' THEN 'XLS' WHEN 'MIME' THEN CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN 'MSG' ELSE 'MIME' END ELSE [DAL].[IMTYPE] END IN (select FileType from @FileTypeList )) ) --Filterig the value using search IF @DocumentIsNear=1 BEGIN SELECT @TOTALRECORDS = Count(1) FROM dbo.[DiaryAttachmentSelector] [DAS] LEFT JOIN dbo.[DiaryAttachments] [DA] ON [DAS].[TrackReference] = [DA].[TrackReference] LEFT JOIN dbo.[diary] [DIA] ON [DA].[DiaryID] = [DIA].[ACTIONID] and [DIA].CASECODE = [DA].CASECODE WHERE [DAS].[CaseCode] = @matter AND [DA].DATEENTERED>=@DocumentStartDate AND [DA].DATEENTERED<=@DocumentEndDate AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DA].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DA].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 THEN 0 WHEN [DIA].[Attachments] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 THEN 0 WHEN (RTRIM(ISNULL([DA].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END))) in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) SELECT @TOTALRECORDS = Count(1)+ @TOTALRECORDS FROM @res SELECT [DAS].[CASECODE],[DAS].[ACTIONID],[DAS].[DiaryDate] [DATE],[DIA].[TxmDate], [DAS].[EMAIL],[DAS].[ATTACHMENTS],[DAS].[EMAILADDRESS],[DAS].[ADDRESSTO],[DAS].[SUBJECT],[DAS].[DisplayText], [DAS].[PROCESSTYPE],[DAS].[ACTIONTYPE], [DA].[DIARYID],[DAS].[TrackReference],[DAS].[DocClass],[DA].[DATEENTERED],[DAS].[TYPE], [DA].[FILEPATH],[DA].[NAME],[DA].[SOURCE], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass], RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) AS [Document], CASE WHEN [DAS].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DAS].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DAS].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DAS].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DAS].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DAS].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DAS].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DAS].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DAS].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DAS].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DAS].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DAS].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DAS].[ACTIONTYPE], '')) = '' THEN CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DAS].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' THEN 'Email' WHEN convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DAS].[ACTIONTYPE] END AS [ActionTypeDescription], CASE WHEN convert(VARCHAR(10), ISNULL([DAS].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END AS [DocumentClassDescription], [DAS].[SigningStatus] AS [SigningStatus], [DA].[LASTACCESSDATE] AS [LASTACCESSDATE] --,Count(1) Over() as TotalRowsCount INTO #DiaryTablesDoc FROM [DiaryAttachmentSelector] [DAS] LEFT JOIN dbo.[DiaryAttachments] [DA] ON [DAS].[TrackReference] = [DA].[TrackReference] LEFT JOIN dbo.[diary] [DIA] ON [DA].[DiaryID] = [DIA].[ACTIONID] and [DIA].CASECODE = [DA].CASECODE LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DA].[TrackReference] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' AND DCL.[CLASSCODE] = CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) = '' THEN convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) ELSE convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) END WHERE [DAS].[CaseCode] = @matter AND [DA].DATEENTERED>=@DocumentStartDate AND [DA].DATEENTERED<=@DocumentEndDate AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DAS].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DAS].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 OR [DAS].[ATTACHMENTS] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 OR [DA].[SOURCE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) order by [DA].DATEENTERED OFFSET @PageSize * (@PageNo - 1) ROWS FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE); INSERT INTO @res ([ActionId], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [DiaryDate], [DocumentDate], [EmailSent], [TYPE], [Attachments], [EMAIL], [EmailFrom], [EmailTo], [CurrentVersion], [IsInDocFolder], [IsShared], [DocumentClassDescription], [UniqueId], [FilePath], [Subject], [ShortText], [NAME], [ProcessType], [ACTIONTYPE], [ActionTypeDescription], [DOCUMENTSOURCE] ,[SigningStatus] ,[LASTACCESSDATE] -- ,[TotalRecord] ) SELECT convert(INT, [DIA].[DIARYID]) AS [ActionID], convert(INT, [DIA].[TrackReference]) AS [TrackReference], [DIA].[IMDocID], [DIA].[IMClass], convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) AS [DocClass], [DIA].[Document], convert(DATETIME, [DIA].[DATE]) As [DiaryDate], convert(DATETIME, [DIA].[DATEENTERED]) AS [DocumentDate], convert(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) As [EMAILSENT], convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))) AS [TYPE], -- CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END AS [Attachments], (CASE WHEN ISNULL( convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END), '') = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END ) WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END) ELSE 'N' END) AS [Attachments], -- convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], (CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' ELSE 'N' END) AS [EMAIL], -- convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(200), SUBSTRING(convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))), 1, 200)), '')) AS [EMAILFROM], --RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')), 1, 1000)), '')) AS [EMAILTO], [DV].[CurrentVersion], [IND].[InDocFolder], [SHD].[IsShared], [DIA].[DocumentClassDescription], @uniqueid AS uniqueid, CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DIA].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DIA].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DIA].[FILEPATH], ''))) - 2) END AS [FILEPATH], -- [RES].[EMAILSENT], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(2000), [DIA].[SUBJECT]),'')), 1, 1000)), '')) AS [SUBJECT], RTRIM(ISNULL(CONVERT(VARCHAR(120), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(120), [DIA].[DisplayText]),'')), 1, 120)), '')) AS [ShortText], RTRIM(ISNULL([DIA].[NAME], '')) AS [NAME], RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE], [DIA].[ActionTypeDescription], RTRIM(ISNULL([DIA].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END)) AS [DOCUMENTSOURCE] --,TotalRowsCount ,[DAS].[SigningStatus] ,CONVERT(DATETIME, [DIA].[LASTACCESSDATE]) AS [LASTACCESSDATE] FROM #DiaryTablesDoc [DIA] -- INNER JOIN dbo.[matters] [MAT] ON [MAT].[CODE] = [DIA].[CASECODE] LEFT JOIN [DiaryAttachmentSelector] [DAS] ON [DAS].[TrackReference] = [DIA].[TrackReference] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [InDocFolder] FROM [dbo].[DocFolderDocuments] [DFD] WHERE [DFD].[TrackReference] = [DIA].[TrackReference]) [IND] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsShared] FROM [dbo].[FileSharingDocuments] [FSD] INNER JOIN [dbo].[FileSharingMapping] [FSM] INNER JOIN [dbo].[FileSharingDocFolders] [FSDF] ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID] AND [FSDF].[Shared] = 1 ON [FSM].[id] = [FSD].[FileSharingMappingID] WHERE [FSD].[TrackReference] = [DIA].[TrackReference]) [SHD] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE TRACKREFERENCE = [DIA].[TRACKREFERENCE]) [DV] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DIA].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DIA].[FilePath], 1, 1) OUTER APPLY ( SELECT TOP 1 [MST].[TrackReference] AS [TrackReference], [MST].[Type] AS [Type] FROM #DiaryTablesDoc [MST] WHERE [MST].[diaryid] = [DIA].[ActionID] ORDER BY CASE WHEN [MST].Type = 'MSG' THEN 0 ELSE 1 END, [MST].[TrackReference]) [OMS] END ELSE BEGIN SELECT @TOTALRECORDS = Count(1) FROM dbo.[DiaryAttachmentSelector] [DAS] LEFT JOIN dbo.[DiaryAttachments] [DA] ON [DAS].[TrackReference] = [DA].[TrackReference] LEFT JOIN dbo.[diary] [DIA] ON [DA].[DiaryID] = [DIA].[ACTIONID] and [DIA].CASECODE = [DA].CASECODE WHERE [DAS].[CaseCode] = @matter AND ( CASE WHEN @SearchText = '' THEN 1 WHEN ([DA].FILEPATH LIKE '%' + @SearchText + '%') OR (RTRIM(convert(VARCHAR(2000), ISNULL([DA].[Document], ''))) LIKE '%' + @SearchText + '%') OR ([DA].[DATEENTERED] LIKE '%' + @SearchText + '%') OR ([DA].[TYPE] LIKE '%' + @SearchText + '%') OR ([DA].[DocClass] LIKE '%' + @SearchText + '%') THEN 1 ELSE 0 END = 1 ) AND ( ISNULL(@FileType, '') = '' OR ([DA].[TYPE] IN (select FileType from @FileTypeList )) ) AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DA].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DA].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 THEN 0 WHEN [DAS].[Attachments] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 THEN 0 WHEN (RTRIM(ISNULL([DA].[SOURCE], CASE WHEN [DAS].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END))) in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) SELECT @TOTALRECORDS = Count(1)+ @TOTALRECORDS FROM @res SELECT [DAS].[CASECODE],[DAS].[ACTIONID],[DAS].[DiaryDate] [DATE],[DIA].[TxmDate], [DAS].[EMAIL],[DAS].[ATTACHMENTS],[DAS].[EMAILADDRESS],[DAS].[ADDRESSTO],[DAS].[SUBJECT],[DAS].[DisplayText], [DAS].[PROCESSTYPE],[DAS].[ACTIONTYPE], [DA].[DIARYID],[DAS].[TrackReference],[DAS].[DocClass],[DA].[DATEENTERED],[DAS].[TYPE], [DA].[FILEPATH],[DA].[NAME],[DA].[SOURCE], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass], RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) AS [Document], CASE WHEN [DAS].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DAS].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DAS].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DAS].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DAS].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DAS].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DAS].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DAS].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DAS].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DAS].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DAS].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DAS].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DAS].[ACTIONTYPE], '')) = '' THEN CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DAS].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' THEN 'Email' WHEN convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DAS].[ACTIONTYPE] END AS [ActionTypeDescription], CASE WHEN convert(VARCHAR(10), ISNULL([DAS].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END AS [DocumentClassDescription] --,Count(1) Over() as TotalRowsCount ,[DAS].[SigningStatus] ,[DA].[LASTACCESSDATE] AS [LASTACCESSDATE] INTO #DiaryTables FROM [DiaryAttachmentSelector] [DAS] LEFT JOIN dbo.[DiaryAttachments] [DA] ON [DAS].[TrackReference] = [DA].[TrackReference] LEFT JOIN dbo.[diary] [DIA] ON [DA].[DiaryID] = [DIA].[ACTIONID] and [DIA].CASECODE = [DA].CASECODE LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DA].[TrackReference] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' AND DCL.[CLASSCODE] = CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) = '' THEN convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) ELSE convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) END WHERE [DAS].[CaseCode] = @matter AND ( CASE WHEN @SearchText = '' THEN 1 WHEN ([DA].FILEPATH LIKE '%' + @SearchText + '%') OR (RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) LIKE '%' + @SearchText + '%') OR ([DA].[DATEENTERED] LIKE '%' + @SearchText + '%') OR ([DA].[TYPE] LIKE '%' + @SearchText + '%') OR ([DA].[DocClass] LIKE '%' + @SearchText + '%') THEN 1 ELSE 0 END = 1 ) AND ( ISNULL(@FileType, '') = '' OR ([DA].[TYPE] IN (select FileType from @FileTypeList )) ) AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DA].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DA].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 OR [DAS].[ATTACHMENTS] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 OR [DA].[SOURCE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) ORDER BY CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Type' THEN convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Type' THEN convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) END END DESC, CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Document' THEN RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Document' THEN RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) END END DESC, CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentClassDescription' THEN CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentClassDescription' THEN CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END END END DESC, CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentDate' THEN convert(DATETIME, [DA].[DATEENTERED]) END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentDate' THEN convert(DATETIME, [DA].[DATEENTERED]) END END DESC, [DA].[TrackReference] DESC OFFSET @PageSize * (@PageNo - 1) ROWS FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE); INSERT INTO @res ([ActionId], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [DiaryDate], [DocumentDate], [EmailSent], [TYPE], [Attachments], [EMAIL], [EmailFrom], [EmailTo], [CurrentVersion], [IsInDocFolder], [IsShared], [DocumentClassDescription], [UniqueId], [FilePath], [Subject], [ShortText], [NAME], [ProcessType], [ACTIONTYPE], [ActionTypeDescription], [DOCUMENTSOURCE], [SigningStatus], [LASTACCESSDATE] -- ,[TotalRecord] ) SELECT convert(INT, [DIA].[DIARYID]) AS [ActionID], convert(INT, [DIA].[TrackReference]) AS [TrackReference], [DIA].[IMDocID], [DIA].[IMClass], convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) AS [DocClass], [DIA].[Document], convert(DATETIME, [DIA].[DATE]) As [DiaryDate], convert(DATETIME, [DIA].[DATEENTERED]) AS [DocumentDate], convert(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) As [EMAILSENT], convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))) AS [TYPE], -- CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END AS [Attachments], (CASE WHEN ISNULL( convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END), '') = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END ) WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END) ELSE 'N' END) AS [Attachments], -- convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], (CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' ELSE 'N' END) AS [EMAIL], -- convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(200), SUBSTRING(convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))), 1, 200)), '')) AS [EMAILFROM], --RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')), 1, 1000)), '')) AS [EMAILTO], [DV].[CurrentVersion], [IND].[InDocFolder], [SHD].[IsShared], [DIA].[DocumentClassDescription], @uniqueid AS uniqueid, CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DIA].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DIA].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DIA].[FILEPATH], ''))) - 2) END AS [FILEPATH], -- [RES].[EMAILSENT], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(2000), [DIA].[SUBJECT]),'')), 1, 1000)), '')) AS [SUBJECT], RTRIM(ISNULL(CONVERT(VARCHAR(120), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(120), [DIA].[DisplayText]),'')), 1, 120)), '')) AS [ShortText], RTRIM(ISNULL([DIA].[NAME], '')) AS [NAME], RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE], [DIA].[ActionTypeDescription], RTRIM(ISNULL([DIA].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END)) AS [DOCUMENTSOURCE], --,TotalRowsCount [DAS].[SigningStatus], [DIA].[LASTACCESSDATE] AS [LASTACCESSDATE] FROM #DiaryTables [DIA] LEFT JOIN [DiaryAttachmentSelector] [DAS] ON [DAS].[TrackReference] = [DIA].[TrackReference] -- INNER JOIN dbo.[matters] [MAT] ON [MAT].[CODE] = [DIA].[CASECODE] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [InDocFolder] FROM [dbo].[DocFolderDocuments] [DFD] WHERE [DFD].[TrackReference] = [DIA].[TrackReference]) [IND] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsShared] FROM [dbo].[FileSharingDocuments] [FSD] INNER JOIN [dbo].[FileSharingMapping] [FSM] INNER JOIN [dbo].[FileSharingDocFolders] [FSDF] ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID] AND [FSDF].[Shared] = 1 ON [FSM].[id] = [FSD].[FileSharingMappingID] WHERE [FSD].[TrackReference] = [DIA].[TrackReference]) [SHD] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE TRACKREFERENCE = [DIA].[TRACKREFERENCE]) [DV] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DIA].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DIA].[FilePath], 1, 1) OUTER APPLY ( SELECT TOP 1 [MST].[TrackReference] AS [TrackReference], [MST].[Type] AS [Type] FROM #DiaryTables [MST] WHERE [MST].[diaryid] = [DIA].[ActionID] ORDER BY CASE WHEN [MST].Type = 'MSG' THEN 0 ELSE 1 END, [MST].[TrackReference]) [OMS] END --SELECT * from #DiaryTables -- OFFSET @PageSize * (@PageNo - 1) ROWS -- FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE); END ELSE IF ISNULL(@DocFolderID, 0) <> 0 BEGIN IF @DocumentIsNear=1 BEGIN SELECT @TOTALRECORDS = Count(1) FROM [dbo].[DocFolderDocuments] [DDC] INNER JOIN dbo.[diary] [DIA] INNER JOIN dbo.[DiaryAttachments] [DA] ON [DA].[DiaryID] = [DIA].[ACTIONID] AND [DA].[CASECODE] = [DIA].[CASECODE] ON [DA].[TrackReference] = [DDC].[TrackReference] WHERE [DDC].[DocFolderID] = @DocFolderID AND [DA].DATEENTERED>=@DocumentStartDate AND [DA].DATEENTERED<=@DocumentEndDate AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DA].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DA].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 THEN 0 WHEN [DIA].[Attachments] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 THEN 0 WHEN (RTRIM(ISNULL([DA].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END))) in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) SELECT [DIA].[CASECODE],[DIA].[ACTIONID],[DIA].[DATE],[DIA].[TxmDate], [DIA].[EMAIL],[DIA].[ATTACHMENTS],[DIA].[EMAILADDRESS],[DIA].[ADDRESSTO],[DIA].[SUBJECT],[DIA].[DisplayText], [DIA].[PROCESSTYPE],[DIA].[ACTIONTYPE], [DA].[DIARYID],[DA].[TrackReference],[DA].[DocClass],[DA].[DATEENTERED],[DA].[TYPE], [DA].[FILEPATH],[DA].[NAME],[DA].[SOURCE], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass], RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) AS [Document], CASE WHEN [DIA].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DIA].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DIA].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DIA].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DIA].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DIA].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DIA].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DIA].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DIA].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DIA].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DIA].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DIA].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = '' THEN CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' THEN 'Email' WHEN convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription], CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END AS [DocumentClassDescription], [DA].[LASTACCESSDATE] AS [LASTACCESSDATE] -- , Count(1) Over() as TotalRowsCount INTO #DiaryTableListDOc FROM [dbo].[DocFolderDocuments] [DDC] INNER JOIN dbo.[diary] [DIA] INNER JOIN dbo.[DiaryAttachments] [DA] ON [DA].[DiaryID] = [DIA].[ACTIONID] AND [DIA].CASECODE = [DA].CASECODE ON [DA].[TrackReference] = [DDC].[TrackReference] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DA].[TrackReference] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' AND DCL.[CLASSCODE] = CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) = '' THEN convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) ELSE convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) END WHERE [DDC].[DocFolderID] = @DocFolderID AND [DA].DATEENTERED>=@DocumentStartDate AND [DA].DATEENTERED<=@DocumentEndDate AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DA].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DA].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 OR [Attachments] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 OR [SOURCE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) order by [DA].DATEENTERED OFFSET @PageSize * (@PageNo - 1) ROWS FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE); --SELECT * from #DiaryTableList INSERT INTO @res ([ActionId], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [DiaryDate], [DocumentDate], [EmailSent], [TYPE], [Attachments], [EMAIL], [EmailFrom], [EmailTo], [CurrentVersion], [IsInDocfolder], [IsShared], [DocumentClassDescription], [UniqueId], [FilePath], [Subject], [ShortText], [NAME], [ProcessType], [ACTIONTYPE], [ActionTypeDescription], [DOCUMENTSOURCE], [TotalRecord], [SigningStatus], [LASTACCESSDATE] ) SELECT convert(INT, [DIA].[DIARYID]) AS [ActionID], convert(INT, [DIA].[TrackReference]) AS [TrackReference], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DIA].[IMClass], '')) AS [IMClass], convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) AS [DocClass], RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DIA].[Document], '')))) AS [Document], convert(DATETIME, [DIA].[DATE]) As [DiaryDate], convert(DATETIME, [DIA].[DATEENTERED]) AS [DocumentDate], convert(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) As [EMAILSENT], convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))) AS [TYPE], --CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END AS [Attachments], (CASE WHEN ISNULL( convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END), '') = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END ) WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END) ELSE 'N' END) AS [Attachments], -- convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], (CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' ELSE 'N' END) AS [EMAIL], --convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(200), SUBSTRING(convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))), 1, 200)), '')) AS [EMAILFROM], -- RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')), 1, 1000)), '')) AS [EMAILTO], [DV].[CurrentVersion], CONVERT(BIT, 1), [SHD].[IsShared], CASE WHEN convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END AS [DocumentClassDescription], @uniqueid AS uniqueid, CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DIA].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DIA].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DIA].[FILEPATH], ''))) - 2) END AS [FILEPATH], -- [RES].[EMAILSENT], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(2000), [DIA].[SUBJECT]),'')), 1, 1000)), '')) AS [SUBJECT], RTRIM(ISNULL(CONVERT(VARCHAR(120), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(120), [DIA].[DisplayText]),'')), 1, 120)), '')) AS [ShortText], RTRIM(ISNULL([DIA].[NAME], '')) AS [NAME], RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE], CASE WHEN [DIA].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DIA].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DIA].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DIA].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DIA].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DIA].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DIA].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DIA].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DIA].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DIA].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DIA].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DIA].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = '' THEN CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' THEN 'Email' WHEN convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription], RTRIM(ISNULL([DIA].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END)) AS [DOCUMENTSOURCE] ,Count(1) over() [TotalRecord], [DAS].[SigningStatus], [DIA].[LASTACCESSDATE] AS [LASTACCESSDATE] FROM #DiaryTableListDOc [DIA] LEFT JOIN [DiaryAttachmentSelector] [DAS] ON [DAS].[TrackReference] = [DIA].[TrackReference] --ON [DIA].[TrackReference] = [DDC].[TrackReference] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE TRACKREFERENCE = [DIA].[TRACKREFERENCE]) [DV] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsShared] FROM [dbo].[FileSharingDocuments] [FSD] INNER JOIN [dbo].[FileSharingMapping] [FSM] INNER JOIN [dbo].[FileSharingDocFolders] [FSDF] ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID] AND [FSDF].[Shared] = 1 ON [FSM].[id] = [FSD].[FileSharingMappingID] AND [FSM].[FileSharingDocFoldersID] = @DocFolderID WHERE [FSD].[TrackReference] = [DIA].[TrackReference]) [SHD] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DIA].[TrackReference] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) <> '' AND DCL.[CLASSCODE] = CASE WHEN convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) = '' THEN convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) ELSE convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) END LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DIA].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DIA].[FilePath], 1, 1) OUTER APPLY ( SELECT TOP 1 [MST].[TrackReference] AS [TrackReference], [MST].[Type] AS [Type] FROM #DiaryTableListDOc [MST] WHERE [MST].[diaryid] = [DIA].[ActionID] --AND [MST].[TrackReference] = [DA].[TrackReference] ORDER BY CASE WHEN [MST].Type = 'MSG' THEN 0 ELSE 1 END, [MST].[TrackReference]) [OMS] END ELSE BEGIN SELECT @TOTALRECORDS = Count(1) FROM [dbo].[DocFolderDocuments] [DDC] INNER JOIN dbo.[diary] [DIA] INNER JOIN dbo.[DiaryAttachments] [DA] ON [DA].[DiaryID] = [DIA].[ACTIONID] AND [DA].[CASECODE] = [DIA].[CASECODE] ON [DA].[TrackReference] = [DDC].[TrackReference] WHERE [DDC].[DocFolderID] = @DocFolderID AND ( CASE WHEN @SearchText = '' THEN 1 WHEN ([DA].FILEPATH LIKE '%' + @SearchText + '%') OR (RTRIM(convert(VARCHAR(2000), ISNULL([DA].[Document], ''))) LIKE '%' + @SearchText + '%') OR ([DA].[DATEENTERED] LIKE '%' + @SearchText + '%') OR ([DA].[TYPE] LIKE '%' + @SearchText + '%') OR ([DA].[DocClass] LIKE '%' + @SearchText + '%') THEN 1 ELSE 0 END =1 ) AND ( ISNULL(@FileType, '') = '' OR ([DA].[TYPE] IN (select FileType from @FileTypeList )) ) AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DA].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DA].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 THEN 0 WHEN [DIA].[Attachments] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 THEN 0 WHEN (RTRIM(ISNULL([DA].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END))) in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) SELECT [DIA].[CASECODE],[DIA].[ACTIONID],[DIA].[DATE],[DIA].[TxmDate], [DIA].[EMAIL],[DIA].[ATTACHMENTS],[DIA].[EMAILADDRESS],[DIA].[ADDRESSTO],[DIA].[SUBJECT],[DIA].[DisplayText], [DIA].[PROCESSTYPE],[DIA].[ACTIONTYPE], [DA].[DIARYID],[DA].[TrackReference],[DA].[DocClass],[DA].[DATEENTERED],[DA].[TYPE], [DA].[FILEPATH],[DA].[NAME],[DA].[SOURCE], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass], RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) AS [Document], CASE WHEN [DIA].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DIA].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DIA].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DIA].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DIA].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DIA].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DIA].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DIA].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DIA].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DIA].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DIA].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DIA].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = '' THEN CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' THEN 'Email' WHEN convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription], CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END AS [DocumentClassDescription], [DA].[LASTACCESSDATE] AS [LASTACCESSDATE] -- , Count(1) Over() as TotalRowsCount INTO #DiaryTableList FROM [dbo].[DocFolderDocuments] [DDC] INNER JOIN dbo.[diary] [DIA] INNER JOIN dbo.[DiaryAttachments] [DA] ON [DA].[DiaryID] = [DIA].[ACTIONID] AND [DIA].CASECODE = [DA].CASECODE ON [DA].[TrackReference] = [DDC].[TrackReference] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DA].[TrackReference] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' AND DCL.[CLASSCODE] = CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) = '' THEN convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) ELSE convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) END WHERE [DDC].[DocFolderID] = @DocFolderID AND ( CASE WHEN @SearchText = '' THEN 1 WHEN ([DA].FILEPATH LIKE '%' + @SearchText + '%') OR ([Document] LIKE '%' + @SearchText + '%') OR ([DA].[DATEENTERED] LIKE '%' + @SearchText + '%') OR ([DA].[TYPE] LIKE '%' + @SearchText + '%') OR ([DA].[DocClass] LIKE '%' + @SearchText + '%') THEN 1 ELSE 0 END =1 ) AND ( ISNULL(@FileType, '') = '' OR ([DA].[TYPE] IN (select FileType from @FileTypeList )) ) AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DA].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DA].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 OR [Attachments] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 OR [SOURCE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) ORDER BY CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Type' THEN convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Type' THEN convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) END END DESC, CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Document' THEN RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Document' THEN RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) END END DESC, CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentClassDescription' THEN CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentClassDescription' THEN CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END END END DESC, CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentDate' THEN convert(DATETIME, [DA].[DATEENTERED]) END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentDate' THEN convert(DATETIME, [DA].[DATEENTERED]) END END DESC, [DA].[TrackReference] DESC OFFSET @PageSize * (@PageNo - 1) ROWS FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE); --SELECT * from #DiaryTableList INSERT INTO @res ([ActionId], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [DiaryDate], [DocumentDate], [EmailSent], [TYPE], [Attachments], [EMAIL], [EmailFrom], [EmailTo], [CurrentVersion], [IsInDocfolder], [IsShared], [DocumentClassDescription], [UniqueId], [FilePath], [Subject], [ShortText], [NAME], [ProcessType], [ACTIONTYPE], [ActionTypeDescription], [DOCUMENTSOURCE] , [TotalRecord], [SigningStatus], [LASTACCESSDATE] ) SELECT convert(INT, [DIA].[DIARYID]) AS [ActionID], convert(INT, [DIA].[TrackReference]) AS [TrackReference], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DIA].[IMClass], '')) AS [IMClass], convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) AS [DocClass], RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DIA].[Document], '')))) AS [Document], convert(DATETIME, [DIA].[DATE]) As [DiaryDate], convert(DATETIME, [DIA].[DATEENTERED]) AS [DocumentDate], convert(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) As [EMAILSENT], convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))) AS [TYPE], --CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END AS [Attachments], (CASE WHEN ISNULL( convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END), '') = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END ) WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END) ELSE 'N' END) AS [Attachments], -- convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], (CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' ELSE 'N' END) AS [EMAIL], --convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(200), SUBSTRING(convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))), 1, 200)), '')) AS [EMAILFROM], -- RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')), 1, 1000)), '')) AS [EMAILTO], [DV].[CurrentVersion], CONVERT(BIT, 1), [SHD].[IsShared], CASE WHEN convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END AS [DocumentClassDescription], @uniqueid AS uniqueid, CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DIA].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DIA].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DIA].[FILEPATH], ''))) - 2) END AS [FILEPATH], -- [RES].[EMAILSENT], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(2000), [DIA].[SUBJECT]),'')), 1, 1000)), '')) AS [SUBJECT], RTRIM(ISNULL(CONVERT(VARCHAR(120), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(120), [DIA].[DisplayText]),'')), 1, 120)), '')) AS [ShortText], RTRIM(ISNULL([DIA].[NAME], '')) AS [NAME], RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE], CASE WHEN [DIA].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DIA].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DIA].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DIA].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DIA].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DIA].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DIA].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DIA].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DIA].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DIA].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DIA].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DIA].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = '' THEN CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' THEN 'Email' WHEN convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription], RTRIM(ISNULL([DIA].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END)) AS [DOCUMENTSOURCE] ,Count(1) over() [TotalRecord], [DAS].[SigningStatus], [DIA].[LASTACCESSDATE] AS [LASTACCESSDATE] FROM #DiaryTableList [DIA] LEFT JOIN [DiaryAttachmentSelector] [DAS] ON [DAS].[TrackReference] = [DIA].[TrackReference] --ON [DIA].[TrackReference] = [DDC].[TrackReference] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE TRACKREFERENCE = [DIA].[TRACKREFERENCE]) [DV] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsShared] FROM [dbo].[FileSharingDocuments] [FSD] INNER JOIN [dbo].[FileSharingMapping] [FSM] INNER JOIN [dbo].[FileSharingDocFolders] [FSDF] ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID] AND [FSDF].[Shared] = 1 ON [FSM].[id] = [FSD].[FileSharingMappingID] AND [FSM].[FileSharingDocFoldersID] = @DocFolderID WHERE [FSD].[TrackReference] = [DIA].[TrackReference]) [SHD] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DIA].[TrackReference] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) <> '' AND DCL.[CLASSCODE] = CASE WHEN convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) = '' THEN convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) ELSE convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) END LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DIA].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DIA].[FilePath], 1, 1) OUTER APPLY ( SELECT TOP 1 [MST].[TrackReference] AS [TrackReference], [MST].[Type] AS [Type] FROM #DiaryTableList [MST] WHERE [MST].[diaryid] = [DIA].[ActionID] --AND [MST].[TrackReference] = [DA].[TrackReference] ORDER BY CASE WHEN [MST].Type = 'MSG' THEN 0 ELSE 1 END, [MST].[TrackReference]) [OMS] END END ELSE BEGIN SELECT @TOTALRECORDS = COUNT(1) FROM dbo.[diary] [DIA] INNER JOIN dbo.[DiaryAttachments] [DA] ON [DA].[DiaryID] = [DIA].[ACTIONID] AND [DA].[CASECODE] = [DIA].[CASECODE] WHERE [DIA].[ACTIONID] = @ActionID AND ( CASE WHEN @SearchText = '' THEN 1 WHEN ([DA].FILEPATH LIKE '%' + @SearchText + '%') OR (RTRIM(convert(VARCHAR(2000), ISNULL([DA].[Document], ''))) LIKE '%' + @SearchText + '%') OR ([DA].[DATEENTERED] LIKE '%' + @SearchText + '%') OR ([DA].[TYPE] LIKE '%' + @SearchText + '%') OR ([DA].[DocClass] LIKE '%' + @SearchText + '%') THEN 1 ELSE 0 END = 1 ) AND ( ISNULL(@FileType, '') = '' OR ([DA].[TYPE] IN (select FileType from @FileTypeList )) ) AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DA].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DA].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 THEN 0 WHEN [DIA].[Attachments] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 THEN 0 WHEN (RTRIM(ISNULL([DA].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END))) in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) SELECT [DIA].[CASECODE],[DIA].[ACTIONID],[DIA].[DATE],[DIA].[TxmDate], [DIA].[EMAIL],[DIA].[ATTACHMENTS],[DIA].[EMAILADDRESS],[DIA].[ADDRESSTO],[DIA].[SUBJECT],[DIA].[DisplayText], [DIA].[PROCESSTYPE],[DIA].[ACTIONTYPE], [DA].[DIARYID],[DA].[TrackReference],[DA].[DocClass],[DA].[DATEENTERED],[DA].[TYPE], [DA].[FILEPATH],[DA].[NAME],[DA].[SOURCE], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass], RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) AS [Document], CASE WHEN [DIA].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DIA].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DIA].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DIA].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DIA].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DIA].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DIA].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DIA].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DIA].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DIA].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DIA].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DIA].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = '' THEN CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' THEN 'Email' WHEN convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription], CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END AS [DocumentClassDescription], [DA].[LASTACCESSDATE] AS [LASTACCESSDATE] --,Count(1) Over() as TotalRowsCount INTO #DiaryTable FROM dbo.[diary] [DIA] INNER JOIN dbo.[DiaryAttachments] [DA] ON [DA].[DiaryID] = [DIA].[ACTIONID] AND [DIA].CASECODE = [DA].CASECODE LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] ON [DX].[TrackReference] = [DA].[TrackReference] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' AND DCL.[CLASSCODE] = CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) = '' THEN convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) ELSE convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) END WHERE [DIA].[ACTIONID] = @ActionID AND ( CASE WHEN @SearchText = '' THEN 1 WHEN ([DA].FILEPATH LIKE '%' + @SearchText + '%') OR ([Document] LIKE '%' + @SearchText + '%') OR ([DA].[DATEENTERED] LIKE '%' + @SearchText + '%') OR ([DA].[TYPE] LIKE '%' + @SearchText + '%') OR ([DA].[DocClass] LIKE '%' + @SearchText + '%') THEN 1 ELSE 0 END = 1 ) AND ( ISNULL(@FileType, '') = '' OR ([DA].[TYPE] IN (select FileType from @FileTypeList )) ) AND ( (CASE WHEN @DOCCLASSFilterCount = 0 THEN 0 WHEN [DA].[DocClass] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [DOCCLASS] from @CustomFilter WHERE [DOCCLASS] IS NOT NULL and [DOCCLASS] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @TypeFilterCount = 0 THEN 0 WHEN [DA].[TYPE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [TYPE] from @CustomFilter WHERE [TYPE] IS NOT NULL and [TYPE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) =0 AND (CASE WHEN @AttachmentFilterCount = 0 OR [Attachments] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ATTACHMENT] from @CustomFilter WHERE [ATTACHMENT] IS NOT NULL and [ATTACHMENT] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 AND (CASE WHEN @SourceFilterCount = 0 OR [SOURCE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [SOURCE] from @CustomFilter WHERE [SOURCE] IS NOT NULL and [SOURCE] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 0 ELSE 1 END) = 0 ) ORDER BY CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Type' THEN convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Type' THEN convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) END END DESC, CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Document' THEN RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'Document' THEN RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DA].[Document], '')))) END END DESC, CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentClassDescription' THEN CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentClassDescription' THEN CASE WHEN convert(VARCHAR(10), ISNULL([DA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END END END DESC, CASE WHEN @SortDirection = 'ASC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentDate' THEN convert(DATETIME, [DA].[DATEENTERED]) END END, CASE WHEN @SortDirection = 'DESC' AND @SortColumn!='RowNumber' THEN CASE @SortColumn WHEN 'DocumentDate' THEN convert(DATETIME, [DA].[DATEENTERED]) END END DESC, [DA].[TrackReference] DESC OFFSET @PageSize * (@PageNo - 1) ROWS FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE); --SELECT * from #DiaryTable --select * from @IMDocTable INSERT INTO @res ([ActionId], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [DiaryDate], [DocumentDate], [EmailSent], [TYPE], [Attachments], [EMAIL], [EmailFrom], [EmailTo], [CurrentVersion], [IsInDocFolder], [IsShared], [DocumentClassDescription], [UniqueId], [FilePath], [Subject], [ShortText], [NAME], [ProcessType], [ACTIONTYPE], [ActionTypeDescription], [DOCUMENTSOURCE] ,[TotalRecord], SigningStatus, [LASTACCESSDATE] ) SELECT convert(INT, [DIA].[DIARYID]) AS [ActionID], convert(INT, [DIA].[TrackReference]) AS [TrackReference], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass], convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) AS [DocClass], RTRIM(convert(VARCHAR(2000), ISNULL([DL].[Description], ISNULL([DIA].[Document], '')))) AS [Document], convert(DATETIME, [DIA].[DATE]) As [DiaryDate], convert(DATETIME, [DIA].[DATEENTERED]) AS [DocumentDate], convert(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) As [EMAILSENT], convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))) AS [TYPE], -- CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END AS [Attachments], (CASE WHEN ISNULL( convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END), '') = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END ) WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN (CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END) ELSE 'N' END) AS [Attachments], --convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], (CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' WHEN ISNULL(convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DIA].[TYPE], '')))), '') = 'MSG' AND convert(INT, [DIA].[TrackReference]) = [OMS].[TrackReference] THEN 'Y' ELSE 'N' END) AS [EMAIL], -- convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(200), SUBSTRING(convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))), 1, 200)), '')) AS [EMAILFROM], --RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')), 1, 1000)), '')) AS [EMAILTO], [DV].[CurrentVersion], [IND].[InDocFolder], [SHD].[IsShared], CASE WHEN convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) <> '' THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [DCL].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DCL].[ClassCode] = 'BILL' THEN 'Bill' WHEN [DCL].[ClassCode] = 'FAX' THEN 'Fax' WHEN [DCL].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [DCL].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [DCL].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [DCL].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [DCL].[ClassCode] = 'DOC' THEN 'Document' WHEN [DCL].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [DCL].[ClassCode] = 'EVENT' THEN 'Event' WHEN [DCL].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [DCL].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [DCL].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DCL].[ClassCode] = 'TASK' THEN 'Task' WHEN [DCL].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [DCL].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([DCL].[CLASSCODE], '') END END AS [DocumentClassDescription], @uniqueid As uniqueid, CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DIA].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DIA].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DIA].[FILEPATH], ''))) - 2) END AS [FILEPATH], -- [RES].[EMAILSENT], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(2000), [DIA].[SUBJECT]),'')), 1, 1000)), '')) AS [SUBJECT], RTRIM(ISNULL(CONVERT(VARCHAR(120), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(120), [DIA].[DisplayText]),'')), 1, 120)), '')) AS [ShortText], RTRIM(ISNULL([DIA].[NAME], '')) AS [NAME], RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE], CASE WHEN [DIA].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DIA].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DIA].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DIA].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DIA].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DIA].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DIA].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DIA].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DIA].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DIA].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DIA].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DIA].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = '' THEN CASE WHEN convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) = 'Y' THEN 'Email' WHEN convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription], RTRIM(ISNULL([DIA].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END)) AS [DOCUMENTSOURCE] ,Count(1) over() [TotalRecord], [DAS].[SigningStatus], [DIA].[LASTACCESSDATE] AS [LASTACCESSDATE] FROM #DiaryTable [DIA] LEFT JOIN [DiaryAttachmentSelector] [DAS] ON [DAS].[TrackReference] = [DIA].[TrackReference] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [InDocFolder] FROM [dbo].[DocFolderDocuments] [DFD] WHERE [DFD].[TrackReference] = [DIA].[TrackReference]) [IND] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsShared] FROM [dbo].[FileSharingDocuments] [FSD] INNER JOIN [dbo].[FileSharingMapping] [FSM] INNER JOIN [dbo].[FileSharingDocFolders] [FSDF] ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID] AND [FSDF].[Shared] = 1 ON [FSM].[id] = [FSD].[FileSharingMappingID] WHERE [FSD].[TrackReference] = [DIA].[TrackReference]) [SHD] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE TRACKREFERENCE = [DIA].[TRACKREFERENCE]) [DV] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DIA].[TrackReference] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) <> '' AND DCL.[CLASSCODE] = CASE WHEN convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) = '' THEN convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) ELSE convert(VARCHAR(10), ISNULL([DIA].[DocClass], '')) END LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DIA].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DIA].[FilePath], 1, 1) OUTER APPLY ( SELECT TOP 1 [MST].[TrackReference] AS [TrackReference], [MST].[Type] AS [Type] FROM #DiaryTable [MST] WHERE [MST].[diaryid] = [DIA].[ActionID] --AND [MST].[TrackReference] = [DA].[TrackReference] ORDER BY CASE WHEN [MST].Type = 'MSG' THEN 0 ELSE 1 END, [MST].[TrackReference]) [OMS] END /* INSERT INTO @classes ([KeyhouseClass], [IMClass], [ClassCode], [ClassDescription]) SELECT [CLS].[KeyhouseClass], [CLS].[IMClass], [CLS].[ClassCode], CASE WHEN [CLS].[KeyhouseClass] = 1 THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [CLS].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [CLS].[ClassCode] = 'BILL' THEN 'Bill' WHEN [CLS].[ClassCode] = 'FAX' THEN 'Fax' WHEN [CLS].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [CLS].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [CLS].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [CLS].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [CLS].[ClassCode] = 'DOC' THEN 'Document' WHEN [CLS].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [CLS].[ClassCode] = 'EVENT' THEN 'Event' WHEN [CLS].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [CLS].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [CLS].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [CLS].[ClassCode] = 'TASK' THEN 'Task' WHEN [CLS].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [CLS].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([CLS].[CLASSCODE], '') END END AS [ClassDescription] FROM (SELECT DISTINCT 1 AS [KeyhouseClass], 0 AS [IMClass], CONVERT(VARCHAR(20), [RES].[DocClass]) AS [ClassCode] FROM @res [RES] WHERE ISNULL([RES].[DocClass], '') <> '' UNION SELECT DISTINCT 0 AS [KeyhouseClass], 1 AS [IMClass], CONVERT(VARCHAR(20), [RES].[IMClass]) AS [ClassCode] FROM @res [RES] WHERE ISNULL([RES].[IMClass], '') <> '') [CLS] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON [CLS].[KeyhouseClass] = 1 AND DCL.[CLASSCODE] = [CLS].[ClassCode] */ /* UPDATE [RES] SET [RES].[EMAIL] = CASE WHEN ( ISNULL([RES].[EMAIL], '') = 'Y' AND [RES].[TrackReference] = [OMS].[TrackReference]) THEN 'Y' WHEN ( ISNULL([RES].[TYPE], '') = 'MSG' AND [RES].[TrackReference] = [OMS].[TrackReference]) THEN 'Y' ELSE 'N' END, [RES].[Attachments] = CASE WHEN ( ISNULL([RES].[EMAIL], '') = 'Y' AND [RES].[TrackReference] = [OMS].[TrackReference]) THEN [RES].[Attachments] WHEN ( ISNULL([RES].[TYPE], '') = 'MSG' AND [RES].[TrackReference] = [OMS].[TrackReference]) THEN [RES].[Attachments] ELSE 'N' END FROM @res [RES] OUTER APPLY ( SELECT TOP 1 [MST].[TrackReference] AS [TrackReference], [MST].[Type] AS [Type] FROM [dbo].[diaryattachments] [MST] WHERE [MST].[diaryid] = [RES].[ActionID] ORDER BY CASE WHEN [MST].Type = 'MSG' THEN 0 ELSE 1 END, [MST].[TrackReference]) [OMS] WHERE [RES].[ACTIONID] IS NOT NULL */ /* SELECT [RES].[id], CONVERT(VARCHAR(15),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([RES].[DiaryDate], @LoggedInHandler), 23) AS [DATE], ISNULL([RES].[ActionID], 0) AS [ACTIONID], CONVERT(VARCHAR(15), dbo.KAAS_FNConvertUTCDateToTargetTimeZone([RES].[DocumentDate], @LoggedInHandler), 23) AS [DocumentDate], [RES].[IMDocID], [RES].[IMClass], [RES].[DocumentClassDescription], [RES].[DocClass], [RES].[Document], ISNULL([RES].[TrackReference], 0) AS [TRACKREFERENCE], [RES].[TYPE] AS [TYPE], [RES].[Attachments] AS [Attachments], [RES].[EMAIL], RTRIM(ISNULL(CONVERT(VARCHAR(200), SUBSTRING(ISNULL([DIA].[EMAILADDRESS], [RES].[EMAILFROM]), 1, 200)), '')) AS [EMAILADDRESS], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(ISNULL([DIA].[ADDRESSTO], [RES].[EMAILTO]), 1, 1000)), '')) AS [ADDRESSTO], [RES].[EMAILSENT], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(2000), [DIA].[SUBJECT]),'')), 1, 1000)), '')) AS [SUBJECT], RTRIM(ISNULL(CONVERT(VARCHAR(120), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(120), [DIA].[DisplayText]),'')), 1, 120)), '')) AS [ShortText], RTRIM(ISNULL([DAT].[NAME], '')) AS [NAME], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [FILEPATH], RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE], CASE WHEN [DIA].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DIA].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DIA].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DIA].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DIA].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DIA].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DIA].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DIA].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DIA].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DIA].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DIA].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DIA].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = '' THEN CASE WHEN [RES].[EMAIL] = 'Y' THEN 'Email' WHEN [RES].[IMDocID] <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription], RTRIM(ISNULL([DAT].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END)) AS [DOCUMENTSOURCE], [RES].[CurrentVersion], [RES].[IsInDocFolder], [RES].[IsShared], [RES].UniqueId FROM @res [RES] LEFT OUTER JOIN [dbo].[DiaryAttachments] [DAT] INNER JOIN [dbo].[diary] [DIA] ON [DIA].[ACTIONID] = [DAT].[DIARYID] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DAT].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1) ON [DAT].[TRACKREFERENCE] = [RES].[TrackReference] --2018-02-26 START --LEFT OUTER JOIN @classes [CLS] -- ON [CLS].[KeyhouseClass] = CASE WHEN ISNULL([RES].[IMClass], '') = '' THEN 1 ELSE 0 END -- AND [CLS].[IMClass] = CASE WHEN ISNULL([RES].[IMClass], '') = '' THEN 0 ELSE 1 END -- AND [CLS].[ClassCode] = CASE WHEN ISNULL([RES].[IMClass], '') = '' THEN [RES].[DocClass] ELSE [RES].[IMClass] END LEFT OUTER JOIN @classes [CLS] ON [CLS].[KeyhouseClass] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN 0 ELSE 1 END AND [CLS].[IMClass] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN 1 ELSE 0 END AND [CLS].[ClassCode] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN [RES].[IMClass] ELSE [RES].[DocClass] END --2018-02-26 END --WHERE [RES].id between (@PageNo * @PageSize) + 1 and ((@PageNo * @PageSize) + 1 + @PageSize) - 1 ORDER BY ID */ SELECT [id], CONVERT(VARCHAR(15),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DiaryDate], @LoggedInHandler), 23) AS [DiaryDate], CONVERT(VARCHAR(10),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DiaryDate], @LoggedInHandler), 108) AS [DiaryTime], [ACTIONID], CONVERT(VARCHAR(15), dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DocumentDate], @LoggedInHandler), 23) AS [DocumentDate], CONVERT(VARCHAR(10), dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DocumentDate], @LoggedInHandler), 108) AS [DocumentTime], [IMDocID], [IMClass], [DocumentClassDescription], [DocClass], [Document], [TRACKREFERENCE], [TYPE], [Attachments], [EMAIL], [EMAILFROM] AS [EMAILADDRESS], [EMAILTO] AS [ADDRESSTO], [EMAILSENT], [SUBJECT], [ShortText], [NAME], [FILEPATH], [PROCESSTYPE], [ACTIONTYPE], [ActionTypeDescription], [DOCUMENTSOURCE], [CurrentVersion], [IsInDocFolder], [IsShared], UniqueId, [SigningStatus], CONVERT(VARCHAR(15),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([LASTACCESSDATE], @LoggedInHandler), 23) AS [LastAccessDate] from @res ORDER BY TrackReference DESC -- WHERE ID between (@PageNo * @PageSize) + 1 and ((@PageNo * @PageSize) + 1 + @PageSize) - 1 -- ORDER BY ID --OFFSET @PageSize * (@PageNo - 1) ROWS -- FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE); --OPTION (KEEPFIXED PLAN) /* IF Exists(SELECT TOP 1 TotalRecord FROM @res) BEGIN SELECT TOP 1 ISNULL(TotalRecord,0) FROM @res END ELSE BEGIN SELECT 0 as TotalRecord END */ SELECT @TOTALRECORDS AS TotalRecord /* SELECT top 1 count(1) Over() AS [TotalRecord] FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[DiaryAttachments] [DAT] ON [DAT].[DiaryID] = [DIA].[ActionID] WHERE [DIA].[CASECODE] = @matter */ IF ISNULL(@DocFolderID, 0) <> 0 BEGIN SELECT * FROM [dbo].[KAAS_FN_GetDocFolders](@matter, @DocFolderID, 1, 1) WHERE parent <> -1 END ELSE BEGIN SELECT TOP 0 CONVERT(INT, 0) AS [seq], CONVERT(INT, 0) AS [id], CONVERT(INT, 0) AS [parent], CONVERT(VARCHAR(500), '') AS [foldername], CONVERT(INT, 0) AS [foldericon], CONVERT(VARBINARY(MAX), NULL) AS [folderimage], CONVERT(BIT, 0) AS [foldershared], CONVERT(BIT, 0) AS [folderisours], CONVERT(INT, 0) AS [documentcount] END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDocumentsNotInBrief' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDocumentsNotInBrief] END GO CREATE PROCEDURE [dbo].[KAAS_GetDocumentsNotInBrief] (@handler VARCHAR(10), @MatterCode VARCHAR(20), @BriefIDV VARCHAR(10), @IMDocs VARCHAR(MAX)) AS /************************************************************************************************************* * Stored Procedure Name : [dbo].[KAAS_GetDocumentsNotInBrief] * * Copied from : [dbo].[ky_NETSPDocumentsNotInBrief2] * * * * List Documents FROM the Case that aren't already in the Brief * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: [dbo].[ky_NETSPDocumentsNotInBrief] * * * * First compatible version: 5.5.3.1 * * * * Last compatible software version: -.-.-.- * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * @IMDocs - a list of documents found in IManage, in XML format * * Example: * * * * * * * * * * Modification History * * 2016-07-01 Pino Carafa Created * * 2018-06-01 Pino Carafa Was not taking @ShowFromToSynopsis into account * * 2019-03-07 Pino Carafa Included Matter Unique ID * * 2019-09-02 Pino Carafa Count the number of IMDocs and use this value in a TOP to avoid * * excessive grants. * * Don't UNION to IMDocs if there are none. * * * * 2019-10-14 Ganapathy T Created * * * *************************************************************************************************************/ BEGIN DECLARE @ShowFromToSynopsis BIT SET @ShowFromToSynopsis = CASE WHEN ISNULL((SELECT TOP 1 [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'ShowFromToSynopsis'), 'True') = 'False' THEN 0 ELSE 1 END DECLARE @BriefID INT DECLARE @DAIMList TABLE ([IMDocID] VARCHAR(500) PRIMARY KEY NOT NULL, [Description] VARCHAR(2000) NULL, [DocumentDate] DATETIME NULL, [IMType] VARCHAR(20) NULL, [IMClass] VARCHAR(20) NULL, [EmailFrom] VARCHAR(200) NULL, [EmailTo] VARCHAR(1000) NULL, [EmailSent] DATETIME NULL) BEGIN TRY SET @BriefID = CONVERT(INT, @BriefIDV) END TRY BEGIN CATCH SET @BriefID = 0 END CATCH IF (@BriefID <> 0) BEGIN DECLARE @idoc INT DECLARE @COUNT INT SET @IMDocs = ISNULL(@IMDocs, '' + CHAR(13) + CHAR(10) + '') IF (ISNULL(PATINDEX('%' + CHAR(13) + CHAR(10) + @IMDocs END BEGIN TRY EXEC sp_xml_preparedocument @idoc OUTPUT, @IMDocs END TRY BEGIN CATCH EXEC sp_xml_preparedocument @idoc OUTPUT, '' END CATCH SELECT @COUNT = COUNT(1) FROM OPENXML(@idoc, 'IMDocs/Doc', 2) IF (@COUNT > 0) BEGIN INSERT INTO @DAIMList ([IMDocID], [Description], [IMClass], [IMType], [EmailFrom], [EmailTo], [EmailSent], [DocumentDate]) SELECT TOP (@COUNT) [DAL].[IMDocID], [DAL].[Description], [DAL].[IMClass], [DAL].[IMType], [DAL].[EmailFrom], [DAL].[EmailTo], [DAL].[EmailSent], [DAL].[DocumentDate] FROM OPENXML(@idoc, 'IMDocs/Doc', 2) WITH([IMDocID] VARCHAR(500) '@DocId', [Description] VARCHAR(2000) '@Description', [IMClass] VARCHAR(20) '@ClassId', [IMType] VARCHAR(20) '@TypeId', [EmailFrom] VARCHAR(200) '@EmailFrom', [EmailTo] VARCHAR(1000) '@EmailTo', [EmailSent] DATETIME '@EmailSent', [DocumentDate] DATETIME '@DocumentDate') [DAL] END EXEC sp_xml_removedocument @idoc IF (@COUNT > 0) BEGIN SELECT CASE WHEN [RES].[TrackReference] IS NULL THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN [RES].[EMAIL] <> 'Y' THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN [RES].[TYPE] <> 'MSG' THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN @ShowFromToSynopsis = 0 THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN (RTRIM(ISNULL([RES].[EMAILFROM], '')) <> '') AND (RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTO]), '')) <> '') THEN CONVERT(VARCHAR(255), 'E-mail FROM ' + RTRIM(ISNULL([RES].[EMAILFROM], '')) + RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTO]), '')) + ': ' + RTRIM(ISNULL([RES].[Document], ''))) WHEN RTRIM(ISNULL([RES].[EMAILFROM], '')) <> '' THEN CONVERT(VARCHAR(255), 'E-mail FROM ' + RTRIM(ISNULL([RES].[EMAILFROM], '')) + ': ' + RTRIM(ISNULL([RES].[Document], ''))) WHEN RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTO]), '')) <> '' THEN CONVERT(VARCHAR(255), 'E-mail to ' + RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTo]), '')) + ': ' + RTRIM(ISNULL([RES].[Document], ''))) ELSE CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END END AS [DocumentName], ISNULL([RES].[TrackReference], 0) AS [TrackReference], ISNULL([RES].[IMDocID], '') AS [IMDocID], ISNULL([RES].[FileLocation], '') AS [FileLocation], [RES].[DocumentDate] AS [FileDate], ISNULL([RES].[TYPE], '') As [DocumentType], ISNULL([RES].[DocumentClass], '') As [DocumentClass], ISNULL([RES].[Priority], 'Normal') AS [Priority], [RES].[ActionType], [RES].[MatterUniqueID] FROM (SELECT convert(INT, NULL) AS [TrackReference], convert(VARCHAR(500), [DAL].[IMDocID]) AS [IMDocID], convert(VARCHAR(20), [DAL].[IMClass]) AS [IMClass], convert(VARCHAR(10), NULL) AS [DocClass], convert(VARCHAR(255), [DAL].[Description]) AS [Document], convert(DATETIME, ISNULL([DAL].[DocumentDate], [DAL].[EmailSent])) AS [DocumentDate], CASE convert(VARCHAR(20), [DAL].[IMTYPE]) WHEN 'WORD' THEN 'DOC' WHEN 'WORDX' THEN 'DOC' WHEN 'WPF' THEN 'DOC' WHEN 'ANSI' THEN 'DOC' WHEN 'ACROBAT' THEN 'PDF' WHEN 'EXCEL' THEN 'XLS' WHEN 'EXCELX' THEN 'XLS' WHEN 'MIME' THEN CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN 'MSG' ELSE 'MIME' END ELSE [DAL].[IMTYPE] END AS [TYPE], convert(VARCHAR(1), CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN 'Y' ELSE 'N' END) As [EMAIL], CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN [DAL].[EMAILFROM] ELSE CONVERT(VARCHAR(200), NULL) END AS [EMAILFROM], CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN [DAL].[EMAILTO] ELSE CONVERT(VARCHAR(255), NULL) END AS [EMAILTO], '' AS [FileLocation], CASE WHEN [DAL].[IMClass] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DAL].[IMClass] = 'BILL' THEN 'Bill' WHEN [DAL].[IMClass] = 'FAX' THEN 'Fax' WHEN [DAL].[IMClass] = 'LEGAL' THEN 'Legal' WHEN [DAL].[IMClass] = 'SCAN' THEN 'Scan' WHEN [DAL].[IMClass] = 'COMPARE' THEN 'Compare Document' WHEN [DAL].[IMClass] = 'DISCUSSION' THEN 'Discussion' WHEN [DAL].[IMClass] = 'DOC' THEN 'Document' WHEN [DAL].[IMClass] = 'E-MAIL' THEN 'E-Mail' WHEN [DAL].[IMClass] = 'EVENT' THEN 'Event' WHEN [DAL].[IMClass] = 'LETTER' THEN 'Letter' WHEN [DAL].[IMClass] = 'MEMO' THEN 'Memo' WHEN [DAL].[IMClass] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DAL].[IMClass] = 'TASK' THEN 'Task' WHEN [DAL].[IMClass] = 'TEXT' THEN 'Text File' WHEN [DAL].[IMClass] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE '' END AS [DocumentClass], 'Normal' AS [Priority], 'IManage' AS [ActionType], 0 AS [MatterUniqueID] FROM @DAIMList [DAL] LEFT OUTER JOIN [dbo].[DAIMXref] [DX] ON [DX].[IMDocID] = [DAL].[IMDocID] WHERE [DX].[TrackReference] IS NULL UNION SELECT convert(INT, [DAT].[TrackReference]) AS [TrackReference], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DAL].[IMClass], '')) AS [IMClass], convert(VARCHAR(10), ISNULL([DAT].[DocClass], '')) AS [DocClass], RTRIM(convert(VARCHAR(255), ISNULL([DAT].[Document], ''))) AS [Document], convert(DATETIME, [DAT].[DATEENTERED]) AS [DocumentDate], convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DAT].[TYPE], '')))) AS [TYPE], convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(255), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], RTRIM(ISNULL(CASE WHEN [UNC].[UNC] IS NULL THEN [DAT].[FilePath] ELSE [UNC].[UNC] + SUBSTRING([DAT].[FilePath], 3, LEN([DAT].[FilePath]) - 2) END, '')) AS [FileLocation], RTRIM(ISNULL([DCL].[CLASSDESCRIPTION], '')) AS [DocumentClass], CASE WHEN ISNULL([DIA].[PRIORITY], 'N') = 'H' THEN 'High' WHEN ISNULL([DIA].[PRIORITY], 'N') = 'L' THEN 'Low' ELSE 'Normal' END AS [Priority], RTRIM(ISNULL([DDAT].[ActionTypeDescription], 'Action')) AS [ActionType], ISNULL([MAT].[UniqueID], 0) AS [MatterUniqueID] FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CaseCode] INNER JOIN [dbo].[DiaryAttachments] [DAT] ON [DAT].[DiaryID] = [DIA].[ActionID] AND RTRIM(ISNULL([DAT].[FilePath], '')) <> '' LEFT OUTER JOIN [dbo].[DiaryDelActionType] [DDAT] ON [DDAT].[ActionType] = [DIA].[ACTIONTYPE] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @DAIMList [DAL] ON [DAL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DAT].[TrackReference] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON [UNC].[Drive] = CASE WHEN SUBSTRING([DAT].[FilePath], 2, 1) = ':' THEN LEFT([DAT].[FilePath], 1) ELSE '' END LEFT OUTER JOIN [dbo].[DocumentClasses] [DCL] ON [DCL].[CLASSCODE] = [DAT].[DOCCLASS] WHERE [DIA].[CASECODE] = @MatterCode) [RES] LEFT OUTER JOIN [dbo].[BriefDocuments] [BRD] ON [BRD].[BriefID] = @BriefID AND ( ( ISNULL([BRD].[TrackReference], 0) <> 0 AND [BRD].[TrackReference] = [RES].[TrackReference]) OR ( ISNULL([BRD].[IMDOCID], '') <> '' AND [BRD].[IMDocID] = [RES].[IMDocID])) WHERE [BRD].[recordid] IS NULL END ELSE BEGIN SELECT @COUNT = COUNT(1) FROM [dbo].[DiaryAttachmentSelector] [RES] WITH (NOLOCK) LEFT OUTER JOIN [dbo].[BriefDocuments] [BRD] WITH (NOLOCK) ON [BRD].[BriefID] = @BriefID AND [BRD].[TrackReference] = [RES].[TrackReference] WHERE [RES].[CASECODE] = @MatterCode AND [BRD].[recordid] IS NULL SELECT TOP (@COUNT) CASE WHEN [RES].[TrackReference] IS NULL THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN [RES].[EMAIL] <> 'Y' THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN [RES].[TYPE] <> 'MSG' THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN @ShowFromToSynopsis = 0 THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN (RTRIM(ISNULL([RES].[EMAILFROM], '')) <> '') AND (RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTO]), '')) <> '') THEN CONVERT(VARCHAR(255), 'E-mail FROM ' + RTRIM(ISNULL([RES].[EMAILFROM], '')) + RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTO]), '')) + ': ' + RTRIM(ISNULL([RES].[Document], ''))) WHEN RTRIM(ISNULL([RES].[EMAILFROM], '')) <> '' THEN CONVERT(VARCHAR(255), 'E-mail FROM ' + RTRIM(ISNULL([RES].[EMAILFROM], '')) + ': ' + RTRIM(ISNULL([RES].[Document], ''))) WHEN RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTO]), '')) <> '' THEN CONVERT(VARCHAR(255), 'E-mail to ' + RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTo]), '')) + ': ' + RTRIM(ISNULL([RES].[Document], ''))) ELSE CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END END AS [DocumentName], ISNULL([RES].[TrackReference], 0) AS [TrackReference], ISNULL([RES].[IMDocID], '') AS [IMDocID], ISNULL([RES].[FileLocation], '') AS [FileLocation], [RES].[DocumentDate] AS [FileDate], ISNULL([RES].[TYPE], '') As [DocumentType], ISNULL([RES].[DocumentClass], '') As [DocumentClass], ISNULL([RES].[Priority], 'Normal') AS [Priority], [RES].[ActionType], [RES].[MatterUniqueID] FROM (SELECT convert(INT, [DAT].[TrackReference]) AS [TrackReference], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DAL].[IMClass], '')) AS [IMClass], convert(VARCHAR(10), ISNULL([DAT].[DocClass], '')) AS [DocClass], RTRIM(convert(VARCHAR(255), ISNULL([DAT].[Document], ''))) AS [Document], convert(DATETIME, [DAT].[DATEENTERED]) AS [DocumentDate], convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DAT].[TYPE], '')))) AS [TYPE], convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(255), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], RTRIM(ISNULL(CASE WHEN [UNC].[UNC] IS NULL THEN [DAT].[FilePath] ELSE [UNC].[UNC] + SUBSTRING([DAT].[FilePath], 3, LEN([DAT].[FilePath]) - 2) END, '')) AS [FileLocation], RTRIM(ISNULL([DCL].[CLASSDESCRIPTION], '')) AS [DocumentClass], CASE WHEN ISNULL([DIA].[PRIORITY], 'N') = 'H' THEN 'High' WHEN ISNULL([DIA].[PRIORITY], 'N') = 'L' THEN 'Low' ELSE 'Normal' END AS [Priority], RTRIM(ISNULL([DDAT].[ActionTypeDescription], 'Action')) AS [ActionType], ISNULL([MAT].[UniqueID], 0) AS [MatterUniqueID] FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CaseCode] INNER JOIN [dbo].[DiaryAttachments] [DAT] ON [DAT].[DiaryID] = [DIA].[ActionID] AND RTRIM(ISNULL([DAT].[FilePath], '')) <> '' LEFT OUTER JOIN [dbo].[DiaryDelActionType] [DDAT] ON [DDAT].[ActionType] = [DIA].[ACTIONTYPE] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @DAIMList [DAL] ON [DAL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DAT].[TrackReference] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON [UNC].[Drive] = CASE WHEN SUBSTRING([DAT].[FilePath], 2, 1) = ':' THEN LEFT([DAT].[FilePath], 1) ELSE '' END LEFT OUTER JOIN [dbo].[DocumentClasses] [DCL] ON [DCL].[CLASSCODE] = [DAT].[DOCCLASS] WHERE [DIA].[CASECODE] = @MatterCode) [RES] LEFT OUTER JOIN [dbo].[BriefDocuments] [BRD] ON [BRD].[BriefID] = @BriefID AND [BRD].[TrackReference] = [RES].[TrackReference] WHERE [BRD].[recordid] IS NULL END END END GO IF OBJECT_ID(N'KAAS_GetDocumentVersioning',N'P')IS NOT NULL DROP PROCEDURE KAAS_GetDocumentVersioning GO CREATE PROCEDURE [dbo].[KAAS_GetDocumentVersioning] (@TrackReference INT, @IMDocID VARCHAR(500)) AS /*********************************************************************************************** * * * Gets the list of previous versions of a particular document and a comment to indicate * * why the next version of that document was created. * * * * While it is easiest to create the records that way - A document with only ONE version * * will only contain a record in DiaryAttachments and nothing in the DiaryAttachmentVersions * * table - the end user would expect to see the reason for the creation of Version 2 displayed * * next to Version 2, not Version 1, so in this SP all comments are shifted by one * * version number. * * * * Date Modified by Description * * 20May2019 Arun Copied from ky_NETSPGetDocumentVersioning * * 25Feb2020 Vinodhan Added UniqueId column * * * ***********************************************************************************************/ BEGIN DECLARE @CurVer INT DECLARE @DAV TABLE ([id] int identity(1, 1), [DAVID] int, [TrackReference] int, [IMDocID] VARCHAR(500), [Version] int, [FilePath] VARCHAR(255), [ShortComments] VARCHAR(200), [Comments] VARCHAR(MAX), [Timestamp] datetime, [Handler] VARCHAR(10), [HandlerName] VARCHAR(100), [UniqueId] INT) SET @IMDocID = ISNULL(@IMDocID, '') SET @TrackReference = ISNULL(@Trackreference, 0) IF (@IMDocID <> '') BEGIN SELECT @CurVer = ISNULL(MAX(DAV.[Version]), 0) FROM [dbo].[DiaryAttachmentVersioning] DAV WHERE DAV.[TrackReference] = 0 AND DAV.[IMDocID] = @IMDocID END ELSE BEGIN SELECT @CurVer = ISNULL(MAX(DAV.[Version]), 0) FROM [dbo].[DiaryAttachmentVersioning] DAV WHERE DAV.[TrackReference] = @TrackReference AND DAV.[TrackReference] <> 0 END INSERT INTO @DAV ([DAVID], [TrackReference], [IMDocID], [Version], [FilePath], [ShortComments], [Comments], [Timestamp], [Handler], [HandlerName], [UniqueId]) SELECT 0 AS [DAVID], DAT.[TRACKREFERENCE], '' AS [IMDocID], @CurVer + 1 AS [Version], CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FILEPATH], '')) ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2) END AS [FILEPATH], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](DAV.[Comments], 200) AS [ShortComments], DAV.[Comments] AS [Comments], DAT.[DATEENTERED] AS [Timestamp], RTRIM(ISNULL(HAN.[CODE], RTRIM(ISNULL(HAN2.[CODE], RTRIM(ISNULL(HAN3.[CODE], '')))))) AS [Handler], RTRIM(ISNULL(HAN.[NAME], RTRIM(ISNULL(HAN2.[NAME], RTRIM(ISNULL(HAN3.[NAME], CASE WHEN RTRIM(ISNULL(DAT.[ENTEREDBY], '')) = '' THEN '' ELSE UPPER(SUBSTRING(RTRIM(ISNULL(DAT.[ENTEREDBY], '')), 1, 1)) END + CASE WHEN LEN(RTRIM(ISNULL(DAT.[ENTEREDBY], ''))) < 2 THEN '' ELSE LOWER(SUBSTRING(RTRIM(ISNULL(DAT.[ENTEREDBY], '')), 2, LEN(RTRIM(ISNULL(DAT.[ENTEREDBY], ''))) - 1)) END )))))) AS [HandlerName], [MAT].[uniqueid] AS [UniqueId] FROM [dbo].[DiaryAttachments] DAT INNER JOIN [dbo].[diary] DIA ON DIA.[ActionID] = DAT.[DiaryID] LEFT OUTER JOIN [matters] [MAT] ON [MAT].[Code] = [DIA].[CASECODE] LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON SUBSTRING(DAT.[FilePath], 2, 1) = ':' AND UNC.[Drive] = SUBSTRING(DAT.[FilePath], 1, 1) LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = DAT.[ENTEREDBY] LEFT OUTER JOIN [dbo].[Handlers] HAN2 ON HAN2.[LOGON] = DAT.[ENTEREDBY] LEFT OUTER JOIN [dbo].[Handlers] HAN3 ON HAN3.[CODE] = DIA.[FNCODE] LEFT OUTER JOIN [dbo].[DiaryAttachmentVersioning] DAV ON DAV.[TrackReference] = @TrackReference AND DAV.[IMDocID] = @IMDocID AND DAV.[Version] = @CurVer WHERE DAT.[TRACKREFERENCE] = @TrackReference AND DAT.[TRACKREFERENCE] <> 0 IF (@IMDocID <> '') BEGIN INSERT INTO @DAV ([DAVID], [TrackReference], [IMDocID], [Version], [FilePath], [ShortComments], [Comments], [Timestamp], [Handler], [HandlerName], [UniqueId]) SELECT DAV.[id], DAV.[TrackReference], DAV.[IMDOCID], DAV.[Version], DAV.[FilePath], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL(DAV2.[Comments], '')), 200) AS [ShortComments], RTRIM(ISNULL(DAV2.[Comments], '')), DAV.[Timestamp], DAV.[Handler], RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName], [MAT].[uniqueid] AS [UniqueId] FROM [dbo].[DiaryAttachmentVersioning] DAV LEFT OUTER JOIN [dbo].[DiaryAttachments] [DIAATTC] ON [DAV].[TrackReference] = [DIAATTC].[TrackReference] LEFT OUTER JOIN [Matters] [MAT] ON [MAT].[Code] = [DIAATTC].[CASECODE] LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = DAV.[Handler] LEFT OUTER JOIN [dbo].[DiaryAttachmentVersioning] DAV2 ON DAV2.[TrackReference] = DAV.[TrackReference] AND DAV2.[IMDocID] = DAV.[IMDocID] AND DAV2.[Version] = DAV.[Version] - 1 WHERE DAV.[TrackReference] = 0 AND DAV.[IMDocID] = @IMDocID ORDER BY DAV.[Version] DESC END ELSE BEGIN INSERT INTO @DAV ([DAVID], [TrackReference], [IMDocID], [Version], [FilePath], [ShortComments], [Comments], [Timestamp], [Handler], [HandlerName], [UniqueId]) SELECT DAV.[id], DAV.[TrackReference], DAV.[IMDOCID], DAV.[Version], DAV.[FilePath], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL(DAV2.[Comments], '')), 200) AS [ShortComments], RTRIM(ISNULL(DAV2.[Comments], '')), DAV.[Timestamp], DAV.[Handler], RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName], [MAT].[uniqueid] AS [UniqueId] FROM [dbo].[DiaryAttachmentVersioning] DAV LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = DAV.[Handler] LEFT OUTER JOIN [dbo].[DiaryAttachments] [DIAATTC] ON [DAV].[TrackReference] = [DIAATTC].[TrackReference] LEFT OUTER JOIN [Matters] [MAT] ON [MAT].[Code] = [DIAATTC].[CASECODE] LEFT OUTER JOIN [dbo].[DiaryAttachmentVersioning] DAV2 ON DAV2.[TrackReference] = DAV.[TrackReference] AND DAV2.[IMDocID] = DAV.[IMDocID] AND DAV2.[Version] = DAV.[Version] - 1 WHERE DAV.[TrackReference] = @TrackReference AND DAV.[TrackReference] <> 0 ORDER BY DAV.[Version] DESC END SELECT [DAVID], [TrackReference], [IMDocID], [Version], [FilePath], [ShortComments], [Comments], [TimeStamp], [Handler], [HandlerName], [UniqueId] FROM @DAV END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDormantMatters' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDormantMatters] END GO CREATE PROCEDURE [dbo].[KAAS_GetDormantMatters] ( @FECODE VARCHAR(20)) AS /******************************************************************************************************* * Gets a list of dormant matters. Return value is set to the number of matters. * * * * Stored Procedure Name : [dbo].[KAAS_GetDormantMatters] * * Copied from : [dbo].[ky_NETGetDormantMatters] * * * * Modification History : * * 2019-04-16 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @SQL NVARCHAR(MAX) SET @SQL = N' DECLARE @LastActionMonth INT DECLARE @GETDATE DATETIME SELECT @LastActionMonth = [KeyValue] FROM [dbo].[Settings] WHERE [KeyName] = ''LastActionMonth'' SET @LastActionMonth = ISNULL(@LastActionMonth, 6) SET @GETDATE = GETDATE() SELECT MAT.[Code], MAX(ISNULL(LST.[Date], MAT.[Started])) AS [LastActivity] FROM [dbo].[matters] AS MAT LEFT OUTER JOIN (SELECT TIE.[Matter], MAX(TIE.[DATE]) AS [Date] FROM [dbo].[TimeEntry] AS TIE GROUP BY TIE.[Matter] UNION SELECT DIA.[CASECODE], MAX(DIA.[DATE]) FROM [dbo].[diary] AS DIA GROUP BY DIA.[CASECODE] UNION SELECT UND.[MATTER], MAX(CASE WHEN UND.[DISCHARGEDATE] > UND.[UNDDATE] AND UND.[DISCHARGEDATE] > UND.[DATE] THEN UND.[DISCHARGEDATE] WHEN UND.[UNDDATE] > UND.[DISCHARGEDATE] AND UND.[UNDDATE] > UND.[DATE] THEN UND.[UNDDATE] ELSE UND.[DATE] END) FROM [dbo].Undertakings AS UND GROUP BY UND.[MATTER]' IF [dbo].[ISSAM4]() = 0 BEGIN SET @SQL = @SQL + N' UNION SELECT MTL.[MATTER], MAX(MTL.[DATE]) FROM [dbo].[MatterLedger] AS MTL GROUP BY MTL.[MATTER]' END ELSE BEGIN SET @SQL = @SQL + N' UNION SELECT TRN.[MatterCode], MAX(TRN.[TransDate]) FROM [dbo].[Transactions] AS TRN GROUP BY TRN.[MatterCode]' END SET @SQL = @SQL + N') AS LST ON LST.[Matter] = MAT.[Code] WHERE MAT.[Closed] <> ''Y'' AND (@FECODE IS NULL OR MAT.[FECode] = @FECODE) GROUP BY MAT.[Code], MAT.[Started] HAVING DATEDIFF(MONTH, MAX(ISNULL(LST.[Date], MAT.[Started])), @GETDATE) > @LastActionMonth' EXEC sp_executesql @SQL, N'@FECODE VARCHAR(20)', @FECODE = @FECODE RETURN @@ROWCOUNT SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDraftBill' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDraftBill] END GO CREATE PROCEDURE [dbo].[KAAS_GetDraftBill] (@DRAFTNOV INT) AS /************************************************************************************************************* * * * [dbo].[KAAS_GetDraftBill] * * * * Get Header information for this Draft Bill * * Procedure is written to work for both SAM3 and SAM4 * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2024-04-23 Pino Carafa Reimported [dbo].[KAAS_GetDraftBillSAM3] from [dbo].[ky_NETSPGetDraftBill] * * and SAM4 version, too. This SP calls the appropriate version based on * * what SAM version the DB is. * * * *************************************************************************************************************/ BEGIN IF [dbo].[ISSAM4]() = 0 BEGIN EXEC sp_executesql N'[dbo].[KAAS_GetDraftBillSAM3] @DRAFTNOV', N'@DRAFTNOV INT', @DRAFTNOV = @DRAFTNOV END ELSE BEGIN EXEC sp_executesql N'[dbo].[KAAS_GetDraftBillSAM4] @DRAFTNOV', N'@DRAFTNOV INT', @DRAFTNOV = @DRAFTNOV END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_GetDraftBillDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDraftBillDetails] END GO CREATE PROCEDURE [dbo].[KAAS_GetDraftBillDetails] ( @DraftNo INT) AS /******************************************************************************************************** * * * [dbo].[KAAS_GetDraftBillDetails] * * * * Returns the detail lines for a bill request * * * * Modification History: * * ????-??-?? ??? Created * * 2015-06-08 Pino Add VAT override (SAM3 Only) * * 2019-11-12 Dheepin Vijith K Created for the naming convention * * 2019-06-10 Prabhu.V Added OutlayCode and PreBilledOutlay * * 2020-12-09 Aakif Removed OutlayCode and PreBilledOutlay (SAM3 Only) * * 2024-04-03 John Ginnane #17719 Rewrote and refactored * ********************************************************************************************************/ BEGIN SET NOCOUNT ON; SELECT LTRIM(RTRIM([BIH].[MATTER])) AS [MatterCode], [BIH].[DRAFTNO] AS [DraftNo], ISNULL([BIH].[BILLNO], 0) AS [InvoiceNo], CASE WHEN ISNULL([BID].[Type], '') IN ('F', 'M', 'O') THEN LTRIM(RTRIM([BID].[Type])) ELSE 'M' END AS [RecordType], LTRIM(RTRIM(COALESCE([HAN].[CODE], [BID].[FEEEARNER], ''))) AS [HandlerCode], ISNULL(LTRIM(RTRIM([HAN].[NAME])), '') AS [Handler], LTRIM(RTRIM(COALESCE([NOM].[CODE], [BID].[NOMINAL], ''))) AS [NominalCode], ISNULL(LTRIM(RTRIM([NOM].[DESC])), '') AS [Nominal], ISNULL(LTRIM(RTRIM([BID].[Narrative])), '') AS [Narrative], ISNULL(LTRIM(RTRIM([BID].[VATCODE])), '') AS [VATCode], ISNULL([BID].[VATRATE], 0) AS [VATRate], ISNULL([BID].[NET], 0) AS [NetValue], ISNULL([BID].[VATVALUE], 0) AS [VATValue], ISNULL([BID].[LINENO], 0) AS [LineNo], ISNULL([BID].[KEYID], 0) AS [KeyID], [BID].[OverriddenVAT] AS [OverriddenVAT], [BID].[PreBilledOutlay] AS [PreBilledOutlay] FROM [dbo].[BillHeader] AS [BIH] INNER JOIN [dbo].[BillDetails] AS [BID] ON [BID].[DRAFTNO] = [BIH].[DRAFTNO] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN] ON [HAN].[CODE] = [BID].[FEEEARNER] LEFT OUTER JOIN [dbo].[Nominal] AS [NOM] ON [NOM].[CODE] = [BID].[Nominal] WHERE [BIH].[DRAFTNO] = @DraftNo ORDER BY [BID].[LINENO] ASC, [BID].[KEYID] ASC END GO IF EXISTS (SELECT TOP 1 1 FROM [sys].[objects] AS [SO] WHERE [SO].[name] = N'KAAS_GetDraftBillHeader' AND [SO].[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDraftBillHeader] END GO CREATE PROCEDURE [dbo].[KAAS_GetDraftBillHeader] ( @DraftNo INT) AS /***************************************************************************** * * * [dbo].[KAAS_GetDraftBillHeader] * * * * Get Header information for specified bill header record * * SP ONLY SUITABLE FOR SAM3 * * * * ????-??-?? ??? Created * * 2014-12-01 Pino Added new DefaultBillLayoutReportID column * * 2015-06-30 Pino Added support for FeCode in SAM3 * * 2016-01-21 Pino Added BG Control ID (SAM3) * * 2019-11-19 Rajesh Copied from [ky_NETSPGetDraftBill] * * 2024-03-21 John Ginnane #17719 - Refactored for SAM web * * * *****************************************************************************/ BEGIN SELECT ISNULL(LTRIM(RTRIM([BIH].[MATTER])), '') AS [MatterCode], [BIH].[DRAFTNO] AS [DraftNo], [BIH].[Date] AS [BillDate], LTRIM(RTRIM(COALESCE([HAN].[CODE], [HAN2].[CODE], [HAN3].[CODE], 'ADM'))) AS [User], ISNULL(LTRIM(RTRIM([BIH].[ADDRESSEE])), '') AS [Addressee], ISNULL(LTRIM(RTRIM([BIH].[INVCR])), '') AS [Type], ISNULL([BIH].[BILLNO], 0) AS [InvoiceNo], ISNULL(LTRIM(RTRIM([BIH].[OURREF])), '') AS [OurRef], ISNULL(LTRIM(RTRIM([BIH].[YOURREF])), '') AS [YourRef], ISNULL([BID].[Net], 0) + ISNULL([BID].[VAT], 0) AS [Total], ISNULL([BID].[Fees], 0) AS [TotalFees], ISNULL([BID].[Outlay], 0) AS [TotalOutlay], ISNULL([BID].[VAT], 0) AS [TotalVAT], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[RELEASED])), '') = 'Y' THEN 1 ELSE 0 END AS [Released], ISNULL(LTRIM(RTRIM([BIH].[RETURNREASON])), '') AS [ReturnReason], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[TRANSFER])), '') = 'Y' THEN 1 ELSE 0 END AS [Transfer], [BIH].[WRITEDOWN] AS [WriteDownDate], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[OPENINVOICE])), '') = 'Y' THEN 1 ELSE 0 END AS [OpenInvoice], ISNULL([BIH].[CreditInvoiceNo], 0) AS [CreditInvoiceNo], CASE WHEN ISNULL(LTRIM(RTRIM([BIH].[BillSent])), '') = 'Y' THEN 1 ELSE 0 END AS [BillSent], [BIH].[DefaultBillLayoutReportID] AS [DefaultBillLayoutReportID], ISNULL([BIH].[FeCode], '') AS [FECode], RTRIM(ISNULL([BIH].[MATTERDESCRIPTION], '')) AS [Description], --RIGHT(ISNULL(RTRIM([BIH].[ADDRESSEE]), ''), --LEN(ISNULL(RTRIM([BIH].[ADDRESSEE]), '')) - CHARINDEX(CHAR(13) + CHAR(10), ISNULL([BIH].[ADDRESSEE], ''))) AS [Address], 0 AS [Proforma], LTRIM(RTRIM(COALESCE([HAN].[CODE], [HAN2].[CODE], [HAN3].[CODE], 'ADM'))) AS [RequestedCode], LTRIM(RTRIM(COALESCE([HAN].[NAME], [HAN2].[NAME], [HAN3].[NAME], 'Admin'))) AS [RequestedBy], ISNULL([BGC].[ID], 0) AS [BGControlID] FROM [dbo].[BillHeader] AS [BIH] CROSS APPLY (SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM([BID].[NET]), 0)) AS [Net], CONVERT(DECIMAL(19, 2), ISNULL(SUM([BID].[VATVALUE]), 0)) AS [VAT], CONVERT(DECIMAL(19, 2), SUM(CASE WHEN ISNULL([BID].[TYPE], '') IN ('F', 'M') THEN [BID].[NET] ELSE 0 END)) AS [Fees], CONVERT(DECIMAL(19, 2), SUM(CASE WHEN ISNULL([BID].[TYPE], '') = 'O' THEN [BID].[NET] ELSE 0 END)) AS [Outlay] FROM [dbo].[BillDetails] AS [BID] WHERE [BID].[MATTER] = [BIH].[MATTER] AND [BID].[DRAFTNO] = [BIH].[DRAFTNO]) AS [BID] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN] ON [HAN].[CODE] = [BIH].[USER] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN2] ON [HAN2].[LOGON] = [BIH].[USER] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN3] -- This might be expensive ON SUBSTRING([HAN3].[LOGON], 1, 8) = [BIH].[USER] LEFT OUTER JOIN [dbo].[BGControl] AS [BGC] ON [BGC].[DRAFTNO] = [BIH].[DRAFTNO] WHERE [BIH].[DRAFTNO] = @DraftNo END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDraftBillSAM3' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDraftBillSAM3] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON ENd GO CREATE PROCEDURE [dbo].[KAAS_GetDraftBillSAM3] (@DRAFTNOV INT) AS /************************************************************************************************************* * * * [dbo].[KAAS_GetDraftBillSAM3] * * * * Get Header information for this Draft Bill * * Procedure is written for SAM3 * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * ????-??-?? ??????????? Created * * 2014-12-01 Pino Carafa Added new DefaultBillLayoutReportID column * * 2015-06-30 Pino Carafa Added support for FeCode in SAM3 * * 2016-01-21 Pino Carafa Added BG Control ID (SAM3) * * 2021-03-15 Pino Carafa https://dev.azure.com/keyhouse365/Framework/_workitems/edit/7679 * * when the actual DefaultBillLayoutReportID value no longer * * refers to an existing report, return the system's default * * billing report instead. * * 2021-05-04 John Ginnane Added a column which tells us if the matter is closed * * Will be used to make sure people can't edit the billing guide * * 2021-10-04 Pino Carafa Since we now have separate SPs for SAM3 and SAM4 none of this dynamic SQL * * is necessary anymore. * * 2024-04-23 Pino Carafa Reimported from [dbo].[ky_NETSPGetDraftBill] * * 2024-04-23 Pino Carafa Ensured that the SAM3 and SAM4 versions produce identical looking data set * * * *************************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL([BH].[MATTER], '')) AS [MATTER], RTRIM(ISNULL([BH].[ADDRESSEE], '')) AS [ADDRESSEE], RTRIM(ISNULL([BH].[RETURNREASON], '')) AS [MESSAGE], RTRIM(ISNULL([BH].[INVCR], '')) AS [TYPE], ISNULL([BH].[DRAFTNO], 0) AS [DRAFTNO], ISNULL([BH].[BILLNO], 0) AS [INVOICENO], [BH].[Date] AS [BILLDATE], RTRIM(ISNULL([HAN].[CODE], '')) AS [Requested Code], RTRIM(ISNULL([HAN].[NAME], '')) AS [Requested By], [BH].[FeCode] AS [FeCode], [BH].[WRITEDOWN] AS [WriteDown], RTRIM(ISNULL([BH].[MATTERDESCRIPTION], '')) AS [Description], CASE WHEN RTRIM(ISNULL([BH].[TRANSFER], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [TransferToPay], CASE WHEN RTRIM(ISNULL([BH].[OpenInvoice], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [OpenInvoice], RTRIM(ISNULL([BH].[OURREF], '')) AS [Our Ref], RTRIM(ISNULL([BH].[YOURREF], '')) AS [Your Ref], CASE WHEN [BH].[RELEASED] = 'Y' THEN 'Y' ELSE 'N' END AS [Released], ISNULL([BH].[BILLNO], 0) AS [Bill Number], [BH].[CreditInvoiceNo] AS [CreditInvoiceNo], CASE WHEN RTRIM(ISNULL([BH].[BillSent], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [Bill Sent], ISNULL([CRR].[ReportID], [dbo].[ky_FNDefaultBillLayoutReport]()) AS [DefaultBillLayoutReportID], [DTL].[TOTALNET] AS [TOTALNET], [DTL].[TOTALVAT] AS [TOTALVAT], [DTL].[TOTAL] AS [TOTAL], ISNULL([BGC].[ID], 0) AS [BGControlID], '' AS [ProForma], '' AS [ClientAddress], CASE WHEN ISNULL([MAT].[Closed], '') = 'Y' THEN 1 ELSE 0 END AS [MatterClosed], 0.01 AS [RoundTo], '' AS [Branch], CASE WHEN RTRIM(ISNULL(MAT.[Code], '')) = RTRIM(ISNULL(MAT.[CompBillingMatter], '')) THEN 1 ELSE 0 END AS [CompositeBill], '' AS [Reference] FROM [dbo].[BillHeader] [BH] INNER JOIN [dbo].[matters] AS [MAT] ON RTRIM(ISNULL([BH].[MATTER], '')) = [MAT].[Code] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON ( ( RTRIM(ISNULL([HAN].[LOGON], '')) = '' AND [BH].[USER] = [HAN].[CODE]) OR ( RTRIM(ISNULL([HAN].[LOGON], '')) <> '' AND [BH].[USER] IN ([HAN].[CODE], [HAN].[LOGON]))) CROSS APPLY (SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([BD].[NET], 0)), 0)) AS [TOTALNET], CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([BD].[VATVALUE], 0)), 0)) AS [TOTALVAT], CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([BD].[NET], 0) + ISNULL([BD].[VATVALUE], 0)), 0)) AS [TOTAL] FROM [dbo].[BillDetails] [BD] WHERE [BD].[DRAFTNO] = [BH].[DRAFTNO]) [DTL] LEFT OUTER JOIN [dbo].[CRReport] [CRR] ON [CRR].[ReportID] = [BH].[DefaultBillLayoutReportID] LEFT OUTER JOIN [dbo].[BGControl] [BGC] ON [BGC].[DRAFTNO] = [BH].[DRAFTNO] WHERE [BH].[DRAFTNO] = @DRAFTNOV ORDER BY [BH].[Date] DESC END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetDraftBillSAM4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetDraftBillSAM4] END GO IF [dbo].[ISSAM4]() = 0 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_GetDraftBillSAM4] (@DRAFTNOV INT) AS /************************************************************************************************************* * * * [dbo].[KAAS_GetDraftBillSAM4] * * * * Get Header information for this Draft Bill * * Procedure is written for SAM4 * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2018-08-07 John Ginnane Created * * 2018-08-23 John Ginnane Added composite bill indicator * * 2018-09-03 John Ginnane Added matter closed indicator * * 2020-04-02 John Ginnane KEYD-6444 - Added Reference to output * * 2024-04-23 Pino Carafa Imported from [dbo].[ky_NETSPGetDraftBillSAM4] * * 2024-04-23 Pino Carafa Ensured that the SAM3 and SAM4 versions produce identical looking data set * * * *************************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL([BH].[MatterCode], '')) AS [MATTER], RTRIM(ISNULL([BH].[Addressee], '')) AS [ADDRESSEE], RTRIM(ISNULL([BH].[Message], '')) AS [MESSAGE], RTRIM(ISNULL([BH].[TYPE], '')) AS [TYPE], ISNULL([BH].[BillingID], 0) AS [DRAFTNO], ISNULL([BH].[InvoiceNo], 0) AS [INVOICENO], [BH].[BillDate] AS [BILLDATE], RTRIM(ISNULL([HAN].[CODE], '')) AS [Requested Code], RTRIM(ISNULL([HAN].[NAME], '')) AS [Requested By], [BH].[FeCode] AS [FeCode], [BH].[TimeWriteDownDate] AS [WriteDown], RTRIM(ISNULL([BH].[BillDescription], '')) AS [Description], CASE WHEN RTRIM(ISNULL([BH].[TransferToPay], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [TransferToPay], CASE WHEN RTRIM(ISNULL([BH].[OpenInvoice], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [OpenInvoice], '' AS [Our Ref], '' AS [Your Ref], CASE WHEN RTRIM(ISNULL([BH].[BillStatus], 'Draft')) = 'Draft' THEN 'N' ELSE 'Y' END AS [Released], 0 AS [Bill Number], [BH].[CreditInvoiceNo] AS [CreditInvoiceNo], 'N' AS [Bill Sent], ISNULL([CRR].[ReportID], [dbo].[ky_FNDefaultBillLayoutReport]()) AS [DefaultBillLayoutReportID], [DTL].[TOTALNET] AS [TOTALNET], [DTL].[TOTALVAT] AS [TOTALVAT], [DTL].[TOTAL] AS [TOTAL], 0 AS [BGControlID], RTRIM(ISNULL([BH].[ProForma], '')) AS [ProForma], RTRIM(ISNULL([BH].[ADDRESS], '')) AS [ClientAddress], CASE WHEN ISNULL([MAT].[Closed], 'Y') = 'Y' THEN 1 ELSE 0 END AS [MatterClosed], ISNULL([BH].[RoundTo], 0.01) AS [RoundTo], RTRIM(ISNULL([BH].[Branch], '')) AS [Branch], CASE WHEN RTRIM(ISNULL([MAT].[Code], '')) = RTRIM(ISNULL([MAT].[CompBillingMatter], '')) THEN 1 ELSE 0 END AS [CompositeBill], ISNULL(RTRIM(LTRIM([BH].[Ref])), '') AS [Reference] FROM [dbo].[Billhead] [BH] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON ( ( RTRIM(ISNULL([HAN].[LOGON], '')) = '' AND [BH].[CreateBy] = [HAN].[CODE]) OR ( RTRIM(ISNULL([HAN].[LOGON], '')) <> '' AND [BH].[CreateBy] IN ([HAN].[CODE], [HAN].[LOGON]))) LEFT OUTER JOIN (SELECT [BD].[BillID], CONVERT(DECIMAL(19, 2), ISNULL(SUM([BD].[NetValue]), 0)) AS [TOTALNET], CONVERT(DECIMAL(19, 2), ISNULL(SUM([BD].[VatValue]), 0)) AS [TOTALVAT], CONVERT(DECIMAL(19, 2), ISNULL(SUM([BD].[NetValue] + [BD].[VatValue]), 0)) AS [TOTAL] FROM [dbo].[BillDetail] [BD] GROUP BY [BD].[BillID]) AS [DTL] ON [BH].[BillingID] = [DTL].[BillID] INNER JOIN [dbo].[matters] AS [MAT] ON [MAT].[Code] = [BH].[MatterCode] WHERE [BH].[BillingID] = @DRAFTNOV ORDER BY [BH].[BillDate] DESC END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetEFTHeader' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetEFTHeader] END GO CREATE PROCEDURE [dbo].[KAAS_GetEFTHeader] AS /******************************************************************************************************* * Read the header data for Electronic Fund Transfer * * * * Stored Procedure Name : [dbo].[KAAS_GetEFTHeader] * * Copied from : [dbo].[ky_NETGetEFTHeader] * * * * Modification History : * * 2024-03-19 Vignesh M Created * *******************************************************************************************************/ BEGIN DECLARE @WORK CHAR(1) DECLARE @POS INT DECLARE @ORG VARCHAR(200) DECLARE @RES VARCHAR(200) DECLARE @REF VARCHAR(35) SET @ORG = CONVERT(VARCHAR, GETDATE(), 112) + CONVERT(VARCHAR, GETDATE(), 108) + ISNULL((SELECT TOP 1 [NAME] FROM [dbo].[control]), '') SET @RES = '' SET @POS = 1 WHILE @POS <= LEN(@ORG) BEGIN SET @WORK = SUBSTRING(@ORG, @POS, 1) SET @RES = @RES + CASE WHEN @WORK >= 'A' AND @WORK <= 'Z' THEN @WORK WHEN @WORK >= '0' AND @WORK <= '9' THEN @WORK ELSE '' END SET @POS = @POS + 1 END SET @REF = RTRIM(CONVERT(VARCHAR(35), @RES)) SELECT TOP 1 ETT.[BankAccountNum], ETT.[BankBIC], ETT.[BankCode], ETT.[BankIBAN], REPLACE(REPLACE([dbo].[KAAS_FN_RemovePatternFromString](ETT.[BankName], '%[$&.!?@#~/\\\%|`¬{}\+=_^€£",]%'), CHAR(13), ''), CHAR(10), '') AS [BankName], ETT.[BANKOIN], ETT.[BankSortCode], ETT.[FileName], ETT.[NoofTransactions], ETT.[PaymentDate], ETT.[SumofTransactions], SOT.[SumofTransactions2], SOT.[SumofTransactions2] - ETT.[SumofTransactions] AS [Discrepancy], ETT.[Narrative], ETT.[SequenceNo] AS [FileNumber], @REF AS [EndToEnd] FROM [dbo].[EFTTable] ETT CROSS APPLY (SELECT CONVERT(DECIMAL(18, 2), ISNULL(SUM(ET2.[PayeeAmount]), 0)) AS [SumofTransactions2] FROM [dbo].[EFTTable] ET2) SOT END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetEFTLines' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetEFTLines] END GO CREATE PROCEDURE [dbo].[KAAS_GetEFTLines] AS /******************************************************************************************************* * Read the detail lines for Electronic Fund Transfer * * * * Stored Procedure Name : [dbo].[KAAS_GetEFTLines] * * Copied from : [dbo].[ky_NETGetEFTLines] * * * * Modification History : * * 2024-03-19 Vignesh M Created * *******************************************************************************************************/ BEGIN SELECT ETT.[BankAccountNum], ETT.[BankBIC], ETT.[BankCode], ETT.[BankIBAN], REPLACE(REPLACE([dbo].[KAAS_FN_RemovePatternFromString](ETT.[BankName], '%[$&.!?@#~/\\\%|`¬{}\+=_^€£",]%'), CHAR(13), ''), CHAR(10), '') AS [BankName], ETT.[BANKOIN], ETT.[BankSortCode], ETT.[FileName], ETT.[Narrative], ETT.[NoofTransactions], ETT.[PayeeAccountNum], ETT.[PayeeAmount], ETT.[PayeeBIC], ETT.[PayeeCode], ETT.[PayeeIBAN], RTRIM(CONVERT(VARCHAR(70), ISNULL(REPLACE(REPLACE([dbo].[KAAS_FN_RemovePatternFromString](ETT.[PayeeName], '%[$&.!?@#~/\\\%|`¬{}\+=_^€£",]%'), CHAR(13), ''), CHAR(10), ''), ''))) AS [PayeeName], ETT.[PayeeSortCode], ETT.[PayeeType], ETT.[PaymentDate], ETT.[RecordID], ETT.[SequenceNo], ETT.[SumofTransactions] FROM [dbo].[EFTTable] ETT ORDER BY ETT.[SequenceNo], ETT.[RecordID] END GO IF EXISTS (SELECT TOP 1 1 FROM [sys].[objects] AS [SO] WHERE [SO].[name] = N'KAAS_GetFeeEarnerBreakdown' AND [SO].[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetFeeEarnerBreakdown] END GO CREATE PROCEDURE [dbo].[KAAS_GetFeeEarnerBreakdown] ( @DraftNo INT) AS /************************************************************************** * * * [dbo].[KAAS_GetFeeEarnerBreakdown] * * * * Get the Fee Earner Breakdown for a Draft Bill * * * * Modification History: * * 2018-08-03 John Ginnane Added to SVN and added SAM4 compatibility * * 2019-11-06 Rajesh copied from ky_NETSPGetFeeEarnerBreakdown * * 2021-26-02 Sadiq Added to Stored Procedure Folder * * 2024-04-08 John Ginnane #17719 Rewrote and refactored * **************************************************************************/ BEGIN SET NOCOUNT ON; SELECT LTRIM(RTRIM([BFBD].[MATTER])) AS [MatterCode], [BFBD].[DRAFTNO] AS [DraftNo], [BFBD].[BILLNO] AS [InvoiceNo], [BFBD].[FECODE] AS [HandlerCode], ISNULL(LTRIM(RTRIM([HAN].[NAME])), '') AS [Handler], ISNULL([BFBD].[TYPE], 'F') AS [Type], CONVERT(DECIMAL(19, 2), ISNULL([BFBD].[PERCENT], 0)) AS [Percent], CONVERT(DECIMAL(19, 6), ISNULL([BFBD].[CALCULATION], 0)) AS [Calculation], CONVERT(DECIMAL(19, 2), ISNULL([BFBD].[VALUE], 0)) AS [Value], ISNULL([BFBD].[VATCODE], '') AS [VATCode], CONVERT(DECIMAL(19, 2), ISNULL([BFBD].[VATAMT], 0)) AS [VATValue], [BFBD].[RECORDID] AS [RecordID], CONVERT(DECIMAL(19, 2), [BFBD].[VATCalculation]) AS [VATCalculation] FROM [dbo].[BillFeeBreakDown] AS [BFBD] LEFT OUTER JOIN [dbo].[Handlers] AS [HAN] ON [BFBD].[FECODE] = [HAN].[CODE] WHERE [BFBD].[DRAFTNO] = @DraftNo END GO DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 1 BEGIN EXEC(' IF OBJECT_ID(''KAAS_GetFeeEarnerBreakdownSAM4'', ''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetFeeEarnerBreakdownSAM4] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_GetFeeEarnerBreakdownSAM4] (@DRAFTNO INT) AS /************************************************************************** * * Stored Procedure : KAAS_GetFeeEarnerBreakdownSAM4 * Copied From : ky_NETSPGetFeeEarnerBreakdownSAM4 * * Get the Fee Earner Breakdown for a Draft Bill * * 2018-08-07 John Ginnane Created * 2020-02-21 Vinodhan Created KAAS_GetFeeEarnerBreakdownSAM4 * 2020-06-10 Prabhu.V Added OutLayCode and PreBilledOutlay * 2020-06-10 Prabhu.V Fetching Unique ID BreakNo as RecordID Since We Fetching this unique ID column RecordID in SAM3 * **************************************************************************/ BEGIN SELECT BB.[BreakNO] AS [RECORDID], RTRIM(ISNULL(HAN.[CODE], '''')) AS [FeeEarnerCode], RTRIM(ISNULL(HAN.[Name], '''')) AS [FeeEarner], ISNULL(BB.[Calculation], 0) AS [SHORTPERCENT], ISNULL(BB.[Percentage], 0) AS [PERCENT], ISNULL(BB.[FeeValue], 0) AS [VALUE], RTRIM(ISNULL(BB.[VatCode], '''')) AS [VATCODE], ISNULL(BB.[VatValue], 0) AS [VAT Amount], RTRIM(ISNULL(BD.[OutlayCode], '')) AS [OutlayCode] , RTRIM(ISNULL(BD.[PreBilledOutlay], '')) AS [PreBilledOutlay] FROM [dbo].[BillBreakdown] BB LEFT JOIN [dbo].[BillDetail] BD ON BD.[BillID] = BB.[BillingNo] LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = BB.[FECode] WHERE BB.[BillingNo] = @DRAFTNO END') END GO IF OBJECT_ID(N'KAAS_GetFileData', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetFileData] END GO CREATE PROCEDURE [dbo].[KAAS_GetFileData] (@FilePath NVARCHAR(MAX)) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_GetFileData] * * Copied from : NA * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2019-12-26 Arun V Have included KAAS_GetUNCPathFromFile function to convert file path * * into UNC * *******************************************************************************************************/ BEGIN DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @result INT DECLARE @UNCFilePath NVARCHAR(256) SET @FilePath = REPLACE(@FilePath, '''', ''''''); SET @UNCFilePath = (select dbo.KAAS_GetUNCPathFromFile(@FilePath)) SET @NCOMMAND = 'EXEC Master.dbo.xp_fileexist ''' + @UNCFilePath + ''', @result OUTPUT PRINT @result' EXECUTE sp_executesql @NCOMMAND, N'@result INT OUTPUT', @result = @result OUTPUT IF (@result = 1) BEGIN SET @NCOMMAND = 'DECLARE @file AS VARBINARY(MAX); SELECT @file = CAST(bulkcolumn AS VARBINARY(MAX)) FROM OPENROWSET (BULK ''' + @UNCFilePath + ''', SINGLE_BLOB) AS x; SELECT @file AS FileData' EXECUTE sp_executesql @NCOMMAND END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetFileName' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetFileName] END GO CREATE PROCEDURE [dbo].[KAAS_GetFileName] (@TrackReference INT) AS /******************************************************************************************************* * Fetches the file path using Track Reference No. * * * * Stored Procedure Name : [dbo].[KAAS_GetFileName] * * * * Modification History : * * 2020-06-19 Arun V Created * ********************************************************************************************************/ BEGIN SELECT [Document] FROM [DiaryAttachments] WHERE [TrackReference] = @TrackReference END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetFilePath' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetFilePath] END GO CREATE PROCEDURE [dbo].[KAAS_GetFilePath] (@TrackReference INT) AS /******************************************************************************************************* * Fetches the file path using Track Reference No. * * * * Stored Procedure Name : [dbo].[KAAS_GetFilePath] * * * * Modification History : * * 2019-09-26 Vinodhan K Created * ********************************************************************************************************/ BEGIN SELECT [FilePath] FROM [DiaryAttachments] WHERE [TrackReference] = @TrackReference END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetFileSharingTrackReferenceDocuments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetFileSharingTrackReferenceDocuments] END GO CREATE PROCEDURE [dbo].[KAAS_GetFileSharingTrackReferenceDocuments] (@TrackReference INT) AS /************************************************************************************************************* * Stored Procedure Name : KAAS_GetFileSharingTrackReferenceDocuments * * Copied From : [dbo].[ky_NETSPGetFileSharingTrackReferenceDocuments] * * * * List the File Sharing IDs for the document with this Track Reference * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.5.1.2 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2017-07-21 Pino Carafa Created * * 2019-06-11 Vinodhan K Created * *************************************************************************************************************/ BEGIN SELECT [FSM].[FileSharingServersID], [FSD].[FileSharingDocumentID], [FSM].[FileSharingDocFoldersID], [FSD].[TrackReference] FROM [dbo].[DiaryAttachments] [DAT] INNER JOIN [dbo].[FileSharingDocuments] [FSD] INNER JOIN [dbo].[FileSharingMapping] [FSM] ON [FSM].[id] = [FSD].[FileSharingMappingID] ON [FSD].[TrackReference] = [DAT].[TrackReference] WHERE [DAT].[TrackReference] = @TrackReference END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetFileTypes' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetFileTypes] END GO CREATE PROCEDURE [dbo].[KAAS_GetFileTypes] AS /************************************************************************************************ * This procedure is used get the File Types. * * * * Stored Procedure Name : [dbo].[KAAS_GetFileTypes] * * * * Modification History : * * 2023-06-25 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON select * from FileTypes SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetFirmUnderTakings' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetFirmUnderTakings] END GO CREATE PROCEDURE [dbo].[KAAS_GetFirmUnderTakings] ( @XML NVARCHAR(MAX) = N'', @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL ) AS /***************************************************************************** * * [dbo].[ky_NETGetFirmUnderTakings2] * * Description: Page load data for loading the Firm Undertakings grid. * * Modification History: * * ????-??-?? ?????? Created * 2015-11-26 Pino Corrected spelling mistake in procedure name * Add NeedsAttention Columns * 2016-02-29 Sridharan KEYD-3362 - Wrong values are displayed in the �Firm Undertakings� page * 2016-03-02 Sridharan KEYD-3385 - Undertakings Right Click Add Actions * 2016-03-15 Sridharan IF-226 - undertaking home tab * 2016-03-22 Sridharan KEYD-3422 - Changes to the Firm Undertakings Grid and Form * 2019-05-30 John Ginnane KEYD-5904 - Passing down handler to check for permissions * 2019-11-07 S.Vignesh Created * 2020-02-04 Prabhu.V resolved the filter data issue based on page index. * 2020-02-05 Prabhu.V Data Order not Fetching as per FW Order - Fixed. * 2020-04-09 Ganapathy T UndertakingDate, Discharge Date Timezone added * 2022-09-21 Ghayathri.S.V Modified FeeName column in search condition * 2023-02-17 Vignesh M Modifed Grid Sorting issue - Fixed *****************************************************************************/ BEGIN DECLARE @idoc INT DECLARE @handler VARCHAR(20) DECLARE @BitWiseID BIGINT DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'RECORDID' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END BEGIN TRY EXEC sp_xml_preparedocument @idoc OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @idoc OUTPUT, N'' END CATCH SELECT @handler = [XML].[handler] FROM OPENXML(@idoc, N'search') WITH ([handler] VARCHAR(20) '@handler') AS [XML] EXEC sp_xml_removedocument @idoc SELECT @BitWiseID = HNG.[BitWiseID] FROM [dbo].[HandlerNETGroupMembership] AS HNG WHERE HNG.[HANDLER] = @handler SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_GetOldPermissions](RTRIM(ISNULL(@handler, '')))) IF @handler = 'ADM' BEGIN SET @BitWiseID = -1 END /* Get the associate's first type in CaseContacts */ ;WITH [CC] ([CASECODE], [NAMECODE], [NAME], [AssociateTypeDescription], [row]) AS ( SELECT [CC].[CASECODE], [CC].[NAMECODE], [CAN].[NAME], [AT].[DESCRIPTION], ROW_NUMBER() OVER(PARTITION BY [CC].[CASECODE], [CC].[NAMECODE] ORDER BY [CC].[CONNUM] ASC) AS [row] FROM [dbo].[CaseContacts] AS [CC] INNER JOIN [dbo].[CaseAssociatesNames] AS [CAN] ON [CAN].[CODE] = [CC].[NAMECODE] INNER JOIN [dbo].[AssociateTypes] AS [AT] ON [CC].[CONTYPE] = [AT].[CODE]), secondLevel as( SELECT ISNULL(RTRIM(UND.[MATTER]), '') AS [MatterRef], ISNULL(RTRIM(CON.[Name]), '') AS [Client], ISNULL(RTRIM(MAT.[DESCRIPTION]), '') AS [Matter], ISNULL(RTRIM(UND.[DESCRIPTION]), '') AS [Undertaking], dbo.KAAS_FNConvertUTCDateToTargetTimeZone(UND.[DATE],@handler)AS [UndertakingDate], dbo.KAAS_FNConvertUTCDateToTargetTimeZone(UND.[DISCHARGEDATE],@handler)AS [DischargeDate], ISNULL(RTRIM(UND.[AuthorisedByFE]), '') AS [AuthorisedByFE], ISNULL(UND.[UNDVALUE], 0.00) AS [Value], ISNULL(RTRIM(UND.[TYPE]), '') AS [Type], ISNULL(RTRIM(UND.[WHO]), '') AS [ForWho], ISNULL(RTRIM(UTS.[StatusDesc]), '') AS [Status], ISNULL(UND.[ActionID], 0) AS [ActionID], CASE WHEN ISNULL(RTRIM(UND.[GivenOrReceived]), '') = 'G' THEN 'Given' WHEN UND.[GivenOrReceived] = 'R' THEN 'Received' ELSE '' END AS [GivenOrReceived], ISNULL(RTRIM(UND.[DischargeDescription]), '') AS DischargeDescription, ISNULL(RTRIM(UND.[DischargedBy]), '') AS [DischargedBy], ISNULL(RTRIM(UND.[DealingNumber]), '') AS [DealingNumber], ISNULL(RTRIM(UND.[Notes]), '') AS [Notes], CASE WHEN ISNULL(RTRIM(UND.[CommercialOrNon]), '') = 'C' THEN 'Commercial' WHEN ISNULL(RTRIM(UND.[CommercialOrNon]), '') = 'N' THEN 'Non Commercial' ELSE '' END AS [CommercialOrNon], UND.[UNDDATE] AS [UNDDATE], ISNULL(UND.[VALUE], 0.00) AS [UndertakingsValue], ISNULL(RTRIM(UND.[Handler]), '') AS [Handler], ISNULL(RTRIM(UND.[CaseContact]), '') AS [CaseContact], UND.[EntryDate] AS [EntryDate], ISNULL(UTS.[RecordID], 0) AS [RecordID], CASE WHEN UND.[NeedsAttention] = 1 THEN 'Yes' ELSE 'No' END AS [NeedsAttention], CASE WHEN UND.[NeedsAttention] = 1 THEN 'Visible' ELSE 'Collapsed' END AS [NeedsAttentionIcon], ISNULL([CC].[NAME], '') AS [UDToname], ISNULL([CC].[AssociateTypeDescription], '') AS [UDToDesc], [UND].[UndertakingTo] AS [UndertakingTo], [UND].[RECORDID] AS [URecordID], [FEC].[Name] AS [FeeName] FROM [dbo].[Contacts] AS [CON] INNER JOIN [dbo].[matters] AS [MAT] ON MAT.[ClientCode] = CON.[Code] INNER JOIN [dbo].[SearchMatters] AS [SM] ON [MAT].[Code] = [SM].[Code] AND CASE @BitWiseID WHEN 0 THEN CASE [SM].[Privileges] WHEN 0 THEN 1 WHEN -1 THEN 1 ELSE 0 END ELSE CASE @BitWiseID & [SM].[Privileges] WHEN 0 THEN 0 ELSE 1 END END = 1 INNER JOIN [dbo].[Undertakings] AS [UND] ON UND.[MATTER] = MAT.[Code] LEFT OUTER JOIN [dbo].[UndertakingStatus] AS [UTS] ON [UTS].[RecordID] = UND.[Status] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC] ON [UND].[AuthorisedByFE] = [FEC].[Code] LEFT OUTER JOIN CC AS [CC] ON [CC].[CASECODE] = MAT.[Code] AND [CC].[NAMECODE] = [UND].[UndertakingTo] AND [CC].[row] = 1 /* Only the first associate type in the CaseContacts for this associate for this case */ ), FinalOutput as ( select * from ( select *,ROW_NUMBER() OVER ( Order by CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'RECORDID' THEN URecordID END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'RECORDID' THEN URecordID END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'MatterRef' THEN [MatterRef] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'MatterRef' THEN [MatterRef] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Matter' THEN [Matter] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Matter' THEN [Matter] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Undertaking' THEN [Undertaking] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Undertaking' THEN [Undertaking] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'UndertakingDate' THEN [UndertakingDate] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'UndertakingDate' THEN [UndertakingDate] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'AuthorisedByFE' THEN [AuthorisedByFE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'AuthorisedByFE' THEN [AuthorisedByFE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Value' THEN [Value] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Value' THEN [Value] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END DESC ) as RowNumber,count(*) over() as TotalRows from secondLevel WHERE ( @SearchText is null OR( [MatterRef] LIKE '%' + @SearchText + '%' ) OR( [Client] LIKE '%' + @SearchText + '%' ) OR( [Matter] LIKE '%' + @SearchText + '%' ) OR( [Undertaking] LIKE '%' + @SearchText + '%' ) OR( [UndertakingDate] LIKE '%' + @SearchText + '%' ) OR( [FeeName] LIKE '%' + @SearchText + '%' ) OR( [Value] LIKE '%' + @SearchText + '%' ) OR( [Type] LIKE '%' + @SearchText + '%' ) ) ) a )select * from FinalOutput where @StartRow IS NULL OR ( RowNumber BETWEEN @StartRow AND @EndRow ) --and [Client] LIKE '%' + @SearchText + '%' ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'RECORDID' THEN URecordID END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'RECORDID' THEN URecordID END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'MatterRef' THEN [MatterRef] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'MatterRef' THEN [MatterRef] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Client' THEN [Client] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Matter' THEN [Matter] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Matter' THEN [Matter] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Undertaking' THEN [Undertaking] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Undertaking' THEN [Undertaking] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'UndertakingDate' THEN [UndertakingDate] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'UndertakingDate' THEN [UndertakingDate] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'AuthorisedByFE' THEN [AuthorisedByFE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'AuthorisedByFE' THEN [AuthorisedByFE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Value' THEN [Value] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Value' THEN [Value] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END DESC END GO IF OBJECT_ID(N'[KAAS_GetFNLClientDetails]',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetFNLClientDetails] GO CREATE PROCEDURE KAAS_GetFNLClientDetails ( @Code NVARCHAR(20) ) AS /****************************************************************************************************************** * To Fetch the FNL Client detail from matters and Client. * * * * Stored Procedure Name: [dbo].[KAAS_GetFNLClientDetails] * * * * Modification History: * * 2019-07-23 Vinodhan K Created * ******************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ClientCode NVARCHAR(20) SET @ClientCode= SUBSTRING(RTRIM(ISNULL(@Code,'')), 1,CHARINDEX('/', @Code)-1) SELECT * INTO #TABLE1 FROM( SELECT [CL].CLCODE AS ClientCode, [CL].CLNAME AS ClientName, [CL].CLADDR AS Address FROM Client [CL] WHERE [CL].CLCODE= @ClientCode )AS TBL SELECT * INTO #TABLE2 FROM( SELECT [MAT].Matter, [MAT].Description, [MAT].FECode FROM Matters[MAT] WHERE [MAT].Code=@Code ) AS TBL SELECT * FROM #TABLE1,#TABLE2 DROP TABLE #TABLE1,#TABLE2 SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_GetFNLMatters]',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetFNLMatters] GO CREATE PROCEDURE KAAS_GetFNLMatters ( @Code NVARCHAR(20) ) AS /****************************************************************************************************************** * To Fetch the FNL detail from matters. * * * * Stored Procedure Name: [dbo].[KAAS_GetFNLMatters] * * Copied from : [dbo].[ky_NETGetFNLMatters] * * * * Modification History: * * 2019-07-19 Vinodhan K Created * ******************************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(FNL_Name) AS 'FNLName', RTRIM(FNL_Address) AS 'FNLAddress', RTRIM(FNL_Date) AS 'Date', RTRIM(FNL_Fees) AS 'FNLFees', RTRIM(FNL_Outlay) AS 'FNLOutlay', RTRIM(FNL_VAT) AS 'FNLVat', RTRIM(FNL_Total) AS 'FNLTotal' FROM matters WHERE Code = @Code SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetFollowOnActions' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetFollowOnActions] END GO CREATE PROCEDURE [dbo].[KAAS_GetFollowOnActions] ( @ACTIONCODE varchar(15) ) AS /******************************************************************************************************* *To get any follow on actions available for given ActionCode * * Used in OWA * * * * Params: * * @ACTIONCODE * * * * Stored Procedure Name : [dbo].[KAAS_GetFollowOnActions] * * * * Modification History : * * 2019-05-07 Ramesh K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL([TNA].[DECISION], '')) AS [Decision], RTRIM(ISNULL([TNA].[NEXTACTION], '')) AS [NextAction], [TNAC].[DESC] AS [NextActionDescription], [TAC].[NEXTACTIONOPTIONAL] AS [NEXTACTIONOPTIONAL] FROM [TemplateActions] [TAC] INNER JOIN [TemplateNextActions] [TNA] INNER JOIN [dbo].[TemplateActions] [TNAC] ON [TNAC].[ACTIONCODE] = [TNA].[NEXTACTION] ON [TNA].[ACTION] = [TAC].[ACTIONCODE] WHERE [TAC].[ACTIONCODE] = @ACTIONCODE END GO IF OBJECT_ID(N'KAAS_GetHandlerControlSettings', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetHandlerControlSettings] END GO CREATE PROCEDURE [dbo].[KAAS_GetHandlerControlSettings] (@handler VARCHAR(10), @controlname VARCHAR(50), @ownername VARCHAR(50)) AS /***************************************************************************** * Gets a control's settings for a particular handler. * * * Stored Procedure Name : [dbo].[KAAS_GetHandlerControlSettings] * * Copied from : [dbo].[ky_NETSPGetHandlerControlSettings] * * * * Modification History * * 2019-10-01 Ganapathy T Created * * * *************************************************************************************************************/ BEGIN SELECT HCL.[ControlSettings] FROM [dbo].[HandlerControlSettings] HCL WHERE HCL.[HANDLER] = @handler AND HCL.[ControlName] = @controlname AND HCL.[OwnerName] = @ownername END GO IF OBJECT_ID(N'KAAS_GetHandlerDefaultTask', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetHandlerDefaultTask] END GO CREATE PROCEDURE [dbo].[KAAS_GetHandlerDefaultTask] (@Code VARCHAR(15)) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_GetHandlerDefaultTask] * * Copied from : NA * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(DEFAULTTASK) AS [DefaultTask] FROM Handlers WHERE RETIRED <> 'Y' AND CODE = @Code END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetHandlerGroupExtraDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetHandlerGroupExtraDetails] END GO CREATE PROCEDURE [dbo].[KAAS_GetHandlerGroupExtraDetails]( @Id INT ) AS /*************************************************************************************************************** * * [dbo].[KAAS_GetHandlerGroupExtraDetails] * When a Handler is included in a group, all controls in that group should be disabled for that handler. * Please note that it's possible to assign a group to ALL handlers, which effectively disables those * controls for everybody in the system. * * Modification History * 2023-04-18 Sadiq Created * 2023-04-19 Modified Updated the value to check true or false to showcase on front check box grid ***************************************************************************************************************/ BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ' DECLARE @XREF TABLE ([Id] INT IDENTITY(1, 1), [Handler] VARCHAR(10), [AllHandlers] BIT' IF EXISTS (SELECT TOP 1 1 FROM [dbo].[KHCtlGroups] CTG WHERE CTG.[deleted] = 0) BEGIN SET @COMMAND = @COMMAND + ', ' select @COMMAND = @COMMAND + '[' + REPLACE(CTG.[GroupName], '''', '''''') + '] BIT' + CASE WHEN CTG.[GroupName] = LG.[GroupName] THEN ')' ELSE ', ' END from [dbo].[KHCtlGroups] CTG CROSS APPLY ( SELECT TOP 1 CTLG.[GroupName] FROM [dbo].[KHCtlGroups] CTLG WHERE CTLG.[deleted] = 0 ORDER BY CTLG.[GroupName] DESC) LG WHERE CTG.[deleted] = 0 ORDER BY CTG.[GroupName] END ELSE BEGIN SET @COMMAND = @COMMAND + ')' END SET @COMMAND = @COMMAND + ' INSERT INTO @XREF ([Handler], [AllHandlers]) VALUES('''', 1) INSERT INTO @XREF ([Handler], [AllHandlers]) SELECT RTRIM(ISNULL(HAN.[CODE], '''')) AS [Handler], 0 AS [AllHandlers] FROM [dbo].[Handlers] HAN CROSS APPLY (SELECT COUNT(1) AS [TOTAL], RTRIM(ISNULL(MAX(PRF.[NAME]), '''')) AS [NAME] FROM [dbo].[KHCtlProfileHandlers] PRH INNER JOIN [dbo].[KHCtlProfiles] PRF ON PRF.[id] = PRH.[ProfileID] WHERE PRH.[Handler] = HAN.[Code]) PRX WHERE RTRIM(ISNULL(HAN.[TEAMCODE], ''N'')) <> ''Y'' AND RTRIM(ISNULL(HAN.[RETIRED], '''')) <> ''Y'' ORDER BY CASE WHEN PRX.[TOTAL] = 0 THEN 1 ELSE 0 END, CASE WHEN PRX.[TOTAL] = 0 THEN '''' WHEN PRX.[TOTAL] = 1 THEN PRX.[NAME] ELSE ''(multiple)'' END, HAN.[CODE]' SELECT @COMMAND = @COMMAND + ' UPDATE XRF SET XRF.[' + REPLACE(CTG.[GroupName], '''', '''''') + '] = CASE WHEN CTH.[id] IS NULL THEN 1 ELSE 0 END FROM @XREF XRF LEFT OUTER JOIN [dbo].[KHCtlHandlers] CTH ON CTH.[Handler] = XRF.[Handler] AND CTH.[AllHandlers] = XRF.[AllHandlers] AND CTH.[groupid] = ' + CONVERT(VARCHAR(10), CTG.[id]) from [dbo].[KHCtlGroups] CTG WHERE CTG.[Deleted] = 0 SET @COMMAND = @COMMAND + ' SELECT XRF.* FROM @XREF XRF LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = XRF.[Handler] CROSS APPLY (SELECT CASE WHEN COUNT(1) <> 1 THEN 0 ELSE ISNULL(MAX(PRF.[id]), 0) END AS [id], CASE WHEN COUNT(1) <> 1 THEN '''' ELSE RTRIM(ISNULL(MAX(PRF.[CODE]), '''')) END AS [CODE], CASE WHEN COUNT(1) = 0 THEN '''' WHEN COUNT(1) > 1 THEN ''(multiple)'' ELSE RTRIM(ISNULL(MAX(PRF.[NAME]), '''')) END AS [NAME] FROM [dbo].[KHCtlProfileHandlers] PRH INNER JOIN [dbo].[KHCtlProfiles] PRF ON PRF.[id] = PRH.[ProfileID] WHERE PRH.[Handler] = HAN.[Code]) PRX WHERE XRF.id='+CONVERT(varchar(max),@Id)+'' EXEC (@COMMAND) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetHandlerGroupMembership' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetHandlerGroupMembership] END GO CREATE PROCEDURE [dbo].[KAAS_GetHandlerGroupMembership] AS /*************************************************************************************************************** * * [dbo].[KAAS_GetHandlerGroupMembership] Copied from [dbo].[ky_NETSPGetKHHandlerGroupMembership] * Lists the Handler Control Groups and whether handlers are included in those groups or not * When a Handler is included in a group, all controls in that group should be disabled for that handler. * Please note that it's possible to assign a group to ALL handlers, which effectively disables those * controls for everybody in the system. * * Modification History * 2023-04-17 Sadiq Created * ***************************************************************************************************************/ BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ' DECLARE @XREF TABLE ([id] INT IDENTITY(1, 1), [Handler] VARCHAR(10), [AllHandlers] BIT' IF EXISTS (SELECT TOP 1 1 FROM [dbo].[KHCtlGroups] CTG WHERE CTG.[deleted] = 0) BEGIN SET @COMMAND = @COMMAND + ', ' select @COMMAND = @COMMAND + '[' + REPLACE(CTG.[GroupName], '''', '''''') + '] BIT' + CASE WHEN CTG.[GroupName] = LG.[GroupName] THEN ')' ELSE ', ' END from [dbo].[KHCtlGroups] CTG CROSS APPLY ( SELECT TOP 1 CTLG.[GroupName] FROM [dbo].[KHCtlGroups] CTLG WHERE CTLG.[deleted] = 0 ORDER BY CTLG.[GroupName] DESC) LG WHERE CTG.[deleted] = 0 ORDER BY CTG.[GroupName] END ELSE BEGIN SET @COMMAND = @COMMAND + ')' END SET @COMMAND = @COMMAND + ' INSERT INTO @XREF ([Handler], [AllHandlers]) VALUES('''', 1) INSERT INTO @XREF ([Handler], [AllHandlers]) SELECT RTRIM(ISNULL(HAN.[CODE], '''')) AS [Handler], 0 AS [AllHandlers] FROM [dbo].[Handlers] HAN CROSS APPLY (SELECT COUNT(1) AS [TOTAL], RTRIM(ISNULL(MAX(PRF.[NAME]), '''')) AS [NAME] FROM [dbo].[KHCtlProfileHandlers] PRH INNER JOIN [dbo].[KHCtlProfiles] PRF ON PRF.[id] = PRH.[ProfileID] WHERE PRH.[Handler] = HAN.[Code]) PRX WHERE RTRIM(ISNULL(HAN.[TEAMCODE], ''N'')) <> ''Y'' AND RTRIM(ISNULL(HAN.[RETIRED], '''')) <> ''Y'' ORDER BY CASE WHEN PRX.[TOTAL] = 0 THEN 1 ELSE 0 END, CASE WHEN PRX.[TOTAL] = 0 THEN '''' WHEN PRX.[TOTAL] = 1 THEN PRX.[NAME] ELSE ''(multiple)'' END, HAN.[CODE]' SELECT @COMMAND = @COMMAND + ' UPDATE XRF SET XRF.[' + REPLACE(CTG.[GroupName], '''', '''''') + '] = CASE WHEN CTH.[id] IS NULL THEN 0 ELSE 1 END FROM @XREF XRF LEFT OUTER JOIN [dbo].[KHCtlHandlers] CTH ON CTH.[Handler] = XRF.[Handler] AND CTH.[AllHandlers] = XRF.[AllHandlers] AND CTH.[groupid] = ' + CONVERT(VARCHAR(10), CTG.[id]) from [dbo].[KHCtlGroups] CTG WHERE CTG.[Deleted] = 0 SET @COMMAND = @COMMAND + ' SELECT CASE WHEN XRF.[Handler] = '''' AND XRF.[AllHandlers] = 1 THEN ''All Handlers'' ELSE RTRIM(ISNULL(HAN.[Name], '''')) END AS [HandlerName], ISNULL(PRX.[id], 0) AS [ProfileID], RTRIM(ISNULL(PRX.[Code], '''')) AS [ProfileCode], [dbo].[KAAS_FN_GetHandlerProfileNames](HAN.[Code]) AS [ProfileName], XRF.id AS [Id], XRF.Handler AS [Handler], XRF.AllHandlers FROM @XREF XRF LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = XRF.[Handler] CROSS APPLY (SELECT CASE WHEN COUNT(1) <> 1 THEN 0 ELSE ISNULL(MAX(PRF.[id]), 0) END AS [id], CASE WHEN COUNT(1) <> 1 THEN '''' ELSE RTRIM(ISNULL(MAX(PRF.[CODE]), '''')) END AS [CODE], CASE WHEN COUNT(1) = 0 THEN '''' WHEN COUNT(1) > 1 THEN ''(multiple)'' ELSE RTRIM(ISNULL(MAX(PRF.[NAME]), '''')) END AS [NAME] FROM [dbo].[KHCtlProfileHandlers] PRH INNER JOIN [dbo].[KHCtlProfiles] PRF ON PRF.[id] = PRH.[ProfileID] WHERE PRH.[Handler] = HAN.[Code]) PRX' EXEC (@COMMAND) END GO IF OBJECT_ID(N'KAAS_GetHandlerLogon', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetHandlerLogon] END GO CREATE PROCEDURE [dbo].[KAAS_GetHandlerLogon] (@HandlerCode VARCHAR(10)) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_GetHandlerLogon] * * Copied from : [dbo].[ky_NETGetHandlerLogon] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2019-09-04 Arun V Have included UserDefaultpageSize setting * * 2019-09-05 Arun V Have included UserFavourites setting * * 2019-09-12 Vinodhan K ISNULL checked for @UserFavourites * * 2019-09-18 Vinodhan K Department of the user added * * 2019-12-12 Prabhu V DefaultVAT Code added * * 2020-02-17 Ganapathy T Day Book progress value added * * 2020-06-02 Prabhu.V Exclude VAT Added for fetch default VAT value for Outlay in invoice * * 2021-11-16 Aakif Added user setting for details/preview tab preferrence * * 2022-04-06 Aakif Included sp_executesql to improve performance with reused plan * 2022-07-06 Ghayathri.S.V Included select statement to fetch scroll page Size * 2023-02-06 Sadiq Added delegate values for handlers to use in Assign Action(16012) * * 2023-03-21 Ghayathri.S.V Included select statement to default routing navigation in client/case * 2023-04-03 Ghayathri.S.V Included select statement to fetch NewMatterWizardDontShowWelcomeScreen in client/case * 2023-09-04 Aakif Include NULL check for Skip ward and default route * * 2023-12-18 Vignesh M Modified - Multiple to single result row * * 2024-02-06 Nithyanandham.M Added user setting for Current selected theme * *******************************************************************************************************/ BEGIN DECLARE @PasswordExpiryDate INT SET @PasswordExpiryDate = ( SELECT ISNULL(KeyValue,60) FROM Settings WHERE [KeyName] = 'PasswordExpiryDays') DECLARE @UserDefaultPageSize INT SET @UserDefaultPageSize = ( SELECT [Value] FROM UserSettings WHERE [Key] = 'UserDefaultPageSize' and Handler = @HandlerCode) DECLARE @UserFavourites VARCHAR(300) SET @UserFavourites = ( SELECT [Value] FROM UserSettings WHERE [Key] = 'UserFavourites' and Handler = @HandlerCode) DECLARE @TimerSettings VARCHAR(300) SET @TimerSettings = ( SELECT [Value] FROM UserSettings WHERE [Key] = 'TimerSettings' and Handler = @HandlerCode) DECLARE @DefaultVATCode VARCHAR(2) SET @DefaultVATCode = (SELECT TOP 1 DEFAULTVAT FROM CONTROL) DECLARE @DefaultExcludeVATCode VARCHAR(2) SET @DefaultExcludeVATCode = (SELECT TOP 1 VATEXCLUDE FROM CONTROL) DECLARE @DayBookValue INT SELECT @DayBookValue = ISNULL(SUM([TDB].[Time]), 0) FROM [dbo].[Timedaybook] [TDB] WITH (NOLOCK) WHERE [TDB].[FeeEarn] = @HandlerCode DECLARE @MaxDayBookValue DECIMAL(10,2) = 7.5 IF EXISTS(SELECT TOP 1 1 FROM [dbo].[UserSettings] WHERE [Handler] = @HandlerCode AND [Key] = 'TimeDayBookLimit') BEGIN SELECT @MaxDayBookValue = Value FROM [dbo].[UserSettings] WHERE [Handler] = @HandlerCode AND [Key] = 'TimeDayBookLimit' END SELECT @MaxDayBookValue = CASE WHEN (ISNULL(@MaxDayBookValue,0) = 0) THEN 7.5 * 60 ELSE @MaxDayBookValue * 60 END DECLARE @SidePanelState varchar(5000) SELECT @SidePanelState = [Value] FROM [dbo].[UserSettings] WHERE [Handler] = @HandlerCode AND [Key] = 'kaas_side_panel_state'; -- User preference for KAAS Web sidebar tab index DECLARE @PreviewSidebarState varchar(5000) SELECT @PreviewSidebarState = [Value] FROM [dbo].[UserSettings] WHERE [Handler] = @HandlerCode AND [Key] = 'kaas_sidebar_tab_state'; DECLARE @FetchScrollPageSizeValue INT SELECT @FetchScrollPageSizeValue = CAST([Value] AS INT) FROM [dbo].[UserSettings] WHERE [Handler] = @HandlerCode AND [Key] = 'FetchScrollPageSizeValue'; -- DECLARE VARIABLES TO STORE DEFAULT ROUTE AND NEW CASE WIZARD SKIP DECLARE @DefaultRoute VARCHAR(50), @SkipCaseWizard VARCHAR(50); SELECT @DefaultRoute = [Value] FROM [dbo].[UserSettings] WHERE [Handler] = @HandlerCode AND [Key] = 'DefaultRouteNavigationClientCase'; SELECT @DefaultRoute = ISNULL(@DefaultRoute, 'case-diary') SELECT @SkipCaseWizard = [Value] FROM [dbo].[UserSettings] WHERE [Handler] = @HandlerCode AND [Key] = 'NewMatterWizardDontShowWelcomeScreen'; SELECT @SkipCaseWizard = ISNULL(RTRIM(LTRIM(@SkipCaseWizard)), 'False') -- User preference for KAAS Web Current Theme DECLARE @CurrentTheme varchar(50) SELECT @CurrentTheme = [Value] FROM [dbo].[UserSettings] WHERE [Handler] = @HandlerCode AND [Key] = 'CurrentTheme'; DECLARE @COMMAND NVARCHAR(MAX) SET @COMMAND = 'SELECT HLO.[HANDLER] AS [Handler], RTRIM(ISNULL(HAN.[NAME], '''')) AS [Name], RTRIM(ISNULL(HAN.[Email], '''')) AS [Email], RTRIM(ISNULL(HAN.[DELEGATE], '''')) AS [Delegate], REPLACE(ISNULL(RETIRED,''N''),'' '',''N'') AS [Retired], CASE WHEN RTRIM(ISNULL(HAN.[TYPE], '''')) = ''P'' THEN CONVERT(BIT, 1) WHEN RTRIM(ISNULL(HAN.[CODE], '''')) = ''ADM'' THEN CONVERT(BIT, 1) ELSE CONVERT(BIT, 0) END AS [IsPartner], ISNULL(GM.[BitWiseID], [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(HAN.[CODE], '''')))) AS [BitWiseId], UPPER(ISNULL(HAN.AutoLaunchTimer, ''N'')) AS [AutoLaunchTimer], ISNULL([HAN].[TEAM], '''') AS [Team], ISNULL([HAN].[Dept], '''') AS [Department]' SET @COMMAND = @COMMAND + ', HLO.[Date] + '+ CONVERT(VARCHAR(5),ISNULL(@PasswordExpiryDate,'60')) +' AS [Date], ISNULL(HAN.[TYPE], '''') AS [Type], ' + CONVERT(VARCHAR(5),ISNULL(@UserDefaultPageSize,10)) + ' as UserDefaultPageSize , ''' + CONVERT(VARCHAR(300), ISNULL(@UserFavourites, '')) + ''' as UserFavourites , ''' + CONVERT(VARCHAR(500), ISNULL(@TimerSettings, '')) + ''' as TimerSettings , ''' + CONVERT(VARCHAR(2), ISNULL(@DefaultVATCode, '')) + ''' as DefaultVAT , ''' + CONVERT(VARCHAR(2), ISNULL(@DefaultExcludeVATCode, '')) + ''' as VATExclude, CONVERT(INT,' + CONVERT(VARCHAR(100), ISNULL(@DayBookValue, '0')) + ') AS DayBookValue, CONVERT(INT,' + CONVERT(VARCHAR(500), ISNULL(@MaxDayBookValue, '0')) + ') AS MaxDayBookValue, ''' + CONVERT(VARCHAR(500), ISNULL(@SidePanelState, '')) + ''' AS SidePanelState, ''' + CONVERT(VARCHAR(500), ISNULL(@PreviewSidebarState, '')) + ''' AS PreviewSidebarState, CONVERT(INT,' + CONVERT(VARCHAR(500), ISNULL(@FetchScrollPageSizeValue, '0')) + ') AS FetchScrollPageSizeValue, ''' + CONVERT(VARCHAR(500), ISNULL(@DefaultRoute, '')) + ''' AS DefaultRouteNavigationClientCase, ''' + CONVERT(VARCHAR(500), ISNULL(@SkipCaseWizard, '')) + ''' AS NewMatterWizardDontShowWelcomeScreen, ''' + CONVERT(VARCHAR(500), ISNULL(@CurrentTheme, '')) + ''' AS CurrentTheme FROM [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[HandlerNETLogons] HLO ON HLO.[HANDLER] = HAN.[CODE] LEFT OUTER JOIN [dbo].[HandlerNETGroupMembership] GM ON GM.[HANDLER] = HAN.[CODE] WHERE HAN.[CODE] = ''' + Replace(@HandlerCode, '''', '''''') + ''''; EXEC sp_executesql @COMMAND; END GO IF OBJECT_ID(N'[KAAS_GETHandlerRate]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_GETHandlerRate] GO CREATE PROC [KAAS_GETHandlerRate] (@HandlerCode VARCHAR(10) ) AS /******************************************************************************************************* * Used to Get new Handler Rate. * * * * Stored Procedure Name : [dbo].[KAAS_GETHandlerRate] * * Copied from : [dbo].[ky_NETGETHandlerRate] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT ISNULL(RATE,0) AS Rate FROM Handlers WHERE CODE=@HandlerCode END GO IF OBJECT_ID(N'KAAS_GetHandlerSettings', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetHandlerSettings] END GO CREATE PROCEDURE [dbo].[KAAS_GetHandlerSettings] ( @HandlerCode VARCHAR(10) ) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_GetHandlerSettings] * * Copied from : NA * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2022-01-06 Aakif Modified SP to return handler info along with timezone setting * * 2022-01-11 Aakif Modified SP to return all handlers info along with timezone setting * * 2022-10-06 Sadiq Modified SP to return Retired handlers also to sync retired handlers * Functionality * *******************************************************************************************************/ BEGIN SET NOCOUNT ON -- RETURN HANDLER DETAIL IF CODE IS PROVIDED IF(ISNULL(@HandlerCode, '') <> '') BEGIN SELECT RTRIM([HAN].[TEAMCODE]) AS [TEAMCODE], RTRIM([HAN].[CODE]) AS [Code], RTRIM([HAN].[NAME]) AS [Name], RTRIM(ISNULL([HAN].[TEAM], '')) AS [Team], [HAN].[RATE] AS [Rate], CASE WHEN ISNULL([HAN].[RETIRED], 'N') = 'Y' THEN 'Y' ELSE 'N' END AS [Retired], RTRIM(ISNULL([HAN].[EMAIL], '')) AS [Email], RTRIM(ISNULL([HAN].[SIGNATURE], '')) AS [Signature], ISNULL([ST].[Value], 'GMT Standard Time') AS [TimerSettings] -- HANDLER'S TIMEZONE FROM [dbo].[Handlers] [HAN] LEFT JOIN ( SELECT [US].[Value], [US].[Handler] FROM [dbo].[UserSettings] [US] WHERE [US].[Handler] = @HandlerCode AND [US].[Key] = 'TimeZone') [ST] ON [ST].[Handler] = [HAN].[CODE] WHERE [HAN].[CODE] = @HandlerCode END ELSE BEGIN SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [Handler], RTRIM(ISNULL(HAN.[NAME], '')) AS [Name], RTRIM(ISNULL(HAN.[TEAM], '')) AS [TeamCode], RTRIM(ISNULL(HAN.[EXCHANGEALIAS], '')) AS [EXCHANGEALIAS], CASE WHEN RTRIM(ISNULL(HAN.[Retired], 'Y')) = 'Y' THEN 'Y' ELSE 'N' END AS [RETIRED], RTRIM(ISNULL(FEC.[BRANCH], ISNULL(FEC2.[BRANCH], ''))) AS [BRANCH], RTRIM(ISNULL(FEC.[NominalCode], ISNULL(FEC2.[NOMINAL], ''))) AS [NOMINAL], RTRIM(ISNULL(HAN.[EMAIL], '')) AS [Email], RTRIM(ISNULL(TEA.[NAME], '')) AS [Team], dbo.KAAS_FNGetHandlerTimeZone([HAN].[CODE]) AS [TimerSettings], -- HANDLER'S TIMEZONE CASE WHEN ISNULL(FEC.[CODE], FEC2.[CODE]) IS NULL THEN CONVERT(BIT, 0) WHEN RTRIM(ISNULL(FEC.[Retired], ISNULL(FEC2.[Retired], 'Y'))) = 'Y' THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsFeeEarner], CASE WHEN RTRIM(ISNULL(HAN.[TYPE], '')) = 'P' THEN CONVERT(BIT, 1) ELSE CONVERT(BIT, 0) END AS [IsPartner], CASE WHEN ISNULL(FEC.[CODE], FEC2.[CODE]) IS NULL THEN CONVERT(BIT, 0) WHEN RTRIM(ISNULL(FEC.[Retired], ISNULL(FEC2.[Retired], 'Y'))) = 'Y' THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsFeeEarnerBit], CASE WHEN RTRIM(ISNULL(HAN.[TYPE], '')) = 'P' THEN CONVERT(BIT, 1) ELSE CONVERT(BIT, 0) END AS [IsPartnerBit] FROM [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC ON FEC.[CODE] = HAN.[CODE] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC2 ON FEC2.[CODE] = HAN.[MAILADDRESS] LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] WHERE ISNULL(HAN.[RETIRED], '') <> '' ORDER BY RTRIM(ISNULL(HAN.[NAME], '')) END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_GetHandlersLookupList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetHandlersLookupList] END GO CREATE PROCEDURE [dbo].[KAAS_GetHandlersLookupList] AS /******************************************************************************************************* * This sp is used to get handlers list for task page. * * * * Stored Procedure Name : [dbo].[KAAS_GetHandlersLookupList] * * Copied from : [dbo].[ky_NETGetHandlersLookupList] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [CODE], RTRIM(ISNULL(HAN.[NAME], '')) AS [NAME], RTRIM(ISNULL(HAN.[TEAM], '')) AS [TEAM], RTRIM(ISNULL(HAN.[LOGON], '')) AS [LOGON], RTRIM(ISNULL(HAN.[EXCHANGEALIAS], '')) AS [EXCHANGEALIAS], RTRIM(ISNULL(HAN.[RETIRED], '')) AS [RETIRED] , RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) AS [TEAMCODE] FROM [dbo].[Handlers] HAN WHERE ISNULL(HAN.[RETIRED], 'N') <> 'Y' --AND ISNULL(TEAMCODE,'N') = 'N' 2016-10-13 do not reinstate ORDER BY RTRIM(ISNULL(HAN.[CODE], '')) END GO IF OBJECT_ID(N'KAAS_GetHandlersResource', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetHandlersResource] END GO CREATE PROCEDURE [dbo].[KAAS_GetHandlersResource] ( @CODE VARCHAR(15), @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INt = NULL) AS /************************************************************************************************************************* * To fetch the handler resource list available from the database excluding the currently logged in user * * * * Stored Procedure Name : [dbo].[KAAS_GetHandlersResource] * * Copied from : [dbo].[ky_NETGetHandlersResource] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2019-08-05 Vinodhan K Modifed to list the handler list by recently selected handlers by the logged in user * *************************************************************************************************************************/ BEGIN DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT RTRIM(A.CODE) AS CODE, RTRIM(A.TEAM) AS TEAM, RTRIM(A.TEAMCODE) AS TEAMCODE, RTRIM(A.[NAME]) AS [NAME], RTRIM(A.LOGON) AS LOGON, RTRIM(A.EXCHANGEALIAS) AS EXCHANGEALIAS, RTRIM(A.RETIRED) AS RETIRED, RTRIM(B.HANDLER) AS HANDLER, RTRIM(B.NOOUTSTANDACTIONS) AS NOOUTSTANDACTIONS, RTRIM(A.DEFAULTTASK) AS DEFAULTTASK, C.AccessedTime AS AccessedTime FROM Handlers A LEFT JOIN NoOverDueTasks B ON A.CODE = B.HANDLER LEFT JOIN RecentHandlerList C ON C.Code = A.CODE AND C.AccessedBy = @CODE WHERE ( A.CODE LIKE '%' + @SearchText + '%' OR A.[NAME] LIKE '%' + @SearchText + '%' ) AND A.RETIRED <> 'Y' AND A.CODE <> @CODE) AS FoundTable ORDER BY FoundTable.AccessedTime DESC, CODE ASC SELECT * FROM #FoundTable A WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #FoundTable END GO IF EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO WHERE SO.[name] = N'KAAS_GetAccountsMenuList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetAccountsMenuList] END GO IF EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO WHERE SO.[name] = N'KAAS_GetKeyhouseMenuList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetKeyhouseMenuList] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[KAAS_GetKeyhouseMenuList] ( @HandlerCode VARCHAR(10), @Mode VARCHAR(10), @ApplType VARCHAR(10) = 'SAM' ) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_GetKeyhouseMenuList] * * Description: To get SAM and CASE menu List * * * * Modification History: * * 2023-12-28 Balamurugan C Created * * 2024-01-09 Balamurugan C Added column of MenuOpenNewTab * * 2024-01-09 Sadiq Basha N Added column of MenuOpenDialogBox * * 2024-01-17 Balamurugan C Changed Order By logic * * 2024-01-22 Balamurugan C Fetch Handler Supervior Key * * 2024-02-13 Balamurugan C Modified : Remove the menu from list when view access set * to false (Removed the write or read access conition) * * 2024-04-04 Balamurugan C Modified : Added the new logic in menu master table to * fetch the case management menus * Note: Changed the SP name from KAAS_GetAccountsMenuList to * KAAS_GetKeyhouseMenuList because both case and SAM menu's * handled * * 2024-04-29 Balamurugan C Modified : Added the dashboard menu code to remove from * user access list * *******************************************************************************************************/ BEGIN IF(@ApplType = 'SAM') BEGIN SELECT * FROM ( SELECT [AMM].[MenuId] AS [MenuId], [AMM].[MenuName] AS [MenuName], [AMM].[MenuParentId] AS [MenuParentId], [AMM].[MenuRoute] AS [MenuRoute], [AMM].[MenuIconName] AS [MenuIconName], [AMM].[MenuCode] AS [MenuCode], [AMM].[MenuOrder] AS [MenuOrder], [AMM].[MenuOpenNewTab] AS [MenuOpenNewTab], [AMM].[MenuOpenDialogBox] AS [MenuOpenDialogBox], ISNULL([HMP].[HandlerPermissionMapId],0) AS [HandlerPermissionMapId], CASE WHEN ( SELECT COUNT([SHMP].MenuId) FROM [dbo].[HandlerMenuPermissionMap] [SHMP] WHERE [SHMP].[HandlerCode] = @HandlerCode ) > 0 THEN CASE WHEN [HMP].[ReadAccess] IS NULL THEN 1 ELSE [HMP].[ReadAccess] END ELSE 1 END AS [ReadAccess], CASE WHEN ( SELECT COUNT([SHMP].MenuId) FROM [dbo].[HandlerMenuPermissionMap] [SHMP] WHERE [SHMP].[HandlerCode] = @HandlerCode ) > 0 THEN CASE WHEN [HMP].[WriteAccess] IS NULL THEN 0 ELSE [HMP].[WriteAccess] END ELSE 0 END AS [WriteAccess] FROM [dbo].[KeyhouseMenuList] [AMM] LEFT JOIN [dbo].[HandlerMenuPermissionMap] [HMP] ON [HMP].MenuId = [AMM].MenuId AND [HMP].[HandlerCode] = @HandlerCode WHERE [AMM].MenuIsActive = 1 AND [AMM].[MenuApplicationType] = 'A' ) FA WHERE (@Mode = 'Menu' AND (FA.ReadAccess = 1)) OR (@Mode <> 'Menu' AND FA.MenuCode NOT IN ('DASHBOARD','VIEW_DASHBOARD','USER_ACCESS')) ORDER BY CASE WHEN FA.[MenuParentId] = 0 THEN 0 ELSE 1 END, -- Rows with MenuParentId = 0 come first FA.[MenuParentId] ASC, FA.[MenuOrder] ASC; END IF(@ApplType ='CASE') BEGIN SELECT * FROM ( SELECT [AMM].[MenuId] AS [MenuId], [AMM].[MenuName] AS [MenuName], [AMM].[MenuParentId] AS [MenuParentId], [AMM].[MenuRoute] AS [MenuRoute], [AMM].[MenuIconName] AS [MenuIconName], [AMM].[MenuCode] AS [MenuCode], [AMM].[MenuOrder] AS [MenuOrder], [AMM].[MenuOpenNewTab] AS [MenuOpenNewTab], [AMM].[MenuOpenDialogBox] AS [MenuOpenDialogBox], ISNULL([HMP].[HandlerPermissionMapId],0) AS [HandlerPermissionMapId], CASE WHEN ( SELECT COUNT([SHMP].MenuId) FROM [dbo].[HandlerMenuPermissionMap] [SHMP] WHERE [SHMP].[HandlerCode] = @HandlerCode ) > 0 THEN CASE WHEN [HMP].[ReadAccess] IS NULL THEN 1 ELSE [HMP].[ReadAccess] END ELSE 1 END AS [ReadAccess], CASE WHEN ( SELECT COUNT([SHMP].MenuId) FROM [dbo].[HandlerMenuPermissionMap] [SHMP] WHERE [SHMP].[HandlerCode] = @HandlerCode ) > 0 THEN CASE WHEN [HMP].[WriteAccess] IS NULL THEN 0 ELSE [HMP].[WriteAccess] END ELSE 0 END AS [WriteAccess] FROM [dbo].[KeyhouseMenuList] [AMM] LEFT JOIN [dbo].[HandlerMenuPermissionMap] [HMP] ON [HMP].MenuId = [AMM].MenuId AND [HMP].[HandlerCode] = @HandlerCode WHERE [AMM].MenuIsActive = 1 AND [AMM].[MenuApplicationType] = 'C' ) FA WHERE (@Mode = 'Menu' AND (FA.ReadAccess = 1)) OR (@Mode <> 'Menu' AND FA.MenuCode NOT IN ('CASE_USER_ACCESS','TASKS_DASHBOARD','CLIENTCASEDASHBOARD')) ORDER BY CASE WHEN FA.[MenuParentId] = 0 THEN 0 ELSE 1 END, -- Rows with MenuParentId = 0 come first FA.[MenuParentId] ASC, FA.[MenuOrder] ASC; END --Fetch Handler Code Supervisor Key SELECT [Supervisor] FROM [dbo].[HandlerNETLogons] WHERE [HANDLER] = @HandlerCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetKYCDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetKYCDetails] END GO CREATE PROCEDURE [dbo].[KAAS_GetKYCDetails] (@CLIENTCODE VARCHAR(10), @Handler VARCHAR(10)) AS /******************************************************************************************************************** * * [dbo].[ky_NETGetKYCDetails] * * KY_NETGetKYCDetails 'AAA002' * * This Procedure is used to get KYC details for the given client code. * * Modification History * 2015-09-30 Sridharan KEYD - 2696 - Know your Client (Money Laundering Tab) * 2015-10-05 Sridharan KEYD - 2777 - Know your Client General Tab * 2015-10-13 Sridharan KEYD - 2804 - Change the KYC Activity to show * the last 400 items in the diary for this client * 2016-01-19 Magesh KEYD - 3072 - All the UDF fields in the forms needs to be displayed * in the Default view (At present only the filled forms * are displayed in the Default view). * 2016-01-20 Sridharan KEYD - 3080 - KNY Last Activity * 2016-04-07 Pino KEYD - 3497 - Tidy up, add @Handler to allow for restricting matter access * 2016-04-07 Pino KEYD - 3499 - Number of matters this year should be for financial year * 2016-05-24 Suriya M KEYD - 3459 - AML Changes * 2016-07-19 Pino KEYD - 3704 - Use SYNOPSIS from Case Diary - taken calculation from Case Diary SP * 2016-07-27 Pino KEYD - 3872 - Efficiency and Performance improvements * 2016-09-16 Suriya KEYD-4045-Urgent: The UDF vales for the TEXT fields are not working properly * 2016-09-28 John KEYD - 4099 - Added case sensitive alias to [CASECODE] column in Table 4 * 2016-10-13 Sridharan KEYD-4150: Currency format changes * 2017-11-28 Arun KEYD-4891-Change the AML Warning on a client to RED . * 2017-11-28 Arun KEYD-4891-Change the AML Warning on a client to RED . * 2018-02-09 John KEYD-5010 - Open matters now exclude admin matters (0000) to be consistent with KYC Financial * 2018-02-09 John Changed how the start of year date is calculated. Using the same method as in ky_NETSPGetKYCFinancial * 2018-06-07 Pino Carafa Replaced code for Table 2 with a call to [dbo].[ky_NETSPGetNotificationApprovalData] * so that other pages that need this info can call that procedure alone, rather than * getting ALL this information for no good reason * 2018-06-13 John Ginnane KEYD-5306 - Fixed non-numeric matter values causing errors * 2018-09-21 Pino Carafa KEYD-5377 - Implement the From/To Synopsis functionality as per the Case Diary * 2018-08-20 John Ginnane KEYD-6073 - Now including admin matters (0000), but excluding them from the count * 2019-10-15 Rajesh Copied from KY_NETGetKYCDetails ********************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @BitWiseID BIGINT SELECT @BitWiseID = [HNG].[BitWiseID] FROM [dbo].[HandlerNETGroupMembership] [HNG] WITH (NOLOCK) WHERE [HNG].[HANDLER] = CONVERT(VARCHAR(10), @Handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@Handler, '')))) IF (@Handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END DECLARE @STARTOFYEAR DATETIME DECLARE @ISSAM4 BIT DECLARE @NCOMMAND NVARCHAR(MAX) SELECT @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 0 BEGIN SET @NCOMMAND = N'SELECT TOP 1 @STARTOFYEAR = DATEADD(M, -[CURPER], DATEADD(D, [PERIODEND] + 1, ''18001228'')) FROM [dbo].[control]' END ELSE BEGIN SET @NCOMMAND = N'SELECT TOP 1 @STARTOFYEAR = [DateValue] FROM [dbo].[CtrlDate] WHERE [Code] = ''StartofYear''' END EXEC sp_executesql @NCOMMAND, N'@STARTOFYEAR DATETIME OUTPUT', @STARTOFYEAR OUTPUT DECLARE @OPENMATTERS AS INT DECLARE @OPENMATTERSFORTHISYEAR AS INT DECLARE @LASTACTIVITYDATE AS VARCHAR(20) DECLARE @LASTMATTERSTARTEDDATE AS DATETIME DECLARE @LASTMATTERDESC AS VARCHAR(1000) Declare @matterCode as varchar(20) DECLARE @MATA TABLE ([Code] VARCHAR(20) NOT NULL PRIMARY KEY, [Started] DATETIME NOT NULL, [Closed] BIT NOT NULL, [AdminMatter] BIT NOT NULL, UNIQUE NONCLUSTERED ([Closed], [Code])) DECLARE @MATO TABLE ([Code] VARCHAR(20) NOT NULL PRIMARY KEY, [Started] DATETIME NOT NULL, UNIQUE NONCLUSTERED ([Started], [Code])) DECLARE @KYC TABLE ([ActionID] INT NOT NULL PRIMARY KEY) DECLARE @DTP TABLE ([ActionID] INT NOT NULL PRIMARY KEY, [ActionType] CHAR(1) NOT NULL, UNIQUE NONCLUSTERED ([ActionType], [ActionID])) DECLARE @DIA TABLE ([ActionID] INT NOT NULL PRIMARY KEY, [Date] DATETIME NOT NULL, UNIQUE NONCLUSTERED ([Date], [ActionID])) INSERT INTO @MATA ([Code], [Started], [Closed], [AdminMatter]) SELECT [MAT].[Code], [MAT].[Started], [MAT].[Closed], CASE WHEN PATINDEX('%[1-9]%', [MAT].[Matter]) > 1 THEN 0 ELSE 1 END FROM [dbo].[SearchMatters] [MAT] WITH (NOLOCK) WHERE [MAT].[ClientCode] = @CLIENTCODE AND ( [MAT].[Privileges] = CONVERT(BIGINT, -1) OR [MAT].[Privileges] & @BitWiseID <> 0) AND PATINDEX('%[^0-9]%', [MAT].[Matter]) = 0 /* No non-numeric matters */ INSERT INTO @MATO ([Code], [Started]) SELECT [MAT].[Code], [MAT].[Started] FROM @MATA [MAT] WHERE [MAT].[Closed] = 0 AND [MAT].[AdminMatter] = 0 INSERT INTO @KYC ([ActionID]) SELECT [DIA].[ACTIONID] FROM @MATA [MAT] INNER JOIN [dbo].[diary] [DIA] WITH (NOLOCK) ON [DIA].[CASECODE] = [MAT].[Code] AND [DIA].[KYC] = 'Y' INSERT INTO @DTP ([ActionID], [ActionType]) SELECT [DIA].[ACTIONID], CASE ISNULL([DIA].[ActionType], ' ') WHEN 'K' THEN 'K' WHEN 'I' THEN 'I' ELSE ' ' END FROM @MATA [MAT] INNER JOIN [dbo].[diary] [DIA] WITH (NOLOCK) ON [DIA].[CASECODE] = [MAT].[Code] AND [DIA].[ACTIONTYPE] IN ('K', 'I') INSERT INTO @DIA ([ActionID], [Date]) SELECT TOP 400 [DIA].[ACTIONID], [DIA].[Date] FROM @MATA [MAT] INNER JOIN [dbo].[diary] [DIA] WITH (NOLOCK) ON [DIA].[CASECODE] = [MAT].[Code] ORDER BY [DIA].[Date] DESC SELECT @OPENMATTERS = COUNT(1) FROM @MATO [MAT] SELECT @OPENMATTERSFORTHISYEAR = COUNT(1) FROM @MATO [MAT] WHERE [MAT].[Started] >= @STARTOFYEAR SELECT TOP 1 @LASTACTIVITYDATE = CONVERT(VARCHAR(11), DIA.[DATE], 113) FROM @MATO [MAT] INNER JOIN [dbo].[diary] [DIA] WITH (NOLOCK) ON [DIA].[CASECODE] = [MAT].[Code] ORDER BY [DIA].[Date] DESC SELECT TOP 1 @matterCode = [MATO].[Code], @LASTMATTERSTARTEDDATE = CONVERT(VARCHAR(11), MAT.[Started], 113), @LASTMATTERDESC = RTRIM(ISNULL(MAT.[Description], '')) FROM @MATO [MATO] INNER JOIN [dbo].[matters] [MAT] WITH (NOLOCK) ON [MAT].[Code] = [MATO].[Code] ORDER BY [MATO].[Started] DESC -- TABLE 0 SELECT @matterCode AS [Matter_Code], @OPENMATTERS AS [NO_OPEN_MATTERS], @OPENMATTERSFORTHISYEAR AS [OPEN_MATTERS_YEAR], @LASTACTIVITYDATE AS [LAST_ACTIVITY_DATE], @LASTMATTERSTARTEDDATE AS [LAST_MATTER_STARTED_DATE], @LASTMATTERDESC AS [LAST_MATTER_DESCPRITION] -- TABLE 1 SELECT [CC].[CONTACT] AS [CONTACT], [CC].[CATEGORYTYPE] AS [Code], [CC].[CATEGORY] AS [CategoryType], [CC].[DATE] AS [DATE], [CC].[RECORDID] AS [RECORDID], [CAT].[Desc$] AS [CDescription], [CTP].[Description] AS [Description], [CC].[FIELDVALUE1] AS [FIELDVALUE1], [CC].[FIELDVALUE2] AS [FIELDVALUE2], [CC].[FIELDVALUE3] AS [FIELDVALUE3], [CC].[FIELDVALUE4] AS [FIELDVALUE4], [CC].[FIELDVALUE5] AS [FIELDVALUE5], [CC].[FIELDVALUE6] AS [FIELDVALUE6], [CC].[FIELDVALUE7] AS [FIELDVALUE7], [CC].[FIELDVALUE8] AS [FIELDVALUE8], [CC].[FIELDVALUE9] AS [FIELDVALUE9], [CC].[FIELDVALUE10] AS [FIELDVALUE10] FROM [dbo].[ContactCategories] [CC] WITH (NOLOCK) INNER JOIN [dbo].[Category] [CAT] WITH (NOLOCK) ON [CAT].[CatType] = [CC].[CATEGORYTYPE] AND [CAT].[Code] = [CC].[CATEGORY] INNER JOIN [dbo].[CategoryType] [CTP] WITH (NOLOCK) ON [CTP].[CategoryType] = [CC].[CATEGORYTYPE] WHERE [CC].[CONTACT] = @CLIENTCODE -- order by [Code] DESC,[CategoryType] --TABLE 2 --KYC Money Laundering clearance tab details EXEC [dbo].[KAAS_GetNotificationApprovalData] NULL, @CLIENTCODE --TABLE 3 SELECT CASE WHEN DIA.[ACTIONTYPE] = 'K' THEN 'Photo ID' ELSE 'Non Photo ID' END AS [Type], CASE WHEN ISNULL(DIA.[SUBJECT],'') = '' THEN ISNULL(DIA.[DisplayText], '') ELSE DIA.[SUBJECT] END AS [Proof], MAT.[Matter] AS [Matter], DIA.[Date] AS [Date], DIA.[fncode] AS [InputBy], DIA.[ACTIONID] AS [ActionId], DIA.[FNCODE] AS [Fncode], MAT.[Code] FROM @DTP [DTP] INNER JOIN [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CASECODE] ON [DIA].[ACTIONID] = [DTP].[ActionID] --TABLE 4 --KYC Activity Tab details DECLARE @ShowFromToSynopsis BIT SET @ShowFromToSynopsis = CASE WHEN ISNULL((SELECT TOP 1 [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'ShowFromToSynopsis'), 'True') = 'False' THEN 0 ELSE 1 END SELECT CAST(CASE WHEN RTRIM(ISNULL(DIA.[ACTIONTYPE],'')) ='E' AND @ShowFromToSynopsis = 1 THEN CASE WHEN ISNULL(DIA.[PROCESSTYPE],'O')='I' THEN 'Email From:' + (RTRIM(ISNULL(CAST(DIA.[EMAILADDRESS] AS VARCHAR(300)), ''))) + ' - ' + ISNULL(CAST (DIA.[Subject] AS VARCHAR(300)),'') ELSE 'Email To:' + RTRIM(CAST(ISNULL(DIA.[AddressTo], '') AS VARCHAR(300))) + ' - ' + ISNULL(CAST(DIA.[Subject] AS VARCHAR(300)), '') END ELSE CASE WHEN DATALENGTH(DIA.[SUBJECT]) = 0 THEN CASE WHEN SUBSTRING(DIA.[DisplayText], 0, CHARINDEX(CHAR(13), DIA.[DisplayText])) = '' THEN ISNULL(DIA.[TEXT1], '') ELSE SUBSTRING(DIA.[DisplayText], 0, CHARINDEX(CHAR(13), DIA.[DisplayText])) END WHEN RTRIM(CAST(DIA.[SUBJECT] AS VARCHAR(300))) = '' THEN CASE WHEN SUBSTRING(DIA.[DisplayText], 0, CHARINDEX(CHAR(13), DIA.[DisplayText])) = '' THEN ISNULL(DIA.[TEXT1], '') ELSE SUBSTRING(DIA.[DisplayText], 0, CHARINDEX(CHAR(13), DIA.[DisplayText])) END WHEN DIA.[SUBJECT] IS NULL THEN CASE WHEN SUBSTRING(DIA.[DisplayText], 0, CHARINDEX(CHAR(13), DIA.[DisplayText])) = '' THEN ISNULL(DIA.[TEXT1], '') ELSE SUBSTRING(DIA.[DisplayText], 0, CHARINDEX(CHAR(13), DIA.[DisplayText])) END ELSE DIA.[SUBJECT] END END AS VARCHAR(300)) AS [Other_Documents], ISNULL(RTRIM(MAT.[Matter]), '') AS [Matter], DIA.[Date] AS [Date_Entered], ISNULL(RTRIM(MAT.[FECode]), '') AS [FeeEarner], ISNULL(RTRIM(DIA.[FNCODE]), '') AS [Handler], DIA.[ACTIONID] AS [ActionId], DIA.[CASECODE] AS [CaseCode] FROM @KYC [KYC] INNER JOIN [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CASECODE] ON [DIA].[ACTIONID] = [KYC].[ActionID] --TABLE 5 -- Client Other Details SELECT RTRIM(ISNULL(UFC.[UDFCategory], '')) AS [GroupName], RTRIM(T.[PROMPT]) AS [Detail], RTRIM(CUDF.[DateValue]) AS [DateValue], CASE RTRIM(T.[VALIDATION]) WHEN 'L' THEN CONVERT(VARCHAR(MAX), RTRIM(ISNULL(CUDF.[TEXT1], ''))) + ' - ' + (SELECT RTRIM(ISNULL(UDFLookups.[DESCRIPTION], '')) FROM UDFLookups WHERE UDFLookups.[FIELDNAME] = T.[FIELDNAME] AND UDFLookups.[CODE] = CONVERT(VARCHAR(MAX), CUDF.[TEXT1])) WHEN 'R' THEN CONVERT(VARCHAR(200),RTRIM(ISNULL(CUDF.[TEXT1], ''))) WHEN 'T' THEN CONVERT(VARCHAR(200),RTRIM(ISNULL(CUDF.[TEXT1], ''))) ELSE Case RTRIM(T.[TYPE]) WHEN 'Text' THEN --(CASE WHEN CONVERT(VARCHAR(200), RTRIM(ISNULL(CUDF.[TEXT1], '')))='' --THEN '' -- ELSE CONVERT(VARCHAR(200), RTRIM(ISNULL(CUDF.[TEXT1], ''))) -- END) WHEN 'Numeric' THEN --(CASE WHEN T.[DECMIAL] = 0 -- THEN CONVERT(VARCHAR(20), -- CONVERT(DECIMAL(18, 0), -- CUDF.[NumberValue])) -- WHEN T.[DECMIAL] = 1 -- THEN CONVERT(VARCHAR(20), -- CONVERT(DECIMAL(18, 1), -- CUDF.[NumberValue])) -- WHEN T.[DECMIAL] = 2 -- THEN CONVERT(VARCHAR(20), -- CONVERT(DECIMAL(18, 2), -- CUDF.[NumberValue])) END) CONVERT(VARCHAR(20),cast(CUDF.NumberValue AS MONEY ),1) WHEN 'Date' THEN CASE WHEN CONVERT(VARCHAR(20), CUDF.[DateValue], 112) = '19000101' THEN '' ELSE CONVERT(VARCHAR(20), CUDF.[DateValue], 106) END ELSE CONVERT(VARCHAR(200), RTRIM(ISNULL(CUDF.[TEXT1], ''))) END END AS [Value], RTRIM(ISNULL(CUDF.[NumberValue], 0)) AS [NumberValue], RTRIM(ISNULL(CUDF.[TEXT1], '')) AS [TEXT1], RTRIM(T.[TYPE]) AS [TYPE], RTRIM(ISNULL(CUDF.[SEQNO], 0)) AS [SEQNO], RTRIM(T.[FILEPREFIX]) AS [FILEPREFIX], RTRIM(T.[FIELDNAME]) AS [FIELDNAME], RTRIM(ISNULL(T.[UDFCategory], 0)) AS [UDFCategory], CASE WHEN RTRIM(ISNULL(CUDF.[ForCopy], 0)) = '1' THEN 'True' ELSE 'False' END AS [ForCopy], T.[DECMIAL] AS [DECMIAL], T.[LENGTH] AS [LENGTH] FROM (SELECT SUDF.[FIELDNAME], SUDF.[FILEPREFIX], SUDF.[VALIDATION], SUDF.[PROMPT], SUDF.[DECMIAL], SUDF.[TYPE], SUDF.[UDFCategory], SUDF.[LENGTH] FROM [dbo].[ClientUDFFormParameters] CUFP INNER JOIN [dbo].[SystemUserDefinedFields] SUDF ON SUDF.[FILEPREFIX] = CUFP.[UDFPrefix] AND SUDF.[FIELDNAME] = CUFP.[UDFName] AND CUFP.[UDFFormID] IN (SELECT [FormID] FROM [dbo].[ClientUDFForms] WHERE [ClientCode] = @clientCode) UNION SELECT SUDF.[FIELDNAME], SUDF.[FILEPREFIX], SUDF.[VALIDATION], SUDF.[PROMPT], SUDF.[DECMIAL], SUDF.[TYPE], SUDF.[UDFCategory], SUDF.[LENGTH] FROM [dbo].[ClientUDFAnswers] CUDF INNER JOIN [dbo].[SystemUserDefinedFields] SUDF ON SUDF.[FILEPREFIX] = CUDF.[UDFFILE] AND SUDF.[FIELDNAME] = CUDF.[UDFNAME] WHERE CUDF.[ClientCode] = @clientCode) T LEFT OUTER JOIN [dbo].[ClientUDFAnswers] CUDF ON CUDF.[UDFNAME] = T.[FIELDNAME] AND CUDF.[UDFFILE] = T.[FILEPREFIX] AND CUDF.[ClientCode] = @clientCode LEFT OUTER JOIN [dbo].[UDFCategory] UFC ON UFC.[ID] = T.[UDFCategory] ORDER BY CUDF.[SEQNO] SELECT ISNULL(RTRIM(DIA.[DisplayText]), '') AS [Other_Documents], ISNULL(RTRIM(MAT.[Matter]), '') AS [Matter], DIA.[Date] AS [Date_Entered], ISNULL(RTRIM(MAT.[FECode]), '') As [FeeEarner], ISNULL(RTRIM(DIA.[FNCODE]), '') AS [Handler], DIA.[ACTIONID] AS [ActionId], DIA.[CASECODE] AS [CaseCode], MAT.[Description] AS [Description] FROM @DIA [DIAA] INNER JOIN [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CASECODE] ON [DIA].[ACTIONID] = [DIAA].[ActionID] ORDER BY [DIAA].[Date] DESC OPTION (KEEPFIXED PLAN) SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetKYCFinancial2' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetKYCFinancial2] END GO Create PROCEDURE [dbo].[KAAS_GetKYCFinancial2] ( @TYPE VARCHAR(20), @TARGET VARCHAR(20), @FUNCTION VARCHAR(50), @Handler VARCHAR(10)) AS /********************************************************************************************************* * [dbo].[ky_NETSPGetKYCFinancial2] * Retreieves detailed information for the entries displayed on the Know Your Client page * * @TYPE Values: * * CLIENT - Returns information for client @TARGET * CLIENTGROUP - Returns information for all clients within the client group @TARGET * * @FUNCTION Values: * * OPENMATTER - Lists open matters * DORMANTMATTER - Lists dormant matters (no diary activity in last 90 days) * INVOICEDATEPASSED - Lists matters whose expected bill date has been passed * NOESTIMATEFEE - Lists matters which have no estimated fee * APPROACHINGESTIMATEFEE - Lists matters approaching (e.g. 80% of) estimated fee * APPROACHINGLOCKEDUP - Lists matters whch go beyond the matter lockup limit * NOESTIMATEGIVEN - Lists matters with no section 68 * FEESYTD - Lists invoices posted since start of financial year * FEESLASTQUARTER - Lists invoices posted in the last 90 days * WIP - Lists matters and with WIP time/charge * CURRENTBALANCE - Lists matters and their debt, outlay, and client/deposit balance * DRAFTINVOICES - Lists matters and count and sum of draft invoices * DATELASTBILLED - Lists matters and the date they were last billed * TIMERECLASTMONTH - Lists matters and how much time/charge recorded in the last 30 days * OSINVOICES - Lists matters and their outstanding invoices * CLIENTGROUP - Returns the client group of the given client * PROFITABILITY - Lists all invoices and how much time was billed as a percentage * MATTERLIST - Lists all open matters and some basic information * - No function will list 3 queries which gives you a summary of the above * * 2015-09-15 John - Initial creation * 2015-10-07 John - Added new parameter @MATTER so SP can be run for a single matter * 2015-10-08 John - Now excluding closed matters from "MATTERLIST" function * 2015-10-15 John - Added support for client group * 2015-11-09 John - Fixed the dynamic SQL not generating the list of clients for OSINVOICES function * 2015-11-26 John - Removed the [dbo].[ky_NETFormatFinancial] because the VB.NET will now handle this * 2015-12-03 John - Moved a lot of subqueries into one and joined onto it (e.g. to get matter balances) * Also added WITH(NOLOCK) to the end of FROMs and JOINs * 2015-12-09 John - Applied above changes to SAM3 queries and fixed other minor formatting issues * 2016-03-16 Pino - Remove dashes from VARCHAR datetime values to ensure they are interpreted correctly * in any locale * 2016-04-08 Pino - Add @Handler so we can restrict output for matters the user is not authorised to see * 2016-04-08 Pino - General overhaul. Need to also change it so that SAM4 specific code referencing * transactions is executed as dynamic SQL and ditto for SAM3 code referencing * BatchH etc. While it lets you get away with it because the table doesn't exist, * it still isn't good practice and could possibly lead to problems if future * versions of SQL Server become stricter. * 2016-04-11 Pino - Create @matters table variable to speed up processing significantly * 2016-04-11 Pino - Comparing this procedure to ky_NETDashBoard I notice a few minor discrepancies in * the calculation of certain values (e.g. "WIP"). Let's make sure that the * calculation is always the same. * 2016-04-12 Pino - Exclude "0000" matters * 2016-07-25 John - Matters are now considered dormant if no diary activity in the last 180 days * so it now matches the overview. KEYD-3505 * 2016-07-25 John - Excluding write offs from "Time Recorded in.." to match the dashboard procedure * 2016-08-03 John - Summary now outputs matters started in current financial year, and fees from * current month, and added functions for both of those. * 2016-08-12 John - Updated a lot of invoice calculations to account for credit notes. If item is * is credit note the values are negated. KEYD-3932 * 2016-08-17 John - Fixed outstanding invoices including receipts for SAM3 queries. KEYD-3932 * 2016-08-18 John - Fixed time recorded in the last month excluding billed items for SAM3, as well * as added in additional clause to remove write off items, so the criteria matches * the drilldown for TIMERECLASTMONTH. KEYD-3952 * 2018-02-08 John - Added draft invoices to the output. KEYD-4978 * 2019-10-23 Rajesh -Copied from [dbo].[ky_NETSPGetKYCFinancial2] *********************************************************************************************************/ BEGIN -- PINO 2016-04-11 TO DO: Once support for SQL2005 ends we can use a Table Type for the list of matters, -- and this will speed up things a good bit. See also my comment of 2016-04-08. -- let's refrain from doing further dynamic SQL until that point. SET NOCOUNT ON DECLARE @YEARSTART DATETIME DECLARE @PERIODSTART DATETIME DECLARE @ISSAM4 INT DECLARE @SQL NVARCHAR(MAX) DECLARE @MATTER VARCHAR(20) DECLARE @CLIENTS TABLE ([ID] INT IDENTITY(1, 1), [CLIENT] VARCHAR(20) PRIMARY KEY) DECLARE @Codes VARCHAR(MAX) DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @EstFeeWarningLimit DECIMAL(19, 2) DECLARE @LockupUpValue DECIMAL(19, 2) SELECT TOP 1 @EstFeeWarningLimit = ISNULL([KeyValue], 0) FROM [dbo].[Settings] WITH(NOLOCK) WHERE [KeyName] = 'EstFeeWarningLimit' SET @EstFeeWarningLimit = ISNULL(@EstFeeWarningLimit, 0) SELECT TOP 1 @LockupUpValue = ISNULL([KeyValue], 0) FROM [dbo].[Settings] WITH(NOLOCK) WHERE [KeyName] = 'LockupUpValue' SET @LockupUpValue = ISNULL(@LockupUpValue, 0) DECLARE @BitWiseID BIGINT SELECT @BitWiseID = HNG.[BitWiseID] FROM HandlerNETGroupMembership HNG WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @Handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@Handler, '')))) IF (@Handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END SET @ISSAM4 = ISNULL([dbo].[ISSAM4](), 0) SET @FUNCTION = UPPER(ISNULL(@FUNCTION, '')) SET @TYPE = UPPER(ISNULL(@TYPE, '')) SET @MATTER = '' IF @TYPE = 'CLIENTGROUP' BEGIN -- Find all clients within this client group INSERT INTO @CLIENTS ([CLIENT]) SELECT DISTINCT [CON].[Code] FROM [dbo].[Contacts] AS [CON] WHERE [CON].[ClientGroup] = @TARGET END ELSE IF @TYPE = 'CLIENT' BEGIN INSERT INTO @CLIENTS ([CLIENT]) VALUES(@TARGET) END ELSE IF @TYPE = 'MATTER' BEGIN SET @MATTER = @TARGET END DECLARE @matters TABLE ([ID] INT IDENTITY(1, 1), [Code] VARCHAR(20) PRIMARY KEY) INSERT INTO @matters ([Code]) SELECT MAT.[Code] FROM [dbo].[matters] AS [MAT] LEFT OUTER JOIN [dbo].[MatterNETPrivileges] MNP WITH (NOLOCK) ON MNP.[MATTER] = MAT.[Code] WHERE ( [MAT].[ClientCode] IN (SELECT [CLIENT] FROM @CLIENTS) OR [MAT].[Code] = @MATTER) AND ISNULL([MAT].[Closed], 'N') <> 'Y' AND CASE WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2 THEN 1 WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter THEN 1 ELSE 0 END = 0 AND ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & @BitWiseID <> 0 OR MNP.[Privileges] IS NULL) IF @ISSAM4 = 0 BEGIN SET @NCOMMAND = N'SELECT TOP 1 @YEARSTART = DATEADD(M, -[CURPER], DATEADD(D, [PERIODEND] + 1, ''18001228'')) FROM [dbo].[control]' END ELSE BEGIN SET @NCOMMAND = N'SELECT TOP 1 @YEARSTART = [DateValue] FROM [dbo].[CtrlDate] WHERE [Code] = ''StartofYear''' END EXEC sp_executesql @NCOMMAND, N'@YEARSTART DATETIME OUTPUT', @YEARSTART OUTPUT IF @ISSAM4 = 0 BEGIN SET @NCOMMAND = N'SELECT TOP 1 @PERIODSTART = DATEADD(M, -1, DATEADD(D, [PERIODEND] + 1, ''18001228'')) FROM [dbo].[control]' END ELSE BEGIN SET @NCOMMAND = N'SELECT TOP 1 @PERIODSTART = DATEADD(MONTH, -1, DATEADD(DAY, 1, [DateValue])) FROM [dbo].[CtrlDate] WHERE [Code] = ''PeriodEnd''' END EXEC sp_executesql @NCOMMAND, N'@PERIODSTART DATETIME OUTPUT', @PERIODSTART OUTPUT IF @FUNCTION = 'OPENMATTER' BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], CONVERT(VARCHAR(15),dbo.KAAS_FNConvertUTCDateToTargetTimeZone(MAT.[Started], @Handler), 106) AS [Started] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] ON MAT.[Code] = MT2.[Code] END ELSE IF @FUNCTION = 'OPENMATTERTHISYEAR' BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL(MAT.[Code], '') AS [Code], ISNULL(MAT.[Description], '') AS [Description], CONVERT(VARCHAR(15),dbo.KAAS_FNConvertUTCDateToTargetTimeZone(MAT.[Started], @Handler), 106) AS [Started] FROM @matters AS MT2 INNER JOIN [dbo].[matters] AS MAT ON MAT.[Code] = MT2.[Code] WHERE MAT.[Started] >= @YEARSTART END ELSE IF @FUNCTION = 'DORMANTMATTER' BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], (SELECT MAX([DIA].[DATE]) FROM [dbo].[diary] AS [DIA] WHERE [DIA].[CASECODE] = [MAT].[Code]) AS [LastActionDate] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] ON MAT.[Code] = MT2.[Code] WHERE DATEDIFF(DD, (SELECT MAX([DIA].[DATE]) FROM [dbo].[diary] AS [DIA] WHERE [DIA].[CASECODE] = [MAT].[Code]), GETDATE()) >= 180 END ELSE IF @FUNCTION = 'INVOICEDATEPASSED' BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], CONVERT(VARCHAR(15),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([MAT].[ExpBillD], @Handler), 106) AS [ExpectedBillDate], ISNULL([MAT].[EstFee], 0) AS [EstFee], (SELECT SUM((CASE WHEN @ISSAM4 = 0 THEN ISNULL([TIE].[Charge], 0) - ISNULL([TIE].[BilledAmount], 0) WHEN @ISSAM4 = 1 AND [TIE].[InvoiceNo] = 0 THEN ISNULL([TIE].[Charge], 0) ELSE 0 END)) AS [WIP] FROM [dbo].[TimeEntry] AS [TIE] WHERE [TIE].[Matter] = [MAT].[Code] AND ( [TIE].[TimeOrCharge] = 'T' OR [TIE].[TimeOrCharge] = 'C') AND [TIE].[Rec_Irr] <> 'N') AS [WIP] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] ON MAT.[Code] = MT2.[Code] AND [MAT].[ExpBillD] IS NOT NULL AND [MAT].[ExpBillD] <= CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112)) END ELSE IF @FUNCTION = 'NOESTIMATEFEE' BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] ON MAT.[Code] = MT2.[Code] AND CASE WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2 THEN 1 WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter THEN 1 ELSE ISNULL([MAT].[EstFee], 0) END = 0 END ELSE IF @FUNCTION = 'APPROACHINGESTIMATEFEE' BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], ISNULL([MAT].[EstFee], 0) AS [EstFee], (SELECT SUM((CASE WHEN @ISSAM4 = 0 THEN ISNULL([TIE].[Charge], 0) - ISNULL([TIE].[BilledAmount], 0) WHEN @ISSAM4 = 1 AND [TIE].[InvoiceNo] = 0 THEN ISNULL([TIE].[Charge], 0) ELSE 0 END)) FROM @matters MT2 INNER JOIN [dbo].[TimeEntry] [TIE] ON TIE.[Matter] = MT2.[Code] AND ( [TIE].[TimeOrCharge] = 'T' OR [TIE].[TimeOrCharge] = 'C') AND [TIE].[Rec_Irr] <> 'N' WHERE [MT2].[Code] = [MAT].[Code]) AS [WIP], CAST( CAST( ( 100.00 / ISNULL(NULLIF([MAT].[EstFee], 0), 1) * ISNULL((SELECT SUM((CASE WHEN @ISSAM4 = 0 THEN ISNULL([TIE].[Charge], 0) - ISNULL([TIE].[BilledAmount], 0) WHEN @ISSAM4 = 1 AND [TIE].[InvoiceNo] = 0 THEN ISNULL([TIE].[Charge], 0) ELSE 0 END)) FROM @matters MT2 INNER JOIN [dbo].[TimeEntry] [TIE] ON TIE.[Matter] = MT2.[Code] AND ( [TIE].[TimeOrCharge] = 'T' OR [TIE].[TimeOrCharge] = 'C') AND [TIE].[Rec_Irr] <> 'N' WHERE MT2.[Code] = [MAT].[Code]), 0)) AS DECIMAL(20, 2)) AS VARCHAR(MAX)) + '%' AS [Percentage] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = MT2.[Code] AND [MAT].[EstFee] <> 0 AND ( 100.00 / ISNULL(NULLIF([MAT].[EstFee], 0), 1) * [MAT].[ChargeBal]) >= @EstFeeWarningLimit END ELSE IF @FUNCTION = 'APPROACHINGLOCKEDUP' BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] ON MAT.[Code] = MT2.[Code] AND ( ISNULL([MAT].[ChargeBal], 0) + ISNULL([MAT].[DebtBal], 0) + ISNULL([MAT].[OutlayBal], 0)) > @LockupUpValue END ELSE IF @FUNCTION = 'NOESTIMATEGIVEN' BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] ON MAT.[Code] = MT2.[Code] AND ISNULL([MAT].[Section68], '') <> 'Y' END ELSE IF @FUNCTION = 'FEESCURRENT' BEGIN IF @ISSAM4 = 0 BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], [BAH].[DATE] AS [Date], ISNULL([BAH].[REF], '') AS [BillNo], ISNULL([BAH].[VALUE], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [Total], ISNULL([BAH].[FEETOT], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [Fees], ISNULL([BAH].[VATTOT], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [VAT], ISNULL([BAH].[OUTLAYTOT], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [Outlay] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[BatchH] AS [BAH] ON [BAH].[MATTER] = [MAT].[Code] AND [BAH].[TYPE] = 'I' AND [BAH].[POSTED] = 'Y' AND [BAH].[DATE] >= @PERIODSTART ON [MAT].[Code] = MT2.[Code] END ELSE BEGIN -- Pino 2016-04-11 Must match the code in ky_NETDashBoard exactly. Question: What should TransTotal be made up of? SELECT ROW_NUMBER() OVER(ORDER BY [MT2].[Code]) AS [RowNumber], ISNULL([MT2].[Code], '') AS [Code], [HED].[TransDate] AS [Date], ISNULL([HED].[TransRef], '') AS [BillNo], ISNULL([HED].[TransTotal], 0) * ISNULL(HED.[DrCr], 1) AS [Total], ISNULL([TR2].[FeesBilled], 0) AS [Fees], ISNULL([TR2].[VATonFees], 0) AS [VAT], ISNULL([TR2].[OutlayNV], 0) AS [Outlay] FROM @matters MT2 INNER JOIN [dbo].[Transactions] HED ON HED.[MatterCode] = MT2.[Code] AND HED.[TransDate] >= @PERIODSTART AND HED.[RecType] = 'H' CROSS APPLY (SELECT ISNULL(SUM( ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) AS [FeesBilled], ISNULL(SUM( ISNULL(TRN.[VATonFees], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) AS [VATonFees], ISNULL(SUM( ISNULL(TRN.[OutlayNV], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) AS [OutlayNV] FROM [dbo].[Transactions] TRN WHERE TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = 'D' AND TRN.[LineType] = 'F' AND TRN.[XnType] = 'I' AND TRN.[Posted] = 'Y' AND ( TRN.[CorrectionInd] = 'L' OR TRN.[CorrectionInd] = 'X')) TR2 END END ELSE IF @FUNCTION = 'FEESYTD' BEGIN IF @ISSAM4 = 0 BEGIN SET @NCOMMAND = N'' SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], [BAH].[DATE] AS [Date], ISNULL([BAH].[REF], '') AS [BillNo], ISNULL([BAH].[VALUE], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [Total], ISNULL([BAH].[FEETOT], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [Fees], ISNULL([BAH].[VATTOT], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [VAT], ISNULL([BAH].[OUTLAYTOT], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [Outlay] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[BatchH] AS [BAH] ON [BAH].[MATTER] = [MAT].[Code] AND [BAH].[TYPE] = 'I' AND [BAH].[POSTED] = 'Y' AND [BAH].[DATE] >= @YEARSTART ON [MAT].[Code] = MT2.[Code] END ELSE BEGIN SET @NCOMMAND = N'' -- Pino 2016-04-11 Must match the code in ky_NETDashBoard exactly. Question: What should TransTotal be made up of? SELECT ROW_NUMBER() OVER(ORDER BY [MT2].[Code]) AS [RowNumber], ISNULL([MT2].[Code], '') AS [Code], [HED].[TransDate] AS [Date], ISNULL([HED].[TransRef], '') AS [BillNo], ISNULL([HED].[TransTotal], 0) * ISNULL(HED.[DrCr], 1) AS [Total], ISNULL([TR2].[FeesBilled], 0) AS [Fees], ISNULL([TR2].[VATonFees], 0) AS [VAT], ISNULL([TR2].[OutlayNV], 0) AS [Outlay] FROM @matters MT2 INNER JOIN [dbo].[Transactions] HED ON HED.[MatterCode] = MT2.[Code] AND HED.[TransDate] >= @YEARSTART AND HED.[RecType] = 'H' CROSS APPLY (SELECT ISNULL(SUM( ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) AS [FeesBilled], ISNULL(SUM( ISNULL(TRN.[VATonFees], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) AS [VATonFees], ISNULL(SUM( ISNULL(TRN.[OutlayNV], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) AS [OutlayNV] FROM [dbo].[Transactions] TRN WHERE TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = 'D' AND TRN.[LineType] = 'F' AND TRN.[XnType] = 'I' AND TRN.[Posted] = 'Y' AND ( TRN.[CorrectionInd] = 'L' OR TRN.[CorrectionInd] = 'X')) TR2 --SELECT ISNULL([MAT].[Code], '') AS [Code], -- [TRN].[TransDate] AS [Date], -- ISNULL([TRN].[TransRef], '') AS [BillNo], -- ISNULL([TRN].[TransTotal], 0) AS [Total], -- ISNULL([TRN].[FeesBilled], 0) + ISNULL([TRN].[MiscBilled], 0) AS [Fees], -- ISNULL([TRN].[VATonFees], 0) + ISNULL([TRN].[VATonMisc], 0) AS [VAT], -- ISNULL([TRN].[OutlayNV], 0) AS [Outlay] -- FROM @matters MT2 -- INNER JOIN [dbo].[matters] [MAT] -- INNER JOIN [dbo].[Transactions] AS [TRN] -- ON [TRN].[MatterCode] = [MAT].[Code] -- AND [TRN].[XnType] = 'I' -- AND [TRN].[RecType] = 'H' -- AND [TRN].[Posted] = 'Y' -- AND [TRN].[TransDate] >= @YEARSTART -- AND [TRN].[CorrectionInd] = 'L' -- ON [MAT].[Code] = MT2.[Code] END END ELSE IF @FUNCTION = 'FEESLASTQUARTER' BEGIN IF @ISSAM4 = 0 BEGIN SET @NCOMMAND = N'' SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], [BAH].[DATE] AS [Date], ISNULL([BAH].[REF], '') AS [BillNo], ISNULL([BAH].[VALUE], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [Total], ISNULL([BAH].[FEETOT], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [Fees], ISNULL([BAH].[VATTOT], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [VAT], ISNULL([BAH].[OUTLAYTOT], 0) * CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END AS [Outlay] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[BatchH] AS [BAH] ON [BAH].[MATTER] = [MAT].[Code] AND [BAH].[TYPE] = 'I' AND [BAH].[POSTED] = 'Y' AND DATEDIFF(DD, [BAH].[DATE], GETDATE()) <= 90 ON [MAT].[Code] = MT2.[Code] END ELSE BEGIN SET @NCOMMAND = N'' -- Pino 2016-04-11 Must match the code in ky_NETDashBoard exactly. Question: What should TransTotal be made up of? SELECT ROW_NUMBER() OVER(ORDER BY [MT2].[Code]) AS [RowNumber], ISNULL([MT2].[Code], '') AS [Code], [HED].[TransDate] AS [Date], ISNULL([HED].[TransRef], '') AS [BillNo], ISNULL([HED].[TransTotal], 0) * ISNULL(HED.[DrCr], 1) AS [Total], ISNULL([TR2].[FeesBilled], 0) AS [Fees], ISNULL([TR2].[VATonFees], 0) AS [VAT], ISNULL([TR2].[OutlayNV], 0) AS [Outlay] FROM @matters MT2 INNER JOIN [dbo].[Transactions] HED ON HED.[MatterCode] = MT2.[Code] AND DATEDIFF(DD, [HED].[TransDate], GETDATE()) <= 90 AND HED.[RecType] = 'H' CROSS APPLY (SELECT ISNULL(SUM( ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) AS [FeesBilled], ISNULL(SUM( ISNULL(TRN.[VATonFees], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) AS [VATonFees], ISNULL(SUM( ISNULL(TRN.[OutlayNV], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) AS [OutlayNV] FROM [dbo].[Transactions] TRN WHERE TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = 'D' AND TRN.[LineType] = 'F' AND TRN.[XnType] = 'I' AND TRN.[Posted] = 'Y' AND ( TRN.[CorrectionInd] = 'L' OR TRN.[CorrectionInd] = 'X')) TR2 --SELECT ISNULL([MAT].[Code], '') AS [Code], -- [TRN].[TransDate] AS [Date], -- ISNULL([TRN].[TransRef], '') AS [BillNo], -- ISNULL([TRN].[TransTotal], 0) AS [Total], -- ISNULL([TRN].[FeesBilled], 0) + ISNULL([TRN].[MiscBilled], 0) AS [Fees], -- ISNULL([TRN].[VATonFees], 0) + ISNULL([TRN].[VATonMisc], 0) AS [VAT], -- ISNULL([TRN].[OutlayNV], 0) AS [Outlay] -- FROM @matters MT2 -- INNER JOIN [dbo].[matters] [MAT] -- INNER JOIN [dbo].[Transactions] AS [TRN] -- ON [TRN].[MatterCode] = [MAT].[Code] -- AND [TRN].[XnType] = 'I' -- AND [TRN].[RecType] = 'H' -- AND [TRN].[Posted] = 'Y' -- AND DATEDIFF(DD, [TRN].[TransDate], GETDATE()) <= 90 -- AND [TRN].[CorrectionInd] = 'L' -- ON [MAT].[Code] = MT2.[Code] END END ELSE IF @FUNCTION = 'WIP' BEGIN IF @ISSAM4 = 0 BEGIN SELECT IDENTITY(INT, 1,1) AS [RowNumber], * INTO #WIPTable FROM (SELECT ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], ISNULL(SUM( ISNULL([TIE].[Charge], 0) - ISNULL([TIE].[BilledAmount], 0)), 0) AS [WIP], MAX([TIE].[Date]) AS [LastTimeEntryDate] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[TimeEntry] AS [TIE] ON [TIE].[Matter] = [MAT].[Code] AND ( [TIE].[TimeOrCharge] = 'T' OR [TIE].[TimeOrCharge] = 'C') AND [TIE].[Rec_Irr] <> 'N' ON [MAT].[Code] = MT2.[Code] GROUP BY ISNULL([MAT].[Code], ''), ISNULL([MAT].[Description], '') HAVING ISNULL( SUM(ISNULL([TIE].[Charge], 0) - ISNULL([TIE].[BilledAmount], 0)), 0) <> 0) AS [WIPTable] SELECT * FROM #WIPTable END ELSE BEGIN SELECT IDENTITY(INT, 1,1) AS [RowNumber], * INTO #WIPSamTable FROM (SELECT ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], ISNULL(SUM(ISNULL([TIE].[Charge], 0)), 0) AS [WIP], MAX([TIE].[Date]) AS [LastTimeEntryDate] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[TimeEntry] AS [TIE] ON [TIE].[Matter] = [MAT].[Code] AND ( [TIE].[TimeOrCharge] = 'T' OR [TIE].[TimeOrCharge] = 'C') AND ISNULL([TIE].[InvoiceNo], 0) = 0 AND [TIE].[Rec_Irr] <> 'N' ON [MAT].[Code] = MT2.[Code] GROUP BY ISNULL([MAT].[Code], ''), ISNULL([MAT].[Description], '') HAVING ISNULL(SUM(ISNULL([TIE].[Charge], 0)), 0) <> 0) AS [WIPSamTable] SELECT * FROM #WIPSamTable END END ELSE IF @FUNCTION = 'CURRENTBALANCE' BEGIN IF @ISSAM4 = 0 BEGIN SELECT ROW_NUMBER() OVER(ORDER BY ISNULL([MAT].[Code], '')) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], ISNULL([MAT].[DebtBal], 0) AS [DebtBal], ISNULL([MAT].[OutlayBal], 0) AS [OutlayBal], ISNULL([MAT].[ClientCurBal], 0) AS [ClientCurBal], ISNULL([MAT].[ClientDepBal], 0) AS [ClientDepBal] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = MT2.[Code] END ELSE BEGIN SELECT ROW_NUMBER() OVER(ORDER BY ISNULL([MAT].[Code], '')) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], ISNULL(SUM(ISNULL([TRN].[DebtorsValue], 0)), 0) AS [DebtBal], ISNULL(SUM(ISNULL([TRN].[OutlayValue], 0)), 0) AS [OutlayBal], ISNULL(SUM(ISNULL([TRN].[ClientCurrent], 0)), 0) AS [ClientCurBal], ISNULL(SUM(ISNULL([TRN].[ClientDeposit], 0)), 0) AS [ClientDepBal] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[Transactions] AS [TRN] ON [TRN].[MatterCode] = [MAT].[Code] AND [TRN].[Posted] = 'Y' AND [TRN].[CorrectionInd] = 'L' ON [MAT].[Code] = MT2.[Code] GROUP BY ISNULL([MAT].[Code], ''), ISNULL([MAT].[Description], '') END END ELSE IF @FUNCTION = 'DRAFTINVOICES' BEGIN IF @ISSAM4 = 0 BEGIN SELECT IDENTITY(INT, 1,1) AS [RowNumber], * INTO #DraftInvoiceTable FROM (SELECT ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], ISNULL(COUNT(1), 0) AS [Count], ISNULL(SUM(ISNULL([BIH].[TOTAL], 0) * CASE WHEN ISNULL(BIH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [Total], ISNULL(SUM(ISNULL([BIH].[FEES], 0) * CASE WHEN ISNULL(BIH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [Fees], ISNULL(SUM(ISNULL([BIH].[TOTALVAT], 0) * CASE WHEN ISNULL(BIH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [VAT], ISNULL(SUM(ISNULL([BIH].[OUTLAY], 0) * CASE WHEN ISNULL(BIH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [Outlay] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[BillHeader] AS [BIH] ON [BIH].[MATTER] = [MAT].[Code] AND [BIH].[BILLNO] = 0 ON [MAT].[Code] = MT2.[Code] GROUP BY ISNULL([MAT].[Code], ''), ISNULL([MAT].[Description], '')) AS [DraftInvoiceTable] SELECT * FROM #DraftInvoiceTable END ELSE BEGIN SELECT IDENTITY(INT, 1,1) AS [RowNumber], * INTO #DraftInvoiceSamTable FROM (SELECT ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], ISNULL(COUNT(DISTINCT [BIH].[BillingID]), 0) AS [Count], ISNULL(SUM((ISNULL([BID].[NetValue], 0) + ISNULL([BID].[VatValue], 0)) * CASE WHEN ISNULL(BIH.[Type], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [Total], ISNULL(SUM(ISNULL((CASE WHEN [BID].[RecordType] IN ('F', 'M') THEN [NetValue] ELSE 0 END), 0) * CASE WHEN ISNULL(BIH.[Type], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [Fees], ISNULL(SUM(ISNULL((CASE WHEN [BID].[RecordType] IN ('F', 'M') THEN [VatValue] ELSE 0 END), 0) * CASE WHEN ISNULL(BIH.[Type], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [VAT], ISNULL(SUM(ISNULL((CASE WHEN [BID].[RecordType] = 'O' THEN [NetValue] ELSE 0 END), 0) * CASE WHEN ISNULL(BIH.[Type], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [Outlay] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = MT2.[Code] INNER JOIN [dbo].[Billhead] AS [BIH] ON [BIH].[MatterCode] = [MAT].[Code] AND ISNULL([BIH].[BillStatus], '') <> 'Approved' INNER JOIN [dbo].[BillDetail] AS [BID] ON [BID].[BillID] = [BIH].[BillingID] GROUP BY ISNULL([MAT].[Code], ''), ISNULL([MAT].[Description], '')) AS [DraftInvoiceSAMTable] SELECT * FROM #DraftInvoiceSamTable END END ELSE IF @FUNCTION = 'DATELASTBILLED' BEGIN IF @ISSAM4 = 0 BEGIN SELECT ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], MAX([BAH].[DATE]) AS [DateLastBilled] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[BatchH] AS [BAH] ON [BAH].[MATTER] = [MAT].[Code] AND [BAH].[POSTED] = 'Y' AND [BAH].[TYPE] = 'I' ON [MAT].[Code] = MT2.[Code] GROUP BY ISNULL([MAT].[Code], ''), ISNULL([MAT].[Description], '') END ELSE BEGIN SELECT ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], MAX([TRN].[TransDate]) AS [DateLastBilled] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[Transactions] AS [TRN] ON [TRN].[MatterCode] = [MAT].[Code] AND [TRN].[Posted] = 'Y' AND [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' AND [TRN].[CorrectionInd] = 'L' ON [MAT].[Code] = MT2.[Code] GROUP BY ISNULL([MAT].[Code], ''), ISNULL([MAT].[Description], '') END END ELSE IF @FUNCTION = 'TIMERECLASTMONTH' BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], CONVERT(VARCHAR(15),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([TIE].[Date], @Handler), 106) AS [Date], [TIE].[FeeEarn] AS [FeeEarn], (CASE WHEN [TIE].[Time] < 0 THEN '-' ELSE '' END) + RIGHT('00' + CAST(FLOOR(ISNULL(ABS([TIE].[Time]), 0) / (60 * 24)) AS VARCHAR(2)), 2) + ':' + RIGHT('00' + CAST((FLOOR(ISNULL(ABS([TIE].[Time]), 0) / 60) % 24) AS VARCHAR(2)), 2) + ':' + RIGHT('00' + CAST(ISNULL(ABS([TIE].[Time]), 0) % 60 AS VARCHAR(2)), 2) AS [Time], ISNULL([TIE].[Rate], 0) AS [Rate], ISNULL([TIE].[Charge], 0) AS [Charge], ISNULL([TIE].[Comment], '') AS [Comment] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[TimeEntry] AS [TIE] ON [TIE].[Matter] = [MAT].[Code] AND ( [TIE].[TimeOrCharge] = 'T' OR [TIE].[TimeOrCharge] = 'C') AND DATEDIFF(DD, [TIE].[Date], GETDATE()) <= 30 AND ISNULL([TIE].[TASK], '') <> 'WRI' ON [MAT].[Code] = MT2.[Code] END ELSE IF @FUNCTION = 'OSINVOICES' BEGIN IF @ISSAM4 = 0 BEGIN -- Getting a list of client codes in string format, thank you Pino SET @Codes = NULL SELECT @Codes = CASE WHEN @Codes IS NULL THEN '''' + [CLIENT] + '''' ELSE @Codes + ', ''' + [CLIENT] + '''' END FROM @CLIENTS -- using sp_executesql because [DebtorsLedger] may exist in [SAM4] as a view with different columns SET @SQL = N' SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '''') AS [Code], ISNULL([MAT].[Description], '''') AS [Description], ISNULL([DEB].[Ref], '''') AS [InvoiceNo], [DEB].[DATE] AS [Date], ISNULL([DEB].[ORIGINAL], 0) AS [Total], ISNULL([DEB].[OSVALUE], 0) AS [ValueOS], DATEDIFF(DD, [DEB].[Date], GETDATE()) AS [DaysOutstanding] FROM [dbo].[matters] AS [MAT] LEFT OUTER JOIN [dbo].[MatterNETPrivileges] MNP ON MNP.[MATTER] = MAT.[Code] INNER JOIN [dbo].[DebtorsLedger] AS [DEB] ON [DEB].[MATTER] = [MAT].[Code] AND [DEB].[OSVALUE] <> 0 AND [DEB].[TYPE] = ''I'' WHERE ( [MAT].[ClientCode] IN (' + CONVERT(NVARCHAR(MAX), @Codes) + N') OR [MAT].[Code] = @matter) AND [MAT].[Closed] <> ''Y'' AND ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & @BitWiseID <> 0 OR MNP.[Privileges] IS NULL)' EXEC sp_executesql @SQL, N'@matter VARCHAR(20), @BitWiseID BIGINT', @matter, @BitWiseID END ELSE BEGIN SELECT ROW_NUMBER() OVER(ORDER BY [MAT].[Code]) AS [RowNumber], ISNULL([MAT].[Code], '') AS [Code], ISNULL([MAT].[Description], '') AS [Description], ISNULL([TRN].[TransRef], '') AS [InvoiceNo], [TRN].[TransDate] AS [Date], ISNULL([TRN].[DebtorsValue], 0) AS [Total], ISNULL([TRN].[DebtorsValueOS], 0) AS [ValueOS], DATEDIFF(DD, [TRN].[TransDate], GETDATE()) AS [DaysOutstanding] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[Transactions] AS [TRN] ON [TRN].[MatterCode] = [MAT].[Code] AND [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' AND [TRN].[Posted] = 'Y' AND [TRN].[CorrectionInd] = 'L' AND [TRN].[DebtorsValueOS] <> 0 ON [MAT].[Code] = MT2.[Code] END END ELSE IF @FUNCTION = 'CLIENTGROUP' BEGIN IF ( @TYPE = 'CLIENT' AND ( SELECT COUNT(1) FROM [dbo].[Contacts] WHERE [Code] = @TARGET AND [Code] = [ClientGroup] GROUP BY [ClientGroup]) > 1) OR @TYPE = 'CLIENTGROUP' BEGIN SELECT DISTINCT ISNULL([CON].[ClientGroup], '') AS [ClientGroup], ISNULL([CLG].[GroupName], '') AS [GroupName] FROM [dbo].[Contacts] AS [CON] LEFT OUTER JOIN [dbo].[ClientGroup] AS [CLG] ON [CLG].[GroupCode] = [CON].[ClientGroup] WHERE [CON].[Code] IN (SELECT [CLIENT] FROM @CLIENTS) END ELSE BEGIN SELECT '' AS [ClientGroup], '' AS [GroupName] END END ELSE IF @FUNCTION = 'PROFITABILITY' BEGIN IF @ISSAM4 = 0 BEGIN SELECT [MAT].[Code] AS [Code], [MAT].[Description] AS [Description], [BIH].[BILLNO] AS [InvoiceNo], [BIH].[DATE] AS [Date], [BIH].[FEES] AS [Fees], ISNULL((SELECT SUM([Charge]) FROM [dbo].[TimeEntry] WHERE [MATTER] = [BIH].[MATTER] AND [InvoiceNo] = [BIH].[BILLNO] AND ( [TimeOrCharge] = 'T' OR [TimeOrCharge] = 'C')), 0) AS [Charge], (CASE WHEN ISNULL((SELECT SUM([Charge]) FROM [dbo].[TimeEntry] WHERE [MATTER] = [BIH].[MATTER] AND [InvoiceNo] = [BIH].[BILLNO] AND ( [TimeOrCharge] = 'T' OR [TimeOrCharge] = 'C')), 0) = 0 THEN 'N/A' ELSE CAST( CAST( ( ISNULL([BIH].[FEES], 0) / ISNULL((SELECT SUM([Charge]) FROM [dbo].[TimeEntry] WHERE [Matter] = [BIH].[MATTER] AND [InvoiceNo] = [BIH].[BILLNO] AND ( [TimeOrCharge] = 'T' OR [TimeOrCharge] = 'C')), 1)) * 100 AS DECIMAL(20, 2)) AS VARCHAR(100)) + '%' END) AS [PercentBilled] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[BillHeader] AS [BIH] ON [BIH].[Matter] = [MAT].[Code] AND ISNULL([BIH].[BILLNO], 0) <> 0 ON [MAT].[Code] = MT2.[Code] END ELSE BEGIN SELECT [TRN].[MatterCode] AS [Code], [MAT].[Description] AS [Description], [TRN].[TransRef] AS [InvoiceNo], [TRN].[TransDate] AS [Date], [TRN].[FeesBilled] AS [Fees], ISNULL((SELECT SUM([Charge]) FROM [TimeEntry] WHERE [MATTER] = [TRN].[MatterCode] AND [InvoiceNo] = CAST([TRN].[TransRef] AS INT) AND ( [TimeOrCharge] = 'T' OR [TimeOrCharge] = 'C')), 0) AS [Charge], (CASE WHEN ISNULL((SELECT SUM([Charge]) FROM [TimeEntry] WHERE [MATTER] = [TRN].[MatterCode] AND [InvoiceNo] = CAST([TRN].[TransRef] AS INT) AND ( [TimeOrCharge] = 'T' OR [TimeOrCharge] = 'C')), 0) = 0 THEN 'N/A' ELSE CAST( CAST( ( ISNULL([TRN].[FeesBilled], 0) / ISNULL((SELECT SUM([Charge]) FROM [TimeEntry] WHERE [Matter] = [TRN].[MatterCode] AND [InvoiceNo] = CAST([TRN].[TransRef] AS INT) AND ( [TimeOrCharge] = 'T' OR [TimeOrCharge] = 'C')), 1)) * 100 AS DECIMAL(20, 2)) AS VARCHAR(100)) + '%' END) AS [PercentBilled] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[Transactions] AS [TRN] ON [TRN].[MatterCode] = [MAT].[Code] AND [TRN].[XnType] = 'I' AND [TRN].[Posted] = 'Y' AND [TRN].[CorrectionInd] = 'L' AND [TRN].[RecType] = 'H' AND ISNUMERIC([TRN].[TransRef]) = 1 ON [MAT].[Code] = MT2.[Code] END END ELSE IF @FUNCTION = 'MATTERLIST' BEGIN IF @ISSAM4 = 0 BEGIN SELECT [MAT].[Code] AS [Code], ISNULL([MAT].[Description], '') AS [Description], [MAT].[Started] AS [Started], ISNULL(ISNULL([FEC].[NAME], [MAT].[FECode]), '') AS [FeeEarner], ISNULL(ISNULL([DEP].[DESC], [MAT].[Dept]), '') AS [Department], ISNULL(ISNULL([WOR].[DESC], [MAT].[WType]), '') AS [WorkType], [dbo].[ky_NETFormatFinancial](ISNULL([MAT].[DebtBal], 0)) AS [DebtBal], [dbo].[ky_NETFormatFinancial](ISNULL([MAT].[OutlayBal], 0)) AS [OutlayBal], [dbo].[ky_NETFormatFinancial](ISNULL([MAT].[ClientCurBal], 0)) AS [ClientCurBal], [dbo].[ky_NETFormatFinancial](ISNULL([MAT].[ClientDepBal], 0)) AS [ClientDepBal], [dbo].[ky_NETFormatFinancial](ISNULL([MAT].[EstFee], 0)) AS [EstFee], [MAT].[ExpBillD] AS [ExpBillD], [dbo].[ky_NETFormatFinancial](ISNULL([TIE].[WIP], 0)) AS [WIP], [TIE].[LastTimeEntry] AS [LastTimeEntry], (SELECT MAX([DIA].[DATE]) FROM [dbo].[diary] AS [DIA] WHERE [DIA].[CASECODE] = [MAT].[Code]) AS [LastDiaryEntry], [BAH].[DateLastBilled] AS [DateLastBilled], [dbo].[ky_NETFormatFinancial]([BAH].[FeesYTD]) AS [FeesYTD], [dbo].[ky_NETFormatFinancial]([BAH].[FeesLastQuarter]) AS [FeesLastQuarter], ISNULL([DEB].[OSInvoices], 0) AS [OSInvoices], [dbo].[ky_NETFormatFinancial](ISNULL([DEB].[OSValue], 0)) AS [OSValue], [DEB].[AverageDebtorDays] AS [AverageDebtorDays], [dbo].[ky_NETFormatFinancial](ISNULL([BIH].[DraftInvoices], 0)) AS [DraftInvoices] FROM @matters MT3 INNER JOIN [dbo].[matters] [MAT] ON MAT.[Code] = MT3.[Code] INNER JOIN [dbo].[Contacts] AS [CON] ON [CON].[Code] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC] ON [FEC].[CODE] = [MAT].[FECode] LEFT OUTER JOIN [dbo].[Departments] AS [DEP] ON [DEP].[CODE] = [MAT].[Dept] lEFT OUTER JOIN [dbo].[WorkTypes] AS [WOR] ON [WOR].[CODE] = [MAT].[WType] OUTER APPLY (SELECT SUM((CASE WHEN [TIE].[Rec_Irr] <> 'N' THEN ISNULL([TIE].[Charge], 0) - ISNULL([TIE].[BilledAmount], 0) ELSE 0 END)) AS [WIP], MAX([TIE].[DATE]) AS [LastTimeEntry] FROM @matters MT2 INNER JOIN [dbo].[TimeEntry] [TIE] WITH(NOLOCK) ON [TIE].[Matter] = MT2.[Code] AND ( [TIE].[TimeOrCharge] = 'T' OR [TIE].[TimeOrCharge] = 'C') WHERE [MT2].[Code] = MAT.[Code]) AS [TIE] OUTER APPLY (SELECT MAX([BAH].[DATE]) AS [DateLastBilled], SUM((CASE WHEN [BAH].[DATE] >= @YEARSTART THEN ISNULL([BAH].[FEETOT], 0) ELSE 0 END)) AS [FeesYTD], SUM((CASE WHEN DATEDIFF(DD, [BAH].[DATE], GETDATE()) <= 90 THEN ISNULL([BAH].[FEETOT], 0) ELSE 0 END)) AS [FeesLastQuarter] FROM @matters MT2 INNER JOIN [dbo].[BatchH] AS [BAH] WITH(NOLOCK) ON [BAH].[MATTER] = MT2.[Code] AND [BAH].[POSTED] = 'Y' AND [BAH].[TYPE] = 'I' WHERE MT2.[Code] = MAT.[Code]) AS [BAH] OUTER APPLY (SELECT COUNT(1) AS [OSInvoices], SUM([DEB].[OSVALUE]) AS [OSValue], ISNULL(SUM(DATEDIFF(DD, [DEB].[Date], GETDATE())), 0) / ISNULL(NULLIF(COUNT(1), 0), 1) AS [AverageDebtorDays] FROM @matters MT2 INNER JOIN [dbo].[DebtorsLedger] AS [DEB] WITH(NOLOCK) ON [DEB].[MATTER] = MT2.[Code] AND [DEB].[OSVALUE] <> 0 WHERE MT2.[Code] = MAT.[Code]) AS [DEB] OUTER APPLY (SELECT SUM(ISNULL(BIH.[TOTAL], 0)) AS [DraftInvoices] FROM @matters MT2 INNER JOIN [dbo].[BillHeader] AS [BIH] WITH(NOLOCK) ON BIH.[MATTER] = MT2.[Code] AND ISNULL(BIH.[BILLNO], 0) = 0 AND ISNULL(BIH.[RELEASED], '') <> 'Y' WHERE MT2.[Code] = MAT.[Code]) AS [BIH] END ELSE BEGIN SELECT [MAT].[Code] AS [Code], ISNULL([MAT].[Description], '') AS [Description], [MAT].[Started] AS [Started], ISNULL(ISNULL([FEC].[NAME], [MAT].[FECode]), '') AS [FeeEarner], ISNULL(ISNULL([DEP].[DESC], [MAT].[Dept]), '') AS [Department], ISNULL(ISNULL([WOR].[DESC], [MAT].[WType]), '') AS [WorkType], [dbo].[ky_NETFormatFinancial](ISNULL([MATBAL].[DebtBal], 0)) AS [DebtBal], [dbo].[ky_NETFormatFinancial](ISNULL([MATBAL].[OutlayBal], 0)) AS [OutlayBal], [dbo].[ky_NETFormatFinancial](ISNULL([MATBAL].[ClientCurBal], 0)) AS [ClientCurBal], [dbo].[ky_NETFormatFinancial](ISNULL([MATBAL].[ClientDepBal], 0)) AS [ClientDepBal], [dbo].[ky_NETFormatFinancial](ISNULL([TIE].[WIP], 0)) AS [WIP], [TIE].[LastTimeEntry] AS [LastTimeEntry], (SELECT MAX([DIA].[DATE]) FROM [dbo].[diary] AS [DIA] WITH(NOLOCK) WHERE [DIA].[CASECODE] = [MAT].[Code]) AS [LastDiaryEntry], [MATBAL].[DateLastBilled] AS [DateLastBilled], [dbo].[ky_NETFormatFinancial](ISNULL([MATBAL].[FeesYTD], 0)) AS [FeesYTD], [dbo].[ky_NETFormatFinancial](ISNULL([MATBAL].[FeesLastQuarter], 0)) AS [FeesLastQuarter], [dbo].[ky_NETFormatFinancial](ISNULL([MATBAL].[OSInvoices], 0)) AS [OSInvoices], [dbo].[ky_NETFormatFinancial](ISNULL([MATBAL].[OSValue], 0)) AS [OSValue], ISNULL([MATBAL].[AverageDebtorDays], 0) AS [AverageDebtorDays], [dbo].[ky_NETFormatFinancial](ISNULL([BIH].[DraftInvoices], 0)) AS [DraftInvoices] FROM @matters MT3 INNER JOIN [dbo].[matters] [MAT] ON MAT.[Code] = MT3.[Code] LEFT OUTER JOIN [dbo].[MatterNETPrivileges] MNP WITH (NOLOCK) ON MNP.[MATTER] = MAT.[Code] INNER JOIN [dbo].[Contacts] AS [CON] WITH(NOLOCK) ON [CON].[Code] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC] WITH(NOLOCK) ON [FEC].[CODE] = [MAT].[FECode] LEFT OUTER JOIN [dbo].[Departments] AS [DEP] WITH(NOLOCK) ON [DEP].[CODE] = [MAT].[Dept] LEFT OUTER JOIN [dbo].[WorkTypes] AS [WOR] WITH(NOLOCK) ON [WOR].[CODE] = [MAT].[WType] OUTER APPLY (SELECT SUM((CASE WHEN [TIE].[Rec_Irr] <> 'N' AND [TIE].[InvoiceNo] = 0 THEN ISNULL([TIE].[Charge], 0) ELSE 0 END)) AS [WIP], MAX([TIE].[DATE]) AS [LastTimeEntry] FROM @matters MT2 INNER JOIN [dbo].[TimeEntry] [TIE] WITH(NOLOCK) ON TIE.[Matter] = MT2.[Code] AND ( [TIE].[TimeOrCharge] = 'T' OR [TIE].[TimeOrCharge] = 'C') WHERE [MT2].[Code] = MAT.[Code]) AS [TIE] CROSS APPLY (SELECT SUM(ISNULL([TRN].[DebtorsValue], 0)) AS [DebtBal], SUM(ISNULL([TRN].[OutlayValue], 0)) AS [OutlayBal], SUM(ISNULL([TRN].[ClientCurrent], 0)) AS [ClientCurBal], SUM(ISNULL([TRN].[ClientDeposit], 0)) AS [ClientDepBal], MAX((CASE WHEN [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' THEN [TRN].[TransDate] ELSE NULL END)) AS [DateLastBilled], SUM((CASE WHEN [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' AND [TRN].[TransDate] >= @YEARSTART THEN ISNULL([TRN].[FeesBilled], 0) ELSE 0 END)) AS [FeesYTD], SUM((CASE WHEN [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' AND DATEDIFF(DD, [TRN].[TransDate], GETDATE()) <= 90 THEN ISNULL([TRN].[FeesBilled], 0) ELSE 0 END)) AS [FeesLastQuarter], SUM((CASE WHEN [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' AND [TRN].[DebtorsValueOS] <> 0 THEN 1 ELSE 0 END)) AS [OSInvoices], SUM((CASE WHEN [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' AND [TRN].[DebtorsValueOS] <> 0 THEN ISNULL([TRN].[DebtorsValueOS], 0) ELSE 0 END)) AS [OSValue], SUM((CASE WHEN [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' AND [TRN].[DebtorsValueOS] <> 0 THEN ISNULL(DATEDIFF(DD, [TRN].[TransDate], GETDATE()), 0) ELSE 0 END)) / ISNULL(NULLIF(SUM((CASE WHEN [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' AND [TRN].[DebtorsValueOS] <> 0 THEN 1 ELSE 0 END)), 0), 1) AS [AverageDebtorDays] FROM @matters MT2 INNER JOIN [dbo].[Transactions] AS [TRN] WITH(NOLOCK) ON TRN.[MatterCode] = MT2.[Code] AND [TRN].[Posted] = 'Y' AND [TRN].[CorrectionInd] = 'L' WHERE [MT2].[Code] = MAT.[Code]) AS [MATBAL] OUTER APPLY (SELECT SUM(ISNULL(BID.[NetValue], 0) + ISNULL(BID.[VatValue], 0)) AS [DraftInvoices] FROM @matters MT2 INNER JOIN [dbo].[Billhead] AS [BIH] WITH(NOLOCK) ON [BIH].[MatterCode] = MT2.[Code] AND ISNULL([BIH].[BillStatus], '') = 'Draft' INNER JOIN [dbo].[BillDetail] AS [BID] WITH(NOLOCK) ON [BID].[BillID] = [BIH].[BillingID]) AS [BIH] END END ELSE IF @FUNCTION = '' BEGIN -- Counts of things DECLARE @OpenMatters INT DECLARE @OpenMattersThisYear INT DECLARE @DormantMatters INT DECLARE @InvoiceDatePassed INT DECLARE @NoEstFee INT DECLARE @ApproachingEstimateFee INT DECLARE @ApproachingLockedUp INT DECLARE @NoEstimateGiven INT SELECT @OpenMatters = COUNT(1), @OpenMattersThisYear = SUM(CASE WHEN MAT.[Started] >= @YEARSTART THEN 1 ELSE 0 END), @DormantMatters = SUM(CASE WHEN MXD.[LastDiaryDate] IS NULL THEN 0 WHEN DATEDIFF(DD, MXD.[LastDiaryDate], GetDate()) >= 180 THEN 1 ELSE 0 END), @InvoiceDatePassed = SUM(CASE WHEN MAT.[ExpBillD] IS NULL THEN 0 WHEN MAT.[ExpBillD] <= CONVERT(DATETIME, CONVERT(VARCHAR, GetDate(), 112)) THEN 1 ELSE 0 END), @NoEstFee = SUM(CASE WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2 THEN 0 WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter THEN 0 WHEN MAT.[EstFee] IS NULL THEN 1 WHEN MAT.[EstFee] = 0 THEN 1 ELSE 0 END), @ApproachingEstimateFee = SUM(CASE WHEN MAT.[EstFee] IS NULL THEN 0 WHEN MAT.[EstFee] = 0 THEN 0 WHEN MAT.[ChargeBal] IS NULL THEN 0 WHEN MAT.[ChargeBal] = 0 THEN 0 WHEN @EstFeeWarningLimit = 0 THEN 0 WHEN ( 100.00 / MAT.[EstFee] * [MAT].[ChargeBal]) >= @EstFeeWarningLimit THEN 1 ELSE 0 END), @ApproachingLockedUp = SUM(CASE WHEN ISNULL([MAT].[ChargeBal], 0) + ISNULL([MAT].[DebtBal], 0) + ISNULL([MAT].[OutlayBal], 0) > @LockupUpValue THEN 1 ELSE 0 END), @NoEstimateGiven = SUM(CASE WHEN [MAT].[Section68] IS NULL THEN 1 WHEN [MAT].[Section68] = 'Y' THEN 0 ELSE 1 END) FROM @matters MT3 INNER JOIN [dbo].[matters] [MAT] WITH(NOLOCK) ON MAT.[Code] = MT3.[Code] CROSS APPLY (SELECT COUNT(1) AS [TOTAL], MAX(DIA.[DATE]) AS [LastDiaryDate] FROM [dbo].[diary] DIA WHERE DIA.[CASECODE] = MAT.[Code]) MXD SELECT @OpenMatters AS [OpenMatters], @OpenMattersThisYear AS [OpenMattersThisYear], @DormantMatters AS [DormantMatters], @InvoiceDatePassed AS [InvoiceDatePassed], @NoEstFee AS [NoEstimateFee], @ApproachingEstimateFee AS [ApproachingEstimateFee], @ApproachingLockedUp AS [ApproachingLockedUp], @NoEstimateGiven AS [NoEstimateGiven], (SELECT COUNT(1) FROM [dbo].[Contacts] AS [CON] WITH(NOLOCK) INNER JOIN [dbo].[ClientGroup] AS [CLG] ON [CLG].[GroupCode] = [CON].[ClientGroup] WHERE [CON].[ClientGroup] <> '' AND (SELECT TOP 1 [ClientGroup] FROM [dbo].[Contacts] AS [CON2] WITH(NOLOCK) INNER JOIN [dbo].[matters] AS [MAT] WITH(NOLOCK) ON [CON2].[Code] = [MAT].[ClientCode] WHERE [CON2].[Code] IN (SELECT [CLIENT] FROM @CLIENTS) OR [MAT].[Code] = @MATTER) = [CLG].[GroupCode]) AS [ClientGroupMembers] -- Sums of things IF @ISSAM4 = 0 BEGIN SELECT SUM(ISNULL([BAH].[FeesCurrent], 0)) AS [FeesCurrent], SUM(ISNULL([BAH].[FeesYTD], 0)) AS [FeesYTD], SUM(ISNULL([BAH].[FeesLastQuarter], 0)) AS [FeesLastQuarter], SUM(TME.[WIP]) AS [WIP], SUM(ISNULL([MAT].[DebtBal], 0)) AS [DebtBal], SUM(ISNULL([MAT].[OutlayBal], 0)) AS [OutlayBal], SUM(ISNULL([MAT].[ClientCurBal], 0)) AS [ClientCurBal], SUM(ISNULL([MAT].[ClientDepBal], 0)) AS [ClientDepBal], SUM(TME.[ChargeLastMonth]) AS [ChargeLastMonth], CASE WHEN SUM([TME].[TimeLastMonth]) < 0 THEN '-' ELSE '' END + RIGHT('00' + CAST(FLOOR(ABS(SUM([TME].[TimeLastMonth])) / (60 * 24)) AS VARCHAR(2)), 2) + ':' + RIGHT('00' + CAST((FLOOR(ABS(SUM([TME].[TimeLastMonth])) / 60) % 24) AS VARCHAR(2)), 2) + ':' + RIGHT('00' + CAST(ABS(SUM([TME].[TimeLastMonth])) % 60 AS VARCHAR(2)), 2) AS [TimeLastMonth] FROM @matters MT3 INNER JOIN [dbo].[matters] [MAT] WITH(NOLOCK) ON MAT.[Code] = MT3.[Code] CROSS APPLY (SELECT ISNULL(SUM(CASE WHEN [TIE].[TimeOrCharge] <> 'T' AND [TIE].[TimeOrCharge] <> 'C' THEN 0 WHEN ISNULL([TIE].[Rec_Irr], 'N') <> 'C' THEN 0 WHEN ISNULL(TIE.[WriteOffID], 0) <> 0 THEN 0 ELSE ISNULL([TIE].[Charge], 0) - ISNULL([TIE].[BilledAmount], 0) END), 0) AS [WIP], ISNULL(SUM(CASE WHEN [TIE].[TimeOrCharge] <> 'T' AND [TIE].[TimeOrCharge] <> 'C' THEN 0 WHEN DATEDIFF(DD, [TIE].[DATE], GETDATE()) > 30 THEN 0 WHEN ISNULL(TIE.[TASK], '') = 'WRI' THEN 0 ELSE ISNULL([TIE].[Charge], 0) END), 0) AS [ChargeLastMonth], ISNULL(SUM(CASE WHEN [TIE].[TimeOrCharge] <> 'T' AND [TIE].[TimeOrCharge] <> 'C' THEN 0 WHEN DATEDIFF(DD, [TIE].[DATE], GETDATE()) > 30 THEN 0 WHEN [TIE].[Time] IS NULL THEN 0 ELSE [TIE].[Time] END), 0) AS [TimeLastMonth] FROM @matters MT2 INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[Matter] = MT2.[Code] AND ISNULL(TIE.[TASK], '') <> 'WRI' WHERE MT2.[Code] = MT3.[Code]) TME CROSS APPLY (SELECT SUM(ISNULL((CASE WHEN [BAH].[DATE] >= @PERIODSTART THEN [BAH].[FEETOT] ELSE 0 END), 0) * (CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END)) AS [FeesCurrent], SUM(ISNULL((CASE WHEN [BAH].[DATE] >= @YEARSTART THEN [BAH].[FEETOT] ELSE 0 END), 0) * (CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END)) AS [FeesYTD], SUM(ISNULL((CASE WHEN DATEDIFF(DD, [BAH].[DATE], GETDATE()) <= 90 THEN [BAH].[FEETOT] ELSE 0 END), 0) * (CASE WHEN ISNULL(BAH.[INVCR], 'I') = 'C' THEN -1 ELSE 1 END)) AS [FeesLastQuarter] FROM @matters MT2 INNER JOIN [dbo].[BatchH] AS [BAH] WITH(NOLOCK) ON [BAH].[MATTER] = MT2.[Code] AND [BAH].[POSTED] = 'Y' AND [BAH].[TYPE] = 'I' WHERE MT2.[Code] = MT3.[Code]) AS [BAH] END ELSE BEGIN SELECT SUM(ISNULL([FEEBAL].[FeesCurrent], 0)) AS [FeesCurrent], SUM(ISNULL([FEEBAL].[FeesYTD], 0)) AS [FeesYTD], SUM(ISNULL([FEEBAL].[FeesLastQuarter], 0)) AS [FeesLastQuarter], SUM(TME.[WIP]) AS [WIP], SUM(ISNULL([MATBAL].[DebtBal], 0)) AS [DebtBal], SUM(ISNULL([MATBAL].[OutlayBal], 0)) AS [OutlayBal], SUM(ISNULL([MATBAL].[ClientCurBal], 0)) AS [ClientCurBal], SUM(ISNULL([MATBAL].[ClientDepBal], 0)) AS [ClientDepBal], SUM(TME.[ChargeLastMonth]) AS [ChargeLastMonth], CASE WHEN SUM([TME].[TimeLastMonth]) < 0 THEN '-' ELSE '' END + RIGHT('00' + CAST(FLOOR(ABS(SUM([TME].[TimeLastMonth])) / (60 * 24)) AS VARCHAR(2)), 2) + ':' + RIGHT('00' + CAST((FLOOR(ABS(SUM([TME].[TimeLastMonth])) / 60) % 24) AS VARCHAR(2)), 2) + ':' + RIGHT('00' + CAST(ABS(SUM([TME].[TimeLastMonth])) % 60 AS VARCHAR(2)), 2) AS [TimeLastMonth] FROM @matters MT3 INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = MT3.[Code] CROSS APPLY (SELECT ISNULL(SUM(CASE WHEN [TIE].[TimeOrCharge] <> 'T' AND [TIE].[TimeOrCharge] <> 'C' THEN 0 WHEN ISNULL([TIE].[Rec_Irr], 'N') <> 'C' THEN 0 WHEN ISNULL(TIE.[WriteOffID], 0) <> 0 THEN 0 ELSE ISNULL([TIE].[Charge], 0) END), 0) AS [WIP], ISNULL(SUM(CASE WHEN [TIE].[TimeOrCharge] <> 'T' AND [TIE].[TimeOrCharge] <> 'C' THEN 0 WHEN DATEDIFF(DD, [TIE].[DATE], GETDATE()) > 30 THEN 0 WHEN ISNULL(TIE.[TASK], '') = 'WRI' THEN 0 ELSE ISNULL([TIE].[Charge], 0) END), 0) AS [ChargeLastMonth], ISNULL(SUM(CASE WHEN [TIE].[TimeOrCharge] <> 'T' AND [TIE].[TimeOrCharge] <> 'C' THEN 0 WHEN DATEDIFF(DD, [TIE].[DATE], GETDATE()) > 30 THEN 0 WHEN [TIE].[Time] IS NULL THEN 0 ELSE [TIE].[Time] END), 0) AS [TimeLastMonth] FROM @matters MT2 INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[Matter] = MT2.[Code] AND ISNULL(TIE.[TASK], '') <> 'WRI' WHERE MT2.[Code] = MT3.[Code]) TME CROSS APPLY (SELECT SUM(ISNULL([TRN].[DebtorsValue], 0)) AS [DebtBal], SUM(ISNULL([TRN].[OutlayValue], 0)) AS [OutlayBal], SUM(ISNULL([TRN].[ClientCurrent], 0)) AS [ClientCurBal], SUM(ISNULL([TRN].[ClientDeposit], 0)) AS [ClientDepBal] FROM @matters MT2 INNER JOIN [dbo].[Transactions] [TRN] WITH(NOLOCK) ON [TRN].[MatterCode] = MT2.[Code] AND [TRN].[Posted] = 'Y' AND [TRN].[CorrectionInd] = 'L' WHERE MT2.[Code] = MT3.[Code]) AS [MATBAL] --Pino 2016-04-11 Make sure Fees balances calculation is identical to that in ky_NETDashBoard. See next Cross Apply CROSS APPLY (SELECT ISNULL(SUM((CASE WHEN [TRN].[TransDate] >= @PERIODSTART THEN ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1) ELSE 0 END)), 0) AS [FeesCurrent], ISNULL(SUM((CASE WHEN [TRN].[TransDate] >= @YEARSTART THEN ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1) ELSE 0 END)), 0) AS [FeesYTD], ISNULL(SUM((CASE WHEN DATEDIFF(DD, [TRN].[TransDate], GETDATE()) <= 90 THEN ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1) ELSE 0 END)), 0) AS [FeesLastQuarter] FROM @matters MT2 INNER JOIN [dbo].[Transactions] [HED] WITH(NOLOCK) INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = 'D' AND TRN.[LineType] = 'F' AND TRN.[XnType] = 'I' AND TRN.[Posted] = 'Y' AND ( TRN.[CorrectionInd] = 'L' OR TRN.[CorrectionInd] = 'X') ON [HED].[MatterCode] = MT2.[Code] AND [HED].[RecType] = 'H' WHERE MT2.[Code] = MT3.[Code]) AS [FEEBAL] END -- outstanding things IF @ISSAM4 = 0 BEGIN SET @Codes = NULL SELECT @Codes = CASE WHEN @Codes IS NULL THEN '''' + [CLIENT] + '''' ELSE @Codes + ', ''' + [CLIENT] + '''' END FROM @CLIENTS -- using sp_executesql because [DebtorsLedger] may exist in [SAM4] SET @SQL = N' SELECT ISNULL(COUNT(1), 0) AS [OutstandingInvoices], ISNULL(SUM(ISNULL([DEB].[OSVALUE], 0)), 0) AS [ValueOS], ISNULL(SUM(DATEDIFF(DD, [DEB].[Date], GETDATE())), 0) / ISNULL(NULLIF(COUNT(1), 0), 1) AS [AverageDebtorDays] FROM [dbo].[matters] AS [MAT] WITH(NOLOCK) LEFT OUTER JOIN [dbo].[MatterNETPrivileges] MNP WITH (NOLOCK) ON MNP.[MATTER] = MAT.[Code] INNER JOIN [dbo].[DebtorsLedger] AS [DEB] WITH(NOLOCK) ON [DEB].[MATTER] = MAT.[Code] AND [DEB].[TYPE] = ''I'' WHERE ( [MAT].[ClientCode] IN (' + CONVERT(NVARCHAR(MAX), @Codes) + N') OR [MAT].[Code] = @MATTER) AND [MAT].[Closed] <> ''Y'' AND [DEB].[OSVALUE] <> 0 AND ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & @BitWiseID <> 0 OR MNP.[Privileges] IS NULL)' EXEC sp_executesql @SQL, N'@matter VARCHAR(20), @BitWiseID BIGINT', @matter, @BitWiseID END ELSE BEGIN SELECT ISNULL(COUNT(1), 0) AS [OutstandingInvoices], ISNULL(SUM(ISNULL([TRN].[DebtorsValueOS], 0)), 0) AS [ValueOS], ISNULL(SUM(DATEDIFF(DD, [TRN].[TransDate], GETDATE())), 0) / ISNULL(NULLIF(COUNT(1), 0), 1) AS [AverageDebtorDays] FROM @matters MT2 INNER JOIN [dbo].[matters] [MAT] WITH(NOLOCK) INNER JOIN [dbo].[Transactions] AS [TRN] WITH(NOLOCK) ON [TRN].[MatterCode] = [MAT].[Code] AND [TRN].[XnType] = 'I' AND [TRN].[RecType] = 'H' AND [TRN].[Posted] = 'Y' AND [TRN].[CorrectionInd] = 'L' AND [TRN].[DebtorsValueOS] <> 0 ON MAT.[Code] = MT2.[Code] END END -- Draft invoices IF @ISSAM4 = 0 BEGIN SELECT ISNULL(SUM(ISNULL(BIH.[TOTAL], 0) * CASE WHEN ISNULL(BIH.[InvCr], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [DraftInvoices] FROM @matters MT2 INNER JOIN [dbo].[BillHeader] AS BIH WITH(NOLOCK) ON BIH.[MATTER] = MT2.[Code] AND ISNULL(BIH.[BILLNO], 0) = 0 END ELSE BEGIN SELECT ISNULL(SUM((ISNULL(BID.[NetValue], 0) + ISNULL(BID.[VatValue], 0)) * CASE WHEN ISNULL(BIH.[Type], 'I') = 'C' THEN -1 ELSE 1 END), 0) AS [DraftInvoices] FROM @matters MT2 INNER JOIN [dbo].[Billhead] AS BIH WITH(NOLOCK) ON BIH.[MatterCode] = MT2.[Code] AND ISNULL(BIH.[BillStatus], '') <> 'Approved' INNER JOIN [dbo].[BillDetail] AS BID ON BID.[BillID] = BIH.[BillingID] END SET NOCOUNT OFF END /************************************ * END ky_NETSPGetKYCFinancial ***********************************/ GO IF OBJECT_ID(N'KAAS_GetLinkedListData',N'P')IS NOT NULL DROP PROCEDURE KAAS_GetLinkedListData GO create PROCEDURE KAAS_GetLinkedListData (@MatterCode VARCHAR(30), @SearchText VARCHAR(30), @PageNumber INT , @PageSize INT, @SortDirection VARCHAR(30), @SortColumn VARCHAR(30) ) AS BEGIN SET NOCOUNT ON; SELECT COUNT( LMT.[RecordId] ) FROM [dbo].[LinkedMatters] LMT INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = LMT.[LinkedMatter] INNER JOIN [dbo].[Contacts] CNT ON CNT.[Code] = MAT.[ClientCode] WHERE LMT.[PrimeMatter] = @MatterCode and ( MAT.[Code] like '%'+@SearchText+'%' or MAT.[FECode] like '%'+@SearchText+'%' or CNT.[Name] like '%'+@SearchText+'%' or MAT.[Description] like '%'+@SearchText+'%' or LMT.[RelationShip] like '%'+@SearchText+'%') SELECT LMT.[RecordId] AS [RecordId], MAT.[Code] AS [CaseCode], MAT.[FECode] AS [FeeEarner], CNT.[Name] AS [Name], MAT.[Description] AS [Description], LMT.[RelationShip] AS [Relationship] FROM [dbo].[LinkedMatters] LMT INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = LMT.[LinkedMatter] INNER JOIN [dbo].[Contacts] CNT ON CNT.[Code] = MAT.[ClientCode] WHERE LMT.[PrimeMatter] = @MatterCode and ( MAT.[Code] like '%'+@SearchText+'%' or MAT.[FECode] like '%'+@SearchText+'%' or CNT.[Name] like '%'+@SearchText+'%' or MAT.[Description] like '%'+@SearchText+'%' or LMT.[RelationShip] like '%'+@SearchText+'%') order by CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CaseCode' THEN MAT.[Code] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CaseCode' THEN MAT.[Code] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'FeeEarner' THEN MAT.[FECode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'FeeEarner' THEN MAT.[FECode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN CNT.[Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN CNT.[Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN MAT.[Description] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN MAT.[Description] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'RelationShip' THEN LMT.[RelationShip] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'RelationShip' THEN LMT.[RelationShip] END END DESC OFFSET @PageSize * (@PageNumber - 1) ROWS FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE); END GO IF EXISTS (SELECT TOP 1 1 FROM [sys].[objects] AS [SO] WHERE [SO].[name] = N'KAAS_GetMatterBalances' AND [SO].[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetMatterBalances] END GO CREATE PROCEDURE [dbo].[KAAS_GetMatterBalances] ( @MatterCode VARCHAR(20)) AS /********************************************************************************************************************** * Stored Procedure Name : KAAS_GetMatterBalances * * Description: Get the Case Balances - Use this instead of ky_NETCaseSummaryPageLoad in cases where only the balances * are required, e.g. on Bill or Cheque requests. * * Modification History * 2018-08-10 Pino Carafa Created * 2019-08-06 Vinodhan Created KAAS_CaseBalances * 2024-03-22 John Ginnane #17719 - Refactored and renamed * **********************************************************************************************************************/ BEGIN SET NOCOUNT ON; DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @IsSAM4 BIT DECLARE @DebtBalance DECIMAL(19, 2) DECLARE @OutlayBalance DECIMAL(19, 2) DECLARE @ClientBalance DECIMAL(19, 2) DECLARE @ClientCurrent DECIMAL(19, 2) DECLARE @ClientDeposit DECIMAL(19, 2) DECLARE @WIPMinutes INT DECLARE @WIPTime VARCHAR(10) DECLARE @WIPValue DECIMAL(19, 2) --DECLARE @TotalMinutes INT --DECLARE @TotalTime VARCHAR(10) --DECLARE @TotalValue DECIMAL(19, 2) SET @IsSAM4 = [dbo].[ISSAM4]() IF @IsSAM4 = 1 BEGIN SET @NCOMMAND = N'SELECT @DebtBalance = CONVERT(DECIMAL(19, 2), ISNULL(SUM([TRN].[DebtorsValue]), 0)), @OutlayBalance = CONVERT(DECIMAL(19, 2), ISNULL(SUM([TRN].[OutlayValue]), 0)), @ClientBalance = ISNULL(SUM([TRN].[ClientCurrent]), 0) + ISNULL(SUM([TRN].[ClientDeposit]), 0) @ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM([TRN].[ClientCurrent]), 0)), @ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM([TRN].[ClientDeposit]), 0)) FROM [dbo].[Transactions] [TRN] WHERE [TRN].[MatterCode] = @MatterCode AND [TRN].[Posted] = ''Y'' AND [TRN].[RecType] <> ''V'' AND [TRN].[CorrectionInd] = ''L''' END ELSE BEGIN SET @NCOMMAND = N'SELECT @DebtBalance = SUM([MTL].[VALUED]), @OutlayBalance = SUM([MTL].[VALUEO]), @ClientBalance = SUM([MTL].[VALUEC]), @ClientCurrent = SUM([MTL].[VALUECC]), @ClientDeposit = SUM([MTL].[VALUECD]) FROM [dbo].[MatterLedger] AS [MTL] WHERE [MTL].[MATTER] = @MatterCode' END EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20), @DebtBalance DECIMAL(19, 2) OUTPUT, @OutlayBalance DECIMAL(19, 2) OUTPUT, @ClientBalance DECIMAL(19, 2) OUTPUT, @ClientCurrent DECIMAL(19, 2) OUTPUT, @ClientDeposit DECIMAL(19, 2) OUTPUT', @MatterCode = @MatterCode, @DebtBalance = @DebtBalance OUTPUT, @OutlayBalance = @OutlayBalance OUTPUT, @ClientBalance = @ClientBalance OUTPUT, @ClientCurrent = @ClientCurrent OUTPUT, @ClientDeposit = @ClientDeposit OUTPUT SELECT @WIPMinutes = SUM(CASE WHEN ISNULL([TIE].[Rec_Irr], '') = 'N' -- Non-chargeable time THEN 0 WHEN [TIE].[IncludeInBill] = 2 -- Time marked as "exclude from all bills" THEN 0 WHEN @IsSAM4 = 1 AND ISNULL([TIE].[InvoiceNo], 0) <> 0 -- SAM4 invoice THEN 0 WHEN @IsSAM4 = 1 -- SAM4 unbilled time THEN ISNULL([TIE].[Time], 0) WHEN @IsSAM4 = 0 -- SAM3 proportional time (time * (unbilled / total)) THEN CASE WHEN [TIE].[Charge] = 0 THEN 0 ELSE CONVERT(INT, FLOOR(CONVERT(DECIMAL(19, 2), [TIE].[Time]) * (([TIE].[Charge] - [TIE].[BilledAmount]) / [TIE].[Charge]))) END ELSE ISNULL([TIE].[Time], 0) END), @WIPValue = SUM(CASE WHEN ISNULL([TIE].[Rec_irr], '') = 'N' -- Non-chargeable THEN 0 WHEN ISNULL([TIE].[IncludeInBill], 0) = 2 -- Time marked as "exclude from all bills" THEN 0 WHEN @IsSAM4 = 1 AND ISNULL([TIE].[InvoiceNo], 0) <> 0 -- SAM4 invoice THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL([TIE].[Charge], 0) ELSE ISNULL([TIE].[Charge], 0) - ISNULL([TIE].[BilledAmount], 0) END) FROM [dbo].[TimeEntry] AS [TIE] WHERE [TIE].[Matter] = @MatterCode AND ISNULL([TIE].[TimeOrCharge], '') IN ('T', 'C') -- Format time SELECT @WIPMinutes = ISNULL(@WIPMinutes, 0), @WIPValue = ISNULL(@WIPValue, 0) SELECT @WIPTime = RIGHT('00' + CONVERT(VARCHAR(10), CONVERT(INT, @WIPMinutes) / 60), 2) + ':' + RIGHT('00' + CONVERT(VARCHAR(2), @WIPMinutes % 60), 2) SELECT LTRIM(RTRIM([MAT].[Code])) AS [MatterCode], LTRIM(RTRIM([CNT].[Name])) AS [Name], LTRIM(RTRIM([CNT].[Address])) AS [Address], LTRIM(RTRIM([MAT].[Description])) AS [Description], LTRIM(RTRIM([MAT].[FECode])) AS [FECode], CONVERT(DECIMAL(19, 2), COALESCE(@DebtBalance, [MAT].[DebtBal], 0)) AS [DebtBalance], CONVERT(DECIMAL(19, 2), COALESCE(@OutlayBalance, [MAT].[DebtBal], 0)) AS [OutlayBalance], CONVERT(DECIMAL(19, 2), COALESCE(@ClientBalance, [MAT].[DebtBal], 0)) AS [ClientBalance], CONVERT(DECIMAL(19, 2), COALESCE(@ClientCurrent, [MAT].[DebtBal], 0)) AS [ClientCurrentBalance], CONVERT(DECIMAL(19, 2), COALESCE(@ClientDeposit, [MAT].[DebtBal], 0)) AS [ClientDepositBalance], @WIPMinutes AS [WIPMinutes], @WIPTime AS [WIPTime], @WIPValue AS [WIPValue] FROM [dbo].[matters] AS [MAT] INNER JOIN [dbo].[Contacts] AS [CNT] ON [CNT].[Code] = [MAT].[ClientCode] WHERE [MAT].[Code] = @MatterCode END GO IF EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO WHERE SO.[name] = N'KAAS_GetMatterClosableDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetMatterClosableDetails] END GO CREATE PROCEDURE [dbo].[KAAS_GetMatterClosableDetails] (@Matter VARCHAR(30), @Result VARCHAR(1000) OUT) AS /******************************************************************************************************* * This stored procedure is used to Get Matter Closable Details * * * * Stored Procedure Name : [dbo].[KAAS_GetMatterClosableDetails] * * * * Modification History : * * 2023-06-01 Vignesh M Created Copied from ky_NETPMatterClosable * * 2023-06-05 Vignesh M Added Outstanding Daybook Entries With RecordIDs * * 2023-06-21 Vignesh M Close Matter Messages are consolidated * * 2023-06-26 Vignesh M Already Closed Message is removed * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @AlreadyClosed INT DECLARE @HasOutstandingRec INT DECLARE @HasOutstandingBal INT DECLARE @HasOutstandingTimeBal INT DECLARE @HasOutstandingChargeBal INT DECLARE @HasOutstandingDiary INT DECLARE @HasOutstandingUndertakings INT DECLARE @HasUnallocatedReceipts BIT DECLARE @CheckUnallocatedReceipts BIT DECLARE @HasDraftBills BIT DECLARE @CheckDraftBillsClosingMatter BIT DECLARE @IsSAM4 bit DECLARE @TempResult VARCHAR(500) SELECT @CheckDraftBillsClosingMatter = CASE WHEN [SET].[KeyName] = 'CheckDraftBillsClosingMatter' AND [SET].[KeyValue] = 'True' THEN 1 ELSE ISNULL(@CheckDraftBillsClosingMatter, 0) END, @CheckUnallocatedReceipts = CASE WHEN [SET].[KeyName] = 'CheckUnallocatedReceipts' AND [SET].[KeyValue] = 'True' THEN 1 ELSE ISNULL(@CheckUnallocatedReceipts, 0) END FROM [dbo].[Settings] AS [SET] WHERE [SET].[KeyName] IN ('CheckDraftBillsClosingMatter', 'CheckUnallocatedReceipts') SET @IsSAM4 = [dbo].[ISSAM4]() -- Please see also: ky_NETCaseSummaryPageLoad. If you change any of these calculations, -- ensure the ones in there are changed as well. -- ky_NETTLFetchTimeEntry. If you change any of these calculations, -- ensure the ones in there are changed as well. DECLARE @TimeBal INT DECLARE @ChargeBal DECIMAL(19, 2) DECLARE @TotalCharge Decimal(19, 2) DECLARE @TotalTime INT DECLARE @TimeEntryTotalCharge DECIMAL(19, 2) DECLARE @TimeEntryTotalTime INT SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0), @TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0), @TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Charge], 0) END), 0), @ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN [TIE].[IncludeInBill] = 2 THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0), @TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN [TIE].[IncludeInBill] = 2 THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN CASE WHEN TIE.[Charge] = 0 THEN 0 ELSE CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME]) * ( (TIE.[Charge] - TIE.[BilledAmount]) / TIE.[Charge]))) END ELSE ISNULL(TIE.[Time], 0) END), 0), @TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Time], 0) END), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @MATTER AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun DECLARE @DebtBal DECIMAL(19, 2) DECLARE @OutlayBal DECIMAL(19, 2) DECLARE @DebtBalDate DATETIME DECLARE @OutlayBalDate DATETIME DECLARE @ClientCurrent DECIMAL(19, 2) DECLARE @ClientDeposit DECIMAL(19, 2) DECLARE @NCOMMAND NVARCHAR(MAX) -- To ensure SAM3 will retrieve these from [dbo].[matters] SET @DebtBal = 0 SET @OutlayBal = 0 SET @ClientCurrent = 0 SET @ClientDeposit = 0 IF @IsSAM4 = 1 BEGIN SET @NCOMMAND = N' SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)), @DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)), @OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)), @ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0)) FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @MATTER AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] = ''L''' EXECUTE sp_executesql @NCOMMAND, N'@MATTER VARCHAR(20), @DebtBal DECIMAL(19, 2) OUTPUT, @DebtBalDate DATETIME OUTPUT, @OutlayBal DECIMAL(19, 2) OUTPUT, @OutlayBalDate DATETIME OUTPUT, @ClientCurrent DECIMAL(19, 2) OUTPUT, @ClientDeposit DECIMAL(19, 2) OUTPUT', @MATTER = @MATTER, @DebtBal = @DebtBal OUTPUT, @DebtBalDate = @DebtBalDate OUTPUT, @OutlayBal = @OutlayBal OUTPUT, @OutlayBalDate = @OutlayBalDate OUTPUT, @ClientCurrent = @ClientCurrent OUTPUT, @ClientDeposit = @ClientDeposit OUTPUT END SELECT @AlreadyClosed = CASE WHEN MAT.[Closed] = 'Y' THEN 1 ELSE 0 END, @HasOutstandingBal = CASE WHEN @DebtBal <> 0 THEN 1 WHEN ISNULL(MAT.[DebtBal], 0) <> 0 THEN 1 WHEN @OutlayBal <> 0 THEN 1 WHEN ISNULL(MAT.[OutlayBal], 0) <> 0 THEN 1 WHEN ISNULL(MAT.[ClientBal], 0) <> 0 --No need to check @ClientCurBal + @ClientDepBal THEN 1 WHEN @ClientCurrent <> 0 THEN 1 WHEN ISNULL(MAT.[ClientCurBal], 0) <> 0 THEN 1 WHEN @ClientDeposit <> 0 THEN 1 WHEN ISNULL(MAT.[ClientDepBal], 0) <> 0 THEN 1 ELSE 0 END, @HasOutstandingTimeBal = CASE WHEN @TimeBal <> 0 THEN 1 ELSE 0 END, @HasOutstandingChargeBal = CASE WHEN @ChargeBal <> 0 THEN 1 ELSE 0 END FROM [dbo].[matters] MAT WHERE MAT.[Code] = @MATTER SET @AlreadyClosed = ISNULL(@AlreadyClosed, 0) SET @HasOutstandingBal = ISNULL(@HasOutstandingBal, 0) SET @HasOutstandingTimeBal = ISNULL(@HasOutstandingTimeBal, 0) SET @HasOutstandingChargeBal = ISNULL(@HasOutstandingChargeBal, 0) DECLARE @YEAR INT IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N'SELECT @YEAR = ISNULL(CTL.[YEAR], DATEPART(YEAR, GetDate())) FROM [dbo].[Control] CTL IF (@YEAR IS NULL) BEGIN SET @YEAR = DATEPART(YEAR, GetDate()) END' END ELSE BEGIN SET @NCOMMAND = N'SELECT @YEAR = ISNULL(CONVERT(INT, CTL.[NumValue]), DATEPART(YEAR, GetDate())) FROM [dbo].[CtrlNum] CTL WHERE CTL.[Code] = ''CurYear'' IF (@YEAR IS NULL) BEGIN SET @YEAR = DATEPART(YEAR, GetDate()) END' END EXEC sp_executesql @NCOMMAND, N'@YEAR INT OUTPUT', @YEAR OUTPUT IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N'SELECT @HasOutstandingRec = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM [dbo].[MatterLedger] MAL INNER JOIN [dbo].[BatchH] BH INNER JOIN [dbo].[BankRecHistory] BHS ON BHS.[BANKAC] = BH.[CODE] ON BH.[BATCHNO] = MAL.[BATCHNO] AND BH.[RECNO] <= 0 AND BH.[TYPE] IN (''P'', ''R'', ''T'') WHERE MAL.[MATTER] = @MATTER AND MAL.[YEAR] = @YEAR AND MAL.[REF] <> ''EUROADJ'' SET @HasOutstandingRec = ISNULL(@HasOutstandingRec, 0)' END ELSE BEGIN SET @NCOMMAND = N'SELECT @HasOutstandingRec = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @MATTER AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''C'') AND TRN.[PostingYear] = @YEAR AND TRN.[Reconciliation] <= 0 SET @HasOutstandingRec = ISNULL(@HasOutstandingRec, 0)' END EXEC sp_executesql @NCOMMAND, N'@MATTER VARCHAR(20), @YEAR INT, @HasOutstandingRec INT OUTPUT', @MATTER, @YEAR, @HasOutstandingRec OUTPUT IF @CheckUnallocatedReceipts = 1 BEGIN IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N'SELECT @HasUnallocatedReceipts = CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END FROM [dbo].[DebtorsLedger] [DL] WHERE [DL].[MATTER] = @MATTER AND [DL].[TYPE] = ''R'' AND [DL].[OSVALUE] <> 0' END ELSE BEGIN SET @NCOMMAND = N'SELECT @HasUnallocatedReceipts = CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END FROM [dbo].[DebtorsLedger] [DL] WHERE [DL].[MatterCode] = @MATTER AND [DL].[RecType] = ''R'' AND [DL].[OSValue] <> 0' END EXEC sp_executesql @NCOMMAND, N'@MATTER VARCHAR(20), @HasUnallocatedReceipts INT OUTPUT', @MATTER, @HasUnallocatedReceipts OUTPUT END ELSE BEGIN SET @HasUnallocatedReceipts = 0 END IF @CheckDraftBillsClosingMatter = 1 BEGIN IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N'SELECT @HasDraftBills = CASE WHEN COUNT(1) > 0 THEN 1 ELSE 0 END FROM [dbo].[BillHeader] AS [BH] WHERE [BH].[MATTER] = @MATTER AND [BH].[BILLNO] = 0' END ELSE BEGIN SET @NCOMMAND = N'SELECT @HasDraftBills = CASE WHEN COUNT(1) > 0 THEN 1 ELSE 0 END FROM [dbo].[Billhead] AS [BH] WHERE [BH].[MatterCode] = @MATTER AND [BH].[InvoiceNo] = 0' END EXEC sp_executesql @NCOMMAND, N'@MATTER VARCHAR(20), @HasDraftBills BIT OUTPUT', @MATTER, @HasDraftBills OUTPUT END ELSE BEGIN SET @HasDraftBills = 0 END SELECT @HasOutstandingDiary = CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END FROM [dbo].[diary] DIA WHERE DIA.[CASECODE] = @MATTER AND DIA.[STATUS] <> 1 SELECT @HasOutstandingUndertakings = CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END FROM [dbo].[Undertakings] UND WHERE UND.[MATTER] = @MATTER AND UND.[DISCHARGEDATE] IS NULL SELECT @AlreadyClosed AS [AlreadyClosed], @HasOutstandingBal AS [HasOutstandingBal], @HasOutstandingTimeBal AS [HasOutstandingTimeBal], @HasOutstandingChargeBal AS [HasOutstandingChargeBal], @HasOutstandingRec AS [HasOutstandingRec], @HasOutstandingDiary AS [HasOutstandingDiary], @HasOutstandingUndertakings AS [HasOutstandingUndertakings], @HasUnallocatedReceipts AS [HasUnallocatedReceipts], @HasDraftBills AS [HasDraftBills] SELECT [TDB].[FeeEarn] AS [FeeEarner], RTRIM(ISNULL([HAN].[Name], 'Handler ' + ISNULL([TDB].[FeeEarn], 'unknown'))) AS [Name], [TDB].[RecordID] FROM [dbo].[TimeDayBook] [TDB] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [TDB].[FeeEarn] WHERE [TDB].[Matter] = @Matter ORDER By [TDB].[FeeEarn], [TDB].[RecordID] SET @TempResult = '' IF @HasOutstandingBal <> 0 BEGIN SET @TempResult = @TempResult + 'This case has outstanding balance.' + CHAR(13) + CHAR(10) END IF @HasOutstandingDiary <> 0 BEGIN SET @TempResult = @TempResult + 'This Case has outstanding Case Diary entries/Tasks.' + CHAR(13) + CHAR(10) END IF @HasOutstandingUndertakings <> 0 BEGIN SET @TempResult = @TempResult + 'This Case has outstanding Undertakings.' + CHAR(13) + CHAR(10) END IF @HasOutstandingTimeBal <> 0 BEGIN SET @TempResult = @TempResult + 'There is Time outstanding on this case.' + CHAR(13) + CHAR(10) END IF @HasOutstandingChargeBal <> 0 BEGIN SET @TempResult = @TempResult + 'There are charges outstanding on this case.' + CHAR(13) + CHAR(10) END IF @HasOutstandingRec <> 0 BEGIN SET @TempResult = @TempResult + 'This case has outstanding Bank Reconciliations.' + CHAR(13) + CHAR(10) END IF @HasUnallocatedReceipts <> 0 BEGIN SET @TempResult = @TempResult + 'This Case has unallocated payment requests.' + CHAR(13) + CHAR(10) END IF @HasDraftBills <> 0 BEGIN SET @TempResult = @TempResult + 'This Case has outstanding draft bills.' + CHAR(13) + CHAR(10) END SET @Result = '' IF ISNULL(@TempResult,'') != '' BEGIN SET @Result = @TempResult END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetMatterDocFolderTree', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetMatterDocFolderTree] END GO CREATE PROCEDURE [dbo].[KAAS_GetMatterDocFolderTree] ( @matter VARCHAR(20) ) AS /******************************************************************************************************** * Gets the folder structure for a Matter. Creates it if it doesn't exist, use the CasePlan folder * * structure as a template. Create it too, if it doesn't exist. * * * * Stored Procedure Name : [dbo].[KAAS_GetMatterDocFolderTree] * * Copied from : [dbo].[ky_NETSPGetMatterDocFolderTree] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2019-06-19 Vinodhan K Removed the condition to check whether UseDocFolders is set as True * * or False. For now it wil return the data even when it is set as False * *******************************************************************************************************/ BEGIN DECLARE @WKCODE CHAR(4) DECLARE @MatterCode VARCHAR(20) DECLARE @folderid INT SELECT TOP 1 @MatterCode = [SM].[CODE], @WKCODE = [TMP].[WKCODE] FROM [dbo].[SearchMatters] SM INNER JOIN [dbo].[CaseMaster] CSM ON [CSM].[CSCODE] = SM.[Code] LEFT OUTER JOIN [dbo].[Templates] [TMP] ON [TMP].[WKCODE] = [CSM].[CSWKTCODE] WHERE [CSM].[CSCODE] = @matter IF @MatterCode IS NULL BEGIN -- Dummy statement SELECT TOP 0 CONVERT(INT, 0) AS [id], CONVERT(INT, 0) AS [parent], CONVERT(VARCHAR(500), '') AS [foldername], CONVERT(INT, 0) AS [foldericon] RETURN END SELECT TOP 1 @folderid = MDF.[DocFolderID] FROM [dbo].[MatterDocFolders] MDF WHERE [MDF].[MatterCode] = @MatterCode IF @folderid IS NULL BEGIN DECLARE @DefaultRootFolderName VARCHAR(500) SELECT @DefaultRootFolderName = CONVERT(VARCHAR(500), [SET].[KeyValue]) FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'DocFolderDefaultRootName' SET @DefaultRootFolderName = RTRIM(ISNULL(@DefaultRootFolderName, 'Documents')) IF @WKCODE IS NULL BEGIN EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] '' UPDATE [DF] SET [DF].[foldername] = @DefaultRootFolderName FROM [dbo].[DocFolders] [DF] WHERE [DF].[id] = @folderid END ELSE BEGIN SELECT TOP 1 @folderid = CDF.[DocFolderID] FROM [dbo].[CasePlanDocFolders] CDF WHERE [CDF].[WKCode] = @WKCODE IF @folderid IS NULL BEGIN EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] '' UPDATE [DF] SET [DF].[foldername] = @DefaultRootFolderName FROM [dbo].[DocFolders] [DF] WHERE [DF].[id] = @folderid INSERT INTO [dbo].[CasePlanDocFolders] ([WKCode], [DocFolderID]) SELECT @WKCODE, @folderid END DECLARE @DUP TABLE ([id] INT) INSERT INTO @DUP EXEC @folderid = [dbo].[KAAS_DuplicateDocFolderTree] @folderid END INSERT INTO [dbo].[MatterDocFolders] ([MatterCode], [DocFolderID]) SELECT @MatterCode, @folderid END SELECT * FROM [dbo].[KAAS_FN_GetDocFolders](@matter, @folderid, 1, 1) END GO IF OBJECT_ID(N'KAAS_GetMatterFileColour',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetMatterFileColour] GO CREATE PROCEDURE [dbo].[KAAS_GetMatterFileColour] (@CaseCode VARCHAR(20)) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_GetMatterFileColour] * * Description: To get file colour for specified Matter Code * * * * Modification History: * * 2021-09-30 Aakif Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT ISNULL([MAT].[FileColour], '') AS [FileColour], ISNULL([FC].[COLOURDESC], '') AS [ColourDescription], ISNULL([FC].[RGBColour], '') AS [RGBValue], ISNULL([FC].[BackgroundColour], '') AS [BackgroundColour], ISNULL([FC].[ForegroundColour], '') AS [ForegroundColour] FROM [dbo].[matters] [MAT] JOIN [dbo].[FileColours] [FC] ON [MAT].[FileColour] = [FC].[COLOURCODE] WHERE [MAT].[Code] = @CaseCode SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetMatterLedger' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetMatterLedger] END GO CREATE PROCEDURE [dbo].[KAAS_GetMatterLedger] ( @MatterCode VARCHAR(20), @PageNumber INT = NULL, @PageSize INT = NULL, @SearchText VARCHAR(400) = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL ) AS /******************************************************************************************************* * * *Used to list the matter ledger * * * * Stored Procedure Name: [dbo].[KAAS_WebApi_DeleteOtherContacts] * * Copied From: [dbo].[ky_NETGetMatterLedger] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * * 2021-07-26 Aakif Used proper concatenation in dynamic query to avoid SQL injection * * 2021-12-07 Aakif Included additional fields for cleared balances for all bill value, * * Payee, bank & Cleared date * * 2023-09=01 Revathy.D Modified logic to fetch summary data. Ticket : 17040 * *******************************************************************************************************/ BEGIN DECLARE @SQL NVARCHAR(MAX) DECLARE @ISSAM4 BIT SELECT @ISSAM4 = [dbo].[ISSAM4]() DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF(RTRIM(ISNULL(@SearchText, '')) = '' OR RTRIM(@SearchText) = '') BEGIN SET @SearchText = '' END DECLARE @TODAY DATETIME SET @TODAY = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) IF @ISSAM4 = 0 BEGIN SET @SQL = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #MatterLedgerTable FROM (SELECT [MTL].[MATTER] AS [Matter], ISNULL([MTL].[BATCHNO], 0) AS [BATCHNO], ISNULL([MTL].[PREF], 0) AS [Pref], CONVERT(NVARCHAR(30),[MTL].[DATE],23) AS [Date], ISNULL([MTL].[REF], '''') AS [Reference], ISNULL([MTL].[NARR], '''') AS [Narrative], ISNULL([MTL].[VALUED], 0) AS [Billing], ISNULL([MTL].[VALUEO], 0) AS [OutLay], ISNULL([MTL].[VALUECC], 0) AS [ClientCurrent], ISNULL([MTL].[VALUECD], 0) AS [Deposit], ISNULL([MTL].[FEE], '''') AS [Fee], [MTL].[EntryDate] AS [EntryDate], LTRIM(RTRIM( ISNULL([BAH].[Payee], ''''))) AS [Payee], CASE WHEN ISNULL([BAH].[TYPE], '''') IN (''R'', ''T'', ''P'', ''J'') THEN LTRIM(RTRIM(ISNULL([NOM].[DESC], ISNULL([BAH].[CODE], '''')))) ELSE '''' END AS [Bank], ISNULL([MTL].[ClearedDate], [MTL].[DATE]) AS [ClearedDate], ISNULL([MTL].[CLIENT], '''') AS [Client], ISNULL([MTL].[LREF], 0) AS [LRef], ISNULL([MTL].[BILLED], 0) AS [Billed], CASE WHEN CHARINDEX(''undertaking'', ISNULL([MTL].[NARR], '''')) > 0 THEN 1 WHEN ISNULL([MTL].[PREF], 0) = 0 THEN 0 ELSE 2 END AS [RowHighlight], ISNULL([BAH].[TYPE], '''') AS [Type], ISNULL([BAD].[OUTLAYCODE],'''') AS [OutlayCode], RTRIM(ISNULL([BAD].[OUTLAYDESC], '''')) AS [OutlayDesc], 0 AS [Unbilled] /* Not used in SAM3 */ FROM [dbo].[MatterLedger] AS [MTL] LEFT OUTER JOIN [dbo].[BatchH] AS [BAH] ON [BAH].[BATCHNO] = [MTL].[BATCHNO] AND [BAH].[BATCHNO] <> 0 LEFT OUTER JOIN [dbo].[Nominal] AS [NOM] ON [BAH].[CODE] = [NOM].[CODE] OUTER APPLY (SELECT TOP 1 [BDL].[OUTLAYCODE], [OLC].[DESCRIPTION] AS [OUTLAYDESC] FROM [dbo].[BatchDetails] [BDL] LEFT OUTER JOIN [dbo].[OutlayCode] [OLC] ON [OLC].[CODE] = [BDL].[OUTLAYCODE] WHERE [BDL].[BATCHNO] = [MTL].[BATCHNO] AND [BDL].[PREF] = [MTL].[PREF] AND [BDL].[BATCHNO] <> 0) [BAD] WHERE ( @SearchText = '''' OR ( [MTL].[MATTER] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[BATCHNO] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[PREF] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[DATE] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[REF] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[NARR] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[VALUED] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[VALUEO] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[VALUECC] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[VALUECD] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[FEE] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[EntryDate] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[CLIENT] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[LREF] LIKE ''%'' + @SearchText + ''%'' OR [MTL].[BILLED] LIKE ''%'' + @SearchText + ''%'' OR [BAH].[TYPE] LIKE ''%'' + @SearchText + ''%'' OR [BAD].[OUTLAYCODE] LIKE ''%'' + @SearchText + ''%'' OR [BAD].[OUTLAYDESC] LIKE ''%'' + @SearchText + ''%'' ) ) AND [MTL].[MATTER] = @MatterCode) AS FoundTable' IF((@SortColumn IS NULL) AND (RTRIM(@SortColumn) = '')) BEGIN SET @SQL = @SQL + ' ORDER BY [Matter] ASC, [Date] ASC, [LRef] ASC' END IF((@SortColumn IS NOT NULL) AND (RTRIM(@SortColumn) != '')) BEGIN SET @SQL = @SQL + ' ORDER BY ' + @SortColumn + ' ' + @SortDirection END SET @SQL = @SQL +' SELECT * FROM #MatterLedgerTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #MatterLedgerTable' SET @SQL = @SQL +' SELECT TOP 1 ISNULL([MAT].[ClientMin], 0) AS [ClientMin], ISNULL([MTL].[BillingSum], 0) AS [BillingSum], ISNULL([MTL].[OutlaySum], 0) AS [OutlaySum], ISNULL([MTL].[CurrentSum], 0) AS [CurrentSum], ISNULL([MTL].[DepositSum], 0) AS [DepositSum], ISNULL([UND].[Undertakings], 0) AS [Undertakings], 0 AS [WIP], ISNULL([MTL].[ClearedBillingSum], 0) AS [ClearedBillingSum], ISNULL([MTL].[ClearedOutlaySum], 0) AS [ClearedOutlaySum], ISNULL([MTL].[ClearedCurrentSum], 0) AS [ClearedCurrentSum], ISNULL([MTL].[ClearedDepositSum], 0) AS [ClearedDepositSum] FROM [dbo].[matters] AS [MAT] OUTER APPLY (SELECT SUM(MTL.[Billing]) AS [BillingSum], SUM(MTL.[OutLay]) AS [OutlaySum], SUM(MTL.[ClientCurrent]) AS [CurrentSum], SUM(MTL.[Deposit]) AS [DepositSum], SUM(CASE WHEN [MTL].[ClearedDate]<= @TODAY THEN [MTL].[Billing] ELSE 0 END) AS [ClearedBillingSum], SUM(CASE WHEN [MTL].[ClearedDate]<= @TODAY THEN [MTL].[OutLay] ELSE 0 END) AS [ClearedOutlaySum], SUM(CASE WHEN [MTL].[ClearedDate]<= @TODAY THEN [MTL].[ClientCurrent] ELSE 0 END) AS [ClearedCurrentSum], SUM(CASE WHEN [MTL].[ClearedDate]<= @TODAY THEN [MTL].[Deposit] ELSE 0 END) AS [ClearedDepositSum] FROM #MatterLedgerTable MTL) AS MTL OUTER APPLY (SELECT COUNT(1) AS [Undertakings] FROM [dbo].[Undertakings] AS UND WHERE UND.[MATTER] = @MatterCode AND UND.[DISCHARGEDATE] IS NULL) AS UND WHERE MAT.[Code] = @MatterCode' END ELSE BEGIN SET @SQL = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #MatterLedgerTable FROM (SELECT TRN.[MatterCode] AS [Matter], ISNULL(TRN.[BatchNo], 0) AS [BATCHNO], ISNULL(TRN.[PostRef], 0) AS [Pref], TRN.[TransDate] AS [Date], ISNULL(TRN.[TransRef], '''') AS [Reference], ISNULL(TRN.[Narrative], '''') AS [Narrative], ISNULL(TRN.[DebtorsValue], 0) AS [Billing], ISNULL(TRN.[OutlayValue], 0) AS [OutLay], ISNULL(TRN.[ClientCurrent], 0) AS [ClientCurrent], ISNULL(TRN.[ClientDeposit], 0) AS [Deposit], ISNULL(TRN.[FeeEarner], '''') AS [Fee], TRN.[EntryDate] AS [EntryDate], ISNULL(MAT.[ClientCode], '''') AS [Client], ISNULL(TRN.[XnID], 0) AS [LRef], '''' AS [Billed], /* Not used in SAM4 */ CASE WHEN CHARINDEX(''undertaking'', ISNULL(TRN.[Narrative], '''')) > 0 THEN 1 WHEN ISNULL(TRN.[PostRef], 0) = 0 THEN 0 ELSE 2 END AS [RowHighlight], ISNULL(TRN.[XnType], '''') AS [Type], ISNULL(TRN.[OutlayCode], '''') AS [OutlayCode], [TRN].[Seq] AS [Seq], RTRIM(ISNULL([OLC].[DESCRIPTION], '''')) AS [OutlayDesc], CASE WHEN TRN.[XnType] IN (''P'', ''B'', ''J'') AND ISNULL(TRN.[OutlayValue], 0) <> 0 AND ISNULL(TRN.[BilledOutlay], 0) = 0 THEN 1 WHEN TRN.[XnType] IN (''P'', ''B'', ''J'') AND ISNULL(TRN.[OutlayValue], 0) <> 0 AND ISNULL(TRN.[BilledOutlay], 0) <> ISNULL(TRN.[OutlayValue], 0) THEN 2 ELSE 0 END AS [Unbilled] FROM [dbo].[matters] AS MAT INNER JOIN [dbo].[Transactions] AS TRN LEFT OUTER JOIN [dbo].[OutlayCode] [OLC] ON [OLC].[OutlayCode] = [TRN].[OutlayCode] ON MAT.[Code] = TRN.[MatterCode] WHERE ( @SearchText = '''' OR ( [TRN].[MatterCode] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[BatchNo] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[PostRef] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[TransDate] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[TransRef] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[Narrative] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[DebtorsValue] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[OutlayValue] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[ClientCurrent] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[ClientDeposit] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[FeeEarner] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[EntryDate] LIKE ''%'' + @SearchText + ''%'' OR [MAT].[ClientCode] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[XnID] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[XnType] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[OutlayCode] LIKE ''%'' + @SearchText + ''%'' OR [TRN].[BilledOutlay] LIKE ''%'' + @SearchText + ''%'' OR [OLC].[DESCRIPTION] LIKE ''%'' + @SearchText + ''%'' ) ) AND MAT.[Code] = @MatterCode AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] IN (''L'', ''C'')) AS FoundTable' IF((@SortColumn IS NULL) AND (RTRIM(@SortColumn) = '')) BEGIN SET @SQL = @SQL + ' ORDER BY [Matter] ASC, [Date] ASC, [Seq] ASC, [LRef] ASC' END IF((@SortColumn IS NOT NULL) AND (RTRIM(@SortColumn) != '')) BEGIN SET @SQL = @SQL + ' ORDER BY ' + @SortColumn + ' ' + @SortDirection END SET @SQL = @SQL + ' SELECT * FROM #MatterLedgerTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecords] FROM #MatterLedgerTable' SET @SQL = @SQL + ' SELECT ISNULL(MAT.[ClientMin], 0) AS [ClientMin], 0.00 AS [BillingSum], /* These balances aren''t used in SAM4. They are calculated on the client machine */ 0.00 AS [OutlaySum], 0.00 AS [CurrentSum], 0.00 AS [DepositSum], ISNULL(UND.[Count], 0) AS [Undertakings], ISNULL(TIE.[WIP], 0) AS [WIP] FROM [dbo].[matters] AS MAT OUTER APPLY (SELECT COUNT(1) AS [Count] FROM [dbo].[Undertakings] AS UND WHERE UND.[MATTER] = @MatterCode AND UND.[DISCHARGEDATE] IS NULL) AS UND OUTER APPLY (SELECT SUM(ISNULL(TIE.[Charge], 0)) AS [WIP] FROM [dbo].[TimeEntry] AS TIE WHERE TIE.[Matter] = @MatterCode AND TIE.[InvoiceNo] = 0 AND TIE.[Rec_Irr] = ''C'' AND TIE.[IncludeInBill] <> 2 AND TIE.[TimeOrCharge] IN (''T'', ''C'')) AS TIE WHERE MAT.[Code] = @MatterCode' END IF ISNULL(@SQL, '') <> '' BEGIN EXEC sp_executesql @SQL, N'@MatterCode VARCHAR(20), @SearchText VARCHAR(400), @SortColumn VARCHAR(50), @SortDirection VARCHAR(10), @StartRow INT, @EndRow INT, @TODAY DATETIME', @MatterCode = @matterCode, @SearchText = @searchText, @SortColumn = @sortColumn, @SortDirection = @sortDirection, @StartRow = @startRow, @EndRow = @endRow, @TODAY = @TODAY END END GO IF OBJECT_ID(N'KAAS_GetMatterLedgerDetail', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetMatterLedgerDetail] END GO CREATE PROCEDURE [dbo].[KAAS_GetMatterLedgerDetail] (@MatterCode VARCHAR(20)) AS /****************************************************************************************************************** * * * Used to fetch matter ledger and account summary details * * * * Stored Procedure Name: [dbo].[KAAS_GetMatterLedgerDetail] * * Copied from : [dbo].[ky_NETGetMatterLedger] * * [dbo].[ky_NETGetMatterLedgerSAM4] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * ******************************************************************************************************************/ BEGIN DECLARE @IsSAM4 bit DECLARE @Query NVARCHAR(200) SET @IsSAM4 = [dbo].[ISSAM4]() EXECUTE KAAS_GetMatterLedger @MatterCode /*Account Summary*/ DECLARE @NCOMMAND nvarchar(MAX) DECLARE @DraftBillValue DECIMAL(18, 2) IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0) FROM [dbo].[BillHeader] HED INNER JOIN [dbo].[BillDetails] BD ON BD.[DRAFTNO] = HED.[DRAFTNO] WHERE HED.[MATTER] = @MatterCode AND HED.[BILLNO] = 0' END ELSE BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0) FROM [dbo].[BillHead] HED INNER JOIN [dbo].[BillDetail] BD ON BD.[BillID] = HED.[BillingID] WHERE HED.[MatterCode] = @MatterCode AND HED.[BillStatus] <> ''Approved'' AND ISNULL(HED.[ProForma], '''') = ''Y''' END EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @MatterCode = @MatterCode, @DraftBillValue=@DraftBillValue OUTPUT DECLARE @Section68 VARCHAR(10) DECLARE @IsApproved VARCHAR(10) DECLARE @TimeBal INT DECLARE @ChargeBal DECIMAL(19, 2) DECLARE @TotalCharge Decimal(19, 2) DECLARE @TotalTime INT --Matter values that are re-used elsewhere in this procedure. SELECT @Section68 = ISNULL(MAT.[Section68],''), @IsApproved = ISNULL(CON.[Approved],'') FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE MAT.[Code] = @MatterCode DECLARE @LDIADATE DATETIME DECLARE @LDIAACTIONTYPE VARCHAR(1) DECLARE @LDIATEXT1 VARCHAR(MAX) DECLARE @LDIAFNCODE VARCHAR(10) SELECT TOP 1 @LDIADATE = LDIA.[DATE], @LDIAACTIONTYPE = LDIA.[ACTIONTYPE], @LDIATEXT1 = LDIA.[TEXT1], @LDIAFNCODE = LDIA.[FNCODE] FROM [dbo].[diary] LDIA WHERE LDIA.[CASECODE] = @MatterCode ORDER BY LDIA.[DATE] DESC DECLARE @MDIADATE DATETIME DECLARE @MDIAACTIONTYPE VARCHAR(1) DECLARE @MDIATEXT1 VARCHAR(MAX) DECLARE @MDIAFNCODE VARCHAR(10) SELECT TOP 1 @MDIADATE= MDIA.[DATE], @MDIAACTIONTYPE = MDIA.[ACTIONTYPE], @MDIATEXT1 = MDIA.[TEXT1], @MDIAFNCODE = MDIA.[FNCODE] FROM [dbo].[diary] MDIA WHERE MDIA.[CASECODE] = @MatterCode AND MDIA.[HIGHLIGHTED] = 'Y' ORDER BY MDIA.[DATE] DESC DECLARE @NDIADATE DATETIME DECLARE @NDIAACTIONTYPE VARCHAR(1) DECLARE @NDIATEXT1 VARCHAR(MAX) DECLARE @NDIAFNCODE VARCHAR(10) SELECT TOP 1 @NDIADATE = NDIA.[DATE], @NDIAACTIONTYPE = NDIA.[ACTIONTYPE], @NDIATEXT1 = NDIA.[TEXT1], @NDIAFNCODE = NDIA.[FNCODE] FROM dbo.[diary] NDIA WHERE NDIA.[CASECODE] = @MatterCode AND NDIA.[STATUS] = 0 ORDER BY NDIA.[DATE] ASC DECLARE @TIEDATE DATETIME --Pino 2015-05-27 Start --SELECT @TIEDATE = (MAX(TIE.[DATE])) -- FROM [dbo].[TimeEntry] TIE -- WHERE TIE.[Matter] = @MatterCode IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL THEN CONVERT(DATETIME, NULL) WHEN DLG.[DATE] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE DLG.[DATE] END) FROM [dbo].[DebtorsLedger] DLG WHERE DLG.[MATTER] = @MatterCode' END ELSE BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL THEN CONVERT(DATETIME, NULL) WHEN TRN.[TransDate] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE TRN.[TransDate] END) FROM [dbo].[Transactions] TRN WHERE TRN.[Posted] = ''Y'' AND TRN.[MatterCode] = @MatterCode AND TRN.[DebtorsValue] <> 0 AND TRN.[CorrectionInd] = ''L'' AND ( ( TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'') OR ( TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))' END EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @MatterCode = @MatterCode, @TIEDATE = @TIEDATE OUTPUT --Pino 2015-05-27 End DECLARE @LastTimeEntryDate DATETIME DECLARE @LastTimeEntryTime INT DECLARE @LastTimeEntryRate DECIMAL(10, 2) DECLARE @LastTimeEntryCharge DECIMAL(10, 2) DECLARE @LastTimeEntryTask VARCHAR(6) DECLARE @LastTimeEntryComment VARCHAR(1000) DECLARE @LastTimeEntryFE VARCHAR(10) DECLARE @TimeEntryTotalCharge DECIMAL(19, 2) DECLARE @TimeEntryTotalTime INT SELECT TOP (1) @LastTimeEntryDate = TIE.[DATE], @LastTimeEntryTime = TIE.[Time], @LastTimeEntryRate = TIE.[Rate], @LastTimeEntryCharge = TIE.[Charge], @LastTimeEntryTask = TIE.[Task], @LastTimeEntryComment = TIE.[Comment], @LastTimeEntryFE = TIE.[FeeEarn] FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @MatterCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun ORDER BY TIE.[Date] DESC, TIE.[Time] DESC SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0) SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0) -- Please see also: ky_NETFNMatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- ky_NETPMatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- ky_NETTLFetchTimeEntry. If you change any of these calculations, -- ensure the ones in there are changed as well. SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0), @TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0), @TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Charge], 0) END), 0), @ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0), @TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN CASE WHEN TIE.[Charge] = 0 THEN 0 ELSE CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME]) * ( (TIE.[Charge] - TIE.[BilledAmount]) / TIE.[Charge]))) END ELSE ISNULL(TIE.[Time], 0) END), 0), @TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Time], 0) END), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @MatterCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun DECLARE @DebtBal DECIMAL(19, 2) DECLARE @OutlayBal DECIMAL(19, 2) DECLARE @DebtBalDate DATETIME DECLARE @OutlayBalDate DATETIME DECLARE @ClientCurrent DECIMAL(19, 2) DECLARE @ClientDeposit DECIMAL(19, 2) -- Please see also: ky_NETFNMatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- ky_NETTLFetchTimeEntry. If you change any of these calculations, -- ensure the ones in there are changed as well. -- To ensure SAM3 will retrieve these from [dbo].[matters] SET @DebtBal = 0 SET @OutlayBal = 0 SET @ClientCurrent = 0 SET @ClientDeposit = 0 IF @IsSAM4 = 1 BEGIN SET @NCOMMAND = N' SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)), @DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)), @OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)), @ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0)) FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @MatterCode AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] = ''L''' EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20), @DebtBal DECIMAL(19, 2) OUTPUT, @DebtBalDate DATETIME OUTPUT, @OutlayBal DECIMAL(19, 2) OUTPUT, @OutlayBalDate DATETIME OUTPUT, @ClientCurrent DECIMAL(19, 2) OUTPUT, @ClientDeposit DECIMAL(19, 2) OUTPUT', @MatterCode = @MatterCode, @DebtBal = @DebtBal OUTPUT, @DebtBalDate = @DebtBalDate OUTPUT, @OutlayBal = @OutlayBal OUTPUT, @OutlayBalDate = @OutlayBalDate OUTPUT, @ClientCurrent = @ClientCurrent OUTPUT, @ClientDeposit = @ClientDeposit OUTPUT END --Result Set 0 --Matter Data SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code], RTRIM(ISNULL(MAT.[Description], '')) AS [Description], RTRIM(ISNULL(MAT.[ClientCode], '')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '')) AS [CLName], RTRIM(ISNULL(CLT.[CLADDR], '')) AS [CLAddr], RTRIM(ISNULL(MAT.[FECode], '')) AS [FECode], RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName], RTRIM(ISNULL(MAT.[Dept], '')) AS [Dept], RTRIM(ISNULL(DPT.[DESC], '')) AS [Desc], RTRIM(MAT.WType) AS [WType], RTRIM(ISNULL(WKT.[DESC], '')) AS [WorkType], MAT.[Started] AS [Started], MAT.[EstFee] AS [EstFee], MAT.[ExpBillD] AS [ExpBillD], CONVERT(DECIMAL(19, 2), CASE WHEN @DebtBal <> 0 THEN @DebtBal ELSE ISNULL(MAT.[DebtBal], 0) END) AS [DebtBal], CONVERT(DECIMAL(19, 2), CASE WHEN @OutlayBal <> 0 THEN @OutlayBal ELSE ISNULL(MAT.[OutlayBal], 0) END) AS [OutlayBal], MAT.[OutlayBud] AS [OutlayBud], CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0 THEN @ClientCurrent + @ClientDeposit WHEN @ClientDeposit <> 0 THEN @ClientCurrent + @ClientDeposit ELSE ISNULL(MAT.[ClientBal], 0) END) AS [ClientBal], CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0 THEN @ClientCurrent ELSE ISNULL(MAT.[ClientCurBal], 0) END) AS [ClientCurBal], CONVERT(DECIMAL(19, 2), CASE WHEN @ClientDeposit <> 0 THEN @ClientDeposit ELSE ISNULL(MAT.[ClientDepBal], 0) END) AS [ClientDepBal], MAT.[StatuteLimits] AS [StatuteLimits], RTRIM(ISNULL(MAT.[User1], '')) AS [User1], RTRIM(ISNULL(MAT.[User2], '')) AS [User2], RTRIM(ISNULL(MAT.[User3], '')) AS [User3], MAT.[Value] AS [Value], @TimeBal AS [TimeBal], CASE WHEN LEN(@TimeBal / 60) < 2 THEN '0' + CAST(@TimeBal / 60 AS VARCHAR) ELSE CAST(@TimeBal / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @TimeBal) % 60), 2, 2) AS [TimeBalHours], @ChargeBal AS [ChargeBal], CASE WHEN LEN(@TotalTime / 60) < 2 THEN '0' + CAST(@TotalTime / 60 AS VARCHAR) ELSE CAST(@TotalTime / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @TotalTime) % 60), 2, 2) AS [TotalHours], @TotalCharge AS [TotalCharge], MAT.[FileColour] AS [FileColour], RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef], RTRIM(ISNULL(MAT.[Status], '')) AS [Status], MAT.[StatuteLimits] AS [StatuteLims], RTRIM(ISNULL(MAT.[Comment], '')) AS [Comment], @DraftBillValue AS [DraftBillTotal], @TIEDATE AS [LastBillDate], @LDIADATE AS [LastActionDate], RTRIM(ISNULL(@LDIAActionType, '')) AS [LastActionType], RTRIM(ISNULL(@LDIATEXT1, '')) AS [LastActionText], RTRIM(ISNULL(@LDIAFNCODE, '')) AS [LastActionFE], @MDIADATE AS [LastMilestoneDate], RTRIM(ISNULL(@MDIAActionType, '')) AS [LastMilestoneType], RTRIM(ISNULL(@MDIATEXT1, '')) AS [LastMilestoneText], RTRIM(ISNULL(@MDIAFNCODE, '')) AS [LastMilestoneFE], @NDIADATE AS [NextActionDate], RTRIM(ISNULL(@NDIAActionType, '')) AS [NextActionType], RTRIM(ISNULL(@NDIATEXT1, '')) AS [NextActionText], RTRIM(ISNULL(@NDIAFNCODE, '')) AS [NextActionFE], @LastTimeEntryDate AS [LastTimeEntryDate], @LastTimeEntryTime AS [LastTimeEntryTime], @LastTimeEntryRate AS [LastTimeEntryRate], @LastTimeEntryCharge AS [LastTimeEntryCharge], @LastTimeEntryTask AS [LastTimeEntrytask], @LastTimeEntryComment AS [LastTimeEntryComment], @LastTimeEntryFE AS [LastTimeEntryFE], @TimeEntryTotalCharge AS [TimeEntryTotalCharge], @TimeEntryTotalTime AS [TotalTime], STC.[DESCRIPTION] AS [StatusCodeDescription], CSM.[CSWKTCODE] AS [CSWKTCode], TMP.[WKDESC] AS [WKDesc], CASE WHEN MAT.[ShowCommentInAlarm] = 'Y' THEN 'True' ELSE 'False' END AS [ShowCommentInAlarm], RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [FileColourDescription], ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB], @Section68 AS [Section68], @IsApproved AS [IsApproved] FROM dbo.[matters] MAT LEFT JOIN dbo.[WorkTypes] WKT ON WKT.[CODE] = MAT.[WType] LEFT OUTER JOIN dbo.[Departments] DPT ON DPT.[CODE] = MAT.[Dept] LEFT OUTER JOIN dbo.[Handlers] HAN ON HAN.[CODE] = MAT.[FECode] LEFT OUTER JOIN dbo.[client] CLT ON CLT.[CLCODE] = MAT.[ClientCode] LEFT OUTER JOIN dbo.[StatusCodes] STC ON STC.[CODE] = MAT.[Status] LEFT OUTER JOIN dbo.[CaseMaster] CSM LEFT OUTER JOIN dbo.[Templates] TMP ON TMP.[WKCODE] = CSM.[CSWKTCODE] ON CSM.[CSCODE] = MAT.[Code] LEFT OUTER JOIN [dbo].[FileColours] FCL ON FCL.[COLOURCODE] = MAT.[FileColour] WHERE MAT.[Code] = @MatterCode --Result Set 6 --Total Time [Activity] SELECT CASE WHEN LEN(TIES.[TOTALTIME] / 60) < 2 THEN '0' + CAST(TIES.[TOTALTIME] / 60 AS VARCHAR) ELSE CAST(TIES.[TOTALTIME] / 60 AS VARCHAR) END + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [ActivityTotalTime], TIES.[Value] AS [ActivityTotalValue] FROM ( SELECT ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME], SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[MATTER] = MAT.[Code] WHERE TIE.[MATTER] = @MatterCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) AND TIE.[TASK] <> 'WRI') TIES --Result Set 7 --Write off time SELECT TIES.[WriteOffValue] As [WriteOffValue] FROM ( SELECT SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [WriteOffValue] FROM [dbo].[matters] MAT INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[MATTER] = MAT.[Code] WHERE TIE.[MATTER] = @MatterCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) AND TIE.[Task] = 'WRI') TIES -- PLEASE NOTE THAT THE CALCULATION BELOW IS ALSO USED IN ky_NETTLFetchTimeEntry, so -- please modify both procedures if this needs to be changed. -- Result Set 10 -- The fees issued to date IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT ISNULL(SUM((CASE WHEN HED.[INVCR] = ''I'' THEN TRN.[VALUE] ELSE TRN.[VALUE] * - 1 END)), 0) AS [FeesIssued] FROM [dbo].[BatchH] HED INNER JOIN [dbo].[BatchDetails] TRN ON TRN.[BATCHNO] = HED.[BATCHNO] WHERE HED.[MATTER] = @MatterCode AND HED.[POSTED] = ''Y'' AND TRN.[TYPE] = ''I'' AND TRN.[OUTLAY] = ''F''' END ELSE BEGIN SET @NCOMMAND = N' DECLARE @TotalFeesBilled DECIMAL(22, 2) SELECT @TotalFeesBilled = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[TransactionsHeaders] HED INNER JOIN [dbo].[Transactions] TRN ON TRN.[BatchNo] = HED.[BatchNo] AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') WHERE HED.[MatterCode] = @MatterCode --values imported from Axxia SELECT @TotalFeesBilled = @TotalFeesBilled + ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0) FROM [dbo].[Transactions] TRN LEFT OUTER JOIN [dbo].[TransactionsHeaders] HED ON HED.[BatchNo] = TRN.[BatchNo] WHERE TRN.[MatterCode] = @MatterCode AND TRN.[RecType] = ''D'' AND TRN.[LineType] = ''F'' AND TRN.[XnType] = ''I'' AND TRN.[Posted] = ''Y'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''X'') AND HED.[BatchNo] IS NULL SELECT @TotalFeesBilled AS [FeesIssued]' END EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20)', @MatterCode = @MatterCode -- Result Set 11 -- Current outstanding fees IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(DTL.[OSFees], 0)), 0)) AS [OSFees] FROM [dbo].[DebtorsLedger] DTL WHERE DTL.[matter] = @MatterCode' END ELSE BEGIN SET @NCOMMAND = N' SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[FeesOS], 0)), 0)) AS [OSFees] FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @MatterCode AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] = ''L''' END EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20)', @MatterCode = @MatterCode SELECT @IsSAM4 AS [IsSAM4] END GO IF OBJECT_ID(N'KAAS_GetMatterLedgerDetail_Web', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetMatterLedgerDetail_Web] END GO CREATE PROCEDURE [dbo].[KAAS_GetMatterLedgerDetail_Web] ( @MatterCode VARCHAR(20), @PageNumber INT = NULL, @PageSize INT = NULL, @SearchText VARCHAR(400) = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL ) AS /****************************************************************************************************************** * * * Used to fetch matter ledger and account summary details * * * * Stored Procedure Name: [dbo].[KAAS_GetMatterLedgerDetail_Web] * * Copied from : [dbo].[ky_NETGetMatterLedger] * * [dbo].[ky_NETGetMatterLedgerSAM4] * * * * Modification History: * * 2019-06-05 Vinodhan K Created * ******************************************************************************************************************/ BEGIN DECLARE @IsSAM4 bit DECLARE @Query NVARCHAR(200) SET @IsSAM4 = [dbo].[ISSAM4]() EXECUTE KAAS_GetMatterLedger @MatterCode, @PageNumber, @PageSize, @SearchText, @SortColumn, @SortDirection /*Account Summary*/ DECLARE @NCOMMAND nvarchar(MAX) DECLARE @DraftBillValue DECIMAL(18, 2) IF @IsSAM4 = 0 BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0) FROM [dbo].[BillHeader] HED INNER JOIN [dbo].[BillDetails] BD ON BD.[DRAFTNO] = HED.[DRAFTNO] WHERE HED.[MATTER] = @MatterCode AND HED.[BILLNO] = 0' END ELSE BEGIN SET @NCOMMAND = N' SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0) FROM [dbo].[BillHead] HED INNER JOIN [dbo].[BillDetail] BD ON BD.[BillID] = HED.[BillingID] WHERE HED.[MatterCode] = @MatterCode AND HED.[BillStatus] <> ''Approved'' AND ISNULL(HED.[ProForma], '''') = ''Y''' END EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @MatterCode = @MatterCode, @DraftBillValue=@DraftBillValue OUTPUT DECLARE @Section68 VARCHAR(10) DECLARE @IsApproved VARCHAR(10) DECLARE @TimeBal INT DECLARE @ChargeBal DECIMAL(19, 2) DECLARE @TotalCharge Decimal(19, 2) DECLARE @TotalTime INT --Matter values that are re-used elsewhere in this procedure. SELECT @Section68 = ISNULL(MAT.[Section68],''), @IsApproved = ISNULL(CON.[Approved],'') FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE MAT.[Code] = @MatterCode DECLARE @LDIADATE DATETIME DECLARE @LDIAACTIONTYPE VARCHAR(1) DECLARE @LDIATEXT1 VARCHAR(MAX) DECLARE @LDIAFNCODE VARCHAR(10) SELECT TOP 1 @LDIADATE = LDIA.[DATE], @LDIAACTIONTYPE = LDIA.[ACTIONTYPE], @LDIATEXT1 = LDIA.[TEXT1], @LDIAFNCODE = LDIA.[FNCODE] FROM [dbo].[diary] LDIA WHERE LDIA.[CASECODE] = @MatterCode ORDER BY LDIA.[DATE] DESC DECLARE @MDIADATE DATETIME DECLARE @MDIAACTIONTYPE VARCHAR(1) DECLARE @MDIATEXT1 VARCHAR(MAX) DECLARE @MDIAFNCODE VARCHAR(10) SELECT TOP 1 @MDIADATE= MDIA.[DATE], @MDIAACTIONTYPE = MDIA.[ACTIONTYPE], @MDIATEXT1 = MDIA.[TEXT1], @MDIAFNCODE = MDIA.[FNCODE] FROM [dbo].[diary] MDIA WHERE MDIA.[CASECODE] = @MatterCode AND MDIA.[HIGHLIGHTED] = 'Y' ORDER BY MDIA.[DATE] DESC DECLARE @NDIADATE DATETIME DECLARE @NDIAACTIONTYPE VARCHAR(1) DECLARE @NDIATEXT1 VARCHAR(MAX) DECLARE @NDIAFNCODE VARCHAR(10) SELECT TOP 1 @NDIADATE = NDIA.[DATE], @NDIAACTIONTYPE = NDIA.[ACTIONTYPE], @NDIATEXT1 = NDIA.[TEXT1], @NDIAFNCODE = NDIA.[FNCODE] FROM dbo.[diary] NDIA WHERE NDIA.[CASECODE] = @MatterCode AND NDIA.[STATUS] = 0 ORDER BY NDIA.[DATE] ASC DECLARE @TIEDATE DATETIME --Pino 2015-05-27 Start --SELECT @TIEDATE = (MAX(TIE.[DATE])) -- FROM [dbo].[TimeEntry] TIE -- WHERE TIE.[Matter] = @MatterCode IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL THEN CONVERT(DATETIME, NULL) WHEN DLG.[DATE] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE DLG.[DATE] END) FROM [dbo].[DebtorsLedger] DLG WHERE DLG.[MATTER] = @MatterCode' END ELSE BEGIN SET @NCOMMAND = N' SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL THEN CONVERT(DATETIME, NULL) WHEN TRN.[TransDate] > GETDATE() THEN CONVERT(DATETIME, NULL) ELSE TRN.[TransDate] END) FROM [dbo].[Transactions] TRN WHERE TRN.[Posted] = ''Y'' AND TRN.[MatterCode] = @MatterCode AND TRN.[DebtorsValue] <> 0 AND TRN.[CorrectionInd] = ''L'' AND ( ( TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'') OR ( TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))' END EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @MatterCode = @MatterCode, @TIEDATE = @TIEDATE OUTPUT --Pino 2015-05-27 End DECLARE @LastTimeEntryDate DATETIME DECLARE @LastTimeEntryTime INT DECLARE @LastTimeEntryRate DECIMAL(10, 2) DECLARE @LastTimeEntryCharge DECIMAL(10, 2) DECLARE @LastTimeEntryTask VARCHAR(6) DECLARE @LastTimeEntryComment VARCHAR(1000) DECLARE @LastTimeEntryFE VARCHAR(10) DECLARE @TimeEntryTotalCharge DECIMAL(19, 2) DECLARE @TimeEntryTotalTime INT SELECT TOP (1) @LastTimeEntryDate = TIE.[DATE], @LastTimeEntryTime = TIE.[Time], @LastTimeEntryRate = TIE.[Rate], @LastTimeEntryCharge = TIE.[Charge], @LastTimeEntryTask = TIE.[Task], @LastTimeEntryComment = TIE.[Comment], @LastTimeEntryFE = TIE.[FeeEarn] FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @MatterCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun ORDER BY TIE.[Date] DESC, TIE.[Time] DESC SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0) SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0) -- Please see also: ky_NETFNMatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- ky_NETPMatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- ky_NETTLFetchTimeEntry. If you change any of these calculations, -- ensure the ones in there are changed as well. SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0), @TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0), @TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Charge], 0) END), 0), @ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0), @TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN CASE WHEN TIE.[Charge] = 0 THEN 0 ELSE CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME]) * ( (TIE.[Charge] - TIE.[BilledAmount]) / TIE.[Charge]))) END ELSE ISNULL(TIE.[Time], 0) END), 0), @TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Time], 0) END), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @MatterCode AND ( (TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun DECLARE @DebtBal DECIMAL(19, 2) DECLARE @OutlayBal DECIMAL(19, 2) DECLARE @DebtBalDate DATETIME DECLARE @OutlayBalDate DATETIME DECLARE @ClientCurrent DECIMAL(19, 2) DECLARE @ClientDeposit DECIMAL(19, 2) -- Please see also: ky_NETFNMatterClosable. If you change any of these calculations, -- ensure the ones in there are changed as well. -- ky_NETTLFetchTimeEntry. If you change any of these calculations, -- ensure the ones in there are changed as well. -- To ensure SAM3 will retrieve these from [dbo].[matters] SET @DebtBal = 0 SET @OutlayBal = 0 SET @ClientCurrent = 0 SET @ClientDeposit = 0 IF @IsSAM4 = 1 BEGIN SET @NCOMMAND = N' SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)), @DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)), @OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)), @ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0)) FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @MatterCode AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] = ''L''' EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20), @DebtBal DECIMAL(19, 2) OUTPUT, @DebtBalDate DATETIME OUTPUT, @OutlayBal DECIMAL(19, 2) OUTPUT, @OutlayBalDate DATETIME OUTPUT, @ClientCurrent DECIMAL(19, 2) OUTPUT, @ClientDeposit DECIMAL(19, 2) OUTPUT', @MatterCode = @MatterCode, @DebtBal = @DebtBal OUTPUT, @DebtBalDate = @DebtBalDate OUTPUT, @OutlayBal = @OutlayBal OUTPUT, @OutlayBalDate = @OutlayBalDate OUTPUT, @ClientCurrent = @ClientCurrent OUTPUT, @ClientDeposit = @ClientDeposit OUTPUT END SELECT @IsSAM4 AS [IsSAM4] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetMatterPrivilegeGroups' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetMatterPrivilegeGroups] END GO CREATE PROCEDURE [dbo].[KAAS_GetMatterPrivilegeGroups] (@matter VARCHAR(20)) AS /******************************************************************************************************* * Lists the privilege groups in the system, AND whether the matter passed in through @matter is * * part of these groups. * * * * Stored Procedure Name : [dbo].[KAAS_GetMatterPrivilegeGroups] * * Copied from : [dbo].[ky_NETSPGetMatterPrivilegeGroups] * * * * Modification History : * * 2019-05-21 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT CONVERT(VARCHAR(20), RTRIM(ISNULL(MAT.[Code], ''))) AS [MATTER], SNG.[GroupID], SNG.[BitWiseID], SNG.[GroupName], CASE WHEN MNP.[MATTER] IS NULL THEN 'NOT SET' WHEN MNP.[Privileges] IS NULL THEN 'NOT SET' WHEN MNP.[Privileges] = 0 THEN 'NOT SET' WHEN MNP.[Privileges] & SNG.[BitWiseID] <> 0 THEN 'YES' ELSE 'NO' END AS [IsInGroup] FROM [dbo].[matters] MAT CROSS APPLY [dbo].[SecurityNetGroups] SNG LEFT OUTER JOIN [dbo].[MatterNETPrivileges] MNP ON MNP.[MATTER] = MAT.[Code] WHERE MAT.[Code] = @matter END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetMissingOrMustPromptAUDs' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetMissingOrMustPromptAUDs] END GO CREATE PROCEDURE [dbo].[KAAS_GetMissingOrMustPromptAUDs] (@XML NVARCHAR(MAX)) AS /************************************************************************************************************* * * * Processes the Fields that need to be generated, and returns a list of AUDs that are missing * * or "Always Prompt" * * * * Stored Procedure name : KAAS_GetMissingOrMustPromptAUDs * * Copied From : [dbo].[ky_NETSPGetMissingOrMustPromptAUDs] * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.6.4.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Example XML string * * * * * * * * * * Modification History * * 2019-01-14 Pino Carafa Created * * 2019-01-25 Pino Carafa It shouldn't return AUD fields when the parent Case Contact doesn't exist * * The system should then FIRST prompt for the CC, and then "go again" to * * find the missing AUDs after that * * 2019-01-28 Pino Carafa Check ALL the AUDs if Field Number 99 is passed in * * 2019-02-19 Pino Carafa Check ALL the AUDs if Field Number 00 is passed in * * 2020-03-09 Vinodhan Created KAAS_GetMissingOrMustPromptAUDs * * * *************************************************************************************************************/ BEGIN DECLARE @iSL INT DECLARE @AUDS TABLE ([id] INT IDENTITY(1, 1) PRIMARY KEY, [CASECODE] VARCHAR(20) NOT NULL, [FIELDNAME] VARCHAR(30) NOT NULL, [FIELDTYPE] VARCHAR(30) NOT NULL, [FIELDNUMBER] INT NOT NULL, UNIQUE NONCLUSTERED ([CASECODE], [FIELDNAME], [FIELDTYPE], [FIELDNUMBER])) BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH INSERT INTO @AUDS ([CASECODE], [FIELDNAME], [FIELDTYPE], [FIELDNUMBER]) SELECT DISTINCT [SRC].[CASECODE], [SRC].[FIELDNAME], [SRC].[FIELDTYPE], [SRC].[FIELDNUMBER] FROM OPENXML(@iSL, N'AUDS/AUD') WITH ([CASECODE] VARCHAR(20) '../@case', [FIELDNAME] VARCHAR(30) '@name', [FIELDTYPE] VARCHAR(30) '@type', [FIELDNUMBER] INT '@number') [SRC] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SELECT [AUDS].[FIELDNAME] AS [FieldName], [AUDS].[FIELDTYPE] AS [FieldType], [AUF].[CONNUM] AS [FieldNumber], [AUF].[NameCode] AS [NameCode] FROM @AUDS [AUDS] INNER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = 'AUD:' AND [SUF].[FIELDNAME] = [AUDS].[FIELDNAME] AND RTRIM(ISNULL([SUF].[SQLSTATEMENT], '')) = '' CROSS APPLY (SELECT [CC].[CASECODE], [CC].[CONNUM], [AUD].[TextValue], [AUD].[NumberValue], [AUD].[DateValue], [CC].[NameCode] FROM [dbo].[CaseContacts] [CC] LEFT OUTER JOIN [dbo].[AssociateUDF] [AUD] ON [AUD].[NameCode] = [CC].[NameCode] AND [AUD].[FieldName] = [AUDS].[FieldName] WHERE [CC].[CASECODE] = [AUDS].[CASECODE] AND [CC].[CONTYPE] = [AUDS].[FIELDTYPE] AND ( [CC].[CONNUM] = [AUDS].[FIELDNUMBER] OR [AUDS].[FIELDNUMBER] = 99 OR [AUDS].[FIELDNUMBER] = 0)) [AUF] WHERE [AUF].[CASECODE] IS NOT NULL AND ( ( RTRIM(ISNULL([AUF].[TextValue], '')) = '' AND ISNULL([AUF].[NumberValue], 0) = 0 AND [AUF].[DateValue] IS NULL) OR [SUF].[HEIGHT] = 1) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetMissingOrMustPromptUDFs' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetMissingOrMustPromptUDFs] END GO CREATE PROCEDURE [dbo].[KAAS_GetMissingOrMustPromptUDFs] (@XML NVARCHAR(MAX)) AS /******************************************************************************************************************* * * * Processes the Fields that need to be generated, and returns a list of UDFs that are missing or "Always Prompt" * * * * Stored Procedure : KAAS_GetMissingOrMustPromptUDFs * * Copied From : [ky_NETSPGetMissingOrMustPromptUDFs] * * * * Example XML string * * * * * * * * * * * * * * * * Modification History * * 2016-10-12 Pino Carafa Created * * 2017-07-26 Pino Carafa Ignore those that have a SQL statement * * 2020-01-14 Vinodhan Created KAAS_GetMissingOrMustPromptUDFs * * * *******************************************************************************************************************/ BEGIN DECLARE @iSL INT DECLARE @UDFS TABLE ([CASECODE] VARCHAR(20) NOT NULL, [FIELDNAME] VARCHAR(30) PRIMARY KEY NOT NULL, UNIQUE NONCLUSTERED ([CASECODE], [FIELDNAME])) BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH INSERT INTO @UDFS ([CASECODE], [FIELDNAME]) SELECT SRC.[CASECODE], SRC.[FIELDNAME] FROM OPENXML(@iSL, N'UDFS/UDF') WITH ([CASECODE] VARCHAR(20) '../@case', [FIELDNAME] VARCHAR(30) '@name') SRC BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SELECT [UDFS].[FieldName] AS [FieldName], CASE WHEN EXISTS (SELECT TOP 1 1 FROM [CaseUDFAnswers] WHERE [CASECODE] = [UDFS].CASECODE AND [UDFNAME] = [UDFS].[FIELDNAME]) THEN 1 ELSE 0 END AS [IsExist] FROM @UDFS [UDFS] INNER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = 'UDF:' AND [SUF].[FIELDNAME] = [UDFS].[FIELDNAME] AND RTRIM(ISNULL([SUF].[SQLSTATEMENT], '')) = '' LEFT OUTER JOIN [dbo].[CaseUDFAnswers] [CUF] ON [CUF].[CASECODE] = [UDFS].[CASECODE] AND [CUF].[UDFFILE] = [SUF].[FILEPREFIX] AND [CUF].[UDFNAME] = [SUF].[FIELDNAME] WHERE ( RTRIM(ISNULL([CUF].[TEXT1], '')) = '' AND ISNULL([CUF].[NumberValue], 0) = 0) OR [SUF].[HEIGHT] = 1 END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetMostRecentMatterHeader' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetMostRecentMatterHeader] END GO CREATE PROCEDURE [KAAS_GetMostRecentMatterHeader] (@handler VARCHAR(10)) AS /******************************************************************************************************* * Get the Header details for the Most Recent Matter for a handler * * * * Stored Procedure Name : [dbo].[KAAS_GetMostRecentMatterHeader] * * Copied from : [dbo].[ky_NETPGetMostRecentMatterHeader] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2021-09-21 Vinodhan K Modified - Charge Bal,Time Bal,Dept,Branch fields added * * 07-06-2023 Revathy.D Fetched Paperless Column from Matter Table * 2023-09-25 Revathy.D Included a column for OpenInvoice details * * 2023-09-25 Revathy.D Included a column for OpenInvoice details * * 2024-02-01 Ghayathri.S.V Modified - Included a column for Dept Description * *******************************************************************************************************/ BEGIN SELECT TOP 1 [KHD].[CODE], [KHD].[ClientCode], [KHD].[MatterNo], [KHD].[YourRef], [KHD].[DESCRIPTION], [KHD].[FECode], [KHD].[FEName], [KHD].[Name], [KHD].[TelNo], [KHD].[Address], [KHD].[Closed], [KHD].[TOOLTIP], [KHD].[IsChildcare], [KHD].[User1], [KHD].[User2], [KHD].[User3], [KHD].[Partner], [KHD].[PartnerName], [KHD].[CompBillingMatter], [KHD].[MatterUniqueID], [KHD].[ChargeBalance], [KHD].[TimeBalance], [KHD].[Dept], [KHD].[DeptDesc], [KHD].[Branch], [KHD].[Paperless], [KHD].[OpenInvoiceNo] FROM [dbo].[RecentMatterList] [RML] CROSS APPLY [dbo].[KAAS_FN_MatterHeaderDetails]([RML].[MATTER]) [KHD] WHERE [RML].[FEE] = @handler ORDER BY [RML].[DateField] DESC END GO IF OBJECT_ID(N'KAAS_GetMyDayBook', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetMyDayBook] END GO CREATE PROCEDURE [dbo].[KAAS_GetMyDayBook] (@FECode VARCHAR(10), @Post CHAR(1) = 'N', @Handler NVARCHAR(10), @Key NVARCHAR(100), @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /******************************************************************************************************* * Gets the Day Book * * * * Stored Procedure Name : [dbo].[KAAS_GetMyDayBook] * * Copied from : [dbo].[ky_NETGetMyDayBook] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2019-07-02 Vinodhan K Case Time format has been modifed to "00:00" * 2020-07-02 Prabhu.C Fix for bug-KEYSAAS-2188 * * 2020-07-02 Prabhu.V Sorting Not Working Fixed * * 2021-01-19 Prabhu V page size should not filter before Sorting - fixed * * 2021-12-13 Aakif Removed pagination for devExtreme migration * * 2023-12-14 Revathy.D Included 'Closed Matter' * * 2023-12-14 Revathy.D Modified 'Closed' value fetch logic and included ischargeable field * *******************************************************************************************************/ BEGIN DECLARE @StartRow INT; DECLARE @EndRow INT; IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END DECLARE @DayBookValue INT SELECT @DayBookValue = ISNULL(SUM([TDB].[Time]), 0) FROM [dbo].[Timedaybook] [TDB] WITH (NOLOCK) WHERE [TDB].[FeeEarn] = @FECode IF(@DayBookValue = 0) BEGIN SET @DayBookValue=1 END DECLARE @DAYBOOK TABLE ([Row_Number] INT IDENTITY(1, 1) NOT NULL, [Time] INT NOT NULL, [CaseTime] VARCHAR(60) NOT NULL, [MatterDetails] VARCHAR(500) NOT NULL, [Progress] INT NOT NULL, [StopwatchStatus] INT NOT NULL, [RecordID] INT NOT NULL PRIMARY KEY, [DATE] DATETIME NOT NULL, [MATTER] VARCHAR(20) NOT NULL, [DisplayMatter] VARCHAR(20) NOT NULL, [Name] VARCHAR(256) NOT NULL, [COMMENT] VARCHAR(1000) NOT NULL, [CHARGE] DECIMAL(10, 2) NOT NULL, [TimeOrCharge] VARCHAR(1) NOT NULL, [Post] VARCHAR(1) NOT NULL, [Closed] VARCHAR(1) NOT NULL, [IsChargeable] BIT NOT NULL) DECLARE @DAYBOOKSUM TABLE ([id] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [RecordID] INT NOT NULL, [Time] INT NOT NULL, [OriginalTime] INT NOT NULL, [TotalTimeMinusOne] INT NOT NULL) INSERT INTO @DAYBOOK ([Time], [CaseTime], [MatterDetails], [Progress], [StopwatchStatus], [RecordID], [DATE], [MATTER], [DisplayMatter], [Name], [COMMENT], [CHARGE], [TimeOrCharge], [Post], [Closed], [IsChargeable]) SELECT [TDB].[Time], CASE WHEN [TDB].[Time] < 0 THEN '-' ELSE '' END + --RIGHT('00' + CAST(FLOOR(ABS([TDB].[Time]) / 60) AS VARCHAR), 3) --SUBSTRING(CONVERT(VARCHAR, FLOOR(ABS([TDB].[Time]) / 60)), LEN(CONVERT(VARCHAR, FLOOR(ABS([TDB].[Time]) / 60))) - 1, 2) CASE WHEN LEN(FLOOR(ABS([TDB].[Time]) / 60)) < 2 THEN '0' + CAST(FLOOR(ABS([TDB].[Time])) / 60 AS VARCHAR) ELSE CAST(FLOOR(ABS([TDB].[Time])) / 60 AS VARCHAR) END + ':' + SUBSTRING ( CONVERT(VARCHAR, 100 + ABS([TDB].[Time]) % 60), LEN(CONVERT(VARCHAR, 100 + ABS([TDB].[Time]) % 60)) - 1, 2 ) AS [CaseTime], [dbo].[KAAS_FN_RemoveSpuriousWhitespace] --2018-03-12 ( RTRIM(ISNULL([CON].[Name], '')) + ' ' + RTRIM(ISNULL([MAT].[Description], '')), 500 ) AS [MatterDetails], 0 AS [Progress], ISNULL([TDB].[StopwatchStatus], 0) AS [StopwatchStatus], [TDB].[RecordID] AS [RecordID], [TDB].[Date] AS [DATE], [TDB].[Matter] AS [Matter], CASE WHEN [TDB].[Matter] = '~' THEN 'Admin Time' ELSE [TDB].[Matter] END AS [DisplayMatter], RTRIM(ISNULL([CON].[Name],'')) AS [Name], RTRIM(ISNULL([TDB].[Comment], '')) AS [COMMENT], [TDB].[Charge] AS [CHARGE], UPPER([TDB].[TimeOrCharge]) AS [TimeorCharge], CASE WHEN RTRIM(UPPER(ISNULL([TDB].[Post], ''))) = 'N' THEN 'N' ELSE 'Y' END AS [Post], CASE WHEN RTRIM(UPPER(ISNULL([MAT].[Closed], ''))) = 'Y' THEN 'Y' ELSE 'N' END AS [Closed], CASE WHEN RTRIM(UPPER(ISNULL([TDB].[Rec_Irr], 'N'))) = 'C' THEN 1 ELSE 0 END AS [IsChargeable] FROM [dbo].[TimeDayBook] [TDB] WITH (NOLOCK) LEFT OUTER JOIN [dbo].[matters] [MAT] WITH (NOLOCK) ON [MAT].[Code] = [TDB].[Matter] LEFT OUTER JOIN [dbo].[Contacts] [CON] WITH (NOLOCK) ON [CON].[Code] = [MAT].[ClientCode] WHERE ( RTRIM(ISNULL([CON].[Name],'')) LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([MAT].[Description],'')) LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([TDB].[Matter],'')) LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([TDB].[Comment],'')) LIKE '%' + @SearchText + '%' ) AND [TDB].[FeeEarn] = @FECode AND ISNULL([TDB].[Post], 'Y') IN ('Y', @Post) ORDER BY [TDB].[RecordID] INSERT INTO @DAYBOOKSUM ([RecordID], [Time], [OriginalTime], [TotalTimeMinusOne]) SELECT [TDB].[RecordID], 0, ISNULL([TDB].[Time], 0), 0 FROM @DAYBOOK [TDB] ORDER BY [TDB].[RecordID] DECLARE @TOTALTIME INT SET @TOTALTIME = 0 UPDATE [DBS] SET @TOTALTIME = @TOTALTIME + ISNULL([DBSPREV].[OriginalTime], 0), [DBS].[TotalTimeMinusOne] = @TOTALTIME FROM @DAYBOOKSUM [DBS] LEFT OUTER JOIN @DAYBOOKSUM [DBSPREV] ON [DBSPREV].[id] = [DBS].[id] - 1 UPDATE [DBS] SET [DBS].[Time] = [DBS].[OriginalTime] + [DBS].[TotalTimeMinusOne] FROM @DAYBOOKSUM [DBS] -- This will guarantee that the percentages in [Progress] will always add up to exactly 100 UPDATE [TDB] SET [TDB].[Progress] = CONVERT(INT, ROUND((CONVERT(FLOAT, [TDBS].[Time]) / CONVERT(FLOAT, @DayBookValue)) * CONVERT(FLOAT, 100), 0)) --The current cumulative percentage - CONVERT(INT, ROUND((CONVERT(FLOAT, [TDBS].[Time] - [TDB].[Time]) / CONVERT(FLOAT, @DayBookValue)) * CONVERT(FLOAT, 100), 0)) -- minus the last cumulative percentage FROM @DAYBOOKSUM [TDBS] INNER JOIN @DAYBOOK [TDB] ON [TDB].[RecordID] = [TDBS].[RecordID] --CROSS APPLY (SELECT ISNULL(SUM([TDBP].[Time]), 0) AS [Time] -- FROM @DAYBOOK [TDBP] -- WHERE [TDBP].[RecordID] <= [TDB].[RecordID]) [TDBS] SELECT [TDB].[Row_Number], [TDB].[Time], [TDB].[CaseTime], [TDB].[MatterDetails], [TDB].[Progress], [TDB].[StopwatchStatus], [TDB].[RecordID], CONVERT(NVARCHAR(30),[TDB].[DATE],23) AS [DATE], [TDB].[MATTER], [TDB].[DisplayMatter], [TDB].[Name], [TDB].[COMMENT], [TDB].[CHARGE], [TDB].[TimeOrCharge], [TDB].[Post], [TDB].[Closed], [TDB].[IsChargeable] FROM @DAYBOOK [TDB] /* WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) )*/ ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Row_Number' THEN [Row_Number] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Row_Number' THEN [Row_Number] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date' THEN [DATE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date' THEN [DATE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DisplayMatter' THEN [DisplayMatter] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DisplayMatter' THEN [DisplayMatter] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Name' THEN [Name] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'MatterDetails' THEN [MatterDetails] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'MatterDetails' THEN [MatterDetails] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Comment' THEN [Comment] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Charge' THEN [Charge] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CaseTime' THEN [CaseTime] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CaseTime' THEN [CaseTime] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Progress' THEN [Progress] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Progress' THEN [Progress] END END DESC --OFFSET @PageSize * (@PageNumber - 1) ROWS --FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE); SELECT [TDB].[Rec_Irr] AS [ChargeType], CASE WHEN SUM([TDB].[Time]) < 0 THEN '-' ELSE '' END + CASE WHEN ABS(FLOOR(SUM([TDB].[Time]) / 60.0)) < 10 THEN '0' ELSE '' END + CONVERT(VARCHAR, ABS(FLOOR(SUM([TDB].[Time]) / 60))) + ':' + RIGHT('00' + CONVERT(VARCHAR, ABS(FLOOR(SUM([TDB].[Time]))) % 60), 2) AS [CaseTime] FROM [dbo].[TimeDayBook] [TDB] WITH (NOLOCK) WHERE [TDB].[FeeEarn] = @FECode AND ISNULL([TDB].[Post], 'Y') IN ('Y', @Post) GROUP BY [TDB].[Rec_Irr] ORDER BY [TDB].[Rec_Irr] SELECT @DayBookValue AS DayBookValue EXECUTE [dbo].[KAAS_GetUserSettings] @Handler, @Key SELECT COUNT([Row_Number]) FROM @DAYBOOK END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_GetNextActionID' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetNextActionID] END GO CREATE PROCEDURE [dbo].[KAAS_GetNextActionID] AS /******************************************************************************************************* * Dummy Procedure in preparation for the use of the DiarySeed table * * * * Stored Procedure Name : [dbo].[KAAS_GetNextActionID] * * Copied from : [dbo].[ky_NETGetNextActionID] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ BEGIN --Old code START --DECLARE @nextVAL INT --DECLARE @delVAL INT --SELECT @nextVAL = ISNULL(MAX(DIA.[ActionID]), 0) + 1 -- FROM [dbo].[diary] DIA --SELECT @delVAL = ISNULL(MAX(DIA.[ActionID]), 0) + 1 -- FROM [dbo].[DiaryDeletionLog] DIA --IF (@delVAL > @nextVAL) -- BEGIN -- SET @nextVAL = @delVAL -- END --RETURN @nextVAL --Old code END DECLARE @MaxActionID INT DECLARE @bsuccess BIT SET @bsuccess = 0 WHILE (@bsuccess = 0) BEGIN BEGIN TRY INSERT INTO [dbo].[diaryids] DEFAULT VALUES SET @MaxActionID = SCOPE_IDENTITY() SET @bsuccess = 1 END TRY BEGIN CATCH SET @bsuccess = 0 END CATCH END -- This while loop handles the possibility that a piece of legacy code uses the OLD mechanism WHILE EXISTS (SELECT TOP 1 1 FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @MaxActionID) BEGIN SET @bsuccess = 0 WHILE (@bsuccess = 0) BEGIN BEGIN TRY INSERT INTO [dbo].[diaryids] DEFAULT VALUES SET @MaxActionID = SCOPE_IDENTITY() SET @bsuccess = 1 END TRY BEGIN CATCH SET @bsuccess = 0 END CATCH END END DELETE [dbo].[diaryids] RETURN @MaxActionID END GO IF OBJECT_ID(N'KAAS_GetNextDocumentVersion',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetNextDocumentVersion] GO CREATE PROCEDURE [dbo].[KAAS_GetNextDocumentVersion] (@TrackReference INT, @Comment VARCHAR(MAX)) AS /************************************************************************************************************* * * * [dbo].[KAAS_GetNextDocumentVersion] * * * * Inserts a row for the next version of a document and return the new row including the id. After calling * * this procedure the calling software will copy files to their new locations, and if that fails it will * * delete the newly created line as a "rollback" using ky_NETSPDeleteDocumentVersion * * * * * Modification History * * 2017-06-30 Pino Carafa Created * * 2017-10-02 Pino Carafa Access Logging * * 2019-03-20 Pino Carafa Azure compatibility * * 2019-10-09 John Ginnane KEYD-6197 - Replaced sysprocesses code with function * * 2020-10-19 Pino Carafa Make sure it doesn't try to write a null timestamp * * 2021-01-22 Kowshik.R Stored Procedure taken from ky_NETSPGetNextDocumentVersion * * 2022-05-24 Aakif Stored Procedure Copied from KEYHM_GetNextDocumentVersion * *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @MaxVersion INT DECLARE @FilePath VARCHAR(255) SELECT @MaxVersion = ISNULL(MAX([DATV].[Version]), 0) FROM [dbo].[DiaryAttachments] [DAT] LEFT OUTER JOIN [dbo].[DiaryAttachmentVersioning] [DATV] ON [DATV].[TrackReference] = [DAT].[TrackReference] WHERE [DAT].[TrackReference] = @TrackReference SELECT @FilePath = CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(ISNULL([DXR].[FilePath], [DAT].[FilePath]), '')) ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(ISNULL([DXR].[FilePath], [DAT].[FilePath]), '')), 3, LEN(RTRIM(ISNULL(ISNULL([DXR].[FilePath], [DAT].[FilePath]), ''))) - 2) END FROM [dbo].[DiaryAttachments] [DAT] LEFT OUTER JOIN [dbo].[DAIMXRef] [DXR] ON [DXR].[TrackReference] = [DAT].[TrackReference] LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON SUBSTRING(ISNULL([DXR].[FilePath], [DAT].[FilePath]), 2, 1) = ':' AND UNC.[Drive] = SUBSTRING(ISNULL([DXR].[FilePath], [DAT].[FilePath]), 1, 1) WHERE [DAT].[TrackReference] = @TrackReference SELECT @FilePath = REVERSE(@FilePath) DECLARE @DOTPOS INT SET @DOTPOS = CHARINDEX('.', @FilePath) IF @DOTPOS = 0 BEGIN SET @FilePath = REVERSE(@FilePath) + '_V' + CONVERT(VARCHAR, @MaxVersion) END ELSe BEGIN SET @FilePath = REVERSE(SUBSTRING(@FilePath, @DOTPOS + 1, LEN(@FilePath) - @DotPos)) + '_V' + CONVERT(VARCHAR, @MaxVersion + 1) + REVERSE(SUBSTRING(@FilePath, 1, @DOTPOS)) END DECLARE @Handler VARCHAR(10) SET @Handler = [dbo].[ky_NETFNGetLoggedOnHandler]() INSERT INTO [dbo].[DiaryAttachmentAccess] ([TrackReference], [Handler], [Comment]) SELECT @TrackReference, @Handler, 'Inserted New Version ' + Convert(VARCHAR(10), @MaxVersion + 1) FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[TrackReference] = @TrackReference INSERT INTO [dbo].[DiaryAttachmentVersioning] ([TrackReference], [IMDocID], [Version], [FilePath], [Comments], [TimeStamp], [Handler]) SELECT [DAT].[TrackReference] AS [TrackReference], ISNULL([DXR].[IMDocID], '') AS [IMDocID], @MaxVersion + 1 AS [Version], @FilePath AS [FILEPATH], @Comment AS [Comments], ISNULL(ISNULL([DAT].[LASTACCESSDATE], [DAT].[DATEENTERED]), GETDATE()) AS [TimeStamp], [DAT].[ENTEREDBY] AS [Handler] FROM [dbo].[DiaryAttachments] [DAT] LEFT OUTER JOIN [dbo].[DAIMXRef] [DXR] ON [DXR].[TrackReference] = [DAT].[TrackReference] WHERE [DAT].[TrackReference] = @TrackReference SELECT TOP 1 [DATV].[id], [DATV].[TrackReference], [DATV].[IMDocID], [DATV].[Version], [DATV].[Comments], [DATV].[FilePath], [DATV].[TimeStamp], [DATV].[Handler] FROM [dbo].[DiaryAttachmentVersioning] [DATV] WHERE [DATV].[TrackReference] = @TrackReference ORDER BY [DATV].[Version] DESC SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_GetNextTrackReference' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetNextTrackReference] END GO CREATE PROCEDURE [dbo].[KAAS_GetNextTrackReference] AS /******************************************************************************************************* * Dummy Procedure in preparation for the use of the DiaryAttachmentsSeed table. * * * * Stored Procedure Name : [dbo].[KAAS_GetNextTrackReference] * * Copied from : [dbo].[ky_NETGetNextTrackReference] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ BEGIN --old code START --DECLARE @nextVAL INT --DECLARE @delVAL INT --SELECT @nextVAL = ISNULL(MAX(DAT.[TrackReference]), 0) + 1 -- FROM [dbo].[DiaryAttachments] DAT --SELECT @delVAL = ISNULL(MAX(DAT.[TrackReference]), 0) + 1 -- FROM [dbo].[DiaryAttachmentDeletionLog] DAT --IF (@delVAL > @nextVAL) -- BEGIN -- SET @nextVAL = @delVAL -- END --RETURN @nextVAL --old code END DECLARE @MaxTrackReference INT DECLARE @bsuccess BIT SET @bsuccess = 0 WHILE (@bsuccess = 0) BEGIN BEGIN TRY INSERT INTO [dbo].[trackreferences] DEFAULT VALUES SET @MaxTrackReference = SCOPE_IDENTITY() SET @bsuccess = 1 END TRY BEGIN CATCH SET @bsuccess = 0 END CATCH END -- This while loop handles the possibility that a piece of legacy code uses the OLD mechanism WHILE EXISTS (SELECT TOP 1 1 FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[TrackReference] = @MaxTrackReference) BEGIN SET @bsuccess = 0 WHILE (@bsuccess = 0) BEGIN BEGIN TRY INSERT INTO [dbo].[trackreferences] DEFAULT VALUES SET @MaxTrackReference = SCOPE_IDENTITY() SET @bsuccess = 1 END TRY BEGIN CATCH SET @bsuccess = 0 END CATCH END END DELETE [dbo].[trackreferences] RETURN @MaxTrackReference END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetNextTrackReferenceInDiaryAttachments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetNextTrackReferenceInDiaryAttachments] END GO CREATE PROCEDURE [dbo].[KAAS_GetNextTrackReferenceInDiaryAttachments] AS /******************************************************************************************************* * Gets next available track referene number * * * * Stored Procedure Name : [dbo].[KAAS_GetNextTrackReferenceInDiaryAttachments] * * Copied from : [dbo].[spGetNextTrackReferenceInDiaryAttachments] * * * * Modification History : * * 2019-04-10 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @TrackReference INT EXEC @TrackReference = [dbo].[ky_NETGetNextTrackReference] SELECT @TrackReference AS [TRACKREFERENCE] --SELECT -- ISNULL(MAX(TRACKREFERENCE), 0)+1 AS TRACKREFERENCE --FROM -- dbo.DiaryAttachments --ORDER BY TRACKREFERENCE DESC END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetNotificationApprovalData' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetNotificationApprovalData] END GO CREATE PROCEDURE [dbo].[KAAS_GetNotificationApprovalData] (@mattercode VARCHAR(20), @clientcode VARCHAR(10)) AS /************************************************************************************************************* * * * Stored Procedure Name : [dbo].[ky_NETSPGetNotficationApprovalData] * * Copied From : KAAS_GetNotificationApprovalData * * * * Retrieve Notification Approval Data * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.5.4.3 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2018-06-07 Pino Carafa Created * * 2019-07-16 Vinodhan K Created KAAS_GetNotificationApprovalData * *************************************************************************************************************/ BEGIN SET @mattercode = RTRIM(ISNULL(@mattercode, '')) IF @mattercode <> '' BEGIN SELECT @clientcode = [MAT].[ClientCode] FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @mattercode END DECLARE @ApprovedDate DATETIME SET @ApprovedDate = (SELECT Top 1 [Started] FROM [Matters] WHERE [ClientCode] = @CLIENTCODE ORDER BY [Started],[Matter] ASC) SELECT ISNULL([CON].[TYPE], 0) AS [Type], ISNULL([CON].[Status], '') AS [Status], ISNULL([CON].[ClientType], 0) AS [ClientType], ISNULL([CON].[IntroBy], 0) AS [IntroBy], ISNULL([CON].[SCDD_Category], '') AS [SCDD], CONVERT(VARCHAR(11), [CON].[LastInstructionRecieved], 23) AS [LastInstructionRecieved], ISNULL([CON].[Approved], 0) AS [Approved], Case WHEN [ApprovedDate] is null THEN CONVERT(VARCHAR(11), @ApprovedDate, 23) ELSE CONVERT(VARCHAR(11), [CON].[ApprovedDate], 23) END AS [ApprovedDate], ISNULL([HAN].[NAME], '') AS [ApprovedByUser] FROM [dbo].[Contacts] [CON] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [CON].[ApprovedByUSER] WHERE [CON].[Code] = @clientcode END GO IF [dbo].[ISSAM4]() = 0 BEGIN EXEC(' IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N''KAAS_GetOutstandingInvoices'' AND SO.[type] = ''P'') BEGIN DROP PROCEDURE [dbo].[KAAS_GetOutstandingInvoices] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_GetOutstandingInvoices] (@matter VARCHAR(20)) AS /******************************************************************* * * ky_NETSPGetOutstandingInvoices * Get Outstanding Invoices for a matter * 2020-04-18 Arun Copied from ky_NETSPGetOutstandingInvoices *******************************************************************/ BEGIN SELECT RTRIM(ISNULL(DTL.[MATTER], '''')) AS [MatterCode], RTRIM(ISNULL(DTL.[TYPE], '''')) AS [Type], RTRIM(ISNULL(DTL.[CLIENT], '''')) AS [ClientCode], DTL.[DATE] As [Date], RTRIM(ISNULL(DTL.[REF], '''')) AS [Ref], ISNULL(DTL.[BATCHNO], 0) AS [BatchNo], ISNULL(DTL.[PREF], 0) AS [Pref], ISNULL(DTL.[NARR], 0) AS [Narrative], ISNULL(DTL.[ORIGINAL], 0) AS [Original], ISNULL(DTL.[ORFEES], 0) AS [Original Fees], ISNULL(DTL.[OROUTLAY], 0) AS [Original Outlay], ISNULL(DTL.[ORVAT], 0) AS [Original VAT], ISNULL(DTL.[OSVALUE], 0) AS [OSValue], ISNULL(DTL.[OSFEES], 0) AS [Outstanding Fees], ISNULL(DTL.[OSOUTLAY], 0) AS [Outstanding Outlay], ISNULL(DTL.[OSVAT], 0) AS [Outstanding VAT], RTRIM(ISNULL(DTL.[VATCODE], '''')) AS [VAT Code], ISNULL(DTL.[PER], 0) AS [Period], ISNULL(DTL.[YEAR], 0) AS [Year], RTRIM(ISNULL(DTL.[FEECODE], '''')) AS [Ledger FeeEarnerCode], RTRIM(ISNULL(LFE.[NAME], '''')) AS [Ledger FeeEarner], CONVERT(INT, ISNULL(DTL.[RECORDID], 0)) AS [RecordID], RTRIM(ISNULL(MAT.[FECODE], '''')) AS [FeeEarnerCode], RTRIM(ISNULL(FE.[NAME], '''')) AS [FeeEarner], RTRIM(ISNULL(MAT.[DEPT], '''')) AS [Dept], RTRIM(ISNULL(MAT.[WTYPE], '''')) AS [WType], RTRIM(ISNULL(MAT.[BRANCH], '''')) AS [Branch], ISNULL(MAT.[FILENUM], 0) AS [FileNum], RTRIM(ISNULL(MAT.[THIRDPART], '''')) AS [ThirdPart], RTRIM(ISNULL(MAT.[ThPartSol], '''')) AS [ThPartSol], RTRIM(ISNULL(MAT.[OldRef], '''')) AS [OldRef], RTRIM(ISNULL(MAT.[PCODE], '''')) AS [PCODE], RTRIM(ISNULL(MAT.[PFECODE], '''')) AS [PFeeEarnerCode], RTRIM(ISNULL(PFE.[NAME], '''')) AS [PFeeEarner], RTRIM(ISNULL(MAT.[USER1], '''')) AS [User1], RTRIM(ISNULL(MAT.[USER2], '''')) AS [User2], RTRIM(ISNULL(MAT.[USER3], '''')) AS [User3], RTRIM(ISNULL(MAT.[FileColour], '''')) AS [FileColour], ISNULL(MAT.[OUTFILENO], 0) AS [OutFileNo], RTRIM(ISNULL(CTC.[NAME], '''')) AS [ClientName], RTRIM(ISNULL(CTC.[FE], '''')) AS [ClientFeeEarnerCode], RTRIM(ISNULL(CFE.[NAME], '''')) AS [ClientFeeEarner], CASE WHEN RTRIM(ISNULL(CTC.[CLIENT], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Client], RTRIM(ISNULL(CTC.[OTHERREF], '''')) AS [OtherRef], RTRIM(ISNULL(CTC.[OPSISREF], '''')) AS [OpsisRef], ISNULL(CTC.[CONTACTNO], 0) AS [ContactNo], ISNULL(CTC.[COMPBILLONOFF], 0) AS [CompBillOnOff], RTRIM(ISNULL(CTC.[CLIENTGROUP], '''')) AS [ClientGroup], RTRIM(ISNULL(CTC.[TAXTYPE], '''')) AS [TaxType], RTRIM(ISNULL(FCL.[COLOURDESC], '''')) AS [FileColourDescription], ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB] FROM [dbo].[DebtorsLedger] DTL LEFT OUTER JOIN [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Handlers] FE ON FE.[CODE] = MAT.[FECode] LEFT OUTER JOIN [dbo].[Handlers] PFE ON PFE.[CODE] = MAT.[PFECODE] LEFT OUTER JOIN [dbo].[contacts] CTC LEFT OUTER JOIN [dbo].[Handlers] CFE ON CFE.[CODE] = CTC.[FE] ON MAT.[ClientCode]= CTC.[Code] ON DTL.[MATTER] = MAT.[Code] LEFT OUTER JOIN [dbo].[Handlers] LFE ON LFE.[CODE] = DTL.[FEECODE] LEFT OUTER JOIN [dbo].[FileColours] FCL ON FCL.[COLOURCODE] = MAT.[FileColour] WHERE DTL.[MATTER] = @matter AND DTL.[OSVALUE] > 0 AND DTL.[DATE] IS NOT NULL ORDER BY DTL.[RECORDID] ASC END') END GO IF [dbo].[ISSAM4]() = 1 BEGIN EXEC(' IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N''KAAS_GetOutstandingInvoicesSAM4'' AND SO.[type] = ''P'') BEGIN DROP PROCEDURE [dbo].[KAAS_GetOutstandingInvoicesSAM4] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_GetOutstandingInvoicesSAM4] ( @matter VARCHAR(20)) AS /******************************************************************* * * KAAS_GetOutstandingInvoicesSAM4 * Get Outstanding Invoices for a matter * * 2018-08-21 John Ginnane Added SAM4 compatibility * 2018-08-28 John Ginnane Only returning INVOICE type transactions * 2018-08-31 John Ginnane Only outstanding invoices * 2020-04-18 Arun Copied from ky_NETSPGetOutstandingInvoices *******************************************************************/ BEGIN SELECT RTRIM(ISNULL(TRN.[MatterCode], '''')) AS [MatterCode], RTRIM(ISNULL(TRN.[XnType], '''')) AS [Type], RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], TRN.[TransDate] AS [TransDate], RTRIM(ISNULL(TRN.[TransRef], '''')) AS [TransRef], ISNULL(TRN.[BatchNo], 0) AS [BatchNo], ISNULL(TRN.[PostRef], 0) AS [PostRef], ISNULL(TRN.[Narrative], 0) AS [Narrative], RTRIM(ISNULL(TRN.[VATRate], '''')) AS [VATRate], ISNULL(TRN.[PostingPeriod], 0) AS [PostingPeriod], ISNULL(TRN.[PostingYear], 0) AS [PostingYear], TRN.[XnID] AS [XnID], ISNULL(TRN.[DebtorsValue], 0) AS [DebtorsValue], ISNULL(TRN.[FeesBilled], 0) AS [FeesBilled], ISNULL(TRN.[OutlayNV], 0) AS [OutlayNV], ISNULL(TRN.[OutlayV], 0) AS [OutlayV], ISNULL(TRN.[MiscBilled], 0) AS [MiscBilled], ISNULL(TRN.[VATonFees], 0) AS [VATonFees], ISNULL(TRN.[VATonOutlay], 0) AS [VATonOutlay], ISNULL(TRN.[VATonMisc], 0) AS [VATonMisc], ISNULL(TRN.[DebtorsValueOS], 0) AS [DebtorsValueOS], ISNULL(TRN.[FeesOS], 0) AS [FeesOS], ISNULL(TRN.[OutlayNVOS], 0) AS [OutlayNVOS], ISNULL(TRN.[OutlayVOS], 0) AS [OutlayVOS], ISNULL(TRN.[MiscOS], 0) AS [MiscOS], ISNULL(TRN.[VATonFeesOS], 0) AS [VATonFeesOS], ISNULL(TRN.[VATOutlayOS], 0) AS [VATOutlayOS], ISNULL(TRN.[VATMiscOS], 0) AS [VATMiscOS] FROM [dbo].[Transactions] AS TRN LEFT OUTER JOIN [dbo].[matters] MAT ON TRN.[MatterCode] = MAT.[Code] WHERE TRN.[DebtorsValue] <> 0 AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[XnType] = ''I'' AND TRN.[CorrectionInd] IN (''L'', ''C'') AND TRN.[MatterCode] = @matter AND TRN.[TransDate] IS NOT NULL AND TRN.[DebtorsValueOS] <> 0 AND TRN.[TypeCode] = ''Invoice Issued'' ORDER BY TRN.[XnID] ASC END') END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetOWAUserSettings' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetOWAUserSettings] END GO CREATE PROCEDURE [dbo].[KAAS_GetOWAUserSettings] ( @Handler NVARCHAR(10) --DO NOT CHANGE, table contains NVARCHAR columns ) As /******************************************************************************************************* * This Procedure is used to Get User Settings for OWA * * * * Stored Procedure Name : [dbo].[KAAS_GetOWAUserSettings] * * * * Modification History : * * 2019-07-11 RAMESH K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT USS.[Key], USS.[Value] FROM [dbo].[UserSettings] USS WHERE USS.[Handler] = @Handler AND USS.[Key] LIKE 'KAAS_OWA_%' SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_GetPhoneNotify]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_GetPhoneNotify] GO CREATE PROCEDURE [KAAS_GetPhoneNotify] ( @CODE VARCHAR(20) ) /***************************************************************************** * * * This procedure is used Send phnoe action notify email for multiple user. * * Stored Procedure Name : KAAS_GetPhoneNotify * * Copied From : [ky_NETGetPhoneNotify] * *****************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT RTRIM(TEAMCODE) AS TEAMCODE, RTRIM(Code) AS Code, RTRIM(Name) AS Name, RTRIM(Team) AS Team, RTRIM(Rate) AS Rate, RTRIM(Retired) AS Retired, RTRIM(EMAIL) AS Email, RTRIM(CONVERT(VARCHAR(MAX), [SIGNATURE])) AS [Signature] FROM Handlers WHERE ((Replace(retired,' ','N') = 'N' OR Replace(retired,' ','N')='N')) AND RTRIM(CODE) <> RTRIM(@CODE) AND RTRIM(ISNULL(EMAIL,'')) <> '' ORDER BY CODE ASC SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetPrecedentsFolder' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetPrecedentsFolder] END GO CREATE PROCEDURE [dbo].[KAAS_GetPrecedentsFolder] AS /************************************************************************************************************* * * * Gets the default location for Case Precedents * * * * Stored Procedure : KAAS_GetPrecedentsFolder * * Copied From : [dbo].[ky_NETSPGetSCWPFolder] * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2017-12-01 Pino Carafa Created * * 2019-12-24 Vinodhan Created KAAS_GetPrecedentsFolder * * * *************************************************************************************************************/ BEGIN SELECT CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(SC.[SCPRECEDENTFOLDER], '')) ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(SC.[SCPRECEDENTFOLDER], '')), 3, LEN(RTRIM(ISNULL(SC.[SCPRECEDENTFOLDER], ''))) - 2) END AS [SCPrecedentFolder] FROM [dbo].[SystemConfig] SC LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON SUBSTRING(SC.[SCPRECEDENTFOLDER], 2, 1) = ':' AND UNC.[Drive] = SUBSTRING(SC.[SCPRECEDENTFOLDER], 1, 1) END GO IF OBJECT_ID(N'KAAS_GetProfileGroupMembership',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetProfileGroupMembership] GO CREATE PROCEDURE [dbo].[KAAS_GetProfileGroupMembership]( @ProfileId Int ) AS /*************************************************************************************************************** * * [dbo].[KAAS_GetProfileGroupMembership] * * Lists the Handler Control Groups and whether Profiles are included in those groups or not * When a Profile is included in a group, all controls in that group should be disabled for all handlers that * are included in that Profile. * * Stored Procedure Name : [dbo].[KAAS_GetProfileGroupMembership] * * Modification History * 2023-04-11 Revathy.D Created (Copied from ky_NETSPGetKHProfileGroupMembership) * ***************************************************************************************************************/ BEGIN SELECT PRO.[id] [Id], PRO.[Code], PRO.[Name], GRP.[GroupName], CASE WHEN PFG.[id] IS NULL THEN 1 ELSE 0 END [ControlAccess] FROM [dbo].[KHCtlProfiles] PRO LEFT OUTER JOIN (SELECT CTG.[GroupName], CTG.[id] FROM [dbo].[KHCtlGroups] CTG CROSS APPLY (SELECT TOP 1 CTLG.[GroupName] FROM [dbo].[KHCtlGroups] CTLG WHERE CTLG.[deleted] = 0 ) LG WHERE CTG.[deleted] = 0) GRP ON 1=1 LEFT OUTER JOIN [dbo].[KHCtlProfileGroups] PFG ON PFG.[ProfileID] = PRO.[id] AND PFG.[GroupID] = CONVERT(VARCHAR(10), GRP.[id]) WHERE PRO.[Retired] = 'N' AND PRO.[id] = @ProfileId ORDER BY GRP.[GroupName] END GO IF OBJECT_ID(N'KAAS_GetReportDetails',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetReportDetails] GO CREATE PROCEDURE [dbo].[KAAS_GetReportDetails] (@ReportID INT ) /********************************************************************************************* * * Stored Procedure Name: [KAAS_GetReportDetails] * * Description: This Procedure is used to get report information based on the report ID. * Author: Arun V * Create date: 2019-10-29 * Modification History: * 2019-10-23 Arun Copied from ky_NETGetReportDetails * 2023-02-21 Nithyanandham M Modified-Table name has been updated to newly created one *********************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT [ReportId], [name] as [ReportName], [filename] as [FileName], RTRIM([report_type]) as [ReportType] FROM KaaS_CRReport WHERE Reportid = @ReportID SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetReportTypeById',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetReportTypeById] GO CREATE PROCEDURE [dbo].[KAAS_GetReportTypeById] ( @ReportId INT ) AS /********************************************************************************* [dbo].[KAAS_GetReportTypeById] This procedure is used to get the report type and report name by id Modifiction History ---------------------------------------------------------- Date Name Description ---------------------------------------------------------- 2021-06-14 Arun V Created 2023-02-21 Nithyanandham M Modified-Table name has been updated to newly created one *********************************************************************************/ BEGIN SET NOCOUNT ON SELECT [report_type] AS [ReportType], [filename] AS [ReportName] FROM [KaaS_CRReport] WHERE [Reportid] = @ReportId SET NOCOUNT OFF END GO IF OBJECT_ID(N'[dbo].[KAAS_GetRevenueClientCode]',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetRevenueClientCode] GO CREATE PROCEDURE [dbo].[KAAS_GetRevenueClientCode] AS /******************************************************************************************** * [dbo].[KAAS_GetRevenueClientCode] * * This procedure is used to get revenue client code from settings table * * Modification History * 2016-01-17 Magesh Created * 2016-01-19 Pino Carafa Reverted to original after making SAM3 and SAM4 identical * Inserted header comment.... Standards! Used 3-letter * acronyms for tables. * 2016-02-08 Magesh Getting value from revenuesettings table * * 2020-10-15 Kowshik.R Copied from [dbo].[ky_NETGetRevenueClientCode] ********************************************************************************************/ BEGIN SELECT ISNULL([SET].[KeyValue], '') AS [ClientCode] FROM [dbo].[RevenueSettings] [SET] INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = [SET].[KeyValue] WHERE UPPER([SET].[KeyName]) LIKE 'CLIENTNO%' AND CON.[ClientGroup] = (SELECT ISNULL([SET2].[KeyValue], '**') FROM [dbo].[RevenueSettings] [SET2] WHERE UPPER([SET2].[KeyName]) = 'CLIENTGROUP') END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamBillDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamBillDetails] END GO CREATE PROCEDURE [dbo].[KAAS_GetSamBillDetails] (@DraftNo INT) AS /******************************************************************************************************* * Fetches the BillDetails * * * * Stored Procedure Name : [dbo].[KAAS_GetSamBillDetails] * * * * Modification History: * * 2024-04-24 Pino Carafa Created * *******************************************************************************************************/ BEGIN IF [dbo].[ISSAM4]() = 0 BEGIN EXEC sp_executesql N'[dbo].[KAAS_GetSamBillDetailsSAM3] @DraftNo=@DraftNo', N'@DraftNo INT', @DraftNo=@DraftNo END ELSE BEGIN EXEC sp_executesql N'[dbo].[KAAS_GetSamBillDetailsSAM4] @DraftNo=@DraftNo', N'@DraftNo INT', @DraftNo=@DraftNo END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamBillDetailsFeeEarnerBreakDown' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerBreakDown] END GO CREATE PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerBreakDown] (@DraftNo INT) AS /******************************************************************************************************* * Fetches the BillDetails and Fee Earner Breakdown * * * * Stored Procedure Name : [dbo].[KAAS_GetSamBillDetailsFeeEarnerBreakDownSAM3] * * * * Modification History: * * 2024-04-24 Pino Carafa Created * * * ********************************************************************************************************/ BEGIN IF [dbo].[ISSAM4]()=0 BEGIN EXEC sp_executesql N'[dbo].[KAAS_GetSamBillDetailsSAM3] @DraftNo=@DraftNo', N'@DraftNo INT', @DraftNo=@DraftNo EXEC sp_executesql N'[dbo].[KAAS_GetSamFeeEarnerBreakdownSAM3] @DraftNo=@DraftNo', N'@DraftNo INT', @DraftNo=@DraftNo END ELSE BEGIN EXEC sp_executesql N'[dbo].[KAAS_GetSamBillDetailsSAM4] @DraftNo=@DraftNo', N'@DraftNo INT', @DraftNo=@DraftNo EXEC sp_executesql N'[dbo].[KAAS_GetSamFeeEarnerBreakdownSAM4] @DraftNo=@DraftNo', N'@DraftNo INT', @DraftNo=@DraftNo END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamBillDetailsFeeEarnerBreakDownSAM3' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerBreakDownSAM3] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerBreakDownSAM3] (@DraftNo INT) AS /******************************************************************************************************* * Fetches the BillDetails and Fee Earner Breakdown * * * * Stored Procedure Name : [dbo].[KAAS_GetSamBillDetailsFeeEarnerBreakDownSAM3] * * * * Modification History: * * 2024-04-24 Pino Carafa Created * * * ********************************************************************************************************/ BEGIN EXEC [dbo].[KAAS_GetSamBillDetailsSAM3] @DraftNo=@DraftNo EXEC [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM3] @DraftNo=@DraftNo END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamBillDetailsFeeEarnerBreakDownSAM4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerBreakDownSAM4] END GO IF [dbo].[ISSAM4]() = 0 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerBreakDownSAM4] (@DraftNo INT) AS /******************************************************************************************************* * Fetches the BillDetails and Fee Earner Breakdown * * * * Stored Procedure Name : [dbo].[KAAS_GetSamBillDetailsFeeEarnerBreakDownSAM3] * * * * Modification History: * * 2024-04-24 Pino Carafa Created * * * ********************************************************************************************************/ BEGIN EXEC [dbo].[KAAS_GetSamBillDetailsSAM4] @DraftNo=@DraftNo EXEC [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM4] @DraftNo=@DraftNo END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamBillDetailsFeeEarnerListSAM3' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerListSAM3] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerListSAM3] (@BillNo INT, @MatterCode VARCHAR(20)) AS /******************************************************************************************************* * Fetches the BillDetails and FeeEarnerList * * * * Stored Procedure Name : [dbo].[KAAS_GetSamBillDetailsFeeEarnerListSAM3] * * * * Modification History: * * 2021-09-15 Vinodhkumar.M Created * * * * ****************************************** * * * * * * 2024-04-24 Pino Carafa * THIS PROCEDURE IS OBSOLETE. DO NOT USE * * * * * * * ****************************************** * * * ********************************************************************************************************/ BEGIN EXEC [dbo].[KAAS_GetSamBillDetailsSAM3] @DraftNo=@BillNo EXEC [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM3] @DraftNo=@BillNo END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamBillDetailsFeeEarnerListSAM4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerListSAM4] END GO IF [dbo].[ISSAM4]() = 0 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_GetSamBillDetailsFeeEarnerListSAM4] (@BillNo INT, @MatterCode VARCHAR(20)) AS /******************************************************************************************************* * Fetches the BillDetails and FeeEarnerList * * * * Stored Procedure Name : [dbo].[KAAS_GetSamBillDetailsFeeEarnerListSAM4] * * * * Modification History: * * 2021-09-15 Vinodhkumar.M Created * * * * ****************************************** * * * * * * 2024-04-24 Pino Carafa * THIS PROCEDURE IS OBSOLETE. DO NOT USE * * * * * * * ****************************************** * * * ********************************************************************************************************/ BEGIN EXEC [dbo].[KAAS_GetSamBillDetailsSAM4] @DraftNo=@BillNo EXEC [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM4] @DraftNo=@BillNo END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamBillDetailsSAM3' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamBillDetailsSAM3] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_GetSamBillDetailsSAM3] (@DraftNo INT) AS /******************************************************************************************************* * Fetches the BillDetails * * * * Stored Procedure Name : [dbo].[KAAS_GetSamBillDetailsSAM3] * * * * Modification History: * * 2024-04-24 Pino Carafa Created * *******************************************************************************************************/ BEGIN SELECT [BD].[MATTER] AS [Matter], [BD].[DRAFTNO] AS [DraftNo], [BD].[BILLNO] AS [BillNo], [BD].[TYPE] AS [Type], [BD].[FEEEARNER] AS [FeeEarner], [BD].[NARRATIVE] AS [Narrative], [BD].[NET] AS [Net], [BD].[VATVALUE] AS [VatValue], [BD].[LINENO] AS [LineNo], [BD].[KEYID] AS [KeyId] FROM [dbo].[BillDetails] [BD] WHERE [BD].[DRAFTNO] = @DraftNo ORDER BY [BD].[DRAFTNO] ASC, [BD].[LINENO] ASC, [BD].[KEYID] ASC END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamBillDetailsSAM4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamBillDetailsSAM4] END GO IF [dbo].[ISSAM4]() = 0 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_GetSamBillDetailsSAM4] (@DraftNo INT) AS /******************************************************************************************************* * Fetches the BillDetails * * * * Stored Procedure Name : [dbo].[KAAS_GetSamBillDetailsSAM4] * * * * Modification History: * * 2024-04-24 Pino Carafa Created * *******************************************************************************************************/ BEGIN SELECT [BH].[MatterCode] AS [Matter], [BD].[BillID] AS [DraftNo], 0 AS [BillNo], [BH].[TYPE] AS [Type], [BD].[FeCode] AS [FeeEarner], [BD].[NARRATIVE] AS [Narrative], [BD].[NetValue] AS [Net], [BD].[VATVALUE] AS [VatValue], [BD].[Seq] AS [LineNo], [BD].[RecordId] AS [KeyId] FROM [dbo].[BillDetail] [BD] INNER JOIN [dbo].[Billhead] [BH] ON [BH].[BillingID] = [BD].[BillID] WHERE [BD].[BillID] = @DraftNo ORDER BY [BD].[BillID] ASC, [BD].[Seq] ASC, [BD].[RecordId] ASC END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamFeeEarnerBreakdown' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamFeeEarnerBreakdown] END GO CREATE PROCEDURE [dbo].[KAAS_GetSamFeeEarnerBreakdown] (@DraftNo INT) AS /******************************************************************************************************* * Fetches the Fee Earner Breakdown * * * * Stored Procedure Name : [dbo].[KAAS_GetSamFeeEarnerBreakdown] * * * * Modification History: * * 2024-04-24 Pino Carafa Created * *******************************************************************************************************/ BEGIN IF [dbo].[ISSAM4]()=0 BEGIN EXEC sp_executesql N'[dbo].[KAAS_GetSamFeeEarnerBreakdownSAM3] @DraftNo=@DraftNo', N'@DraftNo INT', @DraftNo=@DraftNo END ELSE BEGIN EXEC sp_executesql N'[dbo].[KAAS_GetSamFeeEarnerBreakdownSAM4] @DraftNo=@DraftNo', N'@DraftNo INT', @DraftNo=@DraftNo END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamFeeEarnerBreakdownSAM3' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM3] END GO IF [dbo].[ISSAM4]() = 1 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM3] (@DraftNo INT) AS /******************************************************************************************************* * Fetches the Fee Earner Breakdown * * * * Stored Procedure Name : [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM3] * * * * Modification History: * * 2024-04-24 Pino Carafa Created * *******************************************************************************************************/ BEGIN SELECT [FE].[MATTER] AS [Matter], [FE].[DRAFTNO] AS [DraftNo], [FE].[BILLNO] AS [BillNo], [FE].FECODE AS [FECode], [FE].[TYPE] AS [Type], [FE].[PERCENT] AS [Percent], [FE].[CALCULATION] AS [Calculation], [FE].[VALUE] AS [Value], [FE].[VATCODE] AS [VatCode], [FE].[VATAMT] AS [VatAmt], [FE].[RECORDID] AS [RecordId] FROM [dbo].[BillFeeBreakDown] [FE] WHERE [FE].[DRAFTNO] = @DraftNo AND [FE].[BILLNO] = 0 AND [FE].[TYPE] <> 'O' ORDER BY [FE].[MATTER] ASC, [FE].[FECODE] ASC, [FE].[DRAFTNO] ASC, [FE].[BILLNO] ASC, [FE].[RECORDID] ASC END GO SET NOEXEC OFF GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetSamFeeEarnerBreakdownSAM4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM4] END GO IF [dbo].[ISSAM4]() = 0 BEGIN SET NOEXEC ON END GO CREATE PROCEDURE [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM4] (@DraftNo INT) AS /******************************************************************************************************* * Fetches the Fee Earner Breakdown * * * * Stored Procedure Name : [dbo].[KAAS_GetSamFeeEarnerBreakdownSAM4] * * * * Modification History: * * 2024-04-24 Pino Carafa Created * *******************************************************************************************************/ BEGIN SELECT [BH].[MatterCode] AS [Matter], [FE].[BillingNo] AS [DraftNo], 0 AS [BillNo], [FE].FECODE AS [FECode], [BH].[TYPE] AS [Type], [FE].[Percentage] AS [Percent], [FE].[Calculation] AS [Calculation], [FE].[FeeValue] AS [Value], [FE].[VatCode] AS [VatCode], [FE].[VatValue] AS [VatAmt], [FE].[BreakNO] AS [RecordId] FROM [dbo].[Billhead] [BH] INNER JOIN [dbo].[BillBreakdown] [FE] ON [FE].[BillingNo] = [BH].[BillingID] AND [FE].[BillingNo] = 0 AND [FE].[LineType] <> 'O' WHERE [BH].[BillingID] = @DraftNo ORDER BY [BH].[MatterCode] ASC, [FE].[FECODE] ASC, [BH].[BillingID] ASC, [FE].[BillingNo] ASC, [FE].[BreakNO] ASC END GO SET NOEXEC OFF GO IF OBJECT_ID(N'KAAS_GetSettings',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetSettings] GO CREATE PROCEDURE [dbo].[KAAS_GetSettings] ( @keyname VARCHAR(50) ) AS /******************************************************************************************************* * This sp is used to store the scancapture setting * * * * Stored Procedure Name : [dbo].[KAAS_GetSettings] * * Copied from : [dbo].[ky_NETGetSettings] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON; DECLARE @value VARCHAR(100) SELECT @value = [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = @keyname SET @value = ISNULL(@value, '') SELECT @value AS [KeyValue] SET NOCOUNT OFF END GO IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KAAS_GetSPHistory]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[KAAS_GetSPHistory] GO CREATE PROCEDURE [dbo].[KAAS_GetSPHistory] ( @SPTYPE VARCHAR(20) ) AS /************************************************************************************* * * Stored Procedure Name : [dbo].[KAAS_GetSPHistory] * * To get list of all stored procedures belonging to a category provided * Categories - KEYSAAS : Keyhouse web app * KEYHM: Keyhouse Mobile * * Modifications: 2020-06-15 Aakif M - Created KAAS_GetSPHistory ******************************************************************************************/ BEGIN DECLARE @SEARCHTEXT VARCHAR(20) IF (@SPTYPE IS NOT NULL AND @SPTYPE != '') BEGIN SET @SEARCHTEXT = @SPTYPE + '_%'; SELECT ROW_NUMBER() OVER (ORDER BY [create_date]) as SerialNo, [NAME] AS [Name], [type_desc] as [Description], [create_date] as [DateOfCreation], [modify_date] as [ModificationDate] FROM sys.objects where [NAME] LIKE @SEARCHTEXT ORDER BY [create_date],[modify_date],[type_desc],[Name] END END GO IF OBJECT_ID(N'KAAS_GetStrongRoomAdmin', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetStrongRoomAdmin] END GO CREATE PROCEDURE [dbo].[KAAS_GetStrongRoomAdmin] AS /***************************************************************************** * Stored Procedure Name : KAAS_GetStrongRoomAdmin * Copied From : ky_NETGetStrongRoomAdmin * * Get the handler details of the strong room admin * * Modification History: * 2019-07-09 John Ginnane KEYD-5984 - Created * 2022-03-31 Aakif KAAS file created *****************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @STRONGROOMADMIN VARCHAR(20) DECLARE @STRONGROOMEMAIL VARCHAR(200) SELECT @STRONGROOMADMIN = CASE WHEN [SET].[KeyName] = 'StrongRoomAdmin' THEN [SET].[KeyValue] ELSE @STRONGROOMADMIN END, @STRONGROOMEMAIL = CASE WHEN [SET].[KeyName] = 'StrongRoomAdminEmail' THEN [SET].[KeyValue] ELSE @STRONGROOMEMAIL END FROM [dbo].[Settings] AS [SET] WHERE [SET].[KeyName] IN ('StrongRoomAdmin', 'StrongRoomAdminEmail') SELECT RTRIM([HAN].[CODE]) AS [Code], ISNULL(RTRIM([HAN].[NAME]), '') AS [Name], ISNULL(RTRIM([HAN].[TEAM]), '') AS [Team], ISNULL(RTRIM([HAN].[EXCHANGEALIAS]), '') AS [ExchangeAlias], CASE WHEN ISNULL(RTRIM([HAN].[RETIRED]), '') = 'Y' THEN 'Y' ELSE 'N' END AS [Retired], CASE WHEN ISNULL(RTRIM([HAN].[TEAMCODE]), '') = 'Y' THEN 'Y' ELSE 'N' END AS [IsTeamCode], RTRIM(ISNULL([FEC].[BRANCH], ISNULL([FEC2].[BRANCH], ''))) AS [Branch], CASE [dbo].[ISSAM4]() WHEN 1 THEN RTRIM(ISNULL([FEC].[NominalCode], ISNULL([FEC2].[NOMINAL], ''))) ELSE RTRIM(ISNULL([FEC].[NOMINAL], ISNULL([FEC2].[NOMINAL], ''))) END AS [Nominal], RTRIM(ISNULL(@STRONGROOMEMAIL, '')) AS [Email], RTRIM(ISNULL([TEA].[NAME], '')) AS [TeamName], CASE WHEN ISNULL([FEC].[CODE], [FEC2].[CODE]) IS NULL THEN CONVERT(BIT, 0) WHEN RTRIM(ISNULL([FEC].[Retired], ISNULL([FEC2].[Retired], 'Y'))) = 'Y' THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsFeeEarner], CASE WHEN RTRIM(ISNULL([HAN].[TYPE], '')) = 'P' THEN CONVERT(BIT, 1) ELSE CONVERT(BIT, 0) END AS [IsPartner] FROM [dbo].[Handlers] AS [HAN] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC] ON FEC.[CODE] = HAN.[CODE] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC2] ON FEC2.[CODE] = HAN.[MAILADDRESS] LEFT OUTER JOIN [dbo].[Handlers] AS [TEA] ON TEA.[CODE] = HAN.[TEAM] WHERE [HAN].[CODE] = ISNULL(@STRONGROOMADMIN, '') SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetTaskList',N'P')IS NOT NULL DROP PROCEDURE KAAS_GetTaskList GO CREATE PROCEDURE [dbo].[KAAS_GetTaskList] (@HandlerID VARCHAR(10) = NULL, @FromDate DATETIME = NULL, @ToDate DATETIME = NULL, @TaskListMode BIT, @TeamID VARCHAR(10) = NULL, @IsOutstandingOnly BIT = 1, @BitWiseID BIGINT, @From INT = 0, @To INT = 5000, @TaskType VARCHAR(20) = '', @PageNumber INT = 1, @PageSize INT = 100, @SearchText VARCHAR(4000) = NULL, @ActionType VARCHAR(4000) = NULL, @Priority VARCHAR(4000) = NULL, @Flag VARCHAR(4000) = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL, @TotalRecords INT = 1 OUT, @ColumnNames VARCHAR(200) = '', @FilterValues VARCHAR(MAX) = '', @userprompt1 VARCHAR(MAX) = 'USERPROMPT1' OUT, @userprompt2 VARCHAR(MAX) = 'USERPROMPT2' OUT, @userprompt3 VARCHAR(MAX) = 'USERPROMPT3' OUT) AS /***************************************************************************************************************** * * * Get the task list for the framework's main Task screen * * * * Stored Procedure Name : [dbo].[KAAS_GetTaskList] * * Copied from : [dbo].[ky_NETGetTaskList] * * * * Modification History: * * 2018-12-03 Vinodhan K Created * * 2019-01-29 Vinodhan K Paging added * * 2019-04-09 Vinodhan K Sorting of few columns have been implemeneted * * 2019-04-30 Arun V KEYHM-402 Issue corrected. If SortColumn and SortDirection not * specified then make these column as empty string, so sorting will not * perform. default sorting condition will apply. * ORDER BY DEL.[HANDLER] DESC, * DEL.[DATE] DESC, * DEL.[TIME] DESC, * DEL.[AssignNo] DESC * * 2019-11-18 Vinodhan K FNName will be fecthed from [Handlers] table instead of [FeeEarnerCodes] * * 2020-03-19 Prabhu V SP Optimized * * 2020-03-28 Prabhu V Optimized SP not working properly for Outstanding and Over due tasks * Issue Fixed * * 2020-03-30 Ganapathy T Like Search functionality implemented * * 2020-04-08 Prabhu V SP Optimized to Load Data with in a second * * 2020-05-04 Arun randomly record got changed issue fixed.KEYHM-588 * * 2020-12-22 Sadiq KEYSAAS-2449 - Count issue has been fixed when comparing to framework * * 2020-12-23 Sadiq KEYSAAS-2454 - Team task need to ordered by DEL.[HANDLER] DESC, * [DATE2] DESC * Also ordered the Task list using DATE2 as in Framework SP referring * DiaryDelegationSelector Views * * 2021-08-27 Aakif Task page migration to devExtreme * Removed pagination, included handler name, team description and flag desc. * * 2021-08-31 Aakif Replaced priority with its numeric value and modified C/G to support sorting from DevExtreme * * 2021-10-13 Sadiq Date Format issue Fixed (13221) * * 2021-11-17 Aakif SP optimization to retrieve matter details from SearchMatters instead of * * [dbo].[Contact] and [dbo].[FileColours] * * 2022-01-06 Vinodhkumar.M Added custom filter options for task list * * 2022-01-06 Sadiq Added PageSize to use for Row Count in Task pages * * 2022-30-06 Sadiq Action Id also added in Search (14761) * * 2022-13-07 Revathy Added offset for scroll load * * 2022-07-25 Revathy Fixed order by clause as KH Framework * * 2022-10-07 Revathy Included Action status filter * * 2023-02-02 Sadiq Action Id,Action Code column added for sorting feature (15999) * * 2023-05-29 Nithyanandham.M Optimize the stored procedure and removed the un used join and where clause * Create temperory table with minimum columns and Joined the Diary delegation * Selector table on the select query which returns the Dataset and select only * the needed columns . * The Diary may contain ACTIONCODE values that are no longer in use. Handling * this through an Outer Join on the complete data set will impact on performance. * Instead, we create an alternative data set in a Table Variable based on a * Distinct list of [ACTIONCODE] values read from the Diary, and we do the Outer* joining at this point, after which we can use this in an INNER JOIN later and* get the better performance where it really matters * * 2023-06-27 Sadiq Sometime Filter Value get increased more than 4000 so increasing the * FilterValue size (16710) * ******************************************************************************************************************/ BEGIN --Insert into LogTable(LogInfo, Module) values --( --'@HandlerID '+isnull(convert(nvarchar(500), @HandlerID ),'')+ --'@FromDate '+isnull(convert(nvarchar(500), @FromDate ),'')+ --'@ToDate '+isnull(convert(nvarchar(500), @ToDate ),'')+ --'@TaskListMode '+isnull(convert(nvarchar(500), @TaskListMode ),'')+ --'@TeamID '+isnull(convert(nvarchar(500), @TeamID ),'')+ --'@IsOutstandingOnly '+isnull(convert(nvarchar(500), @IsOutstandingOnly ),'')+ --'@BitWiseID '+isnull(convert(nvarchar(500), @BitWiseID ),'')+ --'@From '+isnull(convert(nvarchar(500), @From ),'')+ --'@To '+isnull(convert(nvarchar(500), @To ),'')+ --'@TaskType '+isnull(convert(nvarchar(500), @TaskType ),'')+ --'@PageNumber '+isnull(convert(nvarchar(500), @PageNumber ),'')+ --'@PageSize '+isnull(convert(nvarchar(500), @PageSize ),'')+ --'@SearchText '+isnull(convert(nvarchar(500), @SearchText ),'')+ --'@ActionType '+isnull(convert(nvarchar(500), @ActionType ),'')+ --'@Priority '+isnull(convert(nvarchar(500), @Priority ),'')+ --'@Flag '+isnull(convert(nvarchar(500), @Flag ),'')+ --'@SortColumn '+isnull(convert(nvarchar(500), @SortColumn ),'')+ --'@SortDirection '+isnull(convert(nvarchar(500), @SortDirection ),'')+ --'@TotalRecords '+isnull(convert(nvarchar(500), @TotalRecords ),'')+ --'@userprompt1 '+isnull(convert(nvarchar(500), @userprompt1 ),'')+ --'@userprompt2 '+isnull(convert(nvarchar(500), @userprompt2 ),'')+ --'@userprompt3 '+isnull(convert(nvarchar(500), @userprompt3 ),'') --,'My Task') DECLARE @StartRow INT; DECLARE @EndRow INT; IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = '' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = '' END IF(@PageNumber = 0) BEGIN SET @PageNumber = 1 END IF(@PageSize = 0) BEGIN SET @PageSize = 100 END IF REPLACE(RTRIM(ISNULL(@SearchText, '')), '%', '') = '' BEGIN SET @SearchText = NULL END IF @SearchText IS NOT NULL AND CHARINDEX('%', @SearchText) = 0 BEGIN SET @SearchText = '%' + @SearchText + '%'; END SET NOCOUNT ON -- Custom Filter Start DECLARE @ActionTypeFilterCount INT = 0; DECLARE @PriorityFilterCount INT = 0; DECLARE @FlagFilterCount INT = 0; DECLARE @FNCodeCount INT = 0; DECLARE @ActionCodeCount INT = 0; DECLARE @ActionStatusCount INT = 0; IF @ColumnNames <> '' BEGIN DECLARE @CustomFilter TABLE ([ActionType] VARCHAR(2000), [Priority] VARCHAR(2000), [Flag] VARCHAR(2000), [FNCode] VARCHAR(MAX), [ActionCode] VARCHAR(2000), [ActionStatus] VARCHAR(MAX)) SELECT columnName,rownumber INTO #columntbl FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS columnName, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM ( SELECT CAST('' + REPLACE(@ColumnNames,',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) ColumnTbl -- count(*) over(), SELECT FilterValue,rownumber INTO #FILTERVALUETBL FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM ( SELECT CAST('' + REPLACE(@FilterValues,'|','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBL DECLARE @count INT DECLARE @lptcnt INT=1 DECLARE @ColumnName VARCHAR(50) DECLARE @FilterValue VARCHAR(2000) SELECT @count = count(1) FROM #columntbl; WHILE @lptcnt <= @count BEGIN SET @FilterValue ='' SELECT @ColumnName = columnName FROM #columntbl WHERE rownumber = @lptcnt SELECT @FilterValue = FilterValue FROM #FILTERVALUETBL WHERE rownumber = @lptcnt IF(@ColumnName = 'Action Type') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (@FilterValue,null,null,NULL,NULL,NULL) ELSE IF(@ColumnName = 'Action Priority') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,@FilterValue,null,NULL,NULL,NULL) ELSE IF(@ColumnName = 'Action Flag') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,null,@FilterValue,NULL,NULL,NULL) ELSE IF(@ColumnName = 'Handler') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,null,NULL,@FilterValue,NULL,NULL) ELSE IF(@ColumnName = 'Action Code') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,null,NULL,NULL,@FilterValue,NULL) ELSE IF(@ColumnName = 'Action Status') INSERT INTO @CustomFilter ([ActionType],[Priority],[Flag],[FNCode],[ActionCode],[ActionStatus]) VALUES (null,null,NULL,NULL,NULL,@FilterValue) SET @lptcnt = @lptcnt + 1; END SET @ActionTypeFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [ActionType] IS NOT NULL AND [ActionType] <>'') SET @PriorityFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [Priority] IS NOT NULL AND [Priority] <>'') SET @FlagFilterCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [Flag] IS NOT NULL AND [Flag] <>'') SET @FNCodeCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [FNCode] IS NOT NULL AND [FNCode] <>'') SET @ActionCodeCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [ActionCode] IS NOT NULL AND [ActionCode] <>'') SET @ActionStatusCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [ActionStatus] IS NOT NULL AND [ActionStatus] <>'') END -- Custom Filter End DECLARE @ShowFromToSynopsis BIT SET @ShowFromToSynopsis = CASE WHEN ISNULL((SELECT TOP 1 [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'ShowFromToSynopsis'), 'True') = 'False' THEN 0 ELSE 1 END SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0)) DECLARE @DELS TABLE( [ID] INT NOT NULL IDENTITY(1,1), [DATE] DATETIME, [DATE2] DATETIME, [TIME] VARCHAR(10) , [AssignNo] INT , [ACTIONID] INT , [STATUS] SMALLINT, [HANDLERNAME] VARCHAR(100), [TEAMNAME] VARCHAR(100) , [PRIORITY] VARCHAR(1), [FLAGDESC] VARCHAR(100)) IF @TaskListMode = 1 BEGIN INSERT into @DELS SELECT ISNULL([DEL].[DATE], '18000101') DATE, CASE WHEN [DIA].[STATUS] = 1 THEN [DIA].[DATE] ELSE ISNULL([DEL].[DATE], [DIA].[DATE]) END AS [DATE2], ISNULL([DEL].[TIME], '') TIME, [DEL].[AssignNo], [DEL].[ACTIONID], ISNULL([DEL].[STATUS], 0) STATUS, [DHAN].[Name], [THAN].[NAME], [DIA].[PRIORITY], [AFL].[Description] FROM [dbo].[DiaryDelegations] DEL WITH(NOLOCK) INNER JOIN [dbo].[diary] DIA WITH(NOLOCK) ON [DIA].[ACTIONID] = [DEL].[ACTIONID] LEFT OUTER JOIN [dbo].[Handlers] [DHAN] WITH(NOLOCK) ON [DHAN].[CODE] = [DEL].[HANDLER] LEFT OUTER JOIN [dbo].[Handlers] [THAN] WITH(NOLOCK) ON [THAN].[CODE] = [DEL].[TEAM] LEFT OUTER JOIN [dbo].[ActionFlag] [AFL] WITH(NOLOCK) ON [AFL].[ActionFlagID] = [DIA].[Flag] INNER JOIN [dbo].[matters] MAT WITH(NOLOCK) ON [MAT].[Code] = DIA.[CASECODE] AND [MAT].[Closed] = 'N' WHERE ( (ISNULL(@TaskListMode, 0) = 1 AND [DEL].[HANDLER] = @HandlerID) OR (ISNULL(@TaskListMode, 0) = 0 AND [DEL].[TEAM] = @TeamID)) AND [DEL].[DelType] NOT IN ('Completed', 'Processed', 'Returned') AND (CASE WHEN [DIA].[STATUS] = 1 THEN [DIA].[DATE] ELSE ISNULL([DEL].[DATE], [DIA].[DATE]) END ) >= CONVERT(DATETIME, @FromDate) AND (CASE WHEN @TaskType = 'OUTSTANDING' THEN 1 WHEN (CASE WHEN @TaskType = 'OVERDUE' THEN DATEADD(DAY, 1, CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112))) WHEN @TaskType != 'OUTSTANDING' THEN DATEADD(DAY, 1, CONVERT(DATETIME, @ToDate)) END) >(CASE WHEN [DIA].[STATUS] = 1 THEN [DIA].[DATE] ELSE ISNULL([DEL].[DATE], [DIA].[DATE]) END ) THEN 1 ELSE 0 END) = 1 AND ( ((ISNULL(@IsOutstandingOnly, 1) <> 0 AND [DEL].[STATUS] = 0) ) OR ISNULL(@IsOutstandingOnly, 1) = 0) AND ( RTRIM(LTRIM(ISNULL(@SearchText, ''))) = '' OR ( (CASE WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = 'E' AND @ShowFromToSynopsis = 1 THEN CASE WHEN ISNULL([DIA].[PROCESSTYPE], 'O') = 'I' THEN 'Email From:' + (RTRIM(ISNULL(CAST([DIA].[EMAILADDRESS] AS VARCHAR(50)),''))) + ' - ' + ISNULL(CAST ([DIA].[Subject] AS VARCHAR(MAX)),'') ELSE 'Email To:' + RTRIM(CAST(ISNULL([DIA].[AddressTo],'') AS VARCHAR(50))) + ' - ' + ISNULL(CAST ([DIA].[Subject] AS VARCHAR(MAX)),'') END ELSE CASE WHEN [DIA].[SUBJECT] IS NULL OR RTRIM(CAST([DIA].[SUBJECT] AS VARCHAR(max))) = '' OR DATALENGTH([DIA].[SUBJECT]) = 0 THEN CASE WHEN SUBSTRING([DIA].[DisplayText],0,CHARINDEX (CHAR(13),[DIA].[DisplayText])) = '' THEN ISNULL([DIA].[TEXT1],'') ELSE SUBSTRING([DIA].[DisplayText],0,CHARINDEX (CHAR(13),[DIA].[DisplayText])) END ELSE [DIA].[SUBJECT] END END) LIKE @SearchText OR RTRIM(ISNULL([DIA].[DisplayText], '')) LIKE @SearchText OR RTRIM(ISNULL([DEL].[ACTIONID], '')) LIKE @SearchText OR CONVERT(DATETIME, CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 112) + ' ' + CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 108)) LIKE @SearchText OR RTRIM(ISNULL([DIA].[CASECODE],'')) LIKE @SearchText OR RTRIM(ISNULL([DEL].[HANDLER],'')) LIKE @SearchText OR RTRIM(ISNULL([DEL].[TEAM],'')) LIKE @SearchText ) ) AND ( ISNULL(@ActionType, '') = '' OR ( ( CASE WHEN ISNULL(LTRIM(RTRIM([DIA].[ACTIONTYPE])), '') = '' THEN 'A' ELSE [DIA].[ACTIONTYPE] END ) IN (SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@ActionType, ',')) ) ) AND ( ISNULL(@Priority, '') = '' OR ( [DIA].[PRIORITY] IN (SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@Priority, ',')) ) ) AND ( ISNULL(@Flag, '') = '' OR ( ISNULL([DIA].[Flag],0) IN (SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@Flag, ',')) ) ) AND -- newly added ( (CASE WHEN @ActionTypeFilterCount = 0 THEN 1 WHEN [DIA].[ActionType] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ActionType] FROM @CustomFilter WHERE [ActionType] IS NOT NULL and [ActionType] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END ) =1 AND (CASE WHEN @PriorityFilterCount = 0 THEN 1 WHEN [DIA].[Priority] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [Priority] FROM @CustomFilter WHERE [Priority] IS NOT NULL and [Priority] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @FlagFilterCount = 0 THEN 1 WHEN ISNULL([DIA].[Flag], 0) in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [Flag] FROM @CustomFilter WHERE [Flag] IS NOT NULL and [Flag] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @FNCodeCount = 0 THEN 1 WHEN ISNULL([DIA].[FNCODE], '') in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [FNCode] FROM @CustomFilter WHERE [FNCode] IS NOT NULL and [FNCode] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @ActionCodeCount = 0 THEN 1 WHEN ISNULL([DIA].[ACTIONCODE], '') in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT DISTINCT [ActionCode] FROM @CustomFilter WHERE [ActionCode] IS NOT NULL and [ActionCode] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @ActionStatusCount = 0 THEN 1 WHEN (CASE WHEN ISNULL([DIA].[WORKPROCESS],0) = 1 AND ISNULL([DIA].[STATUS], 0) <> 1 THEN 'G' WHEN ISNULL([DIA].[STATUS], 0) = 1 THEN 'C' ELSE 'N' END) in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('' + REPLACE((SELECT distinct ActionStatus FROM @CustomFilter WHERE [ActionStatus] IS NOT NULL and [ActionStatus] <>''),',','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 ) ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CompleteOrGeneratedD' THEN (CASE WHEN ISNULL([DIA].[WORKPROCESS],0) = 1 AND ISNULL([DIA].[STATUS], 0) <> 1 THEN 'G' WHEN ISNULL([DEL].[STATUS], 0) = 1 THEN 'C' ELSE '' END) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CompleteOrGeneratedD' THEN (CASE WHEN ISNULL([DIA].[WORKPROCESS],0) = 1 AND ISNULL([DIA].[STATUS], 0) <> 1 THEN 'G' WHEN ISNULL([DEL].[STATUS], 0) = 1 THEN 'C' ELSE '' END) END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ActionId' THEN [DEL].[ACTIONID] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ActionId' THEN [DEL].[ACTIONID] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ActionType' THEN [DIA].[ACTIONTYPE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ActionType' THEN [DIA].[ACTIONTYPE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ActionCode' THEN [DIA].[ACTIONCODE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ActionCode' THEN [DIA].[ACTIONCODE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DelegationStatus' THEN [DIA].[DelegationStatus] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DelegationStatus' THEN [DIA].[DelegationStatus] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Priority' THEN [DIA].[Priority] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Priority' THEN [DIA].[Priority] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Time' THEN [DEL].[Time] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Time' THEN [DEL].[Time] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CaseCode' THEN [DIA].[CaseCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CaseCode' THEN [DIA].[CaseCode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date1' THEN (CASE WHEN ISNULL(DEL.[DATE], '18000101') != NULL OR ISNULL(DEL.[DATE], '18000101') != '' THEN CONVERT(VARCHAR, ISNULL(DEL.[DATE], '18000101'), 20) ELSE '1900-01-01' END) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date1' THEN (CASE WHEN ISNULL(DEL.[DATE], '18000101') != NULL OR ISNULL(DEL.[DATE], '18000101') != '' THEN CONVERT(VARCHAR, ISNULL(DEL.[DATE], '18000101'), 20) ELSE '1900-01-01' END) END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DelDate' THEN CONVERT(DATETIME, CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 112) + ' ' + CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 108)) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DelDate' THEN CONVERT(DATETIME, CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 112) + ' ' + CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 108)) END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Handler' THEN [DEL].[Handler] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Handler' THEN [DEL].[Handler] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Team' THEN RTRIM(ISNULL([DEL].[TEAM],'')) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Team' THEN RTRIM(ISNULL([DEL].[TEAM],'')) END END DESC, [DEL].[HANDLER] DESC, [DATE2] DESC, [DEL].[TIME] DESC, [DEL].[AssignNo] DESC End ELSE BEGIN SET IDENTITY_INSERT [@DELS] ON INSERT into @DELS SELECT ISNULL([DEL].[DATE], '18000101') DATE, CASE WHEN [DIA].[STATUS] = 1 THEN [DIA].[DATE] ELSE ISNULL([DEL].[DATE], [DIA].[DATE]) END AS [DATE2], ISNULL([DEL].[TIME], '') TIME, [DEL].[AssignNo], [DEL].[ACTIONID], ISNULL([DEL].[STATUS], 0) STATUS, [DHAN].[Name], [THAN].[NAME], [DIA].[PRIORITY], [AFL].[Description] FROM [dbo].[DiaryDelegations] DEL WITH(NOLOCK) INNER JOIN [dbo].[diary] DIA WITH(NOLOCK) ON [DIA].[ACTIONID] = [DEL].[ACTIONID] LEFT OUTER JOIN [dbo].[Handlers] [DHAN] WITH(NOLOCK) ON [DHAN].[CODE] = [DEL].[HANDLER] LEFT OUTER JOIN [dbo].[Handlers] [THAN] WITH(NOLOCK) ON [THAN].[CODE] = [DEL].[TEAM] LEFT OUTER JOIN [dbo].[ActionFlag] [AFL] WITH(NOLOCK) ON [AFL].[ActionFlagID] = [DIA].[Flag] INNER JOIN [dbo].[matters] MAT WITH(NOLOCK) ON [MAT].[Code] = DIA.[CASECODE] AND [MAT].[Closed] = 'N' WHERE ( (ISNULL(@TaskListMode, 0) = 1 AND [DEL].[HANDLER] = @HandlerID) OR (ISNULL(@TaskListMode, 0) = 0 AND [DEL].[TEAM] = @TeamID)) AND [DEL].[DelType] NOT IN ('Completed', 'Processed', 'Returned') AND (CASE WHEN [DIA].[STATUS] = 1 THEN [DIA].[DATE] ELSE ISNULL([DEL].[DATE], [DIA].[DATE]) END ) >= CONVERT(DATETIME, @FromDate) AND (CASE WHEN @TaskType = 'OUTSTANDING' THEN 1 WHEN (CASE WHEN @TaskType = 'OVERDUE' THEN DATEADD(DAY, 1, CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112))) WHEN @TaskType != 'OUTSTANDING' THEN DATEADD(DAY, 1, CONVERT(DATETIME, @ToDate)) END) > (CASE WHEN [DIA].[STATUS] = 1 THEN [DIA].[DATE] ELSE ISNULL([DEL].[DATE], [DIA].[DATE]) END ) THEN 1 ELSE 0 END) = 1 AND ( ((ISNULL(@IsOutstandingOnly, 1) <> 0 AND [DEL].[STATUS] = 0) ) OR ISNULL(@IsOutstandingOnly, 1) = 0) AND ( RTRIM(LTRIM(ISNULL(@SearchText, ''))) = '' OR ( (CASE WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = 'E' AND @ShowFromToSynopsis = 1 THEN CASE WHEN ISNULL([DIA].[PROCESSTYPE], 'O') = 'I' THEN 'Email From:' + (RTRIM(ISNULL(CAST([DIA].[EMAILADDRESS] AS VARCHAR(50)),''))) + ' - ' + ISNULL(CAST ([DIA].[Subject] AS VARCHAR(MAX)),'') ELSE 'Email To:' + RTRIM(CAST(ISNULL([DIA].[AddressTo],'') AS VARCHAR(50))) + ' - ' + ISNULL(CAST ([DIA].[Subject] AS VARCHAR(MAX)),'') END ELSE CASE WHEN [DIA].[SUBJECT] IS NULL OR RTRIM(CAST([DIA].[SUBJECT] AS VARCHAR(max))) = '' OR DATALENGTH([DIA].[SUBJECT]) = 0 THEN CASE WHEN SUBSTRING([DIA].[DisplayText],0,CHARINDEX (CHAR(13),[DIA].[DisplayText])) = '' THEN ISNULL([DIA].[TEXT1],'') ELSE SUBSTRING([DIA].[DisplayText],0,CHARINDEX (CHAR(13),[DIA].[DisplayText])) END ELSE [DIA].[SUBJECT] END END) LIKE @SearchText OR RTRIM(ISNULL([DIA].[DisplayText], '')) LIKE @SearchText OR RTRIM(ISNULL([DEL].[ACTIONID], '')) LIKE @SearchText OR CONVERT(DATETIME, CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 112) + ' ' + CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 108)) LIKE @SearchText OR RTRIM(ISNULL([DIA].[CASECODE],'')) LIKE @SearchText OR RTRIM(ISNULL([DEL].[HANDLER],'')) LIKE @SearchText OR RTRIM(ISNULL([DEL].[TEAM],'')) LIKE @SearchText ) ) AND ( ISNULL(@ActionType, '') = '' OR ( ( CASE WHEN ISNULL(LTRIM(RTRIM([DIA].[ACTIONTYPE])), '') = '' THEN 'A' ELSE [DIA].[ACTIONTYPE] END ) IN (SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@ActionType, ',')) ) ) AND ( ISNULL(@Priority, '') = '' OR ( [DIA].[PRIORITY] IN (SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@Priority, ',')) ) ) AND ( ISNULL(@Flag, '') = '' OR ( ISNULL([DIA].[Flag],0) IN (SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@Flag, ',')) ) ) ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CompleteOrGeneratedD' THEN (CASE WHEN ISNULL([DIA].[WORKPROCESS],0) = 1 AND ISNULL([DIA].[STATUS], 0) <> 1 THEN 'G' WHEN ISNULL([DEL].[STATUS], 0) = 1 THEN 'C' ELSE '' END) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CompleteOrGeneratedD' THEN (CASE WHEN ISNULL([DIA].[WORKPROCESS],0) = 1 AND ISNULL([DIA].[STATUS], 0) <> 1 THEN 'G' WHEN ISNULL([DEL].[STATUS], 0) = 1 THEN 'C' ELSE '' END) END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ActionType' THEN [DIA].[ACTIONTYPE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ActionType' THEN [DIA].[ACTIONTYPE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DelegationStatus' THEN [DIA].[DelegationStatus] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DelegationStatus' THEN [DIA].[DelegationStatus] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Priority' THEN [DIA].[Priority] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Priority' THEN [DIA].[Priority] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date1' THEN (CASE WHEN ISNULL(DEL.[DATE], '18000101') != NULL OR ISNULL(DEL.[DATE], '18000101') != '' THEN CONVERT(VARCHAR, ISNULL(DEL.[DATE], '18000101'), 20) ELSE '1900-01-01' END) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date1' THEN (CASE WHEN ISNULL(DEL.[DATE], '18000101') != NULL OR ISNULL(DEL.[DATE], '18000101') != '' THEN CONVERT(VARCHAR, ISNULL(DEL.[DATE], '18000101'), 20) ELSE '1900-01-01' END) END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Time' THEN [DEL].[Time] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Time' THEN [DEL].[Time] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CaseCode' THEN [DIA].[CaseCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CaseCode' THEN [DIA].[CaseCode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Handler' THEN [DEL].[Handler] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Handler' THEN [DEL].[Handler] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Team' THEN RTRIM(ISNULL([DEL].[TEAM],'')) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Team' THEN RTRIM(ISNULL([DEL].[TEAM],'')) END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Synopsis' THEN (CASE WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = 'E' AND @ShowFromToSynopsis = 1 THEN CASE WHEN ISNULL([DIA].[PROCESSTYPE], 'O') = 'I' THEN 'Email From:' + (RTRIM(ISNULL(CAST([DIA].[EMAILADDRESS] AS VARCHAR(50)),''))) + ' - ' + ISNULL(CAST ([DIA].[Subject] AS VARCHAR(MAX)),'') ELSE 'Email To:' + RTRIM(CAST(ISNULL([DIA].[AddressTo],'') AS VARCHAR(50))) + ' - ' + ISNULL(CAST ([DIA].[Subject] AS VARCHAR(MAX)),'') END ELSE CASE WHEN [DIA].[SUBJECT] IS NULL OR RTRIM(CAST([DIA].[SUBJECT] AS VARCHAR(max))) = '' OR DATALENGTH([DIA].[SUBJECT]) = 0 THEN CASE WHEN SUBSTRING([DIA].[DisplayText],0,CHARINDEX (CHAR(13),[DIA].[DisplayText])) = '' THEN ISNULL([DIA].[TEXT1],'') ELSE SUBSTRING([DIA].[DisplayText],0,CHARINDEX (CHAR(13),[DIA].[DisplayText])) END ELSE [DIA].[SUBJECT] END END) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Synopsis' THEN (CASE WHEN RTRIM(ISNULL(DIA.[ACTIONTYPE], '')) = 'E' AND @ShowFromToSynopsis = 1 THEN CASE WHEN ISNULL(DIA.[PROCESSTYPE], 'O') = 'I' THEN 'Email From:' + (RTRIM(ISNULL(CAST(DIA.[EMAILADDRESS] AS VARCHAR(50)),''))) + ' - ' + ISNULL(CAST (DIA.[Subject] AS VARCHAR(MAX)),'') ELSE 'Email To:' + RTRIM(CAST(ISNULL(DIA.[AddressTo],'') AS VARCHAR(50))) + ' - ' + ISNULL(CAST (DIA.[Subject] AS VARCHAR(MAX)),'') END ELSE CASE WHEN DIA.[SUBJECT] IS NULL OR RTRIM(CAST(DIA.[SUBJECT] AS VARCHAR(max))) = '' OR DATALENGTH(DIA.[SUBJECT]) = 0 THEN CASE WHEN SUBSTRING(DIA.[DisplayText],0,CHARINDEX (CHAR(13),DIA.[DisplayText])) = '' THEN ISNULL(DIA.[TEXT1],'') ELSE SUBSTRING(DIA.[DisplayText],0,CHARINDEX (CHAR(13),DIA.[DisplayText])) END ELSE DIA.[SUBJECT] END END) END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DelDate' THEN CONVERT(DATETIME, CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 112) + ' ' + CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 108)) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DelDate' THEN CONVERT(DATETIME, CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 112) + ' ' + CONVERT(VARCHAR, ISNULL([DEL].[DATE], '18000101'), 108)) END END DESC, [DEL].[TEAM] DESC, [DATE2] DESC, [DEL].[TIME] DESC, [DEL].[AssignNo] DESC END SELECT Top 1 @TotalRecords = Count(1) Over() FROM @DELS DEL INNER JOIN [dbo].[DiaryDelegationSelector] [DDL] WITH (NOEXPAND, NOLOCK) ON [DDL].[AssignNo] = [DEL].[ASSIGNNO] INNER JOIN [dbo].[DiaryData] [DIA] WITH (NOEXPAND, NOLOCK) INNER JOIN [dbo].[SearchMatters] [SM] WITH (NOLOCK) ON [SM].[Code] = [DIA].[CASECODE] ON [DIA].[ACTIONID] = [DEL].[ACTIONID] LEFT OUTER JOIN [dbo].[StatusCodes] [SSC] WITH (NOLOCK) ON [SSC].[CODE] = [DDL].[ACTIONSTATUS] LEFT OUTER JOIN [TemplateActions] TA WITH(NOLOCK) ON TA.[ACTIONCODE] =DIA.[ACTIONCODE] LEFT OUTER JOIN [Templates] T WITH(NOLOCK) ON T.[WKCODE] = TA.[WKTCODE] SELECT [DEL].ID AS [Row_Number], [DEL].[STATUS] AS [DDStatus], [DIA].[PRIORITY] AS [Priority], CONVERT(DATETIME,dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DEL].[DATE], @HandlerID)) AS [DelDate], CONVERT(VARCHAR(5),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([DIA].[DATE], @HandlerID), 108) AS [Time], [DIA].[CASECODE] AS [CaseCode], [DDL].[HANDLER] AS [Handler], RTRIM(ISNULL(DEL.[HANDLERNAME],'')) AS [HandlerName], [DDL].[TEAM] AS [Team], RTRIM(ISNULL(DEL.[TEAMNAME],'')) AS [TeamName], [DDL].[FromHandler] AS [From], [SM].[Name] + CHAR(13) + [SM].[Description] AS [ClientCase], [SM].[Name] AS [ClientName], [DIA].[TEXT1] AS [Action], [DIA].[DATE] AS [Date1], ISNULL(DEL.[STATUS], 0) as DStatus, [DDL].[DelType] AS [DelType], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ActionType], [DIA].[HIGHLIGHTED] AS [Highlighted], [DIA].[ACTIONID] AS [ActionId], RTRIM(ISNULL([DIA].[FNCODE], '')) AS [FNCode], RTRIM(ISNULL(DEL.[HANDLERNAME],'')) AS [FNName], [SM].[FECode] AS [CaseFe], [DIA].[PROCESSTYPE] AS [ProcessType], [DDL].[OWNER] AS [Owner], [DDL].[DELEGATESTATUS] AS [DelegateStatus], [DIA].[PROCESSSTATUS] AS [ProcessStatus], [DIA].[WORKPROCESS] AS [WorkProcess], [DIA].[DELEGATIONSTATUS] AS [DelegationStatus], [DEL].[ASSIGNNO] AS [AssignNo], [DIA].[CompletedGenerated] AS [CompleteOrGenerate], [DIA].[CompletedGenerated] AS [CompleteOrGeneratedD], CASE WHEN (RTRIM(ISNULL([DEL].[PRIORITY], '')) = 'H') THEN 2 WHEN (RTRIM(ISNULL([DEL].[PRIORITY], '')) = 'N') THEN 1 WHEN (RTRIM(ISNULL([DEL].[PRIORITY], '')) = 'L') THEN 0 ELSE 0 END AS [PriorityValue], SUBSTRING(CONVERT(VARCHAR(8), DATEADD(SECOND, ROUND( CONVERT(FLOAT, [DDL].[IMAGENO] - 1) / CONVERT(FLOAT, 100), 0), CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(), 112))), 108), 4, 5) AS [Duration], [DIA].[Flag] AS [Flag], [DEL].[FlagDesc] AS [FlagDescription], CASE WHEN [DIA].[ACTIONTYPE] = 'E' AND @ShowFromToSynopsis = 1 THEN [DIA].[EmailSynopsis] ELSE [DIA].[OtherSynopsis] END AS [Synopsis], [SM].[User1] AS [User1], [SM].[User2] AS [User2], [SM].[User3] AS [User3], [SM].[YourRef] AS [YourRef], CASE WHEN [DIA].[DUEDATE] != NULL OR [DIA].[DUEDATE] != '' THEN CONVERT(VARCHAR, [DIA].[DUEDATE], 120) ELSE '1900-01-01' END AS [DueDate], CONVERT(VARCHAR(5), [DIA].[DUEDATE], 108) AS [DueTime], [SM].[OldRef] AS [OldRef], ISNULL(RTRIM([DIA].[ACTIONCODE]), '') AS [ActionCode], CASE WHEN SSC.[CODE] IS NULL THEN '' ELSE RTRIM(SSC.[CODE]) + ' - ' + RTRIM(ISNULL(SSC.[DESCRIPTION], '')) END AS [ActionStatus], [SM].[FileColourDescription] AS [FileColour], CASE WHEN [SM].[FileRGBColour] = -1 THEN 'Transparent' ELSE [SM].[FileBackgroundColour] END AS [BackgroundColour], [DIA].[DRAFTBILLNO] AS [DraftBillNo], [TA].[DESC] AS [ActionTitle], [T].[WKDESC] AS [WorkFlow], [DIA].[DYSTARTTIME] AS [DYStartTime], [DIA].[DYENDTIME] AS [DYEndTime], [SM].[HandlerName] AS [FeeEarner], CASE WHEN RTRIM(ISNULL([DDL].[Secretary], '')) = '' THEN '' ELSE [DDL].[SecretaryName] END AS [Secretary], [SM].[PartnerName] AS [Partner], [SM].[Description] AS [MatterDescription], [DIA].[CreationDate] AS [CreationDate], ISNULL([DIA].[DELEGATEDFNR], '') AS [DelegatedFE], [TA].[Arrangement] AS [Arrangement], [DDL].[ChargeArrangement] AS [ChargeArrangement] FROM @DELS DEL INNER JOIN [dbo].[DiaryDelegationSelector] [DDL] WITH (NOEXPAND, NOLOCK) ON [DDL].[AssignNo] = [DEL].[ASSIGNNO] INNER JOIN [dbo].[DiaryData] [DIA] WITH (NOEXPAND, NOLOCK) INNER JOIN [dbo].[SearchMatters] [SM] WITH (NOLOCK) ON [SM].[Code] = [DIA].[CASECODE] ON [DIA].[ACTIONID] = [DEL].[ACTIONID] LEFT OUTER JOIN [dbo].[StatusCodes] [SSC] WITH (NOLOCK) ON [SSC].[CODE] = [DDL].[ACTIONSTATUS] LEFT OUTER JOIN [TemplateActions] TA WITH(NOLOCK) ON TA.[ACTIONCODE] =DIA.[ACTIONCODE] LEFT OUTER JOIN [Templates] T WITH(NOLOCK) ON T.[WKCODE] = TA.[WKTCODE] ORDER BY [Row_Number] OFFSET @PageSize * (@PageNumber - 1) ROWS FETCH NEXT @PageSize ROWS ONLY SELECT @userprompt1 = ISNULL(RTRIM([USERPROMPT1]),'USERPROMPT1'), @userprompt2 = ISNULL(RTRIM([USERPROMPT2]),'USERPROMPT2'), @userprompt3 = ISNULL(RTRIM([USERPROMPT3]),'USERPROMPT3') FROM [dbo].[CONTROL] CTL SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_GetTaskPushDate]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_GetTaskPushDate] GO CREATE PROCEDURE [dbo].[KAAS_GetTaskPushDate] ( @ActionID INT, @Date DATETIME, @Status INT, @Result VARCHAR(50) OUTPUT ) AS /******************************************************************************************************* * This sp used to fetch the action count in pushed date. * * * * Stored Procedure Name : [dbo].[KAAS_GetTaskPushDate] * * Copied from : [dbo].[Ky_NETGetTaskPushDate] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @ActionDate DATETIME SET @ActionDate = (SELECT DATE FROM diary WHERE ACTIONID = @ActionID) DECLARE @FNCode VARCHAR(5) SET @FNCode = (SELECT FNCODE FROM diary WHERE ACTIONID = @ActionID) DECLARE @Value VARCHAR(50) IF (@Status = 0) BEGIN SET @Value = CONVERT(VARCHAR(5),(SELECT COUNT(*) FROM diary WHERE CONVERT(VARCHAR, [DATE], 112) = CONVERT(VARCHAR, DATEADD(DAY,7,@ActionDate), 112) AND FNCODE = @FNCode AND [STATUS] = 0)) SET @Value = @Value + ',' + CONVERT(VARCHAR(5),(SELECT COUNT(*) FROM diary WHERE CONVERT(VARCHAR, [DATE], 112) = CONVERT(VARCHAR, DATEADD(DAY,14,@ActionDate), 112) AND FNCODE = @FNCode AND [STATUS] = 0)) SET @Value = @Value + ',' + CONVERT(VARCHAR(5),(SELECT COUNT(*) FROM diary WHERE CONVERT(VARCHAR, [DATE], 112) = CONVERT(VARCHAR, DATEADD(DAY,30,@ActionDate), 112) AND FNCODE = @FNCode AND [STATUS] = 0)) SET @Result = @Value END ELSE BEGIN SET @Result = CONVERT(VARCHAR(5),(SELECT COUNT(*) FROM diary WHERE CONVERT(VARCHAR, [DATE], 112) = CONVERT(VARCHAR, @Date, 112) AND FNCODE = @FNCode AND [STATUS] = 0)) END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetTaskRate' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetTaskRate] END GO CREATE PROCEDURE [dbo].[KAAS_GetTaskRate] (@TaskCode VARCHAR(6)) AS /******************************************************************************************************* * This procedure is used to get default value from TaskCodes * * * * Stored Procedure Name : [dbo].[KAAS_GetTaskRate] * * Copied from : [dbo].[ky_NETGetTaskRate] * * * * Modification History : * * 2019-05-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT [TCD].[Default] FROM [TasksCodes] [TCD] WHERE [TCD].[CODE] = @TaskCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetTasksCodes' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetTasksCodes] END GO CREATE PROCEDURE [dbo].[KAAS_GetTasksCodes] (@PostDay BIT, @Code VARCHAR(20), @HandlerCode VARCHAR(10)) AS /******************************************************************************************************* * Used to list the Tasks Codes. * * * * Stored Procedure Name : [dbo].[KAAS_GetTasksCodes] * * Copied from : [dbo].[ky_NETGetTasksCodes2] in ky_NETGetTasksCodes * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET @PostDay = ISNULL(@PostDay, 1) SET @Code = ISNULL(@Code, '') SET @HandlerCode = ISNULL(@HandlerCode, '') IF(@PostDay = 1) BEGIN IF @HandlerCode = '' BEGIN SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType], RTRIM(ISNULL([TAC].[DESC], '')) AS [Description] FROM [dbo].[TasksCodes] [TAC] WHERE ISNULL([TAC].[Retired], 0) <> 1 END ELSE BEGIN SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType], RTRIM(ISNULL([TAC].[DESC], '')) AS [Description] FROM [dbo].[TasksCodes] [TAC] WHERE ISNULL([TAC].[Retired], 0) <> 1 OR [TAC].[CODE] = @HandlerCode END END ELSE BEGIN IF(@Code = '') BEGIN IF @HandlerCode = '' BEGIN SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType], RTRIM(ISNULL([TAC].[DESC], '')) AS [Description] FROM [dbo].[TasksCodes] [TAC] WHERE RTRIM(ISNULL([TAC].[Department], '')) = '' AND ISNULL([TAC].[Retired], 0) <> 1 END ELSE BEGIN SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType], RTRIM(ISNULL([TAC].[DESC], '')) AS [Description] FROM [dbo].[TasksCodes] [TAC] WHERE RTRIM(ISNULL([TAC].[Department], '')) = '' AND ( ISNULL([TAC].[Retired], 0) <> 1 OR [TAC].[CODE] = @HandlerCode) END END ELSE BEGIN SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType], RTRIM(ISNULL([TAC].[DESC], '')) AS [Description] FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[WorkTypes] [WKT] ON [WKT].[CODE] = [MAT].[WType] INNER JOIN [dbo].[TasksCodes] [TAC] ON ( [TAC].[Department] = [MAT].[Dept] OR RTRIM(ISNULL([TAC].[Department], '')) = '') AND ( ( ISNULL([WKT].[ChildCare], 'N') <> 'Y' AND ISNULL([TAC].[AxleTask], 'N') <> 'Y' AND ( ISNULL([TAC].Retired, 0) <> 1 OR [TAC].[CODE] = @HandlerCode)) OR ( ISNULL([WKT].[ChildCare], 'N') = 'Y' AND ISNULL([TAC].[AxleTask], 'N') = 'Y')) WHERE [MAT].[Code] = @Code END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetTeamLookupList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetTeamLookupList] END GO CREATE PROCEDURE [dbo].[KAAS_GetTeamLookupList] AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_GetTeamLookupList] * * Copied from : [dbo].[ky_NETGetTeamLookupList] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [CODE], RTRIM(ISNULL(HAN.[NAME], '')) AS [NAME], RTRIM(ISNULL(HAN.[DEPT], '')) AS [DEPT], CASE WHEN RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [TEAMCODE] FROM [Handlers] HAN WHERE RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) = 'Y' ORDER BY RTRIM(ISNULL(HAN.[NAME], '')) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetTemplateActionCommands' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetTemplateActionCommands] END GO CREATE PROCEDURE [dbo].[KAAS_GetTemplateActionCommands] (@ActionCode VARCHAR(5)) As /*********************************************************************************************** * This procedure is used to Fetch Charge Arrangement . * * * * Stored Procedure Name : [dbo].[KAAS_GetTemplateActionCommands] * * * * Modification History : * * 2023-06-15 Nithyanandham M Created * ***********************************************************************************************/ BEGIN SET NOCOUNT ON SELECT UPPER(RTRIM(ISNULL(ACTIONCODE, '' ))) AS ActionCode, RTRIM(ISNULL([DESCRIPTION], '' )) AS [Description], RTRIM(ISNULL(COMMAND, '' )) AS Command, RTRIM(ISNULL([PARAMETERS], '' )) AS [Parameters], RTRIM(ISNULL([ORDER], 0 )) AS [Order] FROM TemplateActionCommands WHERE ACTIONCODE = @ActionCode ORDER BY [ORDER] ASC SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetTemplateActionDocumentsToChooseFrom' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetTemplateActionDocumentsToChooseFrom] END GO CREATE PROCEDURE [dbo].[KAAS_GetTemplateActionDocumentsToChooseFrom] (@ActionID INT, @ActionCode VARCHAR(10), @SearchText VARCHAR(4000) = NULL, @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /**************************************************************************************************** * * * Lists the Template Action Documents to choose from. If an action ID is passed in, it will also * * include a column to indicate for each Template Action Document whether a document of that type * * is already present for that action * * * * SP can be called with @ActionID <> 0, in which case @ActionCode is superfluous (the SP will * * retrieve the correct one from the Action. Or with @ActionID = 0 in which case it will use the * * @ActionCode that is passed in as the second parameter. * * * * Stored Procedure : KAAS_GetTemplateActionDocumentsToChooseFrom * * Copied From : [dbo].[ky_NETSPGetTemplateActionDocumentsToChooseFrom] * * * * Modification History * * 2016-10-10 Pino Carafa Created * * 2019-12-20 Vinodhan Created KAAS_GetTemplateActionDocumentsToChooseFrom * * * ****************************************************************************************************/ BEGIN IF NOT @ActionID IS NULL SET NOCOUNT ON DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(ISNULL(@SortDirection, '') = '' OR RTRIM(LTRIM(@SortDirection)) = '') BEGIN SET @SortDirection = 'ASC' END DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = ' DECLARE @ALREADYS TABLE ([DOCUMENT] VARCHAR(10) NOT NULL PRIMARY KEY) SELECT @ActionCode = RTRIM(ISNULL([DIA].[ACTIONCODE], '''')) FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID INSERT INTO @ALREADYS ([DOCUMENT]) SELECT DISTINCT RTRIM(ISNULL([DAT].[NAME], '''')) FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[DiaryAttachments] [DAT] ON [DAT].[DiaryID] = [DIA].[ACTIONID] INNER JOIN [dbo].[TemplateActionDcouments] [TAD] ON [TAD].[ACTION] = [DIA].[ACTIONCODE] AND [TAD].[DOCUMENT] = [DAT].[NAME] WHERE [DIA].[ACTIONID] = @ActionID SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT RTRIM([TAD].[ACTION]) AS [ActionCode], CASE WHEN ISNULL([TAD].[OPTIONAL], ''Y'') = ''N'' THEN ''N'' ELSE ''Y'' END AS [Optional], CASE WHEN [ALR].[DOCUMENT] IS NULL THEN ''N'' ELSE ''Y'' END AS [AlreadyCreated], RTRIM([TAD].[DOCUMENT]) AS [Document], ISNULL([TAD].[SeqNo], 0) AS [SeqNo], RTRIM(ISNULL([TD].[FILEPATH], '''')) AS [FilePath], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([TD].[FILEPATH], '''')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([TD].[FILEPATH], '''')), 3, LEN(RTRIM(ISNULL([TD].[FILEPATH], ''''))) - 2) END AS [FilePathUNC], RTRIM(ISNULL([TD].[NAME], '''')) AS [Name], RTRIM(ISNULL([TD].[DOCCLASS], '''')) AS [DocClass], RTRIM(ISNULL([TD].[STORE], '''')) AS [Store], CASE WHEN ISNULL([TD].[DICTATION], ''N'') = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Dictation], CASE WHEN ISNULL([TD].[OPENDURINGDICTATION], ''N'') = ''Y'' THEN ''Y'' ELSE ''N'' END AS [OpenDuringDictation], RTRIM(ISNULL([TD].[STARTTOKEN], '''')) AS [StartToken], RTRIM(ISNULL([TD].[ENDTOKEN], '''')) AS [EndToken], CASE WHEN ISNULL([TD].[OVERWRITE], ''N'') = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Overwrite] FROM [dbo].[TemplateActionDcouments] [TAD] LEFT OUTER JOIN @ALREADYS [ALR] ON [ALR].[DOCUMENT] = [TAD].[DOCUMENT] INNER JOIN [dbo].[TemplateDocuments] [TD] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([TD].[FILEPATH], 2, 1) = '':'' AND [UNC].[Drive] = SUBSTRING([TD].[FILEPATH], 1, 1) ON [TD].[CODE] = [TAD].[DOCUMENT] WHERE ( ISNULL(@SearchText, '''') = '''' OR RTRIM(LTRIM(@SearchText)) = '''' OR ( [TAD].[DOCUMENT] LIKE ''%'' + @SearchText + ''%'' OR [TD].[NAME] LIKE ''%'' + @SearchText + ''%'' ) ) AND [TAD].[ACTION] = @ActionCode) AS FoundTable ' IF ((ISNULL(@SortColumn, '') = '') OR (@SortColumn = '') OR (ISNULL(@SortDirection, '') = '') OR (@SortDirection = '')) BEGIN SET @NCOMMAND = @NCOMMAND + 'ORDER BY ISNULL([FoundTable].[SeqNo], 0) ASC, RTRIM([FoundTable].[DOCUMENT]) ASC' END ELSE BEGIN SET @NCOMMAND = @NCOMMAND + ' ORDER BY CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Document'' THEN [Document] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Document'' THEN [Document] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Name'' THEN [Name] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Name'' THEN [Name] END END DESC' END SET @NCOMMAND = @NCOMMAND + ' SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecord] FROM #FoundTable' EXECUTE SP_EXECUTESQL @NCOMMAND, N'@ActionCode VARCHAR(10), @ActionID INT, @SearchText VARCHAR(4000), @StartRow INT, @EndRow INT, @SortColumn VARCHAR(50), @SortDirection VARCHAR(10)', @ActionCode = @ActionCode, @ActionID = @ActionID, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow, @SortColumn = @SortColumn, @SortDirection = @SortDirection SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetTemplateActions' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetTemplateActions] END GO CREATE PROCEDURE [dbo].[KAAS_GetTemplateActions] ( @ACTIONCODE varchar(15) ) AS /******************************************************************************************************* * To get Action details * * Used in OWA * * * * Params: * * @ACTIONCODE * * * * Stored Procedure Name : [dbo].[KAAS_GetFollowOnActions] * * * * Modification History : * * 2019-05-07 Ramesh K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(TA.[ACTIONCODE], '')) AS [ACTIONCODE], RTRIM(ISNULL(TA.[DESC], '')) AS [DESC], RTRIM(ISNULL(TA.[WKTCODE], '')) AS [WKTCODE], RTRIM(ISNULL(TA.[ACTTYPE], '')) AS [ACTTYPE], RTRIM(ISNULL(TA.[ACTIONCATEGORY], '')) AS [ACTIONCATEGORY], RTRIM(ISNULL(TA.[STATUS], '')) AS [STATUS], RTRIM(ISNULL(TA.[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL(TA.[PUBLISHER], '')) AS [PUBLISHER], RTRIM(ISNULL(TA.[HIGHLIGHTED], '')) AS [HIGHLIGHTED], RTRIM(ISNULL(TA.[MILESTONETYPE], '')) AS [MILESTONETYPE], RTRIM(ISNULL(TA.[PRIORITY], '')) AS [PRIORITY], RTRIM(ISNULL(TA.[NEXTACTIONOPTIONAL], '')) AS [NEXTACTIONOPTIONAL], RTRIM(ISNULL(TA.[BILLABLE], '')) AS [BILLABLE], RTRIM(ISNULL(TA.[EMAIL], '')) AS [EMAIL], RTRIM(ISNULL(TA.[BILLDESCRIPTION], '')) AS [BILLDESCRIPTION], RTRIM(ISNULL(TA.[AssignActionTo], '')) AS [AssignActionTo], RTRIM(ISNULL(TA.[ASSIGNHANDLER], '')) AS [ASSIGNHANDLER], RTRIM(ISNULL(TA.[Description], '')) AS [Description] FROM [dbo].[TemplateActions] TA WHERE TA.[ActionCode] = @ACTIONCODE END GO IF OBJECT_ID(N'KAAS_GetTemplatePreview',N'P')IS NOT NULL DROP PROCEDURE [KAAS_GetTemplatePreview] GO CREATE PROCEDURE KAAS_GetTemplatePreview (@WKTCODE AS VARCHAR(10)) AS /******************************************************************************************************* * Fetches the list of Template preview * * * * Stored Procedure Name : [dbo].[KAAS_GetTemplatePreview] * * Copied from : [dbo].[Ky_NETGetTemplatePreview] * * * * Modification History : * * 2019-09-24 Dheepin Vijith K Created * * 2023-03-24 Sadiq Added Flag and Status value(15826) * * 2023-04-24 Sadiq Added Priority value(15826) * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT ROW_NUMBER() OVER (ORDER BY TA.ACTIONCODE) AS ID ,[DESC] ,TA.ACTIONCODE ,TA.Flag ,TA.[STATUS] ,TA.[PRIORITY] FROM ActionWorkTypes AW INNER JOIN TemplateActions TA ON AW.ACTIONCODE =TA.ACTIONCODE WHERE RTRIM(AW.WORKTYPE)=@WKTCODE ORDER BY AW.SEQ SELECT TD.NAME, TA.ACTIONCODE , CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(TD.[FILEPATH], '')) ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(TD.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(TD.[FILEPATH], ''))) - 2) END AS [FILEPATH] FROM TemplateActions TA INNER JOIN ActionWorkTypes AW ON TA.ACTIONCODE =AW.ACTIONCODE INNER JOIN TemplateActionDcouments TAD ON AW.ACTIONCODE =TAD.ACTION INNER JOIN TemplateDocuments TD ON TD.CODE =TAD.DOCUMENT LEFT OUTER JOIN UNCAlias UNC ON SUBSTRING(TD.[FilePath], 2, 1) = ':' AND UNC.[Drive] = SUBSTRING(TD.[FilePath], 1, 1) WHERE RTRIM(AW.WORKTYPE)=@WKTCODE ORDER BY AW.SEQ SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetTimeAdminCodes',N'P')IS NOT NULL DROP PROCEDURE [KAAS_GetTimeAdminCodes] GO CREATE PROCEDURE [KAAS_GetTimeAdminCodes] (@Code VARCHAR(10)) AS /******************************************************************************************************* * This stored procedure is used to FETCH the Time Admin codes for post day book. * * * * Stored Procedure Name : [dbo].[KAAS_GetTimeAdminCodes] * * Copied from : [dbo].[Ky_NETGetTimeAdminCodes] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(NCCODE) AS [NCCODE], RTRIM(ISNULL([DESCRIPTION],'')) AS [DESCRIPTION] FROM [TimeAdminCodes] WHERE ISNULL([Retired],'N') = 'N' OR NCCODE = @Code SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_GetTimeDayBookDetails]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_GetTimeDayBookDetails] GO /******************************************************************************************************* * Used to list the Tasks Codes * * * * Stored Procedure Name : [dbo].[KAAS_GetTimeDayBookDetails] * * Copied from : [dbo].[ky_NETGetTimeDayBookDetails] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ CREATE PROC [KAAS_GetTimeDayBookDetails] @RecordID DECIMAL(17,0) AS BEGIN SELECT TDB.MATTER ,RTRIM(ISNULL(M.[Description],'')) AS [Description] ,FEEEARN ,[DATE] ,[TIME] ,CASE WHEN [TIME]>59 THEN CAST(FLOOR(([TIME] / 60)) AS VARCHAR(8)) + ':' + RIGHT('0' + CAST(([TIME] % 60) AS VARCHAR(2)), 2) ELSE '00:' + CAST([TIME] AS VARCHAR(30)) END AS CaseTime ,ISNULL(RATE,0) RATE ,ISNULL(CHARGE,0) AS Charge ,ISNULL(Task,'') AS Task ,TimeOrCharge ,RTRIM(ISNULL(TDB.Comment,'')) AS Comment ,RTRIM(Name) AS Name ,RTRIM(ISNULL(M.[Description],'')) AS MatterDecription ,ISNULL(REC_IRR,'C') AS IsChargeable ,ISNULL(NCCCODE,'') AS AdminCode ,ISNULL(TAC.Retired,'N') AS Retired FROM [dbo].TimeDayBook TDB LEFT OUTER JOIN Matters M ON TDB.MATTER=M.Code LEFT OUTER JOIN Contacts C ON SUBSTRING(TDB.MATTER,0,CHARINDEX('/',TDB.MATTER)) =C.Code LEFT OUTER JOIN TimeAdminCodes TAC on TAC.NCCODE = TDB.NCCCode WHERE RECORDID = @RecordID END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetTimeEntry' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetTimeEntry] END GO CREATE PROCEDURE KAAS_GetTimeEntry (@RecordID INT) AS /******************************************************************************************************* * Get the data of a TimeEntry record page. * * * * Stored Procedure Name : [dbo].[KAAS_GetTimeEntry] * * Copied from : [dbo].[Ky_NetGetTimeEntry] * * * * Modification History: * * 2019-07-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT DATE ,ISNULL(TIME,0)TIME ,ISNULL(RATE,0) Rate ,ISNULL(CHARGE,0) CHARGE ,ISNULL(COMMENT ,'') COMMENT ,ISNULL(TASK ,'') AS TASK ,ISNULL(REC_IRR,'N') AS REC_IRR ,ISNULL(TimeorCharge,'T') TIMEORCHARGE FROM TimeEntry WHERE RecordID=@RecordID END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetTimeEntyForWriteOff' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetTimeEntyForWriteOff] END GO CREATE PROCEDURE [dbo].[KAAS_GetTimeEntyForWriteOff] ( @Matter VARCHAR(20)) AS /********************************************************************************************* * KAAS_GetTimeEntyForWriteOff * This proedure is used to get the entries for write off * * Modification History: * 2015-11-13 John Ginnane Now excluding billed items as they cannot be written off. * 2015-11-19 John Ginnane Partially billed items are no longer excluded * 2015-11-24 John Ginnane Negative charge is now shown in parentheses. * 2015-11-25 John Ginnane Excluding nonchargeable time while we figure out how to handle it * 2015-11-25 John Ginnane Reverted previous change * 2016-05-09 John Ginnane Partially billed items have their time adjusted proportional to * the amount left unbilled. * 2016-07-15 Sridharan KEYD-3772 - Write Off Time - Editing the write off entry * resets the rate to €1.00 * 2019-10-04 John Ginnane KEYD-6162 - Items included in a bill that hasn't been approved * are marked as such, so users cannot write them off * 2019-10-09 John Ginnane KEYD-6204 - Fixed typo * 2019-12-10 Arun V Copied from KY_NETGetTimeEntyForWriteOff **********************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @SQL NVARCHAR(MAX) DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() SET @SQL = N' DECLARE @TIME TABLE ( [RecordID] INT PRIMARY KEY NOT NULL, [IncludedInInvoice] BIT NOT NULL DEFAULT(0)) INSERT INTO @TIME ([RecordID]) SELECT [TIE].[RecordID] FROM [dbo].[TimeEntry] AS [TIE] WHERE [TIE].[Matter] = @MATTER AND [TIE].[TimeOrCharge] <> ''B'' AND (CASE WHEN @ISSAM4 = 1 AND [TIE].[InvoiceNo] <> 0 THEN 1 WHEN @ISSAM4 = 0 AND [TIE].[Charge] = ISNULL([TIE].[BilledAmount], 0) THEN 1 ELSE 0 END) = 0' IF @ISSAM4 = 1 BEGIN SET @SQL = @SQL + N' UPDATE [TMP] SET [TMP].[IncludedInInvoice] = 1 FROM @TIME AS [TMP] WHERE EXISTS (SELECT TOP 1 1 FROM [dbo].[BillingGuide] AS [BG] INNER JOIN [dbo].[Billhead] AS [BH] ON [BH].[BillingID] = [BG].[BillingNo] WHERE [BG].[TimeID] = [TMP].[RecordID] AND [BG].[ChargeType] IN (''T'', ''C'') AND [BH].[BillStatus] <> ''Approved'')' END ELSE BEGIN SET @SQL = @SQL + N' UPDATE [TMP] SET [TMP].[IncludedInInvoice] = 1 FROM @TIME AS [TMP] WHERE EXISTS (SELECT TOP 1 1 FROM [dbo].[BGDetail] AS [BGD] INNER JOIN [dbo].[BGControl] AS [BGC] ON [BGD].[BGControlID] = [BGC].[ID] INNER JOIN [dbo].[BillHeader] AS [BH] ON [BH].[DRAFTNO] = [BGC].[DRAFTNO] WHERE [BGD].[OriginalID] = [TMP].[RecordID] AND [BGD].[Type] = ''F'' AND [BH].[BILLNO] = 0)' END SET @SQL = @SQL + N' SELECT RTRIM([TIE].[Matter]) AS [Matter], RTRIM([TIE].[FeeEarn]) AS [FeeEarner], [TIE].[Date], CONVERT(INT, CONVERT(DECIMAL(20, 2), [TIE].[Time]) * -- If system is not SAM4, has a charge and a billed amount then adjust time proportionately CASE WHEN @ISSAM4 = 0 AND [TIE].[Charge] <> 0 AND [TIE].[BilledAmount] <> 0 THEN ([TIE].[Charge] - [TIE].[BilledAmount]) / [TIE].[Charge] ELSE 1 END) AS [Time], CASE WHEN [TIE].[Units] = 0 THEN [TIE].[Time] ELSE [TIE].[Units] END AS [Units], ISNULL(RTRIM([TIE].[Comment]), '''') AS [Comment], RTRIM([TIE].[TIMEORCHARGE]) AS [TimeOrCharge], [dbo].[ky_NETFormatFinancial]([TIE].[Charge] - [TIE].[BilledAmount]) AS [ChargeValue], RTRIM([TIE].[Task]) AS [Task], RTRIM([TIE].[Rec_Irr]) AS [Rec_Irr], CASE WHEN [TIE].[WriteOffDT] IS NOT NULL THEN ''w/o'' WHEN [TIE].[InvoiceNo] <> 0 THEN CONVERT(varchar(10), [TIE].[InvoiceNo]) WHEN [TMP].[IncludedInInvoice] <> 0 THEN ''incl. in bill'' WHEN [TIE].[InvoiceNo] <> 0 AND [TIE].[BilledAmount] > 0 AND [TIE].[BilledAmount] < [TIE].[Charge] THEN ''partial'' ELSE ''unbilled'' END AS [InvoiceNo], [TIE].[RecordID] AS [RecordID], ISNULL(CONVERT(varchar(20), [TIE].[WriteOffDT], 106), '''') AS [WriteOffDate], ISNULL([TIE].[WriteOffID], 0) AS [WriteOffID], [TIE].[Rate] AS [Rate] FROM @TIME AS [TMP] INNER JOIN [dbo].[TimeEntry] AS [TIE] ON [TMP].[RecordID] = [TIE].[RecordID]' EXEC sp_executesql @SQL, N'@MATTER VARCHAR(20), @ISSAM4 BIT', @MATTER = @MATTER, @ISSAM4 = @ISSAM4 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetUDFDetailsForPage',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetUDFDetailsForPage] GO CREATE PROCEDURE [dbo].[KAAS_GetUDFDetailsForPage] (@FORMID INT, @CASECODE VARCHAR(20), @PageNumber INT, @PageSize INT, @SearchText VARCHAR(100) = '', @SortColumn VARCHAR(20) = '', @SortDirection VARCHAR(10) = '') AS /******************************************************************************************************* * This procedure is used to get UDF's from for the case code. * * * * Stored Procedure Name : [dbo].[KAAS_GetUDFDetailsForPage] * * Copied from : [dbo].[KY_NETGetUDFDetailsForPage] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2019-08-19 Vinodhan K Added Search, Paging and Sorting functionlaity * * * *******************************************************************************************************/ BEGIN DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'SeqNo' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT RTRIM(SUDF.[PROMPT]) AS [Detail], SUDF.[LENGTH] AS [Size], RTRIM(SUDF.[FORMAT]) AS [Format], RTRIM(SUDF.[TYPE]) AS [Type], RTRIM(SUDF.[FILEPREFIX]) AS [FilePrefix], RTRIM(SUDF.[FIELDNAME]) AS [FieldName], RTRIM(ISNULL(SUDF.[UDFCategory], '')) AS [UDFCategory], RTRIM(SUDF.[VALIDATION]) AS [Validation], SUDF.[LENGTH] AS [Length], SUDF.[LOW] AS [Low], SUDF.[HIGH] AS [High], SUDF.[DECMIAL] AS [Decimal], CASE WHEN UDFA.[DateValue] IS NULL THEN '' WHEN CONVERT(VARCHAR, UDFA.[DateValue], 112) = '19000101' THEN '' ELSE CONVERT(VARCHAR, UDFA.[DateValue], 106) END AS [DateValue], ISNULL(UDFA.[NumberValue], 0) AS [NumberValue], RTRIM(ISNULL(UDFA.[TEXT1],'')) AS [Text1], [UFP].[seqno] AS [SeqNo] FROM [dbo].[SystemUserDefinedFields] SUDF INNER JOIN [dbo].[UDFFormParameters] UFP ON SUDF.[FILEPREFIX] = UFP.[UDFPrefix] AND SUDF.[FIELDNAME] = UFP.[UDFName] LEFT OUTER JOIN [dbo].[CaseUDFAnswers] UDFA ON UDFA.[UDFFILE] = SUDF.[FILEPREFIX] AND UDFA.[UDFNAME] = SUDF.[FIELDNAME] AND UDFA.[CASECODE] = @CASECODE WHERE ( [SUDF].[PROMPT] LIKE '%' + @SearchText + '%' OR [SUDF].[LENGTH] LIKE '%' + @SearchText + '%' OR [SUDF].[FORMAT] LIKE '%' + @SearchText + '%' OR [SUDF].[TYPE] LIKE '%' + @SearchText + '%' OR [SUDF].[FILEPREFIX] LIKE '%' + @SearchText + '%' OR [SUDF].[FIELDNAME] LIKE '%' + @SearchText + '%' OR [SUDF].[UDFCategory] LIKE '%' + @SearchText + '%' OR [SUDF].[VALIDATION] LIKE '%' + @SearchText + '%' OR [SUDF].[LENGTH] LIKE '%' + @SearchText + '%' OR [SUDF].[LOW] LIKE '%' + @SearchText + '%' OR [SUDF].[HIGH] LIKE '%' + @SearchText + '%' OR [SUDF].[DECMIAL] LIKE '%' + @SearchText + '%' OR [UDFA].[DateValue] LIKE '%' + @SearchText + '%' OR [UDFA].[NumberValue] LIKE '%' + @SearchText + '%' OR [UDFA].[TEXT1] LIKE '%' + @SearchText + '%' ) AND UFP.[UDFFormID] = @FORMID) AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'SeqNo' THEN [SeqNo] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'SeqNo' THEN [SeqNo] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Size' THEN [Size] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Size' THEN [Size] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Format' THEN [Format] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Format' THEN [Format] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'FilePrefix' THEN [FilePrefix] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'FilePrefix' THEN [FilePrefix] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'FieldName' THEN [FieldName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'FieldName' THEN [FieldName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'UDFCategory' THEN [UDFCategory] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'UDFCategory' THEN [UDFCategory] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Validation' THEN [Validation] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Validation' THEN [Validation] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Length' THEN [Length] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Length' THEN [Length] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Low' THEN [Low] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Low' THEN [Low] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'High' THEN [High] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'High' THEN [High] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Decimal' THEN [Decimal] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Decimal' THEN [Decimal] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DateValue' THEN [DateValue] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DateValue' THEN [DateValue] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'NumberValue' THEN [NumberValue] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'NumberValue' THEN [NumberValue] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Text1' THEN [Text1] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Text1' THEN [Text1] END END DESC SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) As [TotalRecords] FROM #FoundTable END GO IF OBJECT_ID (N'KAAS_GetUDFFormforHandler',N'P') IS NOT NULL DROP PROCEDURE KAAS_GetUDFFormforHandler GO CREATE PROCEDURE KAAS_GetUDFFormforHandler @HANLDER VARCHAR(10), @CASECODE VARCHAR(20) AS /******************************************************************************************************* * This procedure is used to get UDF's form details based on Handler for the particular case code. * * * * * * Stored Procedure Name : [dbo].[KAAS_GetUDFFormforHandler] * * Copied from : [dbo].[KY_NETGetUDFFormforHandler] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT ISNULL(FORMID,0) AS FORMID FROM UDFFormCaseRelation WHERE Handler=@HANLDER AND casecode=@CASECODE SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetUDFFormsByCasePlan' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetUDFFormsByCasePlan] END GO CREATE PROCEDURE [dbo].[KAAS_GetUDFFormsByCasePlan] (@WKTCODE VARCHAR(10)='', @CaseCode VARCHAR(20)='') AS /******************************************************************************************************* * Retrieves list of UDF Forms for a Case Plan, including all Global ones. * * * * * * Stored Procedure Name : [dbo].[KAAS_GetUDFFormsByCasePlan] * * Copied from : [dbo].[ky_NETGetUDFFormsByCasePlan] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF RTRIM(ISNULL(@WKTCODE, '')) = '' BEGIN SELECT TOP 1 @WKTCODE = RTRIM([CSM].[CSWKTCODE]) FROM [dbo].[CaseMaster] [CSM] WHERE [CSM].[CSCODE] = @CaseCode END IF RTRIM(ISNULL(@WKTCODE, '')) = '' BEGIN SELECT [UF].[FormID], [UF].[FormName] FROM [dbo].[UDFForms] UF WHERE [UF].[IsGlobal] = 1 END ELSE BEGIN SELECT [UF].[FormID], [UF].[FormName] FROM [dbo].[UDFForms] [UF] CROSS APPLY (SELECT COUNT(1) AS [Total] FROM [dbo].[CasePlanUDFForms] [CPUF] WHERE [CPUF].[FormID] = [UF].[FormID] AND [CPUF].[CasePlan] = @WKTCODE) [CPYF] WHERE [CPYF].[Total] > 0 OR [UF].[IsGlobal] = 1 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetUNCAliasPath' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetUNCAliasPath] END GO CREATE PROCEDURE [dbo].[KAAS_GetUNCAliasPath] (@FILEPATH VARCHAR(1000)) AS /*********************************************************************************** * * * Stored Procedure : [KAAS_GetUNCAliasPath] * * Copied From : ky_NETGetUNCAliasPath * * * * This Procedure is used to get uncalias path based on the input path. * * * * Modification History * * 2015-12-11 Pino Carafa Formatted to Framework standard * * 2020-02-26 Vinodhan Created KAAS_GetUNCAliasPath * * * ***********************************************************************************/ BEGIN SET NOCOUNT ON SELECT CASE WHEN UNC.[UNC] IS NULL THEN PT.[FILEPATH] ELSE UNC.[UNC] + SUBSTRING(PT.[FILEPATH], 3, LEN(PT.[FILEPATH]) - 2) END AS [FilePath] FROM (SELECT RTRIM(ISNULL(@FILEPATH, '')) AS [FilePath]) PT LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON SUBSTRING(PT.[FILEPATH], 2, 1) = ':' AND UNC.[Drive] = SUBSTRING(PT.[FILEPATH], 1, 1) SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetUserSettings',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_GetUserSettings] GO CREATE PROCEDURE [dbo].[KAAS_GetUserSettings] (@Handler NVARCHAR(10), --DO NOT CHANGE, table contains NVARCHAR columns @Key NVARCHAR(100)) --DO NOT CHANGE, table contains NVARCHAR columns As /******************************************************************************************************* * This Procedure is used to Get User Settings value * * * * Stored Procedure Name : [dbo].[KAAS_GetUserSettings] * * Copied from : [dbo].[Ky_NETGetUserSettings] * * * * Modification History : * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT USS.[Value] FROM [dbo].[UserSettings] USS WHERE USS.[Handler] = @Handler AND USS.[Key] = @Key SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_GetUTEDayBook', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_GetUTEDayBook] END GO CREATE PROCEDURE [dbo].[KAAS_GetUTEDayBook] (@FECode VARCHAR(10), @Post CHAR(1) = 'N', @Handler NVARCHAR(10), @RecordId INT) AS /******************************************************************************************************* * Gets the Day Book for a Record Id * * * * Stored Procedure Name : [dbo].[KAAS_GetUTEDayBook] * * Copied from : [dbo].[ky_NETGetMyDayBook] * * * * Modification History: * * 2019-05-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @DayBookValue INT SELECT @DayBookValue = ISNULL(SUM([TDB].[Time]), 0) FROM [dbo].[Timedaybook] [TDB] WITH (NOLOCK) WHERE [TDB].[FeeEarn] = @FECode IF(@DayBookValue = 0) BEGIN SET @DayBookValue=1 END DECLARE @DAYBOOK TABLE ([Time] INT NOT NULL, [CaseTime] VARCHAR(60) NOT NULL, [MatterDetails] VARCHAR(500) NOT NULL, [Progress] INT NOT NULL, [StopwatchStatus] INT NOT NULL, [RecordID] INT NOT NULL PRIMARY KEY, [DATE] DATETIME NOT NULL, [MATTER] VARCHAR(20) NOT NULL, [DisplayMatter] VARCHAR(20) NOT NULL, [Name] VARCHAR(256) NOT NULL, [COMMENT] VARCHAR(1000) NOT NULL, [CHARGE] DECIMAL(10, 2) NOT NULL, [TimeOrCharge] VARCHAR(1) NOT NULL, [Post] VARCHAR(1) NOT NULL) DECLARE @DAYBOOKSUM TABLE ([id] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [RecordID] INT NOT NULL, [Time] INT NOT NULL, [OriginalTime] INT NOT NULL, [TotalTimeMinusOne] INT NOT NULL) INSERT INTO @DAYBOOK ([Time], [CaseTime], [MatterDetails], [Progress], [StopwatchStatus], [RecordID], [DATE], [MATTER], [DisplayMatter], [Name], [COMMENT], [CHARGE], [TimeOrCharge], [Post]) SELECT [TDB].[Time], CASE WHEN [TDB].[Time] < 0 THEN '-' ELSE '' END + SUBSTRING(CONVERT(VARCHAR, FLOOR(ABS([TDB].[Time]) / 60)), LEN(CONVERT(VARCHAR, FLOOR(ABS([TDB].[Time]) / 60))) - 2, 3) + ':' + SUBSTRING(CONVERT(VARCHAR, 100 + ABS([TDB].[Time]) % 60), LEN(CONVERT(VARCHAR, 100 + ABS([TDB].[Time]) % 60)) - 1, 2) AS [CaseTime], [dbo].[KAAS_FN_RemoveSpuriousWhitespace] --2018-03-12 ( RTRIM(ISNULL([CON].[Name], '')) + ' ' + RTRIM(ISNULL([MAT].[Description], '')), 500) AS [MatterDetails], 0 AS [Progress], ISNULL([TDB].[StopwatchStatus], 0) AS [StopwatchStatus], [TDB].[RecordID] AS [RecordID], [TDB].[Date] AS [DATE], [TDB].[Matter] AS [Matter], CASE WHEN [TDB].[Matter] = '~' THEN 'Admin Time' ELSE [TDB].[Matter] END AS [DisplayMatter], RTRIM(ISNULL([CON].[Name],'')) AS [Name], RTRIM(ISNULL([TDB].[Comment], '')) AS [COMMENT], [TDB].[Charge] AS [CHARGE], UPPER([TDB].[TimeOrCharge]) AS [TimeorCharge], CASE WHEN RTRIM(UPPER(ISNULL([TDB].[Post], ''))) = 'N' THEN 'N' ELSE 'Y' END AS [Post] FROM [dbo].[TimeDayBook] [TDB] WITH (NOLOCK) LEFT OUTER JOIN [dbo].[matters] [MAT] WITH (NOLOCK) ON [MAT].[Code] = [TDB].[Matter] LEFT OUTER JOIN [dbo].[Contacts] [CON] WITH (NOLOCK) ON [CON].[Code] = [MAT].[ClientCode] WHERE [TDB].[RecordID] = @RecordId AND [TDB].[FeeEarn] = @FECode AND ISNULL([TDB].[Post], 'Y') IN ('Y', @Post) INSERT INTO @DAYBOOKSUM ([RecordID], [Time], [OriginalTime], [TotalTimeMinusOne]) SELECT [TDB].[RecordID], 0, ISNULL([TDB].[Time], 0), 0 FROM @DAYBOOK [TDB] ORDER BY [TDB].[RecordID] DECLARE @TOTALTIME INT SET @TOTALTIME = 0 UPDATE [DBS] SET @TOTALTIME = @TOTALTIME + ISNULL([DBSPREV].[OriginalTime], 0), [DBS].[TotalTimeMinusOne] = @TOTALTIME FROM @DAYBOOKSUM [DBS] LEFT OUTER JOIN @DAYBOOKSUM [DBSPREV] ON [DBSPREV].[id] = [DBS].[id] - 1 UPDATE [DBS] SET [DBS].[Time] = [DBS].[OriginalTime] + [DBS].[TotalTimeMinusOne] FROM @DAYBOOKSUM [DBS] -- This will guarantee that the percentages in [Progress] will always add up to exactly 100 UPDATE [TDB] SET [TDB].[Progress] = CONVERT(INT, ROUND((CONVERT(FLOAT, [TDBS].[Time]) / CONVERT(FLOAT, @DayBookValue)) * CONVERT(FLOAT, 100), 0)) --The current cumulative percentage - CONVERT(INT, ROUND((CONVERT(FLOAT, [TDBS].[Time] - [TDB].[Time]) / CONVERT(FLOAT, @DayBookValue)) * CONVERT(FLOAT, 100), 0)) -- minus the last cumulative percentage FROM @DAYBOOKSUM [TDBS] INNER JOIN @DAYBOOK [TDB] ON [TDB].[RecordID] = [TDBS].[RecordID] --CROSS APPLY (SELECT ISNULL(SUM([TDBP].[Time]), 0) AS [Time] -- FROM @DAYBOOK [TDBP] -- WHERE [TDBP].[RecordID] <= [TDB].[RecordID]) [TDBS] SELECT [TDB].[Time], [TDB].[CaseTime], [TDB].[MatterDetails], [TDB].[Progress], [TDB].[StopwatchStatus], [TDB].[RecordID], [TDB].[DATE], [TDB].[MATTER], [TDB].[DisplayMatter], [TDB].[Name], [TDB].[COMMENT], [TDB].[CHARGE], [TDB].[TimeOrCharge], [TDB].[Post] FROM @DAYBOOK [TDB] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_GetWorkflowActionChecklist' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_GetWorkflowActionChecklist] END GO CREATE PROCEDURE [dbo].[KAAS_GetWorkflowActionChecklist] (@ACTIONCODE VARCHAR(15)) AS /************************************************************************************************************* * This procedure is used to Insert Dependent Action * * * * Stored Procedure Name : [dbo].[KAAS_GetWorkflowActionChecklist] * * Copied from : [dbo].[Ky_SPNetGetWorkflowActionChecklist] * * * * Modification History : * * 2023-06-19 Nithyanandham M Created * *************************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [TACL].[id], [TACL].[Sequence], [TACL].[ChecklistItem], [TACL].[Optional] FROM [dbo].[TemplateActionChecklists] [TACL] WHERE [TACL].[ACTIONCODE] = @ACTIONCODE ORDER BY [TACL].[Sequence] SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_CR_ReportByGroupId',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_ReportByGroupId] GO CREATE PROCEDURE [dbo].[KAAS_CR_ReportByGroupId] @GroupId INT, @ReportType CHAR(10) /****************************************************************************************************************** * Used to get report list by GroupID. * * * * Stored Procedure Name: [dbo].[KAAS_CR_ReportByGroupId] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN SELECT DISTINCT CR.Name FROM KaaS_CRReport CR INNER JOIN KaaS_CRReportGroup CRG ON CR.Reportid =CRG.Reportid WHERE CRG.Groupid = @GroupId AND CR.Report_type = @ReportType GROUP BY CR.Name END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_HandlerActivations' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_HandlerActivations] END GO CREATE PROCEDURE [dbo].[KAAS_HandlerActivations] AS /***************************************************************************** * * ky_NETHandlerActivations * * get the list of handlers that can log in to the .NET version of * the Keyhouse software, and whether these have been Activated * Stored Procedure Name : [dbo].[KAAS_HandlerActivations] * * Copied from : [dbo].[ky_NETHandlerActivations] * * Modification History * 2023-04-10 Sadiq Created (Copied from ky_NETHandlerActivations) * *****************************************************************************/ BEGIN SELECT [GroupID] ,[BitWiseID] ,[GroupName] FROM [dbo].[SecurityNETGroups] DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'SELECT [HLO].[HANDLER] AS [HandlerCode], RTRIM(ISNULL([HAN].[NAME],'''')) AS [HandlerName], RTRIM(ISNULL([HAN].[TEAM],'''')) AS [TeamCode], RTRIM(ISNULL([HTM].[NAME],'''')) AS [TeamName], CASE WHEN RTRIM(ISNULL([HAN].[Retired], ''N'')) <> ''Y'' THEN ''N'' ELSE ''Y'' END AS [Retired], ISNULL([HLO].[Active], '''') AS [Active], ISNULL([HLO].[Supervisor], '''') AS [Supervisor], ISNULL([GM].[BitWiseID], [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL([HAN].[CODE], '''')))) AS [BitWiseID]' SELECT @COMMAND = @COMMAND + ', CASE WHEN [GM].[BitWiseID] IS NULL THEN CASE WHEN CONVERT(BIGINT, CONVERT(BIGINT, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL([HAN].[CODE], '''')))) & CONVERT(BIGINT, ' + CONVERT(VARCHAR, SNG.[BitWiseID]) + ')) <> CONVERT(BIGINT, 0) THEN ''***Yes***'' ELSE ''***No***'' END WHEN CONVERT(BIGINT, CONVERT(BIGINT, [GM].[BitWiseID]) & CONVERT(BIGINT, ' + CONVERT(VARCHAR, SNG.[BitWiseID]) + ')) <> CONVERT(BIGINT, 0) THEN ''***Yes***'' ELSE ''***No***'' END AS [' + SNG.[GroupName] + ']' FROM [dbo].[SecurityNETGroups] SNG SET @COMMAND = @COMMAND + ' FROM [dbo].[HandlerNETLogons] [HLO] INNER JOIN [dbo].[Handlers] [HAN] LEFT OUTER JOIN [dbo].[Handlers] [HTM] ON [HTM].[CODE] = [HAN].[TEAM] ON [HAN].[CODE] = [HLO].[HANDLER] LEFT OUTER JOIN [dbo].[HandlerNETGroupMembership] [GM] ON [GM].[HANDLER] = [HLO].[HANDLER] WHERE [HLO].[HANDLER] <> ''ADM''' EXEC (@COMMAND) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_HandlerIsAuthorisedToControlGroup' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_HandlerIsAuthorisedToControlGroup] END GO CREATE PROCEDURE [dbo].[KAAS_HandlerIsAuthorisedToControlGroup] (@Handler VARCHAR(10), @GroupName VARCHAR(100)) AS /******************************************************************************************************* * Procedure checks whether a particular handler is authorised to use a piece of Framework * * functionality. This can be useful in external components from which the same functionality * * needs to be restricted. * * * * Stored Procedure Name : [dbo].[KAAS_HandlerIsAuthorisedToControlGroup] * * Copied from : [dbo].[ky_NETSPHandlerIsAuthorisedToControlGroup] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @IsAuthorised INT SELECT @IsAuthorised = CASE WHEN COUNT(1) = 0 THEN 1 ELSE 0 END FROM [dbo].[KHCtlGroups] [KCG] LEFT OUTER JOIN [dbo].[KHCtlHandlers] [ALL] ON [ALL].[Handler] = '' AND [ALL].[groupid] = [KCG].[id] LEFT OUTER JOIN [dbo].[KHCtlHandlers] [KHH] ON [KHH].[Handler] = @Handler AND [KHH].[groupid] = [KCG].[id] WHERE [KCG].[GroupName] = @GroupName AND ( [ALL].[id] IS NOT NULL OR [KHH].[id] IS NOT NULL) SELECT CONVERT(BIT, @IsAuthorised) AS [IsAuthorised] RETURN @IsAuthorised END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_IgnoreMissingCaseAssociate' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_IgnoreMissingCaseAssociate] END GO CREATE PROCEDURE [dbo].[KAAS_IgnoreMissingCaseAssociate] (@CASECODE VARCHAR(20), @CONTYPE VARCHAR(12), @CONNUM INT) AS /******************************************************************************** * * * Inserts the N/A row for the requested Case Associate, so that the Document * * Generator won't prompt for it in future. * * * * Stored Procedure : KAAS_IgnoreMissingCaseAssociate * * Copied From : [dbo].[ky_NETSPIgnoreMissingCaseAssociate] * * * * Modification History * * 2016-10-27 Pino Carafa Created * * 2020-01-14 Vinodhan Created KAAS_IgnoreMissingCaseAssociate * * * *******************************************************************************/ BEGIN INSERT INTO [dbo].[CaseContacts] ([CASECODE], [CONTYPE], [CONNUM], [NAMECODE], [NOMINATED], [ASSIGNEDCONTACT], [FileNum], [IsAssociateOtherSide]) SELECT [NEW].[CASECODE], [NEW].[CONTYPE], [NEW].[CONNUM], [NEW].[NAMECODE], [NEW].[NOMINATED], [NEW].[ASSIGNEDCONTACT], [NEW].[FileNum], [NEW].[IsAssociateOtherSide] FROM (SELECT @CASECODE AS [CASECODE], @CONTYPE AS [CONTYPE], @CONNUM AS [CONNUM], 'N/A' AS [NAMECODE], 0 AS [NOMINATED], 0 AS [ASSIGNEDCONTACT], 0 AS [FileNum], 0 AS [IsAssociateOtherSide]) [NEW] LEFT OUTER JOIN [dbo].[CaseContacts] [CC] ON [CC].[CASECODE] = [NEW].[CASECODE] AND [CC].[CONTYPE] = [NEW].[CONTYPE] AND [CC].[CONNUM] = [NEW].[CONNUM] WHERE [CC].[CASECODE] IS NULL END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_IMGenerateBrief' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_IMGenerateBrief] END GO CREATE PROCEDURE [dbo].[KAAS_IMGenerateBrief] (@handler VARCHAR(10), @MatterCode VARCHAR(20), @BriefTitle VARCHAR(200), @Description VARCHAR(4000), @BriefAuthor VARCHAR(100), @Location VARCHAR(256), @CreateDate DATETIME, @PublishDate DATETIME, @CopyBrief INT, @CopyBriefID INT, @BriefTemplateID INT, @ImportCaseDocs INT, @ImportNonClassified INT) AS /************************************************************************************************************* * Stored Procedure Name : [dbo].[KAAS_IMGenerateBrief] * * Copied from : [dbo].[ky_NETSPIMGenerateBrief] * * * * .NET version of the Generate Brief procedure - with IManage support * * * * * * ImportCaseDocs: 1 - Include all case documents in this brief (IF brief is created * * AS a copy of the last brief, include missing ones) * * * * 0 - Leave out missing case documents * * * * CopyBrief: 1 - Create a New Brief AS a copy of the last Brief for this * * Case * * * * 0 - Create a New Brief that is blank * * * * * * Nonclassified: 1 - Add all documents into the brief, creating new sections for * * document classes not already represented in the brief sections * * * * 0 - Add only documents that have a document class corresponding to * * a Brief Section that already EXISTS in the document. * * * * Modification History * * 2019-10-01 Ganapathy T Created * * * *************************************************************************************************************/ BEGIN DECLARE @NewBriefID INT DECLARE @LastBriefID INT DECLARE @NewSectionNo INT DECLARE @NewSection VARCHAR(100) DECLARE @DocSortOrder INT DECLARE @DocLastSectionID INT DECLARE @DocBriefID INT DECLARE @DocName VARCHAR(255) DECLARE @DocTrackRef INT DECLARE @DocFileLoc VARCHAR(255) DECLARE @DocFileDate DATETIME DECLARE @DocType CHAR(4) DECLARE @DocSectionID INT DECLARE @DocClass VARCHAR(100) DECLARE @MaxSectionSequence INT --Transaction is handled by the calling program DECLARE @NewSections Table ([ID] INT identity(1, 1), [Section] VARCHAR(100)) DECLARE @BriefDocs TABLE ([ID] INT identity(1, 1), [DocumentName] VARCHAR(255), [TrackReference] INT, [IMDocID] VARCHAR(500), [FileLocation] VARCHAR(255), [FileDate] DATETIME, [DocumentType] VARCHAR(4), [DocumentClass] VARCHAR(100), [SortOrder] INT, [SectionID] INT) IF (@CopyBrief = 1) BEGIN SELECT @LastBriefID = [BRI].[ID] FROM [dbo].[Brief] [BRI] WHERE [BRI].[MatterCode] = @MatterCode AND [BRI].[ID] = IsNull(@CopyBriefID, [BRI].[ID]) ORDER BY [BRI].[CreationDate] DESC, [BRI].[ID] DESC IF (@LastBriefID IS NULL) BEGIN RAISERROR(N'Copy Brief Requested but no current brief present', 20, 1); END END INSERT INTO [dbo].[Brief] ([Title], [MatterCode], [Author], [Location], [CreationDate], [PublishDate], [Description]) VALUES(@BriefTitle, @MatterCode, @BriefAuthor, @Location, @createdate, @publishdate, @Description) Set @NewBriefID = SCOPE_IDENTITY() UPDATE [BRI] SET [BRI].[Location] = Replace([BRI].[Location], '.pdf', '_' + convert(VARCHAR(8), [BRI].[ID]) + '.pdf') FROM [dbo].[Brief] [BRI] WHERE [BRI].[ID] = @NewBriefID /* Use Brief Template to create Brief Sections IF requested */ IF IsNull(@BriefTemplateID, 0) <> 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, [BTS].[CoverPage], [BTS].[Sequence], RTRIM(ISNULL([BTS].[Section], '')) AS [Section] FROM [dbo].[BriefTemplateSections] [BTS] WHERE [BTS].[BriefTemplateID] = @BriefTemplateID END /* Create a Cover Letters Section so that the Brief will have at least ONE section*/ IF IsNull(@BriefTemplateID, 0) = 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 1, 1, 'Cover Letters') END IF @ImportNonClassified = 1 BEGIN SELECT @MaxSectionSequence = MAX([BS].[Sequence]) FROM [dbo].[BriefSections] [BS] WHERE [BS].[BriefID] = @NewBriefID SELECT @MaxSectionSequence = ISNULL(@MaxSectionSequence, 0) INSERT INTO @NewSections ([Section]) SELECT DISTINCT RTRIM(ISNULL([DCL].[ClassDescription], '')) AS [Section] FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[DiaryAttachments] [DAT] INNER JOIN [dbo].[DocumentClasses] [DCL] LEFT OUTER JOIN [dbo].[BriefSections] [BS2] ON [BS2].[BriefID] = @NewBriefID AND [BS2].[Section] = [DCL].[ClassDescription] ON [DCL].[ClassCode] = [DAT].[DocClass] ON [DAT].[DIARYID] = [DIA].[ACTIONID] WHERE [DIA].[CaseCode] = @MatterCode AND [BS2].[ID] IS NULL INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, 0, NS.[ID] + @MaxSectionSequence, RTRIM(ISNULL([NS].[Section], '')) AS [Section] FROM @NewSections [NS] END /* If this is a copy of an earlier brief, make sure that all the sections FROM the old Brief are also present in the new Brief. Avoid duplicates. */ IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, [BS].[CoverPage], [BS].[Sequence], RTRIM(ISNULL([BS].[Section], '')) AS [Section] FROM [dbo].[BriefSections] [BS] LEFT OUTER JOIN [dbo].[BriefSections] [BS2] ON [BS2].[BriefID] = @NewBriefID AND [BS2].[Section] = [BS].[Section] WHERE [BS].[BriefID] = @LastBriefID AND [BS2].[ID] IS NULL END /* For backward compatibility with the Clarion version, we will be updating these 'sorter' fields that allow the Clarion program to show the sections in the correct order. the WinDev/.NET programs can handle this themselves and they don't need this */ UPDATE [BS] SET [BS].[khsorter] = convert(VARCHAR, 1 - [BS].[CoverPage]) + right(convert(VARCHAR, 10000 + [BS].[Sequence]), 4) + right(convert(VARCHAR, 10000000 + [BS].[ID]), 7) FROM [dbo].[BriefSections] [BS] WHERE [BS].[BriefID] = @NewBriefID /* If this is a copy FROM an older Brief, copy the Brief documents FROM the old Brief into the new Brief */ IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) SELECT @NewBriefID, [BD].[DocumentName], [BD].[TrackReference], [BD].[FileLocation], [BD].[Filedate], [BD].[DocumentType], [BD].[DocumentClass], [BD].[SortOrder], [BS2].[ID] FROM [dbo].[BriefDocuments] [BD] INNER JOIN [dbo].[BriefSections] [BS1] INNER JOIN [dbo].[BriefSections] [BS2] ON [BS2].[BriefID] = @NewBriefID AND [BS2].[CoverPage] = [BS1].[CoverPage] AND [BS2].[Sequence] = [BS1].[Sequence] AND [BS2].[Section] = [BS1].[Section] ON BS1.[ID] = [BD].[SectionID] WHERE [BD].[BriefId] = @LastBriefID END /* Import the Case Documents into the new Brief IF requested. Importing of non-classified documents implies importing ALL documents. */ IF (@ImportCaseDocs = 1) OR (@ImportNonClassified = 1) BEGIN INSERT INTO @BriefDocs ([DocumentName], [TrackReference], [IMDocID], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SectionID]) SELECT CASE WHEN [RES].[TrackReference] IS NULL THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN [RES].[EMAIL] <> 'Y' THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN [RES].[TYPE] <> 'MSG' THEN CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END WHEN (RTRIM(ISNULL([RES].[EMAILFROM], '')) <> '') AND (RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTO]), '')) <> '') THEN CONVERT(VARCHAR(255), 'E-mail FROM ' + RTRIM(ISNULL([RES].[EMAILFROM], '')) + RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTO]), '')) + ': ' + RTRIM(ISNULL([RES].[Document], ''))) WHEN RTRIM(ISNULL([RES].[EMAILFROM], '')) <> '' THEN CONVERT(VARCHAR(255), 'E-mail FROM ' + RTRIM(ISNULL([RES].[EMAILFROM], '')) + ': ' + RTRIM(ISNULL([RES].[Document], ''))) WHEN RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTO]), '')) <> '' THEN CONVERT(VARCHAR(255), 'E-mail to ' + RTRIM(ISNULL(CONVERT(VARCHAR(255), [RES].[EMAILTo]), '')) + ': ' + RTRIM(ISNULL([RES].[Document], ''))) ELSE CASE WHEN [RES].[Document] = '' THEN '(no name)' ELSE [RES].[Document] END END AS [DocumentName], [RES].[TrackReference], [RES].[IMDocID], [RES].[FileLocation], [RES].[DocumentDate] AS [FileDate], [RES].[TYPE] As [DocumentType], [RES].[DocumentClass] As [DocumentClass], [BS].[ID] AS [SectionID] FROM (SELECT convert(INT, NULL) AS [TrackReference], convert(VARCHAR(500), [DAL].[IMDocID]) AS [IMDocID], convert(VARCHAR(20), [DAL].[IMClass]) AS [IMClass], convert(VARCHAR(10), NULL) AS [DocClass], convert(VARCHAR(255), [DAL].[Description]) AS [Document], convert(DATETIME, ISNULL([DAL].[DocumentDate], [DAL].[EmailSent])) AS [DocumentDate], CASE convert(VARCHAR(20), [DAL].[IMTYPE]) WHEN 'WORD' THEN 'DOC' WHEN 'WORDX' THEN 'DOC' WHEN 'WPF' THEN 'DOC' WHEN 'ANSI' THEN 'DOC' WHEN 'ACROBAT' THEN 'PDF' WHEN 'EXCEL' THEN 'XLS' WHEN 'EXCELX' THEN 'XLS' WHEN 'MIME' THEN CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN 'MSG' ELSE 'MIME' END ELSE [DAL].[IMTYPE] END AS [TYPE], convert(VARCHAR(1), CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN 'Y' ELSE 'N' END) As [EMAIL], CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN [DAL].[EMAILFROM] ELSE CONVERT(VARCHAR(200), NULL) END AS [EMAILFROM], CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN [DAL].[EMAILTO] ELSE CONVERT(VARCHAR(255), NULL) END AS [EMAILTO], '' AS [FileLocation], CASE WHEN [DAL].[IMClass] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [DAL].[IMClass] = 'BILL' THEN 'Bill' WHEN [DAL].[IMClass] = 'FAX' THEN 'Fax' WHEN [DAL].[IMClass] = 'LEGAL' THEN 'Legal' WHEN [DAL].[IMClass] = 'SCAN' THEN 'Scan' WHEN [DAL].[IMClass] = 'COMPARE' THEN 'Compare Document' WHEN [DAL].[IMClass] = 'DISCUSSION' THEN 'Discussion' WHEN [DAL].[IMClass] = 'DOC' THEN 'Document' WHEN [DAL].[IMClass] = 'E-MAIL' THEN 'E-Mail' WHEN [DAL].[IMClass] = 'EVENT' THEN 'Event' WHEN [DAL].[IMClass] = 'LETTER' THEN 'Letter' WHEN [DAL].[IMClass] = 'MEMO' THEN 'Memo' WHEN [DAL].[IMClass] = 'PAGE_ICON' THEN 'Page Icon' WHEN [DAL].[IMClass] = 'TASK' THEN 'Task' WHEN [DAL].[IMClass] = 'TEXT' THEN 'Text File' WHEN [DAL].[IMClass] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE '' END AS [DocumentClass] FROM [dbo].[DAIMList] [DAL] LEFT OUTER JOIN [dbo].[DAIMXref] [DX] ON [DX].[IMDocID] = [DAL].[IMDocID] WHERE [DAL].[HANDLER] = @handler AND [DX].[TrackReference] IS NULL UNION SELECT convert(INT, [DAT].[TrackReference]) AS [TrackReference], convert(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], convert(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass], convert(VARCHAR(10), ISNULL([DAT].[DocClass], '')) AS [DocClass], RTRIM(convert(VARCHAR(255), ISNULL([DAT].[Document], ''))) AS [Document], convert(DATETIME, [DAT].[DATEENTERED]) AS [DocumentDate], convert(VARCHAR(20), UPPER(RTRIM(ISNULL([DAT].[TYPE], '')))) AS [TYPE], convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], convert(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(255), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], RTRIM(ISNULL(CASE WHEN [UNC].[UNC] IS NULL THEN [DAT].[FilePath] ELSE [UNC].[UNC] + SUBSTRING([DAT].[FilePath], 3, LEN([DAT].[FilePath]) - 2) END, '')) AS [FileLocation], RTRIM(ISNULL([DCL].[CLASSDESCRIPTION], '')) AS [DocumentClass] FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[DiaryAttachments] [DAT] ON [DAT].[DiaryID] = [DIA].[ActionID] AND RTRIM(ISNULL([DAT].[FilePath], '')) <> '' LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN [dbo].[DAIMList] [DL] ON [DL].[HANDLER] = @handler AND [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DAT].[TrackReference] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON [UNC].[Drive] = CASE WHEN SUBSTRING([DAT].[FilePath], 2, 1) = ':' THEN LEFT([DAT].[FilePath], 1) ELSE '' END LEFT OUTER JOIN [dbo].[DocumentClasses] [DCL] ON [DCL].[CLASSCODE] = [DAT].[DOCCLASS] WHERE [DIA].[CASECODE] = @MatterCode) [RES] INNER JOIN [dbo].[BriefSections] [BS] ON [BS].[BriefID] = @NewBriefID AND [BS].[Section] = [RES].[DocumentClass] ORDER BY [BS].[CoverPage] DESC, [BS].[ID] INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [Filedate], [DocumentType], [DocumentClass], [SortOrder], [SectionID], [IMDOCID]) SELECT @NewBriefID, [BD].[DocumentName], [BD].[TrackReference], [BD].[FileLocation], [BD].[Filedate], [BD].[DocumentType], [BD].[DocumentClass], [BD].[ID] - BT.[TOTAL], [BD].[SectionID], [BD].[IMDOCID] FROM @BriefDocs [BD] CROSS APPLY (SELECT COUNT(1) AS TOTAL FROM @BriefDocs [BD2] WHERE [BD2].[SectionID] < [BD].[SectionID]) BT END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_ImportDocumentParagraph' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ImportDocumentParagraph] END GO CREATE PROCEDURE [dbo].[KAAS_ImportDocumentParagraph] (@KEYFIELD INT, @CATEGORY VARCHAR(20), @TEXTVALUE VARCHAR(MAX), @Title VARCHAR(100) = '') AS /************************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_ImportDocumentParagraph] * * Copied from : [dbo].[ky_NETImportDocumentParagraph] * * * * Description: This procedure is used to save import Document paragraph page. * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2021-05-10 Aakif New file created * * * *************************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS(SELECT TOP 1 1 FROM [dbo].[DocumentPopups] WHERE [KEYFIELD] = @KEYFIELD) BEGIN UPDATE [DP] SET [DP].[CATEGORY] = @CATEGORY, [DP].[TEXTVALUE] = @TEXTVALUE, [DP].[Title] = CASE WHEN RTRIM(ISNULL(@TITLE, '')) = '' THEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](@TEXTVALUE, 100) ELSE RTRIM(@TITLE) END FROM [dbo].[DocumentPopups] [DP] WHERE [DP].[KEYFIELD] =@KEYFIELD END ELSE BEGIN IF ISNULL(@KEYFIELD, 0) = 0 BEGIN SET @KEYFIELD = ISNULL((SELECT MAX([DP].[KEYFIELD]) FROM [dbo].[DocumentPopups] [DP]), 0) + 1 END INSERT INTO [dbo].[DocumentPopups] ([KEYFIELD], [CATEGORY], [TEXTVALUE], [Title]) VALUES(@KEYFIELD, @CATEGORY, @TEXTVALUE, CASE WHEN RTRIM(ISNULL(@TITLE, '')) = '' THEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](@TEXTVALUE, 100) ELSE RTRIM(@TITLE) END) END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_InsertActionForFileRequest', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_InsertActionForFileRequest] END GO CREATE PROCEDURE [dbo].[KAAS_InsertActionForFileRequest] ( @SRAdmin VARCHAR(10), @Number INT, @LoginHandler VARCHAR(10)) AS /********************************************************************************* * Strored Procedure Name: KAAS_InsertActionForFileRequest * Copied From : ky_NETInsertActionForFileRequest * * This procedure is used to add an action based on file request * * Modification History: * 2015-06-23 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM( * 2015-09-30 PINO Use ky_NETGetNextActionID * 2015-11-26 Pino Added handling of new "Needs Attention" column * 2019-07-24 John Ginnane KEYD-5965 - Increased length of file description * Changed file location to be description rather than code * 2022-03-31 Aakif KAAS file created *********************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @CaseCode VARCHAR(20) DECLARE @SRAdminTeam VARCHAR(10) DECLARE @LoginHandlerName VARCHAR(50) DECLARE @FileDescription VARCHAR(200) DECLARE @FileLocation VARCHAR(200) DECLARE @ItemCode VARCHAR(20) DECLARE @Priority CHAR(1) DECLARE @TIMECONVERT INT SET @TIMECONVERT = [dbo].[KAAS_RequestFile_ConvertTimeFn](GETUTCDATE()) DECLARE @ACTIONID INT --Pino 2015-09-30 Start EXEC @ACTIONID = [dbo].[KAAS_GetNextActionID] --SET @ACTIONID = (SELECT ISNULL(MAX(ACTIONID + 1), 1) FROM [dbo].[diary]) --Pino 2015-09-30 Start SELECT @SRAdminTeam = RTRIM([HAN].[TEAM]) FROM [dbo].[Handlers] AS [HAN] WHERE RTRIM([HAN].[CODE]) = RTRIM(@SRAdmin) SELECT @LoginHandlerName = RTRIM([HAN].[NAME]) FROM [dbo].[Handlers] AS [HAN] WHERE RTRIM([HAN].[CODE]) = RTRIM(@LoginHandler) SELECT @ItemCode = FMI.[ITEMCODE], @FileDescription = FMI.[DESCRIPTION], @FileLocation = ISNULL([IL].[DESCRIPTION], ISNULL(FMI.[LOCATION], '')), @CaseCode = FMI.[MATTERCODE], @Priority = CASE WHEN FMI.[NeedsAttention] = 0 THEN 'N' ELSE 'H' END FROM [dbo].[FileManagerItems] AS [FMI] LEFT OUTER JOIN [dbo].[ItemLocations] AS [IL] ON [FMI].[LOCATION] = [IL].[CODE] WHERE FMI.[NUMBER] = @Number INSERT INTO [dbo].[diary] ([CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [DURATION], [ACTIONID], [ORGINALACTIONID], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [ADDRESSTO], [CCTo], [BCCTo], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo], [DisplayText], [Flag]) VALUES(@CaseCode, GETDATE(), 0, null, null, null, null, @SRAdmin, @SRAdminTeam, 'The user '+ @LoginHandlerName +' has requested for strong room file information on '+ CONVERT(varchar(10),getdate(),103) +'.'+ CHAR(13) +'File Number: '+ CONVERT(VARCHAR(20),@Number) +' '+ CHAR(13) +'Item Code: '+ @ItemCode +' '+ CHAR(13) +'Fi le Description: '+ @FileDescription +' '+ CHAR(13) +'File Location: '+ @FileLocation, null, null, null, null, null, null, null, @TIMECONVERT, @TIMECONVERT, 0, @ACTIONID, 0, @Priority, 'N', null, null, 0, 0, 0, null, null, null, null, null, null, null, 0, 0, 0, 0, null, 'Not Applicable', null, null, 0, null, 0) INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@ACTIONID, @SRAdmin, @SRAdminTeam, GETDATE(), @TIMECONVERT, null, @TIMECONVERT, GETDATE(), @TIMECONVERT, null, 0, 'Y', @SRAdmin, 0, null, @SRAdmin, null, 'Created') SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_InsertAllMatterChargeOutRates]',N'P') IS NOT NULL DROP PROCEDURE [KAAS_InsertAllMatterChargeOutRates] GO CREATE PROCEDURE [KAAS_InsertAllMatterChargeOutRates] ( @ClientCode VARCHAR(20), @MatterCode VARCHAR(20), @HandlerType VARCHAR(20)) AS /******************************************************************************************************* * This procedure is used to insert all unretired handlers/charge groups into * * the matter charge out rate list. * * * * Stored Procedure Name : [dbo].[KAAS_InsertAllMatterChargeOutRates] * * Copied from : [dbo].[ky_NETMATInsertAllHandlers] * * * * Modification History : * * 2019-05-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF (@HandlerType = 'FeeEarners') BEGIN INSERT INTO [dbo].[MatterChargeOutRates] ( [ClientCode], [MatterCode], [FeCode], [Rate], [ModifyDate], [EffectiveDate]) SELECT @ClientCode, @MatterCode, LTRIM(RTRIM(HAN.[CODE])), ISNULL(HAN.[RATE], 0), GETUTCDATE(), GETUTCDATE() FROM [dbo].[Handlers] AS HAN LEFT OUTER JOIN [dbo].[MatterChargeOutRates] AS MCOR ON MCOR.[ClientCode] = @ClientCode AND MCOR.[MatterCode] = @MatterCode AND LTRIM(RTRIM(MCOR.[FeCode])) = LTRIM(RTRIM(HAN.[CODE])) WHERE ISNULL(HAN.[TEAMCODE], '') <> 'Y' AND ISNULL(HAN.[RETIRED], '') <> 'Y' AND MCOR.[FeCode] IS NULL END ELSE BEGIN INSERT INTO [dbo].[MatterChargeOutRates] ( [ClientCode], [MatterCode], [FeCode], [Rate], [ModifyDate], [EffectiveDate]) SELECT @ClientCode, @MatterCode, LTRIM(RTRIM(HCG.[Code])), ISNULL(HCG.[DefaultRate], 0), GETUTCDATE(), GETUTCDATE() FROM [dbo].[HandlerChargeGroups] AS HCG LEFT OUTER JOIN [dbo].[MatterChargeOutRates] AS MCOR ON MCOR.[ClientCode] = @ClientCode AND MCOR.[MatterCode] = @MatterCode AND LTRIM(RTRIM(MCOR.[FeCode])) = LTRIM(RTRIM(HCG.[Code])) WHERE ISNULL(HCG.[Retired], '') <> 'Y' AND MCOR.[FeCode] IS NULL END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertAssociateAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertAssociateAction] END GO CREATE PROCEDURE [dbo].[KAAS_InsertAssociateAction] (@ActionID VARCHAR(50), @Document VARCHAR(50), @Optional VARCHAR(50), @OldDocument VARCHAR(50), @Status VARCHAR(50)) AS /************************************************************************************************ * This procedure is used to insert associate action * * * * Stored Procedure Name : [dbo].[KAAS_InsertAssociateAction] * * Copied from : [dbo].[Ky_NetInsertAssociateAction] * * * * Modification History : * * 2023-06-26 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON IF (@Status = 'True') BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateActionDcouments] WHERE [ACTION] = @ActionID AND [DOCUMENT] = @Document) BEGIN SELECT 'This Associate action already exists.' END ELSE BEGIN INSERT INTO [dbo].[TemplateActionDcouments] ([ACTION], [DOCUMENT], [OPTIONAL]) VALUES(@ActionID, @Document, @Optional) EXEC [dbo].[ky_NETSPReSequenceTADsForAction] @ActionID SELECT 'True' END END ELSE BEGIN IF(@Document = @OldDocument ) BEGIN UPDATE [TAD] SET [TAD].[DOCUMENT] = @Document, [TAD].[OPTIONAL] = @Optional FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ActionID AND [TAD].[DOCUMENT] = @OldDocument SELECT 'True' END ELSE BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ActionID AND [TAD].[DOCUMENT] = @Document ) BEGIN SELECT 'This Associate action already exists.' END ELSE BEGIN UPDATE [TAD] SET [TAD].[DOCUMENT] = @Document, [TAD].[OPTIONAL] = @Optional FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ActionID AND [TAD].[DOCUMENT] = @OldDocument SELECT 'True' END END END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertCaseAssociate' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertCaseAssociate] END GO CREATE PROCEDURE [dbo].[KAAS_InsertCaseAssociate] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /************************************************************************************************************* * Description: This procedure is used To insert "Add Case Associate Details" in * * CaseAssociatesNames, CaseContacts AND CaseAssociateTypes * * * * Stored Procedure Name : KAAS_InsertCaseAssociate * * Copied From : [dbo].[ky_NETXMLInsertCaseAssociate] * * * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ********************************************************************************************************* * * * * * * * Supersedes: [dbo].[ky_NETInsertCaseAssociate] * * * * First compatible version: 5.6.4.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ********************************************************************************************************* * * * * Modification History * * 2019-01-24 Pino Carafa Created * * * * ORIGINAL code for [dbo].[ky_NETInsertCaseAssociate] * * 2014-08-20 PINO allow for 20 characters in CaseCode as this field will * * be extended at a future date. * * * * 2015-01-21 PINO change NVARCHAR to VARCHAR * * 2015-02-03 Praveen Added following field BankName,BankAddress,BankSortCode,BankAccNo,IBan,Bic * * 2015-06-23 Sridharan KEYD-2332 - Use of LTRIM(RTRIM( * * 2015-10-15 Sridharan RDJ-156 -Adding same Associate twice * * 2015-11-27 John KEYD-2968 - Fixed @CivilBillSerDate and @CivilSumSerDate not saving * * 2015-12-14 Sridharan RDJ-163 - Changing Sequence Number in Case Associates * * 2016-01-13 Sridharan KEYD-3114 - Resequence Case Associates after sequence number changes * * 2016-03-09 Sridharan KEYD-3352 - When you add an undertakings with “Add as Comment to Ledger” * * check box unticked, when you open that undertakings * * the check box ticked automatically. * * 2016-03-11 Sridharan KEYD-3294 - Adding a name to a deceased but I think it only * * allows 15 characters can this be rectified in order that * * I can put “aka” name * * 2016-04-20 Suriya M KEYD-3487 - When you retire a Case associate, all other types are * * displayed as retired in the Client/Case associate. * * 2016-10-27 Sridharan KEYD-4197 - EFT Bank Details Validation on Contact and * * Case Associate screens * * 2018-03-22 Pino Carafa KEYD-4489 - Standardised all Address fields to 500 characters * * * * 2019-01-24 Pino Carafa KEYD-5503 - In preparation of adding EFTEmailAddress, re-created procedure * * with XML parameter * * 2019-01-24 Pino Carafa KEYD-5503 - Added EFTEmailAddress * * 2019-02-07 Pino Carafa KEYD-5619 - Added SOLISCAN and INSISCAN * * 2019-07-30 Vinodhan K Created KAAS_InsertCaseAssociate * * * *************************************************************************************************************/ BEGIN SET NOCOUNT ON --CaseAssociateNames DECLARE @Code VARCHAR(6) DECLARE @Fullname VARCHAR(100) DECLARE @Salutation VARCHAR(30) DECLARE @JobTitle VARCHAR(50) DECLARE @Address VARCHAR(500) DECLARE @Area VARCHAR(15) DECLARE @Company VARCHAR(80) DECLARE @DXRel VARCHAR(30) DECLARE @Email VARCHAR(100) DECLARE @FaxNo VARCHAR(20) DECLARE @Home VARCHAR(20) DECLARE @MobileNo VARCHAR(20) DECLARE @Note VARCHAR(MAX) DECLARE @Occupation VARCHAR(100) DECLARE @PhoneNo VARCHAR(20) DECLARE @PPSNo VARCHAR(20) DECLARE @Town VARCHAR(20) DECLARE @WebAddress VARCHAR(150) DECLARE @LegalName VARCHAR(150) DECLARE @LegalAddress VARCHAR(500) DECLARE @DateOFBirth DATETIME DECLARE @DateSeparated DATETIME DECLARE @DeceasedDate DATETIME DECLARE @MarriageDate DATETIME DECLARE @Type VARCHAR(12) DECLARE @Gender VARCHAR(20) DECLARE @MaritalStatus VARCHAR(20) DECLARE @Tax VARCHAR(1) DECLARE @Deceased VARCHAR(1) DECLARE @Edit INT DECLARE @AddressType VARCHAR(1) DECLARE @ServiceType VARCHAR(1) DECLARE @CompanyRegNo VARCHAR(20) DECLARE @VATno VARCHAR(20) -- CaseContacts DECLARE @CaseCode VARCHAR(20) DECLARE @OurCode VARCHAR(6) DECLARE @SOLISCAN BIT DECLARE @OtherReference VARCHAR(50) DECLARE @OurCodeIn VARCHAR(6) DECLARE @INSISCAN BIT DECLARE @InsRef VARCHAR(20) DECLARE @RecNo VARCHAR(20) DECLARE @HearingDate DATETIME DECLARE @Time VARCHAR(20) DECLARE @Relationship VARCHAR(50) DECLARE @Nominated BIT DECLARE @AssignedContact INT DECLARE @CivilSumSerDate DATETIME DECLARE @CivilBillSerDate DATETIME DECLARE @SummarySumSerDate DATETIME DECLARE @InstOrdSerDate DATETIME DECLARE @ComOrdSerDate DATETIME DECLARE @WarrantIssDate DATETIME DECLARE @Seq SMALLINT DECLARE @hdnSeq SMALLINT DECLARE @FirstName VARCHAR(50) DECLARE @SurName VARCHAR(50) DECLARE @County VARCHAR(100) DECLARE @PostalCode VARCHAR(100) DECLARE @BankName VARCHAR(60) DECLARE @BankAddress VARCHAR(500) DECLARE @BankSortCode VARCHAR(20) DECLARE @BankAccNo VARCHAR(20) DECLARE @IBan VARCHAR(34) DECLARE @Bic VARCHAR(20) DECLARE @EFTEmailAddress VARCHAR(150) DECLARE @AssociateForOtherSide BIT DECLARE @Publish CHAR(1) DECLARE @Retired VARCHAR(1) DECLARE @BankType VARCHAR(1) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT --CaseAssociateNames @Code = [CAN].[Code], @Fullname = [CAN].[Fullname], @Salutation = [CAN].[Salutation], @JobTitle = [CAN].[JobTitle], @Address = [CAN].[Address], @Area = [CAN].[Area], @Company = [CAN].[Company], @DXRel = [CAN].[DXRel], @Email = [CAN].[Email], @FaxNo = [CAN].[FaxNo], @Home = [CAN].[Home], @MobileNo = [CAN].[MobileNo], @Note = [CAN].[Note], @Occupation = [CAN].[Occupation], @PhoneNo = [CAN].[PhoneNo], @PPSNo = [CAN].[PPSNo], @Town = [CAN].[Town], @WebAddress = [CAN].[WebAddress], @LegalName = [CAN].[LegalName], @LegalAddress = [CAN].[LegalAddress], @DateOFBirth = [CAN].[DateOFBirth], @DateSeparated = [CAN].[DateSeparated], @DeceasedDate = [CAN].[DeceasedDate], @MarriageDate = [CAN].[MarriageDate], @Type = [CAN].[Type], @Gender = [CAN].[Gender], @MaritalStatus = [CAN].[MaritalStatus], @Tax = [CAN].[Tax], @Deceased = [CAN].[Deceased], @Edit = [CAN].[Edit], @AddressType = [CAN].[AddressType], @ServiceType = [CAN].[ServiceType], @CompanyRegNo = [CAN].[CompanyRegNo], @VATno = [CAN].[VATno], -- CaseContacts @CaseCode = [CAN].[CaseCode], @SOLISCAN = [CAN].[SOLISCAN], @OurCode = [CAN].[OurCode], @OtherReference = [CAN].[OtherReference], @INSISCAN = [CAN].[INSISCAN], @OurCodeIn = [CAN].[OurCodeIn], @InsRef = [CAN].[InsRef], @RecNo = [CAN].[RecNo], @HearingDate = [CAN].[HearingDate], @Time = [CAN].[Time], @Relationship = [CAN].[Relationship], @Nominated = [CAN].[Nominated], @AssignedContact = [CAN].[AssignedContact], @CivilSumSerDate = [CAN].[CivilSumSerDate], @CivilBillSerDate = [CAN].[CivilBillSerDate], @SummarySumSerDate = [CAN].[SummarySumSerDate], @InstOrdSerDate = [CAN].[InstOrdSerDate], @ComOrdSerDate = [CAN].[ComOrdSerDate], @WarrantIssDate = [CAN].[WarrantIssDate], @Seq = [CAN].[Seq], @hdnSeq = [CAN].[hdnSeq], @FirstName = [CAN].[FirstName], @SurName = [CAN].[SurName], @County = [CAN].[County], @PostalCode = [CAN].[PostalCode], @BankName = [CAN].[BankName], @BankAddress = [CAN].[BankAddress], @BankSortCode = [CAN].[BankSortCode], @BankAccNo = [CAN].[BankAccNo], @IBan = [CAN].[IBan], @Bic = [CAN].[Bic], @EFTEmailAddress = [CAN].[EFTEmailAddress], @AssociateForOtherSide = [CAN].[AssociateForOtherSide], @Publish = [CAN].[Publish], @Retired = [CAN].[Retired], @BankType = [CAN].[BankType] FROM OPENXML(@iSL, N'CAN') WITH ([Code] VARCHAR(6) 'Code', [Fullname] VARCHAR(100) 'Fullname', [Salutation] VARCHAR(30) 'Salutation', [JobTitle] VARCHAR(50) 'JobTitle', [Address] VARCHAR(500) 'Address', [Area] VARCHAR(15) 'Area', [Company] VARCHAR(80) 'Company', [DXRel] VARCHAR(30) 'DXRel', [Email] VARCHAR(100) 'Email', [FaxNo] VARCHAR(20) 'FaxNo', [Home] VARCHAR(20) 'Home', [MobileNo] VARCHAR(20) 'MobileNo', [Note] VARCHAR(MAX) 'Note', [Occupation] VARCHAR(100) 'Occupation', [PhoneNo] VARCHAR(20) 'PhoneNo', [PPSNo] VARCHAR(20) 'PPSNo', [Town] VARCHAR(20) 'Town', [WebAddress] VARCHAR(150) 'WebAddress', [LegalName] VARCHAR(150) 'LegalName', [LegalAddress] VARCHAR(500) 'LegalAddress', [DateOFBirth] DATETIME 'DateOFBirth', [DateSeparated] DATETIME 'DateSeparated', [DeceasedDate] DATETIME 'DeceasedDate', [MarriageDate] DATETIME 'MarriageDate', [Type] VARCHAR(12) 'Type', [Gender] VARCHAR(20) 'Gender', [MaritalStatus] VARCHAR(20) 'MaritalStatus', [Tax] VARCHAR(1) 'Tax', [Deceased] VARCHAR(1) 'Deceased', [Edit] INT 'Edit', [AddressType] VARCHAR(1) 'AddressType', [ServiceType] VARCHAR(1) 'ServiceType', [CompanyRegNo] VARCHAR(20) 'CompanyRegNo', [VATno] VARCHAR(20) 'VATno', -- CaseContacts [CaseCode] VARCHAR(20) 'CaseCode', [SOLISCAN] Bit 'SOLISCAN', [OurCode] VARCHAR(6) 'OurCode', [OtherReference] VARCHAR(50) 'OtherReference', [INSISCAN] Bit 'INSISCAN', [OurCodeIn] VARCHAR(6) 'OurCodeIn', [InsRef] VARCHAR(20) 'InsRef', [RecNo] VARCHAR(20) 'RecNo', [HearingDate] DATETIME 'HearingDate', [Time] VARCHAR(20) 'Time', [Relationship] VARCHAR(50) 'Relationship', [Nominated] BIT 'Nominated', [AssignedContact] INT 'AssignedContact', [CivilSumSerDate] DATETIME 'CivilSumSerDate', [CivilBillSerDate] DATETIME 'CivilBillSerDate', [SummarySumSerDate] DATETIME 'SummarySumSerDate', [InstOrdSerDate] DATETIME 'InstOrdSerDate', [ComOrdSerDate] DATETIME 'ComOrdSerDate', [WarrantIssDate] DATETIME 'WarrantIssDate', [Seq] SMALLINT 'Seq', [hdnSeq] SMALLINT 'hdnSeq', [FirstName] VARCHAR(50) 'FirstName', [SurName] VARCHAR(50) 'SurName', [County] VARCHAR(100) 'County', [PostalCode] VARCHAR(100) 'PostalCode', [BankName] VARCHAR(60) 'BankName', [BankAddress] VARCHAR(500) 'BankAddress', [BankSortCode] VARCHAR(20) 'BankSortCode', [BankAccNo] VARCHAR(20) 'BankAccNo', [IBan] VARCHAR(34) 'IBan', [Bic] VARCHAR(20) 'Bic', [EFTEmailAddress] VARCHAR(150) 'EFTEmailAddress', [AssociateForOtherSide] BIT 'AssociateForOtherSide', [Publish] CHAR(1) 'Publish', [Retired] VARCHAR(1) 'Retired', [BankType] VARCHAR(1) 'BankType') [CAN] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH DECLARE @Connum INT SET @Connum = 0 IF @Seq = -1 BEGIN SELECT Top 1 @Connum = [CC].[CONNUM] FROM [dbo].[CaseContacts] [CC] WHERE [CC].[CASECODE] = @CaseCode AND [CC].[CONTYPE] = @Type ORDER BY [CC].[CONNUM] DESC SET @Connum = ISNULL(@Connum, 0) + 1 END ELSE BEGIN SET @Connum = ISNULL(@Seq, 1) END IF @Edit = 0 BEGIN IF (SELECT TOP 1 1 FROM [dbo].[CaseContacts] [CC] WHERE [CC].[CASECODE] = @CaseCode AND [CC].[CONTYPE] = @Type AND [CC].[CONNUM] = @Seq) IS NULL BEGIN INSERT INTO [dbo].[CaseContacts] ([CASECODE], [CONTYPE], [CONNUM], [NAMECODE], [SOLCODE], [SOLISCAN], [SOLREF], [INSCODE], [INSISCAN], [INSREF], [COURTRECORDNO], [HEARINGDATE], [TIME], [Relationship], [Nominated], [AssignedContact], [CivilSumSDate], [CivilBillSDate], [SSumSDate], [InstOrdSDate], [ComOrdSDate], [WarrantIssDate], [IsAssociateOtherSide], [PUBLISH], [Retired]) VALUES(@CaseCode, ISNULL(@Type,''), @Connum, @Code, @OurCode, ISNULL(@SOLISCAN, 0), @OtherReference, @OurCodeIn, ISNULL(@INSISCAN, 0), @InsRef, @RecNo, CASE @HearingDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @HearingDate, 112) END, @Time, @Relationship, @Nominated, @AssignedContact, CASE @CivilSumSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @CivilSumSerDate, 112) END, CASE @CivilBillSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @CivilBillSerDate, 112) END, CASE @SummarySumSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @SummarySumSerDate, 112) END, CASE @InstOrdSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @InstOrdSerDate, 112) END, CASE @ComOrdSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @ComOrdSerDate, 112) END, CASE @WarrantIssDate WHEN NULL THEN '' ELSE CONVERT(DATETIME,@WarrantIssDate,112) END, @AssociateForOtherSide, @Publish, @Retired) IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @code AND [CAT].[TYPECODE] = @Type) BEGIN INSERT INTO [dbo].[CaseAssoicatesTypes] ([NAMECODE], [TYPECODE], [SEARCHCODE]) VALUES(@Code, @Type, '') END IF (SELECT TOP 1 1 FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code) IS NULL BEGIN INSERT INTO [dbo].[CaseAssociatesNames] ([CODE], [TYPE], [NAME], [SALUTATION], [TITLE], [COMPANY], [ADDRESS], [PHONENO], [FAXNO], [HOME], [MOBILENO], [EMAIL], [WEBADDRESS], [LEGALNAME], [LEGALADDRESS], [DXREF], [DOB], [MARTIALSTATUS], [MARRIAGEDATE], [DATESEPARATED], [DECEASEDDATE], [OCCUPATION], [NOTES], [Area], [Town], [Gender], [SSNUMBER], [COURTNO], [COURTAREA], [TAX], [DECEASED], [AddressType], [ServiceType], [CRONUMBER], [VATNUMBER], [FORENAME], [SURNAME], [County], [PostalCode], [BankName], [BankAddress], [BankSortCode], [BankAccNo], [IBAN], [BIC], [EFTEmailAddress], [BankType]) VALUES(@Code, ISNULL(@Type,''), @Fullname, @Salutation, @JobTitle, @Company, @Address, @PhoneNo, @FaxNo, @Home, @MobileNo, @Email, @WebAddress, @LegalName, @LegalAddress, @DXRel, CASE @DateOFBirth WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DateOFBirth, 112) END, ISNULL(@MaritalStatus,''), CASE @MarriageDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @MarriageDate, 112) END, CASE @DateSeparated WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DateSeparated, 112) END, CASE @DeceasedDate WHEN NULL THEN '' ELSE CONVERT(DATETIME,@DeceasedDate,112) END, @Occupation, @Note, @Area, @Town, ISNULL(@Gender,''), @PPSNo, 0, '', @Tax, @Deceased, @AddressType, @ServiceType, @CompanyRegNo, @VATno, @FirstName, @SurName, @County, @PostalCode, @BankName, @BankAddress, @BankSortCode, @BankAccNo, @IBan, @Bic, @EFTEmailAddress, @BankType) END EXEC [dbo].[KAAS_ReorderCaseContact] @CaseCode, @Type, @Seq, @Seq SET @Result = 1 END ELSE BEGIN IF ((SELECT ISNULL(UPPER(RTRIM([CC].[NAMECODE])), '') FROM [dbo].[CaseContacts] [CC] WHERE [CC].[CASECODE] = @CaseCode AND [CC].[CONTYPE] = @Type AND [CC].[CONNUM] = @Seq) = 'N/A') BEGIN DELETE [CC] FROM [dbo].[CaseContacts] [CC] WHERE [CC].[CASECODE] = @CaseCode AND [CC].[CONTYPE] = @Type AND [CC].[CONNUM] = @Seq IF (SELECT TOP 1 1 FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code) IS NULL BEGIN INSERT INTO [dbo].[CaseAssociatesNames] ([CODE], [TYPE], [NAME], [SALUTATION], [TITLE], [COMPANY], [ADDRESS], [PHONENO], [FAXNO], [HOME], [MOBILENO], [EMAIL], [WEBADDRESS], [LEGALNAME], [LEGALADDRESS], [DXREF], [DOB], [MARTIALSTATUS], [MARRIAGEDATE], [DATESEPARATED], [DECEASEDDATE], [OCCUPATION], [NOTES], [Area], [Town], [Gender], [SSNUMBER], [COURTNO], [COURTAREA], [TAX], [DECEASED], [AddressType], [ServiceType], [CRONUMBER], [VATNUMBER], [FORENAME], [SURNAME], [County], [PostalCode], [BankName], [BankAddress], [BankSortCode], [BankAccNo], [IBAN], [BIC], [EFTEmailAddress], [BankType]) VALUES(@Code, ISNULL(@Type,''), @Fullname, @Salutation, @JobTitle, @Company, @Address, @PhoneNo, @FaxNo, @Home, @MobileNo, @Email, @WebAddress, @LegalName, @LegalAddress, @DXRel, CASE @DateOFBirth WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DateOFBirth, 112) END, ISNULL(@MaritalStatus,''), CASE @MarriageDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @MarriageDate, 112) END, CASE @DateSeparated WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DateSeparated, 112) END, CASE @DeceasedDate WHEN NULL THEN '' ELSE CONVERT(DATETIME,@DeceasedDate,112) END, @Occupation, @Note, @Area, @Town, ISNULL(@Gender,''), @PPSNo, 0, '', @Tax, @Deceased, @AddressType, @ServiceType, @CompanyRegNo, @VATno, @FirstName, @SurName, @County, @PostalCode, @BankName, @BankAddress, @BankSortCode, @BankAccNo, @IBan, @Bic, @EFTEmailAddress, @BankType) INSERT INTO [dbo].[CaseContacts] ([CASECODE], [CONTYPE], [CONNUM], [NAMECODE], [SOLCODE], [SOLISCAN], [SOLREF], [INSCODE], [INSISCAN], [INSREF], [COURTRECORDNO], [HEARINGDATE], [TIME], [Relationship], [Nominated], [AssignedContact], [CivilSumSDate], [CivilBillSDate], [SSumSDate], [InstOrdSDate], [ComOrdSDate], [WarrantIssDate], [IsAssociateOtherSide], [PUBLISH], [Retired]) VALUES(@CaseCode, ISNULL(@Type,''), @Connum, @Code, @OurCode, ISNULL(@SOLISCAN, 0), @OtherReference, @OurCodeIn, ISNULL(@INSISCAN, 0), @InsRef, @RecNo, CASE @HearingDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @HearingDate, 112) END, @Time, @Relationship, @Nominated, @AssignedContact, CASE @CivilSumSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @CivilSumSerDate, 112) END, CASE @CivilBillSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @CivilBillSerDate, 112) END, CASE @SummarySumSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @SummarySumSerDate, 112) END, CASE @InstOrdSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @InstOrdSerDate, 112) END, CASE @ComOrdSerDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @ComOrdSerDate, 112) END, CASE @WarrantIssDate WHEN NULL THEN '' ELSE CONVERT(DATETIME,@WarrantIssDate,112) END, @AssociateForOtherSide, @Publish, @Retired) IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @code AND [CAT].[TYPECODE] = @Type) BEGIN INSERT INTO [dbo].[CaseAssoicatesTypes] ([NAMECODE], [TYPECODE], [SEARCHCODE]) VALUES(@Code, @Type, '') END SET @Result = 1 END ELSE BEGIN SET @Result = 0 END END ELSE SET @Result = 5 END END ELSE BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[CaseContacts] [CC] WHERE [CC].[CASECODE] = @CaseCode AND [CC].[CONTYPE] = @Type AND [CC].[CONNUM] = @hdnSeq) BEGIN --Case Associate Names UPDATE [CAN] SET [CAN].[CODE] = @Code, [CAN].[TYPE] = ISNULL(@Type,''), [CAN].[NAME] = @Fullname, [CAN].[SALUTATION] = @Salutation, [CAN].[TITLE] = @JobTitle, [CAN].[COMPANY] = @Company, [CAN].[ADDRESS] = @Address, [CAN].[PHONENO] = @PhoneNo, [CAN].[FAXNO] = @FaxNo, [CAN].[HOME] = @Home, [CAN].[MOBILENO] = @MobileNo, [CAN].[EMAIL] = @Email, [CAN].[WEBADDRESS] = @WebAddress, [CAN].[LEGALNAME] = @LegalName, [CAN].[LEGALADDRESS] = @LegalAddress, [CAN].[DXREF] = @DXRel, [CAN].[DOB] = CASE @DateOFBirth WHEN NULL THEN @DateOFBirth ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @DateOFBirth), 112)) END, [CAN].[MARTIALSTATUS] = ISNULL(@MaritalStatus, ''), [CAN].[MARRIAGEDATE] = CASE @MarriageDate WHEN NULL THEN @MarriageDate ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @MarriageDate), 112)) END, [CAN].[DATESEPARATED] = CASE @DateSeparated WHEN NULL THEN @DateSeparated ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @DateSeparated), 112)) END, [CAN].[DECEASEDDATE] = CASE @DeceasedDate WHEN NULL THEN @DeceasedDate ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @DeceasedDate), 112)) END, [CAN].[OCCUPATION] = @Occupation, [CAN].[NOTES] = @Note, [CAN].[AREA] = @Area, [CAN].[TOWN] = @Town, [CAN].[GENDER] = ISNULL(@Gender, ''), [CAN].[SSNUMBER] = @PPSNo, [CAN].[TAX] = @Tax, [CAN].[DECEASED] = @Deceased, [CAN].[AddressType] = @AddressType, [CAN].[ServiceType] = @ServiceType, [CAN].[CRONUMBER] = @CompanyRegNo, [CAN].[VATNUMBER] = @VATno, [CAN].[FORENAME] = @FirstName, [CAN].[SURNAME] = @SurName, [CAN].[County] = @County, [CAN].[PostalCode] = @PostalCode, [CAN].[BankName] = @BankName, [CAN].[BankAddress] = @BankAddress, [CAN].[BankSortCode] = @BankSortCode, [CAN].[BankAccNo] = @BankAccNo, [CAN].[IBAN] = @IBan, [CAN].[BIC] = @Bic, [CAN].[EFTEmailAddress] = @EFTEmailAddress, [CAN].[BankType] = @BankType FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code --Case Contacts UPDATE [CC] SET [CC].[CONNUM] = @Seq, [CC].[SOLCODE] = @OurCode, [CC].[SOLISCAN] = ISNULL(@SOLISCAN, 0), [CC].[SOLREF] = @OtherReference, [CC].[INSCODE] = @OurCodeIn, [CC].[INSISCAN] = ISNULL(@INSISCAN, 0), [CC].[INSREF] = @InsRef, [CC].[COURTRECORDNO] = @RecNo, [CC].[HEARINGDATE] = CASE @HearingDate WHEN NULL THEN @HearingDate ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @HearingDate), 112)) END, [CC].[TIME] = @Time, [CC].[Relationship] = @Relationship, [CC].[Nominated] = @Nominated, [CC].[AssignedContact] = @AssignedContact, [CC].[CivilSumSDate] = CASE @CivilSumSerDate WHEN NULL THEN @CivilSumSerDate ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @CivilSumSerDate), 112)) END, [CC].[CivilBillSDate] = CASE @CivilBillSerDate WHEN NULL THEN @CivilBillSerDate ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @CivilBillSerDate), 112)) END, [CC].[SSumSDate] = CASE @SummarySumSerDate WHEN NULL THEN @SummarySumSerDate ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @SummarySumSerDate), 112)) END, [CC].[InstOrdSDate] = CASE @InstOrdSerDate WHEN NULL THEN @InstOrdSerDate ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @InstOrdSerDate), 112)) END, [CC].[ComOrdSDate] = CASE @ComOrdSerDate WHEN NULL THEN @ComOrdSerDate ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @ComOrdSerDate), 112)) END, [CC].[WarrantIssDate] = CASE @WarrantIssDate WHEN NULL THEN @WarrantIssDate ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @WarrantIssDate), 112)) END, [CC].[IsAssociateOtherSide] = @AssociateForOtherSide, [CC].[PUBLISH] = @Publish, [CC].[Retired] = @Retired FROM [dbo].[CaseContacts] [CC] WHERE [CC].[CASECODE] = @CaseCode AND [CC].[CONTYPE] = @Type AND [CC].[NAMECODE] = @Code AND [CC].[CONNUM] = @hdnSeq UPDATE [CC] SET [CC].[Retired] = @Retired FROM [dbo].[CaseContacts] [CC] WHERE [CC].[NAMECODE] = @Code UPDATE [CAN] SET [CAN].[Retired] = @Retired FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code UPDATE [CAT] SET [CAT].[Retired] = @Retired FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @Code EXEC KAAS_ReorderCaseContact @CaseCode,@Type,@hdnSeq,@Seq SET @Result = 2 END END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_InsertCaseAssociateType]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_InsertCaseAssociateType] GO CREATE PROCEDURE [KAAS_InsertCaseAssociateType] ( @Code VARCHAR(12) ,@BckCode VARCHAR(12) ,@Description VARCHAR(50) ,@Edit INT ,@Result INT OUTPUT ) AS /******************************************************************************************************* * This procedure is used To insert "Add Case Associate Details" in CaseAssociatesContacts, * * CaseContacts AND CaseAssociateTypes . * * * * Stored Procedure Name : [dbo].[KAAS_InsertCaseAssociateType] * * Copied from : [dbo].[ky_NETInsertCaseAssociateType] * * * * Modification History : * * 2019-05-30 Vinodhan K Created * * 2021-07-13 Natarajan S Modified - Added duplication check. *******************************************************************************************************/ BEGIN SET NOCOUNT ON SET @Result = 0 DECLARE @TableVariable TABLE (Code VARCHAR(50)) DECLARE @MasterName VARCHAR(50) DECLARE @Mode VARCHAR(10) SET @Mode = CASE @Edit WHEN 0 THEN 'INSERT' ELSE 'EDIT' END SET @MasterName = 'AssociateTypes' INSERT INTO @TableVariable EXEC [dbo].[Kaas_fn_checkCodeexists] @Mode, @MasterName, @BckCode, @Description, @Code IF EXISTS (SELECT 1 FROM @TableVariable) BEGIN SET @Result =0 END ELSE BEGIN IF (@Edit = 0) BEGIN INSERT INTO [dbo].[AssociateTypes] ([Code], [Description]) VALUES (@Code, @Description) SET @Result = 1 END ELSE BEGIN UPDATE [AST] SET [AST].[Code] = UPPER(@Code), [AST].[Description] = @Description FROM [dbo].[AssociateTypes] [AST] WHERE [AST].[Code] = @BckCode SET @Result = 2 END END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_InsertCaseContact',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_InsertCaseContact] GO CREATE PROCEDURE [dbo].[KAAS_InsertCaseContact] (@CaseContactXML XML, @Result INT OUTPUT) AS /***************************************************************************** Stored Procedure Name : KAAS_InsertCaseContact Copied From : ky_NETInsertCaseContact Description: This procedure is used To insert "Add Case Associate Details" in CaseAssociatesContacts, CaseContacts AND CaseAssociateTypes 23JUN2015 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM( 08AUG2015 sridharan KEYD - IF-171 - Adding case associates 13SEP2016 Arun.V Added condition to check existing records 06JUN2019 Vinodhan k Created KAAS_InsertCaseContact *****************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @CaseContact TABLE ([AssCode] VARCHAR(6), [Id] INT, [Name] VARCHAR(100), [Address] VARCHAR(200), [Salutation] VARCHAR(200), [JobTitle] VARCHAR(100), [Email] VARCHAR(100), [Relationship] VARCHAR(50), [Phone] VARCHAR(30), [Fax] VARCHAR(30), [Mobile] VARCHAR(30), [Note] VARCHAR(200), [TxtAssContact] VARCHAR(200), [TxtAssName] VARCHAR(200), [TxtAssJobTitle] VARCHAR(200), [TxtAssFax] VARCHAR(200), [TxtAssEmail] VARCHAR(200), [TxtAssPhone] VARCHAR(200), [TxtAssMobile] VARCHAR(200), [Edit] INT, [County] VARCHAR(100), [PostalCode] VARCHAR(30) ) IF NOT (@CaseContactXML IS NULL) IF NOT (CONVERT(VARCHAR(MAX), @CaseContactXML) = '') BEGIN INSERT INTO @CaseContact ([AssCode], [Id], [Name], [Address], [Salutation], [JobTitle], [Email], [Relationship], [Phone], [Fax], [Mobile], [Note], [TxtAssContact], [TxtAssName], [TxtAssJobTitle], [TxtAssFax], [TxtAssEmail], [TxtAssPhone], [TxtAssMobile], [Edit], [County], [PostalCode]) SELECT [AssCode], [Id], [Name], [Address], [Salutation], [JobTitle], [Email], [Relationship], [Phone], [Fax], [Mobile], [Note], [TxtAssContact], [TxtAssName], [TxtAssJobTitle], [TxtAssFax], [TxtAssEmail], [TxtAssPhone], [TxtAssMobile], [Edit], [County], [PostalCode] FROM ( SELECT [CCXML].[COL].value('@AssCode', 'VARCHAR(6)') AS [AssCode], CASE WHEN ISNULL([CCXML].[COL].value('@Id', 'INT'), CONVERT(INT, 0)) = 0 THEN IDENT_CURRENT('CaseAssociatesContacts') + 1 WHEN [CCXML].[COL].value('@Id', 'INT') = '' THEN IDENT_CURRENT('CaseAssociatesContacts') + 1 ELSE [CCXML].[COL].value('@Id', 'INT') END AS [Id], [CCXML].[COL].value('@Name', 'VARCHAR(100)') AS [Name], [CCXML].[COL].value('@Address', 'VARCHAR(200)') AS [Address], [CCXML].[COL].value('@Salutation', 'VARCHAR(200)') AS [Salutation], [CCXML].[COL].value('@JobTitle', 'VARCHAR(100)') AS [JobTitle], [CCXML].[COL].value('@Email', 'VARCHAR(100)') AS [Email], [CCXML].[COL].value('@Relationship', 'VARCHAR(50)') AS [Relationship], [CCXML].[COL].value('@Phone', 'VARCHAR(30)') AS [Phone], [CCXML].[COL].value('@Fax', 'VARCHAR(30)') AS [Fax], [CCXML].[COL].value('@Mobile', 'VARCHAR(30)') AS [Mobile], [CCXML].[COL].value('@Note', 'VARCHAR(200)') AS [Note], [CCXML].[COL].value('@TxtAssContact', 'VARCHAR(200)') AS [TxtAssContact], [CCXML].[COL].value('@TxtAssName', 'VARCHAR(200)') AS [TxtAssName], [CCXML].[COL].value('@TxtAssJobTitle', 'VARCHAR(200)') AS [TxtAssJobTitle], [CCXML].[COL].value('@TxtAssFax', 'VARCHAR(200)') AS [TxtAssFax], [CCXML].[COL].value('@TxtAssEmail', 'VARCHAR(200)') AS [TxtAssEmail], [CCXML].[COL].value('@TxtAssPhone', 'VARCHAR(200)') AS [TxtAssPhone], [CCXML].[COL].value('@TxtAssMobile', 'VARCHAR(200)') AS [TxtAssMobile], [CCXML].[COL].value('@Edit', 'INT') AS [Edit], [CCXML].[COL].value('@County', 'VARCHAR(100)') AS [County], [CCXML].[COL].value('@PostalCode', 'VARCHAR(30)') AS [PostalCode] FROM @CaseContactXML.nodes('/CaseContacts/CaseContact') AS [CCXML]([COL]) ) [CC] END SELECT Id FROM @CaseContact SELECT [CaC].[KEYID], [CaC].[NAMECODE], [CaC].[NAME] FROM CaseAssociatesContacts [CaC] INNER JOIN @CaseContact [CC] ON [CaC].[KEYID] = [CC].[Id] WHERE RTRIM([CaC].[KEYID]) = [CC].[Id] AND RTRIM([CaC].[NAMECODE]) = [CC].[AssCode] AND RTRIM([CaC].[NAME]) = [CC].[Name] UPDATE [CAC] SET [CAC].[NAMECODE] = [CC].[AssCode], [CAC].[NAME] = [CC].[Name], [CAC].[ADDRESS] = [CC].[Address], [CAC].[SALUTATION] = [CC].[Salutation], [CAC].[JOBTITLE] = [CC].[JobTitle], [CAC].[PHONE] = [CC].[Phone], [CAC].[FAX] = [CC].[Fax], [CAC].[MOBILE] = [CC].[Mobile], [CAC].[EMAIL] = [CC].[Email], [CAC].[RELATIONSHIP] = [CC].[Relationship], [CAC].[NOTES] = [CC].[Note], [CAC].[COUNTY] = [CC].[County], [CAC].[POSTALCODE] = [CC].[PostalCode] FROM [CaseAssociatesContacts] [CAC] INNER JOIN @CaseContact [CC] ON [CC].[Id] = [CAC].[KEYID] INSERT INTO [CaseAssociatesContacts] ([NAMECODE], [NAME], [ADDRESS], [SALUTATION], [JOBTITLE], [PHONE], [FAX], [MOBILE], [EMAIL], [RELATIONSHIP], [NOTES], [County], [PostalCode], [Retired]) SELECT [CC].[AssCode], [CC].[Name], [CC].[Address], [CC].[Salutation], [CC].[JobTitle], [CC].[Phone], [CC].[Fax], [CC].[Mobile], [CC].[Email], [CC].[Relationship], [CC].[Note], [CC].[County], [CC].[PostalCode], '' FROM @CaseContact [CC] WHERE (SELECT TOP 1 1 FROM CaseAssociatesContacts WHERE RTRIM(KEYID) = [CC].[Id] AND RTRIM(NAMECODE) = [CC].[AssCode] AND RTRIM(NAME) = [CC].[Name]) IS NULL UPDATE [CaC] SET [CaC].[AssignedContact] = [CC].[TxtAssContact] FROM [CaseContacts] [CaC] INNER JOIN @CaseContact [CC] ON [CaC].[NAMECODE] = [CC].[Id] WHERE (SELECT TOP 1 1 FROM CaseAssociatesContacts WHERE RTRIM(KEYID) = [CC].[Id] AND RTRIM(NAMECODE) = [CC].[AssCode] AND RTRIM(NAME) = [CC].[Name]) IS NULL AND [CC].[Id] = [CC].[TxtAssContact] AND [CC].[TxtAssContact] <> '0' SET @Result = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertCaseContactForProfessional' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertCaseContactForProfessional] END GO CREATE PROCEDURE [dbo].[KAAS_InsertCaseContactForProfessional] (@CASECODE VARCHAR(20), @CONTYPE VARCHAR(20), @NAMECODE VARCHAR(20), @FORCECONNUM INT = 0, @Status INT = 0 OUTPUT) AS /*********************************************************************************************************************** * * Description: To Insert Case Contact for add professional page * * Stored Procedure Name : KAAS_InsertCaseContactForProfessional * Copied From : ky_NETInsertCaseContactForProfessional * * Modification History: * 2015-01-13 PINO Use VARCHAR instead of VARCHAR in parameters and variables, * (except where the Table Columns themselves are Unicode) * 2015-10-15 Sridharan RDJ - 156 -Adding same Associate twice * 2016-03-08 John Now getting the max [CONNUM] for given type but excluding "N/A" * associates so these blank records are replaced * 2016-04-08 John Make changes to how the "N/A" associates are handled. They will * be overwritten in numerical order instead of only getting the * most recent one. * 2016-04-19 Suriya M KEYD-3521 - "When the user tries to add a new associate type with the existing * same Type & Code 2 records are getting added in the grid. * 2016-10-27 Pino Carafa Get the first available rather than the largest CONNUM + 1 * 2016-10-27 Pino Carafa Allow for the forced insertion of a specified CONNUM (for Doc Gen) * 2017-01-03 Suriya M KEYD-4345-When you add a new associate type to an associate while adding a new Undertakings * its not updating in the Add Professional. * 2019-07-27 Vinodhan K Created KAAS_InsertCaseContactForProfessional ***********************************************************************************************************************/ BEGIN IF(@Status = 0) BEGIN DECLARE @CHKCONNUM INT DECLARE @NEWCONNUM INT IF @FORCECONNUM <> 0 BEGIN SET @NEWCONNUM = @FORCECONNUM END ELSE BEGIN SET @CHKCONNUM = 1 WHILE @NEWCONNUM IS NULL BEGIN SET @NEWCONNUM = NULL SELECT @NEWCONNUM = [NEW].[NEWCONNUM] FROM (SELECT @CHKCONNUM AS [NEWCONNUM]) [NEW] LEFT OUTER JOIN [dbo].[CaseContacts] [CAC] ON [CAC].[CASECODE] = @CASECODE AND [CAC].[CONTYPE] = @CONTYPE AND [CAC].[CONNUM] = @CHKCONNUM AND [CAC].[NAMECODE] <> 'N/A' WHERE [CAC].[CONNUM] IS NULL SET @CHKCONNUM = @CHKCONNUM + 1 END END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseContacts] [CAC] WHERE [CAC].[CASECODE] = @CASECODE AND [CAC].[CONTYPE] = @CONTYPE AND [CAC].[CONNUM] = @NEWCONNUM AND [CAC].[NAMECODE] = 'N/A') BEGIN DELETE [CAC] FROM [dbo].[CaseContacts] [CAC] WHERE [CAC].[CASECODE] = @CASECODE AND [CAC].[CONTYPE] = @CONTYPE AND [CAC].[NAMECODE] = 'N/A' AND [CAC].[CONNUM] = @NEWCONNUM END IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseContacts] [CAC] WHERE [CAC].[CASECODE] = @CASECODE AND [CAC].[CONTYPE] = @CONTYPE AND [CAC].[CONNUM] = @NEWCONNUM AND [CAC].[NAMECODE] = 'N/A') BEGIN INSERT INTO [dbo].[CaseContacts] ([NAMECODE], [CASECODE], [CONTYPE], [CONNUM]) VALUES(@NAMECODE, @CASECODE, @CONTYPE, @NEWCONNUM) END IF NOT EXISTS (SELECT TOP 1 1 FROM CaseAssoicatesTypes [CAT] WHERE [CAT].NAMECODE = @NAMECODE AND [CAT].TYPECODE = @CONTYPE) BEGIN INSERT INTO CaseAssoicatesTypes (NAMECODE, TYPECODE, SEARCHCODE, Retired) VALUES(@NAMECODE , @CONTYPE, '', 'N') END SET @Status = 0 END ELSE BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseContacts] [CAC] WHERE RTRIM([CAC].[NAMECODE]) = @NAMECODE AND [CAC].[CASECODE] = @CASECODE AND [CAC].[CONTYPE] = @CONTYPE) BEGIN SET @Status = 1 END ELSE BEGIN SET @Status = 2 END END END GO IF OBJECT_ID(N'KAAS_InsertCaseType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_InsertCaseType] GO CREATE PROCEDURE [dbo].[KAAS_InsertCaseType] (@CaseTypeXML XML, @Result INT OUTPUT) AS /***************************************************************************** Stored Procedure Name : KAAS_InsertCaseType Copied From : ky_NETInsertCaseType Description: This procedure is used To insert "Add Case Associate Type" in CaseAssoicatesTypes Modifications: 2015-01-21 PINO change NVARCHAR to VARCHAR 2019-06-05 Vinodhan K Created KAAS_InsertCaseType *****************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @CaseType TABLE ([NameCode] VARCHAR(100), [TypeCode] VARCHAR(100), [BankTypeCode] VARCHAR(100), [SearchCode] VARCHAR(400)) IF NOT (@CaseTypeXML IS NULL) IF NOT (CONVERT(VARCHAR(MAX), @CaseTypeXML) = '') BEGIN INSERT INTO @CaseType ([NameCode], [TypeCode], [BankTypeCode], [SearchCode]) SELECT [NameCode], [TypeCode], [BankTypeCode], [SearchCode] FROM ( SELECT [CT].[COL].value('@NameCode', 'VARCHAR(100)') AS [NameCode], [CT].[COL].value('@TypeCode', 'VARCHAR(100)') AS [TypeCode], [CT].[COL].value('@BankTypeCode', 'VARCHAR(100)') AS [BankTypeCode], [CT].[COL].value('@SearchCode', 'VARCHAR(400)') AS [SearchCode] FROM @CaseTypeXML.nodes('/CaseAssociateType/CaseType') AS [CT]([COL]) ) [CTP] END UPDATE [CAT] SET [CAT].NAMECODE = [CT].[NameCode], [CAT].TYPECODE = [CT].[TypeCode], [CAT].SEARCHCODE = [CT].[SearchCode] FROM [CaseAssoicatesTypes] [CAT] INNER JOIN @CaseType [CT] ON [CT].NameCode = [CAT].NAMECODE AND [CT].TypeCode = [CAT].TYPECODE WHERE [CT].BankTypeCode = [CT].TypeCode OR [CT].BankTypeCode IS NULL OR [CT].BankTypeCode = '' INSERT INTO [CaseAssoicatesTypes] ([NAMECODE], [TYPECODE], [SEARCHCODE]) SELECT [CT].[NameCode], [CT].[TypeCode], [CT].[SearchCode] FROM @CaseType [CT] WHERE ( [CT].BankTypeCode = [CT].TypeCode OR [CT].BankTypeCode IS NULL OR [CT].BankTypeCode = '' ) AND ( (SELECT TOP 1 1 FROM CaseAssoicatesTypes WHERE RTRIM(NAMECODE) = [CT].[NameCode] AND RTRIM(TYPECODE) = [CT].[TypeCode])IS NULL ) SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_InsertCategory]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_InsertCategory] GO CREATE PROCEDURE [KAAS_InsertCategory] ( @CONTACT VARCHAR(8) ,@categorytype VARCHAR(6) ,@category VARCHAR(10) ,@DATE DATETIME ,@FIELDVALUE1 VARCHAR(60) ,@FIELDVALUE2 VARCHAR(60) ,@FIELDVALUE3 VARCHAR(60) ,@FIELDVALUE4 VARCHAR(60) ,@FIELDVALUE5 VARCHAR(60) ,@FIELDVALUE6 VARCHAR(60) ,@FIELDVALUE7 VARCHAR(60) ,@FIELDVALUE8 VARCHAR(60) ,@FIELDVALUE9 VARCHAR(60) ,@FIELDVALUE10 VARCHAR(60) ,@RecordID INT ) /******************************************************************************************************* * This stored procedure is used to insert or update the ReserveLedger information. * * IF ID is already exist then it will update that record. otherwise new record will insert. * * * * * * Stored Procedure Name : [dbo].[KAAS_InsertCategory] * * Copied from : [dbo].[ky_NETCONInsertCategory] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * * 2022-08-02 Sadiq Added category Type update as we need category Type also to be updated * if User changes the category type on Change (14920) * * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON --IF NOT EXISTS (SELECT -- 1 --FROM ContactCategories --WHERE CONTACT = @CONTACT --AND categorytype = @categorytype --AND category = @category) IF (@RecordID = 0) BEGIN INSERT INTO ContactCategories (CONTACT , categorytype , category , [DATE] , FIELDVALUE1 , FIELDVALUE2 , FIELDVALUE3 , FIELDVALUE4 , FIELDVALUE5 , FIELDVALUE6 , FIELDVALUE7 , FIELDVALUE8 , FIELDVALUE9 , FIELDVALUE10) VALUES (@CONTACT, @categorytype, @category, @DATE, @FIELDVALUE1, @FIELDVALUE2, @FIELDVALUE3, @FIELDVALUE4, @FIELDVALUE5, @FIELDVALUE6, @FIELDVALUE7, @FIELDVALUE8, @FIELDVALUE9, @FIELDVALUE10) END ELSE BEGIN UPDATE ContactCategories SET [DATE] = @DATE, CATEGORYTYPE = @categorytype, CATEGORY = @category, FIELDVALUE1 = @FIELDVALUE1, FIELDVALUE2 = @FIELDVALUE2, FIELDVALUE3 = @FIELDVALUE3, FIELDVALUE4 = @FIELDVALUE4, FIELDVALUE5 = @FIELDVALUE5, FIELDVALUE6 = @FIELDVALUE6, FIELDVALUE7 = @FIELDVALUE7, FIELDVALUE8 = @FIELDVALUE8, FIELDVALUE9 = @FIELDVALUE9, FIELDVALUE10 = @FIELDVALUE10 WHERE RECORDID = @RecordID -- CONTACT = @CONTACT --AND -- categorytype = @categorytype --AND -- category = @category END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertChargeArragement' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertChargeArragement] END GO CREATE PROCEDURE [dbo].[KAAS_InsertChargeArragement] ( @CODE VARCHAR(3), @DESCRIPTION VARCHAR(200), @TIMECHARGE VARCHAR(1), @ACTION VARCHAR(15), @BAND1LIMIT DECIMAL(13, 2), @BAND1RATE DECIMAL(13, 2), @BAND2LIMIT DECIMAL(13, 2), @BAND2RATE DECIMAL(13, 2), @BAND3LIMIT DECIMAL(13, 2), @BAND3RATE DECIMAL(13, 2), @BAND4LIMIT DECIMAL(13, 2), @BAND4RATE DECIMAL(13, 2), @BAND5LIMIT DECIMAL(13, 2), @BAND5RATE DECIMAL(13, 2), @Status VARCHAR(10) ) /************************************************************************************************************* * This procedure is used Insert the information for work flow Action Page Charge Arragement. * * * * Stored Procedure Name : [dbo].[KAAS_InsertChargeArragement] * * Copied from : [dbo].[Ky_NetInsertChargeArragement] * * Modification History : * * 2023-07-03 Nithyanandham M Created * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON IF(@Status = 'True') BEGIN IF EXISTS (SELECT 1 FROM ChargeArrangements WHERE CODE = @CODE ) BEGIN SELECT 'This Charge Arrangement already exists.' END ELSE BEGIN INSERT INTO ChargeArrangements (CODE,[DESCRIPTION],TIMECHARGE,[ACTION],BAND1LIMIT,BAND1RATE,BAND2LIMIT,BAND2RATE,BAND3LIMIT, BAND3RATE,BAND4LIMIT,BAND4RATE,BAND5LIMIT,BAND5RATE) VALUES (@CODE, @DESCRIPTION, @TIMECHARGE, @ACTION, @BAND1LIMIT, @BAND1RATE, @BAND2LIMIT, @BAND2RATE, @BAND3LIMIT,@BAND3RATE, @BAND4LIMIT, @BAND4RATE, @BAND5LIMIT, @BAND5RATE) SELECT 'True' END END ELSE BEGIN UPDATE ChargeArrangements SET [DESCRIPTION] = @DESCRIPTION, TIMECHARGE = @TIMECHARGE, [ACTION] = @Action, BAND1LIMIT = @BAND1LIMIT, BAND1RATE = @BAND1RATE, BAND2LIMIT = @BAND2LIMIT, BAND2RATE = @BAND2RATE, BAND3LIMIT = @BAND3LIMIT, BAND3RATE = @BAND3RATE, BAND4LIMIT = @BAND4LIMIT, BAND4RATE = @BAND4RATE, BAND5LIMIT = @BAND5LIMIT, BAND5RATE = @BAND5RATE WHERE CODE = @CODE SELECT 'True' END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertChargeCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertChargeCode] END GO CREATE PROCEDURE [dbo].[KAAS_InsertChargeCode] ( @ARRANGEMENTCODE VARCHAR(3), @CHARGECODE VARCHAR(3), @DESCRIPTION VARCHAR(100), @BAND1LIMIT DECIMAL(13, 2), @BAND1RATE DECIMAL(13, 2), @BAND2LIMIT DECIMAL(13, 2), @BAND2RATE DECIMAL(13, 2), @BAND3LIMIT DECIMAL(13, 2), @BAND3RATE DECIMAL(13, 2), @BAND4LIMIT DECIMAL(13, 2), @BAND4RATE DECIMAL(13, 2), @BAND5LIMIT DECIMAL(13, 2), @BAND5RATE DECIMAL(13, 2), @BAND6LIMIT DECIMAL(13,2), @BAND6RATE DECIMAL(13,2), @StageCode VARCHAR(2), @Status VARCHAR(10), @OLDCHARGECODE VARCHAR(3) ) /************************************************************************************************************* * This procedure is used Insert the information for work flow Action Page Charge code Grid. * * * * Stored Procedure Name : [dbo].[KAAS_InsertChargeCode] * * Copied from : [dbo].[Ky_NetInsertChargeCode] * * Modification History : * * 2023-07-03 Nithyanandham M Created * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON IF(@Status = 'True') BEGIN IF EXISTS(SELECT 1 FROM ChargingMatrix WHERE ARRANGEMENTCODE = @ARRANGEMENTCODE AND CHARGECODE = @CHARGECODE) BEGIN SELECT 'This Charge Code already exists' END ELSE BEGIN INSERT INTO ChargingMatrix (ARRANGEMENTCODE, CHARGECODE, [DESCRIPTION], BAND1LIMIT, BAND1RATE, BAND2LIMIT, BAND2RATE, BAND3LIMIT, BAND3RATE, BAND4LIMIT, BAND4RATE, BAND5LIMIT, BAND5RATE, BAND6LIMIT, BAND6RATE, StageCode) VALUES (@ARRANGEMENTCODE, @CHARGECODE, @DESCRIPTION, @BAND1LIMIT, @BAND1RATE, @BAND2LIMIT, @BAND2RATE, @BAND3LIMIT, @BAND3RATE, @BAND4LIMIT, @BAND4RATE, @BAND5LIMIT, @BAND5RATE, @BAND6LIMIT, @BAND6RATE, @StageCode) SELECT 'True' END END ELSE BEGIN IF(@CHARGECODE = @OLDCHARGECODE ) BEGIN UPDATE ChargingMatrix SET CHARGECODE = @CHARGECODE, [DESCRIPTION] = @DESCRIPTION, BAND1LIMIT = @BAND1LIMIT, BAND1RATE = @BAND1RATE, BAND2LIMIT = @BAND2LIMIT, BAND2RATE = @BAND2RATE, BAND3LIMIT = @BAND3LIMIT, BAND3RATE = @BAND3RATE, BAND4LIMIT = @BAND4LIMIT, BAND4RATE = @BAND4RATE, BAND5LIMIT = @BAND5LIMIT, BAND5RATE = @BAND5RATE, BAND6LIMIT = @BAND6LIMIT, BAND6RATE = @BAND5RATE, StageCode = @StageCode WHERE ARRANGEMENTCODE = @ARRANGEMENTCODE AND CHARGECODE = @OLDCHARGECODE SELECT 'True' END ELSE BEGIN IF EXISTS(SELECT 1 FROM ChargingMatrix WHERE ARRANGEMENTCODE = @ARRANGEMENTCODE AND CHARGECODE = @CHARGECODE) BEGIN SELECT 'This Charge Code already exists' END ELSE BEGIN UPDATE ChargingMatrix SET CHARGECODE = @CHARGECODE, [DESCRIPTION] = @DESCRIPTION, BAND1LIMIT = @BAND1LIMIT, BAND1RATE = @BAND1RATE, BAND2LIMIT = @BAND2LIMIT, BAND2RATE = @BAND2RATE, BAND3LIMIT = @BAND3LIMIT, BAND3RATE = @BAND3RATE, BAND4LIMIT = @BAND4LIMIT, BAND4RATE = @BAND4RATE, BAND5LIMIT = @BAND5LIMIT, BAND5RATE = @BAND5RATE, BAND6LIMIT = @BAND6LIMIT, BAND6RATE = @BAND5RATE, StageCode = @StageCode WHERE ARRANGEMENTCODE = @ARRANGEMENTCODE AND CHARGECODE = @OLDCHARGECODE SELECT 'True' END END END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertClientChargeOutRates' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertClientChargeOutRates] END GO CREATE PROCEDURE [dbo].[KAAS_InsertClientChargeOutRates] (@ClientCode VARCHAR(10), @FeCode VARCHAR(10), @Rate VARCHAR(18), @EffectiveDate DATETIME, @ModifyBy VARCHAR(10), @LastRate VARCHAR(18), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert client charge out rates. * * * * Stored Procedure Name : [dbo].[KAAS_InsertClientChargeOutRates] * * Copied from : [dbo].[ky_NETCONInsertClientChargeOutRates] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[ClientChargeOutRates] [CCOR] WHERE [CCOR].[ClientCode] = @ClientCode AND [CCOR].[FeCode] = @FeCode) BEGIN INSERT INTO [dbo].[ClientChargeOutRates] ([ClientCode], [FeCode], [Rate], [ModifyDate], [ModifyBy], [LastRate], [EffectiveDate]) VALUES(@ClientCode, @FeCode, @Rate, GETDATE(), @ModifyBy, @LastRate, @EffectiveDate ) UPDATE [CON] SET [CON].[ChargeOutRateInd] = 'Y' FROM [dbo].[Contacts] [CON] WHERE [CON].[Code] = @ClientCode --UPDATE TIME ENTRY BASED ON NEW ENTRY UPDATE [TIE] SET [TIE].[RATE] = @Rate, [TIE].[CHARGE] = ([TIE].[TIME] / 60.00) * @Rate FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[TimeEntry] [TIE] INNER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [TIE].[FEEEARN] AND ( [HAN].[CODE] = @FeCode OR [HAN].[ChargeGroup] = @FeCode) ON [TIE].[Matter] = [MAT].[Code] AND ISNULL([TIE].[BILLED], 0) = 0 AND [TIE].[TimeOrCharge] = 'T' AND [TIE].[Date] >= @EffectiveDate AND ISNULL([TIE].[InvoiceNo], 0) = 0 WHERE [MAT].[ClientCode] = @ClientCode AND ISNULL([MAT].[ChargeOutRateInd], 'N') <> 'Y' SET @Result = 1 END ELSE BEGIN SET @Result = 3 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertCommands' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertCommands] END GO CREATE PROCEDURE [dbo].[KAAS_InsertCommands] ( @ActionCode VARCHAR(50), @Order DECIMAL(3, 0), @Command VARCHAR(255), @Parameters VARCHAR(255), @Description VARCHAR(400), @OldOrder DECIMAL(3, 0), @Status VARCHAR(10) ) AS /***************************************************************************** * This procedure is used to Insert Commands. * * * * Stored Procedure Name : [dbo].[KAAS_InsertCommands] * * Copied from : [dbo].[Ky_NetInsertCommands] * * * * Modification History : * * 2023-06-16 Nithyanandham M Created * *****************************************************************************/ BEGIN SET NOCOUNT ON IF(@Status = 'True') BEGIN IF EXISTS (SELECT 1 FROM TemplateActionCommands WHERE ACTIONCODE = @ActionCode AND [ORDER] = @Order ) BEGIN SELECT 'This Command already exists.' END ELSE BEGIN INSERT INTO TemplateActionCommands(ACTIONCODE, [ORDER], COMMAND, [PARAMETERS], [DESCRIPTION]) VALUES (@ActionCode,@Order,@Command,@Parameters,@Description) SELECT 'True' END END ELSE BEGIN IF(@Order = @OldOrder ) BEGIN UPDATE TemplateActionCommands SET [ORDER] = @Order, COMMAND = @Command, [PARAMETERS] = @Parameters, [DESCRIPTION] = @Description WHERE ACTIONCODE = @ActionCode AND [ORDER] = @OldOrder SELECT 'True' END ELSE BEGIN IF EXISTS (SELECT 1 FROM TemplateActionCommands WHERE ACTIONCODE = @ActionCode AND [ORDER] = @Order) BEGIN SELECT 'This Command already exists.' END ELSE BEGIN UPDATE TemplateActionCommands SET [ORDER] = @Order, COMMAND = @Command, [PARAMETERS] = @Parameters, [DESCRIPTION] = @Description WHERE ACTIONCODE = @ActionCode AND [ORDER] = @OldOrder SELECT 'True' END END END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_InsertControlProfile',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_InsertControlProfile] GO CREATE PROCEDURE [dbo].[KAAS_InsertControlProfile] (@Name VARCHAR(200)) AS /**************************************************************************** * Inserts a new Keyhouse Control Profile used to group handlers together * * Modification History * Copied from ([dbo].[ky_NETSPInsertKHCtlProfile]) * 2023-04-13 Revathy.D Created * ****************************************************************************/ BEGIN DECLARE @CODE VARCHAR(10) SET @CODE = UPPER(CONVERT(VARCHAR(10), RTRIM(ISNULL(@NAME, '')))) INSERT INTO [dbo].[KHCtlProfiles] ([Code], [Name], [Retired]) VALUES(@CODE, @Name, 'N') END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertCreditNoteValues' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertCreditNoteValues] END GO CREATE PROCEDURE [dbo].[KAAS_InsertCreditNoteValues] (@DRAFTNOCRV VARCHAR(10), @BATCHNOOIV VARCHAR(10)) AS /*********************************************************************** * * ky_NETSPInsertCreditNoteValues * * Copies the Detail Lines and the Fee Earner Breakdown from * the original Draft Bill to the Credit Note * * ????-??-?? ???? Created * 2018-08-23 John Ginnane Added to SVN * 2019-11-19 Rajesh copied from ky_NETSPInsertCreditNoteValues ***********************************************************************/ BEGIN DECLARE @DRAFTNOCR INT DECLARE @DRAFTNOOI INT BEGIN TRY SELECT @DRAFTNOCR = BH.[DRAFTNO] FROM [dbo].[BillHeader] BH WHERE BH.[DRAFTNO] = CONVERT(INT, @DRAFTNOCRV) END TRY BEGIN CATCH SET @DRAFTNOCR = NULL END CATCH IF (@DRAFTNOCR IS NULL) BEGIN RETURN END BEGIN TRY SELECT @DRAFTNOOI = BH.[DRAFTNO] FROM [dbo].[BillHeader] BH INNER JOIN [dbo].[BillHeader] BHCR ON BHCR.[DRAFTNO] = @DRAFTNOCR AND BHCR.[MATTER] = BH.[MATTER] INNER JOIN [dbo].[DebtorsLedger] DTL ON DTL.[MATTER] = BH.[MATTER] AND DTL.[BATCHNO] = BH.[BATCHNO] AND DTL.[OSVALUE] > 0 AND DTL.[DATE] IS NOT NULL WHERE BH.[BATCHNO] = CONVERT(INT, @BATCHNOOIV) AND BH.[INVCR] = 'I' END TRY BEGIN CATCH SET @DRAFTNOOI = NULL END CATCH IF (@DRAFTNOOI IS NULL) BEGIN RETURN END DELETE [dbo].[BillFeeBreakDown] WHERE [DRAFTNO] = @DRAFTNOCR DELETE [dbo].[BillDetails] WHERE [DRAFTNO] = @DRAFTNOCR INSERT INTO [dbo].[BillDetails] ([BILLNO], [DRAFTNO], [FEEEARNER], [LINENO], [MATTER], [NARRATIVE], [NET], [NOMINAL], [TYPE], [VATCODE], [VATRATE], [VATVALUE]) SELECT 0 AS [BILLNO], @DRAFTNOCR, BD.[FEEEARNER], BD.[LINENO], BD.[MATTER], BD.[NARRATIVE], BD.[NET], BD.[NOMINAL], BD.[TYPE], BD.[VATCODE], BD.[VATRATE], BD.[VATVALUE] FROM [dbo].[BillDetails] BD WHERE BD.[DRAFTNO] = @DRAFTNOOI INSERT INTO [dbo].[BillFeeBreakDown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VATCODE]) SELECT CONVERT(VARCHAR(20), RTRIM(ISNULL(BFB.[MATTER], ''))), @DRAFTNOCR, 0, CONVERT(VARCHAR(10), RTRIM(ISNULL(BFB.[FECODE], ''))), CONVERT(VARCHAR(1), CASE WHEN RTRIM(ISNULL(BFB.[TYPE], '')) IN ('F', 'O', 'M') THEN RTRIM(ISNULL(BFB.[TYPE], '')) ELSE 'F' END), CONVERT(DECIMAL(5, 2), 0), CONVERT(DECIMAL(9, 5), ISNULL(BFB.[CALCULATION], 0)), CONVERT(VARCHAR(1), RTRIM(ISNULL(BFB.[VATCODE], ''))) FROM [dbo].[BillFeeBreakDown] BFB WHERE BFB.[DRAFTNO] = @DRAFTNOOI EXEC [dbo].[KAAS_CorrectBillDetailsANDFEBreakdown] @DRAFTNOCR END GO IF OBJECT_ID(N'[KAAS_InsertCrossRef]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_InsertCrossRef] GO CREATE PROCEDURE [KAAS_InsertCrossRef] (@Code VARCHAR(10), @LinkToCode VARCHAR(10), @Relationship VARCHAR(50), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to Insert cross reference, this procedure will return result "1" IF * * successful insert, otherwise return its default value "0". * * * * Stored Procedure Name : [dbo].[KAAS_InsertCrossRef] * * Copied from : [dbo].[ky_NETCONInsertCrossRef] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[ContactLinks] CL WHERE CL.[CONTACTA] = @Code AND CL.[CONTACTB] = @LinkToCode) BEGIN INSERT INTO [dbo].[ContactLinks] ([CONTACTA], [CONTACTB], [RELATE]) VALUES(@Code, @LinkToCode, @Relationship) INSERT INTO [dbo].[ContactLinks] ([CONTACTA], [CONTACTB], [RELATE]) VALUES(@LinkToCode, @Code, @Relationship) SET @Result = 1 END ELSE BEGIN SET @Result = 2 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertDependentAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertDependentAction] END GO CREATE PROCEDURE [dbo].[KAAS_InsertDependentAction] ( @RecordID INT, @ActionCode VARCHAR(20), @DependentActionCode VARCHAR(20), @TimeFrame VARCHAR(10), @TimeFramAmount INT, @Status VARCHAR(1), @InsertStatus VARCHAR(10), @Result INT OUTPUT ) /*********************************************************************************************** * This procedure is used to Insert Dependent Action * * * * Stored Procedure Name : [dbo].[KAAS_InsertDependentAction] * * Copied from : [dbo].[Ky_NetInsertDependentAction] * * * * Modification History : * * 2023-06-19 Nithyanandham M Created * **************************************************************************************************/ AS BEGIN SET NOCOUNT ON IF(@InsertStatus = 'True') BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM TemplateDependentActions WHERE ActionCode = @ActionCode AND DependentActionCode = @DependentActionCode) BEGIN INSERT INTO TemplateDependentActions(ActionCode,DependentActionCode,TimeFrame,TimeFramAmount,[Status]) VALUES (@ActionCode, @DependentActionCode, @TimeFrame, @TimeFramAmount, @Status) SET @Result = 0 END ELSE BEGIN SET @Result = 1 END END ELSE BEGIN UPDATE TemplateDependentActions SET TimeFrame = @TimeFrame, TimeFramAmount = @TimeFramAmount WHERE RecordID = @RecordID SET @Result = 0 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_InsertDiaryAttachment' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertDiaryAttachment] END GO CREATE PROCEDURE [dbo].[KAAS_InsertDiaryAttachment] (@DIARYID INT, @TRACKREFERENCE INT, @CASECODE VARCHAR(20), @NAME VARCHAR(10), @DOCUMENT VARCHAR(100), @FILEPATH VARCHAR(255), @TYPE VARCHAR(5), @DOCCLASS VARCHAR(3), @DATEENTERED DATETIME, @ENTEREDBY VARCHAR(8), @LASTACCESSDATE DATETIME, @LASTACCESSBY VARCHAR(8), @SYSTEM VARCHAR(1), @DICTATIONFILE VARCHAR(255), @Source VARCHAR(20), @Fees INT, @Outlay INT, @Result VARCHAR(255) OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the Client Case Action * * Attachment information.IF ID is already exist then it will update that record. otherwise * * new record will insert. * * * * Stored Procedure Name : [dbo].[KAAS_InsertDiaryAttachment] * * Copied from : [dbo].[ky_NETAAInsertDiaryAttchement] * * * * Modification History : * * 2019-04-10 Vinodhan K Created * * 2020-05-26 Arun V Modified the type extenaion size from 3 to 5 * * 2021-10-06 Arun V Set Context info * *******************************************************************************************************/ BEGIN SET NOCOUNT OFF DECLARE @HandlerBin VARBINARY(128) SET @HandlerBin = CONVERT(VARBINARY(128), convert(varchar(8),@LASTACCESSBY)) SET CONTEXT_INFO @HandlerBin IF NOT EXISTS (SELECT 1 FROM [dbo].[DiaryAttachments] DAT WHERE DAT.[TRACKREFERENCE] = @TRACKREFERENCE) BEGIN SET @FILEPATH = dbo.KAAS_FN_GETFILEPATH (SUBSTRING(@FILEPATH,LEN(@FILEPATH)-CHARINDEX ('\',REVERSE(@FILEPATH))+2,LEN(@FILEPATH)) ,@FILEPATH ) IF NOT(@FILEPATH = 'NOCHANGE') BEGIN INSERT INTO [dbo].[DiaryAttachments] ([DIARYID], [TRACKREFERENCE], [CASECODE], [NAME], [DOCUMENT], [FILEPATH], [TYPE], [DOCCLASS], [DATEENTERED], [ENTEREDBY], [LASTACCESSDATE], [LASTACCESSBY], [SYSTEM], [DICTATIONFILE], [Source], [Fees], [Outlay]) VALUES(@DIARYID, @TRACKREFERENCE, @CASECODE, @NAME, @DOCUMENT, @FILEPATH, @TYPE, @DOCCLASS, @DATEENTERED, @ENTEREDBY, @LASTACCESSDATE, @LASTACCESSBY, @SYSTEM, @DICTATIONFILE, @Source, @Fees, @Outlay) IF EXISTS(SELECT * FROM diary WHERE ACTIONID = @DIARYID AND ACTIONTYPE = 'U') BEGIN DECLARE @UserName VARCHAR(20) DECLARE @Description VARCHAR(500) SET @UserName = (SELECT NAME FROM Handlers WHERE Code = @ENTEREDBY) SET @Description = 'Attachment Added: ' + CHAR(13) + CHAR(10) + 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME,@DATEENTERED),106) + CHAR(13) + CHAR(10) + 'Document Name: ' + @DOCUMENT +CHAR(13) + CHAR(10) + 'Document Class: ' + @DOCCLASS + CHAR(13) + CHAR(10) INSERT INTO [dbo].[UndertakingLog] ([UndertakingID], [FieldChanges], [FromValue], [ToValue], [ByWho], [ModifiedDate]) VALUES(@DIARYID, 'New Documents Added', @Description, ' - NIL - ', @UserName, CONVERT(DATETIME,GETDATE(),112)) END SET @Result = @FILEPATH END ELSE BEGIN SET @Result = 'NOCHANGE' END END --ELSE -- BEGIN -- UPDATE DAT -- SET DAT.[TRACKREFERENCE] = @TRACKREFERENCE, -- DAT.[CASECODE] = @CASECODE, -- DAT.[NAME] = @NAME, -- DAT.[DOCUMENT] = @DOCUMENT, -- DAT.[FILEPATH] = @FILEPATH, -- DAT.[TYPE] = @TYPE, -- DAT.[DOCCLASS] = @DOCCLASS, -- DAT.[DATEENTERED] = @DATEENTERED, -- DAT.[ENTEREDBY] = @ENTEREDBY, -- DAT.[LASTACCESSDATE] = @LASTACCESSDATE, -- DAT.[LASTACCESSBY] = @LASTACCESSBY, -- DAT.[SYSTEM] = @SYSTEM, -- DAT.[DICTATIONFILE] = @DICTATIONFILE, -- DAT.[Source] = @Source, -- DAT.[Fees] = @Fees, -- DAT.[Outlay] = @Outlay -- FROM [dbo].[DiaryAttachments] DAT -- WHERE DAT.[TRACKREFERENCE] = @TRACKREFERENCE -- END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertDocumentAssistValueXML' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertDocumentAssistValueXML] END GO CREATE PROCEDURE [dbo].[KAAS_InsertDocumentAssistValueXML] (@Status VARCHAR(10), @XML NVARCHAR(MAX)) AS /************************************************************************************************ * Insert or Update a Doc Assist (System User Defined Field) * * * * Stored Procedure Name : [dbo].[KAAS_InsertDocumentAssistValueXML] * * Copied from : [dbo].[ky_NETSPInsertDocumentAssistValueXML] * * * * Modification History : * * 2023-07-11 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH IF @Status = 'True' BEGIN IF EXISTS (SELECT TOP 1 1 FROM OPENXML(@iSL, N'SystemUserDefinedFields') WITH ([FILEPREFIX] VARCHAR(5), [FIELDNAME] VARCHAR(30)) [NEW] INNER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [NEW].[FILEPREFIX] AND [SUF].[FIELDNAME] = [NEW].[FIELDNAME]) BEGIN SELECT 'This field name already exists.' RETURN END INSERT INTO [dbo].[SystemUserDefinedFields] ([FILEPREFIX], [FIELDNAME], [TYPE], [PROMPT], [LENGTH], [DECMIAL], [FORMAT], [INITIALVALUE], [CALCINITIALVALUE], [OVERRIDEINITIALVALUE], [REQUIRED], [VALIDATION], [LOW], [HIGH], [SYSTEMFIELD], [TOP], [LEFT], [HEIGHT], [WIDTH], [FONT], [VISIBLE], [ENABLED], [READONLY], [MULTILINE], [ACTUALNAME], [COMMON], [UDFCategory], [ISLOCK], [SQLStatement], [ToolTip], [PUBLISH]) SELECT [SUF].[FILEPREFIX] AS [FILEPREFIX], [SUF].[FIELDNAME] AS [FIELDNAME], ISNULL([SUF].[TYPE], '') AS [TYPE], ISNULL([SUF].[PROMPT], '') AS [PROMPT], ISNULL([SUF].[LENGTH], CONVERT(DECIMAL(5,0), 0)) AS [LENGTH], ISNULL([SUF].[DECMIAL], CONVERT(DECIMAL(3, 0), 0)) AS [DECMIAL], ISNULL([SUF].[FORMAT], '') AS [FORMAT], ISNULL([SUF].[INITIALVALUE], '') AS [INITIALVALUE], CASE WHEN ISNULL([SUF].[CALCINITIALVALUE], 'N') = 'Y' THEN 'Y' ELSE 'N' END AS [CALCINITIALVALUE], CASE WHEN ISNULL([SUF].[OVERRIDEINITIALVALUE], 'N') = 'Y' THEN 'Y' ELSE 'N' END AS [OVERRIDEINITIALVALUE], CASE WHEN ISNULL([SUF].[REQUIRED], 'N') = 'Y' THEN 'Y' ELSE 'N' END AS [REQUIRED], ISNULL([SUF].[VALIDATION], 'N') AS [VALIDATION], ISNULL([SUF].[LOW], CONVERT(DECIMAL(9, 2), 0)) AS [LOW], ISNULL([SUF].[HIGH], CONVERT(DECIMAL(9, 2), 0)) AS [HIGH], CASE WHEN ISNULL([SUF].[SYSTEMFIELD], 'N') = 'Y' THEN 'Y' ELSE 'N' END AS [SYSTEMFIELD], ISNULL([SUF].[TOP], CONVERT(DECIMAL(5, 0), 0)) AS [TOP], ISNULL([SUF].[LEFT], CONVERT(DECIMAL(5, 2), 0)) AS [LEFT], ISNULL([SUF].[HEIGHT], CONVERT(DECIMAL(5, 0), 0)) AS [HEIGHT], ISNULL([SUF].[WIDTH], CONVERT(DECIMAL(5, 2), 0)) AS [WIDTH], ISNULL([SUF].[FONT], '') AS [FONT], CASE WHEN ISNULL([SUF].[VISIBLE], 'Y') = 'N' THEN 'N' ELSE 'Y' END AS [VISIBLE], CASE WHEN ISNULL([SUF].[ENABLED], 'Y') = 'N' THEN 'N' ELSE 'Y' END AS [ENABLED], CASE WHEN ISNULL([SUF].[READONLY], 'N') = 'Y' THEN 'Y' ELSE 'N' END AS [READONLY], CASE WHEN ISNULL([SUF].[MULTILINE], 'N') = 'Y' THEN 'Y' ELSE 'N' END AS [MULTILINE], ISNULL([SUF].[ACTUALNAME], '') AS [ACTUALNAME], ISNULL([SUF].[COMMON], CONVERT(TINYINT, 1)) AS [COMMON], ISNULL([SUF].[UDFCategory], CONVERT(INT, 0)) AS [UDFCategory], ISNULL([SUF].[ISLOCK], CONVERT(TINYINT, 0)) AS [ISLOCK], [SUF].[SQLStatement] AS [SQLStatement], ISNULL([SUF].[ToolTip], '') AS [ToolTip], ISNULL([SUF].[PUBLISH], 0) AS [PUBLISH] FROM OPENXML(@iSL, N'SystemUserDefinedFields') WITH ([FILEPREFIX] VARCHAR(5), [FIELDNAME] VARCHAR(30), [TYPE] VARCHAR(11), [PROMPT] VARCHAR(80), [LENGTH] DECIMAL(5,0), [DECMIAL] DECIMAL(3,0), [FORMAT] VARCHAR(50), [INITIALVALUE] VARCHAR(255), [CALCINITIALVALUE] CHAR(1), [OVERRIDEINITIALVALUE] CHAR(1), [REQUIRED] CHAR(1), [VALIDATION] CHAR(1), [LOW] DECIMAL(9,2), [HIGH] DECIMAL(9,2), [SYSTEMFIELD] CHAR(1), [TOP] DECIMAL(5,0), [LEFT] DECIMAL(5,2), [HEIGHT] DECIMAL(5,0), [WIDTH] DECIMAL(5,2), [FONT] VARCHAR(20), [VISIBLE] CHAR(1), [ENABLED] CHAR(1), [READONLY] CHAR(1), [MULTILINE] CHAR(1), [ACTUALNAME] VARCHAR(200), [COMMON] TINYINT, [UDFCategory] INT, [ISLOCK] TINYINT, [SQLStatement] VARCHAR(MAX), [ToolTip] VARCHAR(1000), [PUBLISH] BIT) [SUF] SELECT 'True' RETURN END UPDATE [SUF] SET [SUF].[TYPE] = ISNULL([NEW].[TYPE], ''), [SUF].[PROMPT] = ISNULL([NEW].[PROMPT], ''), [SUF].[LENGTH] = ISNULL([NEW].[LENGTH], CONVERT(DECIMAL(5,0), 0)), [SUF].[DECMIAL] = ISNULL([NEW].[DECMIAL], CONVERT(DECIMAL(3, 0), 0)), [SUF].[FORMAT] = ISNULL([NEW].[FORMAT], ''), [SUF].[INITIALVALUE] = ISNULL([NEW].[INITIALVALUE], ''), [SUF].[CALCINITIALVALUE] = CASE WHEN ISNULL([NEW].[CALCINITIALVALUE], ISNULL([SUF].[CALCINITIALVALUE], 'N')) = 'Y' THEN 'Y' ELSE 'N' END, [SUF].[OVERRIDEINITIALVALUE] = CASE WHEN ISNULL([NEW].[OVERRIDEINITIALVALUE], ISNULL([SUF].[OVERRIDEINITIALVALUE], 'N')) = 'Y' THEN 'Y' ELSE 'N' END, [SUF].[REQUIRED] = CASE WHEN ISNULL([NEW].[REQUIRED], ISNULL([SUF].[REQUIRED], 'N')) = 'Y' THEN 'Y' ELSE 'N' END, [SUF].[VALIDATION] = ISNULL([NEW].[VALIDATION], ISNULL([SUF].[VALIDATION], 'N')), [SUF].[LOW] = ISNULL([NEW].[LOW], CONVERT(DECIMAL(9, 2), 0)), [SUF].[HIGH] = ISNULL([NEW].[HIGH], CONVERT(DECIMAL(9, 2), 0)), [SUF].[SYSTEMFIELD] = CASE WHEN ISNULL([NEW].[SYSTEMFIELD], ISNULL([SUF].[SYSTEMFIELD], 'N')) = 'Y' THEN 'Y' ELSE 'N' END, [SUF].[TOP] = ISNULL([NEW].[TOP], CONVERT(DECIMAL(5, 0), 0)), [SUF].[LEFT] = ISNULL([NEW].[LEFT], CONVERT(DECIMAL(5, 2), 0)), [SUF].[HEIGHT] = ISNULL([NEW].[HEIGHT], CONVERT(DECIMAL(5, 0), 0)), [SUF].[WIDTH] = ISNULL([NEW].[WIDTH], CONVERT(DECIMAL(5, 2), ISNULL([SUF].[WIDTH], 0))), [SUF].[FONT] = ISNULL([NEW].[FONT], ISNULL([SUF].[FONT], '')), [SUF].[VISIBLE] = CASE WHEN ISNULL([NEW].[VISIBLE], ISNULL([SUF].[VISIBLE], 'Y')) = 'N' THEN 'N' ELSE 'Y' END, [SUF].[ENABLED] = CASE WHEN ISNULL([NEW].[ENABLED], ISNULL([SUF].[ENABLED], 'Y')) = 'N' THEN 'N' ELSE 'Y' END, [SUF].[READONLY] = CASE WHEN ISNULL([NEW].[READONLY], ISNULL([SUF].[READONLY], 'N')) = 'Y' THEN 'Y' ELSE 'N' END, [SUF].[MULTILINE] = CASE WHEN ISNULL([NEW].[MULTILINE], ISNULL([SUF].[MULTILINE], 'N')) = 'Y' THEN 'Y' ELSE 'N' END, [SUF].[ACTUALNAME] = ISNULL([NEW].[ACTUALNAME], ''), [SUF].[COMMON] = ISNULL([NEW].[COMMON], CONVERT(TINYINT, 1)), [SUF].[UDFCategory] = ISNULL([NEW].[UDFCategory], CONVERT(INT, 0)), [SUF].[ISLOCK] = ISNULL([NEW].[ISLOCK], CONVERT(TINYINT, 0)), [SUF].[SQLStatement] = [NEW].[SQLStatement], [SUF].[ToolTip] = ISNULL([NEW].[ToolTip], ''), [SUF].[PUBLISH] = ISNULL([NEW].[PUBLISH], 0) FROM OPENXML(@iSL, N'SystemUserDefinedFields') WITH ([FILEPREFIX] VARCHAR(5), [FIELDNAME] VARCHAR(30), [TYPE] VARCHAR(11), [PROMPT] VARCHAR(80), [LENGTH] DECIMAL(5,0), [DECMIAL] DECIMAL(3,0), [FORMAT] VARCHAR(50), [INITIALVALUE] VARCHAR(255), [CALCINITIALVALUE] CHAR(1), [OVERRIDEINITIALVALUE] CHAR(1), [REQUIRED] CHAR(1), [VALIDATION] CHAR(1), [LOW] DECIMAL(9,2), [HIGH] DECIMAL(9,2), [SYSTEMFIELD] CHAR(1), [TOP] DECIMAL(5,0), [LEFT] DECIMAL(5,2), [HEIGHT] DECIMAL(5,0), [WIDTH] DECIMAL(5,2), [FONT] VARCHAR(20), [VISIBLE] CHAR(1), [ENABLED] CHAR(1), [READONLY] CHAR(1), [MULTILINE] CHAR(1), [ACTUALNAME] VARCHAR(200), [COMMON] TINYINT, [UDFCategory] INT, [ISLOCK] TINYINT, [SQLStatement] VARCHAR(MAX), [ToolTip] VARCHAR(1000), [PUBLISH] BIT) [NEW] INNER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [NEW].[FILEPREFIX] AND [SUF].[FIELDNAME] = [NEW].[FIELDNAME] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SELECT 'True' SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_InsertDocuments]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_InsertDocuments] GO CREATE PROCEDURE [dbo].[KAAS_InsertDocuments] (@Code VARCHAR(10), @FilePath VARCHAR(255), @Name VARCHAR(100), @Type VARCHAR(5), @Docclass VARCHAR(3), @StartToken VARCHAR(2), @EndToken VARCHAR(2), @ActionCode VARCHAR(15), @Status VARCHAR(5), @INorOUT VARCHAR(50)) AS /******************************************************************************************************* * This stored procedure is used to Insert the information for work flow Action Page Browse Documents. * * * * Stored Procedure Name : [dbo].[[KAAS_InsertDocuments]] * * Copied from : [dbo].[[ky_NETInsertDocuments]] * * * * Modification History : * * 2015-12-09 Pino Carafa Imported into Framework Release 2 * * 2016-10-06 Pino Carafa The parameter sizes bore no relation to the actual column definitions. * * 2019-11-01 Dheepin Vijith Created * * 2022-02-18 Vignesh.M Modified Correct local filepaths * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF @Status = 'True' BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateDocuments] TDC WHERE TDC.[CODE] = @Code ) BEGIN SELECT 'The Document already exists.' END ELSE BEGIN IF @INorOUT = 'True' BEGIN INSERT INTO [dbo].[TemplateDocuments] ([CODE], [FILEPATH], [NAME], [TYPE], [DOCCLASS], [StartToken], [EndToken]) VALUES(@Code, @FilePath, @Name, @Type, @Docclass, @StartToken, @EndToken) INSERT INTO [dbo].[TemplateActionDcouments] ([ACTION], [DOCUMENT], [OPTIONAL]) VALUES(@ActionCode, @Code, 'N') SELECT 'True' END ELSE BEGIN INSERT INTO [dbo].[TemplateDocuments] ([CODE], [FILEPATH], [NAME], [TYPE], [DOCCLASS], [StartToken], [EndToken]) VALUES(@Code, @FilePath, @Name, @Type, @Docclass, @StartToken, @EndToken) SELECT 'True' END END END ELSE BEGIN UPDATE TDC SET TDC.[FILEPATH] = @FilePath, TDC.[NAME] = @Name, TDC.[TYPE] = @Type, TDC.[DOCCLASS] = @Docclass, TDC.[StartToken] = @StartToken, TDC.[EndToken] = @EndToken FROM [dbo].[TemplateDocuments] TDC WHERE TDC.[CODE] = @Code SELECT 'True' END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'OyezTemplates' AND SO.[type] = 'U') BEGIN EXEC (' INSERT INTO [dbo].[OyezTemplates] ([FILEPATH], [NAME]) SELECT DISTINCT RTRIM(ISNULL(TDC.[FILEPATH], '''')), [dbo].[KAAS_FN_GetDocumentName](TDC.[FILEPATH]) FROM [dbo].[TemplateDocuments] TDC LEFT OUTER JOIN [dbo].[OyezTemplates] OYT ON OYT.[FILEPATH] = RTRIM(ISNULL(TDC.[FILEPATH], '''')) WHERE ( RTRIM(ISNULL(TDC.[FILEPATH], '''')) LIKE ''%.OLF'' OR RTRIM(ISNULL(TDC.[FILEPATH], '''')) LIKE ''%.OLFX'') AND OYT.[ID] IS NULL') END --Correct local filepaths DECLARE @PRECEDENTFOLDER VARCHAR(255) SELECT @PRECEDENTFOLDER = [SCPRECEDENTFOLDER] FROM [dbo].[SystemConfig] SET @PRECEDENTFOLDER = RTRIM(ISNULL(@PRECEDENTFOLDER, '')) IF @PRECEDENTFOLDER = '' BEGIN RETURN END IF SUBSTRING(@PRECEDENTFOLDER, LEN(@PRECEDENTFOLDER), 1) <> '\' BEGIN SET @PRECEDENTFOLDER = @PRECEDENTFOLDER + '\' END UPDATE [TD] SET [TD].[FILEPATH] = @PRECEDENTFOLDER + SUBSTRING([TD].[FILEPATH], PATINDEX('%AzurePrecedents%', [TD].[FILEPATH]) + 16, LEN([TD].[FILEPATH]) - PATINDEX('%AzurePrecedents%', [TD].[FILEPATH]) - 15) from [dbo].[TemplateDocuments] [TD] where [TD].[FILEPATH] LIKE 'C:\%AzurePrecedents%' SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertDocuments1' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertDocuments1] END GO CREATE PROCEDURE [dbo].[KAAS_InsertDocuments1] (@Code VARCHAR(10), @FilePath VARCHAR(255), @Name VARCHAR(100), @Type VARCHAR(5), @Docclass VARCHAR(3), @StartToken VARCHAR(2), @EndToken VARCHAR(2), @ActionCode VARCHAR(15), @Status VARCHAR(5), @INorOUT VARCHAR(50), @ConvertToPDF BIT, @Optional BIT) AS /************************************************************************************************ * This procedure is used to insert Document * * * * Stored Procedure Name : [dbo].[KAAS_InsertDocuments1] * * Copied from : [dbo].[Ky_NetInsertDocuments3] * * * * Modification History : * * 2023-06-19 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON IF @Status = 'True' BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateDocuments] [TDC] WHERE [TDC].[CODE] = @Code ) BEGIN SELECT 'The Document already exists.' END ELSE BEGIN INSERT INTO [dbo].[TemplateDocuments] ([CODE], [FILEPATH], [NAME], [TYPE], [DOCCLASS], [StartToken], [EndToken], [ConvertToPDF]) VALUES(@Code, @FilePath, @Name, @Type, @Docclass, @StartToken, @EndToken, ISNULL(@ConvertToPDF, 0)) IF RTRIM(ISNULL(@ActionCode, '')) <> '' BEGIN INSERT INTO [dbo].[TemplateActionDcouments] ([ACTION], [DOCUMENT], [OPTIONAL]) VALUES(@ActionCode, @Code, CASE WHEN ISNULL(@Optional, 1) = 0 THEN 'N' ELSE 'Y' END) EXEC [dbo].[ky_NETSPReSequenceTADsForAction] @ActionCode END SELECT 'True' END END ELSE BEGIN UPDATE [TDC] SET [TDC].[FILEPATH] = @FilePath, [TDC].[NAME] = @Name, [TDC].[TYPE] = @Type, [TDC].[DOCCLASS] = @Docclass, [TDC].[StartToken] = @StartToken, [TDC].[EndToken] = @EndToken, [TDC].[ConvertToPDF] = ISNULL(@ConvertToPDF, [TDC].[ConvertToPDF]) FROM [dbo].[TemplateDocuments] [TDC] WHERE [TDC].[CODE] = @Code IF RTRIM(ISNULL(@ActionCode, '')) <> '' BEGIN UPDATE [TADC] SET [TADC].[OPTIONAL] = CASE WHEN ISNULL(@Optional, 1) = 0 THEN 'N' ELSE 'Y' END FROM [dbo].[TemplateActionDcouments] [TADC] WHERE [TADC].[ACTION] = @ActionCode AND [TADC].[DOCUMENT] = @Code END SELECT 'True' END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'OyezTemplates' AND SO.[type] = 'U') BEGIN EXEC (' INSERT INTO [dbo].[OyezTemplates] ([FILEPATH], [NAME]) SELECT DISTINCT RTRIM(ISNULL([TDC].[FILEPATH], '''')), [dbo].[ky_NETFNGetDocumentName]([TDC].[FILEPATH]) FROM [dbo].[TemplateDocuments] [TDC] LEFT OUTER JOIN [dbo].[OyezTemplates] [OYT] ON [OYT].[FILEPATH] = RTRIM(ISNULL([TDC].[FILEPATH], '''')) WHERE ( RTRIM(ISNULL([TDC].[FILEPATH], '''')) LIKE ''%.OLF'' OR RTRIM(ISNULL([TDC].[FILEPATH], '''')) LIKE ''%.OLFX'') AND [OYT].[ID] IS NULL') END --Correct local filepaths DECLARE @PRECEDENTFOLDER VARCHAR(255) SELECT @PRECEDENTFOLDER = [SCPRECEDENTFOLDER] FROM [dbo].[SystemConfig] SET @PRECEDENTFOLDER = RTRIM(ISNULL(@PRECEDENTFOLDER, '')) IF @PRECEDENTFOLDER = '' BEGIN RETURN END IF SUBSTRING(@PRECEDENTFOLDER, LEN(@PRECEDENTFOLDER), 1) <> '\' BEGIN SET @PRECEDENTFOLDER = @PRECEDENTFOLDER + '\' END UPDATE [TD] SET [TD].[FILEPATH] = @PRECEDENTFOLDER + SUBSTRING([TD].[FILEPATH], PATINDEX('%AzurePrecedents%', [TD].[FILEPATH]) + 16, LEN([TD].[FILEPATH]) - PATINDEX('%AzurePrecedents%', [TD].[FILEPATH]) - 15) from [dbo].[TemplateDocuments] [TD] where [TD].[FILEPATH] LIKE 'C:\%AzurePrecedents%' SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertFollowupActions' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertFollowupActions] END GO CREATE PROCEDURE [dbo].[KAAS_InsertFollowupActions] (@Action VARCHAR(15), @NextAction VARCHAR(15), @Decision VARCHAR(6), @Optional VARCHAR(1), @WhenType VARCHAR(7), @When DECIMAL(7,2), @OldNextAction VARCHAR(15), @InsertStatus VARCHAR(5), @SUFFilePrefix VARCHAR(5), @SUFFieldName VARCHAR(30), @SUFComparison VARCHAR(8), @SUFValue VARCHAR(MAX)) /************************************************************************************************************* * This procedure is used to Add or Update Follow Up Action * * * * Stored Procedure Name : [dbo].[KAAS_InsertFollowupActions] * * Copied from : [dbo].[Ky_NetInsertFollowupActions2] * * Modification History : * * 2023-06-21 Nithyanandham M Created * *************************************************************************************************************/ AS BEGIN SET NOCOUNT ON IF ISNULL(@Optional, 'N') <> 'Y' BEGIN SET @Optional = 'N' END ELSE BEGIN SET @Optional = 'Y' END SET @SUFComparison = CASE ISNULL(@SUFComparison, 'is') WHEN 'is not' THEN 'is not' WHEN 'like' THEN 'like' WHEN 'not like' THEN 'not like' ELSE 'is' END IF(@InsertStatus = 'True') BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateNextActions] [TNA] WHERE [TNA].[ACTION] = @Action AND [TNA].[NEXTACTION] = @NextAction ) BEGIN IF @SUFFilePrefix IS NULL BEGIN INSERT INTO [dbo].[TemplateNextActions] ([ACTION], [NEXTACTION], [DECISION], [OPTIONAL], [WHENTYPE], [WHEN]) VALUES(@Action, @NextAction, @Decision, @Optional, @WhenType, @When ) END ELSE BEGIN INSERT INTO [dbo].[TemplateNextActions] ([ACTION], [NEXTACTION], [DECISION], [OPTIONAL], [WHENTYPE], [WHEN], [SUFFilePrefix], [SUFFieldName], [SUFComparison], [SUFVALUE]) VALUES(@Action, @NextAction, @Decision, @Optional, @WhenType, @When, @SUFFilePrefix, @SUFFieldName, @SUFComparison, @SUFValue) END SELECT 'True' END ELSE BEGIN SELECT 'This Followup action already exists.' END END ELSE BEGIN IF(@NextAction = @OldNextAction) BEGIN UPDATE [TNA] SET [TNA].[NEXTACTION] = @NextAction, [TNA].[DECISION] = @Decision, [TNA].[OPTIONAL] = @Optional, [TNA].[WHENTYPE] = @WhenType, [TNA].[WHEN] = @When, [TNA].[SUFFilePrefix] = CASE WHEN @Optional = 'N' THEN '' WHEN @SUFFilePrefix IS NULL THEN [TNA].[SUFFilePrefix] ELSE @SUFFilePrefix END, [TNA].[SUFFieldname] = CASE WHEN @Optional = 'N' THEN '' WHEN @SUFFilePrefix IS NULL THEN [TNA].[SUFFieldname] ELSE @SUFFieldName END, [TNA].[SUFComparison] = CASE WHEN @Optional = 'N' THEN 'is' WHEN @SUFFilePrefix IS NULL THEN [TNA].[SUFComparison] ELSE @SUFComparison END, [TNA].[SUFValue] = CASE WHEN @Optional = 'N' THEN NULL WHEN @SUFFilePrefix IS NULL THEN [TNA].[SUFValue] ELSE @SUFValue END FROM [dbo].[TemplateNextActions] [TNA] WHERE [TNA].[ACTION] = @Action AND [TNA].[NEXTACTION] = @OldNextAction SELECT 'True' END ELSE BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateNextActions] [TNA] WHERE [TNA].[ACTION] = @Action AND [TNA].[NEXTACTION] = @NextAction) BEGIN SELECT 'This Followup action already exists.' END ELSE BEGIN UPDATE [TNA] SET [TNA].[NEXTACTION] = @NextAction, [TNA].[DECISION] = @Decision, [TNA].[OPTIONAL] = @Optional, [TNA].[WHENTYPE] = @WhenType, [TNA].[WHEN] = @When, [TNA].[SUFFilePrefix] = CASE WHEN @Optional = 'N' THEN '' WHEN @SUFFilePrefix IS NULL THEN [TNA].[SUFFilePrefix] ELSE @SUFFilePrefix END, [TNA].[SUFFieldname] = CASE WHEN @Optional = 'N' THEN '' WHEN @SUFFilePrefix IS NULL THEN [TNA].[SUFFieldname] ELSE @SUFFieldName END, [TNA].[SUFComparison] = CASE WHEN @Optional = 'N' THEN 'is' WHEN @SUFFilePrefix IS NULL THEN [TNA].[SUFComparison] ELSE @SUFComparison END, [TNA].[SUFValue] = CASE WHEN @Optional = 'N' THEN NULL WHEN @SUFFilePrefix IS NULL THEN [TNA].[SUFValue] ELSE @SUFValue END FROM [dbo].[TemplateNextActions] [TNA] WHERE [TNA].[ACTION] = @Action AND [TNA].[NEXTACTION] = @OldNextAction SELECT 'True' END END END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_InsertIntellisense]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_InsertIntellisense] GO CREATE PROCEDURE [KAAS_InsertIntellisense] ( @Handler VARCHAR(6), @Narrative VARCHAR(100) ) AS /******************************************************************************************************* * This procedure is used To insert & update the Intellisense. * * * * Stored Procedure Name : [dbo].[KAAS_InsertIntellisense] * * Copied from : [dbo].[ky_NETInsertIntellisense] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS(SELECT TOP 1 * FROM Intellisense WHERE Handler = @Handler AND Narrative = @Narrative ) BEGIN INSERT INTO Intellisense ([Handler] ,[Narrative]) VALUES (@Handler, @Narrative ) SELECT RTRIM(Id) AS Id, RTRIM(Handler) AS Handler, RTRIM(Narrative) AS Narrative FROM Intellisense WHERE Handler = @Handler ORDER by Narrative END ELSE BEGIN SELECT RTRIM(Id) AS Id, RTRIM(Handler) AS Handler, RTRIM(Narrative) AS Narrative FROM Intellisense WHERE Handler = @Handler ORDER by Narrative END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertMatterChargeOutRates' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertMatterChargeOutRates] END GO CREATE PROCEDURE [dbo].[KAAS_InsertMatterChargeOutRates] (@MatterCode VARCHAR(20), @ClientCode VARCHAR(20), @FeCode VARCHAR(10), @Rate DECIMAL(18, 2), @EffectiveDate DATETIME, @ModifyBy VARCHAR(10), @LastRate DECIMAL(18, 2), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert matter charge out rates. * * * * Stored Procedure Name : [dbo].[KAAS_InsertMatterChargeOutRates] * * Copied from : [dbo].[ky_NETMATInsertMatterChargeOutRates] * * * * Modification History : * * 2019-05-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[MatterChargeOutRates] MCOR WHERE [MCOR].[ClientCode] = @ClientCode AND [MCOR].[MatterCode] = @MatterCode AND [MCOR].[FeCode] = @FeCode) BEGIN INSERT INTO [dbo].[MatterChargeOutRates] ([ClientCode], [MatterCode], [FeCode], [Rate], [EffectiveDate], [ModifyBy], [LastRate], [ModifyDate]) VALUES(@ClientCode, @MatterCode, @FeCode, @Rate, @EffectiveDate, @ModifyBy, @LastRate, GETUTCDATE()) UPDATE [MAT] SET [MAT].[ChargeOutRateInd] = 'Y' FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @MatterCode --UPDATE TIME ENTRY BASED ON NEW ENTRY UPDATE [TIE] SET [TIE].[RATE] = @Rate, [TIE].[CHARGE] = ([TIE].[TIME] / 60.00) * @Rate FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[TimeEntry] [TIE] INNER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [TIE].[FEEEARN] AND ( [HAN].[CODE] = @FeCode OR [HAN].[ChargeGroup] = @FeCode) ON [TIE].[Matter] = [MAT].[Code] AND ISNULL([TIE].[BILLED], 0) = 0 AND [TIE].[TimeOrCharge] = 'T' AND [TIE].[Date] >= @EffectiveDate AND ISNULL([TIE].[InvoiceNo], 0) = 0 WHERE [MAT].[Code] = @MatterCode SET @Result = 1 END ELSE BEGIN SET @Result = 2 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertMattersEstimatedFee' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertMattersEstimatedFee] END GO CREATE PROCEDURE [dbo].[KAAS_InsertMattersEstimatedFee] ( @RecordID INT, @MatterCode VARCHAR(20), @EstimatedDate DATETIME, @EstimatedFee DECIMAL(18,2), @FeeType INT) AS /******************************************************************************************************* * This SP used to Insert or update the matters Estimated fee details * * * * Stored Procedure Name : [dbo].[KAAS_InsertMattersEstimatedFee] * * Copied from : [dbo].[ky_NETInsertMattersEstimatedFee] * * * * Modification History : * * 2019-05-22 Vinodhan K Created * 2021-01-28 Ghayathri Modified (Added New Fee Type Column for insert and update) *******************************************************************************************************/ BEGIN IF(@RecordID = 0) BEGIN INSERT INTO MattersEstimatedFees(MatterCode, EstimatedBillDate, EstimatedFeesamt, FeeType) VALUES (@MatterCode , @EstimatedDate, @EstimatedFee, @FeeType ) END ELSE BEGIN UPDATE MattersEstimatedFees SET MatterCode = @MatterCode, EstimatedBillDate = @EstimatedDate, EstimatedFeesamt = @EstimatedFee, FeeType = @FeeType WHERE RecordID = @RecordID END END GO IF OBJECT_ID(N'KAAS_InsertOfficers',N'P')IS NOT NULL DROP PROCEDURE KAAS_InsertOfficers GO CREATE PROCEDURE KAAS_InsertOfficers (@Contactcode VARCHAR(8), @OfficerCode VARCHAR(8), @Name VARCHAR(30), @CoSecretary BIT, @Appointed DATETIME, @Resigned DATETIME, @Result BIT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to Insert Officers details. * * * * Stored Procedure Name : [dbo].[KAAS_InsertOfficers] * * Copied from : [dbo].[ky_NETInsertOfficers] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS(SELECT TOP 1 1 FROM Officers WHERE CONTACTCODE=@Contactcode AND CONTACTOFFICER = @OfficerCode AND NAME = @Name AND COSECRETARY = (CASE WHEN @CoSecretary = 'True' THEN 'Y' ELSE 'N' END) AND DATEAPPOINTED = @Appointed AND DATERESIGNED = @Resigned) BEGIN INSERT INTO Officers (CONTACTCODE, CONTACTOFFICER, NAME, COSECRETARY, DATEAPPOINTED, DATERESIGNED) VALUES (@Contactcode, @OfficerCode, @Name, (CASE WHEN @CoSecretary = 'True' THEN 'Y' ELSE 'N' END), @Appointed, @Resigned) SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_InsertOrUpdateAssociateUDF', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_InsertOrUpdateAssociateUDF] END GO CREATE PROCEDURE [dbo].[KAAS_InsertOrUpdateAssociateUDF] ( @NAMECODE VARCHAR(200), @FILEPREFIX VARCHAR(200), @FIELDNAME VARCHAR(200), @Text VARCHAR(MAX), @Number DECIMAL(18,2), @Date DATETIME, @ADDIFMISSING BIT = 0) AS /******************************************************************************************************* * Updates an associate UDF (or inserts if specified). * * * * Stored Procedure Name : [dbo].[KAAS_InsertOrUpdateAssociateUDF] * * Copied from : [dbo].[ky_NETInsertOrUpdateAssociateUDF] * * * * Modification History : * * 2019-06-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF @Date = CONVERT(DATETIME, '') BEGIN SET @Date = NULL END ELSE IF YEAR(@Date) < 1901 BEGIN SET @Date = NULL END ELSE BEGIN SET @DATE = CONVERT(DATETIME, CONVERT(VARCHAR, @Date, 112)) END IF RTRIM(ISNULL(@Text, '')) = '' BEGIN /* @ADDIFMISSING is used to determine if the UDF was just added (and so 0-valued numerics should have blank text) or we're updating an existing field This means rather than have two procs (InsertOrUpdate and Update) we can have the one The two procedures in question are: ky_NETOtherCaseDetailsUpdate AND ky_NETUDFAnswerInsertorUpdate The first is used when users set UDF values in the framework. The second is used by the doc gen to set UDF values */ IF @Date IS NULL AND @Number IS NULL AND @ADDIFMISSING = 1 BEGIN SET @Text = '' END ELSE IF @Number = 0.00 AND @Date IS NULL AND @ADDIFMISSING = 0 BEGIN SET @Text = '' END ELSE IF @Date IS NULL AND @Number = 0 AND @ADDIFMISSING = 1 BEGIN SET @Text = CASE (SELECT [SUF].[TYPE] FROM [dbo].[SystemUserDefinedFields] AS [SUF] WHERE [SUF].[FILEPREFIX] = @FILEPREFIX AND [SUF].[FIELDNAME] = @FIELDNAME) WHEN 'Date' THEN '' WHEN 'Text' THEN @Text ELSE CONVERT(VARCHAR(30), @Number) END END ELSE IF @Date IS NULL BEGIN IF (SELECT [SUF].[TYPE] FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] = @FILEPREFIX AND [SUF].[FIELDNAME] = @FIELDNAME) <> 'Text' BEGIN SET @Text = CONVERT(VARCHAR(30), @Number) END END ELSE BEGIN SET @Number = [dbo].[KAAS_FN_ConvertDateToClarion](@Date) SET @Text = CONVERT(VARCHAR(30), @Number) END END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[AssociateUDF] AS AUD WHERE AUD.[NameCode] = @NAMECODE AND AUD.[FilePrefix] = @FILEPREFIX AND AUD.[FieldName] = @FIELDNAME) BEGIN UPDATE AUD SET AUD.[TextValue] = @Text, AUD.[NumberValue] = @Number, AUD.[DateValue] = @Date FROM [dbo].[AssociateUDF] AS AUD WHERE AUD.[NameCode] = @NAMECODE AND AUD.[FilePrefix] = @FILEPREFIX AND AUD.[FieldName] = @FIELDNAME END ELSE BEGIN IF @ADDIFMISSING = 1 BEGIN INSERT INTO [dbo].[AssociateUDF] ( [NameCode], [FilePrefix], [FieldName], [TextValue], [NumberValue], [DateValue]) SELECT @NAMECODE, @FILEPREFIX, @FIELDNAME, @Text, @Number, @Date END END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertOrUpdateBriefStatus' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertOrUpdateBriefStatus] END GO --SP_helpText 'KAAS_InsertOrUpdateBriefStatus' CREATE PROCEDURE [dbo].[KAAS_InsertOrUpdateBriefStatus]( @WebJobId VARCHAR(50)=NULL, @CreatedTime DATETIME=NULL, @ExpirationTime DATETIME=NULL, @BriefId INT, @Status VARCHAR(20)='', @NoOfDocument INT=0, @Completed INT=0, @Action VARCHAR(30)) AS /************************************************************************************************************* * Stored Procedure Name : [dbo].[KAAS_InsertOrUpdateBriefStatus] * * * * Insert Queue message id with status of brief * * * * Modification History * * 2019-10-22 Ganapathy T Created * * * *************************************************************************************************************/ BEGIN IF(@Action = 'Insert') BEGIN INSERT INTO [dbo].[BriefBuildingWebJobStatus] (WebJobId, CreatedTime, ExpirationTime, BriefId, [Status], NoOfDocument, Completed ) VALUES (@WebJobId, @CreatedTime, @ExpirationTime, @BriefId, @Status, @NoOfDocument, @Completed) END ELSE IF (@Action = 'UpdateTotalDocument') BEGIN UPDATE [dbo].[BriefBuildingWebJobStatus] SET NoOfDocument = @NoOfDocument WHERE BriefId = @BriefId END ELSE IF (@Action = 'UpdateCompletedDocument') BEGIN UPDATE [dbo].[BriefBuildingWebJobStatus] SET Completed = @Completed WHERE BriefId = @BriefId END ELSE IF (@Action = 'UpdateStatus') BEGIN UPDATE [dbo].[BriefBuildingWebJobStatus] SET [Status] = @Status WHERE BriefId = @BriefId END ELSE IF (@Action = 'Select') SELECT * FROM [dbo].[BriefBuildingWebJobStatus] WHERE BriefId = @BriefId END GO IF OBJECT_ID (N'KAAS_InsertORUpdateUDFDetails',N'P') IS NOT NULL DROP PROCEDURE KAAS_InsertORUpdateUDFDetails GO CREATE PROCEDURE KAAS_InsertORUpdateUDFDetails @FORMID INT, @HANDLER VARCHAR(10), @CASECODE VARCHAR(20) AS /******************************************************************************************************* * This procedure is used to insert or update relation between UDF's form and case code. * * * * * * Stored Procedure Name : [dbo].[KAAS_InsertORUpdateUDFDetails] * * Copied from : [dbo].[KY_NETInsertORUpdateUDFDetails] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS (SELECT TOP 1 1 FROM UDFFormCaseRelation WHERE HANDLER=@HANDLER AND casecode=@CASECODE ) BEGIN UPDATE UDFFormCaseRelation SET Formid =@FORMID WHERE HANDLER=@HANDLER AND casecode=@CASECODE END ELSE BEGIN INSERT INTO UDFFormCaseRelation (Formid ,handler ,casecode ) VALUES (@FORMID ,@HANDLER ,@CASECODE ) END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertTasksAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertTasksAction] END GO CREATE PROCEDURE [KAAS_InsertTasksAction] ( @CASECODE VARCHAR(20), @FNCODE VARCHAR(10), @TEAMCODE VARCHAR(10), @Result INT OUTPUT ) /******************************************************************************************************* * This sp used to insert blank action. * * * * Stored Procedure Name : [dbo].[KAAS_InsertTasksAction] * * Copied from : [dbo].[ky_NETInsertTasksAction] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON --Diary DECLARE @TIMECONVERT INT SET @TIMECONVERT = dbo.ky_ConvertTimeToClarion(GETDATE()) DECLARE @ACTIONID INT --Pino 2015-09-30 Start EXEC @ACTIONID = [dbo].[KAAS_GetNextActionID] --SET @ACTIONID = (SELECT ISNULL(MAX(ACTIONID + 1), 1) FROM [dbo].[diary]) --Pino 2015-09-30 End INSERT INTO [dbo].[diary] ([CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [DURATION], [ACTIONID], [ORGINALACTIONID], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [ADDRESSTO], [CCTo], [BCCTo], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo], [DisplayText], [Flag]) VALUES(@CASECODE, GETDATE(), 0, null, null, null, null, @FNCODE, @TEAMCODE, null, null, null, null, null, null, null, null, @TIMECONVERT, @TIMECONVERT, 0, @ACTIONID, 0, null, null, null, null, 0, 0, 0, null, null, null, null, null, null, null, 0, 0, 0, 0, null, 'Not Applicable', null, null, 0, null, 0) INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@ACTIONID, @FNCODE, @TEAMCODE, GETDATE(), @TIMECONVERT, null, @TIMECONVERT, GETDATE(), @TIMECONVERT, null, 0, 'Y', @FNCODE, 0, null, @FNCODE, null, 'Created') SET @Result = @ACTIONID SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertTasksActionPhoneLog' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertTasksActionPhoneLog] END GO CREATE PROCEDURE [KAAS_InsertTasksActionPhoneLog] ( @CASECODE VARCHAR(20), @FNCODE VARCHAR(10), @TEAMCODE VARCHAR(10), @Result INT OUTPUT ) /******************************************************************************************************* * This sp used to insert blank action. * * * * Stored Procedure Name : [dbo].[KAAS_InsertTasksActionPhoneLog] * * Copied from : [dbo].[KAAS_InsertTasksAction] * * * * Modification History : * * 2023-10-30 Sadiq Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON --Diary DECLARE @TIMECONVERT INT SET @TIMECONVERT = dbo.ky_ConvertTimeToClarion(GETDATE()) DECLARE @ACTIONID INT --Pino 2015-09-30 Start EXEC @ACTIONID = [dbo].[KAAS_GetNextActionID] --SET @ACTIONID = (SELECT ISNULL(MAX(ACTIONID + 1), 1) FROM [dbo].[diary]) --Pino 2015-09-30 End INSERT INTO [dbo].[diary] ([CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [DURATION], [ACTIONID], [ORGINALACTIONID], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [ADDRESSTO], [CCTo], [BCCTo], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo], [DisplayText], [Flag]) VALUES(@CASECODE, GETDATE(), 0, null, null, null, null, @FNCODE, @TEAMCODE, null, null, null, null, null, null, null, null, @TIMECONVERT, @TIMECONVERT, 0, @ACTIONID, 0, null, null, null, null, 0, 0, 0, null, null, null, null, null, null, null, 0, 0, 0, 0, null, 'Not Applicable', null, null, 0, null, 0) SET @Result = @ACTIONID SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertUndertakings' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertUndertakings] END GO CREATE PROCEDURE [dbo].[KAAS_InsertUndertakings] (@CaseCode VARCHAR(20), @UserCode VARCHAR(10), @UndertakingsDate DATETIME, @DischargeDate DATETIME = NULL, @DischargeDescription VARCHAR(100), @DiaryWarningDate DATETIME, @Type VARCHAR(1), @GivenReceived VARCHAR(1), @CommercialOrNon VARCHAR(1), @FeeEarner VARCHAR(10), @UndertakingTo VARCHAR(20), @UndertakingToName VARCHAR(100), @Who VARCHAR(200), @Details VARCHAR(500), @Notes VARCHAR(3000), @Value DECIMAL(13, 2), @DealingNo VARCHAR(40), @Status VARCHAR(30), @Edit INT, @RecordId INT, @Ledger BIT, @UserName VARCHAR(200), @Category VARCHAR(3), @IsConditional BIT, @Condition VARCHAR(100), @NeedsAttention BIT, @Result INT OUTPUT, @UndertakingID INT OUTPUT) AS /******************************************************************************************************* * To insert value into the undertaking table for undertaking window. * * * * Stored Procedure Name : [dbo].[KAAS_InsertUndertakings] * * Copied from : [dbo].[ky_NETInsertUndertakings] * * * * Modification History : * * 2019-06-17 Vinodhan K Created * * 2019-08-19 Dheepin Vijith K Modified - Conversion size for the field "@Value" is changed to 20 * * 2020-04-09 Ganapathy UndertakingDate, Discharge Date Timezone added * * 2021-05-07 Aakif Included time zone conversion based on handler while inserting and updating [Diary] [Date] and [DueDate] * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @SEQ SMALLINT DECLARE @TEAM VARCHAR(20) DECLARE @TypeFull VARCHAR(20) DECLARE @GivenReceivedFull VARCHAR(20) DECLARE @GivenReceivedFullOld VARCHAR(20) DECLARE @CommercialFull VARCHAR(25) DECLARE @CommercialOLD VARCHAR(25) DECLARE @FeeName VARCHAR(200) DECLARE @Description VARCHAR(MAX) DECLARE @FullDesc VARCHAR(MAX) DECLARE @FullDescOld VARCHAR(MAX) DECLARE @StatusID INT DECLARE @ClarionNOW INT SET @ClarionNOW = dbo.ky_ConvertTimeToClarion(GETUTCDATE()) SET @Details = RTRIM(ISNULL(@Details, '')) SET @FeeEarner = RTRIM(ISNULL(@FeeEarner, '')) SET @Type = RTRIM(ISNULL(@Type, '')) SET @GivenReceived = RTRIM(ISNULL(@GivenReceived, '')) SET @UndertakingTo = RTRIM(ISNULL(@UndertakingTo, '')) SET @Who = RTRIM(ISNULL(@Who, '')) SET @Status = RTRIM(ISNULL(@Status, '')) SET @DealingNo = RTRIM(ISNULL(@DealingNo, '')) SET @CaseCode = RTRIM(ISNULL(@CaseCode, '')) SET @UserCode = RTRIM(ISNULL(@UserCode, '')) SET @UserName = RTRIM(ISNULL(@UserName, '')) SET @Value = ISNULL(@Value, 0) SET @NeedsAttention = ISNULL(@NeedsAttention, 0) DECLARE @Status1 INT SET @Status1 = 0 IF (@Ledger = 1) BEGIN IF(@Edit = 1) BEGIN DECLARE @UndertakingDATE1 DATETIME DECLARE @WarningDATE1 DATETIME DECLARE @TYPE1 VARCHAR(1) DECLARE @GivenorReceived1 VARCHAR(1) DECLARE @CommercialNon1 VARCHAR(1) DECLARE @Value1 DECIMAL(13, 2) DECLARE @UStatus1 VARCHAR(30) DECLARE @DeelingNo1 VARCHAR(40) DECLARE @DESC1 VARCHAR(500) DECLARE @AuthorisedByFE VARCHAR(10) DECLARE @ActionID1 INT SELECT @DESC1 = RTRIM(ISNULL([DESCRIPTION],'')), @UndertakingDATE1 = [DATE],@TYPE1 = [TYPE], @GivenorReceived1 = [GivenOrReceived], @CommercialNon1 = [CommercialorNon], @Value1 = VALUE, @UStatus1 = [Status], @DeelingNo1 = DealingNumber, @AuthorisedByFE = RTRIM(AuthorisedByFE) FROM Undertakings WHERE matter = @CaseCode AND RECORDID = @RecordId SELECT @StatusID = recordid from UndertakingStatus where RTRIM(StatusDesc) = @Status SELECT @ActionID1 = ActionID FROM Undertakings WHERE RECORDID = @RecordId SET @WarningDATE1 = (SELECT TOP 1 CONVERT(VARCHAR(11),DEL.[DATE]) AS [DATE] FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ActionID] = @ActionID1 ORDER BY DEL.[AssignNo] DESC) --IF NOT(RTRIM(@DESC1) = RTRIM(@Details) AND @Value = @Value1 AND @FeeEarner = @AuthorisedByFE AND CONVERT(VARCHAR(25),@UndertakingsDate) = CONVERT(VARCHAR(25),@UndertakingDATE1) AND @GivenorReceived1 = @GivenReceived AND @CommercialOrNon = @CommercialNon1 AND @Type = @TYPE1 AND @DealingNo = @DeelingNo1 AND @UStatus1 = @StatusID AND @WarningDATE1 = CONVERT(VARCHAR(20),@DiaryWarningDate)) IF NOT(RTRIM(@DESC1) = RTRIM(@Details) AND @Value = @Value1 AND @FeeEarner = @AuthorisedByFE AND CONVERT(VARCHAR(11),@UndertakingsDate) = CONVERT(VARCHAR(11),@UndertakingDATE1) AND @GivenorReceived1 = @GivenReceived AND @CommercialOrNon = @CommercialNon1 AND @Type = @TYPE1 AND @DealingNo = @DeelingNo1 AND @UStatus1 = @StatusID AND CONVERT(VARCHAR(11),@WarningDATE1) = CONVERT(VARCHAR(11),@DiaryWarningDate)) BEGIN SET @Status1 = 1 END END ELSE BEGIN SET @Status1 = 1 END END SELECT @StatusID = UNS.[RecordID] FROM [dbo].[UndertakingStatus] UNS WHERE RTRIM(UNS.[StatusDesc]) = RTRIM(@Status) SET @SEQ = 0 SELECT @TEAM = HAN.[TEAM], @FeeName = HAN.[NAME] FROM [dbo].[Handlers] HAN WHERE HAN.[CODE] = @FeeEarner SET @TEAM = RTRIM(ISNULL(@TEAM, '')) SET @FeeName = RTRIM(ISNULL(@FeeName, '')) SET @TypeFull = CASE WHEN @Type = 'F' THEN 'Financial' ELSE 'Documents' END SET @GivenReceivedFull = CASE WHEN @GivenReceived = 'G' THEN 'Given' ELSE 'Received' END SET @CommercialFull = CASE WHEN @CommercialOrNon = 'N' THEN 'Non Commercial' ELSE 'Commercial' END DECLARE @ACTIONID2 INT -- Pino 2015-09-30 Start EXEC @ACTIONID2 = [dbo].[KAAS_GetNextActionID] --SELECT @ACTIONID2 = ISNULL(MAX([DIA].[ACTIONID]), 0) + 1 -- FROM [dbo].[diary] DIA -- Pino 2015-09-30 End SET @FullDesc = 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME,@UndertakingsDate),106) + CHAR(13) + CHAR(10) + 'Type: ' + @TypeFull + ' ' + @GivenReceivedFull + ' ' + @CommercialFull + CHAR(13) + CHAR(10) + 'Authorised By: ' + @FeeEarner + ' ' + @FeeName + CHAR(13) + CHAR(10) + 'Undertaking to: ' + @UndertakingTo + '(' + @UndertakingToName + ')' + CHAR(13) + CHAR(10) + 'Details: ' + @Details + CHAR(13) + CHAR(10) + 'Who: ' + @Who + CHAR(13) + CHAR(10) + 'Value: ' + CONVERT(VARCHAR(20),@Value) + CHAR(13) + CHAR(10) + 'Status: '+ @Status + CHAR(13) + CHAR(10) + 'Dealing Number: ' + @DealingNo + CHAR(13) + CHAR(10) SET @Description = 'Undertaking Created: ' + CHAR(13) + CHAR(10) + @FullDesc IF (@Edit = 0) BEGIN INSERT INTO [dbo].[diary] ([CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [DisplayText], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [IMAGENO], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [DURATION], [ACTIONID], [ORGINALACTIONID], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [ADDRESSTO], [CCTo], [BCCTo], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo]) VALUES(@CaseCode, --CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME,@DiaryWarningDate), 112) + ' ' + CONVERT(VARCHAR, GETUTCDATE(), 108)), dbo.KAAS_FNConvertDateToUTC(@DiaryWarningDate, @FeeEarner), 0, 'ADMUD', 'NA', 'U', 'I', @FeeEarner, @TEAM, @Description, [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @Description), ''), 200), NULL, '', NULL, NULL, '', --CASE ISNULL(@UndertakingsDate,'') WHEN '' THEN NULL ELSE CONVERT(DATETIME, @UndertakingsDate,112) END, CASE ISNULL(@UndertakingsDate,'') WHEN '' THEN NULL ELSE dbo.KAAS_FNConvertDateToUTC(@DiaryWarningDate, @FeeEarner) END, 0, 'N', @ClarionNOW, @ClarionNOW, 0, @ACTIONID2, @ACTIONID2, CASE @NeedsAttention WHEN 1 THEN 'H' ELSE 'N' END, '', @UserCode, '', 0, 0, 0, '', '', '', '', '', '', @Details, 0, 0, 0, 0, NULL, '', '', NULL, 0) INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@ACTIONID2, @FeeEarner, @TEAM, CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME,@DiaryWarningDate), 112) + ' ' + CONVERT(VARCHAR, GETUTCDATE(), 108)), @ClarionNOW, NULL, '', CONVERT(DATETIME, @UndertakingsDate ,112), @ClarionNOW, '', 0, 'Y', @UserCode, 0, 'U', @UserCode, '', 'Created') INSERT INTO [dbo].[UndertakingLog] ([UndertakingID], [FieldChanges], [FromValue], [ToValue], [ByWho], [ModifiedDate]) VALUES(@ACTIONID2, 'New Undertakings Created', @Description, ' - NIL - ', @UserName, CONVERT(DATETIME,GETUTCDATE(),112)) END -- IF (@Edit = 0) IF (@Edit = 1 OR @Edit = 2) BEGIN DECLARE @ACTIONIDORG INT DECLARE @GetAction INT DECLARE @EditText VARCHAR(MAX) SELECT @ACTIONIDORG = UND.[ActionID] FROM [dbo].[Undertakings] UND WHERE UND.[RECORDID] = @RecordId SELECT @EditText = DIA.[TEXT1] FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @ACTIONIDORG DECLARE @TypeFullOLD VARCHAR(20) DECLARE @GivenReceivedOLD VARCHAR(20) DECLARE @FeeEarnerOLD VARCHAR(20) DECLARE @FeeNameOLD VARCHAR(200) DECLARE @UndertakingToOLD VARCHAR(20) DECLARE @DetailsOLD VARCHAR(100) DECLARE @UndertakingToNameOLD VARCHAR(100) DECLARE @WhoOLD VARCHAR(200) DECLARE @ValueOLD DECIMAL(13, 2) DECLARE @StatusOLD VARCHAR(30) DECLARE @DealingNoOLD VARCHAR(40) DECLARE @UndertakingsDateOLD VARCHAR(11) DECLARE @DiaryWarningDateOLD VARCHAR(11) SELECT @TypeFullOLD = CASE WHEN RTRIM(ISNULL(UND.[TYPE], '')) = 'F' THEN 'Financial' ELSE 'Documents' END, @GivenReceivedOLD = CASE WHEN RTRIM(ISNULL(UND.[GivenOrReceived], '')) = 'G' THEN 'Given' ELSE 'Received' END, @CommercialOLD = CASE WHEN RTRIM(ISNULL(UND.[CommercialOrNon],'C')) = 'N' THEN 'Non Commercial' ELSE 'Commercial' END, @FeeEarnerOld = RTRIM(ISNULL(UND.[AuthorisedByFE], '')), @FeeNameOLD = RTRIM(ISNULL(HAN.[NAME], '')), @UndertakingToOLD = RTRIM(ISNULL(UND.[UndertakingTo], '')), @DetailsOLD = RTRIM(ISNULL(UND.[DESCRIPTION], '')), @WhoOLD = RTRIM(ISNULL(UND.[WHO], '')), @ValueOLD = ISNULL(UND.[VALUE], 0), @StatusOLD = RTRIM(ISNULL(UNS.[StatusDesc], '')), @DealingNoOLD = ISNULL(UND.[DealingNumber], 0), @UndertakingToNameOLD = RTRIM(ISNULL(CAN.[NAME], '')), @UndertakingsDateOLD = CONVERT(VARCHAR(11),UDEL.[DUEDATE],106), @DiaryWarningDateOLD = CONVERT(VARCHAR(11),UDEL.[DATE],106) FROM [dbo].[Undertakings] UND LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = UND.[AuthorisedByFE] LEFT OUTER JOIN [dbo].[UndertakingStatus] UNS ON UNS.[RecordID] = UND.[Status] LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CAN ON CAN.[CODE] = UND.[UndertakingTo] CROSS APPLY ( SELECT TOP 1 DEL.[DUEDATE], DEL.[DATE] FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = UND.[ActionID] ORDER BY DEL.[DUEDATE] DESC) UDEL WHERE UND.[ActionID] = @ACTIONIDORG IF (@Edit = 1) BEGIN SELECT @GetAction = UND.[ActionID] FROM [dbo].[Undertakings] UND WHERE UND.[RECORDID] = @RecordId SET @EditText = 'Undertaking changed by ' + @UserName + CHAR(13) + CHAR(10) + @FullDesc + CHAR(13) + CHAR(10) + '--------------------------------------------------' + CHAR(13) + CHAR(10) + @EditText SET @GivenReceivedFullOld = CASE WHEN @GivenReceivedOLD = 'G' THEN 'Given' ELSE 'Received' END SET @FullDescOld = 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME,@UndertakingsDateOld),106) + CHAR(13) + CHAR(10) + 'Type: ' + @TypeFullOld + ' ' + @GivenReceivedFullOld + ' ' + @CommercialFull + CHAR(13) + CHAR(10) + 'Authorised By: ' + @FeeEarnerOLD + ' ' + RTRIM(ISNULL(@FeeNameOld, '')) + CHAR(13) + CHAR(10) + 'Undertaking to: ' + @UndertakingToOld + '(' + @UndertakingToNameOld + ')' + CHAR(13) + CHAR(10) + 'Details: ' + @DetailsOld + CHAR(13) + CHAR(10) + 'Who: ' + @WhoOld + CHAR(13) + CHAR(10) + 'Value: ' + Convert(VARCHAR(20), @ValueOld) + CHAR(13) + CHAR(10) + 'Status: '+ @StatusOld + CHAR(13) + CHAR(10) + 'Dealing Number: ' + @DealingNoOLD + CHAR(13) + CHAR(10) IF (@TypeFullOLD <> @TypeFull OR @GivenReceivedOLD <> @GivenReceivedFull OR @CommercialFull <> @CommercialOLD OR @FeeEarnerOLD <> @FeeEarner OR @FeeNameOLD <> @FeeName OR @UndertakingToOLD <> @UndertakingTo OR @DetailsOLD <> @Details OR @WhoOld <> @Who OR Convert(VARCHAR(20), @ValueOld) <> CONVERT(VARCHAR(20),@Value) OR @StatusOld <> @Status OR @UndertakingsDateOLD <> CONVERT(VARCHAR(11),CONVERT(DATETIME,@UndertakingsDate),106) OR @DiaryWarningDateOLD <> CONVERT(VARCHAR(11),CONVERT(DATETIME,@DiaryWarningDate),106) OR @DealingNoOLD <> @DealingNo) -- Compare OLD values to NEW values BEGIN IF ISNULL(@GetAction, 0) <> 0 BEGIN INSERT INTO [dbo].[UndertakingLog] ([UndertakingID], [FieldChanges], [FromValue], [ToValue], [ByWho], [ModifiedDate]) VALUES(@GetAction, 'Undertakings for ' + CHAR(13) + CHAR(10) + @CaseCode + CHAR(13) + CHAR(10) + ' has been changed', 'Undertaking changed From '+ CHAR(13) + CHAR(10) + @FullDescOld, 'Undertaking changed To ' + CHAR(13) + CHAR(10) + @FullDesc, @UserName, CONVERT(DATETIME,GETUTCDATE(),112)) END UPDATE DIA SET DIA.[TEXT1] = @EditText, DIA.[SUBJECT] = @Details FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @ACTIONIDORG END -- Compare OLD values to NEW values END --IF (@Edit = 1) ELSE --NOT: IF (@Edit = 1) BEGIN SELECT @GetAction = UND.[ActionID] FROM [dbo].[Undertakings] UND WHERE UND.[RECORDID] = @RecordId SET @EditText = 'Undertaking Discharged by ' + @UserName + CHAR(13) + CHAR(10) + 'Date: ' + CONVERT(VARCHAR(11), @DischargeDate, 106) + CHAR(13) + CHAR(10) + 'Description : ' + @DischargeDescription + CHAR(13) + CHAR(10) + '--------------------------------------------------' + CHAR(13) + CHAR(10) + @EditText UPDATE DIA SET DIA.[STATUS] = 1 FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @ACTIONIDORG IF ISNULL(@GetAction, 0) <> 0 BEGIN INSERT INTO [dbo].[UndertakingLog] ([UndertakingID], [FieldChanges], [FromValue], [ToValue], [ByWho], [ModifiedDate]) VALUES(@GetAction, 'Undertakings for ' + CHAR(13) + @CaseCode + CHAR(13) + ' has been Discharged', 'Undertaking changed From '+ CHAR(13) + CHAR(10) + @FullDescOld, 'Undertaking changed To ' + CHAR(13) + CHAR(10) + @FullDesc, @UserName, CONVERT(DATETIME,GETUTCDATE(),112)) END UPDATE DIA SET DIA.[TEXT1] = @EditText FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @ACTIONIDORG END --NOT: IF (@Edit = 1) UPDATE DIA SET DIA.[DATE] = CASE ISNULL(@DischargeDate, CONVERT(DATETIME, '')) WHEN CONVERT(DATETIME, '') THEN dbo.KAAS_FNConvertDateToUTC(@DiaryWarningDate, @FeeEarner) ELSE dbo.KAAS_FNConvertDateToUTC(@DischargeDate, @FeeEarner) END, DIA.[FNCODE] = @FeeEarner, DIA.[TEAMCODE] = @TEAM, DIA.[DUEDATE] = CASE @UndertakingsDate WHEN '' THEN NULL ELSE CONVERT(DATETIME, @UndertakingsDate, 112) END, DIA.[ACTIONCODE] = 'ADMUD', DIA.[DYSTARTTIME] = @ClarionNOW, DIA.[DYENDTIME] = @ClarionNOW, DIA.[MILESTEONETYPE] = @UserCode, DIA.[STATUS] = CASE @Edit WHEN 2 THEN 1 ELSE 0 END, DIA.[PRIORITY] = CASE @NeedsAttention WHEN 1 THEN 'H' ELSE 'N' END FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @ACTIONIDORG UPDATE DEL SET DEL.[HANDLER] = @FeeEarner, DEL.[TEAM] = @TEAM, DEL.[DATE] = CASE ISNULL(@DischargeDate, '') WHEN '' THEN CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @DiaryWarningDate), 112) + ' ' --PINO observation 2014-11-07 + CONVERT(VARCHAR, --Why are we adding the current time GETUTCDATE(), --to this date? 108)) ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @DischargeDate), 112) + ' ' --PINO observation 2014-11-07 + CONVERT(VARCHAR, --Why are we adding the current time GETUTCDATE(), --to this date? 108)) END, DEL.[TIME] = @ClarionNOW, DEL.[DATER] = NULL, DEL.[TIMER] = '', DEL.[DUEDATE] = CASE @UndertakingsDate WHEN '' THEN NULL ELSE CONVERT(DATETIME, @UndertakingsDate, 112) END, DEL.[DUETIME] = @ClarionNOW, DEL.[REVIEW] = '', DEL.[OWNER] = 'Y', DEL.[DELEGATE] = @UserCode, DEL.[DELEGATESTATUS] = 0, DEL.[ActionType] = 'U', DEL.[FromHandler] = @UserCode, DEL.[ReturnedBy] = '', DEL.[DelType] = 'Created', DEL.[STATUS] = CASE @Edit WHEN 2 THEN 1 ELSE 0 END FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ACTIONIDORG END -- IF (@Edit = 1 OR @Edit = 2) IF (@Edit = 0) BEGIN SELECT @SEQ = ISNULL(MAX(UND.[SEQ]), 0) + 1 FROM [dbo].[Undertakings] UND WHERE UND.[MATTER] = @CaseCode INSERT INTO [dbo].[Undertakings] ([SEQ], [MATTER], [DATE], [DISCHARGEDATE], [DischargeDescription], [DischargedBy], [TYPE], [DESCRIPTION], [WHO], [VALUE], [ActionID], [GivenOrReceived], [CommercialOrNon], [AuthorisedByFE], [UndertakingTo], [Status], [DealingNumber], [Notes], [Category], [IsConditional], [Condition], [NeedsAttention], [AddCommentLedger]) VALUES(@SEQ, @CaseCode, CONVERT(DATETIME, @UndertakingsDate, 112), CASE WHEN ISNULL(@DischargeDate, CONVERT(DATETIME, '')) = CONVERT(DATETIME, '') THEN NULL ELSE @Dischargedate END, @DischargeDescription, CASE WHEN ISNULL(@DischargeDate, CONVERT(DATETIME, '')) = CONVERT(DATETIME, '') THEN NULL ELSE @UserCode END, @Type, @Details, @Who, @Value, @ACTIONID2, @GivenReceived, @CommercialOrNon, @FeeEarner, @UndertakingTo, @StatusID, @DealingNo, @Notes, @Category, @IsConditional, @Condition, @NeedsAttention, @Ledger) SET @Result = 1 END -- IF (@Edit = 0) ELSE -- NOT IF (@Edit = 0) BEGIN UPDATE UND SET UND.[MATTER] = @CaseCode, UND.[DATE] = CONVERT(DATETIME, @UndertakingsDate, 112), UND.[DISCHARGEDATE] = CASE WHEN ISNULL(@DischargeDate, CONVERT(DATETIME, '')) = CONVERT(DATETIME, '') THEN NULL ELSE @Dischargedate END, UND.[TYPE] = @Type, UND.[DESCRIPTION] = @Details, UND.[WHO] = @Who, UND.[VALUE] = @Value, UND.[DischargeDescription] = @DischargeDescription, UND.[GivenOrReceived] = @GivenReceived, UND.[CommercialOrNon] = @CommercialOrNon, UND.[AuthorisedByFE] = @FeeEarner, UND.[UndertakingTo] = @UndertakingTo, UND.[Status] = @StatusID, UND.[DealingNumber] = @DealingNo, UND.[Notes] = @Notes, UND.[Category] = @Category, UND.[IsConditional] = @IsConditional, UND.[Condition] = @Condition, UND.[NeedsAttention] = @NeedsAttention, UND.[AddCommentLedger] = @Ledger FROM [dbo].[Undertakings] UND WHERE UND.[RECORDID] = @RecordId SET @Result = 2 SELECT @SEQ = UND.[SEQ] FROM [dbo].[Undertakings] UND WHERE UND.[RECORDID] = @RecordId END -- NOT IF (@Edit = 0) IF(@Status1 = 1) BEGIN BEGIN DECLARE @Narratives VARCHAR(80) DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @YEAR INT DECLARE @PERIOD INT IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT @YEAR = [CTL].[YEAR], @PERIOD = [CTL].[CURPER] FROM [dbo].[control] [CTL]' END ELSE BEGIN SET @NCOMMAND = N' SELECT @YEAR = [CTL].[NumValue] FROM [dbo].[CtrlNum] [CTL] WHERE [CTL].[Code] = ''CurYear'' SELECT @PERIOD = [CTL].[NumValue] FROM [dbo].[CtrlNum] [CTL] WHERE [CTL].[Code] = ''CurPeriod''' END EXEC sp_executesql @NCOMMAND, N'@YEAR INT OUTPUT, @PERIOD INT OUTPUT', @YEAR OUTPUT, @PERIOD OUTPUT SET @YEAR = ISNULL(@YEAR, DATEPART(YEAR, GETUTCDATE())) SET @PERIOD = ISNULL(@PERIOD, DATEPART(YEAR, GETUTCDATE())) IF (@Edit = 2) BEGIN SET @Narratives = 'Undertaking No:'+ CAST(@SEQ AS VARCHAR(10)) +' DISCHARGED: '+ CAST (@Details AS VARCHAR(40)) END ELSE BEGIN SET @Narratives = 'Undertaking No:'+ CAST(@SEQ AS VARCHAR(10)) +' : ('+ CAST(@Value AS VARCHAR(20)) +') '+ CAST (@Details AS VARCHAR(40)) END IF dbo.[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' INSERT INTO [dbo].[MatterLedger] ([MATTER], [DATE], [REF], [NARR], [VALUED], [VALUEO], [VALUEC], [FEE], [PER], [YEAR], [CLIENT], [VALUECC], [VALUECD], [DEPOSITTYPE], [CURVALUED], [CURVALUEO], [CURVALUEC], [CURVALUECC], [CURVALUECD], [BILLED], [BILLINGYEAR], [BILLINGPERIOD], [BILLEDOUTLAYVALUE], [INVOICENO], [INCLUDEINBILL]) VALUES(@CaseCode, CASE WHEN @Edit = 2 THEN @DischargeDate ELSE @UndertakingsDate END, @UserCode, @Narratives, 0.00, --[VALUED] 0.00, --[VALUEO] 0.00, --[VALUEC] @CurrentFee, --[Fee] @PERIOD, --[Per] @YEAR, --[Year] '''', --[Client] 0.00, --[VALUECC] 0.00, --[VALUECD] '''', --[DepositType] 0.00, --[CURVALUED] 0.00, --[CURVALUEO] 0.00, --[CURVALUEC] 0.00, --[CURVALUECC] 0.00, --[CURVALUECD] '''', --[Billed] 0, --[BILLINGYEAR] 0, --[BILLINGPERIOD] 0.00, --[BILLEDOUTLAYVALUE] 0, --[INVOICENO] 0) --[INCLUDEINBILL]' END --SAM3 ELSE BEGIN SET @NCOMMAND = N' INSERT INTO [dbo].[Transactions] ([BatchNo], [XnType], [RecType], [LineType], [PostRef], [ParentRef], [TransDate], [MatterCode], [Narrative], [PostingPeriod], [PostingYear], [EntryDate], [UpdateDate], [EnteredBy], [UpdateBy], [Posted], [CorrectionInd]) VALUES(0, ''U'', ''U'', ''U'', 0, 0, CASE WHEN @Edit = 2 THEN @DischargeDate ELSE @UndertakingsDate END, @CaseCode, @Narratives, @PERIOD, @YEAR, GETUTCDATE(), GETUTCDATE(), @CurrentFee, @CurrentFee, ''Y'', ''L'')' END EXEC sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @Edit INT, @DischargeDate DATETIME, @UndertakingsDate DATETIME, @UserCode VARCHAR(10), @Narratives VARCHAR(80), @CurrentFee VARCHAR(10), @YEAR INT, @PERIOD INT', @CaseCode, @Edit, @DischargeDate, @UndertakingsDate, @UserCode, @Narratives, @FeeEarner, @YEAR, @PERIOD END -- NOT IF (@Edit = 0) END SET @UndertakingID = (SELECT MAX(RECORDID) FROM Undertakings) SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InsertUpdateCustomFilterbyUserandPage' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InsertUpdateCustomFilterbyUserandPage] END GO CREATE PROCEDURE [dbo].[KAAS_InsertUpdateCustomFilterbyUserandPage] ( @HandlerCode VARCHAR(50), @PageName VARCHAR(100) = NULL, @FilterName VARCHAR(50), @FilterType VARCHAR(50) = NULL, @ActionType VARCHAR(50), @Priority VARCHAR(50), @Flag VARCHAR(50), @ID INT, @ColumnNames VARCHAR(100), @FilterValues VARCHAR(MAX), @GridViewState NVARCHAR(MAX) = NULL ) AS /************************************************************************************************************* * * * Insert Update Custom Filter details * * * * Stored Procedure : KAAS_InsertUpdateCustomFilterbyUserandPage * * * * * * Modification History * * 2019-12-31 Prabhu Created * * 2020-01-14 Prabhu Added Script to include edit filter functionality * * 2020-02-13 Prabhu.V Modified the SP to Implement filter works with dynamic values * * 2021-12-21 Aakif Included option to add/update grid column details * * 2022-10-07 Revathy Included Action status filter * *************************************************************************************************************/ BEGIN DECLARE @COUNT INT DECLARE @LPTCNT INT=1 DECLARE @COLUMNNAME VARCHAR(50) DECLARE @FilterValue VARCHAR(MAX) DECLARE @FilterNameID INT; IF(@PageName = 'QueryPosting') BEGIN IF EXISTS(SELECT FilterName FROM CustomFilterbyUserandPage WHERE ID = @ID ) BEGIN IF NOT EXISTS(SELECT FilterName FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName AND ID != @ID) BEGIN UPDATE CustomFilterbyUserandPage SET [FilterName] = @FilterName, [GridViewState] = @GridViewState WHERE ID = @ID END SELECT @FilterNameID = ID FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName; UPDATE [dbo].[CustomSavedFilters] SET [Value] = @FilterValues WHERE FilterID = @ID END ELSE BEGIN IF NOT EXISTS(SELECT FilterName FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName) BEGIN INSERT INTO CustomFilterbyUserandPage ( [HandlerCode], [PageName], [FilterName], [CreatedDate], [GridViewState] ) VALUES ( @HandlerCode , @PageName , @FilterName , getdate(), @GridViewState ) END SELECT @FilterNameID = ID FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName; INSERT INTO [dbo].[CustomSavedFilters] ( [FilterID], [FilterColumn], [Value] ) VALUES ( @FilterNameID, '', @FilterValues ) END END ELSE BEGIN IF EXISTS(SELECT FilterName FROM CustomFilterbyUserandPage WHERE ID = @ID ) BEGIN IF NOT EXISTS(SELECT FilterName FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName AND ID != @ID) BEGIN UPDATE CustomFilterbyUserandPage SET [ActionType] = @ActionType, [Priority]= @Priority, [Flag] = @Flag, [FilterName] = @FilterName, [GridViewState] = @GridViewState WHERE ID = @ID END IF @ColumnNames <> '' OR @ColumnNames IS NOT NULL BEGIN SELECT @FilterNameID = ID FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName; SELECT COLUMNNAME,ROWNUMBER INTO #COLUMNTBL FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','VARCHAR(8000)'))) AS COLUMNNAME, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ROWNUMBER FROM ( SELECT CAST('' + REPLACE(@ColumnNames,',','') + '' AS XML) AS X )T CROSS APPLY X.nodes('/XMLROOT/ROWDATA')m(n)) COLUMNTBL SELECT FilterValue,ROWNUMBER INTO #FILTERVALUETBL FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','VARCHAR(8000)'))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ROWNUMBER FROM ( SELECT CAST('' + REPLACE(@FilterValues,'|,','') + '' AS XML) AS X )T CROSS APPLY X.nodes('/XMLROOT/ROWDATA')m(n)) FILTERVALUETBL SELECT @COUNT = COUNT(1) FROM #COLUMNTBL WHILE @LPTCNT <= @COUNT BEGIN SET @FilterValue = '' SELECT @COLUMNNAME = COLUMNNAME FROM #COLUMNTBL WHERE ROWNUMBER = @LPTCNT SELECT @FilterValue = FilterValue FROM #FILTERVALUETBL WHERE ROWNUMBER = @LPTCNT UPDATE [dbo].[CustomSavedFilters] SET [Value] = @FilterValue WHERE FilterID = @ID and [FilterColumn] = @COLUMNNAME SET @LPTCNT = @LPTCNT + 1; END END END ELSE BEGIN IF NOT EXISTS(SELECT FilterName FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName) BEGIN INSERT INTO CustomFilterbyUserandPage ( [HandlerCode], [PageName], [FilterName], [ActionType], [Priority], [Flag], [CreatedDate], [GridViewState] ) VALUES ( @HandlerCode , @PageName , @FilterName , @ActionType, @Priority, @Flag, getdate(), @GridViewState ) IF @ColumnNames <> '' OR @ColumnNames IS NOT NULL BEGIN SELECT @FilterNameID = ID FROM CustomFilterbyUserandPage WHERE [FilterName] = @FilterName AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName; SELECT COLUMNNAME,ROWNUMBER INTO #COLUMNTBLINS FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','VARCHAR(8000)'))) AS COLUMNNAME, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ROWNUMBER FROM ( SELECT CAST('' + REPLACE(@ColumnNames,',','') + '' AS XML) AS X )T CROSS APPLY X.nodes('/XMLROOT/ROWDATA')m(n)) COLUMNTBLINS SELECT FilterValue,ROWNUMBER INTO #FILTERVALUETBLINS FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','VARCHAR(8000)'))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS ROWNUMBER FROM ( SELECT CAST('' + REPLACE(@FilterValues,'|,','') + '' AS XML) AS X )T CROSS APPLY X.nodes('/XMLROOT/ROWDATA')m(n)) FILTERVALUETBLINS SELECT @COUNT = COUNT(1) FROM #COLUMNTBLINS WHILE @LPTCNT <= @COUNT BEGIN SET @FilterValue = '' SELECT @COLUMNNAME = COLUMNNAME FROM #COLUMNTBLINS WHERE ROWNUMBER = @LPTCNT SELECT @FilterValue = FilterValue FROM #FILTERVALUETBLINS WHERE ROWNUMBER = @LPTCNT INSERT INTO [dbo].[CustomSavedFilters] ( [FilterID], [FilterColumn], [Value] ) VALUES ( @FilterNameID, @COLUMNNAME, @FilterValue ) SET @LPTCNT = @LPTCNT + 1; END END END END END END GO IF OBJECT_ID(N'KAAS_CR_InsertReportGroup',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_InsertReportGroup] GO CREATE PROCEDURE [dbo].[KAAS_CR_InsertReportGroup] @ReportId INT, @GroupId INT /****************************************************************************************************************** * Used to Insert report group details. * * * * Stored Procedure Name: [dbo].[KAAS_CR_InsertReportGroup] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN INSERT INTO KaaS_CRReportGroup (Reportid, Groupid) Values (@ReportId,@GroupId) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_InserUDFList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_InserUDFList] END GO CREATE PROCEDURE [dbo].[KAAS_InserUDFList] (@FIELDNAME VARCHAR(30), @CODE VARCHAR(3), @DESCRIPTION VARCHAR(100), @Status VARCHAR(10), @NewCode VARCHAR(3)) AS /************************************************************************************************ * Insert or update a UDF Lookup value * * * * Stored Procedure Name : [dbo].[KAAS_InserUDFList] * * Copied from : [dbo].[ky_NETInserUDFList] * * * * Modification History : * * 2023-07-11 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON IF(@Status = 'True') BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[UDFLookups] [UDL] WHERE [UDL].[FIELDNAME] = @FIELDNAME AND [UDL].[CODE] = @NewCode) BEGIN SELECT 'This Code name already exists.' END ELSE BEGIN INSERT INTO [dbo].[UDFLookups] ([FIELDNAME], [CODE], [DESCRIPTION]) VALUES(@FIELDNAME, @NewCode, @DESCRIPTION ) SELECT 'True' END END ELSE BEGIN IF(@NewCode = @CODE ) BEGIN UPDATE [UDL] SET [UDL].[CODE] = @NewCode, [UDL].[DESCRIPTION] = @DESCRIPTION FROM [dbo].[UDFLookups] [UDL] WHERE [UDL].[FIELDNAME] = @FIELDNAME AND [UDL].[CODE] = @CODE SELECT 'True' END ELSE BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[UDFLookups] [UDL] WHERE [UDL].[FIELDNAME] = @FIELDNAME AND [UDL].[CODE] = @NewCode) BEGIN SELECT 'This Code name already exists.' END ELSE BEGIN UPDATE [UDL] SET [UDL].[CODE] = @NewCode, [UDL].[DESCRIPTION] = @DESCRIPTION FROM [dbo].[UDFLookups] [UDL] WHERE [UDL].[FIELDNAME] = @FIELDNAME AND [UDL].[CODE] = @CODE SELECT 'True' END END END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_IsSAM4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_IsSAM4] END GO CREATE PROCEDURE [dbo].[KAAS_IsSAM4] AS /******************************************************************************************************* * This is used to check whether the database is version of SAM3 or SAM4 * * * * Stored Procedure Name : [dbo].[KAAS_IsSAM4] * * * * Modification History : * * 2019-02-21 Vindohan Created * *******************************************************************************************************/ BEGIN SELECT [dbo].[ISSAM4]() AS [IsSAM4] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_KYCLoadDropDown' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_KYCLoadDropDown] END GO create PROCEDURE [dbo].[KAAS_KYCLoadDropDown] AS /* KY_NETKYCLoadDropDown This procedure is used to load the dropdown in the KYC page. 29-10-2019 Rajesh copied from KY_NETKYCLoadDropDown */ BEGIN SET NOCOUNT ON SELECT PK_TYPE AS CODE ,ISNULL(DESCRIPTION,'') AS [DESC] FROM KYCTYPE ORDER BY [DESC] SELECT PK_ClientType AS CODE ,ISNULL(DESCRIPTION,'') AS [DESC] FROM CLIENTTYPE ORDER BY [DESC] SELECT PK_INTRO AS CODE ,ISNULL(DESCRIPTION,'') AS [DESC] FROM INTRODUCTIONBY ORDER BY [DESC] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_KYCSaveDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE KAAS_KYCSaveDetails END GO CREATE PROCEDURE KAAS_KYCSaveDetails ( @KYCTYPE INT, @STATUS VARCHAR(1), @CLIENTTYPE INT, @INTRODUCTOINBY INT, @CLIENTCODE VARCHAR(10), @SCDD_Category VARCHAR(100), @LASTINSTRUCTIONRECIEVED DATETIME ) AS /***************************************************************************** Stored Procedure Name : KAAS_KYCSaveDetails Copied From : [KY_NETKYCSaveDetails] Description: This Procedure is used to Set the KYC deatils for a client Last Updated: 04 DEC 2020 Aakif - Created KAAS_KYCSaveDetails *****************************************************************************/ BEGIN UPDATE Contacts SET [Type] = @KYCTYPE ,[Status] = @STATUS ,ClientType = @CLIENTTYPE ,IntroBy = @INTRODUCTOINBY ,SCDD_Category = @SCDD_Category ,LastInstructionRecieved = @LASTINSTRUCTIONRECIEVED WHERE Code=@CLIENTCODE END GO IF OBJECT_ID(N'KAAS_LinkMatterInsert',N'P')IS NOT NULL DROP PROCEDURE KAAS_LinkMatterInsert GO CREATE PROCEDURE KAAS_LinkMatterInsert ( @PrimeMatter NVARCHAR(20),--@PrimeMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters] @LinkedMatter NVARCHAR(20),--@LinkedMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters] @RelationShip NVARCHAR(100),--@RelationShip MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters] @Result TINYINT OUTPUT ) AS /* Created By : Arun V Date : 29Oct2014 Description : This procedure is used to Insert matter links Modification History ----------------------------------------------------- Date | Modified By | Description ----------------------------------------------------- 22 May 2019 Arun Copied from ky_NETLinkMatterInsert */ BEGIN SET NOCOUNT ON IF NOT EXISTS(SELECT TOP 1 1 FROM LinkedMatters WHERE PrimeMatter = @PrimeMatter AND LinkedMatter = @LinkedMatter ) BEGIN --Insert Link A INSERT INTO LinkedMatters(PrimeMatter, LinkedMatter, Relationship) VALUES(@PrimeMatter, @LinkedMatter, @RelationShip ) --Insert Link B INSERT INTO LinkedMatters(PrimeMatter, LinkedMatter, Relationship) VALUES(@LinkedMatter,@PrimeMatter, @RelationShip ) SET @Result = 1 END ELSE BEGIN SET @Result = 2 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_LinkMatterUpdate',N'P')IS NOT NULL DROP PROCEDURE KAAS_LinkMatterUpdate GO CREATE PROCEDURE KAAS_LinkMatterUpdate ( @RecordId INT, @PrimeMatter NVARCHAR(20),--@PrimeMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters] @OldLinkedMatter NVARCHAR(20),--@OldLinkedMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters] @LinkedMatter NVARCHAR(20),--@LinkedMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters] @RelationShip NVARCHAR(100),--@RelationShip MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters] @Result INT OUTPUT ) AS /* Created By : Arun V Date : 29Oct2014 Description : This procedure is used to update the matter link Modification History ----------------------------------------------------- Date | Modified By | Description ----------------------------------------------------- 22 May 2019 Arun V Copied from ky_NETLinkMatterUpdate 25 Nov 2019 Arun V Have added condition to handled duplicate values 29 Dec 2021 Sadiq Fixed relationship Updation issue , Added Condition to handle duplicate values including Updation of relationship for existing linked Cases */ BEGIN SET NOCOUNT ON IF EXISTS(SELECT TOP 1 1 FROM LinkedMatters WHERE RecordId = @RecordId ) BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM LinkedMatters where LinkedMatter = @LinkedMatter AND PrimeMatter = @PrimeMatter) BEGIN --Insert Link A UPDATE [dbo].[LinkedMatters] SET [LinkedMatter] = @LinkedMatter, [RelationShip] = @RelationShip WHERE [RecordId] = @RecordId AND [PrimeMatter] = @PrimeMatter ----Insert Link B UPDATE [dbo].[LinkedMatters] SET [PrimeMatter] = @LinkedMatter, [Relationship] = @RelationShip WHERE [LinkedMatter] = @PrimeMatter AND [PrimeMatter] = @OldLinkedMatter SET @Result = 1 --UPDATED SUCCESSFULLY END ELSE BEGIN IF EXISTS(SELECT TOP 1 1 FROM LinkedMatters where LinkedMatter = @LinkedMatter AND PrimeMatter = @PrimeMatter AND RecordId!=@RecordId) BEGIN SET @Result = 2 -- DUPLICATE NOT ALLOWED ON UDPATE PROCESS END ELSE BEGIN UPDATE [dbo].[LinkedMatters] SET [RelationShip] = @RelationShip WHERE [RecordId] = @RecordId AND [PrimeMatter] = @PrimeMatter ----Insert Link B UPDATE [dbo].[LinkedMatters] SET [Relationship] = @RelationShip WHERE [LinkedMatter] = @PrimeMatter AND [PrimeMatter] = @OldLinkedMatter SET @Result = 1 --UPDATED SUCCESSFULLY END END END ELSE BEGIN SET @Result = 0 --NOT EXIST ANY RECORD TO UPDATE END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_ListAllVATCodes]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_ListAllVATCodes] GO CREATE PROCEDURE [dbo].[KAAS_ListAllVATCodes] AS /******************************************************************************************************* * List all VAT Codes and rates, make sure there is always a zero-rate code 'Z'. * * * * Stored Procedure Name : [dbo].[KAAS_ListAllVATCodes] * * Copied from : [dbo].[ky_NETSPListAllVATCodes] * * * * Modification History : * * 2019-11-11 Dheepin Vijith K Created * *******************************************************************************************************/ BEGIN SELECT Code, Rate FROM (SELECT RTRIM(ISNULL(VC.[CODE], '')) AS [Code], ISNULL(VC.[RATE], 0) AS [Rate] FROM [dbo].[VATCodes] VC UNION SELECT VZ.[Code], VZ.[Rate] FROM (SELECT CONVERT(VARCHAR(1), 'Z') AS [Code], CONVERT(DECIMAL(5, 2), 0) AS [Rate]) VZ LEFT OUTER JOIN [dbo].[VATCodes] VC2 ON VC2.[Code] = VZ.[Code] WHERE VC2.[Code] IS NULL) VAT ORDER BY RTRIM(ISNULL(VAT.[Code], '')) END GO IF OBJECT_ID(N'[KAAS_ListBillNarratives]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_ListBillNarratives] GO CREATE PROCEDURE [KAAS_ListBillNarratives] AS /******************************************************************************************************* * This procedure is used to List bill narratives. * * * * Stored Procedure Name : [dbo].[KAAS_ListBillNarratives] * * Copied from : [dbo].[ky_NETSPListBillNarratives] * * * * Modification History : * * 29SEP2015 Sridharen KEYD - 2584 - Unable to delete or retire certain Codes and Narratives * * 2019-11-11 Dheepin Vijith K Created * *******************************************************************************************************/ BEGIN SELECT NAR.[NUMBER] AS [Code], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), NAR.[BILLDESCRIPTIONS]), '')) AS [Narrative] FROM [dbo].[BillDescriptions] NAR WHERE ISNULL(NAR.Retired,'N') = 'N' ORDER BY RTRIM(ISNULL(NAR.[SEARCHFIELD], '')) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ListCaseAssociateCases' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ListCaseAssociateCases] END GO CREATE PROCEDURE [dbo].[KAAS_ListCaseAssociateCases] (@NameCode VARCHAR(6), @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /************************************************************************************************************* * * * Stored Procedure Name : KAAS_ListCaseAssociateCases * * Copied From : [dbo].[ky_NETSPListCaseAssociateCases] * * * * Lists the cases to which this Associate is linked * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.6.4.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2018-11-30 Pino Carafa Created * * 2019-06-04 Vinodhan K Created KAAS_ListCaseAssociateCases * *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT [CC].[CASECODE] AS [CaseCode], [MAT].[ClientCode] AS [ClientCode], RTRIM(ISNULL([CON].[Name], '')) AS [ClientName], RTRIM(ISNULL([MAT].[Description], '')) AS [MatterDescription], CASE WHEN ISNULL([MAT].[Closed], '') = 'Y' THEN 'Y' ELSE 'N' END AS [Closed] FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[Contacts] [CON] ON [CON].[Code] = [MAT].[ClientCode] ON [MAT].[Code] = [CC].[CASECODE] WHERE [CC].[NAMECODE] = @NameCode AND ( [CC].[CASECODE] LIKE '%' + @SearchText + '%' OR [MAT].[ClientCode] LIKE '%' + @SearchText + '%' OR RTRIM(ISNULL([CON].[Name], '')) LIKE '%' + @SearchText + '%' OR ISNULL([MAT].[Closed], '') LIKE '%' + @SearchText + '%' )) AS FoundTable SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Row_Number' THEN [Row_Number] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Row_Number' THEN [Row_Number] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CaseCode' THEN [CaseCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CaseCode' THEN [CaseCode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ClientCode' THEN [ClientCode] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ClientCode' THEN [ClientCode] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ClientName' THEN [ClientName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'MatterDescription' THEN [MatterDescription] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'MatterDescription' THEN [MatterDescription] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Closed' THEN [Closed] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Closed' THEN [Closed] END END DESC SELECT COUNT([Row_Number]) AS TotalRecords FROM #FoundTable END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ListCaseContacts' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ListCaseContacts] END GO CREATE PROCEDURE [dbo].[KAAS_ListCaseContacts] (@CaseCode VARCHAR(20), @ForEmail BIT = 1, @Number INT = 0, @Status VARCHAR(1) = '') AS /************************************************************************************************************* * * * [dbo].[KAAS_ListCaseContacts] * * * * List Case Contacts for OWA Add-in * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * Original: [dbo].[ky_NETSPListCaseContacts] * * * * First compatible version: 5.7.2.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2019-04-02 Pino Carafa Created * * 2019-04-30 Pino Carafa Added Subject search and Date Range * * 2015-12-03 Pino Carafa Make it usable for Framework, too * * 2016-07-21 Suriya M KEYD-3783 - When you add a new strong room Deed file to a case, * * the Retired Associates are showing in the * * "From Whom" & "To Whom" fields of "DEED" tab. * * 2016-07-22 Pino Carafa Set default value for Status to ensure Outlook Add-in remains unaffected * * 2018-05-01 Pino Carafa KEYD-4573 Add Secondary Email * * 2018-05-01 Pino Carafa Copied to KAAS SPs * * * *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @FromWhom VARCHAR(10) IF(@Status = 'T') BEGIN SET @FromWhom = RTRIM(ISNULL((SELECT [FMI].[TOWHOCODE] FROM [dbo].[FileManagerItems] [FMI] WHERE [FMI].[NUMBER] = @Number), '')) END ELSE BEGIN SET @FromWhom = RTRIM(ISNULL((SELECT [FMI].[FROMWHOCODE] FROM [dbo].[FileManagerItems] [FMI] WHERE [FMI].[NUMBER] = @Number), '')) END SELECT [RES].[CODE], CASE WHEN [RES].[NAME] = '' THEN [RES].[COMPANY] ELSE [RES].[NAME] END AS [NAME], [RES].[COMPANY], [RES].[EMAIL], [RES].[NAMECODE], [RES].[CASECODE], [RES].[TYPE], CASE WHEN RTRIM(ISNULL([AST].[DESCRIPTION], '')) = '' THEN [RES].[TYPE] ELSE RTRIM(ISNULL([AST].[DESCRIPTION], '')) END AS [TYPEDESC], LTRIM( CASE WHEN [RES].[NAME] = '' THEN '' WHEN [RES].[NAME] = [RES].[COMPANY] THEN '' ELSE [RES].[NAME] END + CASE WHEN [RES].[COMPANY] = '' THEN '' ELSE ' (' + [RES].[COMPANY] + ')' END) AS [NAMECOMP] FROM (SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CAN].[CODE], ''))) AS [CODE], CONVERT(VARCHAR(300), RTRIM(ISNULL([CAN].[NAME], ''))) AS [NAME], CONVERT(VARCHAR(50), RTRIM(ISNULL([CAN].[COMPANY], ''))) AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[EMAIL], ''))) AS [EMAIL], CONVERT(VARCHAR(10), RTRIM(ISNULL([CC].[NAMECODE], ''))) AS [NAMECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CASECODE], ''))) AS [CASECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CAN].[TYPE], ''))) AS [TYPE] FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[CaseAssociatesNames] [CAN] ON [CAN].[CODE] = [CC].[NameCODE] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CAN].[EMAIL], '')) <> '') WHERE [CC].[CASECODE] = @CaseCode AND ( ISNULL([CC].Retired,'N') <> 'Y' OR [CC].NAMECODE = CASE @Number WHEN 0 THEN '' ELSE @FromWhom END) UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CLCODE], ''))) AS CODE, CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[FIRSTNAME], '')) + ' ' + RTRIM(ISNULL([CTC].[SURNAME], ''))) AS [NAME], CONVERT(VARCHAR(50), RTRIM(ISNULL([CTC].[CLNAMECON], ''))) AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[EmailAddress], ''))) AS [EMAIL], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE], CONVERT(VARCHAR(20), 'Client Contact') AS [TYPE] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[ClientContacts] [CTC] ON [CTC].[CLCODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[EmailAddress], '')) <> '') WHERE [MAT].[CODE] = @CaseCode UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CAN].[CODE], ''))) AS [CODE], CONVERT(VARCHAR(300), RTRIM(ISNULL([CAC].[NAME], ''))) AS [NAME], CONVERT(VARCHAR(50), RTRIM(ISNULL([CAN].[COMPANY], ''))) AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAC].[EMAIL], ''))) AS [EMAIL], CONVERT(VARCHAR(10), RTRIM(ISNULL([CC].[NAMECODE], ''))) AS [NAMECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CASECODE], ''))) AS [CASECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CONTYPE], ''))) AS [TYPE] FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[CaseAssociatesNames] [CAN] INNER JOIN [dbo].[CaseAssociatesContacts] [CAC] ON [CAC].[NAMECODE] = [CAN].[CODE] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CAC].[EMAIL], '')) <> '') ON [CAN].[CODE] = [CC].[NameCODE] WHERE [CC].[CASECODE] = @CaseCode UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CODE], ''))) AS CODE, CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[Name], ''))) AS [NAME], CONVERT(VARCHAR(50), '') AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[email], ''))) AS [EMAIL], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE], CONVERT(VARCHAR(20), 'Client') AS [TYPE] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[Contacts] CTC ON [CTC].[CODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[email], '')) <> '') WHERE [MAT].[CODE] = @CaseCode UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CODE], ''))) AS CODE, CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[Name], ''))) AS [NAME], CONVERT(VARCHAR(50), '') AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[SecondaryEmail], ''))) AS [EMAIL], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE], CONVERT(VARCHAR(20), 'Client') AS [TYPE] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[Contacts] CTC ON [CTC].[CODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[SecondaryEmail], '')) <> '') WHERE [MAT].[CODE] = @CaseCode) [RES] LEFT OUTER JOIN [dbo].[AssociateTypes] [AST] ON [AST].[CODE] = [RES].[TYPE] ORDER BY CASE WHEN [RES].[NAME] = '' THEN [RES].[COMPANY] ELSE [RES].[NAME] END, [RES].[TYPE] SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_ListCaseContactsDetail', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_ListCaseContactsDetail] END GO CREATE PROCEDURE [dbo].[KAAS_ListCaseContactsDetail] (@CaseCode VARCHAR(20), @ForEmail BIT = 1, @Number INT = 0, @Status VARCHAR(1) = '') AS /************************************************************************************************************* * Stored Procedure Name: [KAAS_ListCaseContactsDetail] * Copied From : [ky_NETSPListCaseContacts] * List Case Contacts for Outlook Add-in * * ******************* * * * * * PLEASE NOTE: * If you make any changes to this procedure's parameters, please inform Pino Carafa as * * ============ * this will impact the Outlook Add-in! * * * * ******************* * * Modification History * 2015-12-03 Pino Make it usable for Framework, too * 2016-07-21 Suriya M KEYD-3783 - When you add a new strong room Deed file to a case, the Retired * Associates are showing in the "From Whom" & "To Whom" fields of "DEED" tab. * 2016-07-22 Pino Set default value for Status to ensure Outlook Add-in remains unaffected * 2018-05-01 Pino Carafa KEYD-4573 Add Secondary Email * 2019-12-04 Pino Carafa Return CC CONTYPE rather than CAN TYPE in first query * 2019-12-16 Pino Carafa Return Occupation * 2020-06-03 John Ginnane KEYD-6531 - Added mobile no to output * 2020-07-14 John Ginnane KEYD-6531 - Added SourceTable and SourceCode to output * 2020-08-25 Pino Carafa KEYD-6753 - Added Title to output * 2020-09-24 Arun Vasu KEYD-6648 - Added Work phone number to output * 2021-03-11 Arun Vasu Have get the FeeEarner, Partner label from setting table ref: 11634 * 2021-03-12 Arun Vasu Changed the logic the get the handler label values and set for handlers label ref: 11634 * 2021-12-10 Pino Carafa Added IsAssignedContact column * 2022-01-28 Aakif Created for Keyhouse Web *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @FromWhom VARCHAR(10) DECLARE @FeeEarnerLabel VARCHAR(20) DECLARE @Partner VARCHAR(20) IF(@Status = 'T') BEGIN SET @FromWhom = RTRIM(ISNULL((SELECT [FMI].[TOWHOCODE] FROM [dbo].[FileManagerItems] [FMI] WHERE [FMI].[NUMBER] = @Number), '')) END ELSE BEGIN SET @FromWhom = RTRIM(ISNULL((SELECT [FMI].[FROMWHOCODE] FROM [dbo].[FileManagerItems] [FMI] WHERE [FMI].[NUMBER] = @Number), '')) END --Getting the fee earner, and Partner label value from setting SELECT @FeeEarnerLabel = [Keyvalue] FROM [Settings] WHERE [KeyName] = 'FeeEarnerLabel' SELECT @Partner = [Keyvalue] FROM [Settings] WHERE [KeyName] = 'PartnerLabel' SELECT [RES].[CODE], CASE WHEN [RES].[NAME] = '' THEN [RES].[COMPANY] ELSE [RES].[NAME] END AS [NAME], [RES].[COMPANY], [RES].[EMAIL], [RES].[NAMECODE], [RES].[CASECODE], [RES].[TYPE], [RES].[Occupation] AS [Occupation], CASE WHEN RTRIM(ISNULL([AST].[DESCRIPTION], '')) = '' THEN [RES].[TYPE] ELSE RTRIM(ISNULL([AST].[DESCRIPTION], '')) END AS [TYPEDESC], LTRIM( CASE WHEN [RES].[NAME] = '' THEN '' WHEN [RES].[NAME] = [RES].[COMPANY] THEN '' ELSE [RES].[NAME] END + CASE WHEN [RES].[COMPANY] = '' THEN '' ELSE ' (' + [RES].[COMPANY] + ')' END) AS [NAMECOMP], [RES].[MOBILENO], [RES].[TITLE], [RES].[SourceTable], [RES].[SourceCode], [RES].[Work], [RES].[IsAssignedContact] --0=No, 1=Yes, 2=N/A FROM (SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CAN].[CODE], ''))) AS [CODE], CONVERT(VARCHAR(300), RTRIM(ISNULL([CAN].[NAME], ''))) AS [NAME], CONVERT(VARCHAR(50), RTRIM(ISNULL([CAN].[COMPANY], ''))) AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[EMAIL], ''))) AS [EMAIL], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[OCCUPATION], ''))) AS [Occupation], CONVERT(VARCHAR(10), RTRIM(ISNULL([CC].[NAMECODE], ''))) AS [NAMECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CASECODE], ''))) AS [CASECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CONTYPE], ''))) AS [TYPE], --PINO 2019-12-04, WAS [CAN].[TYPE] CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[TITLE], ''))) AS [TITLE], CONVERT(VARCHAR(50), ISNULL([CAN].[MOBILENO], '')) AS [MOBILENO], 'CaseAssociatesNames' AS [SourceTable], [CAN].[CODE] AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([CAN].[PHONENO], '')) AS [Work], CONVERT(INT, 2) AS [IsAssignedContact] --N/A FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[CaseAssociatesNames] [CAN] ON [CAN].[CODE] = [CC].[NameCODE] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CAN].[EMAIL], '')) <> '') WHERE [CC].[CASECODE] = @CaseCode AND ( ISNULL([CC].Retired,'N') <> 'Y' OR [CC].NAMECODE = CASE @Number WHEN 0 THEN '' ELSE @FromWhom END) UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CLCODE], ''))) AS [CODE], CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[FIRSTNAME], '')) + ' ' + RTRIM(ISNULL([CTC].[SURNAME], ''))) AS [NAME], CONVERT(VARCHAR(50), RTRIM(ISNULL([CTC].[CLNAMECON], ''))) AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[EmailAddress], ''))) AS [EMAIL], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[Occupation], ''))) AS [Occupation], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE], CONVERT(VARCHAR(20), 'Client Contact') AS [TYPE], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[CLTITLE], ''))) AS [TITLE], CONVERT(VARCHAR(50), ISNULL([CTC].[Mobile], '')) AS [MOBILENO], 'ClientContacts' AS [SourceTable], CONVERT(VARCHAR(50), [CTC].[id]) AS [SourceCode], CONVERT(VARCHAR(50),ISNULL([CTC].[WorkPhone],'')) AS [Work], CONVERT(INT, 2) AS [IsAssignedContact] --N/A FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[ClientContacts] [CTC] ON [CTC].[CLCODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[EmailAddress], '')) <> '') WHERE [MAT].[CODE] = @CaseCode UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CAN].[CODE], ''))) AS [CODE], CONVERT(VARCHAR(300), RTRIM(ISNULL([CAC].[NAME], ''))) AS [NAME], CONVERT(VARCHAR(50), RTRIM(ISNULL([CAN].[COMPANY], ''))) AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAC].[EMAIL], ''))) AS [EMAIL], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[OCCUPATION], ''))) AS [Occupation], CONVERT(VARCHAR(10), RTRIM(ISNULL([CC].[NAMECODE], ''))) AS [NAMECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CASECODE], ''))) AS [CASECODE], CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CONTYPE], ''))) AS [TYPE], CONVERT(VARCHAR(100), RTRIM(ISNULL([CAC].[JOBTITLE], ''))) AS [TITLE], CONVERT(VARCHAR(50), ISNULL([CAC].[MOBILE], '')) AS [MOBILENO], 'CaseAssociatesContacts' AS [SourceTable], CONVERT(VARCHAR(50), [CAC].[KEYID]) AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([CAC].[PHONE],'')) AS [Work], CASE WHEN [CAC].[KeyID] = [CC].[AssignedContact] THEN CONVERT(INTEGER, 1) ELSE CONVERT(INTEGER, 0) END AS [IsAssignedContact] FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[CaseAssociatesNames] [CAN] INNER JOIN [dbo].[CaseAssociatesContacts] [CAC] ON [CAC].[NAMECODE] = [CAN].[CODE] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CAC].[EMAIL], '')) <> '') ON [CAN].[CODE] = [CC].[NameCODE] WHERE [CC].[CASECODE] = @CaseCode UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CODE], ''))) AS [CODE], CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[Name], ''))) AS [NAME], CONVERT(VARCHAR(50), '') AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[email], ''))) AS [EMAIL], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[Occupation], ''))) AS [Occupation], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE], CONVERT(VARCHAR(20), 'Client') AS [TYPE], CONVERT(VARCHAR(100), '') AS [TITLE], --Not sure there is a column representing this in Contacts or client CONVERT(VARCHAR(50), ISNULL([CLI].[CLMOBNO], '')) AS [MOBILENO], 'client' AS [SourceTable], [CTC].[CODE] AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([CTC].[Tel], '')) AS [Work], CONVERT(INT, 2) AS [IsAssignedContact] --N/A FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[Contacts] [CTC] ON [CTC].[CODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[email], '')) <> '') LEFT OUTER JOIN [dbo].[client] AS [CLI] ON [CLI].[CLCODE] = [CTC].[CODE] WHERE [MAT].[CODE] = @CaseCode UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([HAN].[CODE], ''))) AS [CODE], CONVERT(VARCHAR(300), RTRIM(ISNULL([HAN].[Name], ''))) AS [NAME], CONVERT(VARCHAR(50), '') AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([HAN].[email], ''))) AS [EMAIL], CONVERT(VARCHAR(100), '') AS [Occupation], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE], CONVERT(VARCHAR(20), (CASE WHEN ColumnName='FECode' THEN ISNULL(@FeeEarnerLabel, 'Fee Earner') WHEN ColumnName='Partner' THEN ISNULL(@Partner, 'Partner') ELSE ColumnName END)) AS [TYPE], CONVERT(VARCHAR(100), '') AS [TITLE], CONVERT(VARCHAR(50), ISNULL([HAN].[PhoneNumber], '')) AS [MOBILENO], 'Handlers' AS [SourceTable], [HAN].[CODE] AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([HAN].[Phoneno], '')) AS [Work], CONVERT(INT, 2) AS [IsAssignedContact] --N/A FROM (SELECT [UNPVT].[Handlers] AS [HandlerValue], [UNPVT].[Handlerslist] AS [ColumnName] FROM [dbo].[matters] [MAT] UNPIVOT ( [Handlers] FOR [Handlerslist] IN ([MAT].[FECode], [MAT].[Partner], [MAT].[Secretary])) [UNPVT] WHERE [UNPVT].[Code] = @CaseCode AND [UNPVT].[Handlers] <> '') [HANDLERLIST] INNER JOIN [Handlers] [HAN] ON [HAN].[CODE] = [HANDLERLIST].[HandlerValue] UNION SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CODE], ''))) AS [CODE], CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[Name], ''))) AS [NAME], CONVERT(VARCHAR(50), '') AS [COMPANY], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[SecondaryEmail], ''))) AS [EMAIL], CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[Occupation], ''))) AS [Occupation], CONVERT(VARCHAR(10), '') AS [NAMECODE], CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE], CONVERT(VARCHAR(20), 'Client') AS [TYPE], CONVERT(VARCHAR(100), '') AS [TITLE], --Not sure there is a column representing this in Contacts or client CONVERT(VARCHAR(50), ISNULL([CLI].[CLMOBNO], '')) AS [MOBILENO], 'client' AS [SourceTable], [CTC].[CODE] AS [SourceCode], CONVERT(VARCHAR(50), ISNULL([CTC].[Tel], '')) AS [Work], CONVERT(INT, 2) AS [IsAssignedContact] --N/A FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[Contacts] [CTC] ON [CTC].[CODE] = [MAT].[ClientCode] AND ( @ForEmail = 0 OR RTRIM(ISNULL([CTC].[SecondaryEmail], '')) <> '') LEFT OUTER JOIN [dbo].[client] AS [CLI] ON [CLI].[CLCODE] = [CTC].[CODE] WHERE [MAT].[CODE] = @CaseCode) [RES] LEFT OUTER JOIN [dbo].[AssociateTypes] [AST] ON [AST].[CODE] = [RES].[TYPE] ORDER BY CASE WHEN [RES].[NAME] = '' THEN [RES].[COMPANY] ELSE [RES].[NAME] END, [RES].[TYPE] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ListControlsAndHandlersByProfile' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ListControlsAndHandlersByProfile] END GO CREATE PROCEDURE [dbo].[KAAS_ListControlsAndHandlersByProfile] AS /*************************************************************************************** * * Lists the Handlers by the Keyhouse Control Profiles to which they belong and * control Profiles for handler control access maintenance * Stored Procedure Name : [dbo].[KAAS_ListControlsAndHandlersByProfile] * Copied from : [dbo].[ky_NETSPListHandlersByProfile] , * [dbo].[ky_NETSPListControlProfiles] * * Modification History * 2023-04-11 Revathy.D Created (Copied from ky_NETSPListHandlersByProfile, * [dbo].[ky_NETSPListControlProfiles]) * 2023-05-03 Revathy.D Modified to return list of active handlers ***************************************************************************************/ BEGIN SELECT CTP.[id] [Id], CTP.[Code], CTP.[Name] FROM [dbo].[KHCtlProfiles] CTP WHERE CTP.[Retired] = 'N' SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [HandlerCode], RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName], ISNULL(PFH.[ProfileID], 0) AS [ProfileID], RTRIM(ISNULL(PRF.[Code], '')) AS [ProfileCode], RTRIM(ISNULL(PRF.[Name], '')) AS [ProfileName] FROM [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[KHCtlProfileHandlers] PFH INNER JOIN [dbo].[KHCtlProfiles] PRF ON PRF.[id] = PFH.[ProfileID] ON PFH.[Handler] = HAN.[CODE] WHERE RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) <> 'Y' AND RTRIM(ISNULL(HAN.[RETIRED], 'N')) <> 'Y' ORDER BY CASE WHEN PFH.[id] IS NULL THEN 1 ELSE 0 END, RTRIM(ISNULL(PRF.[Name], '')), RTRIM(ISNULL(HAN.[NAME], '')) SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [HandlerCode], RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName] FROM [dbo].[Handlers] HAN WHERE RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) <> 'Y' AND RTRIM(ISNULL(HAN.[RETIRED], 'N')) <> 'Y' ORDER BY HAN.[NAME] END GO IF OBJECT_ID(N'KAAS_ListDocumentClasses',N'P')IS NOT NULL DROP PROCEDURE KAAS_ListDocumentClasses GO CREATE PROCEDURE [dbo].[KAAS_ListDocumentClasses] AS /***************************************************************************** * * ky_NETSPListDocumentClasses * * Lists the available Keyhouse Document Classes. * * Modification History * 2016-10-19 Pino Carafa Imported into Framework * 2016-10-19 Pino Carafa Removed dynamic code to deal with SAM4 * SAM4 now also has a Retired column * 2019-05-20 Arun Copied from ky_NETSPListDocumentClasses * 2020-02-25 Prabhu.V Altered the column Name as per the Name mapped in API as because the retired column always shown as null when reclassify documents. *****************************************************************************/ BEGIN SELECT RTRIM(ISNULL(DCL.[CLASSCODE], '')) AS [CLASSCODE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) AS [CLASSDESCRIPTION], CASE WHEN RTRIM(ISNULL(DCL.[RETIRED], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [RETIRED] FROM [dbo].[DocumentClasses] DCL ORDER BY RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_ListDocumentClassesForCase' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ListDocumentClassesForCase] END GO CREATE PROCEDURE [dbo].[KAAS_ListDocumentClassesForCase] (@CASECODE VARCHAR(20)) AS /******************************************************************************************************* * Lists only the document classes and descriptions that are actually present in the Case * * that was passed in. * * * * Stored Procedure Name : [dbo].[KAAS_ListDocumentClassesForCase] * * Copied from : [dbo].[ky_NETSPListDocumentClassesForCase] * * * * Modification History: * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @classes TABLE ([id] INT IDENTITY(1, 1), [CLASSCODE] VARCHAR(3), [CLASSDESCRIPTION] VARCHAR(40), [Retired] CHAR(1)) INSERT INTO @classes ([CLASSCODE], [CLASSDESCRIPTION], [Retired]) VALUES ('', '', 'N') IF RTRIM(ISNULL(@CASECODE, '')) = '' BEGIN INSERT INTO @classes ([CLASSCODE]) SELECT DCL.[CLASSCODE] FROM [dbo].[DocumentClasses] DCL WHERE RTRIM(ISNULL(DCL.[CLASSCODE], '')) <> '' ORDER BY RTRIM(ISNULL(DCL.[CLASSCODE], '')) END ELSE BEGIN INSERT INTO @classes ([CLASSCODE]) SELECT DISTINCT RTRIM(ISNULL(DAT.[DOCCLASS], '')) AS [DOCCLASS] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] AND RTRIM(ISNULL(DAT.[DOCCLASS], '')) <> '' WHERE DIA.[CASECODE] = @CASECODE ORDER BY RTRIM(ISNULL(DAT.[DOCCLASS], '')) END UPDATE CL SET CL.[CLASSDESCRIPTION] = RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')), CL.[Retired] = Case WHEN RTRIM(ISNULL(DCL.[Retired], 'N')) = 'Y' THEN 'Y' ELSE 'N' END FROM @classes CL INNER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = CL.[CLASSCODE] AND RTRIM(DCL.[CLASSCODE]) <> '' DELETE CL FROM @classes CL WHERE CL.[Retired] = 'Y' SELECT [CLASSCODE], RTRIM(ISNULL([CLASSDESCRIPTION], '*MISSING DOCUMENT CLASS*')) AS [CLASSDESCRIPTION] FROM @classes END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_ListDocumentClassesForMatter' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ListDocumentClassesForMatter] END GO CREATE PROCEDURE [dbo].[KAAS_ListDocumentClassesForMatter] (@TrackReference VARCHAR(20), @CurrentDepartmentOnly BIT, @IncludeRetired BIT) AS /************************************************************************************************************* * * * [dbo].[KAAS_ListDocumentClassesForMatter] * * * * Description: Lists the document classes that have been used in any matters for the current matter's * * Department * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * * * Modification History * * 2022-06-06 Vignesh M Created * * Copied from : [dbo].[ky_ListDocumentClassesForMatter] * * * *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @MATTER VARCHAR(20) DECLARE @DEPT VARCHAR(5) DECLARE @MATS TABLE ([Code] VARCHAR(20) PRIMARY KEY NOT NULL) DECLARE @CLS TABLE ([Code] VARCHAR(3) PRIMARY KEY NOT NULL, [Desc] VARCHAR(40) NOT NULL, [ForD] BIT NOT NULL, [Retd] CHAR NOT NULL, UNIQUE NONCLUSTERED ([ForD], [Desc], [Code]), UNIQUE NONCLUSTERED ([Retd], [Code])) SELECT @MATTER = [DA].[CASECODE] FROM [DiaryAttachments] AS [DA] WHERE [DA].[TrackReference] = @TrackReference IF RTRIM(ISNULL(@MATTER, '')) = '' BEGIN SET @CurrentDepartmentOnly = 0 END IF @CurrentDepartmentOnly = 1 BEGIN SELECT @DEPT = [SM].[Dept] FROM [dbo].[SearchMatters] [SM] WHERE [SM].[Code] = @MATTER END IF RTRIM(ISNULL(@DEPT, '')) = '' BEGIN SET @CurrentDepartmentOnly = 0 END IF @CurrentDepartmentOnly = 1 BEGIN INSERT INTO @MATS SELECT [SM].[Code] FROM [dbo].[SearchMatters] [SM] WHERE [SM].[Dept] = @DEPT INSERT INTO @CLS ([Code], [Desc], [ForD], [Retd]) SELECT [NEW].[DocClass], [DCL].[CLASSDESCRIPTION], 0, [DCL].[Retired] FROM ( SELECT [DAS].[DocClass] FROM @MATS [MAT] INNER JOIN [dbo].[DiaryAttachmentSelector] [DAS] ON [DAS].[CASECODE] = [MAT].[Code] GROUP BY [DAS].[DocClass]) [NEW] INNER JOIN [dbo].[DocumentClasses] [DCL] ON [DCL].[CLASSCODE] = [NEW].[DocClass] END IF NOT EXISTS (SELECT TOP 1 1 FROM @CLS) BEGIN SET @CurrentDepartmentOnly = 0 END IF @CurrentDepartmentOnly = 0 BEGIN INSERT INTO @CLS ([Code], [Desc], [ForD], [Retd]) SELECT CONVERT(VARCHAR(3), [DCL].[CLASSCODE]), [DCL].[CLASSDESCRIPTION], 1, [DCL].[Retired] FROM [dbo].[DocumentClasses] [DCL] LEFT OUTER JOIN @CLS [CLS] ON [CLS].[Code] = [DCL].[CLASSCODE] WHERE [CLS].[Code] IS NULL END IF @IncludeRetired = 0 BEGIN DELETE @CLS WHERE [Retd] = 'Y' END --Make sure GEN is always in the list INSERT INTO @CLS ([Code], [Desc], [ForD], [Retd]) SELECT CONVERT(VARCHAR(3), [DCL].[CLASSCODE]), [DCL].[CLASSDESCRIPTION], 1, [DCL].[Retired] FROM [dbo].[DocumentClasses] [DCL] LEFT OUTER JOIN @CLS [CLS] ON [CLS].[Code] = [DCL].[CLASSCODE] WHERE [DCL].[CLASSCODE] = 'GEN' AND [CLS].[Code] IS NULL SELECT [CLS].[Code] AS [CLASSCODE], [CLS].[Desc] AS [CLASSDESCRIPTION], [CLS].[Retd] AS [RETIRED] FROM @CLS [CLS] ORDER BY [ForD], [Desc] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_ListItemLocations' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ListItemLocations] END GO CREATE PROCEDURE [dbo].[KAAS_ListItemLocations] AS /****************************************************************************** * * Stored Procedure Name : KAAS_ListItemLocations * Copied from : ky_NETSPListItemLocations * Lists all matter locations (for archive tab) * * Modification History * 2015-06-25 Pino Carafa Created * 2015-06-25 Pino Carafa Different Item Locations can have the * same name. Add code between brackets * after locations that have duplicates. * 2016-02-04 Arun Added Retired filter in where condition * 2019-07-16 Vinodhan K Created KAAS_ListItemLocations ******************************************************************************/ BEGIN SELECT ITL.[CODE] AS [Code], CASE WHEN RTRIM(ITL.[DESCRIPTION]) = '' THEN RTRIM('Unknown, code: ' + ITL.[CODE]) ELSE RTRIM(ITL.[DESCRIPTION]) END + CASE WHEN DUPS.[TOTAL] = 1 THEN '' ELSE ' (' + RTRIM(ITL.[CODE]) + ')' END AS [Description], ITL.[FULLYN] AS [FullYN] FROM [dbo].[ItemLocations] ITL CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[ItemLocations] ITLD WHERE ITLD.[DESCRIPTION] = ITL.[DESCRIPTION]) DUPS WHERE ISNULL(ITL.Retired,'N') <> 'Y' ORDER BY CASE WHEN RTRIM(ITL.[DESCRIPTION]) = '' THEN RTRIM('Unknown, code: ' + ITL.[CODE]) ELSE RTRIM(ITL.[DESCRIPTION]) END + CASE WHEN DUPS.[TOTAL] = 1 THEN '' ELSE ' (' + RTRIM(ITL.[CODE]) + ')' END END GO IF OBJECT_ID(N'KAAS_ListNarratives', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_ListNarratives] END GO CREATE PROCEDURE [dbo].[KAAS_ListNarratives] AS /***************************************************************************** * List cheque/ledger narratives * * Stored Procedure Name : KAAS_ListNarratives * Copied From : ky_NETSPListNarratives * * Modification history: * ????-??-?? ??? Created * 2019-08-06 John Ginnane Added to SVN * 2019-08-06 Vinodhan Created KAAS_ListNarratives * 2022-03-04 Vignesh.M Modified Order by changed to CODE *****************************************************************************/ BEGIN SELECT RTRIM(ISNULL([NAR].[CODE], '')) AS [Code], RTRIM(ISNULL([NAR].[NARRATIVE], '')) AS [Narrative] FROM [dbo].[Narratives] AS [NAR] ORDER BY RTRIM(ISNULL([NAR].[CODE], '')) ASC END GO IF OBJECT_ID(N'KAAS_ListSuppliers', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_ListSuppliers] END GO CREATE PROCEDURE [dbo].[KAAS_ListSuppliers] AS /********************************************************* * List suppliers * * Stored Procedure Name : KAAS_ListSuppliers * Copied From : ky_NETSPListSuppliers * Modification history: * ????-??-?? ??? Created * 2019-08-06 John Ginnane Added to SVN * 2019-08-06 Vinodhan Created KAAS_ListSuppliers ********************************************************/ BEGIN DECLARE @COMMAND VARCHAR(MAX) IF EXISTS(SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'Retired' WHERE SO.[name] = 'Suppliers' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' SELECT RTRIM(ISNULL(SUP.[CODE], '''')) As [Code], RTRIM(ISNULL(SUP.[NAME], '''')) AS [Name], RTRIM(ISNULL(SUP.[Address], '''')) AS [Address], RTRIM(ISNULL(SUP.[NOMINAL], '''')) AS [Nominal], CASE WHEN RTRIM(ISNULL(SUP.[Retired], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Retired], CASE WHEN RTRIM(ISNULL(SUP.[DEFTPSTATUS], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [ThirdParty] FROM [dbo].[Suppliers] SUP' END ELSE BEGIN SET @COMMAND = ' SELECT RTRIM(ISNULL(SUP.[CODE], '''')) As [Code], RTRIM(ISNULL(SUP.[NAME], '''')) AS [Name], RTRIM(ISNULL(SUP.[Address], '''')) AS [Address], RTRIM(ISNULL(SUP.[NOMINAL], '''')) AS [Nominal], ''N'' AS [Retired], CASE WHEN RTRIM(ISNULL(SUP.[DEFTPSTATUS], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [ThirdParty] FROM [dbo].[Suppliers] SUP' END EXEC (@COMMAND) END GO --Delete obsolete procedure IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'ky_NETFetchLoadgvAssociateParties' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[ky_NETFetchLoadgvAssociateParties] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_LoadAssociateParties' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_LoadAssociateParties] END GO CREATE PROCEDURE [dbo].[KAAS_LoadAssociateParties] (@query VARCHAR(MAX) ) AS /******************************************************************************************************* * This procedure is used load the data for add professional page. * * 1. CaseAssociate grid. * * 2. Case Associate type list box. * * * * Stored Procedure Name : [dbo].[KAAS_LoadAssociateParties] * * Copied from : [dbo].[ky_NETSPLoadAssociateParties] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2019-06-10 Vinodhan K Searching, Paging and Sorting functionality added * * 2020-12-07 Prabhu V Lastest inserted associate should list at top of the list * * 2021-10-06 Sadiq Removed Pagination concept as moving to Dev extreme * * 2022-01-12 Aakif Fixed issue with sort order for 'All' associate type list * * 2022-07-22 Revathy.D Added pagination for grid data load on scrolling * *******************************************************************************************************/ BEGIN DECLARE @StartRow INT; DECLARE @EndRow INT; SET @query = CASE WHEN ISNULL(@query, '') = '' THEN '' ELSE @query END SET NOCOUNT ON DECLARE @lstAssociateTypeCode VARCHAR(20) DECLARE @orderby VARCHAR(20) DECLARE @order NVARCHAR(5) DECLARE @return INT DECLARE @search VARCHAR(202) DECLARE @Retired VARCHAR(1) DECLARE @MustInclude VARCHAR(6) DECLARE @PageNumber INT DECLARE @PageSize INT DECLARE @iSearch INT BEGIN TRY EXEC sp_xml_preparedocument @iSearch OUTPUT, @query END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSearch OUTPUT, '' END CATCH BEGIN TRY SELECT @lstAssociateTypeCode = SRC.[AssociateTypeCode], @orderby = SRC.[OrderBy], @order = SRC.[Order], @return = SRC.[return], @search = SRC.[search], @Retired = SRC.[Retired], @MustInclude = SRC.[MustInclude], @PageNumber = SRC.[PageNumber], @PageSize = SRC.[PageSize] FROM OPENXML(@iSearch, 'search') WITH ([AssociateTypeCode] VARCHAR(20) '@associatetype', [OrderBy] VARCHAR(20) '@orderby', [Order] NVARCHAR(4) '@order', [return] INT '@return', [search] VARCHAR(200) '@search', [Retired] VARCHAR(1) '@Retired', [MustInclude] VARCHAR(6) '@MustInclude', [PageNumber] INT '@PageNumber', [PageSize] INT '@PageSize') SRC END TRY BEGIN CATCH END CATCH EXEC sp_xml_removedocument @iSearch SET @lstAssociateTypeCode = ISNULL(@lstAssociateTypeCode, '') SET @orderby = ISNULL(@orderby, 'CODE') SET @order = ISNULL(@order, N' ASC') SET @search = ISNULL(@search, '') SET @Retired = CASE WHEN ISNULL(@Retired, 'N') = 'Y' THEN 'Y' ELSE 'N' END SET @MustInclude = ISNULL(@MustInclude, '') SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX SET @PageSize = ISNULL(@PageSize, 100) ; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF (@order = N'DESC') BEGIN SET @order = N' DESC' END ELSE BEGIN SET @order = N' ASC' END SET @return = ISNULL(@return, 500) DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number],* INTO #FoundTable FROM ( SELECT RTRIM(ISNULL([CAN].[CODE], '''')) AS [CONCODE], UPPER(RTRIM(ISNULL([CAT].[TYPECODE], ''''))) AS [TYPECODE], RTRIM(ISNULL([TYP].[Category], '''')) AS [Category], CASE WHEN RTRIM(ISNULL([CAN].[COMPANY], '''')) = '''' THEN RTRIM(ISNULL([CAN].[NAME], '''')) ELSE LTRIM(RTRIM(ISNULL([CAN].[NAME], '''')) + '' ('' + RTRIM(ISNULL([CAN].[COMPANY], '''')) + '')'') END AS [NAMECOMPANY], RTRIM(ISNULL([CAT].[SEARCHCODE], '''')) AS [SEARCHCODE], RTRIM(ISNULL([CAN].[CODE], '''')) AS [CODE], ISNULL([TYP].[Description],'''') AS [TYPE], RTRIM(ISNULL([CAN].[NAME], '''')) AS [NAME], RTRIM(ISNULL([CAN].[SALUTATION], '''')) AS [SALUTATION], RTRIM(ISNULL([CAN].[TITLE], '''')) AS [TITLE], RTRIM(ISNULL([CAN].[COMPANY], '''')) AS [COMPANY], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CAN].[ADDRESS], '''')), 200) AS [ADDRESS], RTRIM(ISNULL([CAN].[FORENAME], '''')) AS [FORENAME], RTRIM(ISNULL([CAN].[SURNAME], '''')) AS [SURNAME], RTRIM(ISNULL([CAN].[PHONENO], '''')) AS [PHONENO], RTRIM(ISNULL([CAN].[FAXNO], '''')) AS [FAXNO], RTRIM(ISNULL([CAN].[HOME], '''')) AS [HOME], RTRIM(ISNULL([CAN].[MOBILENO], '''')) AS [MOBILENO], RTRIM(ISNULL([CAN].[EMAIL], '''')) AS [EMAIL], RTRIM(ISNULL([CAN].[WEBADDRESS], '''')) AS [WEBADDRESS], RTRIM(ISNULL([CAN].[SSNUMBER], '''')) AS [SSNUMBER], RTRIM(ISNULL([CAN].[LEGALNAME], '''')) AS [LEGALNAME], RTRIM(ISNULL([CAN].[LEGALADDRESS], '''')) AS [LEGALADDRESS], RTRIM(ISNULL([CAN].[COURTNO], '''')) AS [COURTNO], RTRIM(ISNULL([CAN].[COURTAREA], '''')) AS [COURTAREA], RTRIM(ISNULL([CAN].[TAX], '''')) AS [TAX], RTRIM(ISNULL([CAN].[DXREF], '''')) AS [DXREF], CONVERT(VARCHAR(10), [CAN].DOB, 112) AS [DOB], RTRIM(ISNULL([CAN].[MARTIALSTATUS],'''')) AS [MARTIALSTATUS], ISNULL(CONVERT(VARCHAR(10), [CAN].[MARRIAGEDATE], 112), '''') AS [MARRIAGEDATE], ISNULL(CONVERT(VARCHAR(10), [CAN].[DECEASED] ,112), '''') AS [DECEASED], ISNULL(CONVERT(VARCHAR(10), [CAN].[SEPARATED] ,112), '''') AS [SEPARATED], RTRIM(ISNULL([CAN].[HOWSEPARATED], '''')) AS [HOWSEPARATED], ISNULL(CONVERT(VARCHAR(10), [CAN].[DATESEPARATED] ,112), '''') AS [DATESEPARATED], ISNULL(CONVERT(VARCHAR(10), [CAN].[DECEASEDDATE] ,112), '''') AS [DECEASEDDATE], RTRIM(ISNULL([CAN].[OCCUPATION], '''')) AS [OCCUPATION], RTRIM(ISNULL([CAN].[SEARCH], '''')) AS [SEARCH], ISNULL([CAN].[CONTACTNO], 0) AS [CONTACTNO], RTRIM(ISNULL([CAN].[NOTES], '''')) AS [NOTES], RTRIM(ISNULL([CAN].[AREA], '''')) AS [AREA], RTRIM(ISNULL([CAN].[TOWN], '''')) AS [TOWN], RTRIM(ISNULL([CAN].[GENDER],'''')) AS [GENDER], RTRIM(ISNULL([CAN].[ADDRESSTYPE], '''')) AS [ADDRESSTYPE], RTRIM(ISNULL([CAN].[SERVICETYPE], '''')) AS [SERVICETYPE], RTRIM(ISNULL([CAN].[CRONUMBER], '''')) AS [CRONUMBER], RTRIM(ISNULL([CAN].[VATNUMBER], '''')) AS [VATNUMBER], ISNULL(CAT.Retired,''N'') AS [Retired] FROM [dbo].[CaseAssociatesNames] [CAN] INNER JOIN [dbo].[CaseAssoicatesTypes] CAT INNER JOIN [dbo].[AssociateTypes] TYP ON TYP.[CODE] = CAT.[TYPECODE] ON CAT.[NAMECODE] = CAN.[CODE] WHERE RTRIM(ISNULL([CAN].[CODE], '''')) <> '''' AND RTRIM(ISNULL([CAN].[NAME], '''')) <> '''' AND ISNULL(CAT.Retired,''N'') IN (''N'',''' + @Retired + ''')' IF (RTRIM(ISNULL(@lstAssociateTypeCode, '')) <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND [CAT].[TYPECODE] = @lstAssociateTypeCode' END IF @search <> '' BEGIN IF (CHARINDEX('%', @search) <> 1) BEGIN SET @search = '%' + @search END IF (SUBSTRING(@search, LEN(@search), 1) <> '%') BEGIN SET @search = @search + '%' END SET @NCOMMAND = @NCOMMAND + N' AND ( CAN.[NAME] LIKE @search OR CAN.[CODE] LIKE @search OR CAN.[COMPANY] LIKE @search OR CAN.[SALUTATION] LIKE @search OR CAN.[ADDRESS] LIKE @search OR CAN.[LEGALNAME] LIKE @search OR CAN.[LEGALADDRESS] LIKE @search OR CAN.[FORENAME] LIKE @search OR CAN.[SURNAME] LIKE @search OR CAN.[PHONENO] LIKE @search OR CAN.[FAXNO] LIKE @search OR CAN.[HOME] LIKE @search OR CAN.[MOBILENO] LIKE @search OR CAN.[EMAIL] LIKE @search OR CAT.[SEARCHCODE] LIKE @search OR CAN.[SEARCH] LIKE @search OR CAN.[TITLE] LIKE @search OR CAN.[WEBADDRESS] LIKE @search OR CAN.[NOTES] LIKE @search OR CASE WHEN @MustInclude = '''' THEN 0 WHEN @MustInclude = CAN.[CODE] THEN 1 ELSE 0 END = 1) ' END SET @NCOMMAND = @NCOMMAND + ') AS FoundTable SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) )' IF (ISNULL(@orderby, '') = '' OR RTRIM(LTRIM(@orderby)) = '') BEGIN SET @orderby = 'CODE'; END IF (ISNULL(@order, '') = '' OR RTRIM(LTRIM(@order)) = '') BEGIN SET @order = 'ASC'; END SET @NCOMMAND = @NCOMMAND + N' ORDER BY CASE WHEN @MustInclude = '''' THEN 1 WHEN @MustInclude = [CONCODE] THEN 0 ELSE 1 END, ' -- SET DEFAULT ORDER BY CLAUSE; SET @NCOMMAND = @NCOMMAND + CASE WHEN RTRIM(ISNULL(@orderby, '')) = 'CODE' THEN N'[CONCODE]' + @order + '' ELSE N'[TYPECODE]' + @order + ', [CONCODE]' + CONVERT(NVARCHAR(5), @order) + '' END SET @NCOMMAND = @NCOMMAND + ' SELECT (COUNT([Row_Number])) FROM #FoundTable' EXECUTE sp_executesql @NCOMMAND, N'@lstAssociateTypecode VARCHAR(20), @return INT, @search VARCHAR(202), @MustInclude VARCHAR(6) , @StartRow INT, @EndRow INT, @PageNumber INT,@PageSize INT', @lstAssociateTypecode = @lstAssociateTypecode, @return = @return, @search = @search, @MustInclude = @MustInclude, @StartRow=@StartRow, @EndRow=@EndRow, @PageNumber =@PageNumber, @PageSize =@PageSize --SELECT @NCOMMAND SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_load_parameters',N'P') IS NOT NULL DROP PROCEDURE KAAS_load_parameters GO CREATE PROCEDURE KAAS_load_parameters @ReportId INT AS /* NAME: load_parameters This Procedure is used to get report parameter based on the report ID. */ /********************************************************************************************* * * Stored Procedure Name: load_parameters * * Description: This Procedure is used to get report parameter based on the report ID. * Author: Magesh Kumar * Create date: 2014-06-12 * Modification History: * 2019-10-12 Arun Copied from load_parameters * 2023-02-21 Nithyanandham M Modified-Table name has been updated to newly created one * *********************************************************************************************/ BEGIN SET NOCOUNT ON; SELECT CASE WHEN ISNULL(seqno,'')='' THEN ROW_NUMBER() OVER (ORDER BY seqno) ELSE seqno END SeqNo, paramid 'ParamId', userprompt 'UserPrompt', parametername 'Name', parametervalue 'Value', parameterformat 'Format', parametertype 'Type', parameterlength 'Length', defaultvalue 'DefaultValue', requiredfield 'IsRequiredField', userrequest 'AllowUser' , infile 'InFile', listoption 'ListOption', (CASE controltype WHEN 'Entry' THEN (CASE WHEN infile<>'' THEN (CASE WHEN infile = 'Matters' THEN 'AdvanceSearch' ELSE 'Dropdown' END) WHEN (infile ='' and parametertype = 'Date') THEN 'Date' ELSE (CASE WHEN parametertype = 'Number' THEN 'Number' WHEN parametertype = 'Text' THEN 'TextBox' END) END) WHEN 'Check Box' THEN 'CheckBox' WHEN 'List' THEN 'SelectBox' END) as ControlType FROM KaaS_CRParameter WHERE reportid = @ReportId ORDER BY seqno END GO DECLARE @NCOMMAND NVARCHAR(MAX) IF NOT((SELECT SERVERPROPERTY('Edition') AS [Edition]) = 'SQL Azure') BEGIN IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_LogDocumentAccess' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_LogDocumentAccess] END SET @NCOMMAND = N' CREATE PROCEDURE [dbo].[KAAS_LogDocumentAccess] (@TrackReference INT, @Handler VARCHAR(10), @Comment VARCHAR(2000)) AS /************************************************************************************************************* * * * [dbo].[ky_NETSPDocumentAccess] * * * * Log Document Access * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.5.1.2 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2017-10-02 Pino Carafa Created * * 2018-08-09 Pino Carafa Performance Improvement * * 2019-03-20 Pino Carafa Azure Compatibility * * 2019-05-05 Arun V Copied from ky_NETSPDocumentAccess * * 2020-06-25 Rajesh P Changed the [sysprocess] access from [master].[dbo] * * 2022-02-17 Arun V update the entry, which added by trigger on delete functionlity * *************************************************************************************************************/ BEGIN SET @TrackReference = ISNULL(@TrackReference, 0) IF @TrackReference = 0 BEGIN RETURN END IF (@Comment = ''Deleted'') BEGIN DECLARE @LastIdentity INT = (SELECT SCOPE_IDENTITY()) UPDATE [dbo].[DiaryAttachmentAccess] SET [Handler] = @Handler WHERE [TrackReference] = @TrackReference AND [Comment] = ''Deleted'' RETURN END ELSE BEGIN IF (SELECT TOP 1 1 FROM [dbo].[DiaryAttachments] [DAT] WITH (NOLOCK) WHERE [DAT].[TrackReference] = @TrackReference) IS NULL BEGIN RETURN END END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[Handlers] [HAN] WITH (NOLOCK) WHERE [HAN].[CODE] = RTRIM(ISNULL(@Handler, ''''))) BEGIN SELECT @Handler = RTRIM(ISNULL([HAN].[Code], '''')) FROM [dbo].[Handlers] [HAN] WITH (NOLOCK) WHERE [HAN].[CODE] = RTRIM(ISNULL(@Handler, '''')) END ELSE BEGIN SET @Handler = '''' END IF RTRIM(ISNULL(@Handler, '''')) = '''' BEGIN SELECT @Handler = CONVERT(VARCHAR(10), CASE WHEN CHARINDEX(CHAR(0), CONVERT(VARCHAR(MAX), [P].[context_info])) > 0 THEN SUBSTRING(CONVERT(VARCHAR(MAX), [P].[context_info]), 1, CHARINDEX(CHAR(0), CONVERT(VARCHAR(MAX), [P].[context_info])) - 1) ELSE CONVERT(VARCHAR(MAX), [P].[context_info]) END) FROM [master].[dbo].[sysprocesses] P WHERE P.[spid] = @@SPID END SET @Handler = RTRIM(ISNULL(@Handler, ''ADM'')) SET @Comment = CASE WHEN RTRIM(ISNULL(@Comment, '''')) = '''' THEN ''No reason given'' ELSE RTRIM(ISNULL(@Comment, '''')) END INSERT INTO [dbo].[DiaryAttachmentAccess] ([TrackReference], [Handler], [Comment]) VALUES(@TrackReference, @Handler, @Comment) END ' EXECUTE SP_EXECUTESQL @NCOMMAND END ELSE BEGIN IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_LogDocumentAccess' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_LogDocumentAccess] END SET @NCOMMAND = N' CREATE PROCEDURE [dbo].[KAAS_LogDocumentAccess] (@TrackReference INT, @Handler VARCHAR(10), @Comment VARCHAR(2000)) AS /************************************************************************************************************* * * * [dbo].[ky_NETSPDocumentAccess] * * * * Log Document Access * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.5.1.2 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2017-10-02 Pino Carafa Created * * 2018-08-09 Pino Carafa Performance Improvement * * 2019-03-20 Pino Carafa Azure Compatibility * * 2019-05-05 Arun V Copied from ky_NETSPDocumentAccess * * 2020-06-25 Rajesh P Changed the [sysprocess] access from [master].[dbo] * * 2022-02-17 Arun V update the entry, which added by trigger on delete functionlity * *************************************************************************************************************/ BEGIN SET @TrackReference = ISNULL(@TrackReference, 0) IF @TrackReference = 0 BEGIN RETURN END IF (@Comment = ''Deleted'') BEGIN DECLARE @LastIdentity INT = (SELECT SCOPE_IDENTITY()) UPDATE [dbo].[DiaryAttachmentAccess] SET [Handler] = @Handler WHERE [TrackReference] = @TrackReference AND [Comment] = ''Deleted'' RETURN END ELSE BEGIN IF (SELECT TOP 1 1 FROM [dbo].[DiaryAttachments] [DAT] WITH (NOLOCK) WHERE [DAT].[TrackReference] = @TrackReference) IS NULL BEGIN RETURN END END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[Handlers] [HAN] WITH (NOLOCK) WHERE [HAN].[CODE] = RTRIM(ISNULL(@Handler, ''''))) BEGIN SELECT @Handler = RTRIM(ISNULL([HAN].[Code], '''')) FROM [dbo].[Handlers] [HAN] WITH (NOLOCK) WHERE [HAN].[CODE] = RTRIM(ISNULL(@Handler, '''')) END ELSE BEGIN SET @Handler = '''' END IF RTRIM(ISNULL(@Handler, '''')) = '''' BEGIN SELECT @Handler = CONVERT(VARCHAR(10), CASE WHEN CHARINDEX(CHAR(0), CONVERT(VARCHAR(MAX), [P].[context_info])) > 0 THEN SUBSTRING(CONVERT(VARCHAR(MAX), [P].[context_info]), 1, CHARINDEX(CHAR(0), CONVERT(VARCHAR(MAX), [P].[context_info])) - 1) ELSE CONVERT(VARCHAR(MAX), [P].[context_info]) END) FROM [dbo].[sysprocesses] P WHERE P.[spid] = @@SPID END SET @Handler = RTRIM(ISNULL(@Handler, ''ADM'')) SET @Comment = CASE WHEN RTRIM(ISNULL(@Comment, '''')) = '''' THEN ''No reason given'' ELSE RTRIM(ISNULL(@Comment, '''')) END INSERT INTO [dbo].[DiaryAttachmentAccess] ([TrackReference], [Handler], [Comment]) VALUES(@TrackReference, @Handler, @Comment) END ' EXECUTE SP_EXECUTESQL @NCOMMAND END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MachineLogonInfo' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MachineLogonInfo] END GO CREATE PROCEDURE [dbo].[KAAS_MachineLogonInfo] AS /************************************************************************************************************* * * * KAAS_MachineLogonInfo * * Retrieves information on the machines that have logged on to Framework. * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * Original: ky_NETSPMachineLogonInfo * * * * First compatible Framework version: 5.9.2.45 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History: * * 2024-02-14 Pino Carafa Created * * * *************************************************************************************************************/ BEGIN EXEC [dbo].[KAAS_MachineLogonInfoForHandler] @Handler=NULL END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MachineLogonInfoForHandler' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MachineLogonInfoForHandler] END GO CREATE PROCEDURE [dbo].[KAAS_MachineLogonInfoForHandler] (@Handler VARCHAR(10)) AS /************************************************************************************************************* * * * KAAS_MachineLogonInfoForHandler * * Retrieves information on the machines that have logged on to Framework. Can restrict by Handler * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * Original: ky_NETSPMachineLogonInfo * * * * First compatible Framework version: 5.9.2.45 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History: * * 2022-01-12 Pino Carafa Created * * 2022-08-16 Pino Carafa Added Framework Sorting Version * * 2024-02-21 Pino Carafa Added HHID to provide a Key value for Web * * 2024-02-26 Pino Carafa Added "Current" and "LastLogin" columns * * * *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @CURVER BIGINT SELECT @CURVER = MAX([dbo].[ky_NETFNGetBigVersionFromVersion]([FLV].[Version])) FROM ( SELECT [FLL].[Version] FROM [dbo].[FrameworkLogonLog] [FLL] GROUP BY [FLL].[Version]) [FLV] SET @CURVER = ISNULL(@CURVER, CONVERT(BIGINT, 0)) DECLARE @HostIds TABLE ([HostName] NVARCHAR(128) PRIMARY KEY, [ID] BIGINT) DECLARE @HostHandlers TABLE ([HostName] NVARCHAR(128), [Handler] VARCHAR(10), [ID] BIGINT, UNIQUE NONCLUSTERED([Handler], [HostName])) INSERT INTO @HostIds ([HostName], [ID]) select [FLL].[HostName], MAX([FLL].[ID]) AS [LastLoginID] from [dbo].[FrameworkLogonLog] [FLL] WITH (NOEXPAND) GROUP BY [FLL].[HostName] INSERT INTO @HostHandlers ([HostName], [ID], [Handler]) SELECT [HID].[HostName], [HID].[ID], [FLL].[Handler] FROM @HostIds [HID] INNER JOIN [dbo].[FrameworkLogonLog] [FLL] ON [FLL].[HostName] = [HID].[HostName] GROUP BY [HID].[HostName], [HID].[ID], [FLL].[Handler] IF ISNULL(@Handler, '') <> '' BEGIN DELETE @HostHandlers WHERE [Handler] <> @Handler END DELETE @HostHandlers WHERE [Handler] = '' SELECT ROW_NUMBER() OVER(ORDER BY [HH].[HostName], [HH].[ID], [HH].[Handler]) AS [HHID], [HH].[HostName], [HH].[Handler], ISNULL([HN].[NAME], [HH].[Handler]) AS [HandlerName], [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) AS [SortingVersion], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) = @CURVER THEN 'Yes' ELSE 'No' END AS [Current], [LL].[LastLogin] AS [LastLogin], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020044 THEN ISNULL([MCI].[FrameworkVersion], '') ELSE [FLL].[Version] END AS [FrameworkVersion], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020044 THEN ISNULL([MCI].[OutlookAddinVersion], '') ELSE '' END AS [OutlookAddinVersion], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020044 THEN ISNULL([MCI].[OfficeAddinVersion], '') ELSE '' END AS [OfficeAddinVersion], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020044 THEN ISNULL([MCI].[WordVersion], '') ELSE '' END AS [WordVersion], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020044 THEN ISNULL([MCI].[WordBitness], '') ELSE '' END AS [WordBitness], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020044 THEN ISNULL([MCI].[ExcelVersion], '') ELSE '' END AS [ExcelVersion], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020044 THEN ISNULL([MCI].[ExcelBitness], '') ELSE '' END AS [ExcelBitness], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020044 THEN ISNULL([MCI].[PowerPointVersion], '') ELSE '' END AS [PowerPointVersion], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020044 THEN ISNULL([MCI].[PowerPointBitness], '') ELSE '' END AS [PowerPointBitness], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020045 THEN ISNULL([MCI].[OutlookVersion], '') ELSE '' END AS [OutlookVersion], CASE WHEN [dbo].[ky_NETFNGetBigVersionFromVersion]([FLL].[Version]) > 50090020045 THEN ISNULL([MCI].[OutlookBitness], '') ELSE '' END AS [OutlookBitness] FROM @HostHandlers [HH] INNER JOIN [dbo].[FrameworkLogonLog] [FLL] WITH (NOEXPAND) ON [FLL].[ID] = [HH].[ID] CROSS APPLY (SELECT MAX([FL2].[LoginTime]) AS [LastLogin] FROM [dbo].[FrameworkLogonLog] [FL2] WHERE [FL2].[HostName] = [FLL].[HostName]) [LL] LEFT OUTER JOIN [dbo].[HandlerNames] [HN] ON [HN].[CODE] = [HH].[Handler] LEFT OUTER JOIN [dbo].[MachineInfo] [MCI] ON [MCI].[HostName] = [HH].[HostName] ORDER BY [HH].[HostName], [HH].[ID], [HH].[Handler] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MaintainCheckMaster' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MaintainCheckMaster] END GO CREATE PROCEDURE KAAS_MaintainCheckMaster (@MasterName VARCHAR(50), @Code AS CHAR(100), @Description AS VARCHAR(100)='') AS /******************************************************************************************************* * This procedure is used to Check maintain details * * * * Stored Procedure Name : [KAAS_MaintainCheckMaster] * * * * Modification History : * * 2023-11-22 Revathy D Copied from ky_NETMaintainCheckMaster * *******************************************************************************************************/ BEGIN DECLARE @COMMAND VARCHAR(MAX) SET NOCOUNT ON; IF (@MasterName ='Departments') BEGIN IF EXISTS (SELECT * FROM Departments WHERE RTRIM(CODE)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Worktypes') BEGIN IF EXISTS (SELECT * FROM WorkTypes WHERE RTRIM(CODE)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='FeeEarners') BEGIN IF EXISTS (SELECT * FROM FeeEarnerCodes WHERE RTRIM(CODE)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='FileColour') BEGIN IF EXISTS (SELECT * FROM FileColours WHERE RTRIM(COLOURCODE)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Maritals') BEGIN IF EXISTS (SELECT * FROM dbo.MiscCodes WHERE CDETYPE = 'MRS' AND RTRIM(CDECODE)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='TaxType') BEGIN IF EXISTS (SELECT * FROM TaxType WHERE RTRIM(TaxType)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='National') BEGIN IF EXISTS (SELECT * FROM NationCodes WHERE RTRIM(NATION)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Standard Narratives') BEGIN IF EXISTS (SELECT * FROM DesktopNarr WHERE RTRIM(Code)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Admin Codes') BEGIN IF EXISTS (SELECT * FROM TimeAdminCodes WHERE RTRIM(NCCODE)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Billing') BEGIN IF EXISTS (SELECT * FROM dbo.BillDescriptions a WHERE RTRIM(SEARCHFIELD)= RTRIM(@Code)) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Undertaking') BEGIN IF EXISTS (SELECT * FROM UndertakingStatus WHERE RTRIM(StatusDesc)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Tasks') BEGIN IF EXISTS (SELECT * FROM TasksCodes WHERE RTRIM(code)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Category Type') BEGIN IF EXISTS (SELECT * FROM CategoryType WHERE RTRIM(CategoryType)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Contact Category') BEGIN IF EXISTS (SELECT * FROM Category WHERE RTRIM(code)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Branch Code') BEGIN IF EXISTS (SELECT * FROM Branch WHERE RTRIM(BRANCHCODE)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Tax Head') BEGIN IF EXISTS (SELECT * FROM TaxHead WHERE RTRIM(TaxHead)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Salutation') BEGIN IF EXISTS (SELECT * FROM SalutationCodes WHERE RTRIM(code)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Handlers') BEGIN IF EXISTS (SELECT * FROM handlers WHERE RTRIM(code)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Location') BEGIN IF EXISTS (SELECT * FROM ItemLocations WHERE RTRIM(code)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Item Types') BEGIN IF EXISTS (SELECT * FROM ItemTypes WHERE RTRIM(TYPECODE)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='GroupModule') BEGIN IF EXISTS (SELECT * FROM ModuleGroup WHERE RTRIM(GroupName)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='FileType') BEGIN IF EXISTS(SELECT * FROM FileTypes WHERE RTRIM([Type]) = RTRIM(@Code)) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='FileClass') BEGIN IF EXISTS(SELECT * FROM DocumentClasses WHERE RTRIM(CLASSCODE) = RTRIM(@Code)) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Occupation') BEGIN IF EXISTS(SELECT TOP 1 1 FROM MiscCodes WHERE RTRIM(CDECODE ) = RTRIM(@Code) AND RTRIM(CDETYPE) = 'OCC') SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Contact Type') BEGIN IF EXISTS(SELECT TOP 1 1 FROM MiscCodes WHERE RTRIM(CDECODE) = RTRIM(@Code) AND RTRIM(CDETYPE) = 'CCL') SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Client Group') BEGIN IF EXISTS(SELECT TOP 1 1 FROM ClientGroup WHERE RTRIM(GroupCode) = RTRIM(@Code)) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='HandlerChargeGroup') BEGIN IF EXISTS(SELECT TOP 1 1 FROM Handlers WHERE RTRIM(CODE) = RTRIM(@Code)) SELECT 'True' ELSE IF EXISTS(SELECT TOP 1 1 FROM HandlerChargeGroups WHERE RTRIM(code) = RTRIM(@Code)) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='StatusCodes') BEGIN IF EXISTS(SELECT TOP 1 1 FROM StatusCodes WHERE RTRIM(CODE) = RTRIM(@Code)) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='ImportStatusCodes') BEGIN IF EXISTS(SELECT TOP 1 1 FROM StatusCodes WHERE RTRIM(CODE) = RTRIM(@Code) AND RTRIM([DESCRIPTION])=RTRIM(@Description)) SELECT 'Ignore' ELSE BEGIN IF EXISTS(SELECT TOP 1 1 FROM StatusCodes WHERE RTRIM(CODE) = RTRIM(@Code)) SELECT 'Update' ELSE SELECT 'Add' END END ELSE IF (@MasterName ='SDLTForm') BEGIN IF(@Code = '0') BEGIN IF EXISTS(SELECT TOP 1 1 FROM SDLTForm WHERE RTRIM(FormName) = RTRIM(@Description )) SELECT 'True' ELSE SELECT 'False' END ELSE BEGIN IF EXISTS(SELECT TOP 1 1 FROM SDLTForm WHERE RTRIM(FormName) = RTRIM(@Description) AND FormID <> @Code ) SELECT 'True' ELSE SELECT 'False' END END ELSE IF (@MasterName ='Undertaking Category') BEGIN IF EXISTS(SELECT TOP 1 1 FROM UndertakingsCategory WHERE RTRIM(CODE) = RTRIM(@Code)) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='KYCType') BEGIN IF EXISTS(SELECT TOP 1 1 FROM KYCType WHERE RTRIM(PK_Type) != RTRIM(@Code) AND RTRIM([DESCRIPTION]) =@Description ) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='IntroBy') BEGIN IF EXISTS(SELECT TOP 1 1 FROM IntroductionBy WHERE RTRIM(Pk_Intro) != RTRIM(@Code) AND RTRIM([DESCRIPTION]) =@Description ) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='ClientType') BEGIN IF EXISTS(SELECT TOP 1 1 FROM ClientType WHERE RTRIM(PK_ClientType) != RTRIM(@Code) AND RTRIM([DESCRIPTION]) =@Description ) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='ID Code') BEGIN IF EXISTS(SELECT TOP 1 1 FROM IDCodes WHERE RTRIM(IDCode) = RTRIM(@Code)) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='Outlay Code') BEGIN IF [dbo].[ISSAM4]() = 0 BEGIN SET @COMMAND = 'IF EXISTS(SELECT TOP 1 1 FROM OutlayCode WHERE RTRIM(CODE) = RTRIM(''' + Replace(@Code, '''', '''''') + ''')) SELECT ''True'' ELSE SELECT ''False''' EXEC (@COMMAND) END ELSE BEGIN SET @COMMAND = 'IF EXISTS(SELECT TOP 1 1 FROM OutlayCode WHERE RTRIM(OutlayCode) = RTRIM(''' + Replace(@Code, '''', '''''') + ''')) SELECT ''True'' ELSE SELECT ''False''' EXEC (@COMMAND) END END ELSE IF (@MasterName ='Interest') BEGIN IF EXISTS (SELECT * FROM dbo.MiscCodes WHERE CDETYPE = 'IRT' AND RTRIM(CDECODE)=@Code) SELECT 'True' ELSE SELECT 'False' END ELSE IF (@MasterName ='CourtFees') BEGIN IF EXISTS (SELECT * FROM dbo.CourtFees WHERE Code=@Code) SELECT 'True' ELSE SELECT 'False' END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MaintainGetHandlersDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MaintainGetHandlersDetails] END GO CREATE PROCEDURE [dbo].[KAAS_MaintainGetHandlersDetails] (@code VARCHAR(10)) AS /********************************************************************************************* * This stored procedure is used to FETCH handler details by handler code * * Stored Procedure name : KAAS_MaintainGetHandlersDetails * Ky_NETMaintainGetHandlersDetails * * * Modification history: * 2014-05-27 (unknown) Created or last modified before header comment was added. * 2014-12-17 Arun.v Handler charge group functionality added. * 2015-02-11 Pino Code can be up to 10 characters * 2015-06-29 Arun.V Added EmployeeRefNo * 2016-04-01 Suriya KEYD-3398-Allow users to have default value * for chargeable/non-chargeable time * 2016-04-15 Pino Added TradingName and standardised header comment * 2017-12-07 Pino Added Job Title * 2019-11-14 Vinodhan Created KAAS_MaintainGetHandlersDetails 'ADM' * 2021-06-29 Natarajan S Modified - Converting Actual values as Date. *********************************************************************************************/ BEGIN SELECT [HAN].[Code] AS [Code], RTRIM(ISNULL([HAN].[Team], '')) AS [Team], RTRIM(ISNULL([HAN].[TeamCode], 'N')) AS [TeamCode], RTRIM(ISNULL([HAN].[Type], '')) AS [Type], RTRIM(ISNULL([HAN].[Dept], '')) AS [Dept], RTRIM(ISNULL([HAN].[Name], '')) AS [Name], ISNULL([HAN].[Rate], 0) AS [Rate], ISNULL([HAN].[Budget1], 0) AS [Budget1] , ISNULL([HAN].[Budget2], 0) AS [Budget2] , ISNULL([HAN].[Budget3], 0) AS [Budget3] , ISNULL([HAN].[Budget4], 0) AS [Budget4] , ISNULL([HAN].[Budget5], 0) AS [Budget5] , ISNULL([HAN].[Budget6], 0) AS [Budget6] , ISNULL([HAN].[Budget7], 0) AS [Budget7] , ISNULL([HAN].[Budget8], 0) AS [Budget8] , ISNULL([HAN].[Budget9], 0) AS [Budget9] , ISNULL([HAN].[Budget10], 0) AS [Budget10], ISNULL([HAN].[Budget11], 0) AS [Budget11], ISNULL([HAN].[Budget12], 0) AS [Budget12], ISNULL(DATEADD(day, [HAN].[Actual1], '1800/12/28'), 0) AS [Actual1] , ISNULL(DATEADD(day, [HAN].[Actual2], '1800/12/28'), 0) AS [Actual2] , ISNULL(DATEADD(day, [HAN].[Actual3], '1800/12/28'), 0) AS [Actual3] , ISNULL(DATEADD(day, [HAN].[Actual4], '1800/12/28'), 0) AS [Actual4] , ISNULL(DATEADD(day, [HAN].[Actual5], '1800/12/28'), 0) AS [Actual5] , ISNULL(DATEADD(day, [HAN].[Actual6], '1800/12/28'), 0) AS [Actual6] , ISNULL(DATEADD(day, [HAN].[Actual7], '1800/12/28'), 0) AS [Actual7] , ISNULL(DATEADD(day, [HAN].[Actual8], '1800/12/28'), 0) AS [Actual8] , ISNULL(DATEADD(day, [HAN].[Actual9], '1800/12/28'), 0) AS [Actual9] , ISNULL(DATEADD(day, [HAN].[Actual10], '1800/12/28'), 0) AS [Actual10], ISNULL(DATEADD(day, [HAN].[Actual11], '1800/12/28'), 0) AS [Actual11], ISNULL(DATEADD(day, [HAN].[Actual12], '1800/12/28'), 0) AS [Actual12], ISNULL([HAN].[TempCalc], 0) AS [TempCalc], RTRIM(ISNULL([HAN].[Logon], '')) AS [Logon], RTRIM(ISNULL([HAN].[MailAddress], '')) AS [MailAddress], RTRIM(ISNULL([HAN].[TimeCoster], '')) AS [TimeCoster], RTRIM(ISNULL([HAN].[TeamLeader], '')) AS [TeamLeader], ISNULL([HAN].[NoRecentMatters], 0) AS [NoRecentMatters], RTRIM(ISNULL([HAN].[DefaultTask], '')) AS [DefaultTask], RTRIM(ISNULL([HAN].[ExchangeAlias], '')) AS [ExchangeAlias], ISNULL([HAN].[Rate1], 0) AS [Rate1], ISNULL([HAN].[Rate2], 0) AS [Rate2], ISNULL([HAN].[Rate3], 0) AS [Rate3], ISNULL([HAN].[Rate4], 0) AS [Rate4], ISNULL([HAN].[Rate5], 0) AS [Rate5], RTRIM(ISNULL([HAN].[Email], '')) AS [Email], RTRIM(ISNULL([HAN].[Retired], 'N')) AS [Retired], RTRIM(ISNULL([HAN].[Delegate], '')) AS [Delegate], RTRIM(ISNULL([HAN].[OutlookView], '')) AS [OutlookView], RTRIM(ISNULL([HAN].[AutoLaunchTimer], '')) AS [AutoLaunchTimer], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), [Signature]), '')) AS [Signature], RTRIM(ISNULL([HAN].[Phoneno], '')) AS [PhoneNo], RTRIM(ISNULL([HAN].[AutoLaunchKPI], '')) AS [AutoLaunchKPI], ISNULL([HAN].[AxleNumber], 0) AS [AxleNumber], RTRIM(ISNULL([HAN].[ChargeGroup], '')) AS [ChargeGroup], RTRIM(ISNULL([HAN].[Branch], '')) AS [Branch], RTRIM(ISNULL([SET].[Value], '')) AS [SkipWelcomeScreen], RTRIM(ISNULL([FEC].Code, '')) AS [FeCode], RTRIM(ISNULL([FEC].Name, '')) AS [FeName], RTRIM(ISNULL([FEC].Retired, 'N')) AS [FeRetired], RTRIM(ISNULL([HAN].[EmployeeRefNo], '')) AS [EmployeeRefNo], RTRIM(ISNULL([HAN].[IsChargeable], 'C')) AS [Ischargeable], [HAN].[TradingName] AS [TradingName], [HAN].[JobTitle] AS [JobTitle] FROM [dbo].[Handlers] [HAN] LEFT OUTER JOIN FeeEarnerCodes [FEC] ON [FEC].Code =[HAN].MAILADDRESS LEFT OUTER JOIN [dbo].[UserSettings] [SET] ON [SET].[Handler] = @code AND [SET].[KEY] = 'NewMatterWizardDontShowWelcomeScreen' WHERE [HAN].[CODE] = @code END GO IF OBJECT_ID(N'KAAS_MaintainInsertMarital',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainInsertMarital] GO CREATE PROCEDURE [dbo].[KAAS_MaintainInsertMarital] ( @Code VARCHAR(100), @Description VARCHAR(MAX), @Retired VARCHAR(2)) AS /******************************************************************************************************* * This procedure is used to Check maintain details. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainInsertMarital] * * Copied from : [dbo].[ky_NETMaintainCheckMaster] * * [dbo].[Ky_NETMaintainInsertMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN IF EXISTS (SELECT * FROM dbo.MiscCodes WHERE CDETYPE = 'MRS' AND RTRIM(CDECODE)=@code) BEGIN SELECT 'Marital Status code already exist. Please enter a new Marital Status code.' END ELSE BEGIN IF EXISTS(SELECT TOP 1 1 FROM dbo.MiscCodes WHERE RTRIM(CDECODE)=@code AND CDETYPE='MRS') BEGIN UPDATE dbo.MiscCodes SET CDECODE = @code, CDEDESC = @description, Retired = @retired WHERE RTRIM(CDECODE)=@code AND CDETYPE='MRS' END ELSE BEGIN INSERT INTO dbo.MiscCodes (CDETYPE,CDECODE,CDEDESC,Retired) VALUES ('MRS',@code,@description,@retired) END END END GO IF OBJECT_ID(N'KAAS_MaintainInsertOccupation',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainInsertOccupation] GO CREATE PROCEDURE [dbo].[KAAS_MaintainInsertOccupation] ( @Code VARCHAR(100), @Description VARCHAR(MAX)) AS /******************************************************************************************************* * This procedure is used to check maintain details. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainInsertOccupation] * * Copied from : [dbo].[ky_NETMaintainCheckMaster] * * [dbo].[Ky_NETMaintainInsertMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN IF EXISTS(SELECT TOP 1 1 FROM MiscCodes WHERE RTRIM(CDECODE ) = RTRIM(@Code) AND RTRIM(CDETYPE) = 'OCC') BEGIN SELECT 'Occupation code already exist. Please enter a new Occupation code.' END ELSE BEGIN IF EXISTS(SELECT TOP 1 1 FROM MiscCodes WHERE RTRIM(CDECODE) = RTRIM(@Code) AND RTRIM(CDETYPE) = 'OCC') BEGIN UPDATE MiscCodes SET CDEDESC = @Description WHERE RTRIM(CDECODE) = @Code END ELSE BEGIN INSERT INTO misccodes(CDETYPE, CDECODE, CDEDESC, CDETEAM ) VALUES ('OCC',@Code,@Description,'') END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MaintainInsertOrUpdateTasks' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MaintainInsertOrUpdateTasks] END GO CREATE PROCEDURE [dbo].[KAAS_MaintainInsertOrUpdateTasks] (@Mode VARCHAR(50), @Code VARCHAR(6), @Desc VARCHAR(100), @Default FLOAT, @Axle CHAR(1), @Chargelevel CHAR(1), @Department VARCHAR(5), @IsRetired BIT, @Result BIT OUTPUT) AS /**************************************************************************************************** * This SP used to Save details to TasksCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainInsertOrUpdateTasks] * * Copied from : [dbo].[ky_NETMaintainInsertorUpdateTasks] * * * * Modification History: * * 2023-11-29 Revathy D Created * ****************************************************************************************************/ IF(@Mode = 'INSERT') BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[TasksCodes] TSC WHERE TSC.[CODE] = @Code) BEGIN SET @Result = 0 END END IF(@Result = 0) BEGIN SET @Result = 0 END ELSE BEGIN IF EXISTS(SELECT TOP 1 1 FROM [dbo].[TasksCodes] TSC WHERE TSC.[CODE] = @Code) BEGIN SET @Result = 0 UPDATE TSC SET TSC.[CODE] = @Code, TSC.[DESC] = @Desc, TSC.[DEFAULT] = @Default, TSC.[CHARGELEVEL] = @Chargelevel, TSC.[AxleTask] = @Axle, TSC.Department = @Department, TSC.Retired = @IsRetired FROM [dbo].[TasksCodes] TSC WHERE TSC.[CODE] = @Code END ELSE BEGIN INSERT INTO [dbo].[TasksCodes] ([CODE], [DESC], [DEFAULT], [CHARGELEVEL], [AxleTask], Department, Retired) VALUES(@Code, @Desc, @Default, @Chargelevel, @Axle, @Department, @IsRetired ) END SET @Result = 1 END GO IF OBJECT_ID(N'KAAS_MaintainLoadAdminCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadAdminCode] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadAdminCode] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details TimeAdminCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadAdminCode] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT NCCODE 'Code', [DESCRIPTION] 'Description', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM TimeAdminCodes WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired) OR [NCCODE] = @code ORDER BY NCCODE END GO IF OBJECT_ID(N'KAAS_MaintainLoadBilling',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadBilling] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadBilling] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM BillDescriptions table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadBilling] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT Number AS 'BillNumber', BILLDESCRIPTIONS 'Description', SEARCHFIELD 'Search', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM BillDescriptions WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired) OR NUMBER = CONVERT(INT, ISNULL(@Code,0)) END GO IF OBJECT_ID(N'KAAS_MaintainLoadBranchCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadBranchCode] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadBranchCode] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM Branch table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadBranchCode] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT BRANCHCODE 'BranchCode', [Description] FROM Branch ORDER BY BRANCHCODE END GO IF OBJECT_ID(N'KAAS_MaintainLoadCasePlan',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadCasePlan] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadCasePlan] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM TEMPLATES table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadCasePlan] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM([WKCODE]) AS [Code], RTRIM(ISNULL([WKDESC],'')) AS [Description] FROM TEMPLATES WHERE ISNULL([Retired],'N') = 'N' OR [WKCODE] = @Code END GO IF OBJECT_ID(N'KAAS_MaintainLoadCategoryType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadCategoryType] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadCategoryType] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM CategoryType table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadCategoryType] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(CategoryType) AS CategoryType, [Description] FROM CategoryType ORDER BY CategoryType END GO IF OBJECT_ID(N'KAAS_MaintainLoadChargeType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadChargeType] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadChargeType] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM ChargeType table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadChargeType] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT TaxHead, ChargeType, [Description] FROM ChargeType WHERE RTRIM(TAXHEAD)=@Retired ORDER BY ChargeType END GO IF OBJECT_ID(N'KAAS_MaintainLoadClientGroup',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadClientGroup] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadClientGroup] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM ClientGroup table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadClientGroup] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(GroupCode) AS [Code], RTRIM(GroupName) AS [Name] FROM ClientGroup ORDER BY GroupCode END GO IF OBJECT_ID(N'KAAS_MaintainLoadClientType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadClientType] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadClientType] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM ClientType table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadClientType] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(PK_ClientType, 0)) AS Code, RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description], Editable AS Editable FROM ClientType ORDER BY [Description] END GO IF OBJECT_ID(N'KAAS_MaintainLoadContact',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadContact] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadContact] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM MiscCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadContact] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM([CDETYPE]) AS [Type], RTRIM([CDECODE]) AS [Code] , RTRIM([CDEDESC]) AS [Description], RTRIM(CDETEAM) AS [Team] FROM MiscCodes WHERE CDETYPE = @Retired END GO IF OBJECT_ID(N'KAAS_MaintainLoadContactCategory',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadContactCategory] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadContactCategory] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM Category table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadContactCategory] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT B.CATEGORYTYPE 'Type', B.[Description] 'CategoryDescription', A.Code, A.DESC$ 'Description' FROM Category A LEFT OUTER JOIN Categorytype B ON A.CATTYPE= B.CATEGORYTYPE ORDER BY A.CODE END GO IF OBJECT_ID(N'KAAS_MaintainLoadCourtFees',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadCourtFees] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadCourtFees] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM CourtFees table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadCourtFees] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT CODE 'Code', DESCRIPTION 'Description', ISNULL(CHARGECLIENT,0) AS ChargeClient, [VALUE] 'Value', [CLIENTVALUE] 'ClientValue' FROM CourtFees ORDER BY CODE END GO IF OBJECT_ID(N'KAAS_MaintainLoadDepartment',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadDepartment] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadDepartment] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM Departments table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadDepartment] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT DEPT.[CODE] AS [Code], DEPT.[DESC] AS [Description], CASE WHEN RTRIM(ISNULL(DEPT.[Retired], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [Retired] FROM [dbo].[Departments] DEPT WHERE ISNULL(@Retired, 'N') = 'Y' OR ISNULL(DEPT.[Retired], 'N') <> 'Y' OR DEPT.[CODE] = @code ORDER BY DEPT.[CODE] END GO IF OBJECT_ID(N'KAAS_MaintainLoadFeeEarner',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadFeeEarner] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadFeeEarner] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM FeeEarnerCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadFeeEarner] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT FEC.[Code] AS [Code], FEC.[Name] AS [Name], CASE WHEN RTRIM(ISNULL(FEC.[Retired], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [Retired] FROM [dbo].[FeeEarnerCodes] FEC WHERE ISNULL(@Retired, 'N') = 'Y' OR ISNULL(FEC.[Retired], 'N') <> 'Y' OR FEC.[Code] = @code ORDER BY FEC.[CODE] END GO IF OBJECT_ID(N'KAAS_MaintainLoadFileColour',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadFileColour] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadFileColour] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM FileColours table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadFileColour] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(FCL.[ColourCode], '')) AS [FileColour], RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [ColourDescription], ISNULL(FCL.[RGBColour], -1) AS [RGBValue], RTRIM(ISNULL(FCL.[BackgroundColour], 'Transparent')) AS [BackgroundColour], RTRIM(ISNULL(FCL.[ForegroundColour], 'Black')) AS [ForegroundColour], FCL.Retired AS [Retired] FROM [dbo].[FileColours] FCL WHERE ISNULL(@Retired, 'N') = 'Y' OR ISNULL(FCL.[Retired], 'N') <> 'Y' OR FCL.[COLOURCODE] = @code ORDER BY RTRIM(ISNULL(FCL.[COLOURDESC], '')) END GO IF OBJECT_ID(N'KAAS_MaintainLoadGroupModule',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadGroupModule] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadGroupModule] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM ModuleGroup table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadGroupModule] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT GroupID AS [GroupId], RTRIM(GroupName) AS [GroupName], RTRIM(ISNULL([Description],'')) AS [Description] FROM ModuleGroup WHERE GroupName <>'All Handler' ORDER BY GroupName END GO IF OBJECT_ID(N'KAAS_MaintainLoadHandlerChargeGroup',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadHandlerChargeGroup] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadHandlerChargeGroup] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM HandlerChargeGroups table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadHandlerChargeGroup] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT id AS [Id], RTRIM(Code) AS [Code], RTRIM(Name) AS [Name], ISNULL(DefaultRate,0) AS DefaultRate FROM HandlerChargeGroups END GO IF OBJECT_ID(N'KAAS_MaintainLoadHandlers',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadHandlers] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadHandlers] ( @Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM Handlers table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadHandlers] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(TEAMCODE) AS TEAMCODE, RTRIM(Code) AS Code, RTRIM(Name) AS Name, RTRIM(Team) AS Team, RTRIM(Rate) AS Rate, REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired, RTRIM(EMAIL) AS Email, RTRIM(CONVERT(VARCHAR(MAX), [SIGNATURE])) AS [Signature] FROM Handlers WHERE REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired) OR CODE = @Code --OR --REPLACE(Retired,' ','N')='N' ORDER BY CODE END GO IF OBJECT_ID(N'KAAS_MaintainLoadIDCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadIDCode] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadIDCode] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM IDCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadIDCode] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT [Id], RTRIM(ISNULL(IdCode, 0)) AS Code, RTRIM(ISNULL([Description] , '')) AS [Description], Category FROM IDCodes ORDER BY [Id] END GO IF OBJECT_ID(N'KAAS_MaintainLoadInterest',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadInterest] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadInterest] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM MiscCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadInterest] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT CDECODE 'Code', CDEDESC 'Description', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM MiscCodes WHERE CDETYPE = 'IRT' AND (REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired) OR CDECODE = @code) ORDER BY CDECODE END GO IF OBJECT_ID(N'KAAS_MaintainLoadIntroBy',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadIntroBy] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadIntroBy] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM IntroductionBy table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadIntroBy] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(PK_intro, 0)) AS Code, RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description] FROM IntroductionBy ORDER BY [Description] END GO IF OBJECT_ID(N'KAAS_MaintainLoadItemType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadItemType] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadItemType] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM ItemTypes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadItemType] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT ITP.[TypeCode], RTRIM(ISNULL(ITP.[TYPEDESCRIPTION], '')) AS [TypeDescription], ITP.[DeedType], ITP.[WillType] FROM [dbo].[ItemTypes] ITP ORDER BY ITP.[TypeCode] END GO IF OBJECT_ID(N'KAAS_MaintainLoadKPIParameters',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadKPIParameters] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadKPIParameters] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM KPIParameters table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadKPIParameters] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT Id, StartOfYear, FromDate, ToDate, Period, [Year] FROM KPIParameters END GO IF OBJECT_ID(N'KAAS_MaintainLoadKYCType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadKYCType] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadKYCType] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM KYCType table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadKYCType] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(PK_Type, 0)) AS Code, RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description], Editable AS Editable FROM KYCType ORDER BY [Description] END GO IF OBJECT_ID(N'KAAS_MaintainLoadLocation',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadLocation] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadLocation] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM ItemLocations table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadLocation] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM([CODE]) AS [Code], RTRIM([DESCRIPTION]) AS [Description], CASE RTRIM([FULLYN]) WHEN 'Y' THEN 'True' ELSE 'False' END AS [Full], REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM ItemLocations WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired) OR CODE = @Code ORDER BY [CODE] END GO IF OBJECT_ID(N'KAAS_MaintainLoadMarital',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadMarital] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadMarital] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM MiscCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadMarital] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT CDECODE 'Code', CDEDESC 'Description', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM MiscCodes WHERE CDETYPE = 'MRS' AND (REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired) OR CDECODE = @code) ORDER BY CDECODE END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MaintainLoadMaster' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MaintainLoadMaster] END GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadMaster] (@MasterName VARCHAR(50), @Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* *This procedure is used to Fetch details FROM the below listed Masters table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadMaster] 'CategoryType','','BUD' * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History : * * 2019-06-24 Vinodhan K Created * * 2020-12-29 Prabhu V Modified changed the Code and Description Case sensitive * * 2021-06-20 Balamurugan C Modified Added Nominal Reporting Sequences Master Grid Details * * 2021-06-21 Balamurugan C Modified Added VAT Code Master Grid Details * * 2021-06-22 Balamurugan C Modified Added Payment Methods File Master Grid Details * * 2021-07-01 Prabhu V Modified File Colour removed duplicate code block * * 2023-05-24 Vignesh M Modified Removed Extra white space in Char columns * * 2023-06-19 Vignesh M Modified Removed Extra white space in Char columns * * 2023-08-22 Ghayathri.S.V Modified the admin codes to fetch the grid data * * 2023-08-23 Ghayathri.S.V Modified the client Type and billing to fetch the grid data * * 2023-08-24 Ghayathri.S.V Modified the client group to fetch the grid data * * 2023-08-28 Ghayathri.S.V Inserted the Document CLass and Type to fetch the grid data * * 2023-08-29 Ghayathri.S.V Modified the Marital Status,Tax Type, Narratives,Tax Head, Salutation Codes to fetch the grid data * * 2023-09-05 Ghayathri.S.V Modified the Contact Type and Occupation to fetch the grid data * * 2023-09-27 Ghayathri.S.V Inserted the Comments column while fetching VATCODES grid data * * 2023-10-19 Vignesh M Modified Removed Extra white space in Nominal Reporting Seq * * 2023-11-23 Revathy.D Modified Handler charge group, intro by and ID code to * fetch the grid data * * 2023-11-28 Revathy.D Modified Item Type, KYC Type and location code to * fetch the grid data * * 2023-12-13 Vignesh M Modified Retired field added in Vat Codes * * 2023-12-14 Vignesh M Modified Retired field added in Nominal Types * * 2023-12-18 Revathy.D Modified Alias name of Charge Type * *******************************************************************************************************/ BEGIN IF (@MasterName='Departments') BEGIN SELECT [DEPT].[CODE] AS [Code], [DEPT].[DESC] AS [Description], [DEPT].[Retired] AS [Retired] FROM [dbo].[Departments] DEPT WHERE [DEPT].[CODE] = @code OR @Code = '' ORDER BY [DEPT].[CODE] END ELSE IF (@MasterName='Worktypes') BEGIN SELECT [WKT].[CODE] AS [Code], [WKT].[DESC] AS [Description], [WKT].[Retired] AS [Retired] FROM [dbo].[WorkTypes] WKT WHERE [WKT].[CODE] = @code OR @Code = '' ORDER BY [WKT].[CODE] END ELSE IF (@MasterName='NominalTypes') BEGIN SELECT LTRIM(RTRIM([NTS].[NTYCODE])) AS [Code], [NTS].[NTYDESC] AS [Description], REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM [dbo].[NominalTypes] NTS WHERE [NTS].[NTYCODE] = @code OR @Code = '' ORDER BY [NTS].[NTYCODE] END ELSE IF (@MasterName='CategoryType') BEGIN SELECT LTRIM(RTRIM(CAT.[CategoryType])) AS [Code], CAT.[Description] AS [Description] FROM [dbo].[CategoryType] CAT WHERE CAT.[CategoryType] = @code OR @Code = '' ORDER BY CAT.[CategoryType] END ELSE IF (@MasterName='NationCodes') BEGIN SELECT LTRIM(RTRIM([NAT].[NATION])) AS [Code], [NAT].[DESC] AS [Description] FROM [dbo].NationCodes NAT WHERE [NAT].[NATION] = @Code OR @Code = '' ORDER BY [NAT].[NATION] END ELSE IF (@MasterName='DepositType') BEGIN SELECT LTRIM(RTRIM([DPT].[CODE])) AS [Code], [DPT].[DESCRIPTION] AS [Description] FROM [dbo].DepositType DPT WHERE [DPT].[CODE] = @Code OR @Code = '' ORDER BY [DPT].[CODE] END ELSE IF (@MasterName='OutlayCode') BEGIN SELECT LTRIM(RTRIM([OLC].[CODE])) AS [Code], [OLC].[DESCRIPTION] AS [Description] FROM [dbo].OutlayCode OLC WHERE [OLC].[CODE] = @Code OR @Code = '' ORDER BY [OLC].[CODE] END ELSE IF (@MasterName='Narratives') BEGIN SELECT LTRIM(RTRIM([NAR].[CODE])) AS [Code], [NAR].[NARRATIVE] AS [Description] FROM [dbo].Narratives NAR WHERE [NAR].[CODE] = @Code OR @Code = '' ORDER BY [NAR].[CODE] END ELSE IF (@MasterName='ServiceCodes') BEGIN SELECT LTRIM(RTRIM([SVC].[CODE])) AS [Code], [SVC].[DESCRIPTION] AS [Description] FROM [dbo].ServiceCodes SVC WHERE [SVC].[CODE] = @Code OR @Code = '' ORDER BY [SVC].[CODE] END ELSE IF (@MasterName='Branch') BEGIN SELECT LTRIM(RTRIM([BRAN].[BRANCHCODE])) AS [Code], [BRAN].[DESCRIPTION] AS [Description], CASE [BRAN].[Retired] WHEN 1 THEN 'Y' ELSE 'N' END AS [Retired] FROM [dbo].[Branch] BRAN WHERE [BRAN].[BRANCHCODE] = @code OR @Code = '' ORDER BY [BRAN].[BRANCHCODE] END ELSE IF (@MasterName='UndertakingStatus') BEGIN SELECT RTRIM(RecordID) AS Code, RTRIM(StatusDesc) AS 'Description', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM UndertakingStatus WHERE RecordID = CONVERT(INT, ISNULL(@Code,0)) OR @Code='' END ELSE IF (@MasterName='FeeEarners') BEGIN SELECT FEC.[Code] AS [Code], FEC.[Name] AS [Name], CASE WHEN RTRIM(ISNULL(FEC.[Retired], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [Retired] FROM [dbo].[FeeEarnerCodes] FEC ORDER BY FEC.[CODE] END ELSE IF (@MasterName='FileColours') BEGIN SELECT RTRIM(ISNULL(FCL.[ColourCode], '')) AS [Code], RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [Description], ISNULL(FCL.[RgbColour], -1) AS [RgbColour], RTRIM(ISNULL(FCL.[BackgroundColour], 'Transparent')) AS [BackgroundColour], RTRIM(ISNULL(FCL.[ForegroundColour], 'Black')) AS [ForegroundColour], FCL.Retired AS [Retired] FROM [dbo].[FileColours] FCL WHERE ISNULL(@code,'') = '' OR FCL.[COLOURCODE] = @code ORDER BY RTRIM(ISNULL(FCL.[COLOURDESC], '')) END ELSE IF (@MasterName='Maritals') BEGIN SELECT CDECODE 'Code', CDEDESC 'Description', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM MiscCodes WHERE ( @Code = '' AND CDETYPE = 'MRS' AND (REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',Retired) OR CDECODE = @code) ) OR CDECODE = @code ORDER BY CDECODE END ELSE IF (@MasterName='TaxType') BEGIN SELECT TaxType as 'Code', TaxDesc as 'Description' FROM TaxType WHERE ( @Code = '' ) OR TaxType = @Code ORDER BY TaxType END ELSE IF (@MasterName='DesktopNarr') BEGIN SELECT Code, Narrative as [Description], REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM DesktopNarr WHERE ( @Code = '' AND REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired) OR [Code] = @code ) OR [Code] = @code ORDER BY CODE END ELSE IF (@MasterName='TimeAdminCodes') BEGIN SELECT NCCODE 'Code', [DESCRIPTION] 'Description', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM TimeAdminCodes WHERE ( @Code = '' AND (REPLACE(ISNULL(Retired, 'N'), ' ', 'N') IN ('N', Retired) OR [NCCODE] = @Code) ) OR [NCCODE] = @Code ORDER BY NCCODE END ELSE IF (@MasterName='BillDescriptions') BEGIN SELECT Number AS 'Code', BILLDESCRIPTIONS 'Description', SEARCHFIELD 'CodeDescription', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM BillDescriptions WHERE ( @Code = '' AND (REPLACE(ISNULL(Retired, 'N'), ' ', 'N') IN ('N', Retired) OR Number = @Code) ) OR Number = @Code END ELSE IF (@MasterName='Tasks') BEGIN SELECT Code, [DESC] 'Description', [Default] 'Rate', CASE WHEN Retired = 1 THEN 'Y' ELSE 'N' END AS Retired, CHARGELEVEL 'Status', Department 'Category', CASE WHEN AxleTask = 'Y' THEN 'Y' ELSE 'N' END AS [Type] FROM TasksCodes WHERE REPLACE(ISNULL(Retired,'0'),' ','0') = 0 OR REPLACE(ISNULL(Retired,'0'),' ','0') = @Retired OR CODE = @Code ORDER BY CODE END ELSE IF (@MasterName='Contact Category') BEGIN SELECT B.CATEGORYTYPE 'Type', B.[Description] 'Category', A.Code, A.DESC$ 'Description' FROM Category A LEFT OUTER JOIN Categorytype B ON A.CATTYPE= B.CATEGORYTYPE ORDER BY A.CODE END ELSE IF (@MasterName='Handlers') BEGIN SELECT RTRIM(TEAMCODE) AS TEAMCODE, RTRIM(Code) AS Code, RTRIM(Name) AS Name, RTRIM(Team) AS Team, RTRIM(Rate) AS Rate, REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired, RTRIM(EMAIL) AS Email, RTRIM(CONVERT(VARCHAR(MAX), [SIGNATURE])) AS [Signature] FROM Handlers WHERE REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired) OR CODE = @Code --OR --REPLACE(Retired,' ','N')='N' ORDER BY CODE END ELSE IF (@MasterName='TaxHead') BEGIN SELECT TAXHEAD AS 'Code', [Description] AS 'Description' FROM TaxHead WHERE ( @Code = '' ) OR TAXHEAD = @Code ORDER BY TAXHEAD END ELSE IF (@MasterName='SalutationCodes') BEGIN SELECT RTRIM(Code) AS Code, RTRIM(ISNULL([Description],'')) AS [Description] FROM SalutationCodes WHERE ( @Code = '' ) OR Code = @Code ORDER BY Code END ELSE IF (@MasterName='Charge Type') BEGIN SELECT TaxHead [Type], ChargeType [Code], [Description] FROM ChargeType WHERE RTRIM(TAXHEAD)=@Retired ORDER BY ChargeType END ELSE IF(@MasterName = 'Item Types') BEGIN SELECT ITP.[TYPECODE] AS Code, RTRIM(ISNULL(ITP.[TYPEDESCRIPTION], '')) AS [Description], (CASE WHEN ISNULL(ITP.[DeedType],0) = 0 THEN 'N' ELSE 'Y' END) AS [Type], (CASE WHEN ISNULL(ITP.[WillType],0) = 0 THEN 'N' ELSE 'Y' END) AS Category FROM [dbo].[ItemTypes] ITP WHERE ( @Code = '' ) OR RTRIM(ISNULL(ITP.[TYPECODE], 0))= @Code ORDER BY ITP.[TYPECODE] END ELSE IF (@MasterName='Location') BEGIN SELECT RTRIM([CODE]) AS [Code], RTRIM([DESCRIPTION]) AS [Description], REPLACE(ISNULL(FULLYN,'N'),' ','N') AS [Type], REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM ItemLocations WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired) OR CODE = @Code ORDER BY [CODE] END ELSE IF (@MasterName='GroupModule') BEGIN SELECT GroupID, RTRIM(GroupName) AS GroupName, RTRIM(ISNULL([Description],'')) AS [Description] FROM ModuleGroup WHERE GroupName <>'All Handler' ORDER BY GroupName END ELSE IF (@MasterName='Contact Type') BEGIN SELECT RTRIM([CDETYPE]) AS [Type], RTRIM([CDECODE]) AS [Code] , RTRIM([CDEDESC]) AS [Description] FROM MiscCodes WHERE ( (@Code = '' AND CDETYPE = 'CCL') OR CDECODE = @code ) OR CDECODE = @code END ELSE IF (@MasterName='Occupation') BEGIN SELECT RTRIM([CDETYPE]) AS [Type], RTRIM([CDECODE]) AS [Code] , RTRIM([CDEDESC]) AS [Description] FROM MiscCodes WHERE ( (@Code = '' AND CDETYPE = 'OCC') OR CDECODE = @code ) OR CDECODE = @code END ELSE IF (@MasterName='ClientGroup') BEGIN SELECT RTRIM(GroupCode) AS [Code], RTRIM(GroupName) AS [Description] FROM ClientGroup WHERE ( @Code = '' ) OR GroupCode = @Code ORDER BY GroupCode END ELSE IF (@Mastername='HandlerChargeGroup') BEGIN SELECT id AS [Id], RTRIM(Code) AS [Code], RTRIM(Name) AS [Name], ISNULL(DefaultRate,0) AS [Rate] FROM HandlerChargeGroups WHERE ( @Code = '' ) OR RTRIM(Code) = @Code END ELSE IF (@Mastername='StatusCodes') BEGIN SELECT RTRIM(Code) AS [Code], RTRIM([Description]) AS [Description], REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM StatusCodes WHERE ( @Code = '' AND REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',Retired) OR [Code] = @code ) OR [Code] = @code END ELSE IF (@MasterName = 'UDFCategory') BEGIN SELECT RTRIM(ISNULL(A.id , '')) AS 'Code', RTRIM(ISNULL(A.UDFCategory , '')) AS 'Description' FROM UDFCategory A WHERE ( @Code = '' ) OR A.id = @Code ORDER BY A.id END ELSE IF (@MasterName = 'SDLTForm') BEGIN SELECT A.FormID AS [FormID], RTRIM(ISNULL(A.FormName , '')) AS [FormName], RTRIM(ISNULL(A.[Description] , '')) AS [Description] FROM SDLTForm A ORDER BY A.FormID END ELSE IF (@MasterName = 'SDLTFormParameter') BEGIN SELECT A.FormID AS [FormID], RTRIM(ISNULL(A.FieldName , '')) AS [FieldName], RTRIM(ISNULL(A.[Value] , '')) AS [Value], A.isText As [Text] FROM SDLTFormParameters A WHERE A.FormID = @Retired ORDER BY A.FormID END ELSE IF (@MasterName = 'UndertakingsCategory') BEGIN SELECT RTRIM(ISNULL(U.CODE , '')) AS [Code], RTRIM(ISNULL(U.[DESCRIPTION] , '')) AS [Description] FROM UndertakingsCategory U WHERE ( @Code = '' ) OR U.CODE = @Code ORDER BY CODE END ELSE IF (@MasterName = 'KYCType') BEGIN SELECT RTRIM(ISNULL(PK_Type, 0)) AS Code, RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description], (CASE WHEN ISNULL(Editable,0) = 0 THEN 'N' ELSE 'Y' END) AS [Type] FROM KYCType WHERE ( @Code = '' ) OR RTRIM(ISNULL(PK_Type, 0))= @Code ORDER BY [Description] END ELSE IF (@MasterName = 'IntroBy') BEGIN SELECT RTRIM(ISNULL(PK_intro, 0)) AS Code, RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description] FROM IntroductionBy WHERE ( @Code = '' ) OR RTRIM(ISNULL(PK_intro, 0))= @Code ORDER BY [Description] END ELSE IF (@MasterName = 'ClientType') BEGIN SELECT RTRIM(ISNULL(PK_ClientType, 0)) AS Code, RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description], Editable as Editable FROM ClientType WHERE ( @Code = '' ) OR PK_ClientType = @Code ORDER BY [Description] END ELSE IF (@MasterName = 'ID Code') BEGIN SELECT [Id], RTRIM(ISNULL(IdCode, 0)) AS Code, RTRIM(ISNULL([Description] , '')) AS [Description], Category FROM IDCodes WHERE ( @Code = '' ) OR RTRIM(ISNULL(IdCode, 0))= @Code ORDER BY [Id] END ELSE IF (@MasterName = 'KPI Parameters') BEGIN SELECT Id, StartOfYear, FromDate, ToDate, Period, [Year] FROM KPIParameters END ELSE IF (@MasterName = 'Case Plan') BEGIN SELECT RTRIM([WKCODE]) AS [Code], RTRIM(ISNULL([WKDESC],'')) AS [Desc] FROM TEMPLATES WHERE ISNULL([Retired],'N') = 'N' OR [WKCODE] = @Code END ELSE IF (@MasterName='Interest') BEGIN SELECT CDECODE 'Code', CDEDESC 'Description', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM MiscCodes WHERE CDETYPE = 'IRT' AND (REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired) OR CDECODE = @code) ORDER BY CDECODE END ELSE IF (@MasterName='CourtFees') BEGIN SELECT CODE 'Code', DESCRIPTION 'Description', ISNULL(CHARGECLIENT,0) AS ChargeClient, [VALUE] 'Value', [CLIENTVALUE] 'ClientValue' FROM CourtFees ORDER BY CODE END ELSE IF (@MasterName='NominalReportingSeq') BEGIN SELECT LTRIM(RTRIM([CODE])) 'Code', LTRIM(RTRIM([DESC])) 'Description', [PB] 'Status' FROM [dbo].[NominalReportSeq] ORDER BY [CODE] END ELSE IF (@MasterName='VatCodes') BEGIN SELECT [CODE] 'Code', [RATE] 'Rate', [Comments] 'Comments', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM [dbo].[VATCodes] ORDER BY [CODE] END ELSE IF (@MasterName='PaymentMethods') BEGIN SELECT [id] 'Id', [Description] 'Description', [ClearDays] 'ClearDays', CASE WHEN [Retired]=1 THEN 'Y' ELSE 'N' END as 'Retired' FROM [dbo].[PaymentMethods] ORDER BY [id] END ELSE IF (@MasterName='DocumentClasses') BEGIN SELECT CLASSCODE AS 'Code', CLASSDESCRIPTION AS 'Description', RTRIM(ISNULL(RETIRED, '' )) AS Retired FROM dbo.[DocumentClasses] WHERE ( @Code = '' AND (REPLACE(ISNULL(Retired, 'N'), ' ', 'N') IN ('N', Retired) OR CLASSCODE = @Code) ) OR CLASSCODE = @Code ORDER BY CLASSCODE END ELSE IF (@MasterName='filetypes') BEGIN SELECT RTRIM(ISNULL(UPPER([Type]), '')) AS 'Code', RTRIM(ISNULL([Description],'')) AS 'Description', RTRIM(ISNULL([FilePath], '')) AS 'FilePath' FROM [dbo].[FileTypes] FTY WHERE ( @Code = '' ) OR [Type] = @Code ORDER BY [Type] END ELSE IF (@MasterName='SMSTemplates') BEGIN SELECT RTRIM(ISNULL(UPPER([Code]), '')) AS 'Code', RTRIM(ISNULL([Message],'')) AS 'Description', REPLACE(ISNULL(Retired,0),' ',0) AS 'Retired' FROM [dbo].[SMSMessageTemplates] SMS WHERE ( @Code = '' ) OR [Code] = @Code ORDER BY [Code] END END GO IF OBJECT_ID(N'KAAS_MaintainLoadNational',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadNational] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadNational] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM NationCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadNational] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT NATION 'Code', [DESC] 'Description' FROM NationCodes ORDER BY NATION END GO IF OBJECT_ID(N'KAAS_MaintainLoadOutlayCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadOutlayCode] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadOutlayCode] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM OutlayCode table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadOutlayCode] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN IF [dbo].[ISSAM4]() = 0 BEGIN EXEC (' SELECT RTRIM(ISNULL(OLC.[Code], '''')) AS [Code], RTRIM(ISNULL(OLC.[Description], '''')) AS [Description] FROM [dbo].[OutlayCode] OLC ORDER BY OLC.[Code]') END ELSE BEGIN EXEC (' SELECT RTRIM(ISNULL(OLC.[OutlayCode], '''')) AS [Code], RTRIM(ISNULL(OLC.[Description], '''')) AS [Description] FROM [dbo].[OutlayCode] OLC ORDER BY OLC.[OutlayCode]') END END GO IF OBJECT_ID(N'KAAS_MaintainLoadSalutation',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadSalutation] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadSalutation] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM SalutationCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadSalutation] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(Code) AS Code, RTRIM(ISNULL([Description],'')) AS [Description] FROM SalutationCodes ORDER BY Code END GO IF OBJECT_ID(N'KAAS_MaintainLoadSDLTForm',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadSDLTForm] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadSDLTForm] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM SDLTForm table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadSDLTForm] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT A.FormID AS [FormId], RTRIM(ISNULL(A.FormName , '')) AS [FormName], RTRIM(ISNULL(A.[Description] , '')) AS [Description] FROM SDLTForm A ORDER BY A.FormID END GO IF OBJECT_ID(N'KAAS_MaintainLoadSDLTFormParameter',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadSDLTFormParameter] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadSDLTFormParameter] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM SDLTFormParameters table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadSDLTFormParameter] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT A.FormID AS [FormID], RTRIM(ISNULL(A.FieldName , '')) AS [FieldName], RTRIM(ISNULL(A.[Value] , '')) AS [Value], A.isText As [Text] FROM SDLTFormParameters A WHERE A.FormID = @Retired ORDER BY A.FormID END GO IF OBJECT_ID(N'KAAS_MaintainLoadStandardNarrative',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadStandardNarrative] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadStandardNarrative] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM DesktopNarr table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadStandardNarrative] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT Code, Narrative, REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM DesktopNarr WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired) OR [Code] = @code ORDER BY CODE END GO IF OBJECT_ID(N'KAAS_MaintainLoadStatusCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadStatusCode] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadStatusCode] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM StatusCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadStatusCode] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(Code) AS [Code], RTRIM([Description]) AS [Description], REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM StatusCodes WHERE RTRIM(CODE) != '' AND REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired) OR CODE = @Code END GO IF OBJECT_ID(N'KAAS_MaintainLoadTask',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadTask] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadTask] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM TasksCodes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadTask] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT Code, [DESC] 'Description', [Default], CASE WHEN Retired = 1 THEN 'Y' ELSE 'N' END AS Retired FROM TasksCodes WHERE REPLACE(ISNULL(Retired,'0'),' ','0') = 0 OR REPLACE(ISNULL(Retired,'0'),' ','0') = @Retired OR CODE = @Code ORDER BY CODE END GO IF OBJECT_ID(N'KAAS_MaintainLoadTaxHead',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadTaxHead] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadTaxHead] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM TaxHead table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadTaxHead] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT TAXHEAD 'TaxHead', [Description] FROM TaxHead ORDER BY TAXHEAD END GO IF OBJECT_ID(N'KAAS_MaintainLoadTaxType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadTaxType] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadTaxType] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM TaxType table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadTaxType] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT TaxType 'TaxType', TaxDesc 'TaxDescription' FROM TaxType ORDER BY TaxType END GO IF OBJECT_ID(N'KAAS_MaintainLoadUDFCategory',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadUDFCategory] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadUDFCategory] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM UDFCategory table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadUDFCategory] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(A.id , '')) AS [Id], RTRIM(ISNULL(A.UDFCategory , '')) AS [UDFCategory] FROM UDFCategory A ORDER BY A.id END GO IF OBJECT_ID(N'KAAS_MaintainLoadUndertaking',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadUndertaking] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadUndertaking] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM UndertakingStatus table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadUndertaking] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(RecordID) AS RecordId, RTRIM(StatusDesc) AS 'Status', REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired FROM UndertakingStatus WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N', @Retired) OR RecordID = CONVERT(INT, ISNULL(@Code,0)) END GO IF OBJECT_ID(N'KAAS_MaintainLoadUndertakingCategory',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadUndertakingCategory] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadUndertakingCategory] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM UndertakingsCategory table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadUndertakingCategory] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT RTRIM(ISNULL(U.CODE , '')) AS [Code], RTRIM(ISNULL(U.[DESCRIPTION] , '')) AS [Description] FROM UndertakingsCategory U ORDER BY CODE END GO IF OBJECT_ID(N'KAAS_MaintainLoadWorkType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainLoadWorkType] GO CREATE PROCEDURE [dbo].[KAAS_MaintainLoadWorkType] (@Retired VARCHAR(4), @Code VARCHAR(10) = '') AS /******************************************************************************************************* * This SP used to Fetch details FROM WorkTypes table. * * * * Stored Procedure Name : [dbo].[KAAS_MaintainLoadWorkType] * * Copied from : [dbo].[ky_NETMaintainLoadMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SELECT WKT.[CODE] AS [Code], WKT.[DESC] AS [Description], CASE WHEN RTRIM(ISNULL(WKT.[Retired], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [Retired], CASE WHEN RTRIM(ISNULL(WKT.[ChildCare], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [ChildCare] FROM [dbo].[WorkTypes] WKT WHERE ISNULL(@Retired, 'N') = 'Y' OR ISNULL(WKT.[Retired], 'N') <> 'Y' OR WKT.[CODE] = @code ORDER BY WKT.[CODE] END GO IF OBJECT_ID(N'KAAS_MaintainMiscCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MaintainMiscCode] GO CREATE PROCEDURE [dbo].[KAAS_MaintainMiscCode] ( @CodeType VARCHAR(20), @Code VARCHAR(100), @Description VARCHAR(MAX), @Retired VARCHAR(2), @ActionType VARCHAR(20)) AS /******************************************************************************************************* * This procedure is used to insert/update/check weather misc code is already exist or not * * if @ActionType is Insert then it will check for its existence, if the ActionType is Update * * then, it will update * * * * Stored Procedure Name : [dbo].[KAAS_MaintainMiscCode] * * Copied from : [dbo].[ky_NETMaintainCheckMaster] * * [dbo].[Ky_NETMaintainInsertMaster] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2019-07-19 Arun make this procedure as generic to insert Misc codes * *******************************************************************************************************/ BEGIN IF (@ActionType = 'Insert') BEGIN IF EXISTS (SELECT TOP 1 1 FROM dbo.MiscCodes WHERE CDETYPE = @CodeType AND RTRIM(CDECODE)=@code) BEGIN SELECT 'Marital Status code already exist. Please enter a new Marital Status code.' END ELSE BEGIN INSERT INTO dbo.MiscCodes ( CDETYPE, CDECODE, CDEDESC, Retired ) VALUES ( @CodeType, @code, @description, @retired ) END END ELSE BEGIN UPDATE dbo.MiscCodes SET CDECODE = @code, CDEDESC = @description, Retired = @retired WHERE RTRIM(CDECODE)=@code AND CDETYPE=@CodeType END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MarkTimeEntryStatus' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MarkTimeEntryStatus] END GO CREATE PROCEDURE [dbo].[KAAS_MarkTimeEntryStatus] (@RecordID INT, @Status BIT, @InvoiceNo INT, @Handler VARCHAR(10), @User NVARCHAR(128)) AS /******************************************************************************************************* * Mark the time entry as billed in Time Ledger. * * * * Stored Procedure Name : [dbo].[KAAS_MarkTimeEntryStatus] ` * * Copied from : [dbo].[ky_NETMarkTimeEntryStatus] * * * * Modification History: * * 2015-11-12 Pino Carafa Imported into Framework Release 2 * * KEYD - 2894 - Log user data and timestamp * * 2016-01-04 John Ginnane KEYD-3097 - Added @Status variable to @NCOMMAND dynamic SQL * * No longer setting [BilledAmount] for SAM4 systems * * 2019-07-25 Vinodhan K Procedure name changed as KAAS_MarkTimeEntryStatus * *******************************************************************************************************/ BEGIN SET @Handler = RTRIM(ISNULL(@Handler, '')) SET @User = RTRIM(ISNULL(@User, N'')) DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @ISSAM4 BIT SET @ISSAM4 = [dbo].[ISSAM4]() SET @NCOMMAND = N'INSERT INTO [dbo].[TimeEntryLogNew] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [CHARGE], [TASK], [TIMEORCHARGE], [COMMENT], [BILLED], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [SHOULDHAVE], [INVOICENO], [PERIOD], [YEAR], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [RECORDID], [ActionId], [StageCode], [Leave], [BilledAmount], [IncludeInBill], [BILLINGDATE], [AxleNumber], [WriteOffDT], [WriteOffID], [LogFor]' IF @Handler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', [HandlerLogFor]' END IF @User <> N'' BEGIN SET @NCOMMAND = @NCOMMAND + N', [LoginLogFor]' END SET @NCOMMAND = @NCOMMAND + N') SELECT [TIE].[MATTER], [TIE].[FEEEARN], [TIE].[DATE], [TIE].[TIME], [TIE].[RATE], [TIE].[CHARGE], [TIE].[TASK], [TIE].[TIMEORCHARGE], [TIE].[COMMENT], [TIE].[BILLED], [TIE].[NCCODE], [TIE].[DOCKET], [TIE].[TEAM], [TIE].[TRACKREF], [TIE].[REC_IRR], [TIE].[SHOULDHAVE], [TIE].[INVOICENO], [TIE].[PERIOD], [TIE].[YEAR], [TIE].[BILLINGPERIOD], [TIE].[BILLINGYEAR], [TIE].[OPENINV], [TIE].[RECORDID], [TIE].[ActionId], [TIE].[StageCode], [TIE].[Leave], [TIE].[BilledAmount], [TIE].[IncludeInBill], [TIE].[BILLINGDATE], [TIE].[AxleNumber], [TIE].[WriteOffDT], [TIE].[WriteOffID], CASE WHEN ISNULL(@Status, 0) = 0 THEN ''U'' ELSE ''B'' END' IF @Handler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @Handler' END IF @User <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @User' END SET @NCOMMAND = @NCOMMAND + N' FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @RecordID' EXEC sp_executesql @NCOMMAND, N'@RecordID INT, @Handler VARCHAR(10), @User NVARCHAR(128), @Status BIT', @RecordID, @Handler, @User, @Status DECLARE @MatterCode VARCHAR(20) IF ISNULL(@Status, 0) = 0 --Unbilled BEGIN UPDATE [TIE] SET [TIE].[INVOICENO] = 0, [TIE].[BilledAmount] = 0, @MatterCode = [TIE].[Matter] FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @RecordID END ELSE -- Billed BEGIN UPDATE [TIE] SET [TIE].[INVOICENO] = ISNULL(@InvoiceNo, 0), [TIE].[BilledAmount] = (CASE WHEN @ISSAM4 = 1 THEN [BilledAmount] ELSE ISNULL([TIE].[Charge], 0) END), @MatterCode = [TIE].[Matter] FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @RecordID END EXEC [dbo].[KAAS_UpdateMatterTimeBalance] @MatterCode END GO IF OBJECT_ID(N'[KAAS_MATFetchOldChargeRates]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_MATFetchOldChargeRates] GO CREATE PROCEDURE [KAAS_MATFetchOldChargeRates] ( @MatterCode VARCHAR(20), @FeCode VARCHAR(20), @OldRates VARCHAR(20) OUTPUT ) AS /******************************************************************************************************* * This procedrue is used to FETCH Matter charge rate old rates. * * * * Stored Procedure Name : [dbo].[KAAS_MATFetchOldChargeRates] * * Copied from : [dbo].[ky_NETMATFetchOldChargeRates] * * * * Modification History : * * 2019-04-16 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SET @OldRates = (SELECT ISNULL(LastRate,'0.0') FROM MatterChargeOutRates WHERE MatterCode=@MatterCode AND FeCode = @FeCode) SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_MatterClosable' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MatterClosable] END GO CREATE PROCEDURE [dbo].[KAAS_MatterClosable] (@MATTER VARCHAR(20)) AS /******************************************************************************************************* * Get the parameters to establish whether a matter can be closed at this point. * * Please note that Bal, Rec, Diary and Undertakings should prevent a matter from closing, while * * Time and Charge should lead to a warning and the user can decide to close the matter anyway. * * * * Stored Procedure Name : [dbo].[KAAS_MatterClosable] * * Copied from : [dbo].[ky_NETPMatterClosable] * * * * Modification History : * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @AlreadyClosed INT DECLARE @HasOutstandingRec INT DECLARE @HasOutstandingBal INT DECLARE @HasOutstandingTimeBal INT DECLARE @HasOutstandingChargeBal INT DECLARE @HasOutstandingDiary INT DECLARE @HasOutstandingUndertakings INT DECLARE @IsSAM4 bit SET @IsSAM4 = [dbo].[ISSAM4]() -- Please see also: KAAS_CaseSummaryPageLoad. If you change any of these calculations, -- ensure the ones in there are changed as well. -- KAAS_FetchTimeEntry. If you change any of these calculations, -- ensure the ones in there are changed as well. DECLARE @TimeBal INT DECLARE @ChargeBal DECIMAL(19, 2) DECLARE @TotalCharge Decimal(19, 2) DECLARE @TotalTime INT DECLARE @TimeEntryTotalCharge DECIMAL(19, 2) DECLARE @TimeEntryTotalTime INT SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0), @TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0), @TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Charge], 0) END), 0), @ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0), @TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 0 THEN CASE WHEN TIE.[Charge] = 0 THEN 0 ELSE CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME]) * ( (TIE.[Charge] - TIE.[BilledAmount]) / TIE.[Charge]))) END ELSE ISNULL(TIE.[Time], 0) END), 0), @TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N' THEN 0 ELSE ISNULL(TIE.[Time], 0) END), 0) FROM [dbo].[TimeEntry] TIE WHERE TIE.[Matter] = @MATTER AND ((TIE.[TimeOrCharge] = 'T') OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun DECLARE @DebtBal DECIMAL(19, 2) DECLARE @OutlayBal DECIMAL(19, 2) DECLARE @DebtBalDate DATETIME DECLARE @OutlayBalDate DATETIME DECLARE @ClientCurrent DECIMAL(19, 2) DECLARE @ClientDeposit DECIMAL(19, 2) DECLARE @NCOMMAND NVARCHAR(MAX) -- To ensure SAM3 will retrieve these from [dbo].[matters] SET @DebtBal = 0 SET @OutlayBal = 0 SET @ClientCurrent = 0 SET @ClientDeposit = 0 IF @IsSAM4 = 1 BEGIN SET @NCOMMAND = N' SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)), @DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)), @OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END), @ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)), @ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0)) FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @MATTER AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND TRN.[CorrectionInd] = ''L''' EXECUTE sp_executesql @NCOMMAND, N'@MATTER VARCHAR(20), @DebtBal DECIMAL(19, 2) OUTPUT, @DebtBalDate DATETIME OUTPUT, @OutlayBal DECIMAL(19, 2) OUTPUT, @OutlayBalDate DATETIME OUTPUT, @ClientCurrent DECIMAL(19, 2) OUTPUT, @ClientDeposit DECIMAL(19, 2) OUTPUT', @MATTER = @MATTER, @DebtBal = @DebtBal OUTPUT, @DebtBalDate = @DebtBalDate OUTPUT, @OutlayBal = @OutlayBal OUTPUT, @OutlayBalDate = @OutlayBalDate OUTPUT, @ClientCurrent = @ClientCurrent OUTPUT, @ClientDeposit = @ClientDeposit OUTPUT END SELECT @AlreadyClosed = CASE WHEN MAT.[Closed] = 'Y' THEN 1 ELSE 0 END, @HasOutstandingBal = CASE WHEN @DebtBal <> 0 THEN 1 WHEN ISNULL(MAT.[DebtBal], 0) <> 0 THEN 1 WHEN @OutlayBal <> 0 THEN 1 WHEN ISNULL(MAT.[OutlayBal], 0) <> 0 THEN 1 WHEN ISNULL(MAT.[ClientBal], 0) <> 0 --No need to check @ClientCurBal + @ClientDepBal THEN 1 WHEN @ClientCurrent <> 0 THEN 1 WHEN ISNULL(MAT.[ClientCurBal], 0) <> 0 THEN 1 WHEN @ClientDeposit <> 0 THEN 1 WHEN ISNULL(MAT.[ClientDepBal], 0) <> 0 THEN 1 ELSE 0 END, @HasOutstandingTimeBal = CASE WHEN @TimeBal <> 0 THEN 1 ELSE 0 END, @HasOutstandingChargeBal = CASE WHEN @ChargeBal <> 0 THEN 1 ELSE 0 END FROM [dbo].[matters] MAT WHERE MAT.[Code] = @MATTER SET @AlreadyClosed = ISNULL(@AlreadyClosed, 0) SET @HasOutstandingBal = ISNULL(@HasOutstandingBal, 0) SET @HasOutstandingTimeBal = ISNULL(@HasOutstandingTimeBal, 0) SET @HasOutstandingChargeBal = ISNULL(@HasOutstandingChargeBal, 0) DECLARE @YEAR INT IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N'SELECT @YEAR = ISNULL(CTL.[YEAR], DATEPART(YEAR, GetDate())) FROM [dbo].[Control] CTL IF (@YEAR IS NULL) BEGIN SET @YEAR = DATEPART(YEAR, GetDate()) END' END ELSE BEGIN SET @NCOMMAND = N'SELECT @YEAR = ISNULL(CONVERT(INT, CTL.[NumValue]), DATEPART(YEAR, GetDate())) FROM [dbo].[CtrlNum] CTL WHERE CTL.[Code] = ''CurYear'' IF (@YEAR IS NULL) BEGIN SET @YEAR = DATEPART(YEAR, GetDate()) END' END EXEC sp_executesql @NCOMMAND, N'@YEAR INT OUTPUT', @YEAR OUTPUT IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N'SELECT @HasOutstandingRec = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM [dbo].[MatterLedger] MAL INNER JOIN [dbo].[BatchH] BH INNER JOIN [dbo].[BankRecHistory] BHS ON BHS.[BANKAC] = BH.[CODE] ON BH.[BATCHNO] = MAL.[BATCHNO] AND BH.[RECNO] <= 0 AND BH.[TYPE] IN (''P'', ''R'', ''T'') WHERE MAL.[MATTER] = @MATTER AND MAL.[YEAR] = @YEAR AND MAL.[REF] <> ''EUROADJ'' SET @HasOutstandingRec = ISNULL(@HasOutstandingRec, 0)' END ELSE BEGIN SET @NCOMMAND = N'SELECT @HasOutstandingRec = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM [dbo].[Transactions] TRN WHERE TRN.[MatterCode] = @MATTER AND TRN.[Posted] = ''Y'' AND TRN.[RecType] <> ''V'' AND ( TRN.[CorrectionInd] = ''L'' OR TRN.[CorrectionInd] = ''C'') AND TRN.[PostingYear] = @YEAR AND TRN.[Reconciliation] <= 0 SET @HasOutstandingRec = ISNULL(@HasOutstandingRec, 0)' END EXEC sp_executesql @NCOMMAND, N'@MATTER VARCHAR(20), @YEAR INT, @HasOutstandingRec INT OUTPUT', @MATTER, @YEAR, @HasOutstandingRec OUTPUT SELECT @HasOutstandingDiary = CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END FROM [dbo].[diary] DIA WHERE DIA.[CASECODE] = @MATTER AND DIA.[STATUS] <> 1 SELECT @HasOutstandingUndertakings = CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END FROM [dbo].[Undertakings] UND WHERE UND.[MATTER] = @MATTER AND UND.[DISCHARGEDATE] IS NULL SELECT @AlreadyClosed AS [AlreadyClosed], @HasOutstandingBal AS [HasOutstandingBal], @HasOutstandingTimeBal AS [HasOutstandingTimeBal], @HasOutstandingChargeBal AS [HasOutstandingChargeBal], @HasOutstandingRec AS [HasOutstandingRec], @HasOutstandingDiary AS [HasOutstandingDiary], @HasOutstandingUndertakings AS [HasOutstandingUndertakings] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MergeCaseAssociates' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MergeCaseAssociates] END GO CREATE PROCEDURE [dbo].[KAAS_MergeCaseAssociates] (@NAMECODE VARCHAR(6), @NEWNAMECODE VARCHAR(6), @NEWCONTYPE VARCHAR(12)) AS /************************************************************************************************************* * * * [dbo].[KAAS_MergeCaseAssociates] Copied from [dbo].[ky_NETMergeCaseAssociates] * * This procedure is used to merge the two case associates * ***************************************************************************************************** * * * * Modification History * * 2023-07-04 Sadiq Created * *************************************************************************************************************/ BEGIN SET NOCOUNT ON -- Pino Carafa 2017-11-10 We are trying to avoid creating duplicate Case Contacts for the NameCode -- that we are merging *into*, so if there are any Cases where -- both namecodes appear already, delete the NEW one. DELETE [CC] FROM [dbo].[CaseContacts] [CC] INNER JOIN [dbo].[CaseContacts] [CC2] ON [CC2].[NAMECODE] = @NAMECODE AND [CC2].[CONTYPE] = [CC].[CONTYPE] AND [CC2].[CASECODE] = [CC].[CASECODE] WHERE [CC].[NAMECODE] = @NEWNAMECODE UPDATE [CAN] SET [CAN].[name] = CASE RTRIM(ISNULL([CAN].[NAME],'')) WHEN '' THEN [CAN2].[NAME] ELSE [CAN].[NAME] END, [CAN].SALUTATION = CASE RTRIM(ISNULL([CAN].[SALUTATION] ,'')) WHEN '' THEN [CAN2].[SALUTATION] ELSE [CAN].[SALUTATION] END, [CAN].TITLE = CASE RTRIM(ISNULL([CAN].[TITLE],'')) WHEN '' THEN [CAN2].[TITLE] ELSE [CAN].[TITLE] END, [CAN].COMPANY = CASE RTRIM(ISNULL([CAN].[COMPANY],'')) WHEN '' THEN [CAN2].[COMPANY] ELSE [CAN].[COMPANY] END, [CAN].[ADDRESS] = CASE RTRIM(ISNULL([CAN].[ADDRESS],'')) WHEN '' THEN [CAN2].[ADDRESS] ELSE [CAN].[ADDRESS] END, [CAN].FORENAME = CASE RTRIM(ISNULL([CAN].[FORENAME],'')) WHEN '' THEN [CAN2].[FORENAME] ELSE [CAN].[FORENAME] END, [CAN].[SURNAME] = CASE RTRIM(ISNULL([CAN].[SURNAME],'')) WHEN '' THEN [CAN2].[SURNAME] ELSE [CAN].[SURNAME] END, [CAN].[PHONENO] = CASE RTRIM(ISNULL([CAN].[PHONENO],'')) WHEN '' THEN [CAN2].[PHONENO] ELSE [CAN].[PHONENO] END, [CAN].[FAXNO] = CASE RTRIM(ISNULL([CAN].[FAXNO],'')) WHEN '' THEN [CAN2].[FAXNO] ELSE [CAN].[FAXNO] END, [CAN].[HOME] = CASE RTRIM(ISNULL([CAN].[HOME],'')) WHEN '' THEN [CAN2].[HOME] ELSE [CAN].[HOME] END, [CAN].[MOBILENO] = CASE RTRIM(ISNULL([CAN].[MOBILENO],'')) WHEN '' THEN [CAN2].[MOBILENO] ELSE [CAN].[MOBILENO] END, [CAN].[EMAIL] = CASE RTRIM(ISNULL([CAN].[EMAIL],'')) WHEN '' THEN [CAN2].[EMAIL] ELSE [CAN].[EMAIL] END, [CAN].[WEBADDRESS] = CASE RTRIM(ISNULL([CAN].[WEBADDRESS],'')) WHEN '' THEN [CAN2].[WEBADDRESS] ELSE [CAN].[WEBADDRESS] END, [CAN].[SSNUMBER] = CASE RTRIM(ISNULL([CAN].[SSNUMBER],'')) WHEN '' THEN [CAN2].[SSNUMBER] ELSE [CAN].[SSNUMBER] END, [CAN].[LEGALNAME] = CASE RTRIM(ISNULL([CAN].[LEGALNAME],'')) WHEN '' THEN [CAN2].[LEGALNAME] ELSE [CAN].[LEGALNAME] END, [CAN].[LEGALADDRESS] = CASE RTRIM(ISNULL([CAN].[LEGALADDRESS],'')) WHEN '' THEN [CAN2].[LEGALADDRESS] ELSE [CAN].[LEGALADDRESS] END, [CAN].[COURTNO] = CASE ISNULL([CAN].[COURTNO],0) WHEN 0 THEN [CAN2].[COURTNO] ELSE [CAN].[COURTNO] END, [CAN].[COURTAREA] = CASE RTRIM(ISNULL([CAN].[COURTAREA],'')) WHEN '' THEN [CAN2].[COURTAREA] ELSE [CAN].[COURTAREA] END, [CAN].[TAX] = CASE RTRIM(ISNULL([CAN].[TAX],'N')) WHEN 'N' THEN [CAN2].[TAX] ELSE [CAN].[TAX] END, [CAN].[DXREF] = CASE RTRIM(ISNULL([CAN].[DXREF],'')) WHEN '' THEN [CAN2].[DXREF] ELSE [CAN].[DXREF] END, [CAN].[DOB] = CASE WHEN [CAN].[DOB] IS NULL THEN [CAN2].[DOB] ELSE [CAN].[DOB] END, [CAN].[MARTIALSTATUS] = CASE RTRIM(ISNULL([CAN].[MARTIALSTATUS],'')) WHEN '' THEN [CAN2].[MARTIALSTATUS] ELSE [CAN].[MARTIALSTATUS] END, [CAN].[MARRIAGEDATE] = CASE WHEN [CAN].[MARRIAGEDATE] IS NULL THEN [CAN2].[MARRIAGEDATE] ELSE [CAN].[MARRIAGEDATE] END, [CAN].[DECEASED] = CASE RTRIM(ISNULL([CAN].[DECEASED],'N')) WHEN 'N' THEN [CAN2].[DECEASED] ELSE [CAN].[DECEASED] END, [CAN].[SEPARATED] = CASE RTRIM(ISNULL([CAN].[SEPARATED],'')) WHEN '' THEN [CAN2].[SEPARATED] ELSE [CAN].[SEPARATED] END, [CAN].[HOWSEPARATED] = CASE RTRIM(ISNULL([CAN].[HOWSEPARATED],'')) WHEN '' THEN [CAN2].[HOWSEPARATED] ELSE [CAN].[HOWSEPARATED] END, [CAN].[DATESEPARATED] = CASE WHEN [CAN].[DATESEPARATED] IS NULL THEN [CAN2].[DATESEPARATED] ELSE [CAN].[DATESEPARATED] END, [CAN].[DECEASEDDATE] = CASE WHEN [CAN].[DECEASEDDATE] IS NULL THEN [CAN2].[DECEASEDDATE] ELSE [CAN].[DECEASEDDATE] END, [CAN].[OCCUPATION] = CASE RTRIM(ISNULL([CAN].[OCCUPATION],'')) WHEN '' THEN [CAN2].[OCCUPATION] ELSE [CAN].[OCCUPATION] END, [CAN].[SEARCH] = CASE RTRIM(ISNULL([CAN].[SEARCH],'')) WHEN '' THEN [CAN2].[SEARCH] ELSE [CAN].[SEARCH] END, [CAN].[CONTACTNO] = CASE ISNULL([CAN].[CONTACTNO],0) WHEN 0 THEN [CAN2].[CONTACTNO] ELSE [CAN].[CONTACTNO] END, [CAN].[NOTES] = CASE RTRIM(ISNULL([CAN].[NOTES],'')) WHEN '' THEN [CAN2].[NOTES] ELSE [CAN].[NOTES] END, [CAN].[Area] = CASE RTRIM(ISNULL([CAN].[Area],'')) WHEN '' THEN [CAN2].[Area] ELSE [CAN].[Area] END, [CAN].[Town] = CASE RTRIM(ISNULL([CAN].[Town],'')) WHEN '' THEN [CAN2].[Town] ELSE [CAN].[Town] END, [CAN].[Gender] = CASE RTRIM(ISNULL([CAN].[Gender],'')) WHEN '' THEN [CAN2].[Gender] ELSE [CAN].[Gender] END, [CAN].[VATNumber] = CASE RTRIM(ISNULL([CAN].[VATNumber],'')) WHEN '' THEN [CAN2].[VATNumber] ELSE [CAN].[VATNumber] END, [CAN].[CRONumber] = CASE RTRIM(ISNULL([CAN].[CRONumber],'')) WHEN '' THEN [CAN2].[CRONumber] ELSE [CAN].[CRONumber] END, [CAN].[CompanyRegNo] = CASE RTRIM(ISNULL([CAN].[CompanyRegNo],'')) WHEN '' THEN [CAN2].[CompanyRegNo] ELSE [CAN].[CompanyRegNo] END, [CAN].[AddressType] = CASE RTRIM(ISNULL([CAN].[AddressType],'')) WHEN '' THEN [CAN2].[AddressType] ELSE [CAN].[AddressType] END, [CAN].[ServiceType] = CASE RTRIM(ISNULL([CAN].[ServiceType],'')) WHEN '' THEN [CAN2].[ServiceType] ELSE [CAN].[ServiceType] END, [CAN].[Marketing] = CASE RTRIM(ISNULL([CAN].[Marketing],'')) WHEN '' THEN [CAN2].[Marketing] ELSE [CAN].[Marketing] END, [CAN].[CompanyWebSite] = CASE RTRIM(ISNULL([CAN].[CompanyWebSite],'')) WHEN '' THEN [CAN2].[CompanyWebSite] ELSE [CAN].[CompanyWebSite] END, [CAN].[AssociateGroup] = CASE ISNULL([CAN].[AssociateGroup],0) WHEN 0 THEN [CAN2].[AssociateGroup] ELSE [CAN].[AssociateGroup] END, [CAN].[Retired] = CASE RTRIM(ISNULL([CAN].[Retired],'')) WHEN '' THEN [CAN2].[Retired] ELSE [CAN].[Retired] END, [CAN].[County] = CASE RTRIM(ISNULL([CAN].[County],'')) WHEN '' THEN [CAN2].[County] ELSE [CAN].[County] END, [CAN].[PostalCode] = CASE RTRIM(ISNULL([CAN].[PostalCode],'')) WHEN '' THEN [CAN2].[PostalCode] ELSE [CAN].[PostalCode] END, [CAN].[BankName] = CASE RTRIM(ISNULL([CAN].[BankName],'')) WHEN '' THEN [CAN2].[BankName] ELSE [CAN].[BankName] END, [CAN].[BankAddress] = CASE RTRIM(ISNULL([CAN].[BankAddress],'')) WHEN '' THEN [CAN2].[BankAddress] ELSE [CAN].[BankAddress] END, [CAN].[BankSortCode] = CASE RTRIM(ISNULL([CAN].[BankSortCode],'')) WHEN '' THEN [CAN2].[BankSortCode] ELSE [CAN].[BankSortCode] END, [CAN].[BankAccNo] = CASE RTRIM(ISNULL([CAN].[BankAccNo],'')) WHEN '' THEN [CAN2].[BankAccNo] ELSE [CAN].[BankAccNo] END, [CAN].[IBAN] = CASE RTRIM(ISNULL([CAN].[IBAN],'')) WHEN '' THEN [CAN2].[IBAN] ELSE [CAN].[IBAN] END, [CAN].[BIC] = CASE RTRIM(ISNULL([CAN].[BIC],'')) WHEN '' THEN [CAN2].[BIC] ELSE [CAN].[BIC] END, [CAN].[BankType] = CASE RTRIM(ISNULL([CAN].[BankType],'')) WHEN '' THEN [CAN2].[BankType] ELSE [CAN].[BankType] END, [CAN].[EFTEmailAddress] = CASE RTRIM(ISNULL([CAN].[EFTEmailAddress], '')) WHEN '' THEN [CAN2].[EFTEmailAddress] ELSE [CAN].[EFTEmailAddress] END, [CAN].[Country] = CASE RTRIM(ISNULL([CAN].[Country], '')) WHEN '' THEN [CAN2].[Country] ELSE [CAN].[Country] END FROM [dbo].[CaseAssociatesNames] [CAN] INNER JOIN [dbo].[CaseAssociatesNames] [CAN2] ON [CAN2].CODE = @NAMECODE AND [CAN2].[TYPE] = [CAN].[TYPE] WHERE [CAN].[CODE] = @NEWNAMECODE UPDATE [CC] SET [CC].[NAMECODE] = @NEWNameCode, [CC].[AssignedContact] = 0 FROM [dbo].[CaseContacts] [CC] WHERE [CC].[NAMECODE] = @NAMECODE INSERT INTO [dbo].[CaseAssoicatesTypes] ([NAMECODE], [SEARCHCODE], [TYPECODE], [Retired]) SELECT @NEWNAMECODE, [CAT].[SEARCHCODE], [CAT].[TYPECODE], [CAT].[Retired] FROM [dbo].[CaseAssoicatesTypes] [CAT] LEFT OUTER JOIN [dbo].[CaseAssoicatesTypes] [CAT2] ON [CAT2].[NAMECODE] = @NEWNAMECODE AND [CAT2].[TYPECODE] = [CAT].[TYPECODE] WHERE [CAT].[NAMECODE] = @NAMECODE AND [CAT2].[NAMECODE] IS NULL DELETE [CAT] FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @NAMECODE UPDATE [CC] SET [CC].[RETIRED] = (SELECT [CAT].[Retired] FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @NEWNAMECODE AND [CAT].[TYPECODE] = [CC].[CONTYPE]) FROM [dbo].[CaseContacts] [CC] WHERE [CC].[NAMECODE] = @NEWNAMECODE --KEYD-5258 START UPDATE [CAC] SET [CAC].[NAMECODE] = @NEWNAMECODE FROM [dbo].[CaseAssociatesContacts] [CAC] WHERE [CAC].[NAMECODE] = @NAMECODE --KEYD-5258 END /* KEYD-5665 - Merge associate UDFs */ INSERT INTO [dbo].[AssociateUDF] ( [NameCode], [FilePrefix], [FieldName], [NumberValue], [DateValue], [TextValue]) SELECT @NEWNAMECODE, AUD.[FilePrefix], AUD.[FieldName], AUD.[NumberValue], AUD.[DateValue], AUD.[TextValue] FROM [dbo].[AssociateUDF] AS AUD LEFT OUTER JOIN [dbo].[AssociateUDF] AS AUD2 ON AUD.[FilePrefix] = AUD2.[FilePrefix] AND AUD.[FieldName] = AUD2.[FieldName] AND AUD2.[NameCode] = @NEWNAMECODE /* Destination */ WHERE AUD.[NameCode] = @NAMECODE /* Source */ AND AUD2.[Id] IS NULL DELETE AUD FROM [dbo].[AssociateUDF] AS AUD WHERE AUD.[NameCode] = @NAMECODE DELETE [CAN] FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @NAMECODE SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_MileStoneAction',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_MileStoneAction] GO CREATE PROCEDURE [dbo].[KAAS_MileStoneAction] ( @ACTIONID INT ) /******************************************************************************************************* * This procedure is used Update the diary highlighted value. * * * * Stored Procedure Name : [dbo].[KAAS_MileStoneAction] * * Copied from : [dbo].[ky_NETMileStoneAction] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON UPDATE diary SET HIGHLIGHTED = 'Y' WHERE ACTIONID = @ACTIONID SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ModifyDiaryDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ModifyDiaryDetails] END GO CREATE PROCEDURE [dbo].[KAAS_ModifyDiaryDetails] (@CASECODE VARCHAR(20), @DATE DATETIME, @STATUS SMALLINT, @ACTIONCODE VARCHAR(15), @ACTIONSTATUS VARCHAR(3), @ACTIONTYPE VARCHAR(1), @PROCESSTYPE VARCHAR(1), @FNCODE VARCHAR(10), @TEAMCODE VARCHAR(10), @TEXT1 VARCHAR(MAX), @TEXT2 VARCHAR(MAX), @DELEGATEDFNR VARCHAR(10), @DELEGATEDDATE DATETIME, @DELEGATEDBACKDATE DATETIME, @DEFERRED VARCHAR(3), @DUEDATE DATETIME, @PUBLISH VARCHAR(1), @DYSTARTTIME DATETIME, @DYENDTIME DATETIME, @DURATION NVARCHAR(20), @ACTIONID BIGINT, @ORGINALACTIONID BIGINT, @PRIORITY VARCHAR(1), @HIGHLIGHTED VARCHAR(1), @MILESTEONETYPE VARCHAR(12), @ATTACHMENTS VARCHAR(1), @PROCESSSTATUS SMALLINT, @WORKPROCESS SMALLINT, @BILLABLE VARCHAR(1), @BILLDESCRIPTION VARCHAR(150), @EMAILADDRESS VARCHAR(150), @ADDRESSTO VARCHAR(150), @CCTo VARCHAR(150), @BCCTo VARCHAR(150), @EMAIL VARCHAR(1), @SUBJECT VARCHAR(150), @DELEGATIONSTATUS INT, @DRAFTBILLNO INT, @CHEQUEREQNO INT, @TxmSent BIT, @Location VARCHAR(50), @HearingType VARCHAR(50), @ForCopy VARCHAR(1), @TxmDate DATETIME, @TxmSeqNo INT, @Flag TINYINT, @KYC VARCHAR(1)='N', @Result INT = 0 OUTPUT, @AssignOut INT = 0 OUTPUT ) AS /******************************************************************************************************* * This stored procedure is used to insert or update the Client Case Action information. If ID is * * already exist then it will update that record. otherwise new record will insert. * * * * Stored Procedure Name : [dbo].[KAAS_ModifyDiaryDetails] * * Copied from : [dbo].[ky_NETCCModifyDiaryDetails] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2019-11-28 Arun have fixed UTC conversion issue * 2021-04-22 Sadiq Added update for document attachment when diary details are updated(11928) * * 2021-04-27 Aakif Fix for not assigning the actions correctly which are setup to assign to a specific Handler (12071)* * 2021-05-12 Aakif Fix for not assigning the actions based on different settings in edit action types (E.g, Case FE, Client FE, Case Partner)(12153)* * 2021-05-25 Sadiq Added condition for client FE delegate (12185) *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @TIMECONVERT INT SET @TIMECONVERT = dbo.ky_ConvertTimeToClarion(dbo.KAAS_FNConvertDateToUTC(@DYSTARTTIME, @FNCODE)) --SET @TIMECONVERT = dbo.ky_ConvertTimeToClarion(@DYSTARTTIME AT TIME ZONE dbo.KAAS_FNGetHandlerTimeZone(@FNCODE) AT TIME ZONE 'UTC') DECLARE @ENDTIME INT SET @ENDTIME = dbo.ky_ConvertTimeToClarion(dbo.KAAS_FNConvertDateToUTC(@DYENDTIME, @FNCODE)) --SET @ENDTIME = dbo.ky_ConvertTimeToClarion(@DYENDTIME AT TIME ZONE dbo.KAAS_FNGetHandlerTimeZone(@FNCODE) AT TIME ZONE 'UTC') DECLARE @DisplaytextValue VARCHAR(220) SET @DisplaytextValue = [dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(@TEXT1, ''), 200) --Creating temporary VARIABLE to get value based on actioncode DECLARE @ACTIONCATEGORY1 VARCHAR(1), @PUBLISHER1 VARCHAR(1) , @PROCEESSTYPE1 VARCHAR(1) , @HIGTLIGHTED1 VARCHAR(1) , @BILLABLE1 VARCHAR(1) , @KYC1 VARCHAR(1), @FNCodeFromSetting VARCHAR(10), @AssignActionTo VARCHAR(10), @FNCodeForAction VARCHAR(10) = '' SELECT @ACTIONCATEGORY1 = ACTIONCATEGORY , @PUBLISHER1 = PUBLISHER ,@PROCEESSTYPE1 = PROCESSTYPE , @HIGTLIGHTED1=HIGHLIGHTED,@BILLABLE1= BILLABLE ,@KYC1= KYC, @FNCodeFromSetting = ASSIGNHANDLER, @AssignActionTo = AssignActionTo FROM [TEMPLATEACTIONS] where ACTIONCODE=@ACTIONCODE IF(@ACTIONTYPE ='' or @ACTIONTYPE is null) BEGIN SET @ACTIONTYPE=@ACTIONCATEGORY1 END IF(@PUBLISH ='' or @PUBLISH is null) BEGIN SET @PUBLISH=@PUBLISHER1 END IF(@PROCESSTYPE ='' or @PROCESSTYPE is null) BEGIN SET @PROCESSTYPE=@PROCEESSTYPE1 END IF(@HIGHLIGHTED ='' or @HIGHLIGHTED is null) BEGIN SET @HIGHLIGHTED=@HIGTLIGHTED1 END IF(@BILLABLE ='' or @BILLABLE is null) BEGIN SET @BILLABLE=(IIF(@BILLABLE1='Y',1,0)) END IF(@KYC ='' or @KYC is null) BEGIN SET @KYC=@KYC1 END IF(ISNULL(@AssignActionTo , '') != '') BEGIN --FOR CASE FE IF(@AssignActionTo = 'C') BEGIN SELECT @FNCodeForAction = ISNULL(FECode, @FNCODE) FROM [dbo].[matters] WHERE [Code] = @CASECODE END --FOR CASE PARTNER ELSE IF(@AssignActionTo = 'P') BEGIN SELECT @FNCodeForAction = ISNULL([Partner], @FNCODE) FROM [dbo].[matters] WHERE [Code] = @CASECODE END -- FOR CASE SECRETARY ELSE IF(@AssignActionTo = 'S') BEGIN SELECT @FNCodeForAction = ISNULL(Secretary, @FNCODE) FROM [dbo].[matters] WHERE [Code] = @CASECODE END --FOR CLIENT FE ELSE IF(@AssignActionTo = 'F') BEGIN SELECT @FNCodeForAction = ISNULL(FE, @FNCODE) FROM [dbo].[matters] [MAT] JOIN [dbo].[Contacts] [CON] ON [CON].[Code] = [MAT].[ClientCode] WHERE [MAT].[Code] = @CASECODE END --FOR CLIENT FE DELEGATE ELSE IF(@AssignActionTo = 'D') BEGIN SELECT @FNCodeForAction = DELEGATE FROM [dbo].[Handlers] H WHERE H.[Code] = @FNCODE IF(ISNULL(@FNCodeForAction, '') = '') BEGIN SET @AssignOut=1 END END ELSE IF(@AssignActionTo = 'O') BEGIN SET @FNCodeForAction = @FNCodeFromSetting END END IF(ISNULL(@FNCodeForAction, '') != '') BEGIN SET @FNCODE = @FNCodeForAction END UPDATE DIA SET [CASECODE] = @CASECODE, [DATE] = dbo.KAAS_FNConvertDateToUTC(@DATE, @FNCODE), [STATUS] = @STATUS, [ACTIONCODE] = @ACTIONCODE, [ACTIONSTATUS] = @ACTIONSTATUS, [ACTIONTYPE] = @ACTIONTYPE, [FNCODE] = @FNCODE, [TEAMCODE] = @TEAMCODE, [TEXT1] = @TEXT1, [TEXT2] = @TEXT2, [DUEDATE] = dbo.KAAS_FNConvertDateToUTC(@DUEDATE, @FNCODE), [PUBLISH] = @PUBLISH, [DYSTARTTIME] = @TIMECONVERT, [DYENDTIME] = @ENDTIME, [PRIORITY] = @PRIORITY, [HIGHLIGHTED] = @HIGHLIGHTED, [MILESTEONETYPE] = @MILESTEONETYPE, [WORKPROCESS] = @WORKPROCESS, [BILLABLE] = @BILLABLE, [SUBJECT] = @SUBJECT, [TxmSent] = @TxmSent, [Location] = @Location, [HearingType] = @HearingType, [DisplayText] = @DisplaytextValue, [Flag] = @Flag, [KYC] = @KYC, [IMAGENO] = dbo.ky_ConvertTimeToClarion(@DURATION) FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @ACTIONID UPDATE DEL SET DEL.[HANDLER] = @FNCODE, DEL.[DELEGATE] = @FNCODE, DEL.[TEAM] = @TEAMCODE FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ACTIONID AND DEL.[OWNER] = 'Y' UPDATE DEL SET DEL.[ActionType] = @ACTIONTYPE, DEL.[DATE] = dbo.KAAS_FNConvertDateToUTC(@DATE, @FNCODE), DEL.[DUEDATE] = dbo.KAAS_FNConvertDateToUTC(@DUEDATE, @FNCODE) FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ACTIONID AND DEL.[STATUS] = 0 UPDATE DIAT SET DIAT.CASECODE=@CASECODE FROM [dbo].DiaryAttachments DIAT WHERE DIAT.DiaryID=@ACTIONID IF (@STATUS = 0) BEGIN UPDATE DEL SET DEL.[STATUS] = 0 FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ACTIONID AND DEL.[OWNER] = 'Y' END ELSE BEGIN UPDATE DEL SET DEL.[STATUS] = 1 FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ACTIONID END SET @Result = @ACTIONID SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_MoveAction',N'P')IS NOT NULL DROP PROCEDURE [KAAS_MoveAction] GO CREATE PROCEDURE [KAAS_MoveAction] ( @ACTIONID INT, @CASECODE VARCHAR(20), @FNCODE VARCHAR(10) ) /***************************************************************************** Stored Procedure Name : KAAS_MoveAction Copied From : ky_NETMoveAction Description: This procedure is used to move the action one to other case. Last Updated: 12 FEB 2015 Arun Change NVARCHAR to VARCHAR 11 FEB 2016 Arun http://jira1.dsrc.in:8080/browse/KEYD-3277 24 JUL 2018 Vinodhan Created KAAS_MoveAction *****************************************************************************/ AS BEGIN SET NOCOUNT ON UPDATE diary SET CASECODE = @CASECODE --FNCODE = @FNCODE WHERE ACTIONID = @ACTIONID --UPDATE -- DiaryDelegations --SET -- HANDLER = @FNCODE --WHERE -- ACTIONID = @ACTIONID AND [OWNER] = 'Y' UPDATE DiaryAttachments SET CASECODE = @CASECODE WHERE DIARYID = @ACTIONID SELECT 'True' SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MoveAssociatedDocumentOrder' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MoveAssociatedDocumentOrder] END GO CREATE PROCEDURE [dbo].[KAAS_MoveAssociatedDocumentOrder] (@ActionCode VARCHAR(15), @SeqToMove INT, @Move INT) AS /************************************************************************************************ * Moves a TemplateActionDocument up or down (seqno) as requested * * @Move: 0 = "To the Top, 1 = "To the Bottom", 2 = "Up by one", 3 = "Down by one" * * * * Stored Procedure Name : [dbo].[KAAS_MoveAssociatedDocumentOrder] * * Copied from : [dbo].[Ky_NetSPMoveTAD] * * * * Modification History : * * 2023-06-27 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON IF @Move = 0 BEGIN UPDATE [TAD] SET [TAD].[SeqNo] = -1 FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ACTIONCODE AND [TAD].[SeqNo] = @SeqToMove END ELSE IF @Move = 1 BEGIN UPDATE [TAD] SET [TAD].[SeqNo] = 999999 FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ACTIONCODE AND [TAD].[SeqNo] = @SeqToMove END ELSE IF @Move = 2 BEGIN UPDATE [TAD] SET [TAD].[SeqNo] = -1 FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ACTIONCODE AND [TAD].[SeqNo] = @SeqToMove UPDATE [TAD] SET [TAD].[SeqNo] = [TAD].[SeqNo] + 1 FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ACTIONCODE AND [TAD].[SeqNo] = @SeqToMove - 1 UPDATE [TAD] SET [TAD].[SeqNo] = @SeqToMove - 1 FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ACTIONCODE AND [TAD].[SeqNo] = - 1 END ELSE IF @Move = 3 BEGIN UPDATE [TAD] SET [TAD].[SeqNo] = 999999 FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ACTIONCODE AND [TAD].[SeqNo] = @SeqToMove UPDATE [TAD] SET [TAD].[SeqNo] = [TAD].[SeqNo] - 1 FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ACTIONCODE AND [TAD].[SeqNo] = @SeqToMove + 1 UPDATE [TAD] SET [TAD].[SeqNo] = @SeqToMove + 1 FROM [dbo].[TemplateActionDcouments] [TAD] WHERE [TAD].[ACTION] = @ACTIONCODE AND [TAD].[SeqNo] = 999999 END EXEC [dbo].[ky_NETSPReSequenceTADsForAction] @ACTIONCODE SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MoveAttachment' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MoveAttachment] END GO Create Procedure [dbo].[KAAS_MoveAttachment] (@DiaryID INT, @TrackReference INT) AS /***************************************************************************** * This sp is used to move the attachment between actions. * * * * Stored Procedure Name : [dbo].[KAAS_MoveAttachment] * * Copied from : [dbo].[ky_NETMoveAttachment] * * * * Modification History : * * 2019-09-10 Dheepin Vijith K Created * ******************************************************************************/ BEGIN SET NOCOUNT ON UPDATE DiaryAttachments SET DiaryID = @DiaryID WHERE TrackReference = @TrackReference SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MoveBriefDocuments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MoveBriefDocuments] END GO CREATE PROCEDURE [dbo].[KAAS_MoveBriefDocuments] (@docs VARCHAR(MAX)) AS /************************************************************************************************************* * Stored Procedure Name : [dbo].[KAAS_GetBriefSectionDocuments] * * Copied from : [dbo].[ky_NETSPSectionDocuments] * * * ky_IMMoveBriefDocuments - Move documents FROM one Brief section to the other * 2014-10-23 - PINO - removed transaction processing. * * Modification History * * 2019-10-28 Ganapathy T Created * * * *************************************************************************************************************/ BEGIN --BEGIN TRANSACTION DECLARE @idoc INT DECLARE @SectionID INT DECLARE @BriefID INT DECLARE @MoveDocs TABLE ([recordid] INT, [BriefID] INT, [DocumentName] VARCHAR(255), [TrackReference] INT, [FileLocation] VARCHAR(255), [Filedate] DATETIME, [DocumentType] VARCHAR(4), [DocumentClass] VARCHAR(100), [SortOrder] INT identity(1, 1), [SectionID] INT, [IMDOCID] VARCHAR(500)) DECLARE @DelDocs TABLE ([recordid] INT) DECLARE @NewSort TABLE ([recordid] INT, [SectionID] INT, [ID] INT identity(1, 1), [NewSort] INT) --BEGIN TRY IF (ISNULL(PATINDEX('%' + CHAR(13) + CHAR(10) + @docs END EXEC sp_xml_preparedocument @idoc OUTPUT, @docs SELECT TOP 1 @SectionID = [tosection], @BriefID = [briefid] FROM OPENXML(@idoc, 'docs/doc', 2) WITH([briefid] INT '../@briefid', [tosection] INT '../@tosection') DCS IF (@SectionID <> 0) BEGIN INSERT INTO @MoveDocs ([recordid], [BriefID], [DocumentName], [TrackReference], [FileLocation], [Filedate], [DocumentType], [DocumentClass], [SectionID], [IMDOCID]) SELECT BRD.[recordid], BRD.[BriefID], RTRIM(ISNULL(BRD.[DocumentName], '')) AS [DocumentName], BRD.[TrackReference], CASE WHEN UNC.[Drive] IS NULL THEN RTRIM(ISNULL(BRD.[FileLocation], '')) ELSE RTRIM(ISNULL(UNC.[UNC] + SUBSTRING(BRD.[FileLocation], 3, LEN(BRD.[FileLocation]) - 2), '')) END AS [FileLocation], BRD.[Filedate], UPPER(RTRIM(ISNULL(BRD.[DocumentType], ''))) AS [DocumentType], RTRIM(ISNULL(BRD.[DocumentClass], '')) AS [DocumentClass], BRD.[SectionID], RTRIM(ISNULL(BRD.[IMDOCID], '')) AS [IMDOCID] FROM [dbo].[BriefDocuments] BRD LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON UNC.[Drive] = CASE WHEN SUBSTRING(BRD.[FileLocation], 2, 1) = ':' THEN LEFT(BRD.[FileLocation], 1) ELSE '' END WHERE BRD.[SectionID] = @SectionID INSERT INTO @MoveDocs ([recordid], [BriefID], [DocumentName], [TrackReference], [FileLocation], [Filedate], [DocumentType], [DocumentClass], [SectionID], [IMDOCID]) SELECT 0 AS [recordid], @BriefID AS [BriefID], DCS.[DocumentName], DCS.[TrackReference], DCS.[FileLocation], DCS.[Filedate], DCS.[DocumentType], DCS.[DocumentClass], @SectionID AS [SectionID], DCS.[IMDOCID] FROM OPENXML(@idoc, 'docs/doc', 2) WITH([DocumentName] VARCHAR(255) '@DocumentName', [Filedate] DATETIME '@DocumentDate', [FileLocation] VARCHAR(255) '@FileLocation', [DocumentType] VARCHAR(4) '@DocumentType', [DocumentClass] VARCHAR(100) '@DocumentClass', [trackreference] INT '@TrackReference', [IMDOCID] VARCHAR(500) '@IMDocID') DCS END INSERT INTO @DelDocs ([recordid]) SELECT DCS.[recordid] AS [recordid] FROM OPENXML(@idoc, 'docs/doc', 2) WITH([recordid] INT '@recordid') DCS WHERE DCS.[recordid] <> 0 EXEC sp_xml_removedocument @idoc DELETE BRD FROM @DelDocs DD INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordId] = DD.[recordid] INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [Filedate], [DocumentType], [DocumentClass], [SortOrder], [SectionID], [IMDOCID]) SELECT ND.[BriefID], ND.[DocumentName], ND.[TrackReference], ND.[FileLocation], ND.[Filedate], ND.[DocumentType], ND.[DocumentClass], ND.[SortOrder], ND.[SectionID], ND.[IMDOCID] FROM @MoveDocs ND WHERE ND.[recordid] = 0 INSERT INTO @NewSort ([recordid], [sectionid]) SELECT BRD.[recordId], BRD.[SectionID] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[BriefId] = @BriefID ORDER BY BRD.[SectionID], BRD.[SortOrder] UPDATE NS SET NS.[NewSort] = NS.[ID] - NST.[TOTAL] FROM @NewSort NS CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM @NewSort NS2 WHERE NS2.[SectionID] < NS.[SectionID]) NST UPDATE BRD SET BRD.[SortOrder] = NS.[NewSort] FROM @NewSort NS INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordid] = NS.[recordid] --COMMIT --END TRY --BEGIN CATCH --ROLLBACK --END CATCH END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MoveTimeEntry' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MoveTimeEntry] END GO CREATE PROCEDURE [dbo].[KAAS_MoveTimeEntry] (@RecordID INT, @Matter VARCHAR(20), @Handler VARCHAR(10), @User NVARCHAR(128)) AS /******************************************************************************************************* * Get the data of a TimeEntry record page. * * * * Stored Procedure Name : [dbo].[KAAS_MoveTimeEntry] ` * * Copied from : [dbo].[ky_NETMoveTimeEntry] * * * * Modification History: * * 2015-02-12 Arun Change NVARCHAR to VARCHAR * * 2015-11-12 Pino Carafa KEYD - 2894 - Log user data and timestamp * * 2019-07-25 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET @Handler = RTRIM(ISNULL(@Handler, '')) SET @User = RTRIM(ISNULL(@User, N'')) DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N'INSERT INTO [dbo].[TimeEntryLogNew] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [CHARGE], [TASK], [TIMEORCHARGE], [COMMENT], [BILLED], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [SHOULDHAVE], [INVOICENO], [PERIOD], [YEAR], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [RECORDID], [ActionId], [StageCode], [Leave], [BilledAmount], [IncludeInBill], [BILLINGDATE], [AxleNumber], [WriteOffDT], [WriteOffID], [LogFor]' IF @Handler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', [HandlerLogFor]' END IF @User <> N'' BEGIN SET @NCOMMAND = @NCOMMAND + N', [LoginLogFor]' END SET @NCOMMAND = @NCOMMAND + N') SELECT [TIE].[MATTER], [TIE].[FEEEARN], [TIE].[DATE], [TIE].[TIME], [TIE].[RATE], [TIE].[CHARGE], [TIE].[TASK], [TIE].[TIMEORCHARGE], [TIE].[COMMENT], [TIE].[BILLED], [TIE].[NCCODE], [TIE].[DOCKET], [TIE].[TEAM], [TIE].[TRACKREF], [TIE].[REC_IRR], [TIE].[SHOULDHAVE], [TIE].[INVOICENO], [TIE].[PERIOD], [TIE].[YEAR], [TIE].[BILLINGPERIOD], [TIE].[BILLINGYEAR], [TIE].[OPENINV], [TIE].[RECORDID], [TIE].[ActionId], [TIE].[StageCode], [TIE].[Leave], [TIE].[BilledAmount], [TIE].[IncludeInBill], [TIE].[BILLINGDATE], [TIE].[AxleNumber], [TIE].[WriteOffDT], [TIE].[WriteOffID], ''M''' IF @Handler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @Handler' END IF @User <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @User' END SET @NCOMMAND = @NCOMMAND + N' FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @RecordID' EXEC sp_executesql @NCOMMAND, N'@RecordID INT, @Handler VARCHAR(10), @User NVARCHAR(128)', @RecordID, @Handler, @User DECLARE @MatterCode VARCHAR(20) UPDATE [TIE] SET @MatterCode = [TIE].[MATTER], [TIE].[MATTER] = @Matter FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @RecordID EXEC [dbo].[ky_WDUpdateMatterTimeBalance] @MatterCode EXEC [dbo].[ky_WDUpdateMatterTimeBalance] @Matter END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MyCheques' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MyCheques] END GO CREATE PROCEDURE [dbo].[KAAS_MyCheques] (@HANDLER VARCHAR(10) = NULL, @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL, @ColumnNames VARCHAR(50) = '', @FilterValues VARCHAR(50) = '') AS /************************************************************************************* * * * List all cheque requests for a handler * * SP suitable for both SAM4 and SAM3 * * * * Stored Procedure Name : [dbo].[KAAS_MyCheques] * * Copied from : [dbo].[ky_NETSPMyCheques] * * * * Modification History * * 2015-01-09 Pino Carafa Single quotes should be double quotes. * * CRD should be CRH * * (SAM4) * * 2015-01-28 Pino Carafa Quotes error in SAM3 * * 2015-03-27 Pino Carafa Retrieve ALL cheques, not just Requested ones. * * 2016-05-04 Sridharan EFT Changes * * 2016-05-06 Pino Carafa Added a warning halfway down the procedure as * * the END statement makes it easy to miss the * * second half of the procedure when deleting it * * from its original location in SP_Scripts * * 2016-06-20 Pino Carafa EFT Changes had not been included in the SAM4 * * section of this SP. * * 2018-08-24 Pino Carafa Add Deposit Account * * 2018-09-06 Pino Carafa SAM4 Performance Improvement using IX_CreateBy * * 2019-02-08 John Ginnane KEYD-5703 - Added "RequestNo" to output * * 2019-10-14 Dheepin Vijith Changed the name to KAAS_MyCheques * * 2019-10-14 Dheepin Vijith Added Searching, Sorting and Pagination * * 2019-10-23 Dheepin Vijith @HANDLER 'ALL' will bring all the records. * * 2019-02-17 Prabhu V Added the custom Filters in My Cheque Page * * 2019-05-29 Sadiq Fixed SAM4 table load issue and Search column name * values fixed which was causing error in SAM4 * * 2021-08-09 Aakif Used proper string concatenation for search * in Dynamic Query to avoid SQL injection * * 2023-07-05 Vignesh M Add dynamic filters and Views * ************************************************************************************/ BEGIN DECLARE @COMMAND NVARCHAR(MAX) DECLARE @StartRow INT; DECLARE @EndRow INT; SELECT FilterValue,rownumber INTO #FILTERVALUETBL FROM (SELECT LTRIM(RTRIM(m.n.value('.[1]','varchar(8000)'))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM ( SELECT CAST('' + REPLACE(@FilterValues,'|','') + '' AS XML) AS x )t CROSS APPLY x.nodes('/XMLRoot/RowData')m(n)) FILTERVALUETBL SET @FilterValues = '' DECLARE @STATUSFILTER VARCHAR(1000) DECLARE @FEEEARNERFILTER VARCHAR(1000) DECLARE @REQUESTEDBYFILTER VARCHAR(1000) SELECT @STATUSFILTER = FilterValue FROM #FILTERVALUETBL WHERE rownumber = 1 SELECT @FEEEARNERFILTER = FilterValue FROM #FILTERVALUETBL WHERE rownumber = 2 SELECT @REQUESTEDBYFILTER = FilterValue FROM #FILTERVALUETBL WHERE rownumber = 3 SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Date' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'DESC' END DECLARE @ALL VARCHAR(100) IF (@HANDLER ='ALL') BEGIN SET @ALL = '' END ELSE SET @ALL=' HAN.[CODE] = ''' + @HANDLER + ''' AND ' IF EXISTS(SELECT TOP 1 1 FROM [sys].[objects] SO WHERE SO.[name] = 'ChequeRequisitionHeader' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' SELECT IDENTITY(INT, 1,1) AS [RowNumber], * INTO #MyChequeTable FROM (SELECT CRH.[REQNO] AS [ID], CRH.[REQNO] AS [RequestNo], convert(nvarchar(30),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([CRH].[Date], @HANDLER),23) AS [Date], RTRIM(ISNULL(HAN.[CODE], '''')) AS [RequestedCode], RTRIM(ISNULL(HAN.[NAME], '''')) AS [RequestedBy], RTRIM(ISNULL(CRH.[BANK], '''')) AS [Bank], RTRIM(ISNULL(CRH.[NARRATIVE], '''')) AS [Narrative], RTRIM(ISNULL(CRD.[NARRATIVE], '''')) AS [LedgerNarrative], RTRIM(ISNULL(CRH.[RETURNREASON], '''')) AS [Notes], ISNULL(CRH.[VALUE], 0) AS [Value], RTRIM(ISNULL(CRH.[SUPPLY], '''')) AS [Supplier], RTRIM(ISNULL(CRH.[PAYEE], '''')) AS [Payee], RTRIM(ISNULL(CRH.[EFTYorN], '''')) AS [EFTYorN], RTRIM(ISNULL(CRH.[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL(CRH.[PayClient], '''')) AS [PayClient], RTRIM(ISNULL(CRH.[OnceOffPayment], '''')) AS [OnceOffPayment], RTRIM(ISNULL(FEE.[CODE], '''')) AS [FeeEarnerCode], RTRIM(ISNULL(FEE.[NAME], '''')) AS [FeeEarner], RTRIM(ISNULL(CRD.[TYPE], '''')) AS [Type], RTRIM(ISNULL(CRD.[MATTER], '''')) AS [MatterCode], RTRIM(ISNULL(CRD.[NOMINAL], '''')) AS [NominalCode], RTRIM(ISNULL(NOL.[DESC], '''')) AS [Nominal], RTRIM(ISNULL(CRD.[CASEASSCODE], '''')) AS [CaseAssociate], CASE WHEN RTRIM(ISNULL(CRH.[THIRDPARTY], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [ThirdParty], CASE WHEN RTRIM(ISNULL(NOM.[CLIENTAC], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [ClientAccount], CASE WHEN RTRIM(ISNULL([NOM].[DEPOSITYN], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [DepositAccount], CRH.[OutlayCode], RTRIM(ISNULL(MAT.FECODE,'''')) AS MatterFeCode, CASE ISNULL(CRH.[Status], 0) WHEN 0 THEN ''Request'' WHEN 1 THEN ''Released'' WHEN 2 THEN ''Approved'' WHEN 3 THEN ''Returned'' ELSE ''Request'' END AS [Status] FROM [dbo].[Handlers] HAN INNER JOIN [dbo].[ChequeRequisitionHeader] CRH LEFT OUTER JOIN [dbo].[Handlers] FEE ON FEE.[CODE] = CRH.[FEEEARNER] LEFT OUTER JOIN [dbo].[Nominal] NOM ON NOM.[CODE] = CRH.[BANK] ON ( ( RTRIM(ISNULL(HAN.[LOGON], '''')) <> RTRIM(ISNULL(HAN.[CODE], '''')) AND CRH.[WHO] = HAN.[LOGON]) OR (CRH.[WHO] = HAN.[CODE])) --AND CRH.[Status] = ''0'' LEFT OUTER JOIN [dbo].[ChequeRequisitionDetail] CRD LEFT OUTER JOIN [dbo].[Nominal] NOL ON NOL.[Code] = CRD.[NOMINAL] ON CRD.[REQNO] = CRH.[REQNO] LEFT OUTER JOIN [dbo].[MATTERS] MAT ON MAT.CODE= CRD.[MATTER] WHERE' SET @COMMAND = @COMMAND + @ALL + '' IF ISNULL(@STATUSFILTER,'') != '' BEGIN SET @COMMAND = @COMMAND + '(@STATUSFILTER = '''' OR CRH.[Status] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE(@STATUSFILTER,'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND' END IF ISNULL(@FEEEARNERFILTER,'') != '' BEGIN SET @COMMAND = @COMMAND + '(@FEEEARNERFILTER = '''' OR FEE.[CODE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE(@FEEEARNERFILTER,'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND' END IF ISNULL(@REQUESTEDBYFILTER,'') != '' BEGIN SET @COMMAND = @COMMAND + '(@REQUESTEDBYFILTER = '''' OR HAN.[CODE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE(@REQUESTEDBYFILTER,'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND' END SET @COMMAND = @COMMAND + '( CRH.[DATE] LIKE ''%'' + @SearchText + ''%'' OR CRD.[MATTER] LIKE ''%'' + @SearchText + ''%'' OR CRH.[BANK] LIKE ''%'' + @SearchText + ''%'' OR CRH.[Status] LIKE ''%'' + @SearchText + ''%'' OR CRH.[NARRATIVE] LIKE ''%'' + @SearchText + ''%'' OR CRH.[VALUE] LIKE ''%'' + @SearchText + ''%'' OR CRH.[PAYEE] LIKE ''%'' + @SearchText + ''%'' OR FEE.[NAME] LIKE ''%'' + @SearchText + ''%'' OR HAN.[NAME] LIKE ''%'' + @SearchText + ''%'' )) AS MyChequeTable' IF((@SortColumn IS NOT NULL) AND (RTRIM(@SortColumn) != '')) BEGIN SET @COMMAND = @COMMAND + ' ORDER BY ' + @SortColumn + ' ' + @SortDirection END SET @COMMAND=@COMMAND + ' SELECT * FROM #MyChequeTable WHERE ( @StartRow IS NULL OR ( [RowNumber] BETWEEN @StartRow AND @EndRow ) ) ORDER BY CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''RowNumber'' THEN [RowNumber] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''RowNumber'' THEN [RowNumber] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Date'' THEN [Date] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Date'' THEN [Date] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''MatterCode'' THEN [MatterCode] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''MatterCode'' THEN [MatterCode] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Bank'' THEN [Bank] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Bank'' THEN [Bank] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Narrative'' THEN [Narrative] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Narrative'' THEN [Narrative] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Value'' THEN [Value] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Value'' THEN [Value] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Payee'' THEN [Payee] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Payee'' THEN [Payee] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''FeeEarner'' THEN [FeeEarner] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''FeeEarner'' THEN [FeeEarner] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''RequestedBy'' THEN [RequestedBy] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''RequestedBy'' THEN [RequestedBy] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Status'' THEN [Status] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Status'' THEN [Status] END END DESC SELECT COUNT([RowNumber]) AS TotalRecords FROM #MyChequeTable ' END --WARNING see note below! --PINO 2016-05-06 If you are copying or deleting this procdure, -- Please note that you are only half way down -- this procedure. The statement below needs to -- be included if you're selecting its code. IF EXISTS(SELECT TOP 1 1 FROM [sys].[objects] SO WHERE SO.[name] = 'ChequeRequisitions' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' DECLARE @HandlerName VARCHAR(30) DECLARE @HandlerLogon VARCHAR(10) DECLARE @HandlerCode VARCHAR(10) DECLARE @BL VARCHAR(1) SET @BL = '''' DECLARE @Y VARCHAR(1) SET @Y = ''Y'' DECLARE @N VARCHAR(1) SET @N = ''N'' DECLARE @Request VARCHAR(10) SET @Request = ''Request'' DECLARE @Released VARCHAR(10) SET @Released = ''Released'' DECLARE @Approved VARCHAR(10) SET @Approved = ''Approved'' DECLARE @Returned VARCHAR(10) SET @Returned = ''Returned'' SELECT @HandlerCode = [HAN].[CODE], @HandlerName = RTRIM(ISNULL([HAN].[NAME], @BL)), @HandlerLogon = RTRIM(ISNULL([HAN].[LOGON], @BL)) FROM [dbo].[Handlers] [HAN] WHERE [HAN].[CODE] = ''' + @HANDLER + ''' SELECT IDENTITY(INT, 1,1) AS [RowNumber], * INTO #MyChequeRequisitionTable FROM( SELECT [CRH].[RecordId] AS [ID], [CRH].[RequestNo] AS [RequestNo], dbo.KAAS_FNConvertUTCDateToTargetTimeZone([CRH].[Date], @HANDLER) AS [Date], @HandlerCode AS [RequestedCode], @HandlerName AS [RequestedBy], RTRIM(ISNULL([CRH].[BankAcc], @BL)) AS [Bank], RTRIM(ISNULL([CRH].[NARRATIVE], @BL)) AS [Narrative], RTRIM(ISNULL([CRH].[NARRATIVE], @BL)) AS [LedgerNarrative], RTRIM(ISNULL([CRH].[Notes], @BL)) AS [Notes], ISNULL([CRH].[GrossAmount], 0) AS [Value], RTRIM(ISNULL([CRH].[Supplier], @BL)) AS [Supplier], RTRIM(ISNULL([CRH].[Payee], @BL)) AS [Payee], RTRIM(ISNULL([CRH].[EFTYorN], @BL)) AS [EFTYorN], RTRIM(ISNULL([CRH].[ClientCode], @BL)) AS [ClientCode], RTRIM(ISNULL([CRH].[PayClient], @BL)) AS [PayClient], RTRIM(ISNULL([CRH].[OnceOffPayment], @BL)) AS [OnceOffPayment], RTRIM(ISNULL([FEE].[CODE], @BL)) AS [FeeEarnerCode], RTRIM(ISNULL([FEE].[NAME], @BL)) AS [FeeEarner], RTRIM(ISNULL([CRH].[TypeCode], @BL)) AS [Type], RTRIM(ISNULL([CRH].[MATTER], @BL)) AS [MatterCode], RTRIM(ISNULL([CRH].[Nominal], @BL)) AS [NominalCode], RTRIM(ISNULL([NOL].[AccountName], @BL)) AS [Nominal], RTRIM(ISNULL([CRH].[CASEASSCODE], @BL)) AS [CaseAssociate], CASE WHEN RTRIM(ISNULL([CRH].[ThirdParty], @N)) = @Y THEN @Y ELSE @N END AS [ThirdParty], CASE WHEN RTRIM(ISNULL([NOM].[Client], @N)) = @Y THEN @Y ELSE @N END AS [ClientAccount], CASE WHEN RTRIM(ISNULL([NOM].[Deposit], @N)) = @Y THEN @Y ELSE @N END AS [DepositAccount], RTRIM(ISNULL([CRH].[OutlayCode], @BL)) AS [OutlayCode], RTRIM(ISNULL([MAT].[FECODE],@BL)) AS [MatterFeCode], CASE ISNULL([CRH].[ChequeStatus], @Request) WHEN @Request THEN @Request WHEN @Released THEN @Released WHEN @Approved THEN @Approved WHEN @Returned THEN @Returned ELSE @Request END AS [Status] FROM [dbo].[ChequeRequisitions] [CRH] LEFT OUTER JOIN [dbo].[Handlers] [FEE] ON [FEE].[CODE] = [CRH].[FeeEarner] LEFT OUTER JOIN [dbo].[Nominal] [NOM] ON [NOM].[NominalCode] = [CRH].[BankAcc] LEFT OUTER JOIN [dbo].[Nominal] [NOL] ON [NOL].[NominalCode] = [CRH].[Nominal] LEFT OUTER JOIN [dbo].[MATTERS] [MAT] ON [MAT].[CODE] = [CRH].[MATTER] WHERE [CRH].[CreatedBy] IN (@HandlerCode,@HandlerLogon) AND ' SET @COMMAND = @COMMAND + ' (@STATUSFILTER = '''' OR [CRH].[ChequeStatus] in (select CASE ISNULL(FilterValue,'''') WHEN 0 THEN ''Request'' WHEN 1 THEN ''Released'' WHEN 2 THEN ''Approved'' WHEN 3 THEN ''Returned'' ELSE ''Request'' END from (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE(@STATUSFILTER,'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND' IF ISNULL(@FEEEARNERFILTER,'') != '' BEGIN SET @COMMAND = @COMMAND + '(@FEEEARNERFILTER = '''' OR FEE.[CODE] in (select FilterValue from (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE(@FEEEARNERFILTER,'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) AND' END SET @COMMAND = @COMMAND + ' ( CRH.[DATE] LIKE ''%'' + @SearchText + ''%'' OR CRH.[MATTER] LIKE ''%'' + @SearchText + ''%'' OR CRH.[BankAcc] LIKE ''%'' + @SearchText + ''%'' OR CRH.[ChequeStatus] LIKE ''%'' + @SearchText + ''%'' OR CRH.[NARRATIVE] LIKE ''%'' + @SearchText + ''%'' OR CRH.[GrossAmount] LIKE ''%'' + @SearchText + ''%'' OR CRH.[PAYEE] LIKE ''%'' + @SearchText + ''%'' OR FEE.[NAME] LIKE ''%'' + @SearchText + ''%'' OR @HandlerName LIKE ''%'' + @SearchText + ''%'' )) AS MyChequeRequisitionTable' SET @COMMAND= @COMMAND+' SELECT * FROM #MyChequeRequisitionTable WHERE ( @StartRow IS NULL OR ( [RowNumber] BETWEEN @StartRow AND @EndRow ) ) ORDER BY CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''RowNumber'' THEN [RowNumber] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''RowNumber'' THEN [RowNumber] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Date'' THEN [Date] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Date'' THEN [Date] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''MatterCode'' THEN [MatterCode] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''MatterCode'' THEN [MatterCode] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Bank'' THEN [Bank] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Bank'' THEN [Bank] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Narrative'' THEN [Narrative] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Narrative'' THEN [Narrative] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Value'' THEN [Value] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Value'' THEN [Value] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Payee'' THEN [Payee] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Payee'' THEN [Payee] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''FeeEarner'' THEN [FeeEarner] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''FeeEarner'' THEN [FeeEarner] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''RequestedBy'' THEN [RequestedBy] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''RequestedBy'' THEN [RequestedBy] END END DESC, CASE WHEN @SortDirection = ''ASC'' THEN CASE @SortColumn WHEN ''Status'' THEN [Status] END END, CASE WHEN @SortDirection = ''DESC'' THEN CASE @SortColumn WHEN ''Status'' THEN [Status] END END DESC SELECT COUNT([RowNumber]) AS TotalRecords FROM #MyChequeRequisitionTable' END print @command EXEC sp_executesql @COMMAND, N'@HANDLER VARCHAR(10),@SearchText VARCHAR(4000), @StartRow INT, @EndRow INT, @SortColumn VARCHAR(50), @SortDirection VARCHAR(10), @STATUSFILTER VARCHAR(50), @FEEEARNERFILTER VARCHAR(1000), @REQUESTEDBYFILTER VARCHAR(1000)', @HANDLER = @HANDLER, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow, @SortColumn = @SortColumn, @SortDirection = @SortDirection, @STATUSFILTER = @STATUSFILTER, @FEEEARNERFILTER = @FEEEARNERFILTER, @REQUESTEDBYFILTER = @REQUESTEDBYFILTER END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MyChequesForPaymentId' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MyChequesForPaymentId] END GO CREATE PROCEDURE [dbo].[KAAS_MyChequesForPaymentId] (@ChequeId VARCHAR(10) = NULL, @Handler VARCHAR(10) = '') AS /************************************************************************************* * * * To fetch the Cheque value based on the ChequeId * * * * Stored Procedure Name : [dbo].[KAAS_MyChequesForPaymentId] * * * * Modification History * * 2023-10-13 Sadiq Created * ************************************************************************************/ BEGIN SELECT CRH.[REQNO] AS [ID], CRH.[REQNO] AS [RequestNo], convert(nvarchar(30),dbo.KAAS_FNConvertUTCDateToTargetTimeZone([CRH].[Date], @Handler),23) AS [Date], RTRIM(ISNULL(HAN.[CODE], '')) AS [RequestedCode], RTRIM(ISNULL(HAN.[NAME], '')) AS [RequestedBy], RTRIM(ISNULL(CRH.[BANK], '')) AS [Bank], RTRIM(ISNULL(CRH.[NARRATIVE], '')) AS [Narrative], RTRIM(ISNULL(CRD.[NARRATIVE], '')) AS [LedgerNarrative], RTRIM(ISNULL(CRH.[RETURNREASON], '')) AS [Notes], ISNULL(CRH.[VALUE], 0) AS [Value], RTRIM(ISNULL(CRH.[SUPPLY], '')) AS [Supplier], RTRIM(ISNULL(CRH.[PAYEE], '')) AS [Payee], RTRIM(ISNULL(CRH.[EFTYorN], '')) AS [EFTYorN], RTRIM(ISNULL(CRH.[ClientCode], '')) AS [ClientCode], RTRIM(ISNULL(CRH.[PayClient], '')) AS [PayClient], RTRIM(ISNULL(CRH.[OnceOffPayment], '')) AS [OnceOffPayment], RTRIM(ISNULL(FEE.[CODE], '')) AS [FeeEarnerCode], RTRIM(ISNULL(FEE.[NAME], '')) AS [FeeEarner], RTRIM(ISNULL(CRD.[TYPE], '')) AS [Type], RTRIM(ISNULL(CRD.[MATTER], '')) AS [MatterCode], RTRIM(ISNULL(CRD.[NOMINAL], '')) AS [NominalCode], RTRIM(ISNULL(NOL.[DESC], '')) AS [Nominal], RTRIM(ISNULL(CRD.[CASEASSCODE], '')) AS [CaseAssociate], CASE WHEN RTRIM(ISNULL(CRH.[THIRDPARTY], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [ThirdParty], CASE WHEN RTRIM(ISNULL(NOM.[CLIENTAC], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [ClientAccount], CASE WHEN RTRIM(ISNULL([NOM].[DEPOSITYN], 'N')) = 'Y' THEN 'Y' ELSE 'N' END AS [DepositAccount], CRH.[OutlayCode], RTRIM(ISNULL(MAT.FECODE,'')) AS MatterFeCode, CASE ISNULL(CRH.[Status], 0) WHEN 0 THEN 'Request' WHEN 1 THEN 'Released' WHEN 2 THEN 'Approved' WHEN 3 THEN 'Returned' ELSE 'Request' END AS [Status] FROM [dbo].[Handlers] HAN INNER JOIN [dbo].[ChequeRequisitionHeader] CRH LEFT OUTER JOIN [dbo].[Handlers] FEE ON FEE.[CODE] = CRH.[FEEEARNER] LEFT OUTER JOIN [dbo].[Nominal] NOM ON NOM.[CODE] = CRH.[BANK] ON ( ( RTRIM(ISNULL(HAN.[LOGON], '')) <> RTRIM(ISNULL(HAN.[CODE], '')) AND CRH.[WHO] = HAN.[LOGON]) OR (CRH.[WHO] = HAN.[CODE])) --AND CRH.[Status] = ''0'' LEFT OUTER JOIN [dbo].[ChequeRequisitionDetail] CRD LEFT OUTER JOIN [dbo].[Nominal] NOL ON NOL.[Code] = CRD.[NOMINAL] ON CRD.[REQNO] = CRH.[REQNO] LEFT OUTER JOIN [dbo].[MATTERS] MAT ON MAT.CODE= CRD.[MATTER] where CRH.REQNO=@ChequeId END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_MyContactFetchMatters' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_MyContactFetchMatters] END GO CREATE PROCEDURE KAAS_MyContactFetchMatters (@Handler VARCHAR(10), @CaseCode VARCHAR(20), @which INT, @BitWiseID BIGINT, @userprompt1 VARCHAR(100)='User 1 Field' OUT, @userprompt2 VARCHAR(100)='User 2 Field' OUT, @userprompt3 VARCHAR(100)='User 3 Field' OUT) AS /******************************************************************************************************* * To Fetch Matter based on Selected contact. * * * * Stored Procedure Name : [dbo].[KAAS_MyContactFetchMatters] * * Copied from : [dbo].[ky_NETMyContactFetchMatters] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2021-10-13 Sadiq Date Format issue Fixed (13221) * *******************************************************************************************************/ BEGIN DECLARE @Command VARCHAR(MAX) SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0)) SELECT @UserPrompt1 = REPLACE(RTRIM(ISNULL(CTL.[UserPrompt1], '')), ':', ''), @UserPrompt2 = REPLACE(RTRIM(ISNULL(CTL.[UserPrompt2], '')), ':', ''), @UserPrompt3 = REPLACE(RTRIM(ISNULL(CTL.[UserPrompt3], '')), ':', '') FROM [dbo].[Control] CTL SET @COMMAND = ' SELECT CONVERT(VARCHAR(20), MAT.[Code]) AS [Code], CONVERT(VARCHAR(20), CON.[Code]) AS [CaseCode], RTRIM(ISNULL(FC.[COLOURDESC], '''')) AS [FileColour], RTRIM(ISNULL(CON.[Name], '''')) AS [Name], RTRIM(ISNULL(MAT.[Description], '''')) AS [Description], RTRIM(ISNULL(HAN.[NAME], '''')) AS [Fe], RTRIM(ISNULL(MAT.[User1], '''')) AS User1, RTRIM(ISNULL(MAT.[User2], '''')) AS User2, RTRIM(ISNULL(MAT.[User3], '''')) AS User3, CONVERT(VARCHAR, MAT.[Started] , 120) AS [Started], RTRIM(ISNULL(DP.[DESC], '''')) AS [Dept], RTRIM(ISNULL(WT.[DESC], '''')) AS [WorkType], ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) AS [Privileges], RTRIM(ISNULL(MAT.[OldRef], '''')) AS [OldRef], RTRIM(ISNULL(CON.[Address], '''')) AS [Address], ISNULL(FC.[RGBColour], -1) AS [FileRGBColour] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[RecentMatterList] RML ON RML.[FEE] = ''' + @handler + ''' AND RML.[MATTER] = MAT.[Code] INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = MAT.[FECode] LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP ON MNP.[MATTER] = MAT.[Code] LEFT OUTER JOIN [dbo].[FileColours] FC ON FC.[COLOURCODE] = MAT.[FileColour] LEFT OUTER JOIN [dbo].[Departments] DP ON DP.[CODE] = MAT.[Dept] LEFT OUTER JOIN [dbo].[WorkTypes] WT ON WT.[CODE] = MAT.[WType] WHERE CON.[Code] = ''' + @CaseCode + ''' AND (ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, ''' + CONVERT(VARCHAR(20), @BitWiseID) + ''') <> 0 OR MNP.[Privileges] IS NULL)' IF (@which = 1) BEGIN SET @COMMAND = @COMMAND + 'AND MAT.[FECode] = ''' + @handler + '''' END IF (@which = 2) BEGIN SET @COMMAND = @COMMAND + 'ORDER BY ISNULL(RML.[DateField], ''18000101'') DESC,MAT.[Code]' END EXEC (@COMMAND) END GO IF OBJECT_ID(N'KAAS_NETChangeHandlerActivation2',N'P')IS NOT NULL DROP PROCEDURE KAAS_NETChangeHandlerActivation2 GO CREATE PROCEDURE [dbo].[KAAS_NETChangeHandlerActivation2] (@HandlerCode VARCHAR(10), @ActivationHash VARCHAR(180), @PasswordHash VARCHAR(180), @SupervisorHash VARCHAR(180)) AS /************************************************************************************************************************* * * KAAS_NETChangeHandlerActivation2 * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * remains fully functional * ****************************************************************************************** * * * * Supersedes: [dbo].[ky_NETChangeHandlerActivation] * * First compatible version: 5.5.1.1 (5.4.6.10) * * Last compatible software version: - * * Superseded by: - * * * ****************************************************************************************** * * Changes log on details for a handler * * Modification History * 2016-01-29 Pino Carafa Imported into Framework Release 2 * 2017-01-05 Arun Vasu Have Included Password Policy for reset password. * 2017-04-12 Arun Vasu Have added condition to exclude Admin login * 2017-05-03 Suriya KEYD-4586-When the Password Policy is applied the option * "Make/Remove the handler as a Supervisor" option is not working. * 2019-07-08 John Ginnane KEYD-6012 - Wrapped HandlerNetLogon fields in ISNULL * 2021-05-25 Sadiq Copied from ky_NETChangeHandlerActivation2 *************************************************************************************************************************/ BEGIN --If user is not reused with in 24 password DECLARE @IsApplyPasswordPolicy BIT DECLARE @ReusePassword INT SET @IsApplyPasswordPolicy = (SELECT ISNULL([KeyValue],'False') FROM [Settings] WHERE [KeyName] = 'ApplyPasswordPolicy') IF(@IsApplyPasswordPolicy = 'True') BEGIN SET @ReusePassword = 24 --If required this value can move to settings table after confirmation from Stephen/Gerry. END ELSE BEGIN SET @ReusePassword = 0 END IF NOT EXISTS ( SELECT TOP (@ReusePassword) 1 FROM [PasswordHistory] WHERE [Handlercode] = @HandlerCode AND [PasswordHash] = @PasswordHash AND HandlerCode <> 'ADM' AND PasswordHash <> '' ORDER BY [DATE] DESC) BEGIN INSERT INTO [dbo].[HandlerNETLogons] ([HANDLER]) SELECT NH.[HandlerCode] FROM (SELECT @HandlerCode As [HandlerCode]) NH LEFT OUTER JOIN [dbo].[HandlerNETLogons] HNL ON HNL.[HANDLER] = NH.[HandlerCode] WHERE HNL.[HANDLER] IS NULL UPDATE HNL SET HNL.[Active] = CASE WHEN ISNULL(@ActivationHash, '') = '' THEN ISNULL(HNL.[Active], '') ELSE @ActivationHash END, HNL.[Password] = CASE WHEN ISNULL(@PasswordHash, '') = '' THEN ISNULL(HNL.[Password], '') ELSE @PasswordHash END, HNL.[Supervisor] = CASE WHEN ISNULL(@SupervisorHash, '') = '' THEN ISNULL(HNL.[Supervisor], '') ELSE @SupervisorHash END, HNL.[Date] = GETDATE() FROM [dbo].[HandlerNETLogons] HNL WHERE HNL.[HANDLER] = @HandlerCode UPDATE [PasswordHistory] SET [IsActive] = 0 WHERE [HandlerCode] = @HandlerCode INSERT INTO [PasswordHistory] ([HandlerCode], [PasswordHash], [Date], [IsActive]) VALUES(@HandlerCode, @PasswordHash, GETDATE(), 1) END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_NetChangeWorkActionTypeOrder' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_NetChangeWorkActionTypeOrder] END GO CREATE PROC [dbo].[KAAS_NetChangeWorkActionTypeOrder]( @WorkType VARCHAR(4) ,@ActionCode VARCHAR(15) ,@Change SMALLINT ) AS /* */ /******************************************************************************************************* * This procedure is used to Change Work Action Type Order . * * * * Stored Procedure Name : [dbo].[KAAS_NetChangeWorkActionTypeOrder] * * Copied from : [dbo].[ky_NETChangeWorkActionTypeOrder] * * * Modification History : * * 2023-06-09 Nithyanandham M Created * *******************************************************************************************************/ BEGIN --> -ve== -1 --> 0==Min --> +ve== +1 --> 9999==Max DECLARE @Seq SMALLINT SELECT @Seq=Seq FROM ActionWorkTypes WHERE WorkType=@WorkType AND ActionCode=@ActionCode IF(@Change<0 ) ---1 BEGIN UPDATE ActionWorkTypes SET SEQ =SEQ+(-@Change) WHERE WorkType=@WorkType AND SEQ=@Seq-1 UPDATE ActionWorkTypes SET SEQ = CASE WHEN SEQ-(-@Change) <1 THEN 1 ELSE SEQ-(-@Change) END WHERE WorkType=@WorkType AND ActionCode=@ActionCode AND SEQ=@Seq END IF(@Change=0 AND @Seq<>1) --Top BEGIN UPDATE ActionWorkTypes SET SEQ =SEQ+1 WHERE WorkType=@WorkType AND ActionCode<>@ActionCode AND SEQ < @Seq UPDATE ActionWorkTypes SET SEQ =1 WHERE WorkType=@WorkType AND ActionCode=@ActionCode END IF(@Change BETWEEN 1 AND 9998 ) --+1 BEGIN UPDATE ActionWorkTypes SET SEQ = CASE WHEN (SEQ-@Change) <1 THEN 1 ELSE SEQ-@Change END WHERE WorkType=RTRIM(@WorkType) AND SEQ=@Seq+@Change UPDATE ActionWorkTypes SET SEQ = CASE WHEN (SEQ+@Change) >(SELECT ISNULL(MAX(SEQ),0)+1 FROM ActionWorkTypes WHERE WorkType=RTRIM(@WorkType) AND RTRIM(ActionCode)<>RTRIM(@ActionCode)) THEN SEQ ELSE SEQ+@Change END WHERE RTRIM(WorkType)=RTRIM(@WorkType) AND RTRIM(ActionCode)=RTRIM(@ActionCode) --AND -- SEQ=@Seq END IF(@Change=9999) --Bottom BEGIN UPDATE ActionWorkTypes SET SEQ =(SELECT ISNULL(MAX(SEQ),0) FROM ActionWorkTypes WHERE WorkType=RTRIM(@WorkType)) WHERE RTRIM(WorkType)=@WorkType AND RTRIM(ActionCode)=@ActionCode UPDATE ActionWorkTypes SET SEQ= CASE WHEN SEQ-1 <1 THEN 1 ELSE SEQ-1 END WHERE RTRIM(WorkType)=RTRIM(@WorkType) AND RTRIM(ActionCode)<>RTRIM(@ActionCode) AND SEQ BETWEEN @SEQ AND (SELECT MAX(SEQ) FROM ActionWorkTypes WHERE RTRIM(WorkType)=RTRIM(@WorkType)) END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_NETDiaryUpdateMatterWorkType' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_NETDiaryUpdateMatterWorkType] END GO CREATE PROCEDURE [dbo].[KAAS_NETDiaryUpdateMatterWorkType] ( @code VARCHAR(10), @mattercode VARCHAR(20) )AS /**************************************************************************************************** * * * Description: To update case plan for the selected matter * * * * Stored Procedure : KAAS_NETDiaryUpdateMatterWorkType * * * * Modification History * * 2019-02-20 Prabhu.V Created copied from [dbo].[ky_NETSPFetchDiaryByMatterCode] * * * ****************************************************************************************************/ BEGIN UPDATE CaseMaster SET CSWKTCODE = @code WHERE RTRIM(CSCODE) = @mattercode END GO DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 0 BEGIN EXEC(' IF OBJECT_ID(''KAAS_NETSPGetDefaultFeeEarnerBreakdown'', ''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_NETSPGetDefaultFeeEarnerBreakdown] END') EXEC(' CREATE PROCEDURE [dbo].[KAAS_NETSPGetDefaultFeeEarnerBreakdown] (@DRAFTNO INT) AS /************************************************************************** * * ky_NETSPGetDefaultFeeEarnerBreakdown * * Gets the Default Fee Earner Breakdown for a Draft Bill * If a Billing Guide is present, it uses the billing guide, * otherwise it uses the Bill Detail Lines to work it out. * **************************************************************************/ BEGIN DECLARE @BFEB TABLE ([MATTER] VARCHAR(20) NOT NULL, [DRAFTNO] INT NOT NULL, [BILLNO] INT NOT NULL, [FECODE] VARCHAR(10) NULL, [TYPE] VARCHAR(1) NULL, [PERCENT] DECIMAL(5, 2) NULL, [CALCULATION] DECIMAL(9, 5) NULL, [VALUE] DECIMAL(11, 2) NULL, [VATCODE] VARCHAR(1) NULL, [VATAMT] DECIMAL(11, 2) NULL, [RECORDID] INT IDENTITY(1,1) NOT NULL, [VATCalculation] DECIMAL(15, 5) NULL) INSERT INTO @BFEB ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation]) SELECT [MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation] FROM [KAAS_BGNewBillFeeBreakdown](@DRAFTNO) IF NOT EXISTS (SELECT TOP 1 1 FROM @BFEB) BEGIN INSERT INTO @BFEB ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation]) SELECT [MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation] FROM [KAAS_BGNewBillFeeBreakdownBD](@DRAFTNO) END SELECT BFEB.[RECORDID], RTRIM(ISNULL(HAN.[NAME], '''')) AS [FeeEarner], RTRIM(ISNULL(HAN.[CODE], '''')) AS [FeeEarnerCode], BFEB.[PERCENT] AS [SHORTPERCENT], BFEB.[CALCULATION] AS [PERCENT], BFEB.[VALUE] AS [VALUE], BFEB.[VATAMT] AS [VAT Amount], BFEB.[VATCalculation] AS [VAT Calculation], RTRIM(ISNULL(BFEB.[VATCode], '''')) AS [VATCode] FROM @BFEB BFEB LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[code] = BFEB.[FECODE] END') END GO DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 1 BEGIN EXEC(' IF OBJECT_ID(''KAAS_NETSPGetDefaultFeeEarnerBreakdownSAM4'', ''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_NETSPGetDefaultFeeEarnerBreakdownSAM4] END') EXEC(' CREATE PROCEDURE [dbo].[KAAS_NETSPGetDefaultFeeEarnerBreakdownSAM4] (@DRAFTNO INT) AS /************************************************************************** * * ky_NETSPGetDefaultFeeEarnerBreakdownSAM4 * * Gets the Default Fee Earner Breakdown for a Draft Bill * If a Billing Guide is present, it uses the billing guide, * otherwise it uses the Bill Detail Lines to work it out. * * 2018-08-07 John Ginnane Created * 2018-08-22 John Ginnane Fixed incorrect SP call * **************************************************************************/ BEGIN DECLARE @BFEB TABLE ([BillingNo] INT NOT NULL, [FECode] VARCHAR(10) NULL, [Percentage] DECIMAL(9, 5) NULL, [FeeValue] DECIMAL(11, 2) NULL, [LineType] VARCHAR(1) NULL, [VatValue] DECIMAL(11, 2) NULL, [VatCode] VARCHAR(10) NULL, [VatRate] DECIMAL(19, 2) NULL, [NominalCode] VARCHAR(30) NULL, [Calculation] DECIMAL(5, 2) NULL, [BreakNO] INT IDENTITY(1,1) NOT NULL) INSERT INTO @BFEB ([BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation]) SELECT [BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation] FROM [KAAS_BGNewBillFeeBreakdownSAM4](@DRAFTNO) IF NOT EXISTS (SELECT TOP 1 1 FROM @BFEB) BEGIN INSERT INTO @BFEB ([BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation]) SELECT [BillingNo], [FECode], [Percentage], [FeeValue], [LineType], [VatValue], [VatCode], [VatRate], [NominalCode], [Calculation] FROM [KAAS_BGNewBillFeeBreakdownBDSAM4](@DRAFTNO) END SELECT BFEB.[BreakNO], RTRIM(ISNULL(HAN.[CODE], '''')) AS [FeeEarnerCode], RTRIM(ISNULL(HAN.[Name], '''')) AS [FeeEarner], ISNULL(BFEB.[Calculation], 0) AS [SHORTPERCENT], ISNULL(BFEB.[Percentage], 0) AS [PERCENT], ISNULL(BFEB.[FeeValue], 0) AS [VALUE], RTRIM(ISNULL(BFEB.[VatCode], '''')) AS [VATCODE], ISNULL(BFEB.[VatValue], 0) AS [VAT Amount] FROM @BFEB BFEB LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = BFEB.[FECode] WHERE BFEB.[BillingNo] = @DRAFTNO END') END GO IF OBJECT_ID(N'KAAS_NETSPSiteReportProjectName',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_NETSPSiteReportProjectName] GO CREATE PROCEDURE [dbo].[KAAS_NETSPSiteReportProjectName] AS /************************************************************************************************************* * * * [dbo].[ky_NETSPSiteReportProjectName] * * * * Gets/Creates a Site Guid to uniquely identify a Keyhouse site * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.8.1.9 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2020-04-10 Pino Carafa Created * * 2020-11-20 Pino Carafa Store SiteReportProjectName in [dbo].[Settings] the first time this is * * called (KEYD-6968) and then retrieve it from there ever after * * 2021-06-14 Arun Vasu Copied this procedure for Keyhouse Saas Web * *************************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS (SELECT TOP 1 1 FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'SiteReportProjectName') BEGIN SELECT [SET].[KeyValue] AS [SiteReportProjectName] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'SiteReportProjectName' RETURN END IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'SiteGuid') BEGIN INSERT INTO [dbo].[Settings] ([KeyName], [KeyValue]) SELECT 'SiteGuid', [NEW].[NewSiteGuid] FROM (SELECT CONVERT(VARCHAR(36), NEWID()) AS [NewSiteGuid]) [NEW] LEFT OUTER JOIN [dbo].[Settings] [SET] ON [SET].[KeyName] = 'SiteGuid' WHERE [SET].[KeyName] IS NULL END DECLARE @SITE VARCHAR(40) DECLARE @SITE28 VARCHAR(28) DECLARE @CHAR CHAR(1) SELECT TOP 1 @SITE = RTRIM(ISNULL([NAME], '')) FROM [dbo].[control] SET @SITE = ISNULL(@SITE, '') SET @SITE28 = '' WHILE LEN(@SITE) > 0 BEGIN SET @CHAR = SUBSTRING(@SITE, 1, 1) SET @SITE = SUBSTRING(@SITE, 2, LEN(@SITE) - 1) IF LEN(@SITE28) = 28 BEGIN SET @SITE = '' END ELSE IF @CHAR >= '0' AND @CHAR <= '9' BEGIN SET @SITE28 = @SITE28 + @CHAR END ELSE IF @CHAR >= 'a' AND @CHAR <= 'z' BEGIN SET @SITE28 = @SITE28 + @CHAR END ELSE IF @CHAR >= 'A' AND @CHAR <= 'Z' BEGIN SET @SITE28 = @SITE28 + @CHAR END END INSERT INTO [dbo].[Settings] ([KeyName], [KeyValue]) SELECT 'SiteReportProjectName', @SITE28 + REPLACE(CONVERT(VARCHAR(36), [SET].[KeyValue]), '-', '') AS [SiteReportProjectName] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'SiteGuid' SET NOCOUNT OFF EXEC [dbo].[ky_NETSPSiteReportProjectName] END GO IF OBJECT_ID('[dbo].[KAAS_NetWorkingDays]') IS NOT NULL DROP FUNCTION [dbo].[KAAS_NetWorkingDays] GO CREATE FUNCTION [dbo].[KAAS_NetWorkingDays] ( @FROMDATE DATETIME, @TODATE DATETIME) RETURNS INT AS /******************************************************************************************************* * Returns number of total working days between two dates. * * * * Stored Procedure Name : [dbo].[KAAS_NetWorkingDays] * * Copied from : [dbo].[ky_NETNetWorkingDays] * * * * Modification History : * * 2019-04-16 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @I INT DECLARE @COUNT INT DECLARE @DIFF INT SELECT @DIFF = DATEDIFF(D, @FROMDATE, @TODATE), @I = 0, @COUNT = 0 WHILE(@I < @DIFF) BEGIN SELECT @COUNT = @COUNT + 1 WHERE DATENAME(DW, DATEADD(D, @I, @FROMDATE)) NOT IN ('Saturday','Sunday') SET @I = @I + 1 END RETURN @COUNT END GO IF OBJECT_ID(N'[KAAS_OtherCaseDetailsDelete]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_OtherCaseDetailsDelete] GO CREATE PROCEDURE [KAAS_OtherCaseDetailsDelete] ( @CaseCode VARCHAR(200), @FILEPREFIX VARCHAR(200), @FIELDNAME VARCHAR(200), @Result INT OUTPUT ) AS /******************************************************************************************************* * This procedure is used to Delete data for other case details main grid.. * * * * Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsDelete] * * Copied from : [dbo].[ky_NETOtherCaseDetailsDelete] * * * * Modification History : * * 2019-07-11 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM CaseUDFAnswers WHERE CASECODE = @CaseCode AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME) IS NOT NULL BEGIN DELETE FROM dbo.CaseUDFAnswers WHERE CASECODE = @CaseCode AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_OtherCaseDetailsDeleteAll',N'P') IS NOT NULL DROP PROCEDURE KAAS_OtherCaseDetailsDeleteAll GO CREATE PROCEDURE KAAS_OtherCaseDetailsDeleteAll ( @CaseCode VARCHAR(200), @Function VARCHAR(20) ) AS /******************************************************************************* * * * Stored Procedure Name : KAAS_OtherCaseDetailsDeleteAll * * Copied From : ky_NETOtherCaseDetailsDeleteAll * * * * Last Updated: 12 FEB 2015 Arun - Change NVARCHAR to VARCHAR * * 28 FEB 1010 Vindohan - Created KAAS_OtherCaseDetailsDeleteAll * * * *******************************************************************************/ BEGIN SET NOCOUNT ON if UPPER(@Function) ='DELETE' BEGIN IF(SELECT TOP 1 1 FROM CaseUDFAnswers WHERE CASECODE = @CaseCode) IS NOT NULL BEGIN DELETE FROM dbo.CaseUDFAnswers WHERE CASECODE = @CaseCode END END ELSE IF UPPER(@Function) ='CLEAR' BEGIN IF(SELECT TOP 1 1 FROM CaseUDFAnswers WHERE CASECODE = @CaseCode) IS NOT NULL BEGIN UPDATE dbo.CaseUDFAnswers SET DateValue =NULL ,NumberValue =NULL ,TEXT1 =NULL WHERE CASECODE = @CaseCode END END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_OtherCaseDetailsFetchEditDialog' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsFetchEditDialog] END GO CREATE PROCEDURE [dbo].[KAAS_OtherCaseDetailsFetchEditDialog] (@CaseCode VARCHAR(20), @FILEPREFIX VARCHAR(5), @FIELDNAME VARCHAR(30), @UDFCategory VARCHAR(20)) AS /******************************************************************************************************* * This procedure is used to FETCH data for other case details Edit Dialog. * * * * Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsFetchEditDialog] * * Copied from : [dbo].[ky_NETOtherCaseDetailsFetchEditDialog] * * * * Modification History : * * 2019-07-09 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @INITIALVALUE VARCHAR(MAX) DECLARE @INITIALFORMAT VARCHAR(50) DECLARE @INITIALTYPE VARCHAR(11) DECLARE @INITIALNUMERICVALUE DECIMAL(20, 2) DECLARE @INITIALDATE DATETIME SELECT @INITIALVALUE = [SUF].[INITIALVALUE], @INITIALFORMAT = [SUF].[FORMAT], @INITIALTYPE = [SUF].[TYPE] FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] = @FILEPREFIX AND [SUF].[FIELDNAME] = @FIELDNAME IF @INITIALVALUE IS NOT NULL BEGIN IF (@INITIALTYPE = 'Numeric') OR (@INITIALFORMAT LIKE '@n%') BEGIN BEGIN TRY SET @INITIALNUMERICVALUE = CONVERT(DECIMAL(20, 2), CONVERT(MONEY, @INITIALVALUE)) END TRY BEGIN CATCH END CATCH END ELSE IF (@INITIALTYPE = 'Date') OR (@INITIALFORMAT LIKE '@d%') OR (@INITIALFORMAT LIKE '%DD%') OR (@INITIALFORMAT LIKE '%MM%') OR (@INITIALFORMAT LIKE '%YY%') BEGIN BEGIN TRY SET @INITIALVALUE = [dbo].[ky_SUFFormat](@INITIALVALUE, @INITIALFORMAT) IF RTRIM(ISNULL(@INITIALVALUE, '')) <> '' BEGIN SET @INITIALDATE = CONVERT(DATETIME, [dbo].[ky_SUFFormat](@INITIALVALUE, '@D8')) END END TRY BEGIN CATCH END CATCH END END SELECT [UDC].[UDFCategory] AS [GroupName], [SUF].[PROMPT] AS [Detail], [SUF].[LENGTH] AS [Size], [SUF].[FORMAT] AS [Format], RTRIM(ISNULL([CUF].[UDFFILE], '')) + RTRIM(ISNULL([CUF].[UDFNAME], '')) AS [DocumentCode], CASE WHEN [CUF].[CASECODE] IS NULL THEN CONVERT(VARCHAR(11), @INITIALDATE, 106) ELSE CONVERT(VARCHAR(11), [CUF].[DateValue], 106) END AS [DateValue], CASE WHEN [CUF].[CASECODE] IS NULL THEN ISNULL(@INITIALNUMERICVALUE, 0) ELSE [CUF].[NumberValue] END AS [NumberValue], CASE WHEN [CUF].[CASECODE] IS NULL THEN ISNULL(@INITIALVALUE, '') ELSE [CUF].[TEXT1] END AS [TEXT1], [SUF].[TYPE] AS [TYPE], [CUF].[SEQNO] AS [SEQNO], [SUF].[FILEPREFIX] AS [FILEPREFIX], [SUF].[FIELDNAME] AS [FIELDNAME], [SUF].[UDFCategory] AS [UDFCategory], RTRIM(ISNULL([SUF].[VALIDATION], '')) AS [VALIDATION], ISNULL([SUF].[LENGTH], 0) AS [LENGTH], ISNULL([SUF].[LOW], 0) AS [LOW], ISNULL([SUF].[HIGH], 0) AS [HIGH], ISNULL([SUF].[DECMIAL], 0) AS [DECIMAL] FROM [dbo].[SystemUserDefinedFields] [SUF] LEFT OUTER JOIN [dbo].[CaseUDFAnswers] [CUF] ON [CUF].[CASECODE] = @CaseCode AND [CUF].[UDFFILE] = [SUF].[FILEPREFIX] AND [CUF].[UDFNAME] = [SUF].[FIELDNAME] LEFT OUTER JOIN [dbo].[UDFCategory] [UDC] ON [UDC].[ID] = [SUF].[UDFCategory] WHERE [SUF].[FILEPREFIX] = @FILEPREFIX AND [SUF].[FIELDNAME] = @FIELDNAME ORDER BY [CUF].[SEQNO] SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_OtherCaseDetailsFetchListOnly',N'P')IS NOT NULL DROP PROCEDURE KAAS_OtherCaseDetailsFetchListOnly GO CREATE PROCEDURE KAAS_OtherCaseDetailsFetchListOnly ( @FIELDNAME VARCHAR(30) ) AS BEGIN /******************************************************************************************************* * This procedure is used to Fetch validation on selected list only (L) is selected in UDF Fields. * * * * Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsFetchListOnly] * * Copied from : [dbo].[ky_NETOtherCaseDetailsFetchListOnly] * * * * Modification History : * * 2019-07-09 Vinodhan K Created * *******************************************************************************************************/ SET NOCOUNT ON SELECT RTRIM([FIELDNAME]) AS [FIELDNAME] ,RTRIM([CODE]) AS [CODE] ,RTRIM([DESCRIPTION]) AS [DESCRIPTION] FROM UDFLookups WHERE [FIELDNAME] = @FIELDNAME SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_OtherCaseDetailsFetchMainGrid',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsFetchMainGrid] GO CREATE PROCEDURE [dbo].[KAAS_OtherCaseDetailsFetchMainGrid] (@CaseCode VARCHAR(20), @PageNumber INT = NULL, @PageSize INT = NULL, @SearchText VARCHAR(400) = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /******************************************************************************************************* * To FETCH data for other case details main grid. * * * * Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsFetchMainGrid] * * Copied from : [dbo].[ky_NETOtherCaseDetailsFetchMainGrid] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2019-08-23 Dheepin Vijith K Modified - Default sorting changed to DESC to show the latest values * * on the top of the grid first * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(RTRIM(ISNULL(@SearchText, '')) = '' OR RTRIM(@SearchText) = '') BEGIN SET @SearchText = '' END IF(ISNULL(@SortColumn, '') = '' OR RTRIM(LTRIM(@SortColumn)) = '') BEGIN SET @SortColumn = 'SeqNo' END IF(ISNULL(@SortDirection, '') = '' OR RTRIM(LTRIM(@SortDirection)) = '') BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OtherCaseDetailTable FROM (SELECT RTRIM(ISNULL(UDFCategory.UDFCategory,'')) AS GroupName, RTRIM( SystemUserDefinedFields.PROMPT) AS Detail, CONVERT(DATETIME, RTRIM(CaseUDFAnswers.DateValue), 23) AS DateValue, --ISNULL(CONVERT(VARCHAR,CaseUDFAnswers.DateValue,23),'') AS DateValue, CASE RTRIM(SystemUserDefinedFields.[VALIDATION]) WHEN 'L' THEN CONVERT(VARCHAR(MAX),RTRIM(ISNULL(CaseUDFAnswers.TEXT1,'')))+' - ' + (SELECT RTRIM(ISNULL(UDFLookups.[DESCRIPTION],'')) FROM UDFLookups WHERE SystemUserDefinedFields.FIELDNAME = UDFLookups.FIELDNAME AND CONVERT(VARCHAR(MAX),CaseUDFAnswers.TEXT1) = UDFLookups.CODE) WHEN 'R' THEN CONVERT(VARCHAR(200),RTRIM(ISNULL(CaseUDFAnswers.TEXT1,''))) WHEN 'T' THEN CONVERT(VARCHAR(200),RTRIM(ISNULL(CaseUDFAnswers.TEXT1,''))) ELSE CASE RTRIM(SystemUserDefinedFields.[TYPE]) WHEN 'Text' THEN (CASE WHEN CONVERT(VARCHAR(200),RTRIM(ISNULL(CaseUDFAnswers.TEXT1,'')))='' THEN '' ELSE CONVERT(VARCHAR(200),RTRIM(ISNULL(CaseUDFAnswers.TEXT1,''))) END) WHEN 'Numeric' THEN --(CASE -- WHEN SystemUserDefinedFields.DECMIAL=0 THEN CONVERT(VARCHAR(20),CONVERT(DECIMAL(18,0),CaseUDFAnswers.NumberValue) ) -- WHEN SystemUserDefinedFields.DECMIAL=1 THEN CONVERT(VARCHAR(20),CONVERT(DECIMAL(18,1),CaseUDFAnswers.NumberValue) ) -- WHEN SystemUserDefinedFields.DECMIAL=2 THEN CONVERT(VARCHAR(20),CONVERT(DECIMAL(18,2),CaseUDFAnswers.NumberValue) ) --END) CONVERT(VARCHAR(20),CAST(CaseUDFAnswers.NumberValue AS MONEY ),1) WHEN 'Date' THEN CASE WHEN CONVERT(VARCHAR(20), CaseUDFAnswers.DateValue, 23) = '1900-01-01' THEN '' --ELSE CONVERT(VARCHAR(20), CaseUDFAnswers.DateValue, 23) ELSE CONVERT(VARCHAR(20), CaseUDFAnswers.DateValue, 106) END ELSE CONVERT(VARCHAR(200),RTRIM(ISNULL(CaseUDFAnswers.TEXT1,''))) END END AS Value , RTRIM(ISNULL(CaseUDFAnswers.NumberValue,0)) AS NumberValue , RTRIM(ISNULL(CaseUDFAnswers.TEXT1,'')) AS [Text1] , RTRIM(SystemUserDefinedFields.TYPE) AS [Type] , RTRIM(ISNULL(CaseUDFAnswers.SEQNO,0)) AS [SeqNo] , RTRIM(SystemUserDefinedFields.FILEPREFIX) AS [FilePrefix] , RTRIM(SystemUserDefinedFields.FIELDNAME) AS [FieldName] , RTRIM(ISNULL(SystemUserDefinedFields.UDFCategory,0)) AS UDFCategory , CASE WHEN RTRIM(ISNULL(CaseUDFAnswers.ForCopy,0)) = '1' THEN 'True' ELSE 'False' END AS ForCopy , SystemUserDefinedFields.DECMIAL AS [Decimal] , SystemUserDefinedFields.LENGTH AS [Length] , SystemUserDefinedFields.FORMAT AS [Format] ,RTRIM(ISNULL(SystemUserDefinedFields.[VALIDATION], '')) AS [Validation] ,RTRIM(ISNULL(CaseUDFAnswers.[UDFFILE], '')) + RTRIM(ISNULL(CaseUDFAnswers.[UDFNAME], '')) AS [DocumentCode] FROM CaseUDFAnswers INNER JOIN SystemUserDefinedFields ON CaseUDFAnswers.UDFFILE = SystemUserDefinedFields.FILEPREFIX AND CaseUDFAnswers.UDFNAME = SystemUserDefinedFields.FIELDNAME LEFT OUTER JOIN UDFCategory ON SystemUserDefinedFields.UDFCategory = UDFCategory.ID WHERE ( ISNULL(@SearchText, '') = '' OR RTRIM(LTRIM(@SearchText)) = '' OR ( [UDFCategory].[UDFCategory] LIKE '%' + @SearchText + '%' OR [SystemUserDefinedFields].[PROMPT] LIKE '%' + @SearchText + '%' OR [CaseUDFAnswers].[DateValue] LIKE '%' + @SearchText + '%' OR [SystemUserDefinedFields].[VALIDATION] LIKE '%' + @SearchText + '%' OR [CaseUDFAnswers].[TEXT1] LIKE '%' + @SearchText + '%' OR [SystemUserDefinedFields].[TYPE] LIKE '%' + @SearchText + '%' OR [CaseUDFAnswers].[NumberValue] LIKE '%' + @SearchText + '%' OR [CaseUDFAnswers].[SEQNO] LIKE '%' + @SearchText + '%' OR [SystemUserDefinedFields].[FILEPREFIX] LIKE '%' + @SearchText + '%' OR [SystemUserDefinedFields].[FIELDNAME] LIKE '%' + @SearchText + '%' OR [SystemUserDefinedFields].[UDFCategory] LIKE '%' + @SearchText + '%' OR [CaseUDFAnswers].[ForCopy] LIKE '%' + @SearchText + '%' OR [SystemUserDefinedFields].[DECMIAL] LIKE '%' + @SearchText + '%' OR [SystemUserDefinedFields].[LENGTH] LIKE '%' + @SearchText + '%' ) ) AND (RTRIM(CaseUDFAnswers.CASECODE) = RTRIM(@CaseCode))) AS FoundTable ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'SeqNo' THEN CAST([SeqNo] AS INT) END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'SeqNo' THEN CAST([SeqNo] AS INT) END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'GroupName' THEN [GroupName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'GroupName' THEN [GroupName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Detail' THEN [Detail] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Detail' THEN [Detail] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DateValue' THEN [DateValue] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DateValue' THEN [DateValue] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Value' THEN [Value] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Value' THEN [Value] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'NumberValue' THEN [NumberValue] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'NumberValue' THEN [NumberValue] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Text1' THEN [Text1] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Text1' THEN [Text1] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'FilePrefix' THEN [FilePrefix] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'FilePrefix' THEN [FilePrefix] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'FieldName' THEN [FieldName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'FieldName' THEN [FieldName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'UDFCategory' THEN [UDFCategory] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'UDFCategory' THEN [UDFCategory] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'ForCopy' THEN [ForCopy] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'ForCopy' THEN [ForCopy] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Decimal' THEN [Decimal] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Decimal' THEN [Decimal] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Length' THEN [Length] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Length' THEN [Length] END END DESC SELECT * FROM #OtherCaseDetailTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #OtherCaseDetailTable SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_OtherCaseDetailsInsert' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsInsert] END GO CREATE PROCEDURE [dbo].[KAAS_OtherCaseDetailsInsert] (@CaseCode VARCHAR(200), @FIELDNAME VARCHAR(200), @Result INT OUTPUT) AS /******************************************************************************************************* * This procedure is used to insert data for other case details main grid. * * * * Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsInsert] * * Copied from : [dbo].[ky_NETOtherCaseDetailsInsert] * * * * Modification History : * * 2019-07-10 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = @CaseCode AND RTRIM(ISNULL(CUF.[UDFFILE], '')) = 'UDF:' AND RTRIM(ISNULL(CUF.[UDFNAME], '')) = @FIELDNAME) BEGIN DECLARE @SEQNO BIGINT SET @SEQNO = 0 SELECT TOP 1 @SEQNO = CUF.[SEQNO] FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = @CaseCode ORDER BY CUF.[SEQNO] DESC SET @SEQNO = @SEQNO + 1 DECLARE @INITIALVALUE VARCHAR(MAX) DECLARE @INITIALFORMAT VARCHAR(50) DECLARE @INITIALTYPE VARCHAR(11) DECLARE @INITIALNUMERICVALUE DECIMAL(20, 2) DECLARE @INITIALDATE DATETIME SELECT @INITIALVALUE = [SUF].[INITIALVALUE], @INITIALFORMAT = [SUF].[FORMAT], @INITIALTYPE = [SUF].[TYPE] FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] = 'UDF:' AND [SUF].[FIELDNAME] = @FIELDNAME IF @INITIALVALUE IS NOT NULL BEGIN IF (@INITIALTYPE = 'Numeric') OR (@INITIALFORMAT LIKE '@n%') BEGIN BEGIN TRY SET @INITIALNUMERICVALUE = CONVERT(DECIMAL(20, 2), CONVERT(MONEY, @INITIALVALUE)) END TRY BEGIN CATCH END CATCH END ELSE IF (@INITIALTYPE = 'Date') OR (@INITIALFORMAT LIKE '@d%') OR (@INITIALFORMAT LIKE '%DD%') OR (@INITIALFORMAT LIKE '%MM%') OR (@INITIALFORMAT LIKE '%YY%') BEGIN BEGIN TRY SET @INITIALVALUE = [dbo].[ky_SUFFormat](@INITIALVALUE, @INITIALFORMAT) IF RTRIM(ISNULL(@INITIALVALUE, '')) <> '' BEGIN SET @INITIALDATE = CONVERT(DATETIME, [dbo].[ky_SUFFormat](@INITIALVALUE, '@D8')) END END TRY BEGIN CATCH END CATCH END END INSERT INTO [dbo].[CaseUDFAnswers] ([CASECODE], [UDFFILE], [UDFNAME], [SEQNO], [DateValue], [NumberValue], [TEXT1]) VALUES(RTRIM(@CaseCode), 'UDF:', RTRIM(@FIELDNAME), @SEQNO, @INITIALDATE, @INITIALNUMERICVALUE, @INITIALVALUE) SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_OtherCaseDetailsloadCmb', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsloadCmb] END GO CREATE PROCEDURE [dbo].[KAAS_OtherCaseDetailsloadCmb] AS /******************************************************************************************************* * This procedure is used to Fetch data for other case details Add Dropdown. * * * * Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsloadCmb] * * Copied from : [dbo].[ky_NETOtherCaseDetailsloadCmb] * * * * Modification History : * * 2019-07-10 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT UDFC.[UDFCategory] AS [Category], SUDF.[PROMPT] AS [FIELD], SUDF.[FIELDNAME] AS [FIELDNAME] FROM [dbo].[SystemUserDefinedFields] AS SUDF LEFT OUTER JOIN [dbo].[UDFCategory] AS UDFC ON SUDF.[UDFCategory] = UDFC.[ID] WHERE SUDF.[FILEPREFIX] = 'UDF:' SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_OtherCaseDetailsUpdate' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsUpdate] END GO CREATE PROCEDURE [dbo].[KAAS_OtherCaseDetailsUpdate] (@CaseCode VARCHAR(200), @FILEPREFIX VARCHAR(200), @FIELDNAME VARCHAR(200), @Text VARCHAR(MAX), @Number DECIMAL(18,2), @Date DATETIME, @Result INT OUTPUT) AS /******************************************************************************************************* * This procedure is used To insert data for other case details main grid. * * * * Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsUpdate] * * Copied from : [dbo].[ky_NETOtherCaseDetailsUpdate] * * * * Modification History : * * 2019-07-10 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF @Date = CONVERT(DATETIME, '') BEGIN SET @Date = NULL END ELSE IF YEAR(@Date) < 1901 BEGIN SET @Date = NULL END ELSE BEGIN SET @DATE = CONVERT(DATETIME, CONVERT(VARCHAR, @Date, 112)) END IF RTRIM(ISNULL(@Text, '')) = '' BEGIN IF (@Number = '0.00') AND (@Date IS NULL) BEGIN SET @Text = '' END ELSE IF (@Date IS NULL) BEGIN IF (SELECT TYPE from SystemUserDefinedFields where FILEPREFIX=@FILEPREFIX and FIELDNAME=@FIELDNAME )<> 'Text' BEGIN SET @Text = CONVERT(VARCHAR(30), @Number) END END ELSE BEGIN SET @Number = [dbo].[KAAS_FN_ConvertDateToClarion](@Date) SET @Text = CONVERT(VARCHAR(30), @Number) END END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = @CaseCode AND CUF.[UDFFILE] = @FILEPREFIX AND CUF.[UDFNAME] = @FIELDNAME) BEGIN UPDATE CUF SET CUF.[TEXT1] = @Text, CUF.[NumberValue] = @Number, CUF.[DateValue] = @Date FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = @CaseCode AND CUF.[UDFFILE] = @FILEPREFIX AND CUF.[UDFNAME] = @FIELDNAME SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_OutlayBalanceDrilldown' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_OutlayBalanceDrilldown] END GO CREATE PROCEDURE [dbo].[KAAS_OutlayBalanceDrilldown] (@Handler VARCHAR(10), @PageNumber INT = NULL, @PageSize INT = NULL, @SearchText VARCHAR(100) = '', @SortColumn VARCHAR(20) = '', @SortDirection VARCHAR(10) = '') AS /************************************************************************************************** * * Details the values that make up the Outlay Balance in ky_NETDashboard * * Stored procedure name : KAAS_OutlayBalanceDrilldown * Copied from : ky_NETOutlayBalanceDrilldown * * Modification History * 2015-06-24 Pino Carafa Created * 2015-11-25 John Ginnane Formatting balance so negative balances are wrapped in parenthese * 2016-01-11 John Ginnane Undone previous changes as VB .NET handles this * 2019-22-04 Vinodhan K Created KAAS_OutlayBalanceDrilldown * ***************************************************************************************************/ BEGIN DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Row_Number' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF [dbo].[ISSAM4]() = 0 BEGIN SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OutlayBalanceSAM3Table FROM ( SELECT RTRIM(ISNULL(MAT.[CODE], '''')) AS [Code], RTRIM(ISNULL(CON.[NAME], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[Description], '''')) AS [Description], ISNULL(MAT.[OutlayBal], 0) AS [OutlayBalance], ISNULL(MAT.[ClientBal], 0) AS [ClientACBalance] FROM [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[code] = MAT.[clientcode] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [MAT].[CODE] LIKE ''%' + @SearchText + '%'' OR [CON].[NAME] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [MAT].[OutlayBal] LIKE ''%' + @SearchText + '%'' OR [MAT].[ClientBal] LIKE ''%' + @SearchText + '%'' ) ) AND MAT.[FECode] = @Handler AND MAT.[Closed] <> ''Y'' AND MAT.[OutlayBal] <> 0) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #OutlayBalanceSAM3Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #OutlayBalanceSAM3Table' END ELSE BEGIN SET @NCOMMAND = N' SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #OutlayBalanceSAM4Table FROM (SELECT RTRIM(ISNULL(OBL.[CODE], '''')) AS [Code], RTRIM(ISNULL(CON.[NAME], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[Description], '''')) AS [MatterDescription], ISNULL(OBL.[OutlayBalance], 0) AS [OutlayBalance], ISNULL(OBL.[ClientACBalance], 0) AS [ClientACBalance] FROM ( SELECT MT1.[Code], ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0) AS [OutlayBalance], ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0) + ISNULL(TRN.[ClientDeposit], 0)), 0) AS [ClientACBalance] FROM [dbo].[matters] MT1 INNER JOIN [dbo].[Transactions] TRN ON TRN.[MatterCode] = MT1.[Code] AND ( ( (TRN.[Posted] = ''Y'') AND (TRN.[RecType] <> ''V'') AND (TRN.[CorrectionInd] = ''L'')) OR ( (TRN.[Posted] IS NULL) AND (TRN.[RecType] IS NULL) AND (TRN.[CorrectionInd] IS NULL))) WHERE MT1.[FECode] = @Handler AND MT1.[Closed] <> ''Y'' GROUP BY MT1.[Code]) OBL INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[code] = MAT.[clientcode] ON MAT.[code] = OBL.[code] WHERE ( RTRIM(LTRIM(@SearchText)) = '''' OR ( [OBL].[CODE] LIKE ''%' + @SearchText + '%'' OR [CON].[NAME] LIKE ''%' + @SearchText + '%'' OR [MAT].[Description] LIKE ''%' + @SearchText + '%'' OR [OBL].[OutlayBalance] LIKE ''%' + @SearchText + '%'' OR [OBL].[ClientACBalance] LIKE ''%' + @SearchText + '%'' ) ) AND ISNULL(OBL.[OutlayBalance], 0) <> 0) AS FoundTable ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT * FROM #OutlayBalanceSAM4Table WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS TotalRecords FROM #OutlayBalanceSAM4Table' END EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow END GO IF OBJECT_ID(N'KAAS_OutlayCodes', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_OutlayCodes] END GO CREATE PROCEDURE [dbo].[KAAS_OutlayCodes] AS /**************************************************************************** * * List outlay codes * * Stored Procedure Name : KAAS_OutlayCodes * Copied From : ky_NETSPOutlayCodes * * Modification history: * ????-??-?? ??? Created * 2019-08-06 John Ginnane Added to SVN * 2019-08-06 Vinodhan Created KAAS_OutlayCodes ****************************************************************************/ BEGIN DECLARE @COMMAND VARCHAR(MAX) IF [dbo].[ISSAM4]() = 0 BEGIN SET @COMMAND = ' SELECT RTRIM(ISNULL(OLC.[CODE], '''')) AS [Code], RTRIM(ISNULL(OLC.[DESCRIPTION], '''')) AS [Description] FROM [dbo].[OutlayCode] OLC ORDER BY OLC.[Description]' END ELSE BEGIN SET @COMMAND = ' SELECT RTRIM(ISNULL(OLC.[OutlayCode], '''')) AS [Code], RTRIM(ISNULL(OLC.[DESCRIPTION], '''')) AS [Description] FROM [dbo].[OutlayCode] OLC ORDER BY OLC.[Description]' END EXEC (@COMMAND) END GO IF OBJECT_ID(N'KAAS_OWA_GetDocumentsIM',N'P')IS NOT NULL DROP PROCEDURE KAAS_OWA_GetDocumentsIM GO CREATE PROCEDURE [dbo].[KAAS_OWA_GetDocumentsIM] ( @matter VARCHAR(20), @ActionID INT, @DocFolderID INT, @IMDocs VARCHAR(MAX), @PageNo INT, @PageSize INT, @SearchText VARCHAR(4000), @FileType VARCHAR(4000), @SortColumn VARCHAR(50) = '', @SortDirection VARCHAR(10) = '', @OWASetting_HideImagesOnSelectingAttachments BIT ) AS /************************************************************************************************************* * * * [dbo].[KAAS_GetDocumentsIM] * * * * Get list of Documents applied with OWA setting for the Document List in OWA * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * Original: [ky_NETSPGetDocumentsIM] * * * * First compatible version: 5.7.2.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2019-07-15 Ramesh K Copied from KAAS_GetDocumentsIM *************************************************************************************************************/ BEGIN DECLARE @res TABLE ([id] INT identity(1, 1) PRIMARY KEY, [ActionId] INT, [TrackReference] INT, [IMDocID] VARCHAR(500), [IMClass] VARCHAR(20), [DocClass] VARCHAR(10), [Document] VARCHAR(2000), [DiaryDate] DATETIME, [DocumentDate] DATETIME, [TYPE] VARCHAR(20), [Attachments] CHAR(1), [EMAIL] VARCHAR(1), [EMAILFROM] VARCHAR(200), [EMAILSENT] DATETIME, [EMAILTO] VARCHAR(1000), [CurrentVersion] INT, [IsInDocFolder] BIT, [IsShared] BIT, [UniqueId] INT) DECLARE @classes TABLE ([KeyhouseClass] INT, [IMClass] INT, [ClassCode] VARCHAR(20), [ClassDescription] VARCHAR(100)) DECLARE @IMDocTable TABLE ([IMDocID] VARCHAR(500) PRIMARY KEY, [Description] VARCHAR(2000), [IMClass] VARCHAR(20), [IMType] VARCHAR(20), [EmailFrom] VARCHAR(200), [EmailTo] VARCHAR(1000), [EmailSent] DATETIME, [DocumentDate] DATETIME) DECLARE @Diary TABLE ([ActionID] INT PRIMARY KEY) DECLARE @FileTypeList TABLE ([FileType] VARCHAR(20) PRIMARY KEY) INSERT INTO @FileTypeList SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@FileType, ',') DECLARE @idoc INT DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNo = ISNULL(@PageNo, 0) - 1; -- 0 BASED INDEX IF(@PageNo > -1) BEGIN SET @StartRow = ((@PageNo) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'RowNumber' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END IF (ISNULL(@DocFolderID, 0) = 0) AND (ISNULL(@ActionID, 0) = 0) BEGIN SET @IMDocs = ISNULL(@IMDocs, '' + CHAR(13) + CHAR(10) + '') IF (ISNULL(PATINDEX('%' + CHAR(13) + CHAR(10) + @IMDocs END BEGIN TRY EXEC sp_xml_preparedocument @idoc OUTPUT, @IMDocs END TRY BEGIN CATCH EXEC sp_xml_preparedocument @idoc OUTPUT, '' END CATCH INSERT INTO @IMDocTable ([IMDocID], [Description], [IMClass], [IMType], [EmailFrom], [EmailTo], [EmailSent], [DocumentDate]) SELECT [DAL].[IMDocID], [DAL].[Description], [DAL].[IMClass], [DAL].[IMType], [DAL].[EmailFrom], [DAL].[EmailTo], [DAL].[EmailSent], [DAL].[DocumentDate] FROM OPENXML(@idoc, 'IMDocs/Doc', 2) WITH([IMDocID] VARCHAR(500) '@DocId', [Description] VARCHAR(2000) '@Description', [IMClass] VARCHAR(20) '@ClassId', [IMType] VARCHAR(20) '@TypeId', [EmailFrom] VARCHAR(200) '@EmailFrom', [EmailTo] VARCHAR(1000) '@EmailTo', [EmailSent] DATETIME '@EmailSent', [DocumentDate] DATETIME '@DocumentDate') [DAL] EXEC sp_xml_removedocument @idoc INSERT INTO @res ([ActionId], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [DiaryDate], [DocumentDate], [EmailSent], [TYPE], [Attachments], [EMAIL], [EmailFrom], [EmailTo], [CurrentVersion], [IsInDocFolder], [IsShared]) SELECT CONVERT(INT, NULL) AS [ActionID], CONVERT(INT, NULL) AS [TrackReference], [DAL].[IMDocID] AS [IMDocID], [DAL].[IMClass] AS [IMClass], CONVERT(VARCHAR(10), NULL) AS [DocClass], [DAL].[Description] AS [Document], CONVERT(DATETIME, ISNULL([DAL].[DocumentDate], [DAL].[EmailSent])) AS [DiaryDate], CONVERT(DATETIME, ISNULL([DAL].[DocumentDate], [DAL].[EmailSent])) AS [DocumentDate], CONVERT(DATETIME, [DAL].[EmailSent]) AS [EMAILSENT], CASE CONVERT(VARCHAR(20),[DAL].[IMTYPE]) WHEN 'WORD' THEN 'DOC' WHEN 'WORDX' THEN 'DOC' WHEN 'WPF' THEN 'DOC' WHEN 'ANSI' THEN 'DOC' WHEN 'ACROBAT' THEN 'PDF' WHEN 'EXCEL' THEN 'XLS' WHEN 'EXCELX' THEN 'XLS' WHEN 'MIME' THEN CASE WHEN [DAL].[IMClass] = 'E-Mail' THEN 'MSG' ELSE 'MIME' END ELSE [DAL].[IMTYPE] END AS [TYPE], CONVERT(CHAR(1),'N') AS [Attachments], CONVERT(CHAR(1), CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail' THEN 'Y' ELSE 'N' END) AS [EMAIL], CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail' THEN [DAL].[EMAILFROM] ELSE CONVERT(VARCHAR(200), NULL) END AS [EmailFrom], CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail' THEN [DAL].[EMAILTO] ELSE CONVERT(VARCHAR(1000), NULL) END AS [EmailTo], CONVERT(INT, 1) AS [CurrentVersion], 0 AS [IsInDocFolder], 0 AS [IsShared] FROM @IMDocTable [DAL] LEFT OUTER JOIN [dbo].[DAIMXref] [DX] ON [DX].[IMDocID] = [DAL].[IMDocID] WHERE [DX].[TrackReference] IS NULL INSERT INTO @Diary ([ActionID]) SELECT [DIA].[ActionID] FROM [dbo].[diary] [DIA] WHERE [DIA].[CASECODE] = @matter INSERT INTO @res ([ActionId], [TrackReference]) SELECT [DIA].[ActionID], [DAT].[TrackReference] FROM @Diary [DIA] INNER JOIN [dbo].[DiaryAttachments] [DAT] ON [DAT].[DiaryID] = [DIA].[ActionID] WHERE ( ( @SearchText = '' OR ([DAT].FILEPATH LIKE '%' + @SearchText + '%') ) AND ( ISNULL(@FileType, '') = '' OR ([DAT].[TYPE] IN (select FileType from @FileTypeList )) ) AND ( @OWASetting_HideImagesOnSelectingAttachments = 0 OR [dbo].[KAAS_FN_ISIMAGE_TYPE]([DAT].[TYPE]) <> 1 ) ) ORDER BY [DAT].[TrackReference] DESC UPDATE [RES] SET [RES].[IMDocID] = CONVERT(VARCHAR(500), ISNULL([DX].[IMDocID], '')), [RES].[IMClass] = CONVERT(VARCHAR(20), ISNULL([DL].[IMClass], '')), [RES].[DocClass] = CONVERT(VARCHAR(10), ISNULL([DA].[DocClass], '')), [RES].[Document] = RTRIM(CONVERT(VARCHAR(2000), ISNULL([DA].[Document], ''))), [RES].[DiaryDate] = CONVERT(DATETIME, [DIA].[DATE]), [RES].[DocumentDate] = CONVERT(DATETIME, [DA].[DATEENTERED]), [RES].[EMAILSENT] = CONVERT(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])), [RES].[TYPE] = CONVERT(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))), [RES].[Attachments] = CONVERT(CHAR(1), 'Y'), [RES].[EMAIL] = CONVERT(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END), [RES].[EMAILFROM] = CONVERT(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))), [RES].[EMAILTO] = RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')), [RES].[CurrentVersion] = [DV].[CurrentVersion], [RES].[IsInDocFolder] = [IND].[InDocFolder], [RES].[IsShared] = [SHD].[IsShared], [RES].[uniqueid] = [MAT].[uniqueid] FROM @res [RES] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE TRACKREFERENCE = [RES].[TRACKREFERENCE]) [DV] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] INNER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [RES].[TrackReference] LEFT OUTER JOIN [dbo].[DiaryAttachments] [DA] INNER JOIN [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[CODE] = [DIA].[CASECODE] ON [DIA].[ActionID] = [DA].[DiaryID] ON [DA].[TrackReference] = [RES].[TrackReference] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [InDocFolder] FROM [dbo].[DocFolderDocuments] [DFD] WHERE [DFD].[TrackReference] = [DA].[TrackReference]) [IND] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsShared] FROM [dbo].[FileSharingDocuments] [FSD] INNER JOIN [dbo].[FileSharingMapping] [FSM] INNER JOIN [dbo].[FileSharingDocFolders] [FSDF] ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID] AND [FSDF].[Shared] = 1 ON [FSM].[id] = [FSD].[FileSharingMappingID] WHERE [FSD].[TrackReference] = [DA].[TrackReference]) [SHD] WHERE [RES].[id] >= @StartRow AND [RES].[id] <= @EndRow END ELSE IF ISNULL(@DocFolderID, 0) <> 0 BEGIN INSERT INTO @res ([ActionId], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [DiaryDate], [DocumentDate], [EmailSent], [TYPE], [Attachments], [EMAIL], [EmailFrom], [EmailTo], [CurrentVersion], [IsInDocfolder], [IsShared], [UniqueId]) SELECT CONVERT(INT, [DA].[DIARYID]) AS [ActionID], CONVERT(INT, [DA].[TrackReference]) AS [TrackReference], CONVERT(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], CONVERT(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass], CONVERT(VARCHAR(10), ISNULL([DA].[DocClass], '')) AS [DocClass], RTRIM(CONVERT(VARCHAR(2000), ISNULL([DA].[Document], ''))) AS [Document], CONVERT(DATETIME, [DIA].[DATE]) AS [DiaryDate], CONVERT(DATETIME, [DA].[DATEENTERED]) AS [DocumentDate], CONVERT(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) AS [EMAILSENT], CONVERT(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) AS [TYPE], CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END AS [Attachments], CONVERT(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], CONVERT(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], [DV].[CurrentVersion], CONVERT(BIT, 1),[SHD].[IsShared],[MAT].[uniqueid] FROM [dbo].[DocFolderDocuments] [DDC] INNER JOIN [dbo].[DiaryAttachments] [DA] INNER JOIN [dbo].[matters] [MAT] ON [DA].CASECODE = [MAT].Code INNER JOIN [dbo].[diary] [DIA] ON [DIA].[ACTIONID] = [DA].[DiaryID] ON [DA].[TrackReference] = [DDC].[TrackReference] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE TRACKREFERENCE = [DA].[TRACKREFERENCE]) [DV] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsShared] FROM [dbo].[FileSharingDocuments] [FSD] INNER JOIN [dbo].[FileSharingMapping] [FSM] INNER JOIN [dbo].[FileSharingDocFolders] [FSDF] ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID] AND [FSDF].[Shared] = 1 ON [FSM].[id] = [FSD].[FileSharingMappingID] AND [FSM].[FileSharingDocFoldersID] = @DocFolderID WHERE [FSD].[TrackReference] = [DA].[TrackReference]) [SHD] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DA].[TrackReference] WHERE [DDC].[DocFolderID] = @DocFolderID AND ( ( @SearchText = '' OR ([DA].FILEPATH LIKE '%' + @SearchText + '%') ) AND ( ISNULL(@FileType, '') = '' OR ([DA].[TYPE] IN (select FileType from @FileTypeList )) ) ) AND ( @OWASetting_HideImagesOnSelectingAttachments = 0 OR [dbo].[KAAS_FN_ISIMAGE_TYPE]([DA].[TYPE]) <> 1 ) ORDER BY [TrackReference] DESC END ELSE BEGIN INSERT INTO @res ([ActionId], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [DiaryDate], [DocumentDate], [EmailSent], [TYPE], [Attachments], [EMAIL], [EmailFrom], [EmailTo], [CurrentVersion], [IsInDocFolder], [IsShared], [UniqueId]) SELECT CONVERT(INT, [DA].[DIARYID]) AS [ActionID], CONVERT(INT, [DA].[TrackReference]) AS [TrackReference], CONVERT(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID], CONVERT(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass], CONVERT(VARCHAR(10), ISNULL([DA].[DocClass], '')) AS [DocClass], RTRIM(CONVERT(VARCHAR(2000), ISNULL([DA].[Document], ''))) AS [Document], CONVERT(DATETIME, [DIA].[DATE]) AS [DiaryDate], CONVERT(DATETIME, [DA].[DATEENTERED]) AS [DocumentDate], CONVERT(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) AS [EMAILSENT], CONVERT(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) AS [TYPE], CASE WHEN [DIA].[ATTACHMENTS] = 'Y' THEN 'Y' ELSE 'N' END AS [Attachments], CONVERT(VARCHAR(1), CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y' THEN 'Y' ELSE 'N' END) AS [EMAIL], CONVERT(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO], [DV].[CurrentVersion], [IND].[InDocFolder], [SHD].[IsShared], [MAT].[uniqueid] FROM [dbo].[diary] [DIA] INNER JOIN [dbo].[DiaryAttachments] [DA] INNER JOIN [dbo].[matters] [MAT] ON [DA].CASECODE = [MAT].Code CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [InDocFolder] FROM [dbo].[DocFolderDocuments] [DFD] WHERE [DFD].[TrackReference] = [DA].[TrackReference]) [IND] CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0 THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [IsShared] FROM [dbo].[FileSharingDocuments] [FSD] INNER JOIN [dbo].[FileSharingMapping] [FSM] INNER JOIN [dbo].[FileSharingDocFolders] [FSDF] ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID] AND [FSDF].[Shared] = 1 ON [FSM].[id] = [FSD].[FileSharingMappingID] WHERE [FSD].[TrackReference] = [DA].[TrackReference]) [SHD] ON [DA].[DiaryID] = [DIA].[ActionID] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE TRACKREFERENCE = [DA].[TRACKREFERENCE]) [DV] LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] LEFT OUTER JOIN @IMDocTable [DL] ON [DL].[IMDocID] = [DX].[IMDocID] ON [DX].[TrackReference] = [DA].[TrackReference] WHERE [DIA].[ACTIONID] = @ActionID AND ( ( @SearchText = '' OR ([DA].FILEPATH LIKE '%' + @SearchText + '%') ) AND ( ISNULL(@FileType, '') = '' OR ([DA].[TYPE] IN (select FileType from @FileTypeList )) ) AND ( @OWASetting_HideImagesOnSelectingAttachments = 0 OR [dbo].[KAAS_FN_ISIMAGE_TYPE]([DA].[TYPE]) <> 1 ) ) ORDER BY [TrackReference] DESC END INSERT INTO @classes ([KeyhouseClass], [IMClass], [ClassCode], [ClassDescription]) SELECT [CLS].[KeyhouseClass], [CLS].[IMClass], [CLS].[ClassCode], CASE WHEN [CLS].[KeyhouseClass] = 1 THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) ELSE CASE WHEN [CLS].[ClassCode] = 'ATTNOTES' THEN 'Attendance Notes' WHEN [CLS].[ClassCode] = 'BILL' THEN 'Bill' WHEN [CLS].[ClassCode] = 'FAX' THEN 'Fax' WHEN [CLS].[ClassCode] = 'LEGAL' THEN 'Legal' WHEN [CLS].[ClassCode] = 'SCAN' THEN 'Scan' WHEN [CLS].[ClassCode] = 'COMPARE' THEN 'Compare Document' WHEN [CLS].[ClassCode] = 'DISCUSSION' THEN 'Discussion' WHEN [CLS].[ClassCode] = 'DOC' THEN 'Document' WHEN [CLS].[ClassCode] = 'E-MAIL' THEN 'E-Mail' WHEN [CLS].[ClassCode] = 'EVENT' THEN 'Event' WHEN [CLS].[ClassCode] = 'LETTER' THEN 'Letter' WHEN [CLS].[ClassCode] = 'MEMO' THEN 'Memo' WHEN [CLS].[ClassCode] = 'PAGE_ICON' THEN 'Page Icon' WHEN [CLS].[ClassCode] = 'TASK' THEN 'Task' WHEN [CLS].[ClassCode] = 'TEXT' THEN 'Text File' WHEN [CLS].[ClassCode] = 'WEBDOC' THEN 'InfoLink Web Page' ELSE ISNULL([CLS].[CLASSCODE], '') END END AS [ClassDescription] FROM (SELECT DISTINCT 1 AS [KeyhouseClass], 0 AS [IMClass], CONVERT(VARCHAR(20), [RES].[DocClass]) AS [ClassCode] FROM @res [RES] WHERE ISNULL([RES].[DocClass], '') <> '' UNION SELECT DISTINCT 0 AS [KeyhouseClass], 1 AS [IMClass], CONVERT(VARCHAR(20), [RES].[IMClass]) AS [ClassCode] FROM @res [RES] WHERE ISNULL([RES].[IMClass], '') <> '') [CLS] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON [CLS].[KeyhouseClass] = 1 AND DCL.[CLASSCODE] = [CLS].[ClassCode] UPDATE [RES] SET [RES].[EMAIL] = CASE WHEN (ISNULL([RES].[EMAIL], '') = 'Y' AND [RES].[TrackReference] = [OMS].[TrackReference]) THEN 'Y' WHEN (ISNULL([RES].[TYPE], '') = 'MSG' AND [RES].[TrackReference] = [OMS].[TrackReference]) THEN 'Y' ELSE 'N' END, [RES].[Attachments] = CASE WHEN (ISNULL([RES].[EMAIL], '') = 'Y' AND [RES].[TrackReference] = [OMS].[TrackReference]) THEN [RES].[Attachments] WHEN (ISNULL([RES].[TYPE], '') = 'MSG' AND [RES].[TrackReference] = [OMS].[TrackReference]) THEN [RES].[Attachments] ELSE 'N' END FROM @res [RES] OUTER APPLY (SELECT TOP 1 [MST].[TrackReference] AS [TrackReference], [MST].[Type] AS [Type] FROM [dbo].[diaryattachments] [MST] WHERE [MST].[diaryid] = [RES].[ActionID] ORDER BY CASE WHEN [MST].TYPE = 'MSG' THEN 0 ELSE 1 END, [MST].[TrackReference]) [OMS] WHERE [RES].[id] >= @StartRow AND [RES].[id] <= @EndRow AND [RES].[ACTIONID] IS NOT NULL ;WITH DocumentTable AS( SELECT ROW_NUMBER() OVER(ORDER BY [id]) AS [RowNumber], [RES].[id], [RES].[DiaryDate], ISNULL([RES].[ActionID], 0) AS [ACTIONID], [RES].[DocumentDate], [RES].[IMDocID], [RES].[IMClass], [CLS].[ClassDescription] AS [DocumentClassDescription], [RES].[DocClass], [RES].[Document], ISNULL([RES].[TrackReference], 0) AS [TRACKREFERENCE], [RES].[TYPE] AS [TYPE], [RES].[Attachments] AS [Attachments], [RES].[EMAIL], RTRIM(ISNULL(CONVERT(VARCHAR(200), SUBSTRING(ISNULL([DIA].[EMAILADDRESS], [RES].[EMAILFROM]), 1, 200)), '')) AS [EMAILADDRESS], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(ISNULL([DIA].[ADDRESSTO], [RES].[EMAILTO]), 1, 1000)), '')) AS [ADDRESSTO], [RES].[EMAILSENT], RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(2000),[DIA].[SUBJECT]),'')), 1,1000)),'')) AS [SUBJECT], RTRIM(ISNULL(CONVERT(VARCHAR(120), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(120), [DIA].[DisplayText]),'')),1,120)),'')) AS [ShortText], RTRIM(ISNULL([DAT].[NAME], '')) AS [NAME], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [FILEPATH], RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE], CASE WHEN [DIA].[ACTIONTYPE] = 'A' THEN 'Action' WHEN [DIA].[ACTIONTYPE] = 'N' THEN 'Note' WHEN [DIA].[ACTIONTYPE] = 'P' THEN 'Appointment' WHEN [DIA].[ACTIONTYPE] = 'R' THEN 'Reminder' WHEN [DIA].[ACTIONTYPE] = 'E' THEN 'Email' WHEN [DIA].[ACTIONTYPE] = 'T' THEN 'Phone Message' WHEN [DIA].[ACTIONTYPE] = 'D' THEN 'Dictation' WHEN [DIA].[ACTIONTYPE] = 'U' THEN 'Undertaking' WHEN [DIA].[ACTIONTYPE] = 'S' THEN 'Statute Date' WHEN [DIA].[ACTIONTYPE] = 'C' THEN 'Critical Date' WHEN [DIA].[ACTIONTYPE] = 'O' THEN 'Court Date' WHEN [DIA].[ACTIONTYPE] = 'M' THEN 'Scanned Post/Mail' WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = '' THEN CASE WHEN [RES].[EMAIL] = 'Y' THEN 'Email' WHEN [RES].[IMDocID] <> '' THEN 'IManage document' ELSE 'Unknown' END ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription], RTRIM(ISNULL([DAT].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END)) AS [DOCUMENTSOURCE], [RES].[CurrentVersion], [RES].[IsInDocFolder], [RES].[IsShared], [RES].[UniqueId] FROM @res [RES] LEFT OUTER JOIN [dbo].[DiaryAttachments] [DAT] INNER JOIN [dbo].[diary] [DIA] ON [DIA].[ACTIONID] = [DAT].[DIARYID] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DAT].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1) ON [DAT].[TRACKREFERENCE] = [RES].[TrackReference] LEFT OUTER JOIN @classes [CLS] ON [CLS].[KeyhouseClass] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN 0 ELSE 1 END AND [CLS].[IMClass] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN 1 ELSE 0 END AND [CLS].[ClassCode] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN [RES].[IMClass] ELSE [RES].[DocClass] END )SELECT * FROM DocumentTable WHERE DocumentTable.[RowNumber] BETWEEN @StartRow AND @EndRow ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Type' THEN [TYPE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Type' THEN [TYPE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Document' THEN [Document] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Document' THEN [Document] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DocumentClassDescription' THEN [DocumentClassDescription] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DocumentClassDescription' THEN [DocumentClassDescription] END END DESC OPTION (KEEPFIXED PLAN) --2018-02-26 END SELECT COUNT(*) AS [TotalRecord] FROM @res [RES] --bit confused, what the below commented statement do? no harm, since its commented. :-) --BEGIN -- DECLARE @WKCODE CHAR(4) -- DECLARE @MatterCode VARCHAR(20) -- DECLARE @folderid INT -- DECLARE @UseDocFolders VARCHAR(10) -- SELECT TOP 1 -- @UseDocFolders = CONVERT(VARCHAR(10), [KeyValue]) -- FROM [dbo].[Settings] [SET] -- WHERE [SET].[KeyName] = 'UseDocFolders' -- SET @UseDocFolders = CASE WHEN ISNULL(@UseDocFolders, '') = 'True' THEN 'True' ELSE 'False' END -- IF @UseDocFolders = 'False' -- BEGIN -- -- Dummy statement -- SELECT TOP 0 -- CONVERT(INT, 0) AS [id], -- CONVERT(INT, 0) AS [parent], -- CONVERT(VARCHAR(500), '') AS [foldername], -- CONVERT(INT, 0) AS [foldericon] -- RETURN -- END -- SELECT TOP 1 -- @MatterCode = [SM].[CODE], -- @WKCODE = [TMP].[WKCODE] -- FROM [dbo].[SearchMatters] SM -- INNER JOIN [dbo].[CaseMaster] CSM -- ON [CSM].[CSCODE] = SM.[Code] -- LEFT OUTER JOIN [dbo].[Templates] [TMP] -- ON [TMP].[WKCODE] = [CSM].[CSWKTCODE] -- WHERE [CSM].[CSCODE] = @matter -- IF @MatterCode IS NULL -- BEGIN -- -- Dummy statement -- SELECT TOP 0 -- CONVERT(INT, 0) AS [id], -- CONVERT(INT, 0) AS [parent], -- CONVERT(VARCHAR(500), '') AS [foldername], -- CONVERT(INT, 0) AS [foldericon] -- RETURN -- END -- SELECT TOP 1 -- @folderid = MDF.[DocFolderID] -- FROM [dbo].[MatterDocFolders] MDF -- WHERE [MDF].[MatterCode] = @MatterCode -- IF @folderid IS NULL -- BEGIN -- DECLARE @DefaultRootFolderName VARCHAR(500) -- SELECT @DefaultRootFolderName = CONVERT(VARCHAR(500), [SET].[KeyValue]) -- FROM [dbo].[Settings] [SET] -- WHERE [SET].[KeyName] = 'DocFolderDefaultRootName' -- SET @DefaultRootFolderName = RTRIM(ISNULL(@DefaultRootFolderName, 'Documents')) -- IF @WKCODE IS NULL -- BEGIN -- EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] '' -- UPDATE [DF] -- SET [DF].[foldername] = @DefaultRootFolderName -- FROM [dbo].[DocFolders] [DF] -- WHERE [DF].[id] = @folderid -- END -- ELSE -- BEGIN -- SELECT TOP 1 -- @folderid = CDF.[DocFolderID] -- FROM [dbo].[CasePlanDocFolders] CDF -- WHERE [CDF].[WKCode] = @WKCODE -- IF @folderid IS NULL -- BEGIN -- EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] '' --UPDATE [DF] -- SET [DF].[foldername] = @DefaultRootFolderName -- FROM [dbo].[DocFolders] [DF] -- WHERE [DF].[id] = @folderid -- INSERT -- INTO [dbo].[CasePlanDocFolders] -- ([WKCode], -- [DocFolderID]) -- SELECT @WKCODE, -- @folderid -- END -- DECLARE @DUP TABLE -- ([id] INT) -- INSERT INTO @DUP -- EXEC @folderid = [dbo].[KAAS_DuplicateDocFolderTree] @folderid -- END -- INSERT -- INTO [dbo].[MatterDocFolders] -- ([MatterCode], -- [DocFolderID]) -- SELECT @MatterCode, -- @folderid -- END IF ISNULL(@DocFolderID, 0) <> 0 BEGIN SELECT * FROM [dbo].[KAAS_FN_GetDocFolders](@matter, @DocFolderID, 1, 1) WHERE parent <> -1 END ELSE BEGIN SELECT TOP 0 CONVERT(INT, 0) AS [seq], CONVERT(INT, 0) AS [id], CONVERT(INT, 0) AS [parent], CONVERT(VARCHAR(500), '') AS [foldername], CONVERT(INT, 0) AS [foldericon], CONVERT(VARBINARY(MAX), NULL) AS [folderimage], CONVERT(BIT, 0) AS [foldershared], CONVERT(BIT, 0) AS [folderisours], CONVERT(INT, 0) AS [documentcount] END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ParseFCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ParseFCode] END GO CREATE PROCEDURE [dbo].[KAAS_ParseFCode] (@XMLHead NVARCHAR(MAX), @FCODE NVARCHAR(MAX) OUT) AS /************************************************************************************************************* * * * Parses an f.code string and returns the interpreted System Field Value * * * * Stored Procedure : KAAS_ParseFCode * * Copied From : [dbo].[ky_NETFNParseFCode] * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.6.4.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2018-12-17 Pino Carafa Created * * 2019-01-07 Pino Carafa Handle numerical fields with Thousand Separators * * 2019-01-14 Pino Carafa when searching for colons, ignore quoted ones. * * 2019-01-16 Pino Carafa Don't process commas or brackets while inside quoted text * * 2019-12-19 Vinodhan Created KAAS_ParseFCode * * * *************************************************************************************************************/ BEGIN SET @FCODE = REPLACE(@FCODE, 'f.chr(10) & f.chr(13)', '____NEWLINE____') SET @FCODE = REPLACE(@FCODE, 'f.chr(13) & f.chr(10)', '____NEWLINE____') SET @FCODE = REPLACE(@FCODE, 'f.chr(13)', '____NEWLINE____') SET @FCODE = REPLACE(@FCODE, 'f.chr(10)', '____NEWLINE____') SET @FCODE = REPLACE(@FCODE, 'chr(10) & chr(13)', '____NEWLINE____') SET @FCODE = REPLACE(@FCODE, 'chr(13) & chr(10)', '____NEWLINE____') SET @FCODE = REPLACE(@FCODE, 'chr(13)', '____NEWLINE____') SET @FCODE = REPLACE(@FCODE, 'chr(10)', '____NEWLINE____') SET @FCODE = REPLACE(@FCODE, '____NEWLINE____', 'f.chr(13) & f.chr(10)') DECLARE @WRAPPED BIT IF LEN(@FCODE) > 0 BEGIN SET @WRAPPED = 1 SET @FCODE = '(' + @FCODE + ')' END DECLARE @RECONSTRUCTEDFCODE VARCHAR(MAX) DECLARE @RECONSTRUCTEDFCODE2 VARCHAR(MAX) DECLARE @FCODEQUOTED BIT DECLARE @CHARINDEX INT DECLARE @ORIGINALLEN INT DECLARE @CHAR CHAR(1) DECLARE @BIT VARCHAR(MAX) DECLARE @NEWBIT BIT DECLARE @BITSTART INT DECLARE @BITEND INT DECLARE @INTERIM TABLE ([RetrievalCode] VARCHAR(500), [Prompt] VARCHAR(80), [Value] VARCHAR(MAX), [DOCNAMING] VARCHAR(MAX)) SET @RECONSTRUCTEDFCODE = '' SET @RECONSTRUCTEDFCODE2 = '' SET @FCODEQUOTED = 0 SET @CHARINDEX = 0 SET @ORIGINALLEN = LEN(@FCODE) SET @BIT = '' SET @NEWBIT = 0 SET @BITSTART = 1 WHILE @CHARINDEX < @ORIGINALLEN BEGIN SET @CHARINDEX = @CHARINDEX + 1 SET @CHAR = SUBSTRING(@FCODE, @CHARINDEX, 1) IF @FCODEQUOTED = 1 BEGIN SET @RECONSTRUCTEDFCODE = @RECONSTRUCTEDFCODE + @CHAR END ELSE BEGIN SET @RECONSTRUCTEDFCODE = @RECONSTRUCTEDFCODE + @CHAR END IF @CHAR = '''' BEGIN SET @FCODEQUOTED = 1 - @FCODEQUOTED END ELSE BEGIN IF (@CHAR = ',' OR @CHAR='(' OR @CHAR=')') AND (@FCODEQUOTED = 0) BEGIN SET @BITEND = @CHARINDEX SET @BIT = SUBSTRING(@FCODE, @BITSTART, @BITEND - @BITSTART) --SELECT '1: >' + @BIT + '<' IF LEN(@BIT) > 5 BEGIN IF [dbo].[KAAS_FN_GetUnquotedCharacterPos](':', @BIT) > 0 BEGIN DECLARE @PREFIX NVARCHAR(5) DECLARE @VALUE NVARCHAR(MAX) SET @PREFIX = LTRIM(RTRIM(SUBSTRING(@BIT, 1, [dbo].[KAAS_FN_GetUnquotedCharacterPos](':', @BIT)))) SET @VALUE = SUBSTRING(@BIT, [dbo].[KAAS_FN_GetUnquotedCharacterPos](':', @BIT) + 1, LEN(@BIT) - [dbo].[KAAS_FN_GetUnquotedCharacterPos](':', @BIT)) DELETE @INTERIM SET @VALUE = @XMLHead + N'' INSERT INTO @INTERIM ([RetrievalCode], [Prompt], [Value], [DOCNAMING]) EXEC [dbo].[ky_NETSPXMLGetCaseFields] @VALUE SELECT TOP 1 @BIT = [INT].[VALUE] FROM @INTERIM [INT] IF ISNUMERIC(@BIT) = 1 BEGIN DECLARE @THVAL VARCHAR(10) DECLARE @THSEP VARCHAR(1) SET @THVAL = convert(varchar, cast(1000 as money), 1) SET @THSEP = SUBSTRING(@THVAL, 2, 1) IF @THSEP < '0' OR @THSEP > '9' BEGIN SET @BIT = REPLACE(@BIT, @THSEP, '') END END SET @BIT = N'''' + REPLACE(@BIT, N'''', N'''''') + N'''' END END --SELECT '2: ' + @BIT IF (@BIT LIKE 'f.%') BEGIN SET @BIT = REPLACE(@BIT, 'f.', '[dbo].[ky_SUF') + ']' END IF (@BIT LIKE '% f.%') BEGIN SET @BIT = REPLACE(@BIT, ' f.', '[dbo].[ky_SUF') + ']' END SET @RECONSTRUCTEDFCODE2 = @RECONSTRUCTEDFCODE2 + @BIT + @CHAR SET @BITSTART = @BITEND + 1 END END END IF @WRAPPED = 0 BEGIN SET @FCODE = REPLACE(REPLACE(@RECONSTRUCTEDFCODE2, NCHAR(8216), ''''), NCHAR(8217), '''') END ELSE BEGIN SET @FCODE = REPLACE(REPLACE(SUBSTRING(@RECONSTRUCTEDFCODE2, 2, LEN(@RECONSTRUCTEDFCODE2) - 2), NCHAR(8216), ''''), NCHAR(8217), '''') END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE [SO].[name] = 'KAAS_ParseSysField') BEGIN DROP PROCEDURE [dbo].[KAAS_ParseSysField] END GO CREATE PROCEDURE [dbo].[KAAS_ParseSysField] (@FieldID NVARCHAR(MAX) OUT, @ActualName NVARCHAR(MAX) OUT) AS /******************************************************************************************************************* * * * Reads a SYS: instruction from a Precedent and converts it to an actual * * SystemUserDefinedField value and an ActualName conversion * * * * Stored Procedure : KAAS_ParseSysField * * Copied From : [dbo].[ky_NETSPParseSysField] * * * * Modification History * * 2017-01-31 Pino Carafa Created * * 2018-01-29 Pino Carafa bracket counting under &pos conditions was wrong * * 2018-02-02 Pino Carafa Handling UDF(' and value( functions * * 2018-02-05 Pino Carafa Make sure the fields are only split on ampersands outside bracketed expressions * * 2018-02-06 Pino Carafa Don't remove closing quote on comparisons * * 2018-12-17 Pino Carafa Allow for passing literals into 1st parameter of f. functions * * 2018-12-19 Pino Carafa Handling UDF(' function within a Clarion function * * 2018-12-19 Pino Carafa Handling chr(' function * * 2019-12-18 Vinodhan Created KAAS_ParseSysField * * * *******************************************************************************************************************/ BEGIN IF SUBSTRING(@FieldID, 1, 4) = 'SYS:' BEGIN SET @FieldID = SUBSTRING(@FieldID, 5, LEN(@FieldID) - 4) EXEC [dbo].[KAAS_ParseSysField] @FieldID OUT, @ActualName OUT RETURN END DECLARE @UDFFunctionStart INT DECLARE @UDFFunctionEnd INT SET @UDFFunctionStart = PATINDEX('%(UDF(''%', @FieldID) IF @UDFFunctionStart > 0 BEGIN SET @UDFFunctionEnd = CHARINDEX('''', @FieldID, @UDFFunctionSTart + 6) IF @UDFFunctionEnd > 0 BEGIN IF SUBSTRING(LTRIM(SUBSTRING(@FieldID, @UDFFunctionEnd + 2, LEN(@FieldID) - @UDFFunctionEnd - 1)), 1, 1) IN ('*', '/', '\', '+', '-') BEGIN SET @FieldID = SUBSTRING(@FieldID, 1, @UDFFunctionStart) + 'value(UDF:' + SUBSTRING(@FieldID, @UDFFunctionStart + 6, @UDFFunctionEnd - @UDFFunctionStart - 6) + ')' + SUBSTRING(@FieldID, @UDFFunctionEnd + 2, LEN(@FieldID) - @UDFFunctionEnd - 1) END ELSE BEGIN SET @FieldID = SUBSTRING(@FieldID, 1, @UDFFunctionStart) + 'UDF:' + SUBSTRING(@FieldID, @UDFFunctionStart + 6, @UDFFunctionEnd - @UDFFunctionStart - 6) + SUBSTRING(@FieldID, @UDFFunctionEnd + 2, LEN(@FieldID) - @UDFFunctionEnd - 1) END EXEC [dbo].[KAAS_ParseSysField] @FieldID OUT, @ActualName OUT RETURN END END SET @UDFFunctionStart = PATINDEX('%UDF(''%', @FieldID) IF @UDFFunctionStart > 0 BEGIN SET @UDFFunctionEnd = CHARINDEX('''', @FieldID, @UDFFunctionSTart + 5) IF @UDFFunctionEnd > 0 BEGIN SET @FieldID = SUBSTRING(@FieldID, 1, @UDFFunctionStart - 1) + 'value(UDF:' + SUBSTRING(@FieldID, @UDFFunctionStart + 5, @UDFFunctionEnd - @UDFFunctionStart - 5) + SUBSTRING(@FieldID, @UDFFunctionEnd + 1, LEN(@FieldID) - @UDFFunctionEnd) EXEC [dbo].[KAAS_ParseSysField] @FieldID OUT, @ActualName OUT RETURN END END IF @FieldID LIKE 'chr(%' BEGIN SET @FieldID = 'f.' + @FieldID END IF @FieldID LIKE 'f.%' BEGIN IF CHARINDEX(':', @FieldID) = 0 BEGIN SET @ActualName = @FieldID SET @FieldID = 'MAT:Code' EXEC [dbo].[KAAS_ParseSysField] @FieldID OUT, @ActualName OUT RETURN END END DECLARE @amppos INT DECLARE @OpenCount INT DECLARE @BRACKOPEN INT DECLARE @BRACKCLOSE INT DECLARE @Field1 NVARCHAR(MAX) DECLARE @Field2 NVARCHAR(MAX) DECLARE @ActualName1 NVARCHAR(MAX) DECLARE @ActualName2 NVARCHAR(MAX) SET @amppos = CHARINDEX('&', @FieldID) WHILE @amppos > 0 BEGIN SET @BRACKOPEN = CHARINDEX('(', @FieldID) SET @BRACKCLOSE = CHARINDEX(')', @FieldID) SET @OpenCount = 0 IF @BRACKOPEN = 0 BEGIN SET @BRACKOPEN = @amppos END IF @BRACKCLOSE = 0 BEGIN SET @BRACKCLOSE = @amppos END WHILE ( (@BRACKOPEN < @amppos) OR (@BRACKCLOSE < @amppos)) BEGIN IF @BRACKOPEN < @BRACKCLOSE BEGIN SET @OpenCount = @OpenCount + 1 SET @BRACKOPEN = CHARINDEX('(', @FieldID, @BRACKOPEN + 1) END ELSE BEGIN SET @OpenCount = @OpenCount - 1 SET @BRACKCLOSE = CHARINDEX(')', @FieldID, @BRACKCLOSE + 1) IF @OpenCount < 0 BEGIN --oh no you don't SET @BRACKOPEN = @amppos SET @BRACKCLOSE = @amppos SET @OpenCount = 0 END END IF @BRACKOPEN = 0 BEGIN SET @BRACKOPEN = @amppos END IF @BRACKCLOSE = 0 BEGIN SET @BRACKCLOSE = @amppos END END IF (@OpenCount = 0) BEGIN SET @Field1 = RTRIM(SUBSTRING(@FieldID, 1, @amppos - 1)) SET @Field2 = LTRIM(SUBSTRING(@FieldID, @amppos + 1, LEN(@FieldID) - @amppos)) IF @Field2 LIKE 'amp;%' BEGIN -- if it's an & from XML rather than a straight & SET @Field2 = LTRIM(SUBSTRING(@FieldID, @amppos + 5, LEN(@FieldID) - @amppos - 4)) END SET @ActualName1 = @ActualName SET @ActualName2 = @ActualName EXEC [dbo].[KAAS_ParseSysField] @Field1 OUT, @ActualName1 OUT EXEC [dbo].[KAAS_ParseSysField] @Field2 OUT, @ActualName2 OUT IF CHARINDEX(':', @ActualName1) > 0 BEGIN SET @FieldID = @Field1 END ELSE BEGIN SET @FieldID = @Field2 END SET @ActualName = @ActualName1 + ' & ' + @ActualName2 RETURN END SET @amppos = CHARINDEX('&', @FieldID, @amppos + 1) END DECLARE @COLONPOS INT DECLARE @BRACKETPOS INT DECLARE @BRACKETEND INT DECLARE @MIDDLEBIT NVARCHAR(MAX) DECLARE @NEWACTUALSTART NVARCHAR(MAX) DECLARE @NEWACTUALEND NVARCHAR(MAX) DECLARE @COMMAPOS INT SET @COLONPOS = CHARINDEX(':', @FieldID) SET @BRACKETPOS = CHARINDEX('(', @FieldID) IF @BRACKETPOS > 0 BEGIN IF RTRIM(ISNULL(@ActualName, N'')) = N'' BEGIN SET @ActualName = N'***NEW***' END SET @BRACKETEND = CHARINDEX(')', REVERSE(@FIELDID)) IF @BRACKETEND > 0 BEGIN SET @BRACKETEND = LEN(@FIELDID) - @BRACKETEND + 1 END SET @NEWACTUALSTART = SUBSTRING(@FieldID, 1, @BRACKETPOS) SET @NEWACTUALEND = SUBSTRING(@FieldID, @BRACKETEND, LEN(@FieldID) - @BRACKETEND + 1) SET @MIDDLEBIT = SUBSTRING(@FIELDID, @BRACKETPOS + 1, @BRACKETEND - @BRACKETPOS - 1) SET @COMMAPOS = CHARINDEX(',', @MIDDLEBIT) SET @BRACKETEND = CHARINDEX(')', @MIDDLEBIT) IF (@COMMAPOS = 0) BEGIN IF @NEWACTUALSTART <> 'udf(' BEGIN SET @ActualName = @NEWACTUALSTART + @ActualName + @NEWACTUALEND END SET @FieldID = @MIDDLEBIT SET @COLONPOS = CHARINDEX(':', @FieldID) IF (@COLONPOS > 0) BEGIN SET @FieldID = CASE WHEN SUBSTRING(@FIELDID, 1, 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN SUBSTRING(@FieldID, 2, LEN(@FieldID) - 1) ELSE @FieldID END SET @FieldID = CASE WHEN SUBSTRING(@FIELDID, LEN(@FieldID), 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN SUBSTRING(@FieldID, 1, LEN(@FieldID) - 1) ELSE @FieldID END END ELSE BEGIN SET @FieldID = CASE WHEN SUBSTRING(@FIELDID, 1, 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN '''' + SUBSTRING(@FieldID, 2, LEN(@FieldID) - 1) ELSE @FieldID END SET @FieldID = CASE WHEN SUBSTRING(@FIELDID, LEN(@FieldID), 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN SUBSTRING(@FieldID, 1, LEN(@FieldID) - 1) + '''' ELSE @FieldID END END END ELSE BEGIN DECLARE @FOUND BIT SET @FOUND = 0 WHILE @FOUND = 0 BEGIN IF [dbo].[KAAS_FN_GetBracketNestingLevel](@MIDDLEBIT, @COMMAPOS) < 0 BEGIN SET @FOUND = 1 --oops SET @COMMAPOS = 0 END ELSE IF [dbo].[KAAS_FN_GetBracketNestingLevel](@MIDDLEBIT, @COMMAPOS) = 0 BEGIN SET @FOUND = 1 END ELSE BEGIN SET @COMMAPOS = CHARINDEX(',', @MIDDLEBIT, @COMMAPOS + 1) END END IF @FOUND = 1 BEGIN IF @COMMAPOS > 0 BEGIN SET @NEWACTUALEND = SUBSTRING(@MIDDLEBIT, @COMMAPOS, LEN(@MIDDLEBIT) - @COMMAPOS + 1) + @NEWACTUALEND SET @MIDDLEBIT = RTRIM(SUBSTRING(@MIDDLEBIT, 1, @COMMAPOS - 1)) END END -- SET @NEWACTUALEND = REVERSE(SUBSTRING(@MIDDLEBIT, 1, @LASTCOMMA)) + @NEWACTUALEND -- SET @MIDDLEBIT = SUBSTRING(@MIDDLEBIT, @LASTCOMMA + 1, LEN(@MIDDLEBIT) - @LASTCOMMA) SET @ActualName = @NEWACTUALSTART + @ActualName + @NEWACTUALEND SET @FieldID = @MIDDLEBIT SET @COLONPOS = CHARINDEX(':', @FieldID) DECLARE @QuoteRemoved BIT IF (@COLONPOS > 0) BEGIN SET @QuoteRemoved = CASE WHEN SUBSTRING(@FIELDID, 1, 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN 1 ELSE 0 END SET @FieldID = CASE WHEN SUBSTRING(@FIELDID, 1, 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN SUBSTRING(@FieldID, 2, LEN(@FieldID) - 1) ELSE @FieldID END IF @QuoteRemoved = 1 BEGIN SET @FieldID = CASE WHEN SUBSTRING(@FIELDID, LEN(@FieldID), 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN SUBSTRING(@FieldID, 1, LEN(@FieldID) - 1) ELSE @FieldID END END END ELSE BEGIN SET @QuoteRemoved = CASE WHEN SUBSTRING(@FIELDID, 1, 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN 1 ELSE 0 END SET @FieldID = CASE WHEN SUBSTRING(@FIELDID, 1, 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN '''' + SUBSTRING(@FieldID, 2, LEN(@FieldID) - 1) ELSE @FieldID END IF @QuoteRemoved = 1 BEGIN SET @FieldID = CASE WHEN SUBSTRING(@FIELDID, LEN(@FieldID), 1) IN (NCHAR(8216), NCHAR(8217), NCHAR(8219), NCHAR(8220), N'''', N'"') THEN SUBSTRING(@FieldID, 1, LEN(@FieldID) - 1) + '''' ELSE @FieldID END END END END END SET @BRACKETPOS = CHARINDEX('(', @FieldID) IF @BRACKETPOS > 0 BEGIN DECLARE @NESTActualName NVARCHAR(MAX) SET @NESTActualName = N'' EXEC [dbo].[KAAS_ParseSysField] @FieldID OUT, @NESTActualName OUT SET @ActualName = REPLACE(@ActualName, '***new***', @NestActualName) RETURN END SET @COLONPOS = CHARINDEX(':', @FieldID) IF @COLONPOS > 0 BEGIN DECLARE @SUFActualName VARCHAR(MAX) SELECT @SUFActualName = RTRIM(ISNULL([SUF].[ActualName], '')) FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] + SUF.[FIELDNAME] = @FieldID SET @SUFActualName = ISNULL(@SUFActualName, '') IF @SUFActualName = '' BEGIN SET @ActualName = REPLACE(@ACTUALNAME, N'***new***', @FieldID) END ELSE BEGIN SET @ActualName = REPLACE(@ACTUALNAME, N'***new***', CONVERT(NVARCHAR(MAX), @SUFActualName)) END END ELSE IF LEN(@FieldID) > 0 BEGIN BEGIN TRY IF ISNUMERIC(@FieldID) = 1 BEGIN SET @ActualName = '''' + CONVERT(VARCHAR(MAX), CONVERT(FLOAT, @FIELDID)) + '''' END ELSE BEGIN SET @ActualName = @FIELDID END END TRY BEGIN CATCH SET @ActualName = @FielDID END CATCH SET @FieldID = N'MAT:Code' END ELSE BEGIN SET @ActualName = REPLACE(@ActualName, N'***new***', @FieldID) SET @FieldID = N'MAT:X' END RETURN END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_PauseDayBookEntry' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_PauseDayBookEntry] END GO CREATE PROCEDURE [dbo].[KAAS_PauseDayBookEntry] (@RecordID INT) AS /******************************************************************************************************* * Sets a Daybook Entry's Stopwatch status to 1 * * * * Stored Procedure Name : [dbo].[KAAS_PauseDayBookEntry] * * Copied from : [dbo].[ky_NETSPPauseDayBookEntry] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN UPDATE [TDB] SET [TDB].[StopwatchStatus] = 1 FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[RecordID] = @RecordID END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_RecalculateDraftBillTotals' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RecalculateDraftBillTotals] END GO CREATE PROCEDURE [dbo].[KAAS_RecalculateDraftBillTotals] ( @DraftNo INT) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_RecalculateDraftBillTotals] * * Copied from : [dbo].[ky_NETSPRecalculateDraftBillTotals] * * * * Modification History : * * 2019-11-12 Dheepin Vijith K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON; DECLARE @VATBreakdown TABLE ( [ID] INT IDENTITY(1, 1), [VATCODE] VARCHAR(1), [NETRATE] DECIMAL(17, 2), [VATRATE] DECIMAL(17, 2), [VATTOTAL] DECIMAL(17, 2)) UPDATE [BID] SET [BID].[BILLNO] = ISNULL([BIH].[BILLNO], 0), [BID].[NET] = ISNULL([BID].[NET], 0), [BID].[VATRATE] = ISNULL([BID].[VATRATE], 0), [BID].[VATVALUE] = ISNULL([BID].[VATVALUE], 0) FROM [dbo].[BillHeader] AS [BIH] INNER JOIN [dbo].[BillDetails] AS [BID] ON [BID].[DRAFTNO] = [BIH].[DRAFTNO] WHERE [BIH].[DRAFTNO] = @DRAFTNO EXEC [dbo].[KAAS_ReorderDraftBillLines] @DRAFTNO INSERT INTO @VATBreakdown ( [VATCODE], [NETRATE], [VATRATE], [VATTOTAL]) SELECT [BID].[VATCODE], ISNULL(SUM(ISNULL([BID].[NET], 0)), 0) AS [NETRATE], [BID].[VATRATE] AS [VATRATE], ISNULL(SUM(ISNULL([BID].[VATVALUE], 0)), 0) AS [VATTOTAL] FROM [dbo].[BillDetails] AS [BID] WHERE [BID].[DRAFTNO] = @DRAFTNO AND [BID].[TYPE] = 'F' AND ISNULL([BID].[VATRATE], 0) <> 0 GROUP BY [BID].[VATCODE], [BID].[VATRATE] INSERT INTO @VATBreakdown ( [VATCODE], [NETRATE], [VATRATE], [VATTOTAL]) SELECT [BID].[VATCODE], ISNULL(SUM(ISNULL([BID].[NET], 0)), 0) AS [NETRATE], [BID].[VATRATE] AS [VATRATE], ISNULL(SUM(ISNULL([BID].[VATVALUE], 0)), 0) AS [VATTOTAL] FROM [dbo].[BillDetails] AS [BID] WHERE [BID].[DRAFTNO] = @DRAFTNO AND RTRIM(ISNULL([BID].[TYPE], '')) <> 'F' AND ISNULL([BID].[VATRATE], 0) <> 0 GROUP BY [BID].[VATCODE], [BID].[VATRATE] INSERT INTO @VATBreakdown ( [VATCODE], [NETRATE], [VATRATE], [VATTOTAL]) SELECT [BID].[VATCODE], ISNULL(SUM(ISNULL([BID].[NET], 0)), 0) AS [NETRATE], [BID].[VATRATE] AS [VATRATE], ISNULL(SUM(ISNULL([BID].[VATVALUE], 0)), 0) AS [VATTOTAL] FROM [dbo].[BillDetails] AS [BID] WHERE [BID].[DRAFTNO] = @DRAFTNO AND ISNULL([BID].[VATRATE], 0) = 0 GROUP BY [BID].[VATCODE], [BID].[VATRATE] UPDATE [BIH] SET [BIH].[TOTAL] = [BT].[BDTotal], [BIH].[FEES] = [BT].[BDFees], [BIH].[OUTLAY] = [BT].[BDOutlay], [BIH].[TOTALVAT] = [BT].[BDVAT], [BIH].[FEMISCTOTAL] = [BT].[BDFMTotal], [BIH].[FEEVATCODE] = [VV1].[VATCODE], [BIH].[NET0] = 0, [BIH].[RATE1] = [VV1].[VATRATE], [BIH].[NETRATE1] = [VV1].[NETRATE], [BIH].[VATRATE1] = [VV1].[VATTOTAL], [BIH].[RATE2] = [VV2].[VATRATE], [BIH].[NETRATE2] = [VV2].[NETRATE], [BIH].[VATRATE2] = [VV2].[VATTOTAL], [BIH].[RATE3] = [VV3].[VATRATE], [BIH].[NETRATE3] = [VV3].[NETRATE], [BIH].[VATRATE3] = [VV3].[VATTOTAL] FROM [dbo].[BillHeader] AS [BIH] CROSS APPLY (SELECT ISNULL(SUM([BID].[NET] + [BID].[VATVALUE]), 0) AS [BDTotal], ISNULL(SUM(CASE WHEN [BID].[TYPE] = 'F' THEN [BID].[NET] ELSE 0 END), 0) AS [BDFees], ISNULL(SUM(CASE WHEN [BID].[TYPE] = 'O' THEN [BID].[NET] ELSE 0 END), 0) AS [BDOutlay], ISNULL(SUM(CASE WHEN [BID].[TYPE] IN ('F', 'M') THEN [BID].[NET] ELSE 0 END), 0) AS [BDFMTotal], ISNULL(SUM([BID].[VATVALUE]), 0) AS [BDVAT] FROM [dbo].[BillDetails] AS [BID] WHERE [BID].[DRAFTNO] = [BIH].[DRAFTNO]) AS [BT] CROSS APPLY (SELECT ISNULL(MAX([VBD].[VATCODE]), '') AS [VATCODE], ISNULL(MAX([VBD].[VATRATE]), 0) AS [VATRATE], ISNULL(MAX([VBD].[NETRATE]), 0) AS [NETRATE], ISNULL(MAX([VBD].[VATTOTAL]), 0) AS [VATTOTAL] FROM @VATBreakdown AS [VBD] WHERE [VBD].[ID] = 1) AS [VV1] CROSS APPLY (SELECT ISNULL(MAX([VBD].[VATCODE]), '') AS [VATCODE], ISNULL(MAX([VBD].[VATRATE]), 0) AS [VATRATE], ISNULL(MAX([VBD].[NETRATE]), 0) AS [NETRATE], ISNULL(MAX([VBD].[VATTOTAL]), 0) AS [VATTOTAL] FROM @VATBreakdown AS [VBD] WHERE [VBD].[ID] = 2) AS [VV2] CROSS APPLY (SELECT ISNULL(MAX([VBD].[VATCODE]), '') AS [VATCODE], ISNULL(MAX([VBD].[VATRATE]), 0) AS [VATRATE], ISNULL(MAX([VBD].[NETRATE]), 0) AS [NETRATE], ISNULL(MAX([VBD].[VATTOTAL]), 0) AS [VATTOTAL] FROM @VATBreakdown AS [VBD] WHERE [VBD].[ID] = 3) AS [VV3] WHERE [BIH].[DRAFTNO] = @DRAFTNO END GO IF OBJECT_ID(N'KAAS_ReclassifyDocManagerDoc',N'P') IS NOT NULL DROP PROCEDURE [DBO].[KAAS_ReclassifyDocManagerDoc] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[KAAS_ReclassifyDocManagerDoc] (@TrackReference VARCHAR(10), @ClassCode VARCHAR(10)) AS /***************************************************************************** ky_NETSPReclassifyDocManagerDoc Reclassifies a Diary Attachment entry FROM the Document Manager screen in the Framework *****************************************************************************/ BEGIN UPDATE DAT SET DAT.[DOCCLASS] = @ClassCode FROM [dbo].[DiaryAttachments] DAT WHERE DAT.[TrackReference] = CONVERT(INT, @TrackReference) END GO IF EXISTS (SELECT * FROM sys.objects WHERE [object_id] = OBJECT_ID(N'[dbo].[KAAS_ReleaseChequeRequest]') AND [type] in (N'P', N'PC')) DROP PROCEDURE [dbo].[KAAS_ReleaseChequeRequest] GO CREATE PROCEDURE [dbo].[KAAS_ReleaseChequeRequest] ( @IDV VARCHAR(10), @CURRENTUSER VARCHAR(20), @OVERRIDETARGET VARCHAR(10) = '') AS /******************************************************************************************************* * Retrieves Detailed information for the entries displayed on the Dashboard (My Overview) page. * * Function : AdminTimeDayBookforMonth * * * * Stored Procedure Name : [dbo].[KAAS_ReleaseChequeRequest] * * Copied from : [dbo].[ky_NETSPReleaseChequeRequest_v2] * * * * Modification History : * * 2017-07-17 John Ginnane Created v2 for logging. KEYD-4663 * * 2018-10-26 John Ginnane Updated PF cheque process check * * 2019-10-22 Dheepin Vijith Created * *******************************************************************************************************/ BEGIN DECLARE @ID INT DECLARE @COMMAND VARCHAR(MAX) DECLARE @HANDLERTYPE VARCHAR(10) DECLARE @RELEASENOW BIT BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH IF ISNULL(@ID, 0) = 0 RETURN SELECT @HANDLERTYPE = HAN.[Type] FROM [dbo].[Handlers] AS HAN WHERE HAN.[CODE] = @CURRENTUSER -- Check if the action is created and they have the bespoke setting -- which assigns cheques to immediate superiors for approval IF ISNULL(LTRIM(RTRIM(LOWER((SELECT TOP 1 [KeyValue] FROM [dbo].[Settings] WHERE LOWER([KeyName]) = 'PFChequeProcess')))), '') IN ('true', '1', 'y') AND ISNULL(@HANDLERTYPE, '') IN ('L', 'F', 'S', '') -- If they are not a partner then release to immediate superior BEGIN DECLARE @ACTIONID INT DECLARE @TARGETUSER VARCHAR(20) DECLARE @TARGETTEAM VARCHAR(20) IF ISNULL(@OVERRIDETARGET, '') <> '' BEGIN SELECT @TARGETUSER = @OVERRIDETARGET END IF [dbo].[ISSAM4]() = 1 AND ISNULL(@TARGETUSER, '') = '' BEGIN SELECT @TARGETUSER = CASE WHEN ISNULL(@HANDLERTYPE, '') IN ('S', '') THEN MAT.[FECode] WHEN ISNULL(@HANDLERTYPE, '') IN ('L', 'F') THEN MAT.[Partner] ELSE MAT.[FECode] END FROM [dbo].[ChequeRequisitions] AS CR LEFT OUTER JOIN [dbo].[matters] AS MAT ON MAT.[Code] = CR.[Matter] WHERE CR.[RequestNo] = @ID END IF [dbo].[ISSAM4]() <> 1 AND ISNULL(@TARGETUSER, '') = '' BEGIN SELECT @TARGETUSER = CASE WHEN ISNULL(@HANDLERTYPE, '') IN ('S', '') THEN MAT.[FECode] WHEN ISNULL(@HANDLERTYPE, '') IN ('L', 'F') THEN MAT.[Partner] ELSE MAT.[FECode] END FROM [dbo].[ChequeRequisitionDetail] AS CRD LEFT OUTER JOIN [dbo].[matters] AS MAT ON MAT.[Code] = CRD.[MATTER] WHERE CRD.[REQNO] = @ID END SELECT @TARGETTEAM = HAN.[TEAM] FROM [dbo].[Handlers] AS HAN WHERE HAN.[CODE] = @TARGETUSER SELECT @ACTIONID = DIA.[ACTIONID] FROM [dbo].[diary] AS DIA WHERE DIA.[CHEQUEREQNO] = @ID IF ISNULL(@ACTIONID, 0) <> 0 AND ISNULL(@TARGETUSER, '') <> '' AND ISNULL(@CURRENTUSER, '') <> '' BEGIN DECLARE @XML NVARCHAR(1000) SELECT @XML = N'' SELECT @XML EXEC [dbo].[ky_NETSPXMLDiaryDelegation] @XML END END ELSE BEGIN IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitions' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'UPDATE [dbo].[ChequeRequisitions] SET [ChequeStatus] = ''Released'' WHERE [RecordId] = ' + CONVERT(VARCHAR(10), @ID) + ' AND [ChequeStatus]=''Request''' EXEC (@COMMAND) END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitionHeader' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'UPDATE [dbo].[ChequeRequisitionHeader] SET [STATUS] = ''1'' WHERE [REQNO] = ' + CONVERT(VARCHAR(10), @ID) + ' AND [STATUS] = ''0''' EXEC (@COMMAND) END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ReleaseDraftBill' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ReleaseDraftBill] END GO create PROCEDURE [dbo].[KAAS_ReleaseDraftBill] (@IDV VARCHAR(10)) AS /************************************************************* * * ky_NETSPReleaseDraftBill *2019-11-13 Rajesh Copied from [ky_NETSPReleaseDraftBill] *************************************************************/ BEGIN DECLARE @ID INT DECLARE @COMMAND VARCHAR(MAX) BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'BillHead' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'UPDATE [dbo].[BillHead] SET [BillStatus] = ''Released'' WHERE [BillingId] = ' + CONVERT(VARCHAR(10), @ID) + ' AND [BillStatus]=''Draft''' EXEC (@COMMAND) END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'BillHeader' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'UPDATE [dbo].[BillHeader] SET [Released] = ''Y'' WHERE [DRAFTNO] = ' + CONVERT(VARCHAR(10), @ID) + ' AND [Released] = ''N''' EXEC (@COMMAND) END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RemoveDocsFromDocFolder' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RemoveDocsFromDocFolder] END GO CREATE PROCEDURE [dbo].[KAAS_RemoveDocsFromDocFolder] (@removexml VARCHAR(MAX)) AS /********************************************************************************************************* * * [KAAS_RemoveDocsFromDocFolder] * * Flags the documents passed in through @removexml as no longer being "in" the document * folder(s) in the XML document * * @removexml - an xml string outlining the nature of the changes * * Modification History: * 2016-04-29 Pino Carafa Created * 2017-07-21 Pino Carafa Added functionality to clear out FileSharingDocuments * 2020-04-29 Arun Copied from ky_NETSPRemoveDocsFromDocFolder *********************************************************************************************************/ BEGIN SET NOCOuNT ON DECLARE @iSL INT DECLARE @MAX INT DECLARE @data TABLE ([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [folderid] INT NOT NULL, [trackreference] INT NOT NULL) BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @removexml END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH INSERT INTO @data ([folderid], [trackreference]) SELECT SRC.[folderid], SRC.[trackreference] FROM OPENXML(@iSL, N'removedocsfromfolders/remove') WITH ([folderid] INT '@fromfolder', [trackreference] INT '@trackreference') SRC EXEC sp_xml_removedocument @iSL DELETE [FSD] FROM @data [DT] INNER JOIN [dbo].[DocFolderDocuments] [DFD] INNER JOIN [dbo].[FileSharingMapping] [FSM] INNER JOIN [dbo].[FileSharingDocuments] [FSD] ON [FSD].[FileSharingMappingID] = [FSM].[id] ON [FSM].[FileSharingDocFoldersID] = [DFD].[DocFolderID] ON [DFD].[DocFolderID] = [DT].[folderid] AND [DFD].[TrackReference] = [DT].[trackreference] WHERE [FSD].[TrackReference] = [DT].[trackreference] DELETE [DFD] FROM @data [DT] INNER JOIN [dbo].[DocFolderDocuments] [DFD] ON [DFD].[DocFolderID] = [DT].[folderid] AND [DFD].[TrackReference] = [DT].[trackreference] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KAAS_RemoveMatterLedgerComment]') AND type in (N'P', N'PC')) BEGIN DROP PROCEDURE [dbo].[KAAS_RemoveMatterLedgerComment] END GO CREATE PROCEDURE [dbo].[KAAS_RemoveMatterLedgerComment] ( @LREF INT) AS /******************************************************************************************************* * It is used to remove a matter ledger comment. * * * * Stored Procedure Name : [dbo].[KAAS_RemoveMatterLedgerComment] * * Copied from : [dbo].[ky_NETRemoveMatterLedgerComment] * * * * Modification History : * * 2019-06-27 Vinodhan K Created * * 2019-06-28 Vinodhan K Searching, Paging and Sorting functionality added * * 2021-04-23 Aakif Included condtion to avoid deleting undertaking record (12064) * *******************************************************************************************************/ BEGIN DECLARE @SQL NVARCHAR(MAX) IF [dbo].[ISSAM4]() = 0 BEGIN SET @SQL = ' DELETE MTL FROM [dbo].[MatterLedger] AS MTL WHERE MTL.[LREF] = @LREF AND [MTL].[BATCHNO] = 0 AND [MTL].[PREF] = 0 AND [MTL].[NARR] NOT LIKE ''Undertaking%''' END ELSE BEGIN SET @SQL = ' DELETE TRN FROM [dbo].[Transactions] AS TRN WHERE TRN.[XnID] = @LREF AND TRN.[XnType] = ''C'' AND TRN.[TypeCode] = ''Comment''' END EXEC sp_executesql @SQL, N'@LREF INT', @LREF = @LREF END GO IF OBJECT_ID(N'KAAS_CR_RemoveReportGroup',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_CR_RemoveReportGroup] GO CREATE PROCEDURE [dbo].[KAAS_CR_RemoveReportGroup] @ReportId INT /****************************************************************************************************************** * Used to remove report group details. * * * * Stored Procedure Name: [dbo].[KAAS_CR_RemoveReportGroup] * * * * Modification History: * * 2024-03-18 Nithyanandham M Created * ******************************************************************************************************************/ As BEGIN DELETE FROM KaaS_CRReportGroup WHERE Reportid = @ReportId END GO IF NOT((SELECT SERVERPROPERTY('Edition') AS [Edition]) = 'SQL Azure') BEGIN IF OBJECT_ID(N'KAAS_RenameDocument',N'P')IS NOT NULL BEGIN DROP PROCEDURE KAAS_RenameDocument END DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N' CREATE PROCEDURE KAAS_RenameDocument ( @FilePath NVARCHAR(255), @FileName NVARCHAR(255) ) AS /*********************************************************************************************** * * [dbo].[KAAS_RenameDocument] * Rename the document * Modification History * 2020-09-08 Prabhu.V Added File Exist check before renaming the document ***********************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @strUNCFileName VARCHAR(500) DECLARE @command NVARCHAR(255) SET @strUNCFileName = @FilePath --This part here, is used to check and convert with unc alias valid path. IF (SUBSTRING(@strUNCFileName, 2, 1) = '':'') BEGIN SELECT @strUNCFileName = ISNULL(MAX(UNC.[UNC]) + SUBSTRING(@strUNCFileName, 3, LEN(@strUNCFileName) - 2), @strUNCFileName) FROM [dbo].[UNCAlias] UNC WHERE SUBSTRING(@strUNCFileName, 1, 1) = UNC.[Drive] SET @strUNCFileName = LEFT(@strUNCFileName, 2) + REPLACE(RIGHT(@strUNCFileName, LEN(@strUNCFileName) - 2), ''\\'', ''\'') END -- Check File Exists DECLARE @result INT EXEC xp_fileexist @strUNCFileName, @result OUTPUT IF cast(@result as bit) = 1 BEGIN --here, we used to rename the document. SET @command = ''RENAME "'' +@strUNCFileName + ''","''+@FileName+''"'' EXEC xp_cmdshell @command exec xp_cmdshell ''whoami'' END ELSE SELECT cast(@result as bit) SET NOCOUNT OFF END' EXECUTE SP_EXECUTESQL @NCOMMAND END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ReorderCaseContact' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ReorderCaseContact] END GO CREATE PROCEDURE [dbo].[KAAS_ReorderCaseContact] (@CaseCode VARCHAR(20), @CONTYPE VARCHAR(12), @CONNUM SMALLINT, @NEWCONNUM SMALLINT) AS /***************************************************************************************** * * Stored Procedure name : KAAS_ReorderCaseContact * Copied From : [dbo].[ky_NETSPReorderCaseContact] * * Moves the specified contact so that it will become the one with CONNUM @NEWCONNUM, * by moving everything that currently has that CONNUM or higher one up, * and then changing the CONNUM of the selected item to the new value. Finally, it then * resequences the CONNUM value to ensure they CONNUMs remain contiguous. * * Modification History * Pino Carafa 2016-01-11 Created * Vinodhan 2019-07-29 Created KAAS_ReorderCaseContact * *****************************************************************************************/ BEGIN DECLARE @NEW TABLE ([ID] INT IDENTITY(1, 1), [CONNUM] SMALLINT) -- move the one that needs to be moved out of the way. UPDATE CC SET CC.[CONNUM] = 0 FROM [dbo].[CaseContacts] CC WHERE CC.[CASECODE] = @CaseCode AND CC.[CONTYPE] = @CONTYPE AND CC.[CONNUM] = @CONNUM -- move all the ones that will end up after the one that needs to be moved one space up, thus -- ensuring that the @NEWCONNUM value is free UPDATE CC SET CC.[CONNUM] = CC.[CONNUM] + 1 FROM [dbo].[CaseContacts] CC WHERE CC.[CASECODE] = @CaseCode AND CC.[CONTYPE] = @CONTYPE AND CC.[CONNUM] >= @NEWCONNUM -- go back to the one that was moved out of the way, and give it @NEWCONNUM UPDATE CC SET CC.[CONNUM] = @NEWCONNUM FROM [dbo].[CaseContacts] CC WHERE CC.[CASECODE] = @CaseCode AND CC.[CONTYPE] = @CONTYPE AND CC.[CONNUM] = 0 -- List them all in sequence, which may now contain gaps INSERT INTO @NEW ([CONNUM]) SELECT CC.[CONNUM] FROM [dbo].[CaseContacts] CC WHERE CC.[CASECODE] = @CaseCode AND CC.[CONTYPE] = @CONTYPE ORDER BY CC.[CONNUM] -- But by replacing [CONNUM] with the Identity column value -- we now ensure that we're back to a contiguous order. UPDATE CC SET CC.[CONNUM] = NW.[ID] FROM @NEW NW INNER JOIN [dbo].[CaseContacts] CC ON CC.[CASECODE] = @CaseCode AND CC.[CONTYPE] = @CONTYPE AND CC.[CONNUM] = NW.[CONNUM] SELECT NW.[ID] AS [ActualConNum] FROM @NEW NW WHERE NW.[CONNUM] = @NEWCONNUM END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_ReorderDraftBillLines' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ReorderDraftBillLines] END GO CREATE PROCEDURE [dbo].[KAAS_ReorderDraftBillLines] (@IDV VARCHAR(10)) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_ReorderDraftBillLines] * * Copied from : [dbo].[ky_NETSPReorderDraftBillLines] * * * * Modification History : * * 2019-11-12 Dheepin Vijith K Created * *******************************************************************************************************/ BEGIN DECLARE @ID INT DECLARE @COMMAND VARCHAR(MAX) BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH IF (@ID <> 0) BEGIN IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'BillDetail' AND SO.[type] = 'U') BEGIN SET @COMMAND = ' DECLARE @NEWSEQ TABLE ([ID] INT IDENTITY(1, 1), [OLDID] INT) INSERT INTO @NEWSEQ ([OLDID]) SELECT BD.[RecordID] FROM [dbo].[BillDetail] BD WHERE BD.[BillID] = ' + CONVERT(VARCHAR(10), @ID) + ' ORDER BY BD.[Seq], BD.[RecordId] UPDATE BD SET BD.[Seq] = NS.[ID] FROM @NEWSEQ NS INNER JOIN [dbo].[BillDetail] BD ON BD.[RecordId] = NS.[OLDID]' END ELSE BEGIN SET @COMMAND = ' DECLARE @NEWSEQ TABLE ([ID] INT IDENTITY(1, 1), [OLDID] INT) INSERT INTO @NEWSEQ ([OLDID]) SELECT BD.[KEYID] FROM [dbo].[BillDetails] BD WHERE BD.[DRAFTNO] = ' + CONVERT(VARCHAR(10), @ID) + ' ORDER BY BD.[LINENO], BD.[KEYID] UPDATE BD SET BD.[LINENO] = NS.[ID] FROM @NEWSEQ NS INNER JOIN [dbo].[BillDetails] BD ON BD.[KEYID] = NS.[OLDID]' END END EXEC (@COMMAND) END GO DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 1 BEGIN EXEC (' IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = ''KAAS_ReorderDraftBillLinesSAM4'' AND SO.[type] = ''P'') BEGIN DROP PROCEDURE [dbo].[KAAS_ReorderDraftBillLinesSAM4] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_ReorderDraftBillLinesSAM4] ( @IDV VARCHAR(10)) AS BEGIN DECLARE @ID INT BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH IF (@ID <> 0) BEGIN DECLARE @NEWSEQ TABLE ( [ID] INT IDENTITY(1, 1), [OLDID] INT) INSERT INTO @NEWSEQ ( [OLDID]) SELECT BD.[RecordID] FROM [dbo].[BillDetail] AS BD WHERE BD.[BillID] = @ID ORDER BY BD.[Seq] ASC, BD.[RecordId] ASC UPDATE BD SET BD.[Seq] = NS.[ID] FROM [dbo].[BillDetail] AS BD INNER JOIN @NEWSEQ AS NS ON BD.[RecordId] = NS.[OLDID] END END') END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ReplaceFeeEarnerBreakdown' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ReplaceFeeEarnerBreakdown] END GO create PROCEDURE [dbo].[KAAS_ReplaceFeeEarnerBreakdown] (@NewFEBD VARCHAR(MAX)) AS /************************************************************************** * * KAAS_ReplaceFeeEarnerBreakdown * * Replaces the Fee Earner Breakdown for a Draft Bill with an edited version * * NEW Fee Earner Breakdown XML example: * * * * * only the Fee Earner codes, high precision percentages and VAT Codes are * required. The rest is calculated by calling ky_NETSPCorrectBillDetailsANDFEBreakdown *2019-11-29 Rajesh copied from [ky_NETSPReplaceFeeEarnerBreakdown] **************************************************************************/ BEGIN DECLARE @idoc INT DECLARE @draftno INT DECLARE @billno INT DECLARE @matter VARCHAR(20) EXEC sp_xml_preparedocument @idoc OUTPUT, @NEWFEBD SELECT @DRAFTNO = BILLH.[DRAFTNO], @BILLNO = BILLH.[BILLNO], @MATTER = BILLH.[MATTER] FROM OPENXML(@idoc, 'FEBD', 2) WITH([DRAFTNO] INT '@draftno', [BILLNO] INT '@billno', [MATTER] VARCHAR(20) '@matter') BILLH DELETE [dbo].[BillFeeBreakDown] WHERE [DRAFTNO] = @DRAFTNO INSERT INTO [dbo].[BillFeeBreakDown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [CALCULATION], [VATCODE]) SELECT @MATTER AS [MATTER], @DRAFTNO AS [DRAFTNO], @BILLNO AS [BILLNO], NFB.[FECODE], NFB.[PERCENT] AS [CALCULATION], NFB.[VATCODE] AS [VATCODE] FROM OPENXML(@idoc, 'FEBD/FE', 2) WITH([FECODE] VARCHAR(10) '@code', [PERCENT] DECIMAL(9, 5) '@pct', [VATCODE] VARCHAR(1) '@vatcode') NFB EXEC sp_xml_removedocument @idoc EXEC [dbo].[KAAS_CorrectBillDetailsANDFEBreakdown] @DRAFTNO END GO DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 1 BEGIN EXEC (' IF OBJECT_ID(''KAAS_ReplaceFeeEarnerBreakdownSAM4'', ''P'') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_ReplaceFeeEarnerBreakdownSAM4] END') EXEC (' CREATE PROCEDURE [dbo].[KAAS_ReplaceFeeEarnerBreakdownSAM4] (@NewFEBD VARCHAR(MAX)) AS /************************************************************************** * * Copied From ky_NETSPReplaceFeeEarnerBreakdown * * Replaces the Fee Earner Breakdown for a Draft Bill with an edited version * * NEW Fee Earner Breakdown XML example: * * * * * only the Fee Earner codes, high precision percentages and VAT Codes are * required. The rest is calculated by calling KAAS_ReplaceFeeEarnerBreakdownSAM4 * * ????-??-?? ???? Created * 2018-08-03 John Ginnane Added to SVN and added SAM4 compatibility * 2020-06-25 Prabhu.V Copied From ky_NETSPReplaceFeeEarnerBreakdown * **************************************************************************/ BEGIN DECLARE @idoc INT DECLARE @draftno INT EXEC sp_xml_preparedocument @idoc OUTPUT, @NEWFEBD SELECT @DRAFTNO = BILLH.[DRAFTNO] FROM OPENXML(@idoc, ''FEBD'', 2) WITH([DRAFTNO] INT ''@draftno'') BILLH DELETE [dbo].[BillBreakdown] WHERE [BillingNo] = @DRAFTNO INSERT INTO [dbo].[BillBreakdown] ([BillingNo], [FECode], [Percentage], [LineType], [VatCode], [VatRate], [NominalCode], [Calculation]) SELECT @DRAFTNO AS [DRAFTNO], NFB.[FECODE], NFB.[PERCENT], ''F'', RTRIM(ISNULL(VC.[CODE], '''')), ISNULL(VC.[RATE], 0), RTRIM(ISNULL(FEC.[NominalCode], '''')), CONVERT(DECIMAL(19, 2), NFB.[PERCENT]) FROM OPENXML(@idoc, ''FEBD/FE'', 2) WITH([FECODE] VARCHAR(10) ''@code'', [PERCENT] DECIMAL(9, 5) ''@pct'', [VATCODE] VARCHAR(1) ''@vatcode'') NFB LEFT OUTER JOIN [dbo].[VATCodes] AS VC ON VC.[CODE] = NFB.[VATCODE] LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS FEC ON FEC.[Code] = NFB.[FECODE] EXEC sp_xml_removedocument @idoc EXEC [dbo].[ky_NETSPCorrectBillDetailsANDFEBreakdownSAM4] @DRAFTNO END') END GO IF OBJECT_ID(N'[KAAS_Reports_load_tree]',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_Reports_load_tree] GO CREATE PROCEDURE [dbo].[KAAS_Reports_load_tree] @ReportType CHAR(10), @UserCode VARCHAR(5), @Supervisor VARCHAR(5) As /******************************************************************************************** * Author: Magesh Kumar * Create date: 3-MAR-2014 * Description: This SP used to Fetch datas to create Report Tree View * Pino 2014-11-14 - Renamed as "load_tree" is too generic. * Pino 2015-01-16 - Change NVARCHAR to VARCHAR * Arun 2019-09-30 - Copied from ky_NETReports_load_tree * Nithyanandham M 2023-02-21 Modified-Table name has been updated to newly created one ********************************************************************************************/ BEGIN IF @USERCODE='ADM' OR @SUPERVISOR='YES' BEGIN WITH TEMP(PID,NAME,IDS,GROUPID,NOTES,REPORTTYPE, [FILENAME]) AS ( SELECT ROW_NUMBER() OVER(ORDER BY T.IDS) AS PID,T.NAME,T.IDS,T.GROUPID,T.NOTES,T.REPORTTYPE, T.[FILENAME] FROM (SELECT COUNT(CG.groupid) AS COUNTS, CG.groupname AS NAME , 0 AS IDS, CG.groupid AS GROUPID, '' AS NOTES, '' AS REPORTTYPE, '' AS [FILENAME] FROM KaaS_CRGroup CG INNER JOIN KaaS_CRReportGroup CRG ON CG.groupid =CRG.groupid INNER JOIN KaaS_CRReport CR ON CRG.Reportid =CR.Reportid WHERE CR.report_type =@ReportType GROUP BY CG.groupname ,CG.groupid UNION ALL SELECT COUNT(CR.Reportid) AS COUNTS, CR.name AS NAME , CR.Reportid AS IDS, CRG.groupid AS GROUPID, CR.notes, CR.report_type, CR.[filename] FROM KaaS_CRReport CR INNER JOIN KaaS_CRReportGroup CRG ON CR.Reportid =CRG.Reportid LEFT JOIN KAAS_CRReportUserPermission CUP ON CR.Reportid =CUP.Reportid WHERE CR.report_type =@ReportType AND ( CUP.HandlerCode IS Null OR ( CUP.HandlerCode = @UserCode AND CUP.HasAccess = 1 ) ) GROUP BY CR.name ,CR.Reportid,CRG.groupid,CR.notes,CR.report_type, CR.[filename] ) AS T ) SELECT * INTO #temp1 FROM TEMP; SELECT ISNULL(T1.PID,0) AS Id, CASE WHEN T1.IDS <>0 THEN (SELECT TOP 1 PID FROM #temp1 WHERE GROUPID =T1.GROUPID AND IDS=0 ) ELSE 0 END 'ParentId', ISNULL(T1.IDS,0) AS ReportId, ISNULL(RTRIM(T1.NAME),'') AS ReportName, ISNULL(T1.NOTES,T1.NAME) AS Notes, ISNULL(T1.[FILENAME] ,'') AS [FileName] --ISNULL(T1.REPORTTYPE,'') AS REPORTTYPE FROM #temp1 T1 --WHERE T1.REPORTTYPE =@report_type OR T1.IDS =0 ORDER BY PID ASC,ReportName IF (OBJECT_ID('tempdb..#temp1') IS NOT NULL) BEGIN DROP TABLE #temp1 END END ELSE BEGIN WITH TEMP(PID,NAME,IDS,GROUPID,NOTES,REPORTTYPE, [FILENAME]) AS ( SELECT ROW_NUMBER() OVER(ORDER BY T.IDS) AS PID,T.NAME,T.IDS,T.GROUPID,T.NOTES,T.REPORTTYPE, T.[FILENAME] FROM (SELECT COUNT(CG.groupid) AS COUNTS, CG.groupname AS NAME , 0 AS IDS, CG.groupid AS GROUPID, '' AS NOTES, '' AS REPORTTYPE, '' AS [FILENAME] FROM KaaS_CRGroup CG INNER JOIN KaaS_CRReportGroup CRG ON CG.groupid =CRG.groupid INNER JOIN KaaS_CRReport CR ON CRG.Reportid =CR.Reportid WHERE CR.report_type =@ReportType GROUP BY CG.groupname ,CG.groupid UNION ALL SELECT COUNT(CR.Reportid) AS COUNTS, CR.[name] AS NAME , CR.[Reportid] AS IDS, CRG.[groupid] AS GROUPID, CR.[notes], CR.[report_type], CR.[filename] FROM KaaS_CRReport CR INNER JOIN KaaS_CRReportGroup CRG ON CR.Reportid =CRG.Reportid LEFT JOIN KAAS_CRReportUserPermission CUP ON CR.Reportid =CUP.Reportid WHERE CR.report_type =@ReportType AND ( CUP.HandlerCode IS Null OR ( CUP.HandlerCode = @UserCode AND CUP.HasAccess = 1 ) ) GROUP BY CR.name ,CR.Reportid,CRG.groupid,CR.notes,CR.report_type, cr.[filename]) AS T ) SELECT * INTO #temp FROM TEMP; WITH MODGROUP (REPORTID) AS ( SELECT KaaS_CRReport.ReportID FROM KaaS_CRReport LEFT JOIN (SELECT ModuleGroupPermissions.ReportID ,ModuleGroupPermissions.GroupID FROM ModuleGroupPermissions INNER JOIN ModuleGroup ON ModuleGroup.GroupID =ModuleGroupPermissions.GroupID AND ModuleGroup.GroupID IN (SELECT GroupID from ModuleGroup where GroupName='All Handler' UNION SELECT GroupID FROM ModuleGroupUsers WHERE UserCode = @UserCode) ) T ON T.ReportID =KaaS_CRReport.Reportid WHERE T.GroupID IS NULL AND T.ReportID IS NULL ) SELECT * INTO #TEMP2 FROM MODGROUP; SELECT ISNULL(T1.PID,0) AS Id, CASE WHEN T1.IDS <>0 THEN (SELECT TOP 1 PID FROM #temp WHERE GROUPID =T1.GROUPID AND IDS=0 ) ELSE 0 END 'ParentId', ISNULL(T1.IDS,0) AS ReportId, ISNULL(RTRIM(T1.NAME),'') AS ReportName, ISNULL(T1.NOTES,T1.NAME) AS Notes, ISNULL(T1.[FILENAME],'') AS [FileName] FROM #temp T1 WHERE T1.IDS IN (SELECT REPORTID FROM #TEMP2 ) OR T1.IDS =0 ORDER BY PID ASC,ReportName IF (OBJECT_ID('tempdb..#temp') IS NOT NULL) BEGIN DROP TABLE #temp END IF (OBJECT_ID('tempdb..#temp2') IS NOT NULL) BEGIN DROP TABLE #temp2 END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RequestFile_GetActionId' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RequestFile_GetActionId] END GO CREATE PROCEDURE [KAAS_RequestFile_GetActionId] ( @CASECODE VARCHAR(20), @FNCODE VARCHAR(10), @TEAMCODE VARCHAR(10), @ACTIONCODE VARCHAR(20), @Result INT OUTPUT ) /******************************************************************************************************* * This sp used to insert blank action. * * * * Stored Procedure Name : [dbo].[KAAS_RequestFile_GetActionId] * * Copied from : [dbo].[ky_NETInsertTasksAction] * * Copied from : [dbo].[KAAS_InsertTasksAction] * * Copied from : [dbo].[KAAS_CP_GetActionId] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2022-02-10 Vinodhkumar.M Created for Client Portal - upload doument * * 2022-02-10 Vinodhkumar.M KAAS_CP_GetNextActionId is created instead of KAAS_GetNextActionID KAAS_CP_ConvertTime is created Instead of ky_ConvertTimeToClarion * for client Portal * * 2022-02-15 Vinodhkumar.M In Inserting diary passing values for due date priority value, Action type and Publish fields * * 2022-02-18 Vinodhkumar.M Created * * 2022-08-11 Aakif New action type for requested document upload * * 2022-10-10 Vinodhkumar.M Based on Action Code fetch details from Template Action table and * implement in dairy * * 2022-10-26 Vinodhkumar.M Added StartTime and End Time parameter * * 2022-10-28 Vinodhkumar.M removed StartTime and End Time parameter * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON --Diary DECLARE @TIMECONVERT INT SET @TIMECONVERT = dbo.KAAS_RequestFile_ConvertTimeFn(GETUTCDATE()) DECLARE @ENDTIME INT SET @ENDTIME = dbo.KAAS_RequestFile_ConvertTimeFn(GETUTCDATE()) DECLARE @ACTIONID INT DECLARE @PUBLISH CHAR(1) DECLARE @PRIORITY CHAR(1) DECLARE @ACTIONSTATUS VARCHAR(15) DECLARE @FLAG VARCHAR(15) DECLARE @MilestoneType VARCHAR(15) DECLARE @KYC VARCHAR(15) DECLARE @BILLABLE VARCHAR(15) EXEC @ACTIONID = [dbo].[KAAS_CP_GetNextActionId] -- NEW ACTION TYPE FOR REQUESTED DOC UPLOAD DECLARE @RequestFileActionType CHAR(1) = 'L'; SELECT @PUBLISH = CASE WHEN RTRIM(ISNULL(@PUBLISH, '')) <> '' THEN @PUBLISH ELSE ISNULL([TAC].[PUBLISHER], 'N') END, @PRIORITY = CASE WHEN RTRIM(ISNULL(@PRIORITY, '')) <> '' THEN @PRIORITY ELSE CASE WHEN RTRIM([TAC].[PRIORITY]) = 'Normal' THEN 'N' WHEN RTRIM([TAC].[PRIORITY]) = 'High' THEN 'H' WHEN RTRIM([TAC].[PRIORITY]) = 'Low' THEN 'L' ELSE '' END END, @ACTIONSTATUS = [STATUS], @RequestFileActionType = [ACTIONCATEGORY], @FLAG = [Flag], @MilestoneType = [MILESTONETYPE], @KYC = [kyc], @BILLABLE = CASE WHEN RTRIM(ISNULL(@BILLABLE, 'N')) = 'N' THEN 0 WHEN RTRIM(ISNULL(@BILLABLE, 'Y')) = 'Y'THEN 1 ELSE 0 END FROM [dbo].[TemplateActions] [TAC] WHERE [TAC].[ACTIONCODE] = @ACTIONCODE IF (RTRIM(IsNull(@PRIORITY, '')) = '') BEGIN SET @PRIORITY = 'N' END IF (RTRIM(IsNull(@RequestFileActionType, '')) = '') BEGIN SET @RequestFileActionType = 'L' END INSERT INTO [dbo].[diary] ([CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [DURATION], [ACTIONID], [ORGINALACTIONID], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [ADDRESSTO], [CCTo], [BCCTo], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo], [DisplayText], [Flag], [KYC]) VALUES(@CASECODE, GETUTCDATE(), 0, null, @ACTIONSTATUS, @RequestFileActionType, null, @FNCODE, @TEAMCODE, null, null, null, null, null, null, GETUTCDATE(), @PUBLISH, @TIMECONVERT, @ENDTIME, 0, @ACTIONID, 0, @PRIORITY, null, @MilestoneType, null, 0, 0, @BILLABLE, null, null, null, null, null, null, null, 0, 0, 0, 0, null, 'Not Applicable', null, null, 0, null, @FLAG, @KYC) INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@ACTIONID, @FNCODE, @TEAMCODE, GETUTCDATE(), @TIMECONVERT, null, @TIMECONVERT, GETUTCDATE(), @TIMECONVERT, null, 0, 'Y', @FNCODE, 0, @RequestFileActionType, @FNCODE, null, 'Created') SET @Result = @ACTIONID SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RequestFile_GetCaseFoldersAttachment' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RequestFile_GetCaseFoldersAttachment] END GO CREATE PROCEDURE [dbo].[KAAS_RequestFile_GetCaseFoldersAttachment] (@matter VARCHAR(20), @documentnamingmethod VARCHAR(1)) AS BEGIN /******************************************************************************************************* * Returns the default location for any documents stored against a case/matter * * * * Stored Procedure Name : [dbo].[KAAS_RequestFile_GetCaseFoldersAttachment] * * Copied from : [dbo].[ky_NETGetCaseFolders] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * * 2022-02-18 Vinodhkumar.M Created * *******************************************************************************************************/ DECLARE @continue INT DECLARE @strDefaultFolder VARCHAR(255) DECLARE @error VARCHAR(1000) DECLARE @strFileName VARCHAR(255) DECLARE @strClientCode VARCHAR(20) DECLARE @strMatterNumber VARCHAR(20) DECLARE @storagemethod VARCHAR(1) DECLARE @docFolder VARCHAR(255) SET @continue = 0 SELECT @storagemethod = SCF.[StorageMethod] FROM [dbo].[SystemConfig] SCF SET @storagemethod = ISNULL(@storagemethod, 'C') SELECT @strClientCode = MAT.[ClientCode], @strMatterNumber = MAT.[Matter] FROM [dbo].[matters] MAT WHERE MAT.[Code] = @matter IF (@continue = 0) BEGIN BEGIN TRY SELECT @strDefaultFolder = (SELECT RTRIM(ISNULL(SC.[SCWPFOLDER], '')) FROM [dbo].[SystemConfig] SC) SET @strDefaultFolder = ISNULL(@strDefaultFolder, '') IF (@strDefaultFolder = '') BEGIN SET @continue = 4 SET @error = 'SCWPFOLDER not SET in System Config' END END TRY BEGIN CATCH SET @continue = 5 SET @error = 'Error retrieving SCWPFOLDER: ' + Error_Message() END CATCH END IF (@continue = 0) BEGIN BEGIN TRY SELECT @strFileName = RTRIM(ISNULL(CLT.[DCOUMENTFOLDER], '')) FROM [dbo].[client] CLT WHERE CLT.[CLCODE] = @strClientCode SET @strFileName = RTRIM(ISNULL(@strFileName, '')) IF (@strFileName = '') BEGIN SET @strFileName = @strDefaultFolder + '\' + @strClientCode UPDATE CLT SET CLT.[DCOUMENTFOLDER] = @strFileName FROM [dbo].[client] CLT WHERE CLT.[CLCODE] = @strClientCode END END TRY BEGIN CATCH SET @continue = 1 SET @error = 'Failed to establish Client Document Folder' END CATCH END IF (@storagemethod = 'D') BEGIN SET @docFolder = @strDefaultFolder + '\' + SUBSTRING(CONVERT(VARCHAR(5), 10000 + YEAR(GETDATE())), 2, 4) + SUBSTRING(CONVERT(VARCHAR(3), 100 + MONTH(GETDATE())), 2, 4) END IF (@storagemethod = 'C') BEGIN SET @docFolder = @strFileName + '\' + @strMatterNumber END SET @docFolder = ISNULL(@docFolder, '') SELECT RSL.[Continue], RSL.[Error], @strDefaultFolder AS [SCWPFolder], CASE WHEN UNCS.[Drive] IS NULL THEN @strDefaultFolder ELSE UNCS.[UNC] + SUBSTRING(@strDefaultFolder, 3, LEN(@strDefaultFolder) - 2) END AS [UNCSCWPFolder], RSL.[ClientFolder], CASE WHEN UNC.[Drive] IS NULL THEN RSL.[ClientFolder] ELSE UNC.[UNC] + SUBSTRING(RSL.[ClientFolder], 3, LEN(RSL.[ClientFolder]) - 2) END AS [UNCClientFolder], @docFolder As [DocumentFolder], CASE WHEN UNCD.[Drive] IS NULL THEN @docFolder ELSE UNCD.[UNC] + SUBSTRING(@docFolder, 3, LEN(@docFolder) - 2) END AS [UNCDocumentFolder], @storagemethod AS [StorageMethod], @documentnamingmethod AS [DocumentNamingMethod] FROM (SELECT @continue AS [Continue], RTRIM(ISNULL(@strFileName, '')) AS [ClientFolder], RTRIM(ISNULL(@error, '')) AS [Error]) RSL LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON UNC.[Drive] = CASE WHEN SUBSTRING(RSL.[ClientFolder], 2, 1) = ':' THEN LEFT(RSL.[ClientFolder], 1) ELSE '' END LEFT OUTER JOIN [dbo].[UNCAlias] UNCS ON UNCS.[Drive] = CASE WHEN SUBSTRING(@strDefaultFolder, 2, 1) = ':' THEN LEFT(@strDefaultFolder, 1) ELSE '' END LEFT OUTER JOIN [dbo].[UNCAlias] UNCD ON UNCD.[Drive] = CASE WHEN SUBSTRING(@docFolder, 2, 1) = ':' THEN LEFT(@docFolder, 1) ELSE '' END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RequestFile_GetDiaryAttachments' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RequestFile_GetDiaryAttachments] END GO CREATE PROCEDURE [dbo].[KAAS_RequestFile_GetDiaryAttachments] (@DIARYID Integer, @Handler VARCHAR(10)) /******************************************************************************************************* * This procedure is used load the data for TaskAddAction page Attachment Grid. * * * * Stored Procedure Name : [dbo].[KAAS_RequestFile_GetDiaryAttachments] * * Copied from : [dbo].[ky_NETCCFetchDiaryAttachments] * * Copied from : [dbo].KAAS_CP_GetDiaryAttachments] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2022-02-10 Vinodhkumar.M Created - to upload Document in client portal * * 2022-02-18 Vinodhkumar.M Created * * 2022-02-09 Arun V Removed diary attachment log * *******************************************************************************************************/ AS BEGIN SET NOCOUNT ON SELECT [DAT].[DIARYID] AS [DIARYID], [DAT].[TRACKREFERENCE] AS [TRACKREFERENCE], RTRIM(ISNULL([DAT].[CASECODE], '')) AS [CASECODE], RTRIM(ISNULL([DAT].[NAME], '')) AS [NAME], RTRIM(ISNULL([DAT].[DOCUMENT], '')) AS [DOCUMENT], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [FILEPATH], CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], '')) ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [LFILEPATH], RTRIM(ISNULL([DAT].[TYPE], '')) AS [TYPE], RTRIM(ISNULL([DCL].[CLASSCODE], '')) AS [DOCCLASS], RTRIM(ISNULL([DCL].[CLASSDESCRIPTION], '')) AS [DOCCLASSDESC], CONVERT(VARCHAR, [DAT].[DATEENTERED], 20) AS [DATEENTERED], RTRIM(ISNULL([DAT].[SYSTEM], 'N')) AS [SYSTEM], RTRIM(ISNULL([DAT].[DOCCLASS], '')) AS [DOCCLASS], RTRIM(ISNULL([DAT].[ENTEREDBY], '')) AS [ENTEREDBY], CONVERT(VARCHAR, [DAT].[LASTACCESSDATE], 20) AS [LASTACCESSDATE], RTRIM(ISNULL([DAT].[LASTACCESSBY], '')) AS [LASTACCESSBY], RTRIM(ISNULL([DAT].[DICTATIONFILE], '')) AS [DICTATIONFILE], RTRIM(ISNULL([DAT].[SOURCE], '')) AS [Source], RTRIM(ISNULL([DAT].[Fees], '')) AS [Fees], RTRIM(ISNULL([DAT].[Outlay], '')) AS [Outlay], [DV].[CurrentVersion] AS [CurrentVersion], RTRIM(ISNULL([DX].[IMDocID], '')) AS [IMDocID], [MAT].[uniqueid] AS [UniqueId] FROM [dbo].[DiaryAttachments] [DAT] INNER JOIN [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CASECODE] ON [DIA].[ActionID] = [DAT].[DiaryID] CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV] WHERE [DAV].[TrackReference] = [DAT].[TRACKREFERENCE]) DV LEFT OUTER JOIN [dbo].[DocumentClasses] [DCL] ON [DCL].[CLASSCODE] = [DAT].[DOCCLASS] LEFT OUTER JOIN [dbo].[UNCAlias] [UNC] ON SUBSTRING([DAT].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1) LEFT OUTER JOIN [dbo].[DAIMXRef] [DX] ON [DX].[TrackReference] = [DAT].[TRACKREFERENCE] WHERE [DAT].[DIARYID] = @DIARYID ORDER BY [DAT].[TRACKREFERENCE] DESC SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_RequestFile_GetFEandTeamCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_RequestFile_GetFEandTeamCode] GO CREATE PROCEDURE [dbo].[KAAS_RequestFile_GetFEandTeamCode] (@CASECODE VARCHAR(15) = NULL) AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_CP_GetFEandTeamCode] * * Copied From : [dbo].[KAAS_CP_GetFEandTeamCode] * * Description: To get current team code and FE code * * * * Modification History: * * 2022-02-14 Vinodhkumar.M Created * * 2022-02-18 Vinodhkumar.M Created * *******************************************************************************************************/ BEGIN DECLARE @FeeEarner AS VARCHAR(10); DECLARE @Partner AS VARCHAR(10); DECLARE @Secretary AS VARCHAR(10); SELECT @FeeEarner = [MAT].[FECode], @Partner = [MAT].[Partner], @Secretary = [MAT].[Secretary] FROM [matters] [MAT] WHERE [MAT].[Code] = @CASECODE IF EXISTS (SELECT TOP 1 1 FROM [Handlers] WHERE [CODE] = @FeeEarner) BEGIN SELECT ISNULL([Code],'') AS FECode, ISNULL([HAN].[TEAM],'') AS TeamCode FROM [Handlers] [HAN] WHERE [HAN].[CODE] = @FeeEarner END ELSE IF EXISTS (SELECT TOP 1 1 FROM [Handlers] WHERE [CODE] = @Partner) BEGIN SELECT ISNULL([Code],'') AS FECode, ISNULL([HAN].[TEAM],'') AS TeamCode FROM [Handlers] [HAN] WHERE [HAN].[CODE] = @Partner END ELSE IF EXISTS (SELECT TOP 1 1 FROM [Handlers] WHERE [CODE] = @Secretary) BEGIN SELECT ISNULL([Code],'') AS FECode, ISNULL([HAN].[TEAM],'') AS TeamCode FROM [Handlers] [HAN] WHERE [HAN].[CODE] = @Secretary END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RequestFile_GetNextTrackReference' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RequestFile_GetNextTrackReference] END GO CREATE PROCEDURE [dbo].[KAAS_RequestFile_GetNextTrackReference] (@Result INT OUTPUT) AS /******************************************************************************************************* * Gets next available track referene number * * * * Stored Procedure Name : [dbo].[KAAS_RequestFile_GetNextTrackReference] * * Copied from : [dbo].[spGetNextTrackReferenceInDiaryAttachments] * * Copied from : [dbo].[KAAS_GetNextTrackReferenceInDiaryAttachments] * * Copied from : [dbo].[KAAS_CP_GetNextTrackReference] * * * * Modification History : * * 2019-04-10 Vinodhan K Created * * 2022-02-10 Vinodhkumar.M Created - to upload Document in client portal * * 2022-02-11 Vinodhkumar.M return the value using output parameter * * 2022-02-11 Vinodhkumar.M Created * *******************************************************************************************************/ BEGIN DECLARE @TrackReference INT EXEC @TrackReference = [dbo].[KAAS_RequestFile_GetNextTrackRefValue] SET @Result = @TrackReference --SELECT -- ISNULL(MAX(TRACKREFERENCE), 0)+1 AS TRACKREFERENCE --FROM -- dbo.DiaryAttachments --ORDER BY TRACKREFERENCE DESC END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RequestFile_GetNextTrackRefValue' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RequestFile_GetNextTrackRefValue] END GO CREATE PROCEDURE [dbo].[KAAS_RequestFile_GetNextTrackRefValue] AS /********************************************************************************** * SP Name : KAAS_RequestFile_GetNextTrackRefValue *Copied from [dbo].[ky_NETGetNextTrackReference] * * Dummy Procedure in preparation for the use of the DiaryAttachmentsSeed table * * Until this is in place, just calculate the next available TrackReference * * Modification History * 2015-10-01 Pino Carafa Created * 2015-11-12 Pino Carafa Include the Diary Att Deletion Log Trackrefs * that way, if an attachment is created and * then immediately deleted, its trackref is * not reused. * 2017-03-09 Pino Carafa Implement trackreferences table solution * * 2022-02-18 Vinodhkumar.M Created **********************************************************************************/ BEGIN --old code START --DECLARE @nextVAL INT --DECLARE @delVAL INT --SELECT @nextVAL = ISNULL(MAX(DAT.[TrackReference]), 0) + 1 -- FROM [dbo].[DiaryAttachments] DAT --SELECT @delVAL = ISNULL(MAX(DAT.[TrackReference]), 0) + 1 -- FROM [dbo].[DiaryAttachmentDeletionLog] DAT --IF (@delVAL > @nextVAL) -- BEGIN -- SET @nextVAL = @delVAL -- END --RETURN @nextVAL --old code END DECLARE @MaxTrackReference INT DECLARE @bsuccess BIT SET @bsuccess = 0 WHILE (@bsuccess = 0) BEGIN BEGIN TRY INSERT INTO [dbo].[trackreferences] DEFAULT VALUES SET @MaxTrackReference = SCOPE_IDENTITY() SET @bsuccess = 1 END TRY BEGIN CATCH SET @bsuccess = 0 END CATCH END -- This while loop handles the possibility that a piece of legacy code uses the OLD mechanism WHILE EXISTS (SELECT TOP 1 1 FROM [dbo].[DiaryAttachments] [DAT] with (nolock) WHERE [DAT].[TrackReference] = @MaxTrackReference) BEGIN SET @bsuccess = 0 WHILE (@bsuccess = 0) BEGIN BEGIN TRY INSERT INTO [dbo].[trackreferences] DEFAULT VALUES SET @MaxTrackReference = SCOPE_IDENTITY() SET @bsuccess = 1 END TRY BEGIN CATCH SET @bsuccess = 0 END CATCH END END --DELETE [dbo].[trackreferences] RETURN @MaxTrackReference END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RequestFile_GetUploadAzureInfo' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RequestFile_GetUploadAzureInfo] END GO Create Procedure [dbo].[KAAS_RequestFile_GetUploadAzureInfo] (@TrackReference INT, @Version INT) AS /************************************************************************************************************* * * * [dbo].[ky_NETSPGetAzureDATInfo] * * * * Gets the information Azure needs to retrieve a Diary Attachment * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.6.4.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2018-11-12 Pino Carafa Created * * 2019-11-19 Pino Carafa Add Link to DiaryAttachmentOriginalMatterLinks * * 2020-02-06 Pino Carafa Filepath loses colon for file paths that are really local, and that don't * * have a drive letter covered by [dbo].[UNCAlias] * * 2020-05-26 Pino Carafa Add Matter Code and Client Code * * 2020-06-08 Arun Vasu Copied from Ky_NETSPGetAzureDATInfo * * 2022-02-18 Vinodhkumar.M Created * *************************************************************************************************************/ BEGIN DECLARE @FilePath VARCHAR(500) DECLARE @Document VARCHAR(100) DECLARE @DotPos INT DECLARE @SlashPos INT DECLARE @FileExtension VARCHAR(10) DECLARE @MatterUniqueID INT DECLARE @IsCurrent BIT DECLARE @Type VARCHAR(10) DECLARE @MatterCode VARCHAR(20) DECLARE @ClientCode VARCHAR(10) SELECT @TrackReference = [DAT].[TrackReference], @Document = RTRIM(ISNULL([DAT].[DOCUMENT], '')), @FilePath = REVERSE(RTRIM(ISNULL([DAV].[Filepath], ISNULL([DAT].[FILEPATH], '')))), @MatterUniqueID = ISNULL([DAOML].[OriginalUniqueID], [MAT].[uniqueid]), @Version = CASE WHEN [DAV].[Version] IS NULL THEN [CV].[CurrentVersion] ELSE [DAV].[Version] END, @IsCurrent = CASE WHEN [DAV].[Version] IS NULL THEN 1 ELSE 0 END, @Type = [DAT].[TYPE], @MatterCode = RTRIM(ISNULL([MAT].[Code], '')), @ClientCode = RTRIM(ISNULL([MAT].[ClientCode], '')) FROM [dbo].[DiaryAttachments] [DAT] LEFT OUTER JOIN [dbo].[DiaryAttachmentOriginalMatterLinks] [DAOML] ON [DAOML].[TrackReference] = [DAT].[TrackReference] INNER JOIN [dbo].[diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CASECODE] ON [DIA].[ACTIONID] = [DAT].[DiaryID] LEFT OUTER JOIN [dbo].[DiaryAttachmentVersioning] [DAV] ON [DAV].[TrackReference] = [DAT].[TrackReference] AND [DAV].[Version] = @Version CROSS APPLY (SELECT ISNULL(MAX([DAV2].[Version]), 0) + 1 AS [CurrentVersion] FROM [dbo].[DiaryAttachmentVersioning] [DAV2] WHERE [DAV2].[TrackReference] = [DAT].[TrackReference]) [CV] WHERE [DAT].[TrackReference] = @TrackReference SET @DotPos = CHARINDEX('.', @FilePath) SET @SlashPos = CHARINDEX('\', @FilePath) IF @DotPos < 1 BEGIN SET @FileExtension = '' END ELSE IF @DotPos < @SlashPos BEGIN SET @FileExtension = REVERSE(SUBSTRING(@FilePath, 1, @DotPos)) END ELSE BEGIN SET @FileExtension = '' END IF @Document = '' BEGIN IF @SlashPos > 0 BEGIN SET @Document = REVERSE(SUBSTRING(@FilePath, 1, @SlashPos - 1)) SET @Document = SUBSTRING(@Document, 1, LEN(@Document) - LEN(@FileExtension)) IF @Document LIKE '%_' + CONVERT(VARCHAR(10), @TrackReference) BEGIN SET @Document = SUBSTRING(@Document, 1, LEN(@Document) - LEN('_' + CONVERT(VARCHAR(10), @TrackReference))) END END ELSE BEGIN SET @Document = 'File' END END SET @FilePath = REVERSE(@FilePath) IF LEN(@FilePath) > 1 BEGIN IF SUBSTRING(@FilePath, 2, 1) = ':' BEGIN IF (SELECT [UNC].[UNC] FROM [dbo].[UNCAlias] [UNC] WHERE [UNC].[Drive] = SUBSTRING(@FilePath, 1, 1)) IS NOT NULL BEGIN SELECT @FilePath = ISNULL((SELECT [UNC].[UNC] FROM [dbo].[UNCAlias] [UNC] WHERE [UNC].[Drive] = SUBSTRING(@FilePath, 1, 1)), SUBSTRING(@FilePath, 1, 1)) + SUBSTRING(@FilePath, 3, LEN(@FilePath) - 2) END END END SELECT @TrackReference AS [TrackReference], @Document AS [Document], @FileExtension AS [FileExtension], @MatterUniqueID AS [MatterUniqueID], @FilePath AS [FilePath], @Version AS [RetrievedVersion], @IsCurrent AS [IsCurrent], @Type AS [Type], @MatterCode AS [MatterCode], @ClientCode AS [ClientCode] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_RequestFile_InsertDiaryAttachment' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RequestFile_InsertDiaryAttachment] END GO CREATE PROCEDURE [dbo].[KAAS_RequestFile_InsertDiaryAttachment] (@DIARYID INT, @TRACKREFERENCE INT, @CASECODE VARCHAR(20), @NAME VARCHAR(10), @DOCUMENT VARCHAR(100), @FILEPATH VARCHAR(255), @TYPE VARCHAR(5), @DOCCLASS VARCHAR(3), @DATEENTERED DATETIME, @ENTEREDBY VARCHAR(8), @LASTACCESSDATE DATETIME, @LASTACCESSBY VARCHAR(8), @SYSTEM VARCHAR(1), @DICTATIONFILE VARCHAR(255), @Source VARCHAR(20), @Fees INT, @Outlay INT, @DefaultActionCode VARCHAR(15) = '', @Subject VARCHAR(500) ='', @FileDescription VARCHAR(MAX) ='', @IslastFileToUpload BIT, @Result VARCHAR(255) OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the Client Case Action * * Attachment information.IF ID is already exist then it will update that record. otherwise * * new record will insert. * * * * Stored Procedure Name : [dbo].[KAAS_RequestFile_InsertDiaryAttachment] * * Copied from : [dbo].[ky_NETAAInsertDiaryAttchement] * * Copied from : [dbo].[KAAS_InsertDiaryAttachment] * * * * Modification History : * * 2019-04-10 Vinodhan K Created * * 2020-05-26 Arun V Modified the type extenaion size from 3 to 5 * * 2021-10-06 Arun V Set Context info * * 2022-02-18 Vinodhkumar.M Created * * 2022-02-21 Vinodhkumar.M Subject, Description, default action code added * * 2022-02-21 Vinodhkumar.M IslastFileToUpload Parameter is added for diary table update query should call only once * * 2022-08-17 Aakif Fix for format of description field in case diary and task * * 2022-10-28 Vinodhkumar.M changed getdate to get utc date * *******************************************************************************************************/ BEGIN SET NOCOUNT OFF DECLARE @HandlerBin VARBINARY(128) SET @HandlerBin = CONVERT(VARBINARY(128), convert(varchar(8),@LASTACCESSBY)) SET CONTEXT_INFO @HandlerBin IF NOT EXISTS (SELECT 1 FROM [dbo].[DiaryAttachments] DAT WHERE DAT.[TRACKREFERENCE] = @TRACKREFERENCE) BEGIN SET @FILEPATH = dbo.KAAS_FN_GETFILEPATH (SUBSTRING(@FILEPATH,LEN(@FILEPATH)-CHARINDEX ('\',REVERSE(@FILEPATH))+2,LEN(@FILEPATH)) ,@FILEPATH ) IF NOT(@FILEPATH = 'NOCHANGE') BEGIN INSERT INTO [dbo].[DiaryAttachments] ([DIARYID], [TRACKREFERENCE], [CASECODE], [NAME], [DOCUMENT], [FILEPATH], [TYPE], [DOCCLASS], [DATEENTERED], [ENTEREDBY], [LASTACCESSDATE], [LASTACCESSBY], [SYSTEM], [DICTATIONFILE], [Source], [Fees], [Outlay]) VALUES(@DIARYID, @TRACKREFERENCE, @CASECODE, @NAME, @DOCUMENT, @FILEPATH, @TYPE, @DOCCLASS, @DATEENTERED, @ENTEREDBY, @LASTACCESSDATE, @LASTACCESSBY, @SYSTEM, @DICTATIONFILE, @Source, @Fees, @Outlay) IF EXISTS(SELECT * FROM diary WHERE ACTIONID = @DIARYID AND ACTIONTYPE = 'U') BEGIN DECLARE @UserName VARCHAR(20) DECLARE @Description VARCHAR(500) SET @UserName = (SELECT NAME FROM Handlers WHERE Code = @ENTEREDBY) SET @Description = 'Attachment Added: ' + CHAR(13) + CHAR(10) + 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME,@DATEENTERED),106) + CHAR(13) + CHAR(10) + 'Document Name: ' + @DOCUMENT +CHAR(13) + CHAR(10) + 'Document Class: ' + @DOCCLASS + CHAR(13) + CHAR(10) INSERT INTO [dbo].[UndertakingLog] ([UndertakingID], [FieldChanges], [FromValue], [ToValue], [ByWho], [ModifiedDate]) VALUES(@DIARYID, 'New Documents Added', @Description, ' - NIL - ', @UserName, CONVERT(DATETIME,GETUTCDATE(),112)) END IF(@IslastFileToUpload = 1) BEGIN IF EXISTS(SELECT TOP 1 1 FROM diary WHERE ACTIONID = @DIARYID) BEGIN DECLARE @DisplaytextValue VARCHAR(220); SET @DisplaytextValue = [dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(@FileDescription, ''), 200); UPDATE [diary] SET [SUBJECT] = @Subject, [TEXT1] = @FileDescription, [DisplayText] = @DisplaytextValue, [ACTIONCODE] = @DefaultActionCode, [DATE] = GETUTCDATE(), [DUEDATE] = GETUTCDATE() WHERE [ACTIONID] = @DIARYID END END SET @Result = @FILEPATH END ELSE BEGIN SET @Result = 'NOCHANGE' END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RequestFile_InsertDocumentIntoFolder' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RequestFile_InsertDocumentIntoFolder] END GO CREATE PROCEDURE [dbo].[KAAS_RequestFile_InsertDocumentIntoFolder] (@copyxml VARCHAR(MAX)) AS /*********************************************************************************************************** * Flags the documents passed in through @copyxml as being "in" the document folder(s) in the XML document * * @copyxml - an xml string outlining the nature of the changes * * * * Stored Procedure Name : KAAS_RequestFile_InsertDocumentIntoFolder * * Copied From : [dbo].[ky_NETSPCopyDocsToDocFolder] * * Copied from : [dbo].[KAAS_CopyDocsToDocFolder] * * * * Modification History: * * 2016-04-26 Pino Carafa Created * * 2019-10-11 Vinodhan K Created KAAS_CopyDocsToDocFolder * * 2022-02-18 Vinodhkumar.M Created * ************************************************************************************************************/ BEGIN SET NOCOuNT ON DECLARE @iSL INT DECLARE @MAX INT DECLARE @data TABLE ([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [folderid] INT NOT NULL, [trackreference] INT NOT NULL) BEGIN TRY EXEC SP_XML_PREPAREDOCUMENT @iSL OUTPUT, @copyxml END TRY BEGIN CATCH EXEC SP_XML_PREPAREDOCUMENT @iSL OUTPUT, N'' END CATCH INSERT INTO @data ([folderid], [trackreference]) SELECT SRC.[folderid], SRC.[trackreference] FROM OPENXML(@iSL, N'copydocstofolders/copy') WITH ([folderid] INT '@tofolder', [trackreference] INT '@trackreference') SRC EXEC sp_xml_removedocument @iSL INSERT INTO [dbo].[DocFolderDocuments] ([DocFolderID], [TrackReference]) SELECT DT.[folderid], DT.[trackreference] FROM @data DT LEFT OUTER JOIN [dbo].[DocFolderDocuments] DFD ON DFD.[DocFolderID] = DT.[folderid] AND DFD.[TrackReference] = DT.[trackreference] WHERE DFD.[TrackReference] IS NULL SET NOCOUNT OFF END GO IF NOT((SELECT SERVERPROPERTY('Edition') AS [Edition]) = 'SQL Azure') BEGIN IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RequestFile_SaveUploadDiaryAttachment' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RequestFile_SaveUploadDiaryAttachment] END DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N'CREATE PROCEDURE [dbo].[KAAS_RequestFile_SaveUploadDiaryAttachment] ( @FilePath VARCHAR(1000), @FileName VARCHAR(1000), @FileData VARBINARY(MAX), @Result INT OUTPUT ) AS /******************************************************************************************************* * To save the attachment to the physical path * * * * Stored Procedure Name : [dbo].[KAAS_RequestFile_SaveUploadDiaryAttachment] * * Copied from : [dbo].[KAAS_SaveDiaryAttachement] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2022-02-10 Vinodhkumar.M Created * *******************************************************************************************************/ BEGIN DECLARE @FullPath NVARCHAR (2000); SET @FullPath = @FilePath + @FileName; DECLARE @Obj INT; SET NOCOUNT ON BEGIN TRY DECLARE @IsFolderExist AS INT DECLARE @FileResult TABLE ( IsFileExist INT, IsFileDirectory INT, IsParentDirectoryExist INT ) INSERT INTO @FileResult ( IsFileExist, IsFileDirectory, IsParentDirectoryExist ) EXECUTE XP_FILEEXIST @FilePath SELECT @IsFolderExist = IsFileDirectory FROM @FileResult --Script to create directory IF(@IsFolderExist = 0) BEGIN EXECUTE XP_CREATE_SUBDIR @FilePath INSERT INTO @FileResult ( IsFileExist, IsFileDirectory, IsParentDirectoryExist ) EXECUTE XP_FILEEXIST @FilePath SELECT @IsFolderExist = IsFileDirectory FROM @FileResult END IF(@IsFolderExist = 1) BEGIN EXEC SP_OACREATE ''ADODB.Stream'' ,@Obj OUTPUT; EXEC SP_OASETPROPERTY @Obj ,''Type'',1; EXEC SP_OAMETHOD @Obj,''Open''; EXEC SP_OAMETHOD @Obj,''Write'', NULL, @FileData; EXEC SP_OAMETHOD @Obj,''SaveToFile'', NULL, @FullPath, 2; EXEC SP_OAMETHOD @Obj,''Close''; EXEC SP_OADESTROY @Obj; SELECT @Result = 1; RETURN; END ELSE BEGIN SELECT @Result = 0; RETURN; END END TRY BEGIN CATCH EXEC SP_OADESTROY @Obj; SELECT @Result = 1; RETURN; END CATCH SET NOCOUNT OFF END' EXECUTE SP_EXECUTESQL @NCOMMAND END GO IF OBJECT_ID(N'KAAS_RequestWithKeyhouseLog',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_RequestWithKeyhouseLog] GO CREATE PROCEDURE [dbo].[KAAS_RequestWithKeyhouseLog] ( @Recepient VARCHAR(30) = '', @Subject VARCHAR(30) = '', @Message VARCHAR(500) = '', @RequestLink VARCHAR(1000) = '', @Option INT = 0, @RequestId BIGINT = 0, @UniqueId VARCHAR(40) = '', @Result VARCHAR(1000) OUTPUT ) AS /******************************************************************************************************* * Logs the request files * * * * Stored Procedure Name : [dbo].[KAAS_RequestWithKeyhouseLog] * * * * Modification History: * * 2022-02-16 Vinodhkumar M Created * * 2022-02-24 Vinodhkumar M Modified - added OUTPUT,Requestid, Option parameter,Update Query * * 2022-02-28 Vinodhkumar M Modified - added new column File uniqueId and using that to get * token * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF(@Option = 1) BEGIN INSERT INTO [RequestFileLog]( [Recepient], [Subject], [Message], [RequestLink], [RequestedDate], [FileUniqueId]) VALUES(@Recepient, @Subject, @Message, @RequestLink, GETUTCDATE(), substring(Convert(nvarchar(36),newid()),0,14)) SELECT @Result = SCOPE_IDENTITY() END ELSE IF(@Option = 2) BEGIN UPDATE [RequestFileLog] SET [RequestLink] = @RequestLink WHERE [RequestId] = @RequestId SELECT @Result = [FileUniqueId] FROM [dbo].[RequestFileLog] WHERE [RequestId] = @RequestId END ELSE IF(@Option = 3) BEGIN SELECT @Result = [Recepient] FROM [dbo].[RequestFileLog] WHERE RequestId = @RequestId END ELSE IF(@Option = 4) BEGIN SELECT @Result = [RequestLink] FROM [dbo].[RequestFileLog] WHERE [FileUniqueId] = @UniqueId END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_ReseedActionID' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ReseedActionID] END GO CREATE PROCEDURE [dbo].[KAAS_ReseedActionID] AS /******************************************************************************************************* * Dummy Procedure in preparation for the use of the DiarySeed table * * * * Stored Procedure Name : [dbo].[KAAS_ReseedActionID] * * Copied from : [dbo].[ky_NETReseedActionID] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ BEGIN RETURN END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_ResetMatterDocFolderTree' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ResetMatterDocFolderTree] END GO CREATE PROCEDURE [dbo].[KAAS_ResetMatterDocFolderTree] (@matter VARCHAR(20)) AS /******************************************************************************************************************* * * * Removes any existing Matter Document Folder Tree and replaces it with a new one based on the matter's Case Plan * * * * Stored Procedure name : KAAS_ResetMatterDocFolderTree * * Copied From : [dbo].[ky_NETSPResetMatterDocFolderTree] * * * * Please Note: This procedure may return more than one Table in its result set, the calling code * * needs to process the LAST table returned by this procedure. * * * * Modification History: * * 2016-05-04 Pino Carafa Created * * 2016-05-12 Pino Carafa Add foldericon * * 2019-09-19 Vinodhan K Added KAAS_ResetMatterDocFolderTree * * 2022-05-25 Aakif Fix for Bug 14398: The folder option "Revert to the Original Case Plan Folder * * Structure" is deleting all the subfolders from the Case Plan folder structure * *******************************************************************************************************************/ BEGIN DECLARE @WKCODE CHAR(4) DECLARE @MatterCode VARCHAR(20) DECLARE @folderid INT SELECT TOP 1 @MatterCode = [SM].[CODE], @WKCODE = [TMP].[WKCODE] FROM [dbo].[SearchMatters] SM INNER JOIN [dbo].[CaseMaster] CSM ON [CSM].[CSCODE] = SM.[Code] LEFT OUTER JOIN [dbo].[Templates] [TMP] ON [TMP].[WKCODE] = [CSM].[CSWKTCODE] WHERE [CSM].[CSCODE] = @matter IF @MatterCode IS NULL BEGIN -- Dummy statement SELECT TOP 0 CONVERT(INT, 0) AS [id], CONVERT(INT, 0) AS [parent], CONVERT(VARCHAR(500), '') AS [foldername], CONVERT(INT, 0) AS [foldericon] RETURN END SELECT TOP 1 @folderid = MDF.[DocFolderID] FROM [dbo].[MatterDocFolders] MDF WHERE [MDF].[MatterCode] = @MatterCode IF @folderid IS NOT NULL BEGIN DELETE DCF FROM [dbo].[KAAS_FN_GetDocFolders](@matter, @folderid, 1, 1) [DF] INNER JOIN [dbo].[DocFolders] [DCF] ON [DCF].[id] = [DF].[id] END EXEC [dbo].[KAAS_GetMatterDocFolderTree] @matter END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RestartDayBookEntry' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RestartDayBookEntry] END GO CREATE PROCEDURE [dbo].[KAAS_RestartDayBookEntry] (@RecordID INT) AS /******************************************************************************************************* * Resets a Day Book's Stopwatch status to 0 * * Note: In order for this to work, the Fee Earner must NOT have other Daybook Entries with status 0 * * * * Stored Procedure Name : [dbo].[KAAS_RestartDayBookEntry] * * Copied from : [dbo].[ky_NETSPRestartDayBookEntry] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @FeeEarn VARCHAR(10) SELECT @FeeEarn = [TDB].[FeeEarn] FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[RecordID] = @RecordID IF @FeeEarn IS NOT NULL IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[FeeEarn] = @FeeEarn AND [TDB].[RecordID] <> @RecordID AND [TDB].[StopwatchStatus] = 0) BEGIN UPDATE [TDB] SET [TDB].[StopwatchStatus] = 0 FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[RecordID] = @RecordID SELECT CONVERT(INT, 0) AS [NewStopwatchStatus] RETURN END SELECT CONVERT(INT, 1) AS [NewStopwatchStatus] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RetrievalCodeInterpreter' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RetrievalCodeInterpreter] END GO CREATE PROCEDURE [dbo].[KAAS_RetrievalCodeInterpreter] (@mattercode VARCHAR(20), --From original @SEARCHES, *just in case* we ever need them - START @actionid INT, @trackreference INT, @actualname VARCHAR(500), @retrievalcode VARCHAR(500), --From original @SEARCHES, *just in case* we ever need them - END @ORIGINAL VARCHAR(MAX) OUT) AS /************************************************************************************************************* * * * Replaces a Retrieval Code with its interpreted SYS: equivalent * * * * Stored Procedure : KAAS_RetrievalCodeInterpreter * * Copied From : [dbo].[ky_NETSPRetrievalCodeInterpreter] * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.6.4.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2019-01-11 Pino Carafa Created * * 2019-01-31 Pino Carafa Handle a few unusual scenarios e.g. where the retrieval code is merely a * * literal string or a hard coded value * * 2019-07-16 Pino Carafa Functionality to handle Doc Naming on the basis of LCN, CAN and AUD * * 2019-12-19 Vinodhan Created KAAS_RetrievalCodeInterpreter * * * *************************************************************************************************************/ BEGIN DECLARE @WORK VARCHAR(MAX) DECLARE @WORK2 VARCHAR(MAX) DECLARE @LEN INT SET @WORK = @ORIGINAL SET @LEN = LEN(@WORK) IF @LEN > 0 BEGIN IF (SUBSTRING(@WORK, 1, 1) = '[') AND (SUBSTRING(@WORK, LEN(@WORK), 1) = ']') BEGIN SET @WORK = SUBSTRING(@WORK, 2, LEN(@WORK) - 2) END END SET @LEN = LEN(@WORK) IF @LEN > 0 BEGIN IF PATINDEX('%SYS:%', @WORK) = 1 BEGIN SET @WORK = SUBSTRING(@WORK, 5, LEN(@WORK) - 4) END END SET @LEN = LEN(@WORK) IF @LEN > 0 BEGIN IF SUBSTRING(@WORK, 1, 1) = '''' BEGIN -- This handles the rare occasion where a SYS: field starts with a literal. To -- deal with that, we'll just concatenate an empty string before that, causing -- the Field ID Interpreter to work it out. SET @WORK = ''''' & ' + @WORK END END DECLARE @originaldocnaming VARCHAR(MAX) SET @originaldocnaming = '' DECLARE @docnamingprefix VARCHAR(10) DECLARE @docnamingpos INT DECLARE @PREFIXES TABLE ([PREFIX] VARCHAR(10)) INSERT INTO @PREFIXES ([PREFIX]) VALUES('%>lcn:%') INSERT INTO @PREFIXES ([PREFIX]) VALUES('%>can:%') INSERT INTO @PREFIXES ([PREFIX]) VALUES('%>aud:%') WHILE EXISTS (SELECT TOP 1 1 FROM @PREFIXES) BEGIN SELECT TOP 1 @docnamingprefix = [PREFIX] FROM @PREFIXES SET @docnamingpos = PATINDEX(@docnamingprefix, @retrievalcode) IF @docnamingpos > 0 BEGIN SET @originaldocnaming = SUBSTRING(@retrievalcode, 1, @docnamingpos - 1) SET @retrievalcode = SUBSTRING(@retrievalcode, @docnamingpos + 1, LEN(@retrievalcode) - @docnamingpos) END IF @originaldocnaming = '' BEGIN DELETE @PREFIXES WHERE [PREFIX] = @docnamingprefix END ELSE BEGIN DELETE @PREFIXES END END IF @originaldocnaming <> '' IF LEN(@originaldocnaming) <= LEN(@WORK) IF SUBSTRING(@WORK, 1, LEN(@originaldocnaming)) = @originaldocnaming SET @WORK = SUBSTRING(@WORK, LEN(@originaldocnaming) + 2, LEN(@WORK) - LEN(@originaldocnaming) - 1) SET @WORK2 = [dbo].[KAAS_FN_FieldIDInterpreter](@WORK, 0, @mattercode, @actionid, @trackreference, @actualname, @retrievalcode) IF @WORK <> @WORK2 BEGIN IF @originaldocnaming = '' BEGIN SET @ORIGINAL = '[SYS:' + @WORK2 + ']' END ELSE BEGIN SET @ORIGINAL = '[' + @originaldocnaming + '>SYS:' + @WORK2 + ']' END RETURN END IF CHARINDEX('''', @WORK) > 0 BEGIN RETURN END IF CHARINDEX('(', @WORK) > 0 BEGIN RETURN END IF CHARINDEX(':', @WORK) > 0 BEGIN RETURN END IF @originaldocnaming = '' BEGIN SET @ORIGINAL = '[SYS:'''' & ' + @WORK2 + ']' END ELSE BEGIN SET @ORIGINAL = '[' + @originaldocnaming + '>SYS:'''' & ' + @WORK2 + ']' END RETURN END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_RevenueInsertintoDiary' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_RevenueInsertintoDiary] END GO CREATE PROCEDURE [dbo].[KAAS_RevenueInsertintoDiary] (@CASECODE VARCHAR(20), @value VARCHAR(100), @principal VARCHAR(100), @interest VARCHAR(100), @From VARCHAR(100)='', @DebtDescription VARCHAR(MAX), @TimeEntryId INT, @LoginCode VARCHAR(30)) AS /******************************************************************************************************* * This Procedure is used to insert a Dairy Action whenever changes are made in debt details * * or while allocating payment in Debt Ledger. * * * * Stored Procedure Name : [dbo].[KAAS_RevenueInsertintoDiary] * * Copied from : [dbo].[ky_NETRevenueInsertintoDiary2] in KY_NETRevenueInsertintoDiary * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @ActionId AS BIGINT DECLARE @Subject AS VARCHAR(500) DECLARE @ActionCode AS VARCHAR(15) DECLARE @FnCode AS VARCHAR(10) DECLARE @TeamCode AS VARCHAR(10) EXEC @ActionId = [dbo].[ky_NETGetNextActionID] DECLARE @TimeConvert INT SET @TimeConvert = dbo.ky_ConvertTimeToClarion(GETDATE()) SET @Principal =(SELECT CAST(@Principal AS NUMERIC(18,2))) SET @interest =(SELECT CAST(@interest AS NUMERIC(18,2))) SELECT @FnCode = ISNULL([HAN].[Code], ''), @TeamCode = ISNULL([HAN].[Team], '') FROM [dbo].[Handlers] AS [HAN] WHERE [HAN].[Code] = @LoginCode DECLARE @Text1 AS VARCHAR(5000) IF @From ='AddDebtDetails' BEGIN SET @Text1 = 'Manual Amendment.' + CHAR(13) + 'Sequence No: ' + @Value + CHAR(13) + 'New Tax Amount: ' + CONVERT(VARCHAR(100), @Principal) + CHAR(13) + 'New Interest Amount: ' + CONVERT(VARCHAR(100), @interest ) SET @ActionCode ='R004' SET @Subject ='Manual Debt Breakdown Amendment' END ELSE IF @From = 'Cost' BEGIN SELECT @Text1 = 'Cost added: ' + LTRIM(RTRIM(@DebtDescription)) + CHAR(13) + 'Amount: ' + LTRIM(RTRIM(@Value)), @ActionCode = 'C01', @Subject = 'Cost added: ' + LTRIM(RTRIM(@DebtDescription)) END ELSE BEGIN SET @Text1 = CASE WHEN @From='Direct Payment' THEN 'Direct Payment' + CHAR(13) WHEN @From ='Credit' THEN 'Credit' + CHAR(13) WHEN @From ='Set off' THEN 'Set off' + CHAR(13) ELSE 'Payment Received From Tax Payer' + CHAR(13) END SET @Text1 = @Text1 + 'Amount:' + @Value + CHAR(13) + 'Tax:' + CONVERT(VARCHAR(100), @Principal) + CHAR(13) + 'Interest:' + CONVERT(VARCHAR(100), @interest ) SET @ActionCode ='O01' SET @Subject ='Payment received' END DECLARE @DisplaytextValue VARCHAR(220) SET @DisplaytextValue = [dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(CONVERT(VARCHAR(MAX), @Text1), ''), 200) INSERT INTO [dbo].[Diary] ([CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [DURATION], [ACTIONID], [ORGINALACTIONID], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [ADDRESSTO], [CCTo], [BCCTo], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo], [DisplayText], [Flag]) VALUES(@CASECODE, GETDATE(), 1, @ACTIONCODE, 'NA', 'A', 'I', @FNCODE, @TEAMCODE, @TEXT1 , @DebtDescription, null, null, null, null, GETDATE(), 'N', @TIMECONVERT, @TIMECONVERT, 0, @ACTIONID, @ACTIONID, 'N', null, null, null, 0, 0, 0, null, null, null, null, null, null, @Subject, 0, 0, 0, 0, null, 'Not Applicable', null, null, 0, @DisplaytextValue, 0) INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@ACTIONID, @FNCODE, @TEAMCODE, GETDATE(), @TIMECONVERT, null, @TIMECONVERT, GETDATE(), @TIMECONVERT, null, 1, 'Y', @FNCODE, 0, null, @FNCODE, null, 'Created') UPDATE [TIE] SET [TIE].[ActionID] = @ActionID FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @TimeEntryId END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SaveAssociateUDF' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SaveAssociateUDF] END GO CREATE PROCEDURE [dbo].[KAAS_SaveAssociateUDF] (@NAMECODE VARCHAR(20), @FILEPREFIX VARCHAR(100), @FIELDNAME VARCHAR(100), @Result INT OUTPUT) AS /************************************************************************************************************* * * * Stored Procedure Name : KAAS_SaveAssociateUDF * * Copied From : [dbo].[ky_NETSaveAssociateUDF] * * * * Adds a UDF to an associate * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.6.3.5 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2019-01-15 John Ginnane KEYD-5645 - Created * * 2019-02-05 Pino Carafa Added the Default Value * * 2019-02-06 Pino Carafa Cater for longer date formats * * 2019-02-07 Pino Carafa A blank default date should result in a NULL Datevalue, not 01 JAN 1900 * * * * 2019-07-27 Vinodhan K Created KAAS_SaveAssociateUDF * *************************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[AssociateUDF] AS AUD WHERE AUD.[NameCode] = @NAMECODE AND RTRIM(ISNULL(AUD.[FilePrefix], '')) = @FILEPREFIX AND RTRIM(ISNULL(AUD.[FieldName], '')) = @FIELDNAME) BEGIN DECLARE @INITIALVALUE VARCHAR(MAX) DECLARE @INITIALFORMAT VARCHAR(50) DECLARE @INITIALTYPE VARCHAR(11) DECLARE @INITIALNUMERICVALUE DECIMAL(20, 2) DECLARE @INITIALDATE DATETIME SELECT @INITIALVALUE = [SUF].[INITIALVALUE], @INITIALFORMAT = [SUF].[FORMAT], @INITIALTYPE = [SUF].[TYPE] FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] = 'AUD:' AND [SUF].[FIELDNAME] = @FIELDNAME IF @INITIALVALUE IS NOT NULL BEGIN IF (@INITIALTYPE = 'Numeric') OR (@INITIALFORMAT LIKE '@n%') BEGIN BEGIN TRY SET @INITIALNUMERICVALUE = CONVERT(DECIMAL(20, 2), CONVERT(MONEY, @INITIALVALUE)) END TRY BEGIN CATCH END CATCH END ELSE IF (@INITIALTYPE = 'Date') OR (@INITIALFORMAT LIKE '@d%') OR (@INITIALFORMAT LIKE '%DD%') OR (@INITIALFORMAT LIKE '%MM%') OR (@INITIALFORMAT LIKE '%YY%') BEGIN BEGIN TRY SET @INITIALVALUE = [dbo].[KAAS_FN_SUFFormat](@INITIALVALUE, @INITIALFORMAT) IF RTRIM(ISNULL(@INITIALVALUE, '')) <> '' BEGIN SET @INITIALDATE = CONVERT(DATETIME, [dbo].[KAAS_FN_SUFFormat](@INITIALVALUE, '@D8')) END END TRY BEGIN CATCH END CATCH END END SET @INITIALNUMERICVALUE = ISNULL(@INITIALNUMERICVALUE, 0) INSERT INTO [dbo].[AssociateUDF] ([NameCode], [FilePrefix], [FieldName], [TextValue], [DateValue], [NumberValue]) VALUES(RTRIM(@NAMECODE), @FILEPREFIX, RTRIM(@FIELDNAME), @INITIALVALUE, @INITIALDATE, @INITIALNUMERICVALUE) SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_SaveBankChangesLog]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_SaveBankChangesLog] GO CREATE PROCEDURE [KAAS_SaveBankChangesLog] (@Logon VARCHAR(20), @Table VARCHAR(20), @Code VARCHAR(20), @Description VARCHAR(500)) AS /******************************************************************************************************* Stored Procedure name : KAAS_SaveBankChangesLog Copied From : ky_NETSaveBankChangesLog This stored procedure is used to Insert the log of the changes made in Bank details of clients Modification History * * 2019-07-31 Vinodhan K Created KAAS_SaveBankChangesLog * *******************************************************************************************************/ BEGIN SET NOCOUNT ON INSERT INTO [dbo].EFTTableChangeLog ([Logon], [TableName], [Code], [Description], [Date]) VALUES(@Logon, @Table, @Code, @Description, GETDATE()) SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SaveDATHash' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SaveDATHash] END GO CREATE PROCEDURE [dbo].[KAAS_SaveDATHash] (@TrackReference INT, @HASH VARCHAR(32), @SENT VARCHAR(17)) AS /******************************************************************************************************* * Saves a Subject + Body "Hash" of an outlook message, so that the message can be retrieved even * * when Outlook fails to determine the Sender's SMTP Address from a .msg file * * * * Stored Procedure Name : [dbo].[KAAS_SaveDATHash] * * Copied from : [dbo].[ky_NETSPSaveDATHash] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN INSERT INTO [dbo].[MessageHashXRef] ([Hash], [Sent], [TrackReference]) VALUES(@HASH, @SENT, @TrackReference) END GO IF NOT((SELECT SERVERPROPERTY('Edition') AS [Edition]) = 'SQL Azure') BEGIN IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SaveDiaryAttachement' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SaveDiaryAttachement] END DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N'CREATE PROCEDURE [dbo].[KAAS_SaveDiaryAttachement] ( @FilePath VARCHAR(1000), @FileName VARCHAR(1000), @FileData VARBINARY(MAX), @Result INT OUTPUT ) AS /******************************************************************************************************* * To save the attachment to the physical path * * * * Stored Procedure Name : [dbo].[KAAS_SaveDiaryAttachement] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @FullPath NVARCHAR (2000); SET @FullPath = @FilePath + @FileName; DECLARE @Obj INT; SET NOCOUNT ON BEGIN TRY DECLARE @IsFolderExist AS INT DECLARE @FileResult TABLE ( IsFileExist INT, IsFileDirectory INT, IsParentDirectoryExist INT ) INSERT INTO @FileResult ( IsFileExist, IsFileDirectory, IsParentDirectoryExist ) EXECUTE XP_FILEEXIST @FilePath SELECT @IsFolderExist = IsFileDirectory FROM @FileResult --Script to create directory IF(@IsFolderExist = 0) BEGIN EXECUTE XP_CREATE_SUBDIR @FilePath INSERT INTO @FileResult ( IsFileExist, IsFileDirectory, IsParentDirectoryExist ) EXECUTE XP_FILEEXIST @FilePath SELECT @IsFolderExist = IsFileDirectory FROM @FileResult END IF(@IsFolderExist = 1) BEGIN EXEC SP_OACREATE ''ADODB.Stream'' ,@Obj OUTPUT; EXEC SP_OASETPROPERTY @Obj ,''Type'',1; EXEC SP_OAMETHOD @Obj,''Open''; EXEC SP_OAMETHOD @Obj,''Write'', NULL, @FileData; EXEC SP_OAMETHOD @Obj,''SaveToFile'', NULL, @FullPath, 2; EXEC SP_OAMETHOD @Obj,''Close''; EXEC SP_OADESTROY @Obj; SELECT @Result = 1; RETURN; END ELSE BEGIN SELECT @Result = 0; RETURN; END END TRY BEGIN CATCH EXEC SP_OADESTROY @Obj; SELECT @Result = 1; RETURN; END CATCH SET NOCOUNT OFF END' EXECUTE SP_EXECUTESQL @NCOMMAND END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SaveDocFolderTree' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SaveDocFolderTree] END GO CREATE PROCEDURE [dbo].[KAAS_SaveDocFolderTree] (@folderxml NVARCHAR(MAX)) AS /******************************************************************************************************* * Saves the changes to a folder tree * * * * Stored Procedure Name : [dbo].[KAAS_SaveDocFolderTree] * * Copied from : [dbo].[ky_NETSPSaveDocFolderTree] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @iSL INT DECLARE @MAX INT DECLARE @data TABLE ([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [id] INT NOT NULL, [parent] INT NOT NULL, [foldername] VARCHAR(500) NOT NULL, [foldericon] INT NOT NULL, [newfolder] BIT NOT NULL, [deletefolder] BIT NOT NULL) BEGIN TRY EXEC SP_XML_PREPAREDOCUMENT @iSL OUTPUT, @folderxml END TRY BEGIN CATCH EXEC SP_XML_PREPAREDOCUMENT @iSL OUTPUT, N'' END CATCH INSERT INTO @data ([id], [parent], [foldername], [foldericon], [newfolder], [deletefolder]) SELECT SRC.[id], SRC.[parent], SRC.[foldername], ISNULL(SRC.[foldericon], 1), SRC.[newfolder], SRC.[deletefolder] FROM OPENXML(@iSL, N'folders/folder') WITH ([id] INT '@id', [parent] INT '@parent', [foldername] VARCHAR(500) '@foldername', [foldericon] INT '@foldericon', [newfolder] BIT '@newfolder', [deletefolder] BIT '@deletefolder') SRC EXEC SP_XML_REMOVEDOCUMENT @iSL SELECT @MAX = ISNULL(MAX([DF].[id]), 0) FROM [dbo].[DocFolders] [DF] DECLARE @new TABLE ([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [oldid] INT NOT NULL UNIQUE NONCLUSTERED, [newid] INT NOT NULL) INSERT INTO @new ([oldid], [newid]) SELECT [DT].[id], 0 FROM @data [DT] WHERE [DT].[newfolder] = 1 UPDATE [nw] SET [nw].[newid] = @MAX + [nw].[seq] FROM @new [NW] SET IDENTITY_INSERT [dbo].[DocFolders] ON INSERT INTO [dbo].[DocFolders] ([id], [foldername], [parent], [foldericon]) SELECT [nw].[newid] AS [id], [dt].[foldername] AS [foldername], CASE ISNULL([pr].[newid], 0) WHEN 0 THEN CASE ISNULL([dt].[parent], 0) WHEN 0 THEN NULL ELSE [dt].[parent] END ELSE [pr].[newid] END AS [parent], [dt].[foldericon] FROM @data [dt] INNER JOIN @new [nw] ON [nw].[oldid] = [dt].[id] LEFT OUTER JOIN @new [pr] ON [pr].[oldid] = [dt].[parent] SET IDENTITY_INSERT [dbo].[DocFolders] OFF SELECT @MAX = ISNULL(MAX([DF].[id]), 0) + 1 FROM [dbo].[DocFolders] [DF] DBCC CHECKIDENT('DocFolders', RESEED, @MAX) DELETE [DF] FROM @data [dt] INNER JOIN [dbo].[DocFolders] [DF] ON [DF].[id] = [dt].[id] WHERE [dt].[deletefolder] = 1 UPDATE [DF] SET [DF].[foldername] = [dt].[foldername], [DF].[parent] = CASE ISNULL([dt].[parent], 0) WHEN 0 THEN NULL ELSE [dt].[parent] END, [DF].[foldericon] = [dt].[foldericon] FROM @data [dt] INNER JOIN [dbo].[DocFolders] [DF] ON [DF].[id] = [dt].[id] WHERE [dt].[deletefolder] = 0 AND [dt].[newfolder] = 0 DECLARE @newid INT SELECT TOP 1 @newid = ISNULL([nw].[newid], dt.[id]) FROM @data [dt] LEFT OUTER JOIN @new [nw] ON [nw].[oldid] = [dt].[id] SELECT @newid [id] RETURN @newid END GO IF OBJECT_ID(N'[KAAS_SaveRateChangesLog]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_SaveRateChangesLog] GO CREATE PROCEDURE [KAAS_SaveRateChangesLog] (@User VARCHAR(8), @Event VARCHAR(300), @FromWhere VARCHAR(100), @AffectedTo VARCHAR(50)) AS /******************************************************************************************************* * This stored procedure is used to log the rate changes. * * * * Stored Procedure Name : [dbo].[KAAS_SaveRateChangesLog] * * Copied from : [dbo].[ky_NETSaveRateChangesLog] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF @FromWhere = 'Maintain Tasks' BEGIN INSERT INTO RATECHANGESLOG ([USER], [EVENT], [FROMWHERE], [UPDATEDDATE], [AFFECTEDTO]) SELECT @USER, ITEM, @FROMWHERE, GETDATE(), @AffectedTo FROM DBO.KAAS_FN_SPLITSTRING(@EVENT,',') END ELSE BEGIN INSERT INTO RateChangesLog ([User], [Event], [FromWhere], [UpdatedDate], [AffectedTo]) VALUES (@User, @Event, @FromWhere, GETDATE(), @AffectedTo) END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_ScalarXMLDiaryDelegation',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_ScalarXMLDiaryDelegation] GO CREATE PROCEDURE [dbo].[KAAS_ScalarXMLDiaryDelegation] (@DEL VARCHAR(MAX)) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_ScalarXMLDiaryDelegation] * * Copied from : [dbo].[ky_NETSPScalarXMLDiaryDelegation] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2020-12-03 John Ginnane KEYD-6881 - Default to action's original date if none was specified * * 2021-11-10 Aakif Updated stored procedure as per framework * *******************************************************************************************************/ BEGIN /* example */ DECLARE @ACTIONID INT DECLARE @HANDLER VARCHAR(10) DECLARE @TEAM VARCHAR(10) DECLARE @DATE DATETIME DECLARE @TIME DATETIME DECLARE @DATER DATETIME DECLARE @TIMER DATETIME DECLARE @DUEDATE DATETIME DECLARE @DUETIME DATETIME DECLARE @REVIEW VARCHAR(1) DECLARE @STATUS SMALLINT DECLARE @OWNER VARCHAR(1) DECLARE @DELEGATE VARCHAR(10) DECLARE @DELEGATESTATUS SMALLINT DECLARE @ActionType VARCHAR(1) DECLARE @FromHandler VARCHAR(10) DECLARE @ReturnedBy VARCHAR(10) DECLARE @DelType VARCHAR(15) DECLARE @CRRUSER VARCHAR(10) DECLARE @CURRENTOWNER VARCHAR(10) DECLARE @DIARYSTATUS INT DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @DEL END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @ActionID = [DEL].[ACTIONID], @Handler = [DEL].[HANDLER], @Team = [DEL].[TEAM], @Date = [DEL].[DATE], @Time = [DEL].[TIME], @Dater = [DEL].[DATER], @Timer = [DEL].[TIMER], @DueDate = ISNULL([DEL].[DUEDATE], [DIA].[DUEDATE]), @DueTime = ISNULL([DEL].[DUETIME], [DIA].[DUEDATE]), @Review = CASE [DEL].[REVIEW] WHEN NULL THEN NULL WHEN 'N' THEN 'N' WHEN '' THEN '' WHEN ' ' THEN '' WHEN 'Y' THEN 'Y' ELSE NULL END, @Status = ISNULL([DEL].[STATUS], 0), @Owner = CASE WHEN ISNULL([DEL].[OWNER], 'N') = 'Y' THEN 'Y' ELSE 'N' END, @Delegate = [DEL].[DELEGATE], @DelegateStatus = CASE ISNULL([DEL].[DELEGATESTATUS], 0) WHEN 1 THEN 1 WHEN 2 THEN 2 ELSE 0 END, @ActionType = ISNULL([DEL].[ACTIONTYPE], [DIA].[ACTIONTYPE]), @FromHandler = ISNULL(ISNULL([DEL].[FROMHANDLER], CDL.[HANDLER]), [DIA].[FNCODE]), @ReturnedBy = [DEL].[RETURNEDBY], @DelType = CASE WHEN [DEL].[DELTYPE] IS NULL THEN NULL WHEN [DEL].[DELTYPE] = 'Completed' THEN 'Completed' WHEN [DEL].[DELTYPE] = 'Created' THEN 'Created' WHEN [DEL].[DELTYPE] = 'Delegated' THEN 'Delegated' WHEN [DEL].[DELTYPE] = 'Processed' THEN 'Processed' WHEN [DEL].[DELTYPE] = 'Released' THEN 'Released' WHEN [DEL].[DELTYPE] = 'Returned' THEN 'Returned' ELSE 'Delegated' END, @CRRUSER = [DEL].[CRRUSER], @CURRENTOWNER = ISNULL([CDL].[HANDLER], ''), @DIARYSTATUS = CASE WHEN ISNULL([DIA].[STATUS], 0) = 1 THEN 1 ELSE 0 END FROM OPENXML(@iSL, N'del') WITH ([ACTIONID] INT '@actionid', [HANDLER] VARCHAR(10) '@handler', [TEAM] VARCHAR(10) '@team', [DATE] DATETIME '@date', [TIME] DATETIME '@time', [DATER] DATETIME '@dater', [TIMER] DATETIME '@timer', [DUEDATE] DATETIME '@duedate', [DUETIME] DATETIME '@duetime', [REVIEW] VARCHAR(1) '@review', [STATUS] SMALLINT '@status', [OWNER] VARCHAR(1) '@owner', [DELEGATE] VARCHAR(10) '@delegate', [DELEGATESTATUS] SMALLINT '@delegatestatus', [ACTIONTYPE] VARCHAR(1) '@actiontype', [FROMHANDLER] VARCHAR(10) '@fromhandler', [RETURNEDBY] VARCHAR(10) '@returnedby', [DELTYPE] VARCHAR(15) '@deltype', [CRRUSER] VARCHAR(15) '@crruser') [DEL] INNER JOIN [dbo].[diary] [DIA] LEFT OUTER JOIN [dbo].[DiaryDelegations] [CDL] ON [CDL].[ACTIONID] = [DIA].[ACTIONID] AND [CDL].[OWNER] = 'Y' ON [DIA].[ACTIONID] = [DEL].[ACTIONID] EXEC sp_xml_removedocument @iSL DECLARE @AssignNo INT DECLARE @TIMECONVERSION VARCHAR(10) DECLARE @TIMERCONVERSION VARCHAR(10) DECLARE @DUETIMECONVERSION VARCHAR(10) IF @ACTIONID IS NULL BEGIN RETURN -1 -- requested action not found. END /* KEYD-6881 - Default to action's original date if none was specified */ SELECT @DATE = ISNULL(@DATE, [DIA].[DATE]) FROM [dbo].[diary] AS [DIA] WHERE [DIA].[ACTIONID] = @ACTIONID SET @TIME = ISNULL(@TIME, @DATE) SET @DUEDATE = ISNULL(@DUEDATE, GETUTCDATE()) SET @DUETIME = ISNULL(@DUETIME, @DUEDATE) SET @ActionType = ISNULL(@ActionType, 'A') SET @FromHandler = ISNULL(@FromHandler, 'ADM') IF @DelType = 'Returned' BEGIN SET @ReturnedBy = ISNULL(@ReturnedBy, @Handler) END SET @CRRUSER = ISNULL(@CRRUSER, @FromHandler) SET @status = CASE WHEN ISNULL(@status, 0) = 1 THEN 1 ELSE 0 END SET @DELEGATE = ISNULL(@DELEGATE, @HANDLER) SET @DELEGATESTATUS = ISNULL(@DELEGATESTATUS, 0) SELECT @Team = ISNULL(@Team, HAN.[TEAM]) FROM [dbo].[Handlers] HAN WHERE HAN.[CODE] = @Handler IF NOT @TIME IS NULL BEGIN SET @TIMECONVERSION = dbo.ky_ConvertTimeToClarion(@TIME) END IF NOT @TIMER IS NULL BEGIN SET @TIMERCONVERSION = dbo.ky_ConvertTimeToClarion(@TIMER) END IF NOT @DUETIME IS NULL BEGIN SET @DUETIMECONVERSION = dbo.ky_ConvertTimeToClarion(@DUETIME) END DECLARE @DATER1 DATETIME SET @DATER1 = GETUTCDATE() DECLARE @TIMER1 VARCHAR(20) SET @TIMER1 = dbo.ky_ConvertTimeToClarion(GETUTCDATE()) SELECT @AssignNo = ISNULL(MAX([DEL].[AssignNo] + 1),1) FROM [dbo].[DiaryDelegations] [DEL] -- Check whether authorised to Delegate or Release IF @DelType IN ('Delegated', 'Released') BEGIN IF ISNULL(@CRRUSER, '') <> @CURRENTOWNER BEGIN RETURN -2 --Not Authorised END END -- Things to do BEFORE inserting the delegation record IF ISNULL(@CRRUSER, '') = @CURRENTOWNER BEGIN IF @DIARYSTATUS = 0 BEGIN IF @DelType = 'Released' BEGIN UPDATE [DEL] SET [DEL].[DATER] = @DATER1, [DEL].[TIMER] = @TIMER1, [DEL].[STATUS] = 1, [DEL].[OWNER] = 'N', [DEL].[DELEGATESTATUS] = 1 FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID AND [DEL].[OWNER] = 'Y' END END END --KEYD-3961 - In case a user creates an action and then delegates it twice to the same user, -- the following statement will stop it showing the same task twice as "outstanding" -- in that user's task list. Please note: it will NOT prevent the user seeing the -- same task twice if they choose to look at "completed" actions. UPDATE [DEL] SET [DEL].[STATUS] = 1 FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID AND [DEL].[HANDLER] = @HANDLER AND ISNULL([DEL].[OWNER], 'N') <> 'Y' DECLARE @NEWDATE AS DATETIME SELECT @NEWDATE= [DATE] FROM Diary WHERE ACTIONID=@ACTIONID -- the actual insert itself INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@ACTIONID, @HANDLER, @TEAM, ISNULL(@NEWDATE,@DATE), @TIMECONVERSION, @DATER, @TIMERCONVERSION, @DUEDATE, @DUETIMECONVERSION, @REVIEW, @STATUS, @OWNER, @DELEGATE, @DELEGATESTATUS, @ACTIONTYPE, @FROMHANDLER, @RETURNEDBY, @DELTYPE) -- Things to do AFTER inserting the delegation record IF @DelType = 'Created' BEGIN -- no other changes required. RETURN 0 END IF @DelType = 'Delegated' BEGIN UPDATE [DIA] SET [DIA].[DELEGATEDFNR] = @HANDLER, [DIA].[DELEGATEDDATE] = @DATER, [DIA].[DELEGATIONSTATUS] = 1 FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ACTIONID RETURN 0 END IF @DelType <> 'Released' BEGIN RETURN -3 --Unknown request END --Released a completed action IF @DIARYSTATUS = 1 BEGIN UPDATE [DEL] SET [DEL].[STATUS] = 1, [DEL].[DELEGATESTATUS] = 1 FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID AND [DEL].[DelType] = 'Released' UPDATE [DEL] SET [DEL].[STATUS] = 0, [DEL].[DELEGATESTATUS] = 0 FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID AND [DEL].[DelType] = 'Created' UPDATE [DIA] SET [DIA].[DATE] = @DATE, [DIA].[FNCODE] = @HANDLER, [DIA].[DELEGATEDFNR] = @HANDLER, [DIA].[DELEGATEDDATE] = @DATER1 FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ACTIONID RETURN 0 END --Released an open action UPDATE [DIA] SET [DIA].[DATE] = @DATE, [DIA].[FNCODE] = @HANDLER, [DIA].[DELEGATEDFNR] = @HANDLER, [DIA].[DELEGATIONSTATUS] = 0 FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ACTIONID UPDATE [DEL] SET [DEL].[DELEGATE] = @HANDLER FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID AND [DEL].[OWNER] = 'Y' RETURN 0 END GO IF OBJECT_ID(N'KAAS_SearchCaseDocument',N'P') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_SearchCaseDocument] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[KAAS_SearchCaseDocument] ( @function VARCHAR(20), @ID INT, @CaseCode VARCHAR(20)='' OUT ) AS /******************************************************************************************************************************** * * Stored Procedure Name : [dbo].[KAAS_SearchCaseDocument] * Copied from : [dbo].[Ky_NETSearchCaseDocument] * * This stored procedure is used to get case based on track reference or action id * * Modification History * 2015-02-12 Arun- Change NVARCHAR to VARCHAR * 2019-10-01 Ganapathy T Created * ********************************************************************************************************************************/ BEGIN IF @function ='Document' BEGIN SELECT @casecode=ISNULL(RTRIM(diary.CASECODE),'') FROM diary inner join DiaryAttachments ON diary.ACTIONID =DiaryAttachments.DIARYID WHERE TRACKREFERENCE=@ID END ELSE IF @function='Case' BEGIN SELECT @CaseCode=ISNULL(RTRIM(CASECODE),'') FROM diary WHERE ACTIONID =@ID END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SelectCaseAssociateForDocGen' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SelectCaseAssociateForDocGen] END GO CREATE PROCEDURE [dbo].[KAAS_SelectCaseAssociateForDocGen] (@CaseCode VARCHAR(20), @ConType VARCHAR(500), @IsMultipleContact BIT = 1, @SearchText VARCHAR(4000) = NULL, @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /******************************************************************************************************* * Presents a list of Case Associates of a certain Type to choose from. * * * * Stored Procedure Name : [dbo].[KAAS_SelectCaseAssociateForDocGen] * * Copied From : ky_NETSPSelectCaseAssociateForDocGen * * * * Modification History * * 2016-10-13 Pino Carafa Created * * 2016-10-24 Pino Carafa Added Name Code * * 2019-05-01 Pino Carafa Added code to handle 'all' con type * * 2019-03-05 Vinodhan This is modifed to fetch case contact based on multiple contact types * * 2019-17-05 Vinodhan Added sorting, paging and search functionality * * 2021-06-09 Sadiq Handled Inproper values like Empty code and Empty Name in Case Associates Tables * *******************************************************************************************************/ BEGIN DECLARE @NCOMMAND NVARCHAR(MAX) IF(@IsMultipleContact = 1) BEGIN SET @NCOMMAND = ' SELECT [CONTYPE], [CONNUM] FROM [CaseContacts] [CAC] WHERE [CASECODE] = ''' + @CaseCode + ''' AND [CONTYPE] IN (' + @ConType + ')' EXECUTE SP_EXECUTESQL @NCOMMAND END ELSE BEGIN DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(ISNULL(@SortDirection, '') = '' OR RTRIM(LTRIM(@SortDirection)) = '') BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT RTRIM([CAC].[CASECODE]) AS [CASECODE], RTRIM([CAC].[NAMECODE]) AS [NAMECODE], RTRIM([CAC].[CONTYPE]) AS [CONTYPE], [CAC].[CONNUM] AS [Seq], RTRIM(ISNULL([CAN].[NAME], '')) AS [NAME], RTRIM(ISNULL([CAN].[COMPANY], '')) AS [Company], [dbo].[ky_RemoveSpuriousWhitespace2]([CAN].[ADDRESS], 200) AS [Address], RTRIM(ISNULL([AT].[Description], [CAC].[CONTYPE])) AS [Type] FROM [dbo].[CaseContacts] [CAC] INNER JOIN [dbo].[CaseAssociatesNames] [CAN] ON [CAN].[CODE] = [CAC].[NAMECODE] AND RTRIM(ISNULL([CAN].[NAME], '')) !='' AND RTRIM(ISNULL([CAN].[CODE], '')) !='' LEFT OUTER JOIN [dbo].[AssociateTypes] [AT] ON [AT].[CODE] = [CAC].[CONTYPE] WHERE [CAC].[CASECODE] = @CaseCode AND CASE WHEN @CONTYPE = 'all' THEN 0 WHEN [CAC].[CONTYPE] = @ConType THEN 0 ELSE 1 END = 0 AND ( (RTRIM(LTRIM(ISNULL(@SearchText, ''''))) = '''') OR (RTRIM(LTRIM(@SearchText)) = '''') OR ( [CASECODE] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [NAMECODE] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [CONTYPE] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [CONNUM] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [NAME] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [COMPANY] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [Address] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [Type] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' ) )) AS [FoundTable] ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CASECODE' THEN [CASECODE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CASECODE' THEN [CASECODE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'NAMECODE' THEN [NAMECODE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'NAMECODE' THEN [NAMECODE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'CONTYPE' THEN [CONTYPE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'CONTYPE' THEN [CONTYPE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Seq' THEN [Seq] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Seq' THEN [Seq] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'NAME' THEN [NAME] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'NAME' THEN [NAME] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Company' THEN [Company] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Company' THEN [Company] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Type' THEN [Type] END END DESC SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecord] FROM #FoundTable END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SelectClientContactForDocGen' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SelectClientContactForDocGen] END GO CREATE PROCEDURE [dbo].[KAAS_SelectClientContactForDocGen] (@MATTERCODE VARCHAR(20), @SearchText VARCHAR(4000) = NULL, @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /********************************************************************************************* * * * Presents a list of Client Contacts to choose from. * * * * Stored procedure name : KAAS_SelectClientContactForDocGen * * Copied from : [dbo].[ky_NETSPSelectClientContactForDocGen] * * * * Modification History * * 2016-10-13 Pino Carafa Created * * 2016-10-14 Pino Carafa Use Matter code instead of Client Code * * 2016-10-25 Pino Carafa Get Full record * * 2019-01-06 Vinodhan Created KAAS_SelectClientContactForDocGen * * 2020-03-13 Vinodhan Implemented paging, search and sorting functionality * * * *********************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @StartRow INT; DECLARE @EndRow INT; SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(ISNULL(@SortDirection, '') = '' OR RTRIM(LTRIM(@SortDirection)) = '') BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(INT, 1,1) AS [Row_Number], * INTO #FoundTable FROM (SELECT RTRIM([CC].[CLCODE]) AS [ClientCode], [CC].[CLNUMCONTACT] AS [No], RTRIM(ISNULL([CC].[FIRSTNAME], '')) AS [FirstName], RTRIM(ISNULL([CC].[SURNAME], '')) AS [Surname], [dbo].[ky_RemoveSpuriousWhitespace2]([CC].[ADDRESS], 200) AS [Address], RTRIM(ISNULL([CC].[WorkPhone], '')) AS [WorkPhone], RTRIM(ISNULL([CC].[CLINITS], '')) AS [Initials], RTRIM(ISNULL([CC].[CLTITLE], '')) AS [Title], RTRIM(ISNULL([CC].[CLNAMECON], '')) AS [FullName], RTRIM(ISNULL([CC].[CLSALUTE], '')) AS [Salutation], RTRIM(ISNULL([CC].[CLSSNUMBER], '')) AS [SSNumber], RTRIM(ISNULL([CC].[ADDRESS], '')) AS [FullAddress], RTRIM(ISNULL([CC].[HomePhone], '')) AS [HomePhone], RTRIM(ISNULL([CC].[Mobile], '')) AS [Mobile], RTRIM(ISNULL([CC].[EmailAddress], '')) AS [EmailAddress], RTRIM(ISNULL([CC].[PPSNo], '')) AS [PPSNo], [CC].[Dob] AS [Dob], [CC].[MarrigeDate] AS [MarriageDate], RTRIM(ISNULL([CC].[Occupation], '')) AS [Occupation], [CC].[DateofDeath] AS [DateOfDeath], RTRIM(ISNULL([CC].[MartialStatus], '')) AS [MaritalStatus], RTRIM(ISNULL([CC].[Marketing], '')) AS [Marketing], RTRIM(ISNULL([CC].[County], '')) AS [County], RTRIM(ISNULL([CC].[PostalCode], '')) AS [PostalCode], RTRIM(ISNULL([CC].[FaxNumber], '')) AS [FaxNumber], RTRIM(ISNULL([CC].[BankName], '')) AS [BankName], RTRIM(ISNULL([CC].[BankAddress], '')) AS [BankAddress], RTRIM(ISNULL([CC].[BankSortCode], '')) AS [BankSortCode], RTRIM(ISNULL([CC].[BankAccNo], '')) AS [BankAccNo], RTRIM(ISNULL([CC].[IBAN], '')) AS [IBAN], RTRIM(ISNULL([CC].[BIC], '')) AS [BIC] FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[ClientContacts] [CC] ON [CC].[CLCODE] = [MAT].[ClientCode] WHERE [MAT].[CODE] = @MATTERCODE AND ( (RTRIM(LTRIM(ISNULL(@SearchText, ''''))) = '''') OR (RTRIM(LTRIM(@SearchText)) = '''') OR ( [CC].[CLNAMECON] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [FirstName] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [FirstName] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [Surname] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [WorkPhone] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' OR [Address] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%' ) )) AS [FoundTable] ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'FullName' THEN [FullName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'FullName' THEN [FullName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'FirstName' THEN [FirstName] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'FirstName' THEN [FirstName] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Surname' THEN [Surname] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Surname' THEN [Surname] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'WorkPhone' THEN [WorkPhone] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'WorkPhone' THEN [WorkPhone] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Address' THEN [Address] END END DESC SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number])) AS [TotalRecord] FROM #FoundTable END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_SelectContacts' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SelectContacts] END GO CREATE PROCEDURE [dbo].[KAAS_SelectContacts] (@XMLCriteria NVARCHAR(MAX)) AS /******************************************************************************************************* * Presents a list of Contacts to choose FROM. Calling code can choose how to sort and filter the data. * * * * Stored Procedure Name : [dbo].[KAAS_SelectContacts] * * Copied from : [dbo].[ky_NETSPSelectContacts] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @iSL INT DECLARE @handler VARCHAR(10) DECLARE @code VARCHAR(10) DECLARE @sortby VARCHAR(50) DECLARE @sortorder VARCHAR(4) DECLARE @search VARCHAR(500) DECLARE @maxresult INT DECLARE @ZZ VARCHAR(20) SET @ZZ = 'ZZZZZZZZZZZZZZZZZZZZ' BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XMLCriteria END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @handler = RTRIM(ISNULL([XML].[handler], '')), @code = RTRIM(ISNULL([XML].[code], '')), @sortby = CASE [XML].[sortby] WHEN 'Code' THEN 'Code' WHEN 'Name' THEN 'Name' WHEN 'Address' THEN 'Address' WHEN 'OtherAddress' THEN 'OtherAddress' WHEN 'PhoneNo' THEN 'PhoneNo' WHEN 'FaxNo' THEN 'FaxNo' WHEN 'Salut' THEN 'Salut' WHEN 'email' THEN 'email' WHEN 'Approved' THEN 'Approved' WHEN 'ChargeOutRateInd' THEN 'ChargeOutRateInd' WHEN 'BillingMatter' THEN 'BillingMatter' WHEN 'LastAccessed' THEN 'LastAccessed' ELSE '' END, @sortorder = CASE RTRIM(ISNULL([XML].[sortorder], '')) WHEN 'DESC' THEN 'DESC' ELSE 'ASC' END, @search = RTRIM(ISNULL([XML].[search], '')), @maxresult = ISNULL([XML].[maxresult], 2000) FROM OPENXML(@iSL, N'search') WITH ([handler] VARCHAR(10) '@handler', [code] VARCHAR(10) '@code', [sortby] VARCHAR(50) '@sortby', [sortorder] VARCHAR(4) '@sortorder', [search] VARCHAR(max) '@search', [maxresult] INT '@maxresult') [XML] EXEC sp_xml_removedocument @iSL DECLARE @done BIT SET @done = 0 WHILE @done = 0 IF @search = '' BEGIN SET @done = 1 end ELSE BEGIN IF SUBSTRING(@search, 1, 1) = '%' BEGIN SET @search = SUBSTRING(@search, 2, LEN(@search) - 1) END ELSE IF SUBSTRING(@search, LEN(@search), 1) = '%' BEGIN SET @search = SUBSTRING(@search, 1, LEN(@search) - 1) END ELSE BEGIN SET @done = 1 END END SET @code = RTRIM(ISNULL(@code, '')) SET @sortby = ISNULL(@sortby, '') SELECT @sortorder = CASE WHEN @code <> '' THEN '' WHEN @sortby = '' THEN '' ELSE @sortorder END, @search = CASE WHEN @code <> '' THEN '' WHEN @search = '' THEN '' WHEN SUBSTRING(@search, 1, 1) <> '%' AND SUBSTRING(@search, LEN(@search), 1) <> '%' THEN '%' + @search + '%' WHEN SUBSTRING(@search, 1, 1) = '%' AND SUBSTRING(@search, LEN(@search), 1) <> '%' THEN @search + '%' WHEN SUBSTRING(@search, 1, 1) <> '%' AND SUBSTRING(@search, LEN(@search), 1) = '%' THEN '%' + @search ELSE @search END IF (@sortby = '') BEGIN SET @sortby = 'LastAccessed' SET @sortorder = 'DESC' END DECLARE @BitWiseID BIGINT DECLARE @RecentClientList TABLE ([ClientCode] VARCHAR(10) NOT NULL PRIMARY KEY, [LastAccessed] DATETIME NOT NULL UNIQUE NONCLUSTERED ([LastAccessed], [ClientCode])) DECLARE @ClientList TABLE ([id] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [ClientCode] VARCHAR(10) NOT NULL UNIQUE NONCLUSTERED ([ClientCode], [id]), [LastAccessed] DATETIME NULL UNIQUE NONCLUSTERED ([LastAccessed], [ClientCode])) SELECT @BitWiseID = HNG.[BitWiseID] FROM HandlerNETGroupMembership HNG WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@handler, '')))) IF (@handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END INSERT INTO @RecentClientList ([ClientCode], [LastAccessed]) SELECT [SM].[ClientCode] AS [ClientCode], MAX([RML].[DateField]) AS [LastAccessed] FROM [dbo].[RecentMatterList] [RML] INNER JOIN [dbo].[SearchMatters] [SM] ON [SM].[Code] = [RML].[MATTER] AND CASE @BitWiseID WHEN 0 THEN CASE [SM].[Privileges] WHEN 0 THEN 1 WHEN -1 THEN 1 ELSE 0 END ELSE CASE @BitWiseID & [SM].[Privileges] WHEN 0 THEN 0 ELSE 1 END END = 1 WHERE [RML].[FEE] = @handler GROUP BY [SM].[ClientCode] OPTION (KEEPFIXED PLAN) INSERT INTO @ClientList ([ClientCode], [LastAccessed]) SELECT TOP (@maxresult) RTRIM(ISNULL([CTC].[Code], '')) AS [Code], [RML].[LastAccessed] AS [LastAccessed] FROM [dbo].[Contacts] [CTC] LEFT OUTER JOIN @RecentClientList [RML] ON [RML].[ClientCode] = [CTC].[Code] WHERE CASE WHEN @code <> '' THEN CASE WHEN @code = [CTC].[Code] THEN 1 ELSE 0 END WHEN @search = '' THEN 1 WHEN [CTC].[Name] LIKE @search THEN 1 WHEN [CTC].[Address] LIKE @search THEN 1 WHEN [CTC].[OtherAddress] LIKE @search THEN 1 WHEN [CTC].[email] LIKE @search THEN 1 WHEN [CTC].[Tel] LIKE @search THEN 1 WHEN [CTC].[Fax] LIKE @search THEN 1 WHEN [CTC].[Code] LIKE @search THEN 1 WHEN [CTC].[CompMatter] LIKE @search THEN 1 ELSE 0 END = 1 ORDER BY CASE WHEN @sortorder = 'ASC' THEN CASE WHEN @sortby = 'Code' THEN RTRIM(ISNULL([CTC].[Code], '')) WHEN @sortby = 'LastAccessed' THEN CASE WHEN [RML].[LastAccessed] IS NULL THEN @ZZ ELSE CONVERT(VARCHAR, [RML].[LastAccessed], 112) + CONVERT(VARCHAR, [RML].[LastAccessed], 108) END WHEN @sortby = 'Name' THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = '' THEN @ZZ ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) END WHEN @sortby = 'Address' THEN CASE WHEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) = '' THEN @ZZ ELSE [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) END WHEN @sortby = 'OtherAddress' THEN CASE WHEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) = '' THEN @ZZ ELSE [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) END WHEN @sortby = 'PhoneNo' THEN CASE WHEN [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) = '' THEN @ZZ ELSE [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) END WHEN @sortby = 'FaxNo' THEN CASE WHEN [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) = '' THEN @ZZ ELSE [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) END WHEN @sortby = 'Salut' THEN CASE WHEN RTRIM(ISNULL([CTC].[Salut], '')) = '' THEN @ZZ ELSE RTRIM(ISNULL([CTC].[Salut], '')) END WHEN @sortby = 'email' THEN CASE WHEN RTRIM(ISNULL([CTC].[email], '')) = '' THEN @ZZ ELSE RTRIM(ISNULL([CTC].[email], '')) END WHEN @sortby = 'ChargeOutRateInd' THEN CASE WHEN RTRIM(ISNULL([CTC].[ChargeOutRateInd], '')) = 'Y' THEN 'Y' ELSE 'N' END WHEN @sortby = 'Approved' THEN CASE WHEN ISNULL([CTC].[Approved], 0) = 1 THEN '1' ELSE '0' END WHEN @sortby = 'BillingMatter' THEN CASE WHEN RTRIM(ISNULL([CTC].[CompMatter], '')) = '' THEN @ZZ ELSE RTRIM(ISNULL([CTC].[CompMatter], '')) END ELSE '' END ELSE '' END ASC, CASE WHEN @sortorder = 'ASC' THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = '' THEN @ZZ ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) END ELSE '' END ASC, CASE WHEN @sortorder = 'DESC' THEN CASE WHEN @sortby = 'Code' THEN RTRIM(ISNULL([CTC].[Code], '')) WHEN @sortby = 'LastAccessed' THEN CASE WHEN [RML].[LastAccessed] IS NULL THEN '' ELSE CONVERT(VARCHAR, [RML].[LastAccessed], 112) + CONVERT(VARCHAR, [RML].[LastAccessed], 108) END WHEN @sortby = 'Name' THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = '' THEN '' ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) END WHEN @sortby = 'Address' THEN CASE WHEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) = '' THEN '' ELSE [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) END WHEN @sortby = 'OtherAddress' THEN CASE WHEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) = '' THEN '' ELSE [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) END WHEN @sortby = 'PhoneNo' THEN CASE WHEN [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) = '' THEN '' ELSE [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) END WHEN @sortby = 'FaxNo' THEN CASE WHEN [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) = '' THEN '' ELSE [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) END WHEN @sortby = 'Salut' THEN CASE WHEN RTRIM(ISNULL([CTC].[Salut], '')) = '' THEN '' ELSE RTRIM(ISNULL([CTC].[Salut], '')) END WHEN @sortby = 'email' THEN CASE WHEN RTRIM(ISNULL([CTC].[email], '')) = '' THEN '' ELSE RTRIM(ISNULL([CTC].[email], '')) END WHEN @sortby = 'ChargeOutRateInd' THEN CASE WHEN RTRIM(ISNULL([CTC].[ChargeOutRateInd], '')) = 'Y' THEN 'Y' ELSE 'N' END WHEN @sortby = 'Approved' THEN CASE WHEN ISNULL([CTC].[Approved], 0) = 1 THEN '1' ELSE '0' END WHEN @sortby = 'BillingMatter' THEN CASE WHEN RTRIM(ISNULL([CTC].[CompMatter], '')) = '' THEN '' ELSE RTRIM(ISNULL([CTC].[CompMatter], '')) END ELSE '' END ELSE '' END DESC, CASE WHEN @sortorder = 'DESC' THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = '' THEN @ZZ ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) END ELSE '' END ASC SELECT [CL].[id] AS [id], RTRIM(ISNULL([CTC].[Code], '')) AS [Code], RTRIM(ISNULL([CTC].[Name], '')) AS [Name], [CL].[LastAccessed] AS [LastAccessed], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) AS [Address], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) AS [OtherAddress], [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) AS [PhoneNo], [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) AS [FaxNo], RTRIM(ISNULL([CTC].[Salut], '')) AS [Salut], RTRIM(ISNULL([CTC].[email], '')) AS [email], CASE WHEN ISNULL([CTC].[Approved], 0) = 1 THEN 1 ELSE 0 END AS [Approved], CASE WHEN RTRIM(ISNULL([CTC].[ChargeOutRateInd], '')) = 'Y' THEN 'Y' ELSE 'N' END AS [ChargeOutRateInd], [CTC].[CompMatter] AS [BillingMatter] FROM @ClientList [CL] INNER JOIN [dbo].[Contacts] [CTC] ON [CTC].[Code] = [CL].[ClientCode] ORDER BY [CL].[id] OPTION (KEEPFIXED PLAN) SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SetActionGenerated' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetActionGenerated] END GO CREATE PROCEDURE [dbo].[KAAS_SetActionGenerated] (@ActionID INT) AS /****************************************************************************** * * * Flag an action as "Generated" so it displays the correct icon. * * * * Stored Procedure name : KAAS_SetActionGenerated * * Copied from : [dbo].[ky_NETSPSetActionGenerated] * * * * Modification History * * 2016-11-08 Pino Carafa Created * * 2019-12-26 Vinodhan Created KAAS_SetActionGenerated * * * ******************************************************************************/ BEGIN UPDATE [DIA] SET [DIA].[WORKPROCESS] = 1 FROM [dbo].[diary] [DIA] WHERE [DIA].[ActionID] = @ActionID END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_SetAlarm' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetAlarm] END GO CREATE PROCEDURE [dbo].[KAAS_SetAlarm] ( @Id VARCHAR(38), @HandlerCode VARCHAR(10), @MatterRef VARCHAR(20), @LinkID VARCHAR(50), @AlarmDate DATETIME, @Title NVARCHAR(255), @Message NVARCHAR(max), @TypeDesc NVARCHAR(100)) AS /******************************************************************************************************* * Set Keyhouse Risk Management Alarm * * * * Stored Procedure Name : [dbo].[KAAS_SetAlarm] * * Copied from : [dbo].[ky_SetAlarm] * * * * Modification History : * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @AlarmType INT DECLARE @NewID VARCHAR(38) SET @NewID = CONVERT(VARCHAR(38), NEWID()) SELECT @AlarmType = ISNULL(ALT1.[TypeID], ALT2.[TypeID]) FROM AlarmTypes ALT2 LEFT OUTER JOIN AlarmTypes ALT1 ON ALT1.[Description] = @TypeDesc WHERE ALT2.[Description] = N'Generic Alarm' SET @AlarmType = ISNULL(@AlarmType, 0) IF @Id = '' BEGIN IF @AlarmType <> 0 BEGIN INSERT INTO [dbo].[Alarms] ([ID], [HandlerCode], [MatterRef], [LinkID], [OriginalDate], [DeferredDate], [Title], [Message], [Type], [Status]) SELECT @NewID, @HandlerCode, @MatterRef, ISNULL(@LinkID, ''), @AlarmDate, @AlarmDate, @Title, @Message, @AlarmType, ALS.[StatusID] FROM [dbo].[AlarmStatus] ALS WHERE ALS.[Description] = N'Attention' END END ELSE BEGIN UPDATE ALM SET ALM.[HandlerCode] = @HandlerCode, ALM.[DeferredDate] = @AlarmDate, ALM.[Title] = @Title, ALM.[Message] = @Message, ALM.[MatterRef] = @MatterRef, ALM.[Type] = CASE WHEN ALM.[Type] = 4 THEN ALM.[Type] ELSE @AlarmType END FROM [dbo].[Alarms] ALM WHERE ALM.[ID] = @ID END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_SetAlarmStatus' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetAlarmStatus] END GO CREATE PROCEDURE [dbo].[KAAS_SetAlarmStatus] (@AlarmID VARCHAR(38), @Status NVARCHAR(100)) AS /*********************************************************************************** * * [dbo].[KAAS_SetAlarmStatus] * * Changes Alarm Status * * Modification History * 2015-07-09 Pino Carafa Imported into .NET from hardcoded WinDev query * * Copied from * 2020-07-30 Kowshik copied from [dbo].[ky_NETSPSetAlarmStatus] ***********************************************************************************/ BEGIN SET @Status = CASE WHEN @Status = N'Dismiss' THEN N'Active' WHEN @Status = N'Action' THEN N'Actioned' WHEN @Status = N'Disable' THEN N'Disabled' WHEN @Status = N'Hold' THEN N'On hold' ELSE @Status END UPDATE ALM SET ALM.[Status] = ALS.[StatusID] FROM [dbo].[Alarms] ALM INNER JOIN [dbo].[AlarmStatus] ALS ON ALS.[Description] = @Status WHERE ALM.[ID] = @AlarmID END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SetBillDiaryItemText' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetBillDiaryItemText] END GO CREATE PROCEDURE [dbo].[KAAS_SetBillDiaryItemText] (@ActionID INT, @BillHeaderBillNo INT, @BillType CHAR(1)) AS /****************************************************************************************************** * Set the Action Text prior to completion * * * * Stored Procedure Name : [dbo].[KAAS_SetBillDiaryItemText] * * * * Copied From : [dbo].[ky_NETSPSetBillDiaryItemText] * * * * Modification History: * * 2024-05-08 Balamurugan C Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SET @BillType = ISNULL(@BillType, 'I') IF @BillType NOT IN ('C', 'I') BEGIN RETURN END DECLARE @TEXT VARCHAR(200) SET @TEXT = NULL IF @BillType = 'I' BEGIN SET @TEXT = 'Invoice No: ' + CONVERT(VARCHAR, @BillHeaderBillNo) END ELSE BEGIN SET @TEXT = 'Credit Note No: ' + CONVERT(VARCHAR, @BillHeaderBillNo) END UPDATE [DIA] SET [DIA].[TEXT1] = ISNULL(@TEXT, [DIA].[TEXT1]), [DIA].[DisplayText] = ISNULL(@TEXT, [DIA].[DisplayText]) FROM [dbo].[diary] [DIA] WITH (NOLOCK) WHERE [DIA].[ACTIONID] = @ActionID SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_SetChequeRequest' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetChequeRequest] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_SetChequeRequest_SAM4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetChequeRequest_SAM4] END GO IF [dbo].[ISSAM4]() = 0 BEGIN EXEC('CREATE PROCEDURE [dbo].[KAAS_SetChequeRequest] (@IDV VARCHAR(10), @DATEV VARCHAR(17), @WHO VARCHAR(19), @BANK VARCHAR(10), @VALUEV VARCHAR(20), @NARRATIVE VARCHAR(MAX), @LEDGERNARRATIVE VARCHAR(MAX), @PAYEE VARCHAR(MAX), @STATUS VARCHAR(1), @NOTES VARCHAR(MAX), @FEEEARNER VARCHAR(10), @THIRDPARTY VARCHAR(1), @SPLIT VARCHAR(1), @SUPPLY VARCHAR(10), @MATTER VARCHAR(20), @OUTLAYCODE VARCHAR(10), @PAYCLIENT CHAR(1), @EFTYorN CHAR(1), @ONCEOFFPAYMENT CHAR(1), @CLIENTCODE VARCHAR(6), @CASEASSCODE VARCHAR(6), @CURRENTUSER VARCHAR(20), @ACTION VARCHAR(30)) AS /**************************************************************************************************** * * * It is used to Create or Update a cheque request. * * Stored Procedure Name : [dbo].[KAAS_SetChequeRequest] * * Copied from : [dbo].[ky_NETSPSetChequeRequest_v2] * * * * Modification History * * 2015-09-30 Pino Use KAAS_GetNextActionID * * 2017-07-13 John Created v2. Added new parameters. Added logging and saftey check * * 2017-07-13 John If PFChequeProcess is enabled then assign the action to the requestor * * 2017-07-28 John Fixed @REQUESTOR being assigned under incorrect circumstances. Also added * * system setting for the action to be assigned to the requestor * * 2018-04-25 John Fixed actions being created despite the setting being disabled * * 2018-11-19 John KEYD-5541 - Added action assignee options * * 2019-09-04 Dheepin Changed the name into KAAS_SetChequeRequest for naming convention. * 2019-05-29 Sadiq Added Supplier value to ChequeRequisitions Table for Payee selected list display * ****************************************************************************************************/ BEGIN DECLARE @ID INT DECLARE @DATE DATETIME DECLARE @ChequeTables VARCHAR(MAX) DECLARE @VALUE DECIMAL(18, 2) DECLARE @NewCheque BIT DECLARE @NotesLength INT DECLARE @NarrativeLength INT DECLARE @WhoLength INT DECLARE @PayeeLength INT DECLARE @Nominal VARCHAR(10) SET @ChequeTables = ''**ChequeRequisitionHeader**ChequeRequisitionDetail**ChequeRequisitions**'' SELECT @NewCheque = 0 BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH BEGIN TRY SET @VALUE = CONVERT(DECIMAL(18, 2), @VALUEV) END TRY BEGIN CATCH SET @VALUE = 0 END CATCH BEGIN TRY SET @DATE = CONVERT(DATETIME, @DATEV) IF (@DATE = CONVERT(DATETIME, ''19000101'')) BEGIN SET @DATE = convert(DATETIME, convert(VARCHAR, GETDATE(), 112)) END END TRY BEGIN CATCH SET @DATE = convert(DATETIME, convert(VARCHAR, GETDATE(), 112)) END CATCH SELECT @NotesLength = [dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] AND SC.[name] IN (''notes'', ''returnreason'') WHERE PATINDEX(''%**'' + SO.[name] + ''**%'', @ChequeTables) > 0 AND SO.[type] = ''U'' SET @NOTES = ISNULL(@NOTES, '''') IF LEN(@NOTES) > @NOTESLENGTH BEGIN SET @NOTES = SUBSTRING(@NOTES, 1, @NOTESLENGTH) END SELECT @NarrativeLength = [dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] AND SC.[name] = ''narrative'' WHERE PATINDEX(''%**'' + SO.[name] + ''**%'', @ChequeTables) > 0 AND SO.[type] = ''U'' SET @NARRATIVE = ISNULL(@NARRATIVE, '''') IF LEN(@NARRATIVE) > @NarrativeLength BEGIN SET @NARRATIVE = SUBSTRING(@NARRATIVE, 1, @NarrativeLength) END SET @LEDGERNARRATIVE = ISNULL(@LEDGERNARRATIVE, '''') IF LEN(@LEDGERNARRATIVE) > @NarrativeLength BEGIN SET @LEDGERNARRATIVE = SUBSTRING(@LEDGERNARRATIVE, 1, @NarrativeLength) END SELECT @WhoLength = [dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] AND SC.[name] IN (''who'', ''createdby'') WHERE PATINDEX(''%**'' + SO.[name] + ''**%'', @ChequeTables) > 0 AND SO.[type] = ''U'' SET @WHO = ISNULL(@WHO, '''') IF LEN(@WHO) > @WhoLength BEGIN SET @WHO = SUBSTRING(@WHO, 1, @WhoLength) END SELECT @PayeeLength = [dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] AND SC.[name] = ''payee'' WHERE PATINDEX(''%**'' + SO.[name] + ''**%'', @ChequeTables) > 0 AND SO.[type] = ''U'' SET @Payee = ISNULL(@Payee, '''') IF LEN(@Payee) > @PayeeLength BEGIN SET @Payee = SUBSTRING(@Payee, 1, @PayeeLength) END SELECT @Nominal = CASE WHEN ISNULL(NML.[CLIENTAC], ''N'') = ''Y'' THEN RTRIM(ISNULL(CTL.[CLIENT], '''')) ELSE RTRIM(ISNULL(CTL.[OUTLAY], '''')) END FROM [dbo].[Nominal] NML CROSS APPLY [dbo].[CONTROL] CTL WHERE NML.[CODE] = @BANK DECLARE @COMMAND VARCHAR(MAX) IF (@ID = 0) BEGIN SELECT @ID = ISNULL(MAX(CRH.[REQNO]), 0) + 1, @NewCheque = 1 FROM [dbo].[ChequeRequisitionHeader] CRH INSERT INTO [dbo].[ChequeRequisitionHeader] ([REQNO], [DATE], [WHO], [BANK], [VALUE], [NARRATIVE], [PAYEE], [STATUS], [RETURNREASON], [FEEEARNER], [THIRDPARTY], [SPLIT], [SUPPLY], [OUTLAYCODE], [EFTYorN], [PAYCLIENT], [CLIENTCODE], [ONCEOFFPAYMENT]) SELECT @ID AS [ID], dbo.KAAS_FNConvertDateToUTC(@DATE, @CURRENTUSER) AS [DATE], @WHO AS [WHO], @BANK AS [BANK], @VALUE AS [VALUE], @Narrative AS [NARRATIVE], @Payee AS [PAYEE], @STATUS AS [STATUS], @NOTES AS [RETURNREASON], @FEEEARNER AS [FEEEARNER], @THIRDPARTY AS [THIRDPARTY], @SPLIT AS [SPLIT], @SUPPLY AS [SUPPLY], RTRIM(ISNULL(@OUTLAYCODE, '''')) AS [OUTLAYCODE], @EFTYorN AS [EFTYorN], @PAYCLIENT AS [PAYCLIENT], @CLIENTCODE AS [CLIENTCODE], @ONCEOFFPAYMENT AS [ONCEOFFPAYMENT] INSERT INTO [dbo].[ChequeRequisitionDetail] ([REQNO], [TYPE], [MATTER], [VALUE], [NOMINAL], [NARRATIVE], [CASEASSCODE]) VALUES(@ID, ''P'', @MATTER, @VALUE, @Nominal, @LEDGERNARRATIVE, @CASEASSCODE) IF EXISTS (SELECT TOP 1 1 FROM [dbo].[DesktopControl] DCT WHERE ISNULL(DCT.[INDICATOR8], ''N'') = ''Y'') OR EXISTS (SELECT TOP 1 1 FROM [dbo].[Settings] WHERE ISNULL([KeyName], '''') = ''IsPostReq'' AND LOWER(ISNULL([KeyValue], '''')) = ''true'') BEGIN DECLARE @NewActionID int DECLARE @TEXT VARCHAR(MAX) SET @NewActionID = NULL SET @TEXT = ''Cheque on '' + CONVERT(VARCHAR, @DATE, 106) + '' - '' + @Narrative SELECT @NewActionID = DIA.[ActionID] FROM [dbo].[diary] DIA WHERE DIA.[CHEQUEREQNO] = @ID IF (@NewActionID IS NULL) BEGIN -- 2015-09-30 Pino Start EXEC @NewActionID = [dbo].[KAAS_GetNextActionID] --SELECT @NewActionID = ISNULL(MAX(DIA.[ActionID]), 0) + 1 -- FROM [dbo].[diary] DIA -- 2015-09-30 Pino End DECLARE @REQUESTOR VARCHAR(10) SET @REQUESTOR = @FEEEARNER -- If the PFChequeProcess is enabled then assign the action to the requestor IF EXISTS (SELECT TOP 1 1 FROM [dbo].[Settings] WHERE [KeyName] = ''PFChequeProcess'' AND LOWER(ISNULL([KeyValue], '''')) = ''true'') BEGIN SET @REQUESTOR = @CURRENTUSER END ELSE BEGIN DECLARE @DEFAULTREQUESTOR VARCHAR(20) SELECT TOP 1 @DEFAULTREQUESTOR = [SET].[KeyValue] FROM [dbo].[Settings] AS [SET] WHERE [SET].[KeyName] = ''DefaultChequeRequestActionAssignee'' SET @DEFAULTREQUESTOR = ISNULL(@DEFAULTREQUESTOR, ''ChequeHandler'') IF @DEFAULTREQUESTOR = ''MatterFeeEarner'' BEGIN SELECT TOP 1 @REQUESTOR = MAT.[FECode] FROM [dbo].[matters] AS MAT INNER JOIN [dbo].[ChequeRequisitionDetail] AS CRD ON CRD.[MATTER] = MAT.[Code] WHERE CRD.[REQNO] = @ID END ELSE IF @DEFAULTREQUESTOR = ''CurrentUser'' BEGIN SET @REQUESTOR = @CURRENTUSER END ELSE IF @DEFAULTREQUESTOR = ''ChequeHandler'' BEGIN SET @REQUESTOR = @FEEEARNER END END INSERT INTO [dbo].[diary] ([ACTIONID], [ORGINALACTIONID], [CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [DisplayText], [DUEDATE], [IMAGENO], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [PROCESSSTATUS], [BILLABLE], [BILLDESCRIPTION], [SUBJECT], [DELEGATIONSTATUS], [CHEQUEREQNO], [TxmSent]) SELECT TOP 1 @NewActionID, @NewActionID, RTRIM(ISNULL(CRD.[MATTER], '''')) AS [CASECODE], dbo.KAAS_FNConvertDateToUTC(GETDATE(),@REQUESTOR) AS [DATE], CONVERT(INT, 0) AS [STATUS], RTRIM(ISNULL(TA.[ACTIONCODE], '''')) AS [ACTIONCODE], RTRIM(ISNULL(TA.[STATUS], '''')) AS [ACTIONSTATUS], RTRIM(ISNULL(TA.[ACTIONCATEGORY], '''')) AS [ACTIONTYPE], RTRIM(ISNULL(TA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(@REQUESTOR, '''')) AS [FNCODE], RTRIM(ISNULL(HAN.[TEAM], '''')) AS [TEAMCODE], @TEXT AS [TEXT1], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(CONVERT(VARCHAR(MAX), @TEXT), ''''), 200) AS [DisplayText], CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112)) AS [DUEDATE], 0 AS [IMAGENO], CASE WHEN RTRIM(ISNULL(TA.[PUBLISHER], '''')) IN (''A'', ''P'', ''N'') THEN UPPER(RTRIM(ISNULL(TA.[PUBLISHER], ''''))) ELSE '''' END AS [PUBLISH], [dbo].[KAAS_ConvertTimeToClarion](GETDATE()) AS [DYSTARTTIME], [dbo].[KAAS_ConvertTimeToClarion](GETDATE()) AS [DYENDTIME], CASE WHEN RTRIM(ISNULL(TA.[PRIORITY], '''')) IN (''High'', ''Low'', ''Normal'') THEN UPPER(SUBSTRING(TA.[PRIORITY], 1, 1)) ELSE ''N'' END AS [PRIORITY], CASE WHEN RTRIM(ISNULL(TA.[HIGHLIGHTED], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [HIGHLIGHTED], RTRIM(ISNULL(TA.[MILESTONETYPE], '''')) AS [MILESTEONETYPE], 0 AS [PROCESSSTATUS], 0 AS [BILLABLE], '''' AS [BILLDESCRIPTION], '''' AS [SUBJECT], 0 AS [DELEGATIONSTATUS], @ID AS [CHEQUEREQNO], 0 AS [TxmSent] FROM [dbo].[ChequeRequisitionHeader] CRH INNER JOIN [dbo].[ChequeRequisitionDetail] CRD ON CRD.[REQNO] = CRH.[REQNO] INNER JOIN [dbo].[TemplateActions] TA ON TA.[WKTCODE] = ''SYS'' AND TA.[ACTIONCODE] = ''CH01'' INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = CRD.[MATTER] INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = @REQUESTOR WHERE CRH.[REQNO] = @ID INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DUEDATE], [DUETIME], [STATUS], [OWNER], [DELEGATE], [ActionType], [FromHandler], [DelType]) SELECT DIA.[ActionID], DIA.[FNCode], DIA.[TEAMCODE], DIA.[DUEDATE], DIA.[DYSTARTTIME], DIA.[DUEDATE], DIA.[DYSTARTTIME], 0, ''Y'', DIA.[FNCODE], DIA.[ACTIONTYPE], DIA.[FNCODE], ''Created'' FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @NewActionID UPDATE CRH SET CRH.[ActionID] = @NewActionID FROM [dbo].[ChequeRequisitionHeader] CRH WHERE CRH.[REQNO] = @ID END END END ELSE BEGIN UPDATE CRD SET CRD.[MATTER] = @MATTER, CRD.[VALUE] = @VALUE, CRD.[NOMINAL] = @Nominal, CRD.[NARRATIVE] = @LEDGERNARRATIVE, CRD.[CASEASSCODE]=@CASEASSCODE FROM [dbo].[ChequeRequisitionDetail] CRD WHERE CRD.[REQNO] = @ID UPDATE CRH SET CRH.[DATE] = @DATE, CRH.[WHO] = @WHO, CRH.[BANK] = @BANK, CRH.[VALUE] = @VALUE, CRH.[NARRATIVE] = @NARRATIVE, CRH.[PAYEE] = @PAYEE, CRH.[STATUS] = @STATUS, CRH.[RETURNREASON] = @NOTES, CRH.[FEEEARNER] = @FEEEARNER, CRH.[THIRDPARTY] = @THIRDPARTY, CRH.[SPLIT] = @SPLIT, CRH.[SUPPLY] = @SUPPLY, CRH.[OUTLAYCODE] = RTRIM(ISNULL(@OUTLAYCODE, '''')), CRH.EFTYorN =@EFTYorN , CRH.PAYCLIENT= @PAYCLIENT , CRH.CLIENTCODE=@CLIENTCODE, CRH.ONCEOFFPAYMENT=@ONCEOFFPAYMENT FROM [dbo].[ChequeRequisitionHeader] CRH WHERE CRH.[REQNO] = @ID END IF OBJECT_ID(''[dbo].[ChequeRequisitionLog]'') IS NOT NULL BEGIN INSERT INTO [dbo].[ChequeRequisitionLog] ( [ID], [User], [ActionDate], [Action], [Date], [Bank], [Matter], [ClientCode], [Nominal], [Value], [Narrative], [LedgerNarrative], [Payee], [Notes], [FeeEarner], [ThirdParty], [Supplier], [OutlayCode], [PayClient], [EFTYorN], [OnceOffPayment], [CaseAssociateCode]) SELECT @ID, @CURRENTUSER, GETDATE(), CASE WHEN @NewCheque = 1 THEN ''Created and '' + ISNULL(LTRIM(RTRIM(@ACTION)), '''') ELSE ISNULL(LTRIM(RTRIM(@ACTION)), '''') END, @DATE, @BANK, @MATTER, @CLIENTCODE, @Nominal, @VALUE, @Narrative, @LEDGERNARRATIVE, @Payee, @Notes, @FEEEARNER, @THIRDPARTY, @SUPPLY, RTRIM(ISNULL(@OUTLAYCODE, '''')), @PAYCLIENT, @EFTYorN, @ONCEOFFPAYMENT, @CASEASSCODE END SELECT @ID AS [ID] END ') END ELSE BEGIN EXEC('CREATE PROCEDURE [dbo].[KAAS_SetChequeRequest] (@IDV VARCHAR(10), @DATEV VARCHAR(17), @WHO VARCHAR(19), @BANK VARCHAR(10), @VALUEV VARCHAR(20), @NARRATIVE VARCHAR(MAX), @LEDGERNARRATIVE VARCHAR(MAX), @PAYEE VARCHAR(MAX), @STATUS VARCHAR(1), @NOTES VARCHAR(MAX), @FEEEARNER VARCHAR(10), @THIRDPARTY VARCHAR(1), @SPLIT VARCHAR(1), @SUPPLY VARCHAR(10), @MATTER VARCHAR(20), @OUTLAYCODE VARCHAR(10), @PAYCLIENT CHAR(1), @EFTYorN CHAR(1), @ONCEOFFPAYMENT CHAR(1), @CLIENTCODE VARCHAR(6), @CASEASSCODE VARCHAR(6), @CURRENTUSER VARCHAR(20), @ACTION VARCHAR(30)) AS /************************************************************* * * ky_NETSPSetChequeRequest - Creates or Updates a cheque request * * Modification History * 2018-08-21 Pino Carafa Created * 2018-11-19 John Ginnane KEYD-5541 - Added action assignee option * 2019-03-29 John Ginnane KEYD-5844 - Now setting [WHO] to the requestor * *************************************************************/ BEGIN DECLARE @ID INT DECLARE @DATE DATETIME DECLARE @ChequeTables VARCHAR(MAX) DECLARE @VALUE DECIMAL(18, 2) DECLARE @NewCheque BIT DECLARE @NotesLength INT DECLARE @NarrativeLength INT DECLARE @WhoLength INT DECLARE @PayeeLength INT --DECLARE @Nominal VARCHAR(10) SET @ChequeTables = ''**ChequeRequisitionHeader**ChequeRequisitionDetail**ChequeRequisitions**'' SELECT @NewCheque = 0 BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH BEGIN TRY SET @VALUE = CONVERT(DECIMAL(18, 2), @VALUEV) END TRY BEGIN CATCH SET @VALUE = 0 END CATCH BEGIN TRY SET @DATE = CONVERT(DATETIME, @DATEV) IF (@DATE = CONVERT(DATETIME, ''19000101'')) BEGIN SET @DATE = convert(DATETIME, convert(VARCHAR, GETDATE(), 112)) END END TRY BEGIN CATCH SET @DATE = convert(DATETIME, convert(VARCHAR, GETDATE(), 112)) END CATCH DECLARE @RequestDateTime DATETIME SET @RequestDateTime = @DATE SELECT @NotesLength = [dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] AND SC.[name] IN (''notes'', ''returnreason'') WHERE PATINDEX(''%**'' + SO.[name] + ''**%'', @ChequeTables) > 0 AND SO.[type] = ''U'' SET @NOTES = ISNULL(@NOTES, '''') IF LEN(@NOTES) > @NOTESLENGTH BEGIN SET @NOTES = SUBSTRING(@NOTES, 1, @NOTESLENGTH) END SELECT @NarrativeLength = [dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] AND SC.[name] = ''narrative'' WHERE PATINDEX(''%**'' + SO.[name] + ''**%'', @ChequeTables) > 0 AND SO.[type] = ''U'' SET @NARRATIVE = ISNULL(@NARRATIVE, '''') IF LEN(@NARRATIVE) > @NarrativeLength BEGIN SET @NARRATIVE = SUBSTRING(@NARRATIVE, 1, @NarrativeLength) END SET @LEDGERNARRATIVE = ISNULL(@LEDGERNARRATIVE, '''') IF LEN(@LEDGERNARRATIVE) > @NarrativeLength BEGIN SET @LEDGERNARRATIVE = SUBSTRING(@LEDGERNARRATIVE, 1, @NarrativeLength) END SELECT @WhoLength = [dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] AND SC.[name] IN (''who'', ''createdby'') WHERE PATINDEX(''%**'' + SO.[name] + ''**%'', @ChequeTables) > 0 AND SO.[type] = ''U'' SET @WHO = ISNULL(@WHO, '''') IF LEN(@WHO) > @WhoLength BEGIN SET @WHO = SUBSTRING(@WHO, 1, @WhoLength) END SELECT @PayeeLength = [dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] AND SC.[name] = ''payee'' WHERE PATINDEX(''%**'' + SO.[name] + ''**%'', @ChequeTables) > 0 AND SO.[type] = ''U'' SET @Payee = ISNULL(@Payee, '''') IF LEN(@Payee) > @PayeeLength BEGIN SET @Payee = SUBSTRING(@Payee, 1, @PayeeLength) END DECLARE @Nominal VARCHAR(10) DECLARE @TypeCode VARCHAR(1) SELECT @Nominal = RTRIM(ISNULL([CTL].[NomValue], '''')), @TypeCode = CASE WHEN ISNULL([NML].[CLIENT], ''N'') = ''Y'' THEN ''C'' ELSE ''O'' END FROM [dbo].[Nominal] [NML] LEFT OUTER JOIN [dbo].[CtrlNom] [CTL] ON [CTL].[Code] = CASE WHEN ISNULL([NML].[CLIENT], ''N'') = ''Y'' THEN ''Client Ledger'' ELSE ''Outlay'' END WHERE [NML].[NominalCode] = @BANK DECLARE @COMMAND VARCHAR(MAX) IF (@ID = 0) BEGIN DECLARE @RecordID INT DECLARE @Team VARCHAR(10) DECLARE @Branch VARCHAR(3) DECLARE @RequestNo INT SET @RequestNo = (ISNULL((SELECT CONVERT(INT, [CTN].[NUMVALUE]) FROM [dbo].[CtrlNum] [CTN] WHERE [CTN].[CODE] = ''ChequeReqNo''), -1)) + 1 IF @RequestNo = 0 BEGIN INSERT INTO [dbo].[CtrlNum] ([Code], [NumValue]) VALUES(''ChequeReqNo'', 1) SET @RequestNo = 1 END ELSE BEGIN UPDATE [CTN] SET [CTN].[NumValue] = @RequestNo FROM [dbo].[CtrlNum] [CTN] WHERE [CTN].[Code] = ''ChequeReqNo'' END SELECT @Team = [HAN].[TEAM], @Branch = RTRIM(ISNULL([HAN].[Branch], '''')) FROM [dbo].[Handlers] [HAN] WHERE [HAN].[CODE] = @FEEEARNER DECLARE @ActionText VARCHAR(200) SET @ActionText = ''Cheque on '' + CONVERT(VARCHAR, @RequestDateTime, 103) INSERT INTO dbo.ChequeRequisitions ([REQUESTNO], [DATE], [BANKACC], [CREATEDBY], [FEEEARNER], [GROSSAMOUNT], [NETAMOUNT], [PAYEE], [MATTER], [SUPPLIER], [THIRDPARTY], [NARRATIVE], [VATCODE], [VATAMOUNT], [NOMINAL], [OUTLAYCODE], [NOTES], [CHEQUESTATUS], [Releasedby], [ReleasedDate], [Approvedby], [ApprovedDate], [TYPECODE], [BRANCH], [ACTIONID], [EFTYORN], [PAYCLIENT], [ONCEOFFPAYMENT]) VALUES(@RequestNo, -- [REQUESTNO] @RequestDateTime, -- [DATE] @BANK, -- [BANKACC] @WHO, -- [CREATEDBY] @FEEEARNER, -- [FEEEARNER] @VALUE, -- [GROSSAMOUNT] @VALUE, -- [NETAMOUNT] @Payee, -- [PAYEE] @MATTER, -- [MATTER] @SUPPLY, -- [SUPPLIER] ''N'', -- [THIRDPARTY] @Narrative, -- [NARRATIVE] '' '', -- [VATCODE] 0, -- [VATAMOUNT] @Nominal, -- [NOMINAL] RTRIM(ISNULL(@OUTLAYCODE, '''')), -- [OUTLAYCODE] @NOTES, -- [NOTES] CASE WHEN @STATUS = ''0'' THEN ''Request'' WHEN @STATUS = ''1'' THEN ''Released'' WHEN @STATUS = ''2'' THEN ''Approved'' WHEN @STATUS = ''3'' THEN ''Returned'' ELSE ''Request'' END,-- [CHEQUESTATUS] '''', -- [RELEASEDBY] NULL, -- [RELEASEDDATE] '''', -- [APPROVEDBY] NULL, -- [APPROVEDDATE] @TypeCode, -- [TYPECODE] @Branch, -- [BRANCH] 0, -- [ACTIONID] ''N'', -- [EFTYORN] ''N'', -- [PAYCLIENT] ''N'') -- [ONCEOFFPAYMENT] SET @RecordID = SCOPE_IDENTITY() SET @ID = @RecordID DECLARE @NewActionID INT EXEC @NewActionID = [dbo].[KAAS_GetNextActionID] DECLARE @RequestDate DATETIME DECLARE @ClarionTime INT SET @ClarionTime = [dbo].KAAS_ConvertTimeToClarion(@RequestDateTime) SET @RequestDate = CONVERT(DATETIME, CONVERT(VARCHAR, @RequestDateTime, 112)) -- Using same name of var as SAM3 for consistency DECLARE @REQUESTOR VARCHAR(10) SET @REQUESTOR = @FEEEARNER DECLARE @DEFAULTREQUESTOR VARCHAR(20) SELECT TOP 1 @DEFAULTREQUESTOR = [SET].[KeyValue] FROM [dbo].[Settings] AS [SET] WHERE [SET].[KeyName] = ''DefaultChequeRequestActionAssignee'' SET @DEFAULTREQUESTOR = ISNULL(@DEFAULTREQUESTOR, ''ChequeHandler'') IF @DEFAULTREQUESTOR = ''MatterFeeEarner'' BEGIN SELECT TOP 1 @REQUESTOR = MAT.[FECode] FROM [dbo].[matters] AS MAT INNER JOIN [dbo].[ChequeRequisitions] AS CRD ON CRD.[Matter] = MAT.[Code] WHERE CRD.[RecordID] = @ID END ELSE IF @DEFAULTREQUESTOR = ''CurrentUser'' BEGIN SET @REQUESTOR = @CURRENTUSER END ELSE IF @DEFAULTREQUESTOR = ''ChequeHandler'' BEGIN SET @REQUESTOR = @FEEEARNER END INSERT INTO [dbo].[diary] ([ACTIONID], [CASECODE], [PRIORITY], [HIGHLIGHTED], [PUBLISH], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DEFERRED], [IMAGENO], [DYSTARTTIME], [DYENDTIME], [DURATION], [ORGINALACTIONID], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TXMSENT], [LOCATION], [HEARINGTYPE], [FORCOPY], [TXMSEQNO], [DISPLAYTEXT], [FLAG], [ADDRESSTO], [CCTO], [BCCTO], [CLIENTCONTACTID], [CONTACTCATEGORY], [CAMPAIGN], [FILENUM], [CASEASSOCIATE]) VALUES(@NewActionID, -- [ActionID] @MATTER, -- [CASECODE] ''N'', -- [PRIORITY] '''', -- [HIGHLIGHTED] ''N'', -- [PUBLISH] dbo.KAAS_FNConvertDateToUTC(@RequestDate,@REQUESTOR), -- [DATE] 0, -- [STATUS] '''', -- [ACTIONCODE] '''', -- [ACTIONSTATUS] ''Q'', -- [ACTIONTYPE] ''O'', -- [PROCESSTYPE] @REQUESTOR, -- [FNCODE] @Team, -- [TEAMCODE] @ActionText, -- [TEXT1] '''', -- [TEXT2] '''', -- [DELEGATEDFNR] '''', -- [DEFERRED] 0, -- [IMAGENO] @ClarionTime, -- [DYSTARTTIME] '''', -- [DYENDTIME] 0, -- [DURATION] 0, -- [ORGINALACTIONID] '''', -- [MILESTEONETYPE] '''', -- [ATTACHMENTS] 0, -- [PROCESSSTATUS] 0, -- [WORKPROCESS] 0, -- [BILLABLE] '''', -- [BILLDESCRIPTION] '''', -- [EMAILADDRESS] '''', -- [EMAIL] '''', -- [SUBJECT] 0, -- [DELEGATIONSTATUS] 0, -- [DRAFTBILLNO] @RecordID, -- [CHEQUEREQNO] 0, -- [TXMSENT] '''', -- [LOCATION] '''', -- [HEARINGTYPE] '''', -- [FORCOPY] 0, -- [TXMSEQNO] @ActionText, -- [DISPLAYTEXT] 0, -- [FLAG] '''', -- [ADDRESSTO] '''', -- [CCTO] '''', -- [BCCTO] 0, -- [CLIENTCONTACTID] 0, -- [CONTACTCATEGORY] 0, -- [CAMPAIGN] 0, -- [FILENUM] '''') -- [CASEASSOCIATE] INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ACTIONTYPE], [FROMHANDLER], [RETURNEDBY], [DELTYPE]) VALUES(@NewActionID, -- [ACTIONID] @REQUESTOR, -- [HANDLER] @Team, -- [TEAM] @RequestDate, -- [DATE] @ClarionTime, -- [TIME] '''', -- [TIMER] @RequestDate, -- [DUEDATE] '''', -- [DUETIME] '''', -- [REVIEW] 0, -- [STATUS] ''Y'', -- [OWNER] @REQUESTOR, -- [DELEGATE] 0, -- [DELEGATESTATUS] ''Q'', -- [ACTIONTYPE] @REQUESTOR, -- [FROMHANDLER] '''', -- [RETURNEDBY] ''Created'') -- [DELTYPE] END ELSE BEGIN UPDATE [CRH] SET [CRH].[DATE] = @RequestDateTime, [CRH].[FEEEARNER] = @FEEEARNER, [CRH].[GrossAmount] = @VALUE, [CRH].[NetAmount] = @VALUE, [CRH].[Payee] = @PAYEE, [CRH].[Matter] = @MATTER, [CRH].[Narrative] = @NARRATIVE, [CRH].[Notes] = @NOTES, [CRH].[Supplier] =@Supply, [CRH].[OutlayCode] = RTRIM(ISNULL(@OUTLAYCODE, '''')), [CRH].[ChequeStatus] = CASE WHEN @STATUS = ''0'' THEN ''Request'' WHEN @STATUS = ''1'' THEN ''Released'' WHEN @STATUS = ''2'' THEN ''Approved'' WHEN @STATUS = ''3'' THEN ''Returned'' ELSE ''Request'' END FROM [dbo].[ChequeRequisitions] [CRH] WHERE [CRH].[RecordID] = @ID END IF OBJECT_ID(''[dbo].[ChequeRequisitionLog]'') IS NOT NULL BEGIN INSERT INTO [dbo].[ChequeRequisitionLog] ( [ID], [User], [ActionDate], [Action], [Date], [Bank], [Matter], [ClientCode], [Nominal], [Value], [Narrative], [LedgerNarrative], [Payee], [Notes], [FeeEarner], [ThirdParty], [Supplier], [OutlayCode], [PayClient], [EFTYorN], [OnceOffPayment], [CaseAssociateCode]) SELECT @ID, @CURRENTUSER, GETDATE(), CASE WHEN @NewCheque = 1 THEN ''Created and '' + ISNULL(LTRIM(RTRIM(@ACTION)), '''') ELSE ISNULL(LTRIM(RTRIM(@ACTION)), '''') END, @DATE, @BANK, @MATTER, @CLIENTCODE, @Nominal, @VALUE, @Narrative, @LEDGERNARRATIVE, @Payee, @Notes, @FEEEARNER, @THIRDPARTY, @SUPPLY, RTRIM(ISNULL(@OUTLAYCODE, '''')), @PAYCLIENT, @EFTYorN, @ONCEOFFPAYMENT, @CASEASSCODE END SELECT @ID AS [ID] END ') END GO IF OBJECT_ID(N'KAAS_SetDraftBillDetail',N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_SetDraftBillDetail] END GO CREATE PROCEDURE [dbo].[KAAS_SetDraftBillDetail] ( @KeyID INT, @MatterCode VARCHAR(20), @DraftNo INT, @InvoiceNo INT, @RecordType VARCHAR(1), @FeeEarnerCode VARCHAR(10), @NominalCode VARCHAR(10), @Narrative VARCHAR(6999), -- This is what's specified in the table @NetValue DECIMAL(19, 2), @VATCode VARCHAR(1), @VATRate DECIMAL(19, 2), @VATValue DECIMAL(19, 2), @LineNo INT, @OverriddenVAT BIT, @PreBilledOutlay BIT) AS /******************************************************************************************************** * * * [dbo].[KAAS_SetDraftBillDetail] * * * * Adds or Updates a Draft Bill Detail line. * * * * Modification History: * * ????-??-?? ??? Created * * 2015-06-08 Pino Allow overriding VAT * * 2019-11-12 Dheepin Vijith K Created for the naming convention * * 2024-04-03 John Ginnane #17719 - Rewrote and refactored * ********************************************************************************************************/ BEGIN SET NOCOUNT ON; IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillDetails] WHERE [KEYID] = ISNULL(@KeyID, 0)) BEGIN SET @KeyID = 0 END -- Clean up incoming data -- Make sure invoice is unreleased and unapproved IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillHeader] WHERE [DRAFTNO] = @DraftNo AND [RELEASED] <> 'Y' AND [BILLNO] = 0) BEGIN RETURN END -- Make sure matter is open and exists IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[matters] AS [MAT] WHERE [MAT].[Code] = @MatterCode AND [MAT].[Closed] <> 'Y') BEGIN RETURN END -- Make sure fee earner code exists IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[FeeEarnerCodes] WHERE [Code] = @FeeEarnerCode) BEGIN RETURN END -- Make sure VAT code exists IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[VATCodes] WHERE [CODE] = @VATCode) BEGIN RETURN END -- Make sure nominal code exists IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[Nominal] WHERE [CODE] = @NominalCode) BEGIN RETURN END SET @RecordType = ISNULL(UPPER(@RecordType), '') IF @RecordType NOT IN ('F', 'O', 'M') BEGIN SET @RecordType = 'M' END IF @KeyID = 0 BEGIN SELECT @LINENO = ISNULL(MAX([BID].[LINENO]), 0) + 1 FROM [dbo].[BillDetails] AS [BID] WHERE [BID].[DRAFTNO] = @DRAFTNO INSERT INTO [dbo].[BillDetails] ( [MATTER], [DRAFTNO], [BILLNO], [TYPE], [FEEEARNER], [NOMINAL], [NARRATIVE], [NET], [VATCODE], [VATRATE], [VATVALUE], [LINENO], [OverriddenVAT], [PreBilledOutlay]) SELECT @MatterCode, @DraftNo, @InvoiceNo, @RecordType, @FeeEarnerCode, @NominalCode, @Narrative, @NetValue, @VATCode, @VATRate, @VATValue, @LineNo, @OverriddenVAT, @PreBilledOutlay SET @KeyID = @@IDENTITY END ELSE BEGIN ;WITH [LineItems] ([DraftNo], [LineNo], [KeyID]) AS ( SELECT [BID].[DRAFTNO], [BID].[LINENO], [BID].[KEYID] FROM [dbo].[BillDetails] AS [BID] WHERE [BID].[DRAFTNO] = @DraftNo) UPDATE [BID] SET [BID].[MATTER] = @MatterCode, [BID].[DRAFTNO] = @DraftNo, [BID].[BILLNO] = @InvoiceNo, [BID].[TYPE] = @RecordType, [BID].[FEEEARNER] = @FeeEarnerCode, [BID].[NOMINAL] = @NominalCode, [BID].[NARRATIVE] = @Narrative, [BID].[NET] = @NetValue, [BID].[VATCode] = @VATCode, [BID].[VATRATE] = @VATRate, [BID].[VATVALUE] = @VATValue, [BID].[OverriddenVAT] = @OverriddenVAT, [BID].[PreBilledOutlay] = @PreBilledOutlay FROM [dbo].[BillDetails] AS [BID] WHERE [BID].[KEYID] = @KeyID END IF @@ROWCOUNT > 0 BEGIN EXEC [dbo].[KAAS_ReorderDraftBillLines] @DraftNo EXEC [dbo].[KAAS_CorrectBillDetailsANDFEBreakdown] @DraftNo EXEC [dbo].[KAAS_RecalculateDraftBillTotals] @DraftNo END END GO DECLARE @ISSAM4 INT SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 1 BEGIN EXEC(' IF OBJECT_ID(N''[KAAS_SetDraftBillDetailSAM4]'',N''P'') IS NOT NULL DROP PROCEDURE [dbo].[KAAS_SetDraftBillDetailSAM4]') EXEC(' CREATE PROCEDURE [dbo].[KAAS_SetDraftBillDetailSAM4] (@IDV VARCHAR(10), @DRAFTNOV VARCHAR(10), @TYPE VARCHAR(1), @FEEEARNER VARCHAR(10), @NOMINAL VARCHAR(10), @NARRATIVE VARCHAR(MAX), @NETV VARCHAR(17), @VATCODE VARCHAR(1), @VATV VARCHAR(17) = ''0'', @OUTLAYCODE VARCHAR(10) = '''', @PREBILLEDOUTLAY VARCHAR(1) = ''N'') AS /*********************************************************************** * * Adds or Updates a Draft Bill Detail line * * Stored Procedure : KAAS_SetDraftBillDetailSAM4 * Copied From : ky_NETSPSetDraftBillDetail * * Modification History * 2018-08-07 John Ginnane Created * 2018-08-29 John Ginnane Fixed comments not saving correctly * 2018-11-20 John Ginnane KEYD-5574 - Fixed VatCurrencyValue not being set correctly * 2020-02-21 Vinohdan K Created KAAS_SetDraftBillDetailSAM4 * ***********************************************************************/ BEGIN DECLARE @DRAFTNO INT DECLARE @MATTER VARCHAR(20) DECLARE @BILLNO INT DECLARE @ID INT DECLARE @NET DECIMAL(13, 2) DECLARE @LINENO INT DECLARE @VAT DECIMAL(13, 2) SELECT @DRAFTNO = BH.[BillingID], @MATTER = RTRIM(ISNULL(BH.[MatterCode], '''')), @BILLNO = ISNULL(BH.[InvoiceNo], 0) FROM [dbo].[Billhead] AS BH WHERE BH.[BillingID] = CONVERT(INT, @DRAFTNOV) IF ISNULL(@DRAFTNO, 0) = 0 BEGIN RETURN END SET @ID = CONVERT(INT, @IDV) IF @ID = -1 BEGIN RETURN END IF @ID > 0 BEGIN SET @ID = NULL SELECT @ID = BD.[RecordId] FROM [dbo].[BillDetail] AS BD WHERE BD.[RecordId] = CONVERT(INT, @IDV) AND BD.[BillID] = @DRAFTNO END IF @ID IS NULL BEGIN RETURN END SET @NET = CONVERT(DECIMAL(13, 2), @NETV) IF @NET IS NULL BEGIN RETURN END SET @VAT = CONVERT(DECIMAL(13, 2), @VATV) IF @VAT IS NULL BEGIN RETURN END SET @NARRATIVE = RTRIM(ISNULL(CONVERT(VARCHAR(6999), @NARRATIVE), '''')) SET @VATCODE = ISNULL(@VATCODE, '''') IF (@ID = 0) BEGIN SELECT @LINENO = ISNULL(MAX(BD.[Seq]), 0) + 1 FROM [dbo].[BillDetail] BD WHERE BD.[BillID] = @DRAFTNO INSERT INTO [dbo].[BillDetail] ([BillID], [RecordType], [FeCode], [NoninalCode], [NetValue], [NetCurrencyValue], [VatValue], [VatCurrencyValue], [VatCode], [OutlayCode], [VatRate], [Narrative], [Seq], [Indent], [Style], [PreBilledOutlay]) SELECT @DRAFTNO, CASE WHEN RTRIM(ISNULL(@TYPE, '''')) IN (''F'', ''O'', ''M'', ''N'') THEN UPPER(@TYPE) ELSE ''F'' END, RTRIM(ISNULL(HAN.[CODE], '''')), RTRIM(ISNULL(NOM.[NominalCode], '''')), ISNULL(@NET, 0), ISNULL(@NET, 0), ISNULL(@VAT, 0), ISNULL(@VAT, 0), RTRIM(ISNULL(VC.[CODE], '''')), LTRIM(ISNULL(OC.[OutlayCode], '''')), VC.[RATE], @NARRATIVE, @LINENO, 1, 0, LEFT(RTRIM(ISNULL(@PREBILLEDOUTLAY, '''')), 1) FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = @FEEEARNER LEFT OUTER JOIN [dbo].[Nominal] NOM ON NOM.[NominalCode] = @NOMINAL LEFT OUTER JOIN [dbo].[VATCodes] VC ON VC.[CODE] = @VATCODE LEFT OUTER JOIN [dbo].[OutlayCode] AS OC ON OC.[OutlayCode] = @OUTLAYCODE WHERE MAT.[CODE] = @MATTER SET @ID = SCOPE_IDENTITY() END ELSE BEGIN UPDATE BD SET BD.[RecordType] = CASE WHEN RTRIM(ISNULL(@TYPE, '''')) IN (''F'', ''O'', ''M'', ''N'') THEN UPPER(@TYPE) ELSE ''F'' END, BD.[FeCode] = RTRIM(ISNULL(HAN.[CODE], '''')), BD.[NoninalCode] = RTRIM(ISNULL(NOM.[NominalCode], '''')), BD.[NetValue] = @NET, BD.[NetCurrencyValue] = @NET, BD.[VatValue] = @VAT, BD.[VatCurrencyValue] = @VAT, BD.[VatCode] = RTRIM(ISNULL(VC.[Code], '''')), BD.[OutlayCode] = RTRIM(ISNULL(OC.[OutlayCode], '''')), BD.[VatRate] = ISNULL(VC.[RATE], 0), BD.[Narrative] = @NARRATIVE, BD.[PreBilledOutlay] = @PREBILLEDOUTLAY FROM [dbo].[BillDetail] AS BD LEFT OUTER JOIN [dbo].[Handlers] AS HAN ON HAN.[CODE] = @FEEEARNER LEFT OUTER JOIN [dbo].[Nominal] AS NOM ON NOM.[NominalCode] = @NOMINAL LEFT OUTER JOIN [dbo].[VATCodes] AS VC ON VC.[CODE] = @VATCODE LEFT OUTER JOIN [dbo].[OutlayCode] AS OC ON OC.[OutlayCode] = @OUTLAYCODE WHERE BD.[RecordId] = @ID END IF (@@ROWCOUNT > 0) BEGIN EXEC [dbo].[KAAS_ReorderDraftBillLinesSAM4] @DRAFTNO EXEC [dbo].[KAAS_CorrectBillDetailsANDFEBreakdownSAM4] @DRAFTNO END END') END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SetDraftBillHeader' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetDraftBillHeader] END GO Create PROCEDURE [dbo].[KAAS_SetDraftBillHeader] (@IDV VARCHAR(10), @HANDLERCODE VARCHAR(10), @matter VARCHAR(20), @ADDRESSEE VARCHAR(MAX), @ADDRESS VARCHAR(MAX), @BILLDATEV VARCHAR(8), @WRITEDOWNDATEV VARCHAR(8), @DESCRIPTION VARCHAR(MAX), @CREATEDBY VARCHAR(10), @FEEEARNER VARCHAR(10), @TYPE VARCHAR(1), @OURREF VARCHAR(MAX), @YOURREF VARCHAR(MAX), @OPENINVOICE VARCHAR(1), @MESSAGE VARCHAR(MAX), @TRANSFERTOPAY VARCHAR(1), @CreditInvoiceNoV VARCHAR(10), @RELEASED VARCHAR(1), @BILLSENT VARCHAR(1), @DEFAULTREPORTV VARCHAR(10)) AS /***************************************************************************** * * * Create / Modify the Draft Bill Header * * SP suitable for both SAM4 and SAM3 * * * Stored Procedure Name : [dbo].[KAAS_SetDraftBillHeader] * * Copied from : [dbo].[ky_NETSPSetDraftBillHeader] * * * 2014-12-01 PINO Add new DefaultBillLayoutReportID column * * 2015-06-30 PINO Add FECode column for SAM3 * * 2015-09-30 PINO Use ky_NETGetNextActionID * * 2018-12-05 JOHN Removed duplicate "Draft Bill" from diary text * * 2019-11-13 Dheepin Vijith Created with the naming convention * * 2020-01-22 Prabhu Updated date format as UTC format * * Pino 2024-04-23 GETDATE() already returns dates in UTC in * * Azure databases so this is not necessary, and not implemented * * in [dbo].[KAAS_SetDraftBillHeader3] * * * * 2024-04-23 Pino Carafa - this procedure is now OBSOLETE and it should be * * replaced with a call to * * [dbo].[KAAS_SetDraftBillHeader3] * * * *****************************************************************************/ BEGIN DECLARE @BILLDATE DATETIME DECLARE @WRITEDOWNDATE DATETIME DECLARE @CreditInvoiceNo INT DECLARE @DEFAULTREPORTID INT BEGIN TRY SET @DEFAULTREPORTID = CONVERT(INT, @DEFAULTREPORTV) END TRY BEGIN CATCH END CATCH IF ISNULL(@DEFAULTREPORTID, 0) = 0 BEGIN SET @DEFAULTREPORTID = [dbo].[ky_FNDefaultBillLayoutReport]() END DECLARE @ID INT BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH SELECT @ID = [BH].[DRAFTNO] FROM [dbo].[BillHeader] [BH] WHERE [BH].[DRAFTNO] = @ID IF (@ID IS NULL) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END BEGIN TRY SET @CreditInvoiceNo = CONVERT(INT, @CreditInvoiceNoV) END TRY BEGIN CATCH SET @CreditInvoiceNo = 0 END CATCH BEGIN TRY SET @BILLDATE = CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @BILLDATEV), 112)) END TRY BEGIN CATCH SELECT CONVERT(INT, 0) AS [ID] RETURN END CATCH IF (@BILLDATE IS NULL) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END IF (CONVERT(VARCHAR(8), @BILLDATE, 112) <> @BILLDATEV) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END BEGIN TRY SET @WRITEDOWNDATE = CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @WRITEDOWNDATEV), 112)) END TRY BEGIN CATCH SELECT CONVERT(INT, 0) AS [ID] RETURN END CATCH IF (@WRITEDOWNDATE IS NULL) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END IF (CONVERT(VARCHAR(8), @WRITEDOWNDATE, 112) <> @WRITEDOWNDATEV) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END -- Apart from correcting the parameter types to proper INT and DATETIME types, [dbo].[KAAS_SetDraftBillHeader3] -- has a new parameter @ROUNDTO. To call [dbo].[KAAS_SetDraftBillHeader3], we'll pass in a NULL value to -- @ROUNDTO to ensure older code that still calls this SP will continue to work as before. DECLARE @ROUNDTO DECIMAL(11, 8) SET @ROUNDTO = NULL EXEC [dbo].[KAAS_SetDraftBillHeader3] @ID = @ID, @HANDLERCODE = @HANDLERCODE, @matter = @matter, @ADDRESSEE = @ADDRESSEE, @ADDRESS = @ADDRESS, @BILLDATE = @BILLDATE, @WRITEDOWNDATE = @WRITEDOWNDATE, @DESCRIPTION = @DESCRIPTION, @CREATEDBY = @CREATEDBY, @FEEEARNER = @FEEEARNER, @TYPE = @TYPE, @OURREF = @OURREF, @YOURREF = @YOURREF, @OPENINVOICE = @OPENINVOICE, @MESSAGE = @MESSAGE, @TRANSFERTOPAY = @TRANSFERTOPAY, @CreditInvoiceNo = @CreditInvoiceNo, @RELEASED = @RELEASED, @BILLSENT = @BILLSENT, @DEFAULTREPORTID = @DEFAULTREPORTID, @ROUNDTO = @ROUNDTO END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SetDraftBillHeader3' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetDraftBillHeader3] END GO Create PROCEDURE [dbo].[KAAS_SetDraftBillHeader3] (@ID INT, @HANDLERCODE VARCHAR(10), @matter VARCHAR(20), @ADDRESSEE VARCHAR(MAX), @ADDRESS VARCHAR(MAX), @BILLDATE DATETIME, @WRITEDOWNDATE DATETIME, @DESCRIPTION VARCHAR(MAX), @CREATEDBY VARCHAR(10), @FEEEARNER VARCHAR(10), @TYPE VARCHAR(1), @OURREF VARCHAR(MAX), @YOURREF VARCHAR(MAX), @OPENINVOICE VARCHAR(1), @MESSAGE VARCHAR(MAX), @TRANSFERTOPAY VARCHAR(1), @CreditInvoiceNo INT, @RELEASED VARCHAR(1), @BILLSENT VARCHAR(1), @DEFAULTREPORTID INT, @ROUNDTO DECIMAL(11, 8)) AS /************************************************************************************************************* * * * [dbo].[KAAS_SetDraftBillHeader3] * * Create / Modify the Draft Bill Header * * SP suitable for both SAM4 and SAM3 * * * * PLEASE NOTE: * * DATETIME VALUES are passed in as DATE ONLY and should therefore NOT be converted to UTC * * where GetDate() is used in this procedure, please note that GetDate() already returns UTC values in Azure * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: [dbo].[KAAS_SetDraftBillHeader] * * * * Original: - * * * * First compatible version: 5.9.4.31 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2024-04-23 Pino Carafa Created * * * *************************************************************************************************************/ BEGIN DECLARE @COMMAND NVARCHAR(MAX) DECLARE @PARMS NVARCHAR(MAX) DECLARE @ADDRESSEELEN INT DECLARE @DESCRIPTIONLEN INT DECLARE @OURREFLEN INT DECLARE @YOURREFLEN INT DECLARE @MESSAGELEN INT DECLARE @Action VARCHAR(200) DECLARE @BillColumns TABLE ([ColumnName] VARCHAR(200) PRIMARY KEY, --Pino 2021-08-25 added primary key [TypeName] VARCHAR(200), [MaxLength] INT) IF ISNULL(@DEFAULTREPORTID, 0) = 0 BEGIN SET @DEFAULTREPORTID = [dbo].[ky_FNDefaultBillLayoutReport]() END SELECT @ID = [BH].[DRAFTNO] FROM [dbo].[BillHeader] [BH] WHERE [BH].[DRAFTNO] = @ID IF (@ID IS NULL) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END IF RTRIM(ISNULL(@FEEEARNER, '')) = '' BEGIN SET @FEEEARNER = [dbo].[ky_NETFNMatterFECode](@Matter) END IF (@ID <> 0) BEGIN SELECT @matter = MAT.[CODE] FROM [dbo].[BillHeader] BH INNER JOIN [dbo].[matters] MAT ON MAT.[CODE] = [BH].[MATTER] AND MAT.[CODE] = @matter WHERE [BH].[DRAFTNO] = @ID END ELSE BEGIN SELECT @matter = MAT.[CODE] FROM [dbo].[matters] MAT WHERE MAT.[CODE] = @matter END IF (RTRIM(ISNULL(@matter, '')) = '') BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END IF (@CreditInvoiceNo <> 0) BEGIN SELECT @CreditInvoiceNo = DTL.[BATCHNO] FROM [dbo].[DebtorsLedger] DTL WHERE DTL.[BATCHNO] = @CreditInvoiceNo AND DTL.[MATTER] = @matter END SELECT @FEEEARNER = RTRIM(ISNULL(HAN.[CODE], '')) FROM [dbo].[HANDLERS] HAN WHERE HAN.[CODE] = @FEEEARNER IF (RTRIM(ISNULL(@FEEEARNER, '')) = '') BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END SELECT @CREATEDBY = RTRIM(ISNULL(HAN.[CODE], '')) FROM [dbo].[HANDLERS] HAN WHERE HAN.[CODE] = @CREATEDBY IF (RTRIM(ISNULL(@CREATEDBY, '')) = '') BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END BEGIN TRY SET @BILLDATE = CONVERT(DATETIME, CONVERT(DATE, @BILLDATE)) END TRY BEGIN CATCH SELECT CONVERT(INT, 0) AS [ID] RETURN END CATCH IF (@BILLDATE IS NULL) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END BEGIN TRY SET @WRITEDOWNDATE = CONVERT(DATETIME, CONVERT(DATE, @WRITEDOWNDATE)) END TRY BEGIN CATCH SELECT CONVERT(INT, 0) AS [ID] RETURN END CATCH IF (@WRITEDOWNDATE IS NULL) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END SET @TYPE = CASE WHEN @TYPE = 'C' THEN 'C' ELSE 'I' END SET @OPENINVOICE = CASE WHEN @OPENINVOICE = 'Y' THEN 'Y' ELSE 'N' END SET @TRANSFERTOPAY = CASE WHEN @TRANSFERTOPAY = 'Y' THEN 'Y' ELSE 'N' END --Pino 2021-08-25 START INSERT INTO @BillColumns ([ColumnName], [TypeName], [MaxLength]) SELECT DISTINCT LOWER(SC.[name]) AS [ColumnName], ST.[name] As [TypeName], [dbo].[ky_NETFNGetColumnSize](SO.[object_id], SC.[column_id]) AS [maxlength] FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] WHERE [SO].[name] = 'BillHeader' AND SO.[type] = 'U' --Pino 2021-08-25 END SELECT @ADDRESSEELEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] = 'addressee' SET @ADDRESSEELEN = ISNULL(@ADDRESSEELEN, 0) SELECT @DESCRIPTIONLEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] IN ('matterdescription', 'billdescription') SELECT @MESSAGELEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] IN ('returnreason', 'message') SELECT @OURREFLEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] IN ('ourref', 'ref') SELECT @YOURREFLEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] = 'yourref' SET @YOURREFLEN = ISNULL(@YOURREFLEN, 0) SET @ADDRESS = @ADDRESSEE + CHAR(13) + CHAR(10) + @ADDRESS SET @ADDRESSEE = '' IF (LEN(@ADDRESS) > @ADDRESSEELEN) BEGIN SET @ADDRESS = SUBSTRING(@ADDRESS, 1, @ADDRESSEELEN) END SET @DESCRIPTION = RTRIM(ISNULL(@DESCRIPTION, '')) IF (LEN(@DESCRIPTION) > @DESCRIPTIONLEN) BEGIN SET @DESCRIPTION = RTRIM(SUBSTRING(@DESCRIPTION, 1, @DESCRIPTIONLEN)) END SET @MESSAGE = RTRIM(ISNULL(@MESSAGE, '')) IF (LEN(@MESSAGE) > @MESSAGELEN) BEGIN SET @MESSAGE = RTRIM(SUBSTRING(@MESSAGE, 1, @MESSAGELEN)) END IF (@ID = 0) BEGIN SET @Action = 'Created Draft Bill' SELECT @ID = ISNULL(MAX([BH].[DRAFTNO]), 0) + 1 FROM [dbo].[BillHeader] [BH] INSERT INTO [dbo].[BillHeader] ([DRAFTNO], [MATTER], [ADDRESSEE], [DATE], [WRITEDOWN], [MATTERDESCRIPTION], [RETURNREASON], [FECODE], [USER], [INVCR], [OURREF], [YOURREF], [BillSent], [OPENINVOICE], [DefaultBillLayoutReportID], [TRANSFER], [CreditInvoiceNo], [RELEASED], [BILLNO], [ManualFeeBreakDown], [FEMISCTOTAL], [BATCHNO], [ACTIONID], [WRITEBACKVALUE], [WRITEBACKHOURS], [RoundTo]) SELECT @ID AS [NewID], @matter AS [MATTER], @ADDRESS AS [ADDRESSEE], @BILLDATE AS [DATE], @WRITEDOWNDATE AS [WRITEDOWN], @DESCRIPTION AS [MATTERDESCRIPTION], @MESSAGE AS [RETURNREASON], @FEEEARNER AS [FECODE], @CREATEDBY AS [USER], @TYPE AS [INVCR], @OURREF AS [OURREF], @YOURREF [YOURREF], @BillSent AS [BillSent], @OPENINVOICE AS [OPENINVOICE], @DEFAULTREPORTID AS [DefaultBillLayoutReportID], @TRANSFERTOPAY AS [TRANSFER], @CreditInvoiceNo AS [CreditInvoiceNo], CASE WHEN @RELEASED = 'Y' THEN 'Y' ELSE 'N' END AS [RELEASED], 0 AS [BILLNO], 0, 0, 0, 0, 0, 0, CASE WHEN ISNULL(@RoundTo, 0) <= 0 THEN 0.01 ELSE @RoundTo END END ELSE BEGIN SET @Action = 'Updated Draft Bill' DECLARE @RoundTo2 DECIMAL(11, 8) SET @RoundTo2 = ISNULL((SELECT [BH].[RoundTo] FROM [dbo].[BillHeader] [BH] WHERE [BH].[DRAFTNO] = @ID), 0) UPDATE [BH] SET [BH].[DATE] = @BILLDATE, [BH].[WRITEDOWN] = @WRITEDOWNDATE, [BH].[ADDRESSEE] = @ADDRESS, [BH].[MATTERDESCRIPTION] = @DESCRIPTION, [BH].[RETURNREASON] = @MESSAGE, [BH].[FECODE] = @FEEEARNER, [BH].[USER] = @CREATEDBY, [BH].[INVCR] = @TYPE, [BH].[OURREF] = @OURREF, [BH].[YOURREF] = @YOURREF, [BH].[BillSent] = @BILLSENT, [BH].[OPENINVOICE] = @OPENINVOICE, [BH].[DefaultBillLayoutReportID] = @DEFAULTREPORTID, [BH].[TRANSFER] = @TRANSFERTOPAY, [BH].[CreditInvoiceNo] = @CreditInvoiceNo, [BH].[RoundTo] = CASE WHEN ISNULL(@RoundTo, [BH].[RoundTo]) <= 0 THEN 0.01 ELSE ISNULL(@RoundTo, [BH].[RoundTo]) END FROM [dbo].[BillHeader] [BH] WHERE [BH].[DRAFTNO] = @ID IF @RoundTo2 <> @RoundTo BEGIN EXEC [dbo].[ky_NETSPCorrectBillDetailsANDFEBreakdown] @ID END END IF (@ID = 0) BEGIN SELECT CONVERT(INT, NULL) AS [ID] RETURN END EXEC [dbo].[ky_NETSPRecalculateDraftBillTotals] @ID IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'BillHeader' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'DECLARE @DRAFTNO INT DECLARE @FEEEARNER VARCHAR(10) DECLARE @TEXT VARCHAR(MAX) DECLARE @NewActionID int SET @DRAFTNO = ' + CONVERT(VARCHAR(10), @ID) + ' SET @FEEEARNER = ''' + REPLACE(@HANDLERCODE, '''', '''''') + ''' SET @TEXT = ''Draft Bill No: ' + CONVERT(VARCHAR(10), @ID) + ''' SET @NewActionID = NULL BEGIN TRY SELECT @NewActionID = DIA.[ActionID] FROM [dbo].[diary] DIA WHERE DIA.[DRAFTBILLNO] = @DRAFTNO END TRY BEGIN CATCH SET @NewActionID = NULL END CATCH IF (@NewActionID IS NULL) BEGIN -- Pino 2015-09-30 Start EXEC @NewActionID = [dbo].[ky_NETGetNextActionID] --SELECT @NewActionID = ISNULL(MAX(DIA.[ActionID]), 0) + 1 -- FROM [dbo].[diary] DIA -- Pino 2015-09-30 End INSERT INTO [dbo].[diary] ([ACTIONID], [ORGINALACTIONID], [CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [DisplayText], [DUEDATE], [IMAGENO], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [PROCESSSTATUS], [BILLABLE], [BILLDESCRIPTION], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [TxmSent]) SELECT TOP 1 @NewActionID, @NewActionID, RTRIM(ISNULL([BH].[MATTER], '''')) AS [CASECODE], GETDATE() AS [DATE], CONVERT(INT, 0) AS [STATUS], RTRIM(ISNULL(TA.[ACTIONCODE], '''')) AS [ACTIONCODE], RTRIM(ISNULL(TA.[STATUS], '''')) AS [ACTIONSTATUS], RTRIM(ISNULL(TA.[ACTIONCATEGORY], '''')) AS [ACTIONTYPE], RTRIM(ISNULL(TA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(@FEEEARNER, '''')) AS [FNCODE], RTRIM(ISNULL(HAN.[TEAM], '''')) AS [TEAMCODE], @TEXT AS [TEXT1], [dbo].[ky_FNGetDisplayText](CONVERT(VARCHAR(MAX), @TEXT)) AS [DisplayText], CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112)) AS [DUEDATE], 0 AS [IMAGENO], CASE WHEN RTRIM(ISNULL(TA.[PUBLISHER], '''')) IN (''A'', ''P'', ''N'') THEN UPPER(RTRIM(ISNULL(TA.[PUBLISHER], ''''))) ELSE '''' END AS [PUBLISH], [dbo].[ky_ConvertTimeToClarion](GETDATE()) AS [DYSTARTTIME], [dbo].[ky_ConvertTimeToClarion](GETDATE()) AS [DYENDTIME], CASE WHEN RTRIM(ISNULL(TA.[PRIORITY], '''')) IN (''High'', ''Low'', ''Normal'') THEN UPPER(SUBSTRING(TA.[PRIORITY], 1, 1)) ELSE ''N'' END AS [PRIORITY], CASE WHEN RTRIM(ISNULL(TA.[HIGHLIGHTED], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [HIGHLIGHTED], RTRIM(ISNULL(TA.[MILESTONETYPE], '''')) AS [MILESTEONETYPE], 0 AS [PROCESSSTATUS], 0 AS [BILLABLE], '''' AS [BILLDESCRIPTION], '''' AS [SUBJECT], 0 AS [DELEGATIONSTATUS], @DRAFTNO AS [DRAFTBILLNO], 0 AS [TxmSent] FROM [dbo].[BillHeader] BH INNER JOIN [dbo].[TemplateActions] TA ON TA.[WKTCODE] = ''SYS'' AND TA.[ACTIONCODE] = ''DB01'' INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = [BH].[MATTER] INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = @FEEEARNER LEFT OUTER JOIN [dbo].[diary] DIA ON DIA.[DRAFTBILLNO] = @DRAFTNO WHERE [BH].[DRAFTNO] = @DRAFTNO INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DUEDATE], [DUETIME], [STATUS], [OWNER], [DELEGATE], [ActionType], [FromHandler], [DelType]) SELECT DIA.[ActionID], DIA.[FNCode], DIA.[TEAMCODE], DIA.[DUEDATE], DIA.[DYSTARTTIME], DIA.[DUEDATE], DIA.[DYSTARTTIME], 0, ''Y'', DIA.[FNCODE], DIA.[ACTIONTYPE], DIA.[FNCODE], ''Created'' FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @NewActionID UPDATE BH SET [BH].[ActionID] = @NewActionID FROM [dbo].[BillHeader] BH WHERE [BH].[DRAFTNO] = @DRAFTNO END' EXEC (@COMMAND) END SET @COMMAND = 'DECLARE @ID INT SET @ID = ' + CONVERT(VARCHAR(10), @ID) + ' DECLARE @xml XML SET @xml = (SELECT * FROM BillHeader WHERE DRAFTNO = @ID FOR XML AUTO) INSERT INTO [dbo].[BillLogging] ([DATE], [DRAFTNO], [Handler], [Action]) VALUES(GETDATE(), @ID, ''' + REPLACE(@HANDLERCODE, '''', '''''') + ''', ''' + REPLACE(@Action, '''', '''''') + ''' + CONVERT(VARCHAR(MAX), @xml))' EXEC (@COMMAND) SELECT @ID AS [ID] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SetDraftBillHeaderSam4' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetDraftBillHeaderSam4] END GO Create PROCEDURE [dbo].[KAAS_SetDraftBillHeaderSam4] (@IDV VARCHAR(10), @HANDLERCODE VARCHAR(10), @matter VARCHAR(20), @ADDRESSEE VARCHAR(MAX), @ADDRESS VARCHAR(MAX), @BILLDATEV VARCHAR(8), @WRITEDOWNDATEV VARCHAR(8), @DESCRIPTION VARCHAR(MAX), @CREATEDBY VARCHAR(10), @FEEEARNER VARCHAR(10), @TYPE VARCHAR(1), @OURREF VARCHAR(MAX), @YOURREF VARCHAR(MAX), @OPENINVOICE VARCHAR(1), @MESSAGE VARCHAR(MAX), @TRANSFERTOPAY VARCHAR(1), @CreditInvoiceNoV VARCHAR(10), @RELEASED VARCHAR(1), @BILLSENT VARCHAR(1), @DEFAULTREPORTV VARCHAR(10), @PROFORMA VARCHAR(1)) AS /***************************************************************************** * * Create / Modify the Draft Bill Header * SP suitable for both SAM4 and SAM3 * 2014-12-01 PINO Add new DefaultBillLayoutReportID column * 2015-06-30 PINO Add FECode column for SAM3 * 2015-09-30 PINO Use ky_NETGetNextActionID * 2018-12-05 JOHN Removed duplicate "Draft Bill" from diary text * 2020-06-05 Prabhu Added PROFORMA for SAM4 * *****************************************************************************/ BEGIN DECLARE @ID INT DECLARE @COMMAND NVARCHAR(MAX) DECLARE @PARMS NVARCHAR(MAX) DECLARE @HEADERTABLE VARCHAR(20) DECLARE @DETAILTABLE VARCHAR(20) DECLARE @DRAFTNO VARCHAR(70) DECLARE @MATTERCODE VARCHAR(70) DECLARE @ADDRESSLEN INT DECLARE @ADDRESSEELEN INT DECLARE @BILLDATECOL VARCHAR(70) DECLARE @BILLDATE DATETIME DECLARE @DESCRIPTIONLEN INT DECLARE @DESCRIPTIONCOL VARCHAR(70) DECLARE @FEEEARNERCOL VARCHAR(70) DECLARE @CREATEDBYCOL VARCHAR(70) DECLARE @TYPECOL VARCHAR(70) DECLARE @OURREFCOL VARCHAR(70) DECLARE @OURREFLEN INT DECLARE @BillSentColumn VARCHAR(70) DECLARE @YOURREFCOL VARCHAR(70) DECLARE @YOURREFLEN INT DECLARE @WRITEDOWNCOL VARCHAR(70) DECLARE @WRITEDOWNDATE DATETIME DECLARE @MESSAGELEN INT DECLARE @MESSAGECOL VARCHAR(70) DECLARE @TRANSFERCOL VARCHAR(70) DECLARE @PROFORMACOL VARCHAR(70) DECLARE @CreditInvoiceNo INT DECLARE @ReleasedColumn VARCHAR(70) DECLARE @BillNoColumn VARCHAR(70) DECLARE @Action VARCHAR(200) DECLARE @DEFAULTREPORTID INT DECLARE @BillColumns TABLE ([ColumnName] VARCHAR(200), [TypeName] VARCHAR(200), [MaxLength] INT) IF EXISTS(SELECT TOP 1 1 FROM [sys].[objects] SO WHERE SO.[name] = 'BillHeader' AND SO.[type] = 'U') BEGIN SET @HEADERTABLE = '[BillHeader]' SET @DETAILTABLE = '[BillDetails]' SET @DRAFTNO = '[DRAFTNO]' SET @MATTERCODE = '[MATTER]' SET @BILLDATECOL = '[DATE]' SET @WRITEDOWNCOL = '[WRITEDOWN]' SET @DESCRIPTIONCOL = '[MATTERDESCRIPTION]' SET @CREATEDBYCOL = '[USER]' SET @FEEEARNERCOL = '[FECODE]' SET @TYPECOL = '[INVCR]' SET @OURREFCOL = '[OURREF]' SET @YOURREFCOL = '[YOURREF]' SET @MESSAGECOL = '[RETURNREASON]' SET @TRANSFERCOL = '[TRANSFER]' SET @ReleasedColumn = '[RELEASED]' SET @BillNoColumn = '[BILLNO]' SET @BillSentColumn = '[BillSent]' END IF EXISTS(SELECT TOP 1 1 FROM [sys].[objects] SO WHERE SO.[name] = 'BillHead' AND SO.[type] = 'U') BEGIN SET @HEADERTABLE = '[BillHead]' SET @DETAILTABLE = '[BillDetail]' SET @DRAFTNO = '[BillingID]' SET @MATTERCODE = '[MatterCode]' SET @BILLDATECOL = '[BillDate]' SET @WRITEDOWNCOL = '[TimeWriteDownDate]' SET @DESCRIPTIONCOL = '[BillDescription]' SET @CREATEDBYCOL = '[CreateBy]' SET @FEEEARNERCOL = '[FECODE]' SET @TYPECOL = '[TYPE]' SET @OURREFCOL = '[Ref]' SET @YOURREFCOL = '' SET @MESSAGECOL = '[Message]' SET @TRANSFERCOL = '[TransferToPay]' SET @PROFORMACOL = '[PROFORMA]' SET @ReleasedColumn = '[BillStatus]' SET @BillNoColumn = '' SET @BillSentColumn = '' END BEGIN TRY SET @ID = CONVERT(INT, @IDV) END TRY BEGIN CATCH SET @ID = 0 END CATCH BEGIN TRY SET @DEFAULTREPORTID = CONVERT(INT, @DEFAULTREPORTV) END TRY BEGIN CATCH END CATCH IF ISNULL(@DEFAULTREPORTID, 0) = 0 BEGIN SET @DEFAULTREPORTID = [dbo].[ky_FNDefaultBillLayoutReport]() END SET @COMMAND = 'SELECT @ID = BH.' + @DRAFTNO + ' FROM [dbo].' + @HEADERTABLE + ' BH WHERE BH.' + @DRAFTNO + ' = ' + CONVERT(VARCHAR(10), @ID) SET @ID = 0 SET @PARMS = '@ID INT out' print('1'); print(@COMMAND); EXEC sys.sp_executesql @COMMAND, @PARMS, @ID out IF (@ID = 0) AND (RTRIM(ISNULL(@IDV, '')) NOT IN ('', '0')) BEGIN PRINT('ID-FAILED'); SELECT CONVERT(INT, 0) AS [ID] RETURN END IF RTRIM(ISNULL(@FEEEARNER, '')) = '' BEGIN SET @FEEEARNER = [dbo].[ky_NETFNMatterFECode](@Matter) END IF (@ID <> 0) BEGIN SET @COMMAND = ' SELECT @matter = MAT.[CODE] FROM [dbo].' + @HEADERTABLE + ' BH INNER JOIN [dbo].[matters] MAT ON MAT.[CODE] = BH.' + @MATTERCODE + ' AND MAT.[CODE] = ''' + RTRIM(ISNULL(@matter, '')) + ''' WHERE BH.' + @DRAFTNO + ' = ' + CONVERT(VARCHAR(10), @ID) END ELSE BEGIN SET @COMMAND = ' SELECT @matter = MAT.[CODE] FROM [dbo].[matters] MAT WHERE MAT.[CODE] = ''' + RTRIM(ISNULL(@matter, '')) + '''' END SET @matter = '' SET @PARMS = '@matter VARCHAR(20) out' print('2'); print(@COMMAND); EXEC sys.sp_executesql @COMMAND, @PARMS, @matter out IF (RTRIM(ISNULL(@matter, '')) = '') BEGIN PRINT('MATTER-FAILED'); SELECT CONVERT(INT, 0) AS [ID] RETURN END BEGIN TRY SET @CreditInvoiceNo = CONVERT(INT, @CreditInvoiceNoV) END TRY BEGIN CATCH SET @CreditInvoiceNo = 0 END CATCH IF (@CreditInvoiceNo = 0) AND (RTRIM(ISNULL(@CreditInvoiceNoV, '')) NOT IN ('', '0')) BEGIN PRINT('CRED-INV-FAILED'); SELECT CONVERT(INT, 0) AS [ID] RETURN END IF (@CreditInvoiceNo <> 0) BEGIN IF (@HEADERTABLE = '[BillHeader]') BEGIN SET @COMMAND = 'SELECT @CreditInvoiceNo = DTL.[BATCHNO] FROM [dbo].[DebtorsLedger] DTL WHERE DTL.[BATCHNO] = ' + CONVERT(VARCHAR(10), @CreditInvoiceNo) + ' AND DTL.[MATTER] = ''' + @matter + '''' SET @CreditInvoiceNo = 0 SET @PARMS = '@CreditInvoiceNo INT out' EXEC sys.sp_executesql @COMMAND, @PARMS, @CreditInvoiceNo out IF (@CreditInvoiceNo = 0) AND (RTRIM(ISNULL(@CreditInvoiceNoV, '')) NOT IN ('', '0')) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END END END IF (@FEEEARNERCOL <> '') BEGIN SET @COMMAND = ' SELECT @FEEEARNER = RTRIM(ISNULL(HAN.[CODE], '''''''')) FROM [dbo].[HANDLERS] HAN WHERE HAN.[CODE] = ''' + RTRIM(ISNULL(@FEEEARNER, '')) + '''' SET @FEEEARNER = '' SET @PARMS = '@FEEEARNER VARCHAR(10) out' print('4'); print(@COMMAND); EXEC sys.sp_executesql @COMMAND, @PARMS, @FEEEARNER out IF (RTRIM(ISNULL(@FEEEARNER, '')) = '') BEGIN PRINT('FEE-EARNER-FAILED'); SELECT CONVERT(INT, 0) AS [ID] RETURN END END SET @COMMAND = ' SELECT @CREATEDBY = RTRIM(ISNULL(HAN.[CODE], '''''''')) FROM [dbo].[HANDLERS] HAN WHERE HAN.[CODE] = ''' + RTRIM(ISNULL(@CREATEDBY, '')) + '''' SET @CREATEDBY = '' SET @PARMS = '@CREATEDBY VARCHAR(10) out' EXEC sys.sp_executesql @COMMAND, @PARMS, @CREATEDBY out IF (RTRIM(ISNULL(@CREATEDBY, '')) = '') BEGIN print('5'); PRINT('CREATEDBY-FAILED'); SELECT CONVERT(INT, 0) AS [ID] RETURN END BEGIN TRY SET @BILLDATE = CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @BILLDATEV), 112)) END TRY BEGIN CATCH SELECT CONVERT(INT, 0) AS [ID] RETURN END CATCH IF (@BILLDATE IS NULL) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END IF (CONVERT(VARCHAR(8), @BILLDATE, 112) <> @BILLDATEV) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END BEGIN TRY SET @WRITEDOWNDATE = CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @WRITEDOWNDATEV), 112)) END TRY BEGIN CATCH SELECT CONVERT(INT, 0) AS [ID] RETURN END CATCH IF (@WRITEDOWNDATE IS NULL) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END IF (CONVERT(VARCHAR(8), @WRITEDOWNDATE, 112) <> @WRITEDOWNDATEV) BEGIN SELECT CONVERT(INT, 0) AS [ID] RETURN END SET @TYPE = CASE WHEN @TYPE = 'C' THEN 'C' ELSE 'I' END SET @OPENINVOICE = CASE WHEN @OPENINVOICE = 'Y' THEN 'Y' ELSE 'N' END SET @TRANSFERTOPAY = CASE WHEN @TRANSFERTOPAY = 'Y' THEN 'Y' ELSE 'N' END SET @PROFORMA = CASE WHEN @PROFORMA = 'Y' THEN 'Y' ELSE 'N' END INSERT INTO @BillColumns ([ColumnName], [TypeName], [MaxLength]) SELECT DISTINCT LOWER(SC.[name]) AS [ColumnName], ST.[name] As [TypeName], [dbo].[ky_NETFNGetColumnSize](SO.[object_id], SC.[column_id]) AS [maxlength] FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC INNER JOIN [sys].[types] ST ON ST.[system_type_id] = SC.[system_type_id] ON SC.[object_id] = SO.[object_id] WHERE PATINDEX('%**' + SO.[name] + '**%', '**BillHeader**BillHead**') > 0 AND SO.[type] = 'U' SELECT @ADDRESSLEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] = 'address' SET @ADDRESSLEN = ISNULL(@ADDRESSLEN, 0) SELECT @ADDRESSEELEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] = 'addressee' SET @ADDRESSEELEN = ISNULL(@ADDRESSEELEN, 0) SELECT @DESCRIPTIONLEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] IN ('matterdescription', 'billdescription') SELECT @MESSAGELEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] IN ('returnreason', 'message') SELECT @OURREFLEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] IN ('ourref', 'ref') SELECT @YOURREFLEN = BC.[MaxLength] FROM @BillColumns BC WHERE BC.[ColumnName] = 'yourref' SET @YOURREFLEN = ISNULL(@YOURREFLEN, 0) IF (@ADDRESSLEN = 0) BEGIN SET @ADDRESS = @ADDRESSEE + CHAR(13) + CHAR(10) + @ADDRESS SET @ADDRESSEE = '' IF (LEN(@ADDRESS) > @ADDRESSEELEN) BEGIN SET @ADDRESS = SUBSTRING(@ADDRESS, 1, @ADDRESSEELEN) END END ELSE BEGIN IF (LEN(@ADDRESS) > @ADDRESSLEN) BEGIN SET @ADDRESS = SUBSTRING(@ADDRESS, 1, @ADDRESSLEN) END IF (LEN(@ADDRESSEE) > @ADDRESSEELEN) BEGIN SET @ADDRESSEE = SUBSTRING(@ADDRESSEE, 1, @ADDRESSEELEN) END END SET @DESCRIPTION = RTRIM(ISNULL(@DESCRIPTION, '')) IF (LEN(@DESCRIPTION) > @DESCRIPTIONLEN) BEGIN SET @DESCRIPTION = RTRIM(SUBSTRING(@DESCRIPTION, 1, @DESCRIPTIONLEN)) END SET @MESSAGE = RTRIM(ISNULL(@MESSAGE, '')) IF (LEN(@MESSAGE) > @MESSAGELEN) BEGIN SET @MESSAGE = RTRIM(SUBSTRING(@MESSAGE, 1, @MESSAGELEN)) END IF (@ID = 0) BEGIN SET @Action = 'Created Draft Bill' SET @COMMAND = ' SELECT @ID = ISNULL(MAX(BH.' + @DRAFTNO + '), 0) + 1 FROM [dbo].' + @HEADERTABLE + ' BH INSERT INTO [dbo].' + @HEADERTABLE + ' (' + @DRAFTNO + ', ' + @MATTERCODE IF (@ADDRESSEELEN > 0) BEGIN SET @COMMAND = @COMMAND + ', [ADDRESSEE]' END IF (@ADDRESSLEN > 0) BEGIN SET @COMMAND = @COMMAND + ', [ADDRESS]' END SET @COMMAND = @COMMAND + ', ' + @BILLDATECOL SET @COMMAND = @COMMAND + ', ' + @WRITEDOWNCOL SET @COMMAND = @COMMAND + ', ' + @DESCRIPTIONCOL SET @COMMAND = @COMMAND + ', ' + @MESSAGECOL IF (@FEEEARNERCOL <> '') BEGIN SET @COMMAND = @COMMAND + ', ' + @FEEEARNERCOL END SET @COMMAND = @COMMAND + ', ' + @CREATEDBYCOL SET @COMMAND = @COMMAND + ', ' + @TYPECOL SET @COMMAND = @COMMAND + ', ' + @OURREFCOL IF (@YOURREFCOL <> '') BEGIN SET @COMMAND = @COMMAND + ', ' + @YOURREFCOL END IF (@BillSentColumn <> '') BEGIN SET @COMMAND = @COMMAND + ', ' + @BillSentColumn END SET @COMMAND = @COMMAND + ', [OPENINVOICE]' SET @COMMAND = @COMMAND + ', [DefaultBillLayoutReportID]' SET @COMMAND = @COMMAND + ', ' + @TRANSFERCOL SET @COMMAND = @COMMAND + ', ' + @PROFORMACOL SET @COMMAND = @COMMAND + ', [CreditInvoiceNo]' SET @COMMAND = @COMMAND + ', ' + @ReleasedColumn IF (@BillNoColumn <> '') BEGIN SET @COMMAND = @COMMAND + ', ' + @BillNoColumn END IF (@HEADERTABLE = '[BillHeader]') BEGIN SET @COMMAND = @COMMAND + ', [ManualFeeBreakDown], [FEMISCTOTAL], [BATCHNO], [ACTIONID], [WRITEBACKVALUE], [WRITEBACKHOURS]' END SET @COMMAND = @COMMAND + ') SELECT @ID AS [NewID], ''' + @matter + ''' AS ' + @MATTERCODE IF (@ADDRESSLEN > 0) BEGIN SET @COMMAND = @COMMAND + ', ''' + REPLACE(@ADDRESSEE, '''', '''''') + ''' AS [ADDRESSEE]' SET @COMMAND = @COMMAND + ', ''' + REPLACE(@ADDRESS, '''', '''''') + ''' AS [ADDRESS]' END ELSE BEGIN SET @COMMAND = @COMMAND + ', ''' + REPLACE(@ADDRESS, '''', '''''') + ''' AS [ADDRESSEE]' END SET @COMMAND = @COMMAND + ', ''' + @BILLDATEV + ''' AS ' + @BILLDATECOL SET @COMMAND = @COMMAND + ', ''' + @WRITEDOWNDATEV + ''' AS ' + @WRITEDOWNCOL SET @COMMAND = @COMMAND + ', ''' + REPLACE(@DESCRIPTION, '''', '''''') + ''' AS ' + @DESCRIPTIONCOL SET @COMMAND = @COMMAND + ', ''' + REPLACE(@MESSAGE, '''', '''''') + ''' AS ' + @MESSAGECOL IF (@FEEEARNERCOL <> '') BEGIN SET @COMMAND = @COMMAND + ', ''' + REPLACE(@FEEEARNER, '''', '''''') + ''' AS ' + @FEEEARNERCOL END SET @COMMAND = @COMMAND + ', ''' + REPLACE(@CREATEDBY, '''', '''''') + ''' AS ' + @CREATEDBYCOL SET @COMMAND = @COMMAND + ', ''' + REPLACE(@TYPE, '''', '''''') + ''' AS ' + @TYPECOL SET @COMMAND = @COMMAND + ', ''' + REPLACE(@OURREF, '''', '''''') + ''' AS ' + @OURREFCOL IF (@YOURREFCOL <> '') BEGIN SET @COMMAND = @COMMAND + ', ''' + REPLACE(@YOURREF, '''', '''''') + ''' AS ' + @YOURREFCOL END IF (@BillSentColumn <> '') BEGIN SET @COMMAND = @COMMAND + ', ''' + REPLACE(@BillSent, '''', '''''') + ''' AS ' + @BillSentColumn END SET @COMMAND = @COMMAND + ', ''' + REPLACE(@OPENINVOICE, '''', '''''') + ''' AS [OPENINVOICE]' SET @COMMAND = @COMMAND + ', ' + CONVERT(VARCHAR(10), @DEFAULTREPORTID) + ' AS [DefaultBillLayoutReportID]' SET @COMMAND = @COMMAND + ', ''' + REPLACE(@TRANSFERTOPAY, '''', '''''') + ''' AS ' + @TRANSFERCOL SET @COMMAND = @COMMAND + ', ''' + REPLACE(@PROFORMA, '''', '''''') + ''' AS ' + @PROFORMACOL SET @COMMAND = @COMMAND + ', ' + CONVERT(VARCHAR(10), @CreditInvoiceNo) + ' AS [CreditInvoiceNo]' IF (@ReleasedColumn = '[RELEASED]') BEGIN IF (@RELEASED = 'Y') BEGIN SET @COMMAND = @COMMAND + ', ''Y'' AS [RELEASED]' END ELSE BEGIN SET @COMMAND = @COMMAND + ', ''N'' AS [RELEASED]' END END ELSE BEGIN IF (@RELEASED = 'Y') BEGIN SET @COMMAND = @COMMAND + ', ''Released'' AS [BillStatus]' END ELSE BEGIN SET @COMMAND = @COMMAND + ', ''Draft'' AS [BillStatus]' END END IF (@BillNoColumn <> '') BEGIN SET @COMMAND = @COMMAND + ', 0 AS ' + @BillNoColumn END IF (@HEADERTABLE = '[BillHeader]') BEGIN SET @COMMAND = @COMMAND + ', 0, 0, 0, 0, 0, 0' END END ELSE BEGIN SET @Action = 'Updated Draft Bill' SET @COMMAND = ' UPDATE BH' SET @COMMAND = @COMMAND + ' SET BH.' + @BILLDATECOL + ' = ''' + @BILLDATEV + '''' SET @COMMAND = @COMMAND + ', BH.' + @WRITEDOWNCOL + ' = ''' + @WRITEDOWNDATEV + '''' IF (@ADDRESSLEN > 0) BEGIN SET @COMMAND = @COMMAND + ', BH.[ADDRESSEE] = ''' + REPLACE(@ADDRESSEE, '''', '''''') + ''', BH.[ADDRESS] = ''' + REPLACE(@ADDRESS, '''', '''''') + '''' END ELSE BEGIN SET @COMMAND = @COMMAND + ', BH.[ADDRESSEE] = ''' + REPLACE(@ADDRESS, '''', '''''') + '''' END SET @COMMAND = @COMMAND + ', BH.' + @DESCRIPTIONCOL + ' = ''' + REPLACE(@DESCRIPTION, '''', '''''') + '''' SET @COMMAND = @COMMAND + ', BH.' + @MESSAGECOL + ' = ''' + REPLACE(@MESSAGE, '''', '''''') + '''' IF (@FEEEARNERCOL <> '') BEGIN SET @COMMAND = @COMMAND + ', BH.' + @FEEEARNERCOL + ' = ''' + REPLACE(@FEEEARNER, '''', '''''') + '''' END SET @COMMAND = @COMMAND + ', BH.' + @CREATEDBYCOL + ' = ''' + REPLACE(@CREATEDBY, '''', '''''') + '''' SET @COMMAND = @COMMAND + ', BH.' + @TYPECOL + ' = ''' + REPLACE(@TYPE, '''', '''''') + '''' SET @COMMAND = @COMMAND + ', BH.' + @OURREFCOL + ' = ''' + REPLACE(@OURREF, '''', '''''') + '''' IF (@YOURREFCOL <> '') BEGIN SET @COMMAND = @COMMAND + ', BH.' + @YOURREFCOL + ' = ''' + REPLACE(@YOURREF, '''', '''''') + '''' END IF (@BillSentColumn <> '') BEGIN SET @COMMAND = @COMMAND + ', BH.' + @BillSentColumn + ' = ''' + REPLACE(@BILLSENT, '''', '''''') + '''' END SET @COMMAND = @COMMAND + ', BH.[OPENINVOICE] = ''' + REPLACE(@OPENINVOICE, '''', '''''') + '''' SET @COMMAND = @COMMAND + ', BH.[DefaultBillLayoutReportID] = ' + CONVERT(VARCHAR(10), @DEFAULTREPORTID) + '' SET @COMMAND = @COMMAND + ', BH.' + @TRANSFERCOL + ' = ''' + REPLACE(@TRANSFERTOPAY, '''', '''''') + '''' SET @COMMAND = @COMMAND + ', BH.' + @PROFORMACOL + ' = ''' + REPLACE(@PROFORMA, '''', '''''') + '''' SET @COMMAND = @COMMAND + ', BH.[CreditInvoiceNo] = ' + CONVERT(VARCHAR(10), @CreditInvoiceNo) SET @COMMAND = @COMMAND + ' FROM [dbo].' + @HEADERTABLE + ' BH WHERE BH.' + @DRAFTNO + ' = ' + CONVERT(VARCHAR(10), @ID) + ' SELECT @ID = ' + CONVERT(VARCHAR(10), @ID) END SET @PARMS = '@ID INT out' EXEC sys.sp_executesql @COMMAND, @PARMS, @ID out IF (@ID = 0) BEGIN SELECT CONVERT(INT, NULL) AS [ID] RETURN END SET @IDV = CONVERT(VARCHAR(10), @ID) EXEC [dbo].[ky_NETSPRecalculateDraftBillTotals] @IDV IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'BillHeader' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'DECLARE @DRAFTNO INT DECLARE @FEEEARNER VARCHAR(10) DECLARE @TEXT VARCHAR(MAX) DECLARE @NewActionID int SET @DRAFTNO = ' + CONVERT(VARCHAR(10), @ID) + ' SET @FEEEARNER = ''' + REPLACE(@HANDLERCODE, '''', '''''') + ''' SET @TEXT = ''Draft Bill No: ' + CONVERT(VARCHAR(10), @ID) + ''' SET @NewActionID = NULL BEGIN TRY SELECT @NewActionID = DIA.[ActionID] FROM [dbo].[diary] DIA WHERE DIA.[DRAFTBILLNO] = @DRAFTNO END TRY BEGIN CATCH SET @NewActionID = NULL END CATCH IF (@NewActionID IS NULL) BEGIN -- Pino 2015-09-30 Start EXEC @NewActionID = [dbo].[ky_NETGetNextActionID] --SELECT @NewActionID = ISNULL(MAX(DIA.[ActionID]), 0) + 1 -- FROM [dbo].[diary] DIA -- Pino 2015-09-30 End INSERT INTO [dbo].[diary] ([ACTIONID], [ORGINALACTIONID], [CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [DisplayText], [DUEDATE], [IMAGENO], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [PROCESSSTATUS], [BILLABLE], [BILLDESCRIPTION], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [TxmSent]) SELECT TOP 1 @NewActionID, @NewActionID, RTRIM(ISNULL(BH.[MATTER], '''')) AS [CASECODE], GETDATE() AS [DATE], CONVERT(INT, 0) AS [STATUS], RTRIM(ISNULL(TA.[ACTIONCODE], '''')) AS [ACTIONCODE], RTRIM(ISNULL(TA.[STATUS], '''')) AS [ACTIONSTATUS], RTRIM(ISNULL(TA.[ACTIONCATEGORY], '''')) AS [ACTIONTYPE], RTRIM(ISNULL(TA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(@FEEEARNER, '''')) AS [FNCODE], RTRIM(ISNULL(HAN.[TEAM], '''')) AS [TEAMCODE], @TEXT AS [TEXT1], [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @TEXT), ''''), 200) AS [DisplayText], CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112)) AS [DUEDATE], 0 AS [IMAGENO], CASE WHEN RTRIM(ISNULL(TA.[PUBLISHER], '''')) IN (''A'', ''P'', ''N'') THEN UPPER(RTRIM(ISNULL(TA.[PUBLISHER], ''''))) ELSE '''' END AS [PUBLISH], [dbo].[ky_ConvertTimeToClarion](GETDATE()) AS [DYSTARTTIME], [dbo].[ky_ConvertTimeToClarion](GETDATE()) AS [DYENDTIME], CASE WHEN RTRIM(ISNULL(TA.[PRIORITY], '''')) IN (''High'', ''Low'', ''Normal'') THEN UPPER(SUBSTRING(TA.[PRIORITY], 1, 1)) ELSE ''N'' END AS [PRIORITY], CASE WHEN RTRIM(ISNULL(TA.[HIGHLIGHTED], '''')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [HIGHLIGHTED], RTRIM(ISNULL(TA.[MILESTONETYPE], '''')) AS [MILESTEONETYPE], 0 AS [PROCESSSTATUS], 0 AS [BILLABLE], '''' AS [BILLDESCRIPTION], '''' AS [SUBJECT], 0 AS [DELEGATIONSTATUS], @DRAFTNO AS [DRAFTBILLNO], 0 AS [TxmSent] FROM [dbo].[BillHeader] BH INNER JOIN [dbo].[TemplateActions] TA ON TA.[WKTCODE] = ''SYS'' AND TA.[ACTIONCODE] = ''DB01'' INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = BH.[MATTER] INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = @FEEEARNER LEFT OUTER JOIN [dbo].[diary] DIA ON DIA.[DRAFTBILLNO] = @DRAFTNO WHERE BH.[DRAFTNO] = @DRAFTNO INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DUEDATE], [DUETIME], [STATUS], [OWNER], [DELEGATE], [ActionType], [FromHandler], [DelType]) SELECT DIA.[ActionID], DIA.[FNCode], DIA.[TEAMCODE], DIA.[DUEDATE], DIA.[DYSTARTTIME], DIA.[DUEDATE], DIA.[DYSTARTTIME], 0, ''Y'', DIA.[FNCODE], DIA.[ACTIONTYPE], DIA.[FNCODE], ''Created'' FROM [dbo].[diary] DIA WHERE DIA.[ACTIONID] = @NewActionID UPDATE BH SET BH.[ActionID] = @NewActionID FROM [dbo].[BillHeader] BH WHERE BH.[DRAFTNO] = @DRAFTNO END' EXEC (@COMMAND) END IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'BillHeader' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'DECLARE @ID INT SET @ID = ' + CONVERT(VARCHAR(10), @ID) + ' DECLARE @xml XML SET @xml = (SELECT * FROM BillHeader WHERE DRAFTNO = @ID FOR XML AUTO) INSERT INTO [dbo].[BillLogging] ([DATE], [DRAFTNO], [Handler], [Action]) VALUES(GETDATE(), @ID, ''' + REPLACE(@HANDLERCODE, '''', '''''') + ''', ''' + REPLACE(@Action, '''', '''''') + ''' + CONVERT(VARCHAR(MAX), @xml))' END ELSE BEGIN SET @COMMAND = 'DECLARE @ID INT SET @ID = ' + CONVERT(VARCHAR(10), @ID) + ' DECLARE @xml XML SET @xml = (SELECT * FROM BillHead WHERE BillingID = @ID FOR XML AUTO) INSERT INTO [dbo].[BillLogging] ([DATE], [DRAFTNO], [Handler], [Action]) VALUES(GETDATE(), @ID, ''' + REPLACE(@HANDLERCODE, '''', '''''') + ''', ''' + REPLACE(@Action, '''', '''''') + ''' + CONVERT(VARCHAR(MAX), @xml))' END EXEC (@COMMAND) SELECT @ID AS [ID] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SetGeneratedActionSubject' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetGeneratedActionSubject] END GO CREATE PROCEDURE [dbo].[KAAS_SetGeneratedActionSubject] (@ActionID INT, @NewSubject VARCHAR(500)) AS /************************************************************************************************************* * * * Sets Action Subject on basis of generated document name * * In order for this to do anything, the Action Subject must have a Question Mark in it. * * If the Action Subject doesn't have a question mark, this procedure does nothing. * * * * Stored Proceudre : KAAS_SetGeneratedActionSubject * * Copy from : [dbo].[ky_NETSPSetGeneratedActionSubject] * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * First compatible version: 5.5.1.2 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2017-07-04 Pino Carafa Created * * 2019-02-21 Pino Carafa Include TEXT1 and DisplayText, but ONLY if all three columns * * TEXT1, DisplayText and Subject contain the same value with a ? * * 2019-10-01 Pino Carafa Add code to prevent KEYD-6173 * * 2019-12-27 Vinodhan Created KAAS_SetGeneratedActionSubject * * * *************************************************************************************************************/ BEGIN DECLARE @OLDSUBJECT VARCHAR(500) SELECT @OLDSUBJECT = RTRIM(ISNULL([DIA].[SUBJECT], '')) FROM [dbo].[Diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID SET @NewSubject = RTRIM(ISNULL(@NewSubject, '')) -- KEYD-6173 START DECLARE @ReverseSubject VARCHAR(500) DECLARE @FOUND BIT SET @ReverseSubject = REVERSE(@NewSubject) SET @FOUND = 0 IF CHARINDEX(' ', @ReverseSubject) > 0 BEGIN DECLARE @NUM VARCHAR(10) SET @NUM = CONVERT(VARCHAR(10), SUBSTRING(@ReverseSubject, 1, CHARINDEX(' ', @ReverseSubject))) IF ISNUMERIC(@NUM) = 1 BEGIN IF CONVERT(FLOAT, CONVERT(INT, FLOOR(CONVERT(FLOAT, @NUM)))) = CONVERT(FLOAT, @NUM) BEGIN SET @ReverseSubject = SUBSTRING(@ReverseSubject, CHARINDEX(' ', @ReverseSubject) + 1, LEN(@ReverseSubject) - CHARINDEX(' ', @ReverseSubject)) SET @FOUND = 1 ENd END END IF @FOUND = 1 BEGIN IF (CHARINDEX(' ', @ReverseSubject) > 0) AND (CHARINDEX(' ', @ReverseSubject) < 14) BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[AssociateTypes] [AST] WHERE [AST].[CODE] = REVERSE(SUBSTRING(@ReverseSubject, 1, CHARINDEX(' ', @ReverseSubject) - 1))) BEGIN SET @NEWSUBJECT = REVERSE(SUBSTRING(@ReverseSubject, CHARINDEX(' ', @ReverseSubject) + 1, LEN(@ReverseSubject) - CHARINDEX(' ', @ReverseSubject))) END END END -- KEYD-6173 END UPDATE [DIA] SET [DIA].[SUBJECT] = @NewSubject, [DIA].[TEXT1] = CASE WHEN CONVERT(VARCHAR(500), [DIA].[TEXT1]) = @OLDSUBJECT AND CONVERT(VARCHAR(500), [DIA].[DisplayText]) = @OLDSUBJECT THEN @NewSubject ELSE [DIA].[TEXT1] END, [DIA].[DisplayText] = CASE WHEN CONVERT(VARCHAR(500), [DIA].[TEXT1]) = @OLDSUBJECT AND CONVERT(VARCHAR(500), [DIA].[DisplayText]) = @OLDSUBJECT THEN CONVERT(VARCHAR(200), @NewSubject) ELSE [DIA].[DisplayText] END FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID AND CHARINDEX('?', [DIA].[SUBJECT]) > 0 END GO IF OBJECT_ID(N'KAAS_SetHandlerPrivileges',N'P')IS NOT NULL DROP PROCEDURE KAAS_SetHandlerPrivileges GO CREATE PROCEDURE [dbo].[KAAS_SetHandlerPrivileges] (@HandlerCode VARCHAR(10), @Privileges VARCHAR(20)) AS BEGIN /***************************************************************************** * * ky_NETSetHandlerPrivileges * * Sets the Privileges for a handler * * Modification History * 2016-01-29 Pino Carafa Imported into Framework Release 2 * 2021-05-31 Sadiq Copied from Framework for Creating tenant user in web(12048) *****************************************************************************/ INSERT INTO [dbo].[HandlerNETGroupMembership] SELECT NHP.[HANDLER], NHP.[BitWiseID] FROM (SELECT @HandlerCode AS [HANDLER], CONVERT(BIGINT, 0) AS [BitWiseID]) NHP LEFT OUTER JOIN [dbo].[HandlerNETGroupMembership] NGM ON NGM.[HANDLER] = NHP.[HANDLER] WHERE NGM.[HANDLER] IS NULL UPDATE NGM SET NGM.[BitWiseID] = CONVERT(BIGINT, @Privileges) FROM [dbo].[HandlerNETGroupMembership] NGM WHERE NGM.[HANDLER] = @HandlerCode END GO IF EXISTS (SELECT TOP 1 1 FROM [sys].[objects] AS [SO] WHERE [SO].[name] = N'KAAS_SetInvoiceHeader' AND [SO].[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetInvoiceHeader] END GO CREATE PROCEDURE [dbo].[KAAS_SetInvoiceHeader] ( @DraftNo INT, @MatterCode VARCHAR(20), @BillDate DATETIME, @Addressee VARCHAR(400), @Type VARCHAR(1), @OurRef VARCHAR(15), @YourRef VARCHAR(100), @Total DECIMAL(19, 2), @TotalFees DECIMAL(19, 2), @TotalOutlay DECIMAL(19, 2), @TotalVAT DECIMAL(19, 2), @Released BIT, @ReturnReason VARCHAR(100), @Transfer BIT, @WriteDownDate DATETIME, @OpenInvoice BIT, @CreditInvoiceNo INT, @BillSent BIT, @DefaultBillLayoutReportID INT, @FECode VARCHAR(10), @MatterDescription VARCHAR(120), @RequestedCode VARCHAR(10)) AS /******************************************************************************** * * * [dbo].[KAAS_SetInvoiceHeader] * * * * Inserts/Update a draft bill request * * * * ????-??-?? ??? Created * * 2014-12-01 PINO Add new DefaultBillLayoutReportID column * * 2015-06-30 PINO Add FECode column for SAM3 * * 2015-09-30 PINO Use ky_NETGetNextActionID * * 2018-12-05 JOHN Removed duplicate "Draft Bill" from diary text * * 2019-11-13 Dheepin Vijith Created with the naming convention * * 2020-01-22 Prabhu Updated date format as UTC format * * 2024-04-02 John Ginnane #17719 - Rewrote completely * * 2024-05-15 Balamurugan.C Modified - RoundOff value to 0.01 because * it is creating issue in ky_NETSPCorrectBillDetailsANDFEBreakdown sp * ********************************************************************************/ BEGIN SET NOCOUNT ON; DECLARE @Action VARCHAR(20) -- If the incoming draft number doesn't exist then exit IF @DraftNo > 0 AND NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[BillHeader] WHERE [DRAFTNO] = @DraftNo) BEGIN SELECT 0 AS [DraftNo] RETURN END -- Make sure matter exists IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[matters] WHERE [Code] = @MatterCode) BEGIN SELECT 0 AS [DraftNo] RETURN END -- Make sure fee earner exists IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[Handlers] WHERE [CODE] = @FECode) BEGIN SELECT 0 AS [DraftNo] RETURN END -- Make sure requested code exists IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[Handlers] WHERE [CODE] = @RequestedCode) BEGIN SELECT 0 AS [DraftNo] RETURN END -- Clean up incoming data IF ISNULL(@DefaultBillLayoutReportID, 0) = 0 BEGIN SET @DefaultBillLayoutReportID = [dbo].[KAAS_FN_DefaultBillLayoutReport]() END IF ISNULL(@FECode, '') = '' BEGIN SELECT @FECode = [MAT].[FECode] FROM [dbo].[matters] AS [MAT] WHERE [MAT].[Code] = @MatterCode END IF ISNULL(@Type, '') NOT IN ('I', 'C') BEGIN SET @Type = 'I' END ELSE BEGIN SET @Type = UPPER(@Type) END SELECT @Total = ISNULL(@Total, 0), @TotalFees = ISNULL(@TotalFees, 0), @TotalOutlay = ISNULL(@TotalOutlay, 0), @TotalVAT = ISNULL(@TotalVAT, 0) IF @DraftNo = 0 BEGIN SET @Action = 'Created Draft Bill' SELECT @DraftNo = ISNULL(MAX([BIH].[DRAFTNO]), 0) + 1 FROM [dbo].[BillHeader] As [BIH] -- Insert new draft bill request INSERT INTO [dbo].[BillHeader] ( [MATTER], [DRAFTNO], [DATE], [USER], [ADDRESSEE], [INVCR], [BILLNO], [OURREF], [YOURREF], [TOTAL], [FEES], [OUTLAY], [TOTALVAT], [FEEVATCODE], [NET0], [RATE1], [NETRATE1], [VATRATE1], [RATE2], [NETRATE2], [VATRATE2], [RATE3], [NETRATE3], [VATRATE3], [RELEASED], [RETURNREASON], [MATTERDESCRIPTION], [TRANSFER], [WRITEDOWN], [WRITEBACKHOURS], [WRITEBACKVALUE], [ACTIONID], [OPENINVOICE], [BATCHNO], [FEMISCTOTAL], [CreditInvoiceNo], [ManualFeeBreakDown], [BillSent], [DefaultBillLayoutReportID], [FeCode], [RoundTo]) SELECT @MatterCode, /* MATTER */ @DraftNo, /* DRAFTNO */ @BillDate, /* DATE */ @RequestedCode, /* USER */ @Addressee, /* ADDRESSEE */ @Type, /* INVCR */ 0, /* BILLNO */ @OurRef, /* OURREF */ @YourRef, /* YOURREF */ @Total, /* TOTAL */ @TotalFees, /* FEES */ @TotalOutlay, /* OUTLAY */ @TotalVAT, /* TOTALVAT */ '', /* FEEVATCODE */ 0, /* NET0 */ 0, /* RATE1 */ 0, /* NETRATE1 */ 0, /* VATRATE1 */ 0, /* RATE2 */ 0, /* NETRATE2 */ 0, /* VATRATE2 */ 0, /* RATE3 */ 0, /* NETRATE3 */ 0, /* VATRATE3 */ CASE WHEN @Released = 1 THEN 'Y' ELSE 'N' END, /* RELEASED */ @ReturnReason, /* RETURNREASON */ @MatterDescription, /* MATTERDESCRIPTION */ CASE WHEN @Transfer = 1 THEN 'Y' ELSE 'N' END, /* TRANSFER */ @WriteDownDate, /* WRITEDOWN */ 0, /* WRITEBACKHOURS */ 0, /* WRITEBACKVALUE */ 0, /* ACTIONID */ CASE WHEN @OpenInvoice = 1 THEN 'Y' ELSE 'N' END, /* OPENINVOICE */ 0, /* BATCHNO */ 0, /* FEMISCTOTAL */ 0, /* CreditInvoiceNo */ 0, /* ManualFeeBreakDown */ CASE WHEN @BillSent = 1 THEN 'Y' ELSE 'N' END, /* BillSent */ @DefaultBillLayoutReportID, /* DefaultBillLayoutReportID */ @FECode, /* FeCode */ 0.01 /* RoundTo */ END ELSE BEGIN SET @Action = 'Updated Draft Bill' -- Update existing draft bill request -- I have commented out columns which were not explicitly updated in the original procedure UPDATE [BIH] SET [BIH].[MATTER] = @MatterCode, [BIH].[DRAFTNO] = @DraftNo, [BIH].[DATE] = @BillDate, [BIH].[USER] = @RequestedCode, [BIH].[ADDRESSEE] = @Addressee, [BIH].[INVCR] = @Type, --[BIH].[BILLNO] = [BIH].[BILLNO], [BIH].[OURREF] = @OurRef, [BIH].[YOURREF] = @YourRef, [BIH].[TOTAL] = @Total, [BIH].[FEES] = @TotalFees, [BIH].[OUTLAY] = @TotalOutlay, [BIH].[TOTALVAT] = @TotalVAT, --[BIH].[FEEVATCODE] = [BIH].[FEEVATCODE], --[BIH].[NET0] = [BIH].[NET0], --[BIH].[RATE1] = [BIH].[RATE1], --[BIH].[NETRATE1] = [BIH].[NETRATE1], --[BIH].[VATRATE1] = [BIH].[VATRATE1], --[BIH].[RATE2] = [BIH].[RATE2], --[BIH].[NETRATE2] = [BIH].[NETRATE2], --[BIH].[VATRATE2] = [BIH].[VATRATE2], --[BIH].[RATE3] = [BIH].[RATE3], --[BIH].[NETRATE3] = [BIH].[NETRATE3], --[BIH].[VATRATE3] = [BIH].[VATRATE3], [BIH].[RELEASED] = CASE WHEN @Released = 1 THEN 'Y' ELSE 'N' END, [BIH].[RETURNREASON] = @ReturnReason, [BIH].[MATTERDESCRIPTION] = @MatterDescription, [BIH].[TRANSFER] = CASE WHEN @Transfer = 1 THEN 'Y' ELSE 'N' END, [BIH].[WRITEDOWN] = @WriteDownDate, --[BIH].[WRITEBACKHOURS] = [BIH].[WRITEBACKHOURS], --[BIH].[WRITEBACKVALUE] = [BIH].[WRITEBACKVALUE], --[BIH].[ACTIONID] = [BIH].[ACTIONID], [BIH].[OPENINVOICE] = CASE WHEN @OpenInvoice = 1 THEN 'Y' ELSE 'N' END, --[BIH].[BATCHNO] = [BIH].[BATCHNO], --[BIH].[FEMISCTOTAL] = [BIH].[FEMISCTOTAL], [BIH].[CreditInvoiceNo] = @CreditInvoiceNo, --[BIH].[ManualFeeBreakDown] = [BIH].[ManualFeeBreakDown], [BIH].[BillSent] = CASE WHEN @BillSent = 1 THEN 'Y' ELSE 'N' END, [BIH].[DefaultBillLayoutReportID] = @DefaultBillLayoutReportID, [BIH].[FeCode] = @FECode --[BIH].[RoundTo] = [BIH].[RoundTo] FROM [dbo].[BillHeader] AS [BIH] WHERE [BIH].[DRAFTNO] = @DraftNo END EXEC [dbo].[KAAS_RecalculateDraftBillTotals] @DraftNo DECLARE @ActionID INT SELECT @ActionID = [DIA].[ACTIONID] FROM [dbo].[diary] AS [DIA] WHERE [DIA].[DRAFTBILLNO] = @DraftNo IF ISNULL(@ActionID, 0) = 0 BEGIN DECLARE @DiaryText VARCHAR(MAX) SET @DiaryText = 'Draft Bill No: ' + CONVERT(VARCHAR(10), @DraftNo) EXEC @ActionID = [dbo].[KAAS_GetNextActionID] INSERT INTO [dbo].[diary] ( [ACTIONID], [ORGINALACTIONID], [CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [DisplayText], [DUEDATE], [IMAGENO], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [PROCESSSTATUS], [BILLABLE], [BILLDESCRIPTION], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [TxmSent]) SELECT TOP 1 @ActionID AS [ACTIONID], @ActionID AS [ORIGINALACTIONID], RTRIM(ISNULL([BIH].[MATTER], '')) AS [CASECODE], [dbo].[KAAS_FNConvertDateToUTC](GETDATE(), @FECode) AS [DATE], 0 AS [STATUS], RTRIM(ISNULL([TA].[ACTIONCODE], '')) AS [ACTIONCODE], RTRIM(ISNULL([TA].[STATUS], '')) AS [ACTIONSTATUS], RTRIM(ISNULL([TA].[ACTIONCATEGORY], '')) AS [ACTIONTYPE], RTRIM(ISNULL([TA].[PROCESSTYPE], '')) AS [PROCESSTYPE], RTRIM(ISNULL(@FECode, '')) AS [FNCODE], RTRIM(ISNULL([HAN].[TEAM], '')) AS [TEAMCODE], @DiaryText AS [TEXT1], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(CONVERT(VARCHAR(MAX), @DiaryText), ''), 200) AS [DisplayText], CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112)) AS [DUEDATE], 0 AS [IMAGENO], CASE WHEN RTRIM(ISNULL([TA].[PUBLISHER], '')) IN ('A', 'P', 'N') THEN UPPER(RTRIM(ISNULL([TA].[PUBLISHER], ''))) ELSE '' END AS [PUBLISH], [dbo].[KAAS_ConvertTimeToClarion](GETDATE()) AS [DYSTARTTIME], [dbo].[KAAS_ConvertTimeToClarion](GETDATE()) AS [DYENDTIME], CASE WHEN RTRIM(ISNULL([TA].[PRIORITY], '')) IN ('High', 'Low', 'Normal') THEN UPPER(SUBSTRING([TA].[PRIORITY], 1, 1)) ELSE 'N' END AS [PRIORITY], CASE WHEN RTRIM(ISNULL([TA].[HIGHLIGHTED], '')) = 'Y' THEN 'Y' ELSE 'N' END AS [HIGHLIGHTED], RTRIM(ISNULL([TA].[MILESTONETYPE], '')) AS [MILESTEONETYPE], 0 AS [PROCESSSTATUS], 0 AS [BILLABLE], '' AS [BILLDESCRIPTION], '' AS [SUBJECT], 0 AS [DELEGATIONSTATUS], @DraftNo AS [DRAFTBILLNO], 0 AS [TxmSent] FROM [dbo].[BillHeader] AS [BIH] INNER JOIN [dbo].[TemplateActions] AS [TA] ON [TA].[WKTCODE] = 'SYS' AND [TA].[ACTIONCODE] = 'DB01' INNER JOIN [dbo].[matters] AS [MAT] ON [MAT].[Code] = [BIH].[MATTER] INNER JOIN [dbo].[Handlers] AS [HAN] ON HAN.[CODE] = @FECode LEFT OUTER JOIN [dbo].[diary] AS [DIA] ON [DIA].[DRAFTBILLNO] = @DraftNo WHERE [BIH].[DRAFTNO] = @DraftNo INSERT INTO [dbo].[DiaryDelegations] ( [ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DUEDATE], [DUETIME], [STATUS], [OWNER], [DELEGATE], [ActionType], [FromHandler], [DelType]) SELECT [DIA].[ActionID], [DIA].[FNCode], [DIA].[TEAMCODE], [DIA].[DUEDATE], [DIA].[DYSTARTTIME], [DIA].[DUEDATE], [DIA].[DYSTARTTIME], 0, 'Y', [DIA].[FNCODE], [DIA].[ACTIONTYPE], [DIA].[FNCODE], 'Created' FROM [dbo].[diary] AS [DIA] WHERE [DIA].[ACTIONID] = @ActionID UPDATE [BIH] SET [BIH].[ActionID] = @ActionID FROM [dbo].[BillHeader] AS [BIH] WHERE [BIH].[DRAFTNO] = @DRAFTNO END DECLARE @XML XML SELECT @XML = (SELECT * FROM [dbo].[BillHeader] WHERE [DRAFTNO] = @DraftNo FOR XML AUTO) INSERT INTO [dbo].[BillLogging] ( [DATE], [DRAFTNO], [Handler], [Action]) VALUES (GETDATE(), @DraftNo, @RequestedCode, @Action + CONVERT(VARCHAR(MAX), @XML)) SELECT @DraftNo AS [DraftNo] RETURN END GO IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] WHERE [SO].[name] = 'RMLBackup' AND [SO].[type] = 'U') BEGIN SELECT * INTO [dbo].[RMLBackup] FROM [dbo].[RecentMatterList] END GO IF EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] LEFT OUTER JOIN sys.[columns] [SC] ON [SC].object_id = [SO].object_id AND [SC].[name] = 'UniqueID' WHERE [SO].[name] = 'RecentMatterList' AND [SO].[type] = 'U' AND [SC].[column_id] IS NULL) BEGIN ALTER TABLE [dbo].[RecentMatterList] ADD [UniqueID] BIGINT IDENTITY(1, 1) NOT NULL END GO IF EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] INNER JOIN sys.indexes [SI] INNER JOIN sys.index_columns [IC] INNER JOIN sys.columns [SC] ON [SC].object_id = [IC].object_id AND [SC].[column_id] = [IC].[column_id] ON [IC].object_id = [SI].object_id AND [IC].[index_id] = [SI].[index_id] ON [SI].object_id = [SO].object_id AND [SI].[is_primary_key] = 1 WHERE [SO].[name] = 'RecentMatterList' AND [SO].[type] = 'U' AND [SC].[name] <> 'UniqueID') BEGIN DECLARE @NAME NVARCHAR(128) SELECT @NAME = CONVERT(NVARCHAR(128), [SI].[name]) FROM sys.objects [SO] INNER JOIN sys.indexes [SI] ON [SI].object_id = [SO].object_id AND [SI].[is_primary_key] = 1 WHERE [SO].[name] = 'RecentMatterList' AND [SO].[type] = 'U' DECLARE @COMMAND NVARCHAR(MAX) SET @COMMAND = N'ALTER TABLE [dbo].[RecentMatterList] DROP CONSTRAINT [' + @NAME + N']' EXEC sp_executesql @COMMAND END GO IF EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] LEFT OUTER JOIN sys.indexes [SI] ON [SI].object_id = [SO].object_id AND [SI].[is_primary_key] = 1 WHERE [SO].[name] = 'RecentMatterList' AND [SO].[type] = 'U' AND [SI].[index_id] IS NULL) BEGIN ALTER TABLE [dbo].[RecentMatterList] ADD CONSTRAINT [PK_RecentMatterList] PRIMARY KEY CLUSTERED ([UniqueID]) END GO IF EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] LEFT OUTER JOIN sys.indexes [SI] ON [SI].object_id = [SO].object_id AND [SI].[name] = 'IDX_FeeMatter' WHERE [SO].[name] = 'RecentMatterList' AND [SO].[type] = 'U' AND [SI].[index_id] IS NULL) BEGIN CREATE UNIQUE NONCLUSTERED INDEX [IDX_FeeMatter] ON [dbo].[RecentMatterList] ([FEE], [MATTER]) INCLUDE ([Datefield], [UniqueID]) END GO IF EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] LEFT OUTER JOIN sys.indexes [SI] ON [SI].object_id = [SO].object_id AND [SI].[name] = 'IDX_FeeDateDesc' WHERE [SO].[name] = 'RecentMatterList' AND [SO].[type] = 'U' AND [SI].[index_id] IS NULL) BEGIN CREATE NONCLUSTERED INDEX [IDX_FeeDateDesc] ON [dbo].[RecentMatterList] ([FEE], [DateField] DESC) INCLUDE ([MATTER], [UniqueID]) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SetMostRecentMatter' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetMostRecentMatter] END GO CREATE PROCEDURE [dbo].[KAAS_SetMostRecentMatter] (@handler VARCHAR(10), @matter VARCHAR(20)) AS /************************************************************************************************************* * * * [dbo].[KAAS_SetMostRecentMatter] * * * * Updates the Recent Matter List for a handler. The Handlers table stores the * * maximum number of Recent Matters to store for each handler. If not SET, the * * default value is 30. * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * Original: - * * * * First compatible version: 5.7.2.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * ????-??-?? ??????????? Created * * 2014-10-23 Pino Carafa Remove transaction handling * * 2016-07-22 Pino Carafa Imported into Framework * * 2016-07-22 Pino Carafa Add Option (KEEPFIXED PLAN) to prevent unnecessary * * procedure recompiles * * 2018-02-15 Pino Carafa Modify procedure to prevent problems * * when the system date/time is changed * * 2019-08-29 Arun V Have included the distinct keyword while inserting * * the records into Recent matter. * * In case of any duplication, due to repeated call, * * this will remove the duplicate item from the list. * * 2019-08-29 Pino Carafa Use Group By and MAX instead of DISTINCT * * 2019-08-30 Pino Carafa Rewrite after change to PK and Indexes * * 2019-09-10 Pino Carafa Minor - not critical - addition of Return 1 to indicate success * * 2019-09-12 Pino Carafa Instead of updating an existing row I will delete and reinsert so that the * * most recent matter gets the latest UniqueID which makes sorting in procedures * * that rely on the Recent Matter List more reliable * * 2021-06-16 Sadiq Added condition for unique elements entry * *************************************************************************************************************/ BEGIN DECLARE @RMLMax INT SELECT @RMLMax = [HAN].[NORECENTMATTERS] FROM [dbo].[Handlers] [HAN] WHERE [HAN].[code] = @handler SET @RMLMax = CASE WHEN ISNULL(@RMLMax, 0) = 0 THEN 30 ELSE @RMLMax END DECLARE @NOW DATETIME DECLARE @MAXDATE DATETIME SET @NOW = GETDATE() DECLARE @UniqueID BIGINT SELECT @UniqueID = [RML].[UniqueID] FROM [dbo].[RecentMatterList] [RML] WHERE [RML].[FEE] = @handler AND [RML].[MATTER] = @matter IF @UniqueID IS NOT NULL BEGIN DELETE [RML] FROM [dbo].[RecentMatterList] [RML] WHERE [RML].[UniqueID] = @UniqueID END IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[RecentMatterList] [RML] WHERE [RML].[FEE] = @handler AND [RML].[MATTER] = @matter) BEGIN INSERT INTO [dbo].[RecentMatterList] ([FEE], [MATTER], [DateField]) VALUES(@handler, @matter, @NOW) END DECLARE @total INT -- If @UniqueID is not null we deleted one row and inserted one row, so the total won't have changed. IF @UniqueID IS NULL BEGIN SELECT @total = COUNT(1) FROM [dbo].[RecentMatterList] [RML] WHERE [RML].[FEE] = @handler SET @total = ISNULL(@total, 0) - @RMLMax --the number of items we must delete -- In theory @total should always be <= 1, but just in case WHILE @total > 0 BEGIN SET @UniqueID = NULL -- Get the oldest item in the Recent Matter List for this FEE SELECT TOP 1 @UniqueID = [RML].[UniqueID] FROM [dbo].[RecentMatterList] [RML] WHERE [RML].[FEE] = @handler ORDER BY [RML].[UniqueID] ASC IF @UniqueID IS NULL BEGIN -- In theory this should never happen... but just in case SET @total = 0 END ELSE BEGIN -- and delete the oldest item in the Recent Matter List for this FEE DELETE [RML] FROM [dbo].[RecentMatterList] [RML] WHERE [RML].[UniqueID] = @UniqueID SET @total = @total - 1 END END END RETURN 1 END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_SetReindexingFlag' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetReindexingFlag] END GO CREATE PROCEDURE [dbo].[KAAS_SetReindexingFlag] (@File VARCHAR(255), @Read INT) AS /*********************************************************************************************************************** * * ky_NETSPSetReindexingFlag * Flags a file for reindexing (i.e. if a file has been added, modified, deleted) and reads the top @Read * documents flagged for Reindexing. * * PINO 2014-11-27 The code to handle changed file paths was executed even if this was called for specific * documents, and also it can cause delays during working hours. * * PINO 2015-08-06 If the UNC Aliased Filepath exceeds 255 characters, truncate the filepath. Obviously the * system is not going to find the path in that case but it shouldn't be possible to create * such a long path in the first place. * * PINO 2018-05-18 Firstly, let's read all data WITH (NOLOCK) for better performance * Secondly, originally we would check for a changed file path. This was necessary because * someone could create a document with trackreference N, then delete it and create a new * document and it, too, would get trackreference N. This can't happen any more as we use an * identity column in [dbo].[trackreferences] now, and Track Reference numbers are never * reused * Thirdly, this allowed us to simplify the retrieval query significantly and improve its * performance * Finally remove an obsolete left outer join to [dbo].[Contacts] * * VINODHAN K 2019-06-19 Created KAAS_SetReindexingFlag * ***********************************************************************************************************************/ BEGIN DECLARE @WORK VARCHAR(255) DECLARE @TR INT DECLARE @CF VARCHAR(255) SELECT @CF = RTRIM(ISNULL(SC.[SCWPFOLDER], '')) FROM [dbo].[SystemConfig] SC WHILE CHARINDEX('\', @CF, 1) > 0 BEGIN SET @CF = SUBSTRING(@CF, CHARINDEX('\', @CF, 1) + 1, LEN(@CF) - CHARINDEX('\', @CF, 1)) END IF PATINDEX('%\' + @CF + '\%', @File) > 0 BEGIN SET @File = SUBSTRING(@FILE, PATINDEX('%\' + @CF + '\%', @File), LEN(@FILE) - PATINDEX('%\' + @CF + '\%', @File) + 1) END SET @WORK = REVERSE(@FILE) IF CHARINDEX('_', @WORK, 1) > 0 BEGIN SET @WORK = SUBSTRING(@WORK, 1, CHARINDEX('_', @WORK, 1) - 1) END ELSE BEGIN IF CHARINDEX('\', @WORK, 1) > 0 BEGIN SET @WORK = SUBSTRING(@WORK, 1, CHARINDEX('\', @WORK, 1) - 1) END END IF CHARINDEX('.', @WORK, 1) > 0 BEGIN SET @WORK = SUBSTRING(@WORK, CHARINDEX('.', @WORK, 1) + 1, LEN(@WORK) - CHARINDEX('.', @WORK, 1)) END SET @WORK = REVERSE(@WORK) SET @TR = 0 IF (ISNUMERIC(@WORK) = 0) BEGIN SET @TR = 0 END ELSE BEGIN SET @TR = CONVERT(INT, @WORK) END IF (@TR = 0) BEGIN DECLARE @NEWTRACKREFERENCES TABLE ([TrackReference] INT PRIMARY KEY) INSERT INTO @NEWTRACKREFERENCES ([TrackReference]) SELECT [DAT].[TrackReference] FROM [dbo].[DiaryAttachments] [DAT] WITH (NOLOCK) LEFT OUTER JOIN [dbo].[ReindexStatus] [RST] WITH (NOLOCK) ON [RST].[TrackReference] = [DAT].[TrackReference] WHERE [RST].[id] IS NULL INSERT INTO [dbo].[ReindexStatus] ([TrackReference], [FILEPATH], [STATUS]) SELECT DAT.[TRACKREFERENCE], CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(SUBSTRING(ISNULL(DAT.[FILEPATH], ''), 1, 255)) ELSE RTRIM(SUBSTRING(UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2), 1, 255)) END AS [FILEPATH], 0 AS [STATUS] FROM @NEWTRACKREFERENCES [NT] INNER JOIN [dbo].[DiaryAttachments] DAT WITH (NOLOCK) LEFT OUTER JOIN [dbo].[UNCAlias] UNC WITH (NOLOCK) ON UNC.[Drive] = CASE WHEN SUBSTRING(DAT.[FilePath], 2, 1) = ':' THEN SUBSTRING(DAT.[FilePath], 1, 1) ELSE '' END ON [DAT].[TrackReference] = [NT].[TrackReference] -- LEFT OUTER JOIN [dbo].[ReindexStatus] RST WITH (NOLOCK) -- ON RST.[TrackReference] = DAT.[TRACKREFERENCE] -- AND RST.[FILEPATH] = CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FILEPATH], '')) -- ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2) END --WHERE RST.[id] IS NULL END ELSE BEGIN INSERT INTO [dbo].[ReindexStatus] ([TrackReference], [FILEPATH], [STATUS]) SELECT DAT.[TRACKREFERENCE], CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(SUBSTRING(ISNULL(DAT.[FILEPATH], ''), 1, 255)) ELSE RTRIM(SUBSTRING(UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2), 1, 255)) END AS [FILEPATH], 0 AS [STATUS] FROM [dbo].[DiaryAttachments] DAT WITH (NOLOCK) LEFT OUTER JOIN [dbo].[UNCAlias] UNC WITH (NOLOCK) ON SUBSTRING(DAT.[FilePath], 2, 1) = ':' AND UNC.[Drive] = SUBSTRING(DAT.[FilePath], 1, 1) LEFT OUTER JOIN [dbo].[ReindexStatus] RST WITH (NOLOCK) ON RST.[TrackReference] = DAT.[TRACKREFERENCE] AND RST.[FILEPATH] = CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FILEPATH], '')) ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2) END WHERE DAT.[TRACKREFERENCE] = @TR AND RST.[id] IS NULL END IF (@TR = 0) BEGIN IF (@File <> '') BEGIN UPDATE RST SET RST.[STATUS] = 0 FROM [dbo].[ReindexStatus] RST WHERE RST.[FILEPATH] LIKE '%' + REPLACE(@File, '[', '[[]') END END ELSE BEGIN UPDATE RST SET RST.[STATUS] = 1 FROM [dbo].[ReindexStatus] RST WHERE RST.[TrackReference] = @TR AND RST.[FILEPATH] NOT LIKE '%' + REPLACE(@File, '[', '[[]') UPDATE RST SET RST.[STATUS] = 0 FROM [dbo].[ReindexStatus] RST WHERE RST.[TrackReference] = @TR AND RST.[FILEPATH] LIKE '%' + REPLACE(@File, '[', '[[]') END -- Flag rows that have moved to CloseDiaryAttachments or that have been replaced by -- different File Paths for Reindexing (The statement following this will return these -- for DELETE rather than INDEX) -- PINO 2014-11-27 - Don't do this unless you're processing multiple entries IF (@TR = 0) BEGIN -- PINO 2014-11-27 - Don't do this during working hours IF (DATEPART(HOUR, GetDate()) <= 4) OR (DATEPART(HOUR, GetDate()) >= 20) BEGIN UPDATE RST SET RST.[STATUS] = 0 FROM [dbo].[ReindexStatus] RST LEFT OUTER JOIN [dbo].[DiaryAttachments] DAT WITH (NOLOCK) INNER JOIN [dbo].[diary] DIA WITH (NOLOCK) INNER JOIN [dbo].[matters] MAT WITH (NOLOCK) ON MAT.[code] = DIA.[CASECODE] ON DIA.[ActionID] = DAT.[DIARYID] ON DAT.[TRACKREFERENCE] = RST.[TrackReference] LEFT OUTER JOIN [dbo].[contacts] CTC WITH (NOLOCK) ON CTC.[code] = MAT.[ClientCODE] LEFT OUTER JOIN [dbo].[UNCAlias] UNC WITH (NOLOCK) ON SUBSTRING(DAT.[FilePath], 2, 1) = ':' AND UNC.[Drive] = SUBSTRING(DAT.[FilePath], 1, 1) WHERE CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FilePath], '')) ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FilePath], '')), 3, LEN(RTRIM(ISNULL(DAT.[FilePath], ''))) - 2) END <> RST.[FILEPATH] AND RST.[STATUS] <> 4 END END SELECT TOP (@Read) RST.[Id], RST.[TrackReference], RST.[FilePath], CASE WHEN CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FilePath], '')) ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FilePath], '')), 3, LEN(RTRIM(ISNULL(DAT.[FilePath], ''))) - 2) END = RST.[FILEPATH] THEN 'INDEX' ELSE 'DELETE' END AS [Action], RTRIM(ISNULL(MAT.[User1], '')) AS [User1], RTRIM(ISNULL(MAT.[User2], '')) AS [User2], RTRIM(ISNULL(MAT.[User3], '')) AS [User3], RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef], RTRIM(ISNULL(MAT.[YourRef], '')) AS [YourRef] FROM [dbo].[ReindexStatus] RST WITH (NOLOCK) LEFT OUTER JOIN [dbo].[DiaryAttachments] DAT WITH (NOLOCK) INNER JOIN [dbo].[diary] DIA WITH (NOLOCK) INNER JOIN [dbo].[SearchMatters] MAT WITH (NOLOCK) ON MAT.[code] = DIA.[CASECODE] ON DIA.[ActionID] = DAT.[DIARYID] LEFT OUTER JOIN [dbo].[UNCAlias] UNC WITH (NOLOCK) ON UNC.[Drive] = CASE WHEN SUBSTRING(DAT.[FilePath], 2, 1) = ':' THEN SUBSTRING(DAT.[FilePath], 1, 1) ELSE '' END ON DAT.[TRACKREFERENCE] = RST.[TrackReference] --LEFT OUTER JOIN [dbo].[contacts] CTC WITH (NOLOCK) -- ON CTC.[code] = MAT.[ClientCODE] WHERE RST.[STATUS] = 0 ORDER BY RST.[TrackReference] DESC END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SetSettings' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetSettings] END GO CREATE PROCEDURE [dbo].[KAAS_SetSettings] (@KeyName VARCHAR(50), @KeyValue VARCHAR(100) ) AS /******************************************************************************************************* * This SP is created to add key and value config to settings * * * * Stored Procedure Name : [dbo].[KAAS_SetSettings] * * Copied from : [ky_NETSetSettings] * * Modification History : * * 2022-02-15 Vinodhkumar.M Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS (SELECT TOP 1 1 FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = @KeyName) BEGIN UPDATE [SET] SET [SET].[KeyValue] = @KeyValue FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = @KeyName END ELSE BEGIN INSERT INTO [dbo].[Settings] ([KeyName], [KeyValue]) VALUES(@KeyName, @KeyValue) END IF [dbo].[ISSAM4]() = 1 BEGIN DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = ' IF EXISTS (SELECT TOP 1 1 FROM [dbo].[CtrlStr] [CTS] WHERE [CTS].[Code] = @KeyName) BEGIN UPDATE [CTS] SET [CTS].[StrValue] = @KeyValue FROM [dbo].[CtrlStr] [CTS] WHERE [CTS].[Code] = @KeyName END' EXEC sp_executesql @NCOMMAND, N'@KeyName VARCHAR(50), @KeyValue VARCHAR(100)', @KeyName = @KeyName, @KeyValue = @KeyValue END SET NOCOUNT OFF END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_SetTimeDayBookRateCharge' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SetTimeDayBookRateCharge] END GO CREATE PROCEDURE [dbo].[KAAS_SetTimeDayBookRateCharge] (@recordid int, @TUTNUMVALUE DECIMAL(17, 2)) AS /******************************************************************************************************* * Sets the Rate and Charge values according to the Charge Out Rates indicators and/or * * the Task Code used in the TimeDayBook. * * * * Stored Procedure Name : [dbo].[KAAS_SetTimeDayBookRateCharge] * * Copied from : [dbo].[ky_NETSetTimeDayBookRateCharge] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @ACTUALRATE DECIMAL(18, 2) DECLARE @OverriddenRate BIT SELECT @ACTUALRATE = CASE WHEN TDB.[Rate] = TDB.[FeeRate] OR TDB.[FeeRate] IS NULL THEN [dbo].[KAAS_FN_GetDefaultRate](RTRIM(ISNULL(TDB.[Matter], '')), RTRIM(ISNULL(TDB.[FeeEarn], '')), RTRIM(ISNULL(TDB.[NCCCode], '')), RTRIM(ISNULL(TDB.[Task], ''))) ELSE TDB.[Rate] END, @OverriddenRate = CASE WHEN TDB.[Rate] = TDB.[FeeRate] OR TDB.[FeeRate] IS NULL THEN 0 ELSE 1 END FROM [dbo].[TimeDayBook] TDB WHERE TDB.[RecordID] = @recordid UPDATE TDB SET TDB.[Time] = CASE WHEN TDB.[Time] >= 0 THEN Ceiling(TDB.[Time] / @TUTNUMVALUE) * @TUTNUMVALUE ELSE -Ceiling(-TDB.[Time] / @TUTNUMVALUE) * @TUTNUMVALUE END, TDB.[RATE] = @ACTUALRATE, TDB.[FeeRate] = CASE WHEN @OverriddenRate = 1 THEN TDB.[FEERate] ELSE @ACTUALRATE END, TDB.[Charge] = Convert(decimal(10, 2), ( ( CASE WHEN TDB.[Time] >= 0 THEN Ceiling(TDB.[Time] / @TUTNUMVALUE) ELSE -Ceiling(-TDB.[Time] / @TUTNUMVALUE) END * @TUTNUMVALUE * @ACTUALRATE) / 60)), TDB.[Charged] = Convert(decimal(10, 2), ( ( CASE WHEN TDB.[Time] >= 0 THEN Ceiling(TDB.[Time] / @TUTNUMVALUE) ELSE -Ceiling(-TDB.[Time] / @TUTNUMVALUE) END * @TUTNUMVALUE * @ACTUALRATE) / 60)), TDB.[Units] = CASE WHEN TDB.[Time] >= 0 THEN Ceiling(TDB.[Time] / @TUTNUMVALUE) ELSE -Ceiling(-TDB.[Time] / @TUTNUMVALUE) END FROM [dbo].[TimeDayBook] TDB WHERE TDB.[RECORDID] = @RECORDID END GO IF OBJECT_ID(N'[KAAS_SetUserSettings]',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_SetUserSettings] GO CREATE PROCEDURE [dbo].[KAAS_SetUserSettings] (@Handler AS NVARCHAR(10), @key AS NVARCHAR(100), @value AS NVARCHAR(1000)) As /******************************************************************************************************* * Retrieves Detailed information for the entries displayed on the Dashboard (My Overview) page. * * Function : AdminTimeDayBookforMonth * * * * Stored Procedure Name : [dbo].[KAAS_DashboardCaseAlert_AdminTimeDayBookforMonth] * * Copied from : [dbo].[ky_NETDashboardCaseAlert] * * * * Modification History : * * 2014-10-04 PINO Readability and @Key size was 1000, now 100 * * 2015-01-19 PINO DO NOT Change NVARCHAR to VARCHAR - [dbo].[Usersettings] is defined with * * NVARCHAR columns * * 2019-07-05 ARUN Copied from Ky_NETSetUserSettings * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS (SELECT * FROM [dbo].[UserSettings] USS WHERE USS.[Handler] = @Handler AND USS.[Key] = @Key) BEGIN UPDATE USS SET USS.[Value] = @value FROM [dbo].[UserSettings] USS WHERE USS.[Handler] = @Handler AND USS.[Key] = @Key END ELSE BEGIN INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) VALUES(@Handler, @key, @value) END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_SnoozeAlarm' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SnoozeAlarm] END GO CREATE PROCEDURE [dbo].[KAAS_SnoozeAlarm] (@AlarmID VARCHAR(38), @Minutes INT) AS /*********************************************************************************** * * [dbo].[KAAS_SnoozeAlarm] * * Snooze Alarm for specified number of minutes * * Copied from * 2020-07-30 Kowshik Copied from [dbo].[ky_NETSPSnoozeAlarm] * ***********************************************************************************/ BEGIN UPDATE ALM SET ALM.[DeferredDate] = DATEADD(minute, @Minutes, GetDate()), ALM.[Status] = ALS.[StatusID] FROM [dbo].[Alarms] ALM INNER JOIN [dbo].[AlarmStatus] ALS ON ALS.[Description] = N'Attention' WHERE ALM.[ID] = @AlarmID END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_SPListAlarms' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SPListAlarms] END GO CREATE PROCEDURE [dbo].[KAAS_SPListAlarms] (@Handler VARCHAR(10), @ByDate DATETIME, @statuslist VARCHAR(MAX)) AS /*********************************************************************************** * * [dbo].[KAAS_SPListAlarms] * * Modification History * 2015-07-07 Pino Carafa Imported into .NET from hardcoded WinDev query * 2015-07-07 Pino Carafa Improved for .NET: * - use XML for status list * (example) * * * * * Copied from * 2020-07-30 Kowshik [dbo].[ky_NETSPListAlarms] ***********************************************************************************/ BEGIN DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @statusList END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, '' END CATCH SELECT ALM.[ID] AS [ID], ALM.[HandlerCode] AS [HandlerCode], ALM.[MatterRef] AS [MatterRef], ALM.[LinkID] AS [LinkID], ALM.[OriginalDate] AS [OriginalDate], ALM.[DeferredDate] AS [DeferredDate], ALM.[Title] AS [Title], ALM.[Message] AS [Message], ALM.[Type] AS [Type], ALM.[Status] AS [Status], ALT.[TypeID] AS [TypeID], ALT.[Description] AS [Description], ALS.[StatusID] AS [StatusID], ALS.[Description] AS [StatusDescription], CASE WHEN MAT.[Code] IS NULL THEN '' ELSE RTRIM(ISNULL(MAT.[CODE], '')) + ' ' + RTRIM(ISNULL(CON.[Name], '')) + '/' + RTRIM(ISNULL(MAT.[Description], '')) END AS [MatterInfo] FROM OPENXML(@iSL, 'status/description') WITH([Description] NVARCHAR(100) '@value') SELS INNER JOIN [dbo].[AlarmStatus] ALS INNER JOIN [dbo].[Alarms] ALM INNER JOIN [dbo].[AlarmTypes] ALT ON ALT.[TypeID] = ALM.[Type] LEFT OUTER JOIN [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[Code] = ALM.[MatterRef] ON ALM.[Status] = ALS.[StatusID] AND ALM.[HandlerCode] = @Handler AND ALM.[DeferredDate] <= @ByDate ON ALS.[Description] = SELS.[Description] ORDER BY ALM.[DeferredDate] DESC EXEC sp_xml_removedocument @iSL END GO IF EXISTS (SELECT TOP 1 1 FROM sys.objects [SO] WHERE [SO].[name] = 'KAAS_SPMachineLogonInfo' AND [SO].[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SPMachineLogonInfo] END GO CREATE PROCEDURE [dbo].[KAAS_SPMachineLogonInfo] (@Handler VARCHAR(10)) AS /************************************************************************************************************* * * * KAAS_SPMachineLogonInfo * * Retrieves information on the machines that have logged on to Framework. Can restrict by Handler * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: - * * * * Original: - * * * * First compatible version: 5.9.2.45 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History: * * 2024-01-29 Pino Carafa Created * * * *************************************************************************************************************/ BEGIN DECLARE @HostIds TABLE ([HostName] NVARCHAR(128) PRIMARY KEY, [ID] BIGINT) DECLARE @HostHandlers TABLE ([HostName] NVARCHAR(128), [Handler] VARCHAR(10), [ID] BIGINT, UNIQUE NONCLUSTERED([Handler], [HostName])) INSERT INTO @HostIds ([HostName], [ID]) select [FLL].[HostName], MAX([FLL].[ID]) AS [LastLoginID] from [dbo].[FrameworkLogonLog] [FLL] WITH (NOEXPAND) GROUP BY [FLL].[HostName] INSERT INTO @HostHandlers ([HostName], [ID], [Handler]) SELECT [HID].[HostName], [HID].[ID], [FLL].[Handler] FROM @HostIds [HID] INNER JOIN [dbo].[FrameworkLogonLog] [FLL] ON [FLL].[HostName] = [HID].[HostName] GROUP BY [HID].[HostName], [HID].[ID], [FLL].[Handler] IF ISNULL(@Handler, '') <> '' BEGIN DELETE @HostHandlers WHERE [Handler] <> @Handler END DELETE @HostHandlers WHERE [Handler] = '' SELECT [MI].[HostName], [MI].[HandlerName], [MI].[SortingVersion], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[FrameworkVersion] ELSE '' END AS [FrameworkVersion], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[OutlookAddinVersion] ELSE '' END AS [OutlookAddinVersion], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[OfficeAddinVersion] ELSE '' END AS [OfficeAddinVersion], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[WordVersion] ELSE '' END AS [WordVersion], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[WordBitness] ELSE '' END AS [WordBitness], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[ExcelVersion] ELSE '' END AS [ExcelVersion], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[ExcelBitness] ELSE '' END AS [ExcelBitness], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[PowerPointVersion] ELSE '' END AS [PowerPointVersion], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[PowerPointBitness] ELSE '' END AS [PowerPointBitness], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[OutlookVersion] ELSE '' END AS [OutlookVersion], CASE WHEN [MI].[SortingVersion] > 50090020044 THEN [MI].[OutlookBitness] ELSE '' END AS [OutlookBitness] FROM (SELECT [HH].[HostName] AS [HostName], [HH].[Handler] AS [Handler], ISNULL([HN].[NAME], [HH].[Handler]) AS [HandlerName], [dbo].[KAAS_FNGetBigVersionFromVersion]([FLL].[Version]) AS [SortingVersion], [MCI].[FrameworkVersion] AS [FrameworkVersion], [MCI].[OutlookAddinVersion] AS [OutlookAddinVersion], [MCI].[OfficeAddinVersion] AS [OfficeAddinVersion], [MCI].[WordVersion] AS [WordVersion], [MCI].[WordBitness] AS [WordBitness], [MCI].[ExcelVersion] AS [ExcelVersion], [MCI].[ExcelBitness] AS [ExcelBitness], [MCI].[PowerPointVersion] AS [PowerPointVersion], [MCI].[PowerPointBitness] AS [PowerPointBitness], [MCI].[OutlookVersion] AS [OutlookVersion], [MCI].[OutlookBitness] AS [OutlookBitness] FROM @HostHandlers [HH] INNER JOIN [dbo].[FrameworkLogonLog] [FLL] WITH (NOEXPAND) ON [FLL].[ID] = [HH].[ID] LEFT OUTER JOIN [dbo].[HandlerNames] [HN] WITH (NOLOCK) ON [HN].[CODE] = [HH].[Handler] LEFT OUTER JOIN [dbo].[MachineInfo] [MCI] WITH (NOLOCK) ON [MCI].[HostName] = [HH].[HostName]) [MI] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SPSUFByAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SPSUFByAction] END GO CREATE PROCEDURE [dbo].[KAAS_SPSUFByAction] (@ActionCode VARCHAR(15)) AS /****************************************************************************************************** * This procedure is used to Get Document Codes * * * * Stored Procedure Name : [dbo].[KAAS_SPSUFByAction] * * Copied from : [dbo].[Ky_NetSPSUFByAction] * * Modification History : * * 2023-06-21 Nithyanandham M Created * ******************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [DA].[DocAssistCode], CASE WHEN [DA].[Prompt] = '' THEN [DA].[DocAssistCode] ELSE [DA].[Prompt] END AS [Prompt], [DA].[CodeIsValid], COUNT(1) AS [UsedInDocuments] FROM ( select [TDOC].[DOCUMENT], [SXR].[Prefix] + CASE WHEN [SXR].[Prefix] = 'sys:' THEN [SXR].[FullName] ELSE [SXR].[FieldName] END AS [DocAssistCode], RTRIM(ISNULL([SUF].[Prompt], '')) AS [Prompt], CASE WHEN [SXR].[Prefix] = 'sys:' THEN CONVERT(BIT, 1) WHEN [SUF].[FILEPREFIX] IS NULL THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [CodeisValid] from [dbo].[TemplateActionDcouments] [TDOC] INNER JOIN [dbo].[SUFDocumentXRef] [SDXR] INNER JOIN [dbo].[SUFXRef] [SXR] ON [SXR].[id] = [SDXR].[SUFXRefID] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SXR].[Prefix] AND [SUF].[FIELDNAME] = [SXR].[FieldName] ON [SDXR].[TemplateCode] = [TDOC].[DOCUMENT] where [TDOC].[ACTION] = @ActionCode and [SXR].[Prefix] NOT IN ('can:', 'aud:', 'lcn:') UNION select [TDOC].[DOCUMENT], [SXR].[Prefix] + CASE WHEN [SXR].[Prefix] = 'sys:' THEN [SXR].[FullName] ELSE [SXR].[FieldName] END + CASE WHEN [SXR].[Prefix] IN ('can:', 'aud:') THEN '.' + [SXRCT].[TYPE] ELSE '' END + CASE WHEN [SXR].[Prefix] IN ('can:', 'aud:', 'lcn:') THEN RTRIM(ISNULL([SXRCTA].[Aggregate], '')) ELSE '' END AS [Doc Assist Code], RTRIM(ISNULL([SUF].[Prompt], '')) AS [Prompt], CASE WHEN [SXR].[Prefix] = 'sys:' THEN CONVERT(BIT, 1) WHEN [SUF].[FILEPREFIX] IS NULL THEN CONVERT(BIT, 0) ELSE CONVERT(BIT, 1) END AS [Code is Valid] from [dbo].[TemplateActionDcouments] [TDOC] INNER JOIN [dbo].[SUFDocumentXRefByCANTypeAgg] [SDXRCTA] ON [SDXRCTA].[TemplateCode] = [TDOC].[DOCUMENT] INNER JOIN [dbo].[SUFXRefByCANTypeAgg] [SXRCTA] ON [SXRCTA].[id] = [SDXRCTA].[SUFXRefByCANTypeAggID] INNER JOIN [dbo].[SUFDocumentXRefByCANType] [SDXRCT] ON [SDXRCT].[TemplateCode] = [TDOC].[DOCUMENT] INNER JOIN [dbo].[SUFXRefByCANType] [SXRCT] ON [SXRCT].[id] = [SDXRCT].[SUFXRefByCANTypeID] AND [SXRCT].[id] = [SXRCTA].[SUFXRefByCANTypeID] INNER JOIN [dbo].[SUFDocumentXRef] [SDXR] ON [SDXR].[TemplateCode] = [TDOC].[DOCUMENT] INNER JOIN [dbo].[SUFXRef] [SXR] ON [SXR].[id] = [SDXR].[SUFXRefID] AND [SXR].[id] = [SXRCT].[SUFXRefID] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SXR].[Prefix] AND [SUF].[FIELDNAME] = [SXR].[FieldName] where [TDOC].[ACTION] = @ActionCode and [SXR].[Prefix] IN ('can:', 'aud:', 'lcn:')) [DA] GROUP BY [DA].[DocAssistCode], [DA].[Prompt], [DA].[CodeisValid] ORDER BY [DA].[DocAssistCode] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_StopAllTimers' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_StopAllTimers] END GO CREATE PROCEDURE [dbo].[KAAS_StopAllTimers] (@FeeCode VARCHAR(10)) AS /******************************************************************************************************* * Sets all Stopwatch Status fields to 1 * * Please note:this should only be called after login, in order to reset the status of any Time Daybook * * entries that may have been left after an unexpected shutdown or crash * * * * Stored Procedure Name : [dbo].[KAAS_StopAllTimers] * * Copied from : [dbo].[ky_NETSPStopAllTimers] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN UPDATE [TDB] SET [TDB].[StopwatchStatus] = 1 FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[FeeEarn] = @FeeCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_StoreEFTFile' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_StoreEFTFile] END GO CREATE PROCEDURE [dbo].[KAAS_StoreEFTFile] (@SequenceNo int, @EndToEndID VARCHAR(35), @EFTXML NVARCHAR(MAX)) AS /******************************************************************************************************* * Calls [KAAS_NETDoStoreEFTFile] and interprets the return values * * * * Stores the PAIN.001.001.03 file that needs to be sent for later reference * * Return Value: -1 NULL or Empty End to End ID * * -2 Unable to find EFT Details for File Number * * -3 Invalid XML Format * * -4 Missing File Identifier * * * * Stored Procedure Name : [dbo].[KAAS_StoreEFTFile] * * Copied from : [dbo].[ky_NETStoreEFTFile] * * * * Modification History : * * 2024-03-19 Vignesh M Created * *******************************************************************************************************/ BEGIN DECLARE @Return INT EXEC @Return = [dbo].[KAAS_DoStoreEFTFile] @SequenceNo, @EndToEndID, @EFTXML SELECT @Return AS [Return], CASE @Return WHEN -1 THEN 'NULL or Empty End to End ID' WHEN -2 THEN 'Unable to find EFT Details for File Number' WHEN -3 THEN 'Invalid XML format' WHEN -4 THEN 'Missing File Identifier' WHEN 0 THEN 'Success' ELSE 'Unexpected return value' END AS [ReturnMessage] END GO IF OBJECT_ID(N'KAAS_StrongRoomDeleteDiary', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomDeleteDiary] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomDeleteDiary] (@RecordID INT, @User VARCHAR(30), @Result INT OUTPUT) AS /************************************************************************************************ * Stored Procedure Name: KAAS_StrongRoomDeleteDiary * Copied From : ky_NETStrongRoomDeleteDiary * * This procedure is used to delete a diary item from the strong room diary * * Modification History: * 2017-07-25 John Created * 2022-01-25 Aakif Copied from ky_NETStrongRoomDeleteDiary ************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT @Result = -1 IF EXISTS(SELECT TOP 1 1 FROM sys.columns COL WHERE OBJECT_NAME(COL.[object_id]) = 'ItemDiary' AND COL.[name] = 'Deleted') AND EXISTS(SELECT TOP 1 1 FROM sys.columns COL WHERE OBJECT_NAME(COL.[object_id]) = 'ItemDiary' AND COL.[name] = 'DeletedBy') AND EXISTS(SELECT TOP 1 1 FROM sys.columns COL WHERE OBJECT_NAME(COL.[object_id]) = 'ItemDiary' AND COL.[name] = 'DeletedDate') BEGIN DECLARE @SQL NVARCHAR(MAX) SELECT @SQL = ' UPDATE ID SET ID.[Deleted] = ''Y'', ID.[DeletedBy] = @User, ID.[DeletedDate] = GETDATE() FROM [dbo].[ItemDiary] AS ID WHERE ID.[RECORDID] = @RecordID' EXEC sp_executesql @SQL, N'@User VARCHAR(30), @RecordID INT', @User = @User, @RecordID = @RecordID SELECT @Result = 0 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomFetchClientProfilebyClientCode', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomFetchClientProfilebyClientCode] END GO CREATE PROCEDURE [KAAS_StrongRoomFetchClientProfilebyClientCode] ( @ClientCode VARCHAR(20) ) AS /************************************************************************************************************** * Stored Procedure Name: KAAS_StrongRoomFetchClientProfilebyClientCode * Copied From : ky_NETStrongRoomFetchClientProfilebyClientCode * * * Modification History * 2015-05-27 Arun Created * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2022-01-25 Aakif Created KAAS file **************************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT [C].[Name] AS [ClientName], [C].Tel AS [TelephoneNo], [C].Fax AS [FaxNo], [C].email AS [ClientEmail], [C].Principal AS [Principal], [C].FE AS [FeeEarner], [C].RSINo AS [PPSNo], [C].OtherRef AS [OtherRef], [C].Occupation AS [Occupation], [C].Introducer AS [Introducer], [C].IntroFE AS [IntroFE], [C].Nation AS [Nationality], [C].Corporate AS [IsCorporate], [C].Inactive AS [IsInactive], [C].[Address] AS [ClientAddress] FROM Contacts [C] WHERE [C].Code = @ClientCode SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomFetchDiaryDetails', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomFetchDiaryDetails] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomFetchDiaryDetails] (@Number INT, @Handler NVARCHAR(10) ) AS /**************************************************************************************************** * Stored Procedure Name: KAAS_StrongRoomFetchDiaryDetails * Copied From : ky_NETStrongRoomFetchDiaryDetails This stored procedure is used to FETCH diary details Last Updated: * 2015-02-12 Arun - Change NVARCHAR to VARCHAR * 2015-03-12 Pino - Use the actual Primary Key "NUMBER", not "ITEMCODE" * 2017-07-25 John - Updated procedure to match current standards. Added support for new columns * 2022-02-17 Aakif - Created KAAS file ****************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ITEMDIARY_SQL NVARCHAR(MAX) SELECT @ITEMDIARY_SQL = ' SELECT CONVERT(VARCHAR(11), [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( IDI.[DATE], @Handler), 106) AS [DiaryDate], RTRIM(ISNULL(IDI.[DETAILS], '''')) AS [DiaryDetails], CONVERT(VARCHAR(11), [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( DATEADD(dd, IDI.[COMPLETE], ''18001228''), @Handler), 106) AS [CompleteDate], IDI.[RECORDID] AS [RecordId] FROM [dbo].[ItemDiary] IDI WHERE IDI.[NUMBER] = @Number' -- If the column exists then don't show records that are deleted IF EXISTS(SELECT TOP 1 1 FROM sys.columns AS COL WHERE OBJECT_NAME(COL.[object_id]) = 'ItemDiary' AND COL.[name] = 'Deleted') BEGIN SELECT @ITEMDIARY_SQL = @ITEMDIARY_SQL + ' AND ISNULL(IDI.[Deleted], ''N'') <> ''Y''' END EXEC sp_executesql @ITEMDIARY_SQL, N'@Number INT, @Handler NVARCHAR(10)', @Number = @Number, @Handler = @Handler SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomFetchFileForEdit', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomFetchFileForEdit] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomFetchFileForEdit] (@Number INT, @Handler NVARCHAR(10) ) AS /**************************************************************************************************** * Stored Procedure Name: KAAS_StrongRoomFetchFileForEdit * Copied From : ky_NETStrongRoomFetchFileForEdit * * This stored procedrue is used to FETCH file information for edit * * Modification History: * 2014-05-28 02:58 PM * 2015-02-12 Pino NVARCHAR to VARCHAR * 2015-03-12 Pino Replace fetch item ITEMCODE with actual Primary Key value NUMBER * SP returned a Table 3 that only contained the CLIENTCODE but that * wasn't referred to in the software. Deleted. * 2015-11-26 Pino Add "Needs Attention" column * 2015-12-02 Pino Added Executors 3 and 4 * Add "Property Owner" * 2015-12-03 Pino Added From and To WHO codes and names * 2015-12-07 Pino Added Due Date * 2015-12-08 Pino Added Deceased Date * Added Comment to Item History result set * Resolve names for WHO and HANDLER in Item History * Add DeedType and WillType columns from [dbo].[ItemTypes] * 2016-04-22 Suriya M KEYD-2666-Allow the Strong Room to hold a scan capture of documents * 2017-07-25 John Added criteria to exclude deleted records from item diary - KEYD-4599 * 2022-02-17 Aakif Created KAAS file * 2022-02-18 Aakif Fix for date format issue & Unique Id for item history table ****************************************************************************************************/ BEGIN SET NOCOUNT ON --Table 0 SELECT RTRIM(ISNULL(FMI.[ITEMTYPE], '')) AS [ItemType], RTRIM(ISNULL(FMI.[ITEMCODE], '')) AS [ItemCode], RTRIM(ISNULL(FMI.[CLIENTCODE], '')) AS [ClientCode], RTRIM(ISNULL(FMI.[MATTERCODE], '')) AS [MatterCode], RTRIM(ISNULL(FMI.[DESCRIPTION], '')) AS [ItemDesc], RTRIM(ISNULL(FMI.[LOCATION], '')) AS [Location], RTRIM(ISNULL(FMI.[BOXNO], '')) AS [BoxNumber], RTRIM(ISNULL(FMI.[SEARCHCODE], '')) AS [SearchCode], RTRIM(ISNULL(FMI.[FEEARNER], '')) AS [FeeEarner], FMI.[ENTRYDATE] AS [EntryDate], FMI.[DESTROYDATE] AS [DestroyDate], FMI.[STATUS] AS [Status], FMI.[OPENCLOSED] AS [OpenClosed], RTRIM(ISNULL(FMI.[CLOSEDFILENO], '')) AS [ClosedFileNumber], FMI.[CLOSEDDATE] AS [ClosedDate], RTRIM(ISNULL(FMI.[LASTACTIONWHO], '')) AS [LastActionWho], FMI.[NUMBER] AS [Number], RTRIM(ISNULL(FMI.[DEEDADDRESS], '')) AS [DeedAddress], FMI.[ARDATE] AS [ARDate], FMI.[ACCOUNTABLERECEIPT] AS [AccountReceipt], RTRIM(ISNULL(FMI.[ARNARRATIVE], '')) AS [ARNarrative], RTRIM(ISNULL(FMI.[TESTATOR], '')) AS [Testator], RTRIM(ISNULL(FMI.[TESTATORADDRESS], '')) AS [TestatOrAddress], FMI.[WILLDATE] AS [WillDate], FMI.[ESTIMATEESTATE] AS [EstimateEstate], RTRIM(ISNULL(FMI.[EXECUTORNAME1], '')) AS [ExecutorName1], RTRIM(ISNULL(FMI.[EXECUTORADDRESS1], '')) AS [ExecutorAddress1], RTRIM(ISNULL(FMI.[EXECUTORNAME2], '')) AS [ExecutorName2], RTRIM(ISNULL(FMI.[EXECUTORADDRESS2], '')) AS [ExecutorAddress2], RTRIM(ISNULL(FMI.[EXECUTORNAME3], '')) AS [ExecutorName3], RTRIM(ISNULL(FMI.[EXECUTORADDRESS3], '')) AS [ExecutorAddress3], RTRIM(ISNULL(FMI.[EXECUTORNAME4], '')) AS [ExecutorName4], RTRIM(ISNULL(FMI.[EXECUTORADDRESS4], '')) AS [ExecutorAddress4], RTRIM(ISNULL(FMI.[Property Owner], '')) AS [PropertyOwner], FMI.[NeedsAttention] AS [IsNeedAttention], RTRIM(ISNULL(FMI.[FROMWHOCODE], '')) AS [FromWhoCode], RTRIM(ISNULL(FMI.[FROMWHONAME], '')) AS [FromWhoName], RTRIM(ISNULL(FMI.[TOWHOCODE], '')) AS [ToWhoCode], RTRIM(ISNULL(FMI.[TOWHONAME], '')) AS [ToWhoName], FMI.[DueDate] AS [DueDate], FMI.[DeceasedDate] AS [DeceasedDate], ISNULL(ITP.[DeedType], 0) AS [IsDeed], ISNULL(ITP.[WillType], 0) AS [IsWill], ISNULL(FMI.ActionID,0) AS [ActionID] FROM [dbo].[FileManagerItems] FMI LEFT OUTER JOIN [dbo].[ItemTypes] ITP ON ITP.TYPECODE = FMI.[ITEMTYPE] WHERE FMI.[NUMBER] = @Number --Table 1 SELECT ROW_NUMBER() OVER(ORDER BY [IHI].[OUTDATE]) AS [Id], IHI.[ITEMCODE] AS [ItemCode], RTRIM(ISNULL(FWH.[NAME], RTRIM(ISNULL(IHI.[WHO], '')))) AS [ForWho], [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( IHI.[OUTDATE], @Handler) AS [OutDate], CONVERT(VARCHAR, [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone] (DATEADD(ms, 10 * ([OUTTIME] - 1), CONVERT(VARCHAR, GETDATE(), 112)), @Handler) , 108) AS [OutTime], [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]( IHI.[INDATE], @Handler) AS [InDate], CONVERT(VARCHAR, [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone] (DATEADD(ms, 10 * ([INTIME] - 1), CONVERT(VARCHAR, GETDATE(), 112)), @Handler) ,108) AS [InTime], RTRIM(ISNULL(WHO.[NAME], RTRIM(ISNULL(IHI.[HANDLER], '')))) AS [Who], [dbo].[ky_RemoveSpuriousWhitespace2](IHI.[COMMENT], 300) AS [Comment] FROM [dbo].[ItemHistory] IHI LEFT OUTER JOIN [dbo].[Handlers] FWH ON FWH.[CODE] = IHI.[WHO] LEFT OUTER JOIN [dbo].[Handlers] WHO ON WHO.[CODE] = IHI.[HANDLER] WHERE IHI.[NUMBER] = @Number --Table 2 -- Added check for new "Deleted" columns -- All the hard work is done in the follow procedure EXEC [dbo].[KAAS_StrongRoomFetchDiaryDetails] @Number, @Handler SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomFetchItem', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomFetchItem] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomFetchItem] (@XMLCriteria NVARCHAR(MAX)) AS /***************************************************************************************************************************************** * * Example search criterion: N'' * * Stored Procedure Name : [dbo].[KAAS_StrongRoomFetchItem] * Copied from : [dbo].[ky_NETSTRONGROOMFetchItem] * Modification History: * 2014-05-28 ???? Created * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2015-03-12 Pino Return unique identifier "NUMBER" * 2015-06-23 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM( * 2015-05-24 sridharan KEYD - 2383 - Add Deed Address * 2015-09-03 Sridharan KEYD - 2487 - Show 'Deeds' and 'Wills' table in "Current Client Details" window * 2015-10-22 Magesh KEYD - 2775 - Added box no. to the query * 2015-11-18 John IF - 196 - Added testator and executors names and address and estimate estate and will date * 2015-11-26 Pino IF - 212 - Added "NeedsAttention" column * 2015-12-07 Pino Add Item Type Description * 2015-12-08 Pino Add Due Date and Deceased Date to result set * 2015-12-08 Pino Add the new Executors 3 and 4 to the result set * 2015-12-08 Pino Add "Permanently Withdrawn On" to the result set * 2015-12-09 Pino Add IsDeed (Yes/No) and IsWill (Yes/No) * 2016-01-11 Pino Add latest Item History Comment * 2016-02-08 Pino PLEASE NOTE: the OUTER APPLY will cause issues in some SQL2005 databases, but the solution * to this problem is not efficient. In order to support SQL2005 but not compromise * efficiency, we will execute a SQL2005 proof version of this query * when the database is on SQL2005 * 2016-02-29 Sridharan KEYD-3364-In the �Strong Room� pages the �Testator Address� values are not displayed. * 2016-04-20 Pino Add client address to output * 2016-04-22 Suriya M KEYD-2666-Allow the Strong Room to hold a scan capture of documents * 2016-05-02 Suriya M IF-232 - Strong Room - comment view dispaying first comment not the most recent one * 2016-05-12 Sridharan IF-229 Strong Room - Permanently Withdrawn * 2016-08-29 Pino One branch was returning "Testingggg" as client name!?!?! * 2016-08-30 Pino Rewrite. Use XML string. * 2016-08-31 Pino Include Item Code and Item Type Description in search * 2016-11-21 Pino Include Item Code and Item Type Description in search * 2016-11-22 Arun Have added Box number in search criteria * 2017-02-28 John Added [DEEDADDRESS] to search criteria * 2017-06-14 Pino Added client name / item description combo to search criteria * 2017-11-29 Arun KEYD-4716-Add Fee Earner to Column Chooser in the Strongroom * 2019-01-03 John KEYD-5576 - Added FinalReceipt to output * 2019-05-30 John KEYD-5904 - Added handler to XML so we can exclude items they are not allowed to see * 2019-06-27 John KEYD-5904 - Fixed ContactNETPrivileges check * 2019-10-07 John Ginnane KEYD-6190 - Fixed potential truncation errors * 2021-01-18 Aakif Copied from ky_NETSTRONGROOMFetchItem * 2022-07-18 Revathy.D Added pagination for scroll load feature * 2023-02-22 Vignesh M Added Total Row count for pagination *****************************************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @iSL INT DECLARE @mattercode VARCHAR(20) DECLARE @code VARCHAR(10) DECLARE @sortby VARCHAR(50) DECLARE @sortorder VARCHAR(4) DECLARE @search VARCHAR(500) DECLARE @maxresult INT DECLARE @pagenumber INT DECLARE @maxresult2 INT DECLARE @handler VARCHAR(20) DECLARE @BitWiseID BIGINT DECLARE @StartRow INT DECLARE @EndRow INT DECLARE @result TABLE ([id] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [NUMBER] INT NOT NULL UNIQUE NONCLUSTERED, [ITEMCODE] VARCHAR(10) NULL, [ITEMTYPE] VARCHAR(10) NULL, [MATTERCODE] VARCHAR(20) NULL, [ItemDesc] VARCHAR(800) NULL, [STATUS] CHAR(1) NULL, [DESTROYDATE] DATETIME NULL, [SEARCHCODE] VARCHAR(20) NULL, [MatterDesc] VARCHAR(200) NULL, [OPENCLOSED] CHAR(1) NULL, [CLIENTCODE] VARCHAR(10) NULL, [LOCATION] VARCHAR(120) NULL, [ENTRYDATE] DATETIME NULL, [DeedAddress] VARCHAR(300) NULL, [ClientName] VARCHAR(256) NULL, [ClientAddress] VARCHAR(500) NULL, [BoxNumber] VARCHAR(50) NULL, [TESTATOR] VARCHAR(100) NULL, [TESTATORADDRESS] VARCHAR(250) NULL, [EXECUTORNAME1] VARCHAR(100) NULL, [EXECUTORADDRESS1] VARCHAR(250) NULL, [EXECUTORNAME2] VARCHAR(100) NULL, [EXECUTORADDRESS2] VARCHAR(250) NULL, [EXECUTORNAME3] VARCHAR(100) NULL, [EXECUTORADDRESS3] VARCHAR(250) NULL, [EXECUTORNAME4] VARCHAR(100) NULL, [EXECUTORADDRESS4] VARCHAR(250) NULL, [ESTIMATEESTATE] DECIMAL(13, 2) NULL, [WILLDATE] DATETIME NULL, [Needs Attention] VARCHAR(3) NULL, [NeedsAttentionIcon] VARCHAR(10) NULL, [ItemTypeDescription] VARCHAR(30) NULL, [ATR] VARCHAR(3) NULL, [ATRIcon] VARCHAR(10) NULL, [Due Date] DATETIME NULL, [Date of Death] DATETIME NULL, [Permanently Withdrawn On] DATETIME NULL, [IsDeed] VARCHAR(3) NULL, [IsDeedIcon] VARCHAR(10) NULL, [IsWill] VARCHAR(3) NULL, [IsWillIcon] VARCHAR(10) NULL, [Comment] VARCHAR(300) NULL, [PropertyOwner] VARCHAR(100) NULL, [ActionID] VARCHAR(10) NULL, [WHO] VARCHAR(10) NULL, [FEEARNER] VARCHAR(30) NULL, [FinalReceipt] DATETIME NULL) BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XMLCriteria END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @mattercode = RTRIM(ISNULL([XML].[mattercode], '')), @code = RTRIM(ISNULL([XML].[code], '')), @sortby = CASE [XML].[sortby] WHEN 'Needs Attention' THEN 'Needs Attention' WHEN 'ATR' THEN 'ATR' WHEN 'ITEMCODE' THEN 'ITEMCODE' WHEN 'CLIENTCODE' THEN 'CLIENTCODE' WHEN 'MATTERCODE' THEN 'MATTERCODE' WHEN 'LOCATION' THEN 'LOCATION' WHEN 'BoxNumber' THEN 'BoxNumber' WHEN 'ClientName' THEN 'ClientName' WHEN 'MatterDesc' THEN 'MatterDesc' WHEN 'ITEMTYPE' THEN 'ITEMTYPE' WHEN 'ItemTypeDescription' THEN 'ItemTypeDescription' WHEN 'ItemDesc' THEN 'ItemDesc' WHEN 'IsWill' THEN 'IsWill' WHEN 'IsDeed' THEN 'IsDeed' WHEN 'STATUS' THEN 'STATUS' WHEN 'OPENCLOSED' THEN 'OPENCLOSED' WHEN 'DESTROYDATE' THEN 'DESTROYDATE' WHEN 'ENTRYDATE' THEN 'ENTRYDATE' WHEN 'WILLDATE' THEN 'WILLDATE' WHEN 'Due Date' THEN 'Due Date' WHEN 'Date of Death' THEN 'Date of Death' WHEN 'Permanently Withdrawn On' THEN 'Permanently Withdrawn On' WHEN 'SEARCHCODE' THEN 'SEARCHCODE' WHEN 'PropertyOwner' THEN 'PropertyOwner' WHEN 'WHO' THEN 'WHO' WHEN 'FEEARNER' THEN 'FEEARNER' WHEN 'FinalReceipt' THEN 'FinalReceipt' ELSE '' END, @sortorder = CASE RTRIM(ISNULL([XML].[sortorder], '')) WHEN 'DESC' THEN 'DESC' ELSE 'ASC' END, @search = RTRIM(ISNULL([XML].[search], '')), @maxresult = ISNULL([XML].[maxresult], 100), @handler = ISNULL(RTRIM(LTRIM([XML].[handler])), 'ADM'), @pagenumber = ISNULL([XML].[pagenumber], 0) - 1 FROM OPENXML(@iSL, N'search') WITH ([mattercode] VARCHAR(20) '@mattercode', [code] VARCHAR(10) '@code', [sortby] VARCHAR(50) '@sortby', [sortorder] VARCHAR(4) '@sortorder', [search] VARCHAR(max) '@search', [maxresult] INT '@maxresult', [handler] VARCHAR(20) '@handler', [pagenumber] INT '@pagenumber') [XML] EXEC sp_xml_removedocument @iSL DECLARE @done BIT SELECT @BitWiseID = HNG.[BitWiseID] FROM [dbo].[HandlerNETGroupMembership] AS HNG WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@handler, '')))) IF(@pagenumber > -1) BEGIN SET @StartRow = ((@pagenumber) * @maxresult) + 1; SET @EndRow = (@StartRow + @maxresult) - 1; END IF (@handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END SET @done = 0 WHILE @done = 0 IF @search = '' BEGIN SET @done = 1 end ELSE BEGIN IF SUBSTRING(@search, 1, 1) = '%' BEGIN SET @search = SUBSTRING(@search, 2, LEN(@search) - 1) END ELSE IF SUBSTRING(@search, LEN(@search), 1) = '%' BEGIN SET @search = SUBSTRING(@search, 1, LEN(@search) - 1) END ELSE BEGIN SET @done = 1 END END SELECT @sortorder = CASE WHEN @sortby = '' THEN '' ELSE @sortorder END, @search = CASE WHEN @search = '' THEN '' WHEN SUBSTRING(@search, 1, 1) <> '%' AND SUBSTRING(@search, LEN(@search), 1) <> '%' THEN '%' + @search + '%' WHEN SUBSTRING(@search, 1, 1) = '%' AND SUBSTRING(@search, LEN(@search), 1) <> '%' THEN @search + '%' WHEN SUBSTRING(@search, 1, 1) <> '%' AND SUBSTRING(@search, LEN(@search), 1) = '%' THEN '%' + @search ELSE @search END IF (@sortby = 'WHO') BEGIN SET @maxresult2 = @maxresult SET @maxresult = 100 END INSERT INTO @result ([NUMBER]) SELECT [FMI].[NUMBER] AS [NUMBER] FROM [dbo].[FileManagerItems] [FMI] LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [FMI].[MATTERCODE] LEFT OUTER JOIN [dbo].[SearchMatters] AS [SM] ON MAT.[Code] = [SM].[Code] AND CASE @BitWiseID WHEN 0 THEN CASE [SM].[Privileges] WHEN 0 THEN 1 WHEN -1 THEN 1 ELSE 0 END ELSE CASE @BitWiseID & [SM].[Privileges] WHEN 0 THEN 0 ELSE 1 END END = 1 LEFT OUTER JOIN [dbo].[Contacts] [CTC] ON [CTC].[Code] = [FMI].[CLIENTCODE] LEFT OUTER JOIN [dbo].[ContactNETPrivileges] AS [CNP] ON [CNP].[ContactCode] = [CTC].[Code] LEFT OUTER JOIN [ItemLocations] [IL] ON [IL].[CODE] = [FMI].[LOCATION] LEFT OUTER JOIN [ItemTypes] [ITY] ON [ITY].[TYPECODE] = [FMI].[ITEMTYPE] WHERE CASE WHEN MAT.[Code] IS NOT NULL /* A matter was found */ AND SM.[Code] IS NULL /* But the user can't view the matter */ THEN 0 ELSE 1 END = 1 AND CASE WHEN [CTC].[Code] IS NOT NULL /* A client code was found */ AND [CNP].[ContactCode] IS NOT NULL /* But the user can't view the client */ THEN CASE @BitWiseID WHEN 0 THEN CASE [CNP].[Previleges] WHEN 0 THEN 1 WHEN -1 THEN 1 ELSE 0 END ELSE CASE @BitWiseID & [CNP].[Previleges] WHEN 0 THEN 0 ELSE 1 END END ELSE 1 END = 1 AND CASE WHEN [FMI].[IsDeleted] IS NULL THEN 0 ELSE [FMI].[IsDeleted] END = 0 AND CASE WHEN @mattercode = '' THEN 1 WHEN [FMI].[mattercode] = @mattercode THEN 1 ELSE 0 END = 1 AND CASE WHEN @code = '' THEN 1 WHEN [FMI].[CLIENTCODE] = @code THEN 1 ELSE 0 END = 1 AND CASE WHEN @search = '' THEN 1 WHEN [FMI].[ITEMCODE] LIKE @search THEN 1 WHEN [FMI].[DESCRIPTION] LIKE @search THEN 1 WHEN [FMI].[BOXNO] LIKE @search THEN 1 WHEN [FMI].[SEARCHCODE] LIKE @search THEN 1 WHEN [CTC].[Name] LIKE @search THEN 1 WHEN [FMI].[MATTERCODE] LIKE @Search THEN 1 WHEN [MAT].[Description] LIKE @search THEN 1 WHEN [FMI].[CLIENTCODE] LIKE @search THEN 1 WHEN [IL].[DESCRIPTION] LIKE @search THEN 1 WHEN [ITY].[TYPEDESCRIPTION] LIKE @search THEN 1 WHEN [FMI].[DEEDADDRESS] LIKE @search THEN 1 WHEN ISNULL([CTC].[Name], '') + '/' + ISNULL([FMI].[Description], '') LIKE @search THEN 1 ELSE 0 END = 1 ORDER BY CASE @sortorder WHEN 'ASC' THEN CASE @sortby WHEN 'ITEMCODE' THEN [FMI].[ITEMCODE] WHEN 'LOCATION' THEN CASE WHEN [FMI].[LOCATION] IS NULL THEN 'ZZZZZZZZZZ' WHEN [FMI].[LOCATION] = '' THEN 'ZZZZZZZZZZ' ELSE [FMI].[LOCATION] END WHEN 'BoxNumber' THEN CASE WHEN [FMI].[BOXNO] IS NULL THEN 'ZZZZZZZZZZZZZZZZZZZZ' WHEN [FMI].[BOXNO] = '' THEN 'ZZZZZZZZZZZZZZZZZZZZ' ELSE [FMI].[BOXNO] END WHEN 'CLIENTCODE' THEN CASE WHEN [FMI].[CLIENTCODE] IS NULL THEN 'ZZZZZZZZZZ' WHEN [FMI].[CLIENTCODE] = '' THEN 'ZZZZZZZZZZ' ELSE [FMI].[CLIENTCODE] END WHEN 'MATTERCODE' THEN CASE WHEN [FMI].[MATTERCODE] IS NULL THEN 'ZZZZZZZZZZZZZZZZZZZZ' WHEN [FMI].[MATTERCODE] = '' THEN 'ZZZZZZZZZZZZZZZZZZZZ' ELSE [FMI].[MATTERCODE] END WHEN 'MatterDesc' THEN CASE WHEN REPLACE(REPLACE(RTRIM(ISNULL([MAT].[Description], '')), CHAR(13), ''), CHAR(10), '') = '' THEN 'ZZZZZZZZZZZZZZZZZZZZ' ELSE LTRIM(RTRIM([MAT].[Description])) END WHEN 'ClientName' THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = '' THEN 'ZZZZZZZZZZZZZZZZZZZZ' ELSE LTRIM(RTRIM([CTC].[Name])) END WHEN 'ITEMTYPE' THEN [FMI].[ITEMTYPE] WHEN 'ItemTypeDescription' THEN CASE WHEN [ITY].[TYPEDESCRIPTION] IS NULL THEN 'ZZZZZZZZZZZZZZZZZZZZ' WHEN [ITY].[TYPEDESCRIPTION] = '' THEN 'ZZZZZZZZZZZZZZZZZZZZ' ELSE [ITY].[TYPEDESCRIPTION] END WHEN 'ItemDesc' THEN CASE WHEN [CTC].[CODE] IS NULL THEN CASE WHEN [FMI].[DESCRIPTION] IS NULL THEN 'ZZZZZZZZZZZZZZZZZZZZ' WHEN [FMI].[DESCRIPTION] = '' THEN 'ZZZZZZZZZZZZZZZZZZZZ' ELSE [FMI].[DESCRIPTION] END WHEN [FMI].[DESCRIPTION] IS NULL THEN LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) + '/ZZZZZZZZZZZZZZZZZZZZ' WHEN [FMI].[DESCRIPTION] = '' THEN LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) + '/ZZZZZZZZZZZZZZZZZZZZ' ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) + '/' + RTRIM(ISNULL([FMI].[DESCRIPTION], '')) END WHEN 'STATUS' THEN CASE WHEN [FMI].[STATUS] IS NULL THEN 'Z' WHEN [FMI].[STATUS] = ' ' THEN 'Z' ELSE [FMI].[STATUS] END WHEN 'SEARCHCODE' THEN CASE WHEN [FMI].[SEARCHCODE] IS NULL THEN 'ZZZZZZZZZZZZZZZZZZZZ' WHEN [FMI].[SEARCHCODE] = '' THEN 'ZZZZZZZZZZZZZZZZZZZZ' ELSE [FMI].[SEARCHCODE] END WHEN 'PropertyOwner' THEN CASE WHEN [FMI].[Property Owner] IS NULL THEN 'ZZZZZZZZZZZZZZZZZZZZ' WHEN [FMI].[Property Owner] = '' THEN 'ZZZZZZZZZZZZZZZZZZZZ' ELSE [FMI].[Property Owner] END WHEN 'ATR' THEN CASE WHEN [FMI].[ACCOUNTABLERECEIPT] IS NULL THEN '' WHEN [FMI].[ACCOUNTABLERECEIPT] = 'Y' THEN 'Y' ELSE '' END WHEN 'FEEARNER' THEN CASE WHEN [FMI].[FEEARNER] IS NULL THEN '' ELSE [FMI].[FEEARNER] END ELSE '' END ELSE '' END ASC, CASE @sortorder WHEN 'ASC' THEN CASE @sortby WHEN 'Needs Attention' THEN CONVERT(INT, [FMI].[NeedsAttention]) WHEN 'IsWill' THEN CASE WHEN ISNULL([ITY].[WillType], 0) = 1 THEN 0 ELSE 1 END WHEN 'IsDeed' THEN CASE WHEN ISNULL([ITY].[DeedType], 0) = 1 THEN 0 ELSE 1 END WHEN 'OPENCLOSED' THEN CASE WHEN [FMI].[OPENCLOSED] = 'O' THEN 1 WHEN [FMI].[OPENCLOSED] = 'C' THEN 2 ELSE 3 END ELSE 0 END ELSE 0 END ASC, CASE @sortorder WHEN 'ASC' THEN CASE @sortby WHEN 'DESTROYDATE' THEN ISNULL([FMI].[DESTROYDATE], CONVERT(DATETIME, '22000101')) WHEN 'ENTRYDATE' THEN ISNULL([FMI].[ENTRYDATE], CONVERT(DATETIME, '22000101')) WHEN 'WILLDATE' THEN ISNULL([FMI].[WILLDATE], CONVERT(DATETIME, '22000101')) WHEN 'Due Date' THEN ISNULL([FMI].[DueDate], CONVERT(DATETIME, '22000101')) WHEN 'Date of Death' THEN ISNULL([FMI].[DeceasedDate], CONVERT(DATETIME, '22000101')) WHEN 'Permanently Withdrawn On' THEN ISNULL([FMI].[PermanentlyWithdrawnOn], CONVERT(DATETIME, '22000101')) WHEN 'FinalReceipt' THEN ISNULL([FMI].[FinalReceipt], CONVERT(DATETIME, '22000101')) ELSE CONVERT(DATETIME, NULL) END ELSE CONVERT(DATETIME, NULL) END ASC, CASE @sortorder WHEN 'ASC' THEN CASE @sortby WHEN 'IsWill' THEN [ITY].[TYPEDESCRIPTION] WHEN 'IsDeed' THEN [ITY].[TYPEDESCRIPTION] ELSE '' END ELSE '' END ASC, CASE @sortorder WHEN 'DESC' THEN CASE @sortby WHEN 'ITEMCODE' THEN [FMI].[ITEMCODE] WHEN 'LOCATION' THEN CASE WHEN [FMI].[LOCATION] IS NULL THEN '' WHEN [FMI].[LOCATION] = '' THEN '' ELSE [FMI].[LOCATION] END WHEN 'BoxNumber' THEN CASE WHEN [FMI].[BOXNO] IS NULL THEN '' WHEN [FMI].[BOXNO] = '' THEN '' ELSE [FMI].[BOXNO] END WHEN 'CLIENTCODE' THEN CASE WHEN [FMI].[CLIENTCODE] IS NULL THEN '' WHEN [FMI].[CLIENTCODE] = '' THEN '' ELSE [FMI].[CLIENTCODE] END WHEN 'MATTERCODE' THEN CASE WHEN [FMI].[MATTERCODE] IS NULL THEN '0000' WHEN [FMI].[MATTERCODE] = '' THEN '' ELSE [FMI].[MATTERCODE] END WHEN 'MatterDesc' THEN CASE WHEN REPLACE(REPLACE(RTRIM(ISNULL([MAT].[Description], '')), CHAR(13), ''), CHAR(10), '') = '' THEN '' ELSE LTRIM(RTRIM([MAT].[Description])) END WHEN 'ClientName' THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = '' THEN '' ELSE LTRIM(RTRIM([CTC].[Name])) END WHEN 'ITEMTYPE' THEN [FMI].[ITEMTYPE] WHEN 'ItemTypeDescription' THEN CASE WHEN [ITY].[TYPEDESCRIPTION] IS NULL THEN '' WHEN [ITY].[TYPEDESCRIPTION] = '' THEN '' ELSE [ITY].[TYPEDESCRIPTION] END WHEN 'ItemDesc' THEN CASE WHEN [CTC].[CODE] IS NULL THEN CASE WHEN [FMI].[DESCRIPTION] IS NULL THEN '' WHEN [FMI].[DESCRIPTION] = '' THEN '' ELSE [FMI].[DESCRIPTION] END WHEN [FMI].[DESCRIPTION] IS NULL THEN LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) + '/' WHEN [FMI].[DESCRIPTION] = '' THEN LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) + '/' ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) + '/' + RTRIM(ISNULL([FMI].[DESCRIPTION], '')) END WHEN 'STATUS' THEN CASE WHEN [FMI].[STATUS] IS NULL THEN '' WHEN [FMI].[STATUS] = ' ' THEN '' ELSE [FMI].[STATUS] END WHEN 'SEARCHCODE' THEN CASE WHEN [FMI].[SEARCHCODE] IS NULL THEN '' WHEN [FMI].[SEARCHCODE] = '' THEN '' ELSE [FMI].[SEARCHCODE] END WHEN 'PropertyOwner' THEN CASE WHEN [FMI].[Property Owner] IS NULL THEN '' WHEN [FMI].[Property Owner] = '' THEN '' ELSE [FMI].[Property Owner] END WHEN 'ATR' THEN CASE WHEN [FMI].[ACCOUNTABLERECEIPT] IS NULL THEN '' WHEN [FMI].[ACCOUNTABLERECEIPT] = 'Y' THEN 'Y' ELSE '' END WHEN 'FEEARNER' THEN CASE WHEN [FMI].[FEEARNER] IS NULL THEN '' WHEN [FMI].[FEEARNER] = '' THEN '' ELSE [FMI].[FEEARNER] END ELSE '' END ELSE '' END DESC, CASE @sortorder WHEN 'DESC' THEN CASE @sortby WHEN 'Needs Attention' THEN CONVERT(INT, [FMI].[NeedsAttention]) WHEN 'IsWill' THEN CASE WHEN ISNULL([ITY].[WillType], 0) = 1 THEN 1 ELSE 0 END WHEN 'IsDeed' THEN CASE WHEN ISNULL([ITY].[DeedType], 0) = 1 THEN 1 ELSE 0 END WHEN 'OPENCLOSED' THEN CASE WHEN [FMI].[OPENCLOSED] = 'C' THEN 2 WHEN [FMI].[OPENCLOSED] = 'O' THEN 1 ELSE 0 END ELSE 0 END ELSE 0 END DESC, CASE @sortorder WHEN 'DESC' THEN CASE @sortby WHEN 'DESTROYDATE' THEN ISNULL([FMI].[DESTROYDATE], CONVERT(DATETIME, '18000101')) WHEN 'ENTRYDATE' THEN ISNULL([FMI].[ENTRYDATE], CONVERT(DATETIME, '18000101')) WHEN 'WILLDATE' THEN ISNULL([FMI].[WILLDATE], CONVERT(DATETIME, '18000101')) WHEN 'Due Date' THEN ISNULL([FMI].[DueDate], CONVERT(DATETIME, '18000101')) WHEN 'Date of Death' THEN ISNULL([FMI].[DeceasedDate], CONVERT(DATETIME, '18000101')) WHEN 'Permanently Withdrawn On' THEN ISNULL([FMI].[PermanentlyWithdrawnOn], CONVERT(DATETIME, '18000101')) WHEN 'FinalReceipt' THEN ISNULL([FMI].[FinalReceipt], CONVERT(DATETIME, '22000101')) ELSE CONVERT(DATETIME, NULL) END ELSE CONVERT(DATETIME, NULL) END DESC, CASE @sortorder WHEN 'DESC' THEN CASE @sortby WHEN 'IsWill' THEN [ITY].[TYPEDESCRIPTION] WHEN 'IsDeed' THEN [ITY].[TYPEDESCRIPTION] ELSE '' END ELSE '' END DESC, CASE @sortorder WHEN 'DESC' THEN 0 ELSE [FMI].[NUMBER] END DESC, CASE @sortorder WHEN 'DESC' THEN [FMI].[NUMBER] ELSE 2147483647 END ASC OPTION (KEEPFIXED PLAN, OPTIMIZE FOR (@mattercode = '', @code = '', @search = '',@sortby = '', @sortorder = '')) UPDATE [RES2] SET [RES2].[WHO] = [IHI2].[WHO], [RES2].[Comment] = [IHI2].[COMMENT] FROM ( SELECT [RES].[NUMBER], MAX([IHI].[RecordID]) AS [RecordID] FROM @result [RES] LEFT OUTER JOIN [dbo].[ItemHistory] [IHI] ON [IHI].[NUMBER] = [RES].[NUMBER] WHERE [IHI].[RecordID] IS NOT NULL GROUP BY [RES].[NUMBER]) [HIS] INNER JOIN @result [RES2] ON [RES2].[NUMBER] = [HIS].[NUMBER] INNER JOIN [dbo].[ItemHistory] [IHI2] ON [IHI2].[RecordID] = [HIS].[RecordID] OPTION (KEEPFIXED PLAN) UPDATE [RES] SET [RES].[ITEMCODE] = RTRIM(ISNULL([FMI].[ITEMCODE], '')), [RES].[MATTERCODE] = RTRIM(ISNULL([FMI].[MATTERCODE], '')), [RES].[ITEMTYPE] = RTRIM(ISNULL([FMI].[ITEMTYPE], '')), [RES].[ItemDesc] = CASE WHEN RTRIM(ISNULL([CTC].[Code], '')) = '' THEN '' ELSE RTRIM(ISNULL([CTC].[Name], '')) + '/' END + RTRIM(ISNULL([FMI].[DESCRIPTION], '')), [RES].[STATUS] = ISNULL([FMI].[STATUS], ' '), [RES].[DESTROYDATE] = [FMI].[DESTROYDATE], [RES].[SEARCHCODE] = RTRIM(ISNULL([FMI].[SEARCHCODE], '')), [RES].[MatterDesc] = RTRIM(ISNULL([MAT].[Description], '')), [RES].[OPENCLOSED] = ISNULL([FMI].[OPENCLOSED], ' '), [RES].[CLIENTCODE] = RTRIM(ISNULL([FMI].[CLIENTCODE], '')), [RES].[LOCATION] = RTRIM(ISNULL([FMI].[LOCATION], '')) + (CASE WHEN RTRIM(ISNULL([FMI].[LOCATION], '')) <> '' THEN ' - ' ELSE '' END) + RTRIM(ISNULL([IL].[DESCRIPTION], '')), [RES].[ENTRYDATE] = [FMI].[ENTRYDATE], [RES].[DeedAddress] = RTRIM(ISNULL([FMI].[DEEDADDRESS], '')), [RES].[ClientName] = RTRIM(ISNULL([CTC].[Name], '')), [RES].[ClientAddress] = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL([CTC].[Address], ''), 500), [RES].[BoxNumber] = RTRIM(ISNULL([FMI].[BOXNO], '')), [RES].[TESTATOR] = RTRIM(ISNULL([FMI].[TESTATOR], '')), [RES].[TESTATORADDRESS] = RTRIM(ISNULL([FMI].[TESTATORADDRESS],'')), [RES].[EXECUTORNAME1] = RTRIM(ISNULL([FMI].[EXECUTORNAME1], '')), [RES].[EXECUTORADDRESS1] = RTRIM(ISNULL([FMI].[EXECUTORADDRESS1], '')), [RES].[EXECUTORNAME2] = RTRIM(ISNULL([FMI].[EXECUTORNAME2], '')), [RES].[EXECUTORADDRESS2] = RTRIM(ISNULL([FMI].[EXECUTORADDRESS2], '')), [RES].[EXECUTORNAME3] = RTRIM(ISNULL([FMI].[EXECUTORNAME3], '')), [RES].[EXECUTORADDRESS3] = RTRIM(ISNULL([FMI].[EXECUTORADDRESS3], '')), [RES].[EXECUTORNAME4] = RTRIM(ISNULL([FMI].[EXECUTORNAME4], '')), [RES].[EXECUTORADDRESS4] = RTRIM(ISNULL([FMI].[EXECUTORADDRESS4], '')), [RES].[ESTIMATEESTATE] = ISNULL([FMI].[ESTIMATEESTATE], CONVERT(DECIMAL(13, 2), 0)), [RES].[WILLDATE] = [FMI].[WILLDATE], [RES].[Needs Attention] = CASE WHEN [FMI].[NeedsAttention] = 1 THEN 'Yes' ELSE 'No' END, [RES].[NeedsAttentionIcon] = CASE WHEN [FMI].[NeedsAttention] = 1 THEN 'Visible' ELSE 'Collapsed' END, [RES].[ItemTypeDescription] = RTRIM(ISNULL([ITY].[TYPEDESCRIPTION], RTRIM(ISNULL([FMI].[ITEMTYPE], '')))), [RES].[ATR] = CASE WHEN ISNULL([FMI].[ACCOUNTABLERECEIPT], '') = 'Y' THEN 'Yes' ELSE 'No' END, [RES].[ATRIcon] = CASE WHEN ISNULL([FMI].[ACCOUNTABLERECEIPT], '') = 'Y' THEN 'Visible' ELSE 'Collapsed' END, [RES].[Due Date] = [FMI].[DueDate], [RES].[Date of Death] = [FMI].[DeceasedDate], [RES].[Permanently Withdrawn On] = [FMI].[PermanentlyWithdrawnOn], [RES].[IsDeed] = CASE WHEN ISNULL([ITY].[DeedType], CONVERT(BIT, 0)) = 1 THEN 'Yes' ELSE 'No' END, [RES].[IsDeedIcon] = CASE WHEN ISNULL([ITY].[DeedType], CONVERT(BIT, 0)) = 1 THEN 'Visible' ELSE 'Collapsed' END, [RES].[IsWill] = CASE WHEN ISNULL([ITY].[WillType], CONVERT(BIT, 0)) = 1 THEN 'Yes' ELSE 'No' END, [RES].[IsWillIcon] = CASE WHEN ISNULL([ITY].[WillType], CONVERT(BIT, 0)) = 1 THEN 'Visible' ELSE 'Collapsed' END, [RES].[PropertyOwner] = RTRIM(ISNULL([FMI].[Property Owner], '')), [RES].[ActionID] = ISNULL(CONVERT(VARCHAR(10), [FMI].[ActionId]), ''), [RES].[FEEARNER] = (SELECT NAME FROM Handlers WHERE CODE = FMI.[FEEARNER]), [RES].[FinalReceipt] = [FMI].[FinalReceipt] FROM @result [RES] INNER JOIN [dbo].[FileManagerItems] [FMI] LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [FMI].[MATTERCODE] LEFT OUTER JOIN [dbo].[Contacts] [CTC] ON [CTC].[Code] = [FMI].[CLIENTCODE] LEFT OUTER JOIN [ItemLocations] [IL] ON [IL].[CODE] = [FMI].[LOCATION] LEFT OUTER JOIN [ItemTypes] [ITY] ON [ITY].[TYPECODE] = [FMI].[ITEMTYPE] ON [FMI].[NUMBER] = [RES].[NUMBER] OPTION (KEEPFIXED PLAN) DECLARE @RES2 TABLE ([id2] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY, [id] INT NOT NULL) DECLARE @RESORT BIT SET @RESORT = 0 IF @sortby = 'WHO' BEGIN SET @RESORT = 1 IF @sortorder = 'ASC' BEGIN INSERT INTO @RES2 ([id]) SELECT [RES].[id] FROM @result [RES] ORDER BY CASE WHEN [RES].[WHO] IS NULL THEN 'ZZZZZZZZZZ' WHEN [RES].[WHO] = '' THEN 'ZZZZZZZZZZ' ELSE [RES].[WHO] END ASC, [RES].[id] END IF @sortorder = 'DESC' BEGIN INSERT INTO @RES2 ([id]) SELECT [RES].[id] FROM @result [RES] ORDER BY CASE WHEN [RES].[WHO] IS NULL THEN '' WHEN [RES].[WHO] = '' THEN '' ELSE [RES].[WHO] END DESC, [RES].[id] END END IF @RESORT = 0 BEGIN SELECT [RES].[id] AS [Id], [RES].[NUMBER] AS [Number], [RES].[ITEMCODE] AS [ItemCode], [RES].[MATTERCODE] AS [MatterCode], [RES].[ITEMTYPE] AS [ItemType], [RES].[ItemDesc] AS [ItemDesc], [RES].[STATUS] AS [Status], [RES].[DESTROYDATE] AS [DestroyDate], [RES].[SEARCHCODE] AS [SearchCode], [RES].[MatterDesc] AS [MatterDesc], [RES].[OPENCLOSED] AS [OpenClosed], [RES].[CLIENTCODE] AS [ClientCode], [RES].[LOCATION] AS [Location], [RES].[ENTRYDATE] AS [EntryDate], [RES].[DeedAddress] AS [DeedAddress], [RES].[ClientName] AS [ClientName], [RES].[ClientAddress] AS [ClientAddress], [RES].[BoxNumber] AS [BoxNumber], [RES].[TESTATOR] AS [Testator], [RES].[TESTATORADDRESS] AS [TestatOrAddress], [RES].[EXECUTORNAME1] AS [ExecutorName1], [RES].[EXECUTORADDRESS1] AS [ExecutorAddress1], [RES].[EXECUTORNAME2] AS [ExecutorName2], [RES].[EXECUTORADDRESS2] AS [ExecutorAddress2], [RES].[EXECUTORNAME3] AS [ExecutorName3], [RES].[EXECUTORADDRESS3] AS [ExecutorAddress3], [RES].[EXECUTORNAME4] AS [ExecutorName4], [RES].[EXECUTORADDRESS4] AS [ExecutorAddress4], [RES].[ESTIMATEESTATE] AS [EstimateEstate], [RES].[WILLDATE] AS [WillDate], [RES].[Needs Attention] AS [NeedsAttention], [RES].[NeedsAttentionIcon] AS [NeedsAttentionIcon], [RES].[ItemTypeDescription] AS [ItemTypeDescription], [RES].[ATR] AS [ATR], [RES].[ATRIcon] AS [ATRIcon], [RES].[Due Date] AS [DueDate], [RES].[Date of Death] AS [DateofDeath] , [RES].[Permanently Withdrawn On] AS [PermanentlyWithdrawnOn], [RES].[IsDeed] AS [IsDeed], [RES].[IsDeedIcon] AS [IsDeedIcon], [RES].[IsWill] AS [IsWill], [RES].[IsWillIcon] AS [IsWillIcon], [RES].[Comment] AS [Comment], [RES].[PropertyOwner] AS [PropertyOwner], [RES].[ActionID] AS [ActionID], [RES].[WHO] AS [WHO], [RES].[FEEARNER] AS [FeeEarner], [RES].[FinalReceipt] AS [FinalReceipt] FROM @result [RES] WHERE [RES].[id] BETWEEN @StartRow AND @EndRow ORDER BY [RES].[id] ASC OPTION (KEEPFIXED PLAN) END ELSE BEGIN SELECT [RES2].[id2] AS [Id], [RES].[NUMBER] AS [Number], [RES].[ITEMCODE] AS [ItemCode], [RES].[MATTERCODE] AS [MatterCode], [RES].[ITEMTYPE] AS [ItemType], [RES].[ItemDesc] AS [ItemDesc], [RES].[STATUS] AS [Status], [RES].[DESTROYDATE] AS [DestroyDate], [RES].[SEARCHCODE] AS [SearchCode], [RES].[MatterDesc] AS [MatterDesc], [RES].[OPENCLOSED] AS [OpenClosed], [RES].[CLIENTCODE] AS [ClientCode], [RES].[LOCATION] AS [Location], [RES].[ENTRYDATE] AS [EntryDate], [RES].[DeedAddress] AS [DeedAddress], [RES].[ClientName] AS [ClientName], [RES].[ClientAddress] AS [ClientAddress], [RES].[BoxNumber] AS [BoxNumber], [RES].[TESTATOR] AS [Testator], [RES].[TESTATORADDRESS] AS [TestatOrAddress], [RES].[EXECUTORNAME1] AS [ExecutorName1], [RES].[EXECUTORADDRESS1] AS [ExecutorAddress1], [RES].[EXECUTORNAME2] AS [ExecutorName2], [RES].[EXECUTORADDRESS2] AS [ExecutorAddress2], [RES].[EXECUTORNAME3] AS [ExecutorName3], [RES].[EXECUTORADDRESS3] AS [ExecutorAddress3], [RES].[EXECUTORNAME4] AS [ExecutorName4], [RES].[EXECUTORADDRESS4] AS [ExecutorAddress4], [RES].[ESTIMATEESTATE] AS [EstimateEstate], [RES].[WILLDATE] AS [WillDate], [RES].[Needs Attention] AS [NeedsAttention], [RES].[NeedsAttentionIcon] AS [NeedsAttentionIcon], [RES].[ItemTypeDescription] AS [ItemTypeDescription], [RES].[ATR] AS [ATR], [RES].[ATRIcon] AS [ATRIcon], [RES].[Due Date] AS [DueDate], [RES].[Date of Death] AS [DateofDeath], [RES].[Permanently Withdrawn On] AS [PermanentlyWithdrawnOn], [RES].[IsDeed] AS [IsDeed], [RES].[IsDeedIcon] AS [IsDeedIcon], [RES].[IsWill] AS [IsWill], [RES].[IsWillIcon] AS [IsWillIcon], [RES].[Comment] AS [Comment], [RES].[PropertyOwner] AS [PropertyOwner], [RES].[ActionID] AS [ActionID], [RES].[WHO] AS [WHO], [RES].[FEEARNER] AS [FeeEarner], [RES].[FinalReceipt] AS [FinalReceipt] FROM @RES2 [RES2] INNER JOIN @result [RES] ON [RES].[id] = [RES2].[id] WHERE [RES].[id] BETWEEN @StartRow AND @EndRow ORDER BY [RES2].[id2] ASC OPTION (KEEPFIXED PLAN) END SELECT ISNULL(MAX([id]),0) AS [TotalCount] FROM @result [RES] SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomFetchLocation', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomFetchLocation] END GO CREATE PROCEDURE KAAS_StrongRoomFetchLocation AS /************************************************************************************************ * Stored Procedure Name: KAAS_StrongRoomFetchLocation * Copied From : ky_NETStrongRoomFetchLocation * * This procedure is used to FETCH Item location * * Modification History: * 2015-10-26 Sridharan Created * 2022-01-31 Aakif Copied from ky_NETStrongRoomFetchLocation ************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT CODE AS [Code], [DESCRIPTION] AS [Location] FROM ItemLocations WHERE ISNULL(Retired,'N') = 'N' SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomFetchPageLoad', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomFetchPageLoad] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomFetchPageLoad] (@Number INT) AS /************************************************************************************ * Stored Procedure Name : [dbo].[KAAS_StrongRoomFetchPageLoad] * Copied from : [dbo].[ky_NETStrongRoomFetchPageLoad] * * This stored procedure is used to Fetch Page load data * 1. Item Type * 2. Item Location * 3. Fee Earners * * Modification History * 2015-06-23 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM( * 2015-10-26 Sridharan IF - 185 - Locations - Delete option * 2015-12-08 Pino Include new DeedType and WillType columns * 2016-06-22 Suriya M KEYD-3562-The warning message for the Retired * fields needs to be popup when you go into that matter. * 2016-06-08 Suriya M KEYD-3595-URGENT: Please review a number of recently * created Stored Procedures and Functions * 2022-01-20 Aakif Created new SP ************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @FeeEarner VARCHAR(10) DECLARE @Location VARCHAR(10) SET @FeeEarner = (SELECT [FEEARNER] FROM [FileManagerItems] WHERE [NUMBER] = @Number) SET @Location = (SELECT [LOCATION] FROM [FileManagerItems] WHERE [NUMBER] = @Number) SELECT RTRIM(ITP.[TYPECODE]) AS [TypeCode], RTRIM(ISNULL(ITP.[TYPEDESCRIPTION], '')) AS [TypeDescription], ITP.[DeedType] AS [DeedType], ITP.[WillType] AS [WillType] FROM [dbo].[ItemTypes] ITP SELECT RTRIM(ITL.[CODE]) AS [Code], RTRIM(ISNULL(ITL.[DESCRIPTION], '')) AS [Location] FROM [dbo].[ItemLocations] ITL WHERE ISNULL(ITL.[Retired], 'N') <> 'Y' OR ITL.[CODE] = @Location --SELECT RTRIM(FEC.[Code]) AS [Code], -- RTRIM(ISNULL(FEC.[Name], '')) AS [FeeEarner] -- FROM [dbo].[FeeEarnerCodes] FEC -- WHERE ISNULL(FEC.[RETIRED], 'N') <> 'Y' SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [Code], RTRIM(ISNULL(HAN.[NAME], '')) AS [FeeEarner] FROM [Handlers] HAN WHERE ISNULL(HAN.[RETIRED], 'N') <> 'Y' OR HAN.[CODE] = @FeeEarner ORDER BY RTRIM(ISNULL(HAN.[CODE], '')) SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomFileItemCodeAvailability', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomFileItemCodeAvailability] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomFileItemCodeAvailability] (@Itemcode VARCHAR(20), @Result INT OUTPUT) AS /************************************************************************************************************** * Stored Procedure Name: KAAS_StrongRoomFileItemCodeAvailability * Copied From : ky_NETStrongRoomFileItemCodeAvailability * * This procedure is used to check the availability of item code in strong room, * IF it EXISTS this procedure will return 1 ELSE it will return 2 through Result output parameter * * Modification History * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2015-11-26 Pino Make sure that NeedsAttention does not need to be referenced. Tidy up. * 2022-01-21 Aakif Created **************************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS(SELECT TOP 1 1 FROM FileManagerItems WHERE ITEMCODE = @Itemcode ) BEGIN SET @Result = 1 END ELSE BEGIN SET @Result = 2 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomGenerateItemCode', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomGenerateItemCode] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomGenerateItemCode] (@ItemCode VARCHAR(10) OUTPUT) AS /************************************************************************************************************************************ * Stored Procedure Name: KAAS_StrongRoomGenerateItemCode * Copied From : ky_NETStrongRoomGenerateItemCode * * This procedure is used to generate Item Code for Item in Strong Room * * Modification History: * 2014-03-17 Arun.V - Creating Item code generation method has changed * 2015-10-22 Magesh - To fix conversion issue, have changed the itemcode to BIGINT while adding 1 to it. * 2015-11-26 Pino - make sure NeedsAttention does not need to be referenced. Tidy up. * 2016-03-23 Pino - Clean up this procedure and make sure it works correctly. * 1. Make sure @ItemCode is the same type and length as [dbo].[FileManagerItems].[ITEMCODE], * i.e. VARCHAR(10), not NVARCHAR(12) * 2. Set @ZEROS to a sensible length. There is no point in setting @ZEROS to 13 zeros when it's defined * with a length of 10. * 3. Truncate from the right after padding. * 2019-09-05 Pino - Handle Item Codes with dots, commas, the letter E or a Space. And convert to FLOAT before converting * to BIGINT. * 2022-01-20 Aakif KAAS file created ************************************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ZEROS VARCHAR(10) SET @ZEROS = '0000000000' -- 2016-03-23 2. -- 2016-03-23 Do this in a more sensible way, let's add the 1 here before converting. And use VARCHAR instead of NVARCHAR SELECT @ItemCode = CONVERT(VARCHAR(10), ISNULL(MAX(CONVERT(BIGINT, CONVERT(FLOAT, [NUM].[ItemCode]))), CONVERT(BIGINT, 0)) + CONVERT(BIGINT, 1)) FROM (SELECT [FMI].[ItemCode] FROM [dbo].[FileManagerItems] [FMI] WHERE ISNUMERIC([FMI].[ITEMCODE]) = 1 AND [FMI].[ITEMCODE] NOT LIKE '%.%' AND [FMI].[ITEMCODE] NOT LIKE '%,%' AND [FMI].[ITEMCODE] NOT LIKE '%E%' AND [FMI].[ITEMCODE] NOT LIKE '% %') [NUM] SET @ItemCode = SUBSTRING(@ZEROS + @ItemCode, LEN(@ItemCode) + 1, 10) --2016-03-23 3. SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomInsertDiary', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomInsertDiary] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomInsertDiary] (@ItemCode VARCHAR(10), @Date DATETIME, @Details VARCHAR(300), @CompleteDate DATETIME, @RecordId INT, @Result INT OUTPUT) AS /************************************************************************************************ * Stored Procedure : KAAS_StrongRoomInsertDiary * Copied From : ky_NETStrongRoomInsertDiary * * This procedure is used to Insert diary for a file * * Modification History: * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2015-03-12 Pino Use the Primary Key NUMBER to access FileManagerItems not ITEMCODE * 2015-11-26 Pino Tidy up and check whether NeedsAttention is required. It isn't. * 2022-01-24 Aakif Copied from ky_NETStrongRoomInsertDiary ************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ClarionDate INT --DECLARE @ItemCode VARCHAR(10) DECLARE @Number INT --SELECT @ItemCode = FMI.[ITEMCODE] -- FROM [dbo].[FileManagerItems] FMI -- WHERE FMI.[NUMBER] = @Number SELECT @Number = [FMI].[NUMBER] FROM [dbo].[FileManagerItems] FMI WHERE [FMI].[ITEMCODE] = @ItemCode SET @ClarionDate = [dbo].[KAAS_FN_ConvertDateToClarion](@CompleteDate) IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[ItemDiary] IDI WHERE IDI.[RECORDID] = @RecordId) BEGIN SET @RecordId = (SELECT ISNULL(MAX(IDI.[RecordId]), 0) + 1 FROM [dbo].[ItemDiary] IDI) INSERT INTO [dbo].[ItemDiary] ([ItemCode], [Date], [Details], [Complete], [Number]) VALUES(RTRIM(ISNULL(@ItemCode, '')), @Date, @Details, @ClarionDate, @Number) SET @Result = 1 END ELSE BEGIN UPDATE IDI SET IDI.[DATE] = @Date, IDI.[DETAILS] = @Details, IDI.[Complete] = @ClarionDate FROM [dbo].[ItemDiary] IDI WHERE IDI.[RECORDID] = @RecordId SET @Result = 2 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomInsertFileInformation', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomInsertFileInformation] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomInsertFileInformation] (@number INT, @ItemType VARCHAR(5), @ItemCode VARCHAR(10), @ClientCode VARCHAR(20), @MatterCode VARCHAR(20), @Description VARCHAR(500), @Location VARCHAR(10), @BoxNo VARCHAR(50), @SearchCode VARCHAR(20), @FeeEarner VARCHAR(10), @EntryDate DATETIME, @DestroyDate DATETIME, @Status CHAR(1), @CloseDate DATETIME, @ClosedFileNo VARCHAR(50), @OpenClose CHAR(1), @LastActionWho VARCHAR(20), @DeedsAddress VARCHAR(300), @DeedsDate DATETIME, @IsAccountableReceipt BIT, @Comment VARCHAR(300), @Testator VARCHAR(100), @TestatorAddress VARCHAR(200), @WillDate DATETIME, @EstEstate DECIMAL(13, 2), @Executor1 VARCHAR(100), @Executor2 VARCHAR(100), @Executor3 VARCHAR(100), @Executor4 VARCHAR(100), @Executor1Address VARCHAR(250), @Executor2Address VARCHAR(250), @Executor3Address VARCHAR(250), @Executor4Address VARCHAR(250), @PropertyOwner VARCHAR(100), @NeedsAttention BIT, @FromWhoCode VARCHAR(6), @FromWhoName VARCHAR(200), @ToWhoCode VARCHAR(6), @ToWhoName VARCHAR(200), @DueDate DATETIME, @DeceasedDate DATETIME, @Result INT OUTPUT, @NumberValue INT OUTPUT) AS /*************************************************************************************************************** * ky_NETStrongRoomInsertFileInformation * * This stored procedure is used to insert file information (STRONG ROOM) * * Modification History: * 2014-12-24 Arun.V - Remove status field while update details. * 2015-03-12 Pino - The primary key for FileManagerItems is NUMBER, not ITEMCODE * 2015-03-16 Arun.v - Added Return File number value * 2015-07-15 Arun.v - Extented @ClosedFileNo size to VARCHAR(50) * 2015-11-26 Pino - Added "Needs Attention" column * 2015-12-02 Pino - Added Executors 3 and 4 * - Added Property Owner * 2015-12-03 Pino - Added From and To WHO codes and names * 2015-12-07 Pino - Added Due Date * 2015-12-07 Pino - Write Accountable Trust Receipt entries to ItemDiary and Diary * 2015-12-08 Pino - Added Deceased Date * ***************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @TeamCode VARCHAR(10) SET @number = ISNULL(@number, 0) IF @number <> 0 BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[FileManagerItems] FMI WHERE FMI.[NUMBER] = @number) BEGIN SET @number = 0 END END SET @NeedsAttention = ISNULL(@NeedsAttention, 0) SET @DueDate = CASE WHEN ISNULL(@DueDate, CONVERT(DATETIME, '19000101')) = CONVERT(DATETIME, '19000101') THEN NULL ELSE @DueDate END SET @DeceasedDate = CASE WHEN ISNULL(@DeceasedDate, CONVERT(DATETIME, '19000101')) = CONVERT(DATETIME, '19000101') THEN NULL ELSE @DeceasedDate END SELECT @TeamCode = RTRIM(ISNULL(HAN.[Team], '')) FROM [dbo].[Handlers] HAN WHERE HAN.[CODE] = @FeeEarner SET @TeamCode = ISNULL(@TeamCode, '') IF (@number = 0) BEGIN SELECT @number = ISNULL(MAX(FMI.[NUMBER]), 0) + 1 FROM [dbo].[FileManagerItems] FMI INSERT INTO [dbo].[FileManagerItems] ([ITEMTYPE], [ITEMCODE], [CLIENTCODE], [MATTERCODE], [DESCRIPTION], [LOCATION], [BOXNO], [SEARCHCODE], [FEEARNER], [ENTRYDATE], [DESTROYDATE], [STATUS], [OPENCLOSED], [CLOSEDFILENO], [CLOSEDDATE], [LASTACTIONWHO], [Number], [LASTACTION], [DEEDADDRESS], [ARDATE], [ACCOUNTABLERECEIPT], [ARNARRATIVE], [TESTATOR], [TESTATORADDRESS], [WILLDATE], [ESTIMATEESTATE], [EXECUTORNAME1], [EXECUTORADDRESS1], [EXECUTORNAME2], [EXECUTORADDRESS2], [EXECUTORNAME3], [EXECUTORADDRESS3], [EXECUTORNAME4], [EXECUTORADDRESS4], [Property Owner], [NeedsAttention], [FROMWHOCODE], [FROMWHONAME], [TOWHOCODE], [TOWHONAME], [DueDate], [DeceasedDate]) VALUES(@ItemType, @ItemCode, RTRIM(ISNULL(@ClientCode, '')), RTRIM(ISNULL(@MatterCode, '')), RTRIM(ISNULL(@Description, '')), RTRIM(ISNULL(@Location, '')), RTRIM(ISNULL(@BoxNo, '')), RTRIM(ISNULL(@SearchCode, '')), RTRIM(ISNULL(@FeeEarner, '')), @EntryDate, @DestroyDate, @Status, @OpenClose, RTRIM(ISNULL(@ClosedFileNo, '')), @CloseDate, RTRIM(ISNULL(@LastActionWho, '')), @Number, GETDATE(), RTRIM(ISNULL(@DeedsAddress, '')), @DeedsDate, (CASE WHEN @IsAccountableReceipt = 1 THEN 'Y' ELSE 'N' END), RTRIM(ISNULL(@Comment, '')), RTRIM(ISNULL(@Testator, '')), RTRIM(ISNULL(@TestatorAddress, '')), @WillDate, ISNULL(@EstEstate, 0), RTRIM(ISNULL(@Executor1, '')), RTRIM(ISNULL(@Executor1Address, '')), RTRIM(ISNULL(@Executor2, '')), RTRIM(ISNULL(@Executor2Address, '')), RTRIM(ISNULL(@Executor3, '')), RTRIM(ISNULL(@Executor3Address, '')), RTRIM(ISNULL(@Executor4, '')), RTRIM(ISNULL(@Executor4Address, '')), RTRIM(ISNULL(@PropertyOwner, '')), @NeedsAttention, @FromWhoCode, @FromWhoName, @ToWhoCode, @ToWhoName, @DueDate, @DeceasedDate) IF (@IsAccountableReceipt = 1) BEGIN INSERT INTO [dbo].[ItemDiary] ([ITEMCODE], [DATE], [DETAILS], [NUMBER]) VALUES(@ItemCode, @DeedsDate, CONVERT(VARCHAR(300), @Comment), @number) DECLARE @DiaryComment VARCHAR(MAX) SET @DiaryComment = @Comment IF RTRIM(ISNULL(@ToWhoCode, '')) <> '' OR RTRIM(ISNULL(@ToWhoName, '')) <> '' OR RTRIM(ISNULL(@FromWhoCode, '')) <> '' OR RTRIM(ISNULL(@FromWhoName, '')) <> '' BEGIN SET @DiaryComment = RTRIM(ISNULL(@DiaryComment, '')) + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10) IF RTRIM(ISNULL(@FromWhoCode, '')) <> '' OR RTRIM(ISNULL(@FromWhoName, '')) <> '' BEGIN SET @DiaryComment = @DiaryComment + 'FROM: ' END IF RTRIM(ISNULL(@FromWhoCode, '')) <> '' BEGIN SET @DiaryComment = @DiaryComment + RTRIM(ISNULL(@FromWhoCode, '')) END IF RTRIM(ISNULL(@FromWhoName, '')) <> '' BEGIN IF RTRIM(ISNULL(@FromWhoCode, '')) <> '' BEGIN SET @DiaryComment = @DiaryComment + ' - ' END SET @DiaryComment = @DiaryComment + RTRIM(ISNULL(@FromWhoName, '')) END IF RTRIM(ISNULL(@FromWhoCode, '')) <> '' OR RTRIM(ISNULL(@FromWhoName, '')) <> '' BEGIN IF RTRIM(ISNULL(@ToWhoCode, '')) <> '' OR RTRIM(ISNULL(@ToWhoName, '')) <> '' BEGIN SET @DiaryComment = @DiaryComment + CHAR(13) + CHAR(10) END END IF RTRIM(ISNULL(@ToWhoCode, '')) <> '' OR RTRIM(ISNULL(@ToWhoName, '')) <> '' BEGIN SET @DiaryComment = @DiaryComment + 'TO: ' END IF RTRIM(ISNULL(@ToWhoCode, '')) <> '' BEGIN SET @DiaryComment = @DiaryComment + RTRIM(ISNULL(@ToWhoCode, '')) END IF RTRIM(ISNULL(@ToWhoName, '')) <> '' BEGIN IF RTRIM(ISNULL(@ToWhoCode, '')) <> '' BEGIN SET @DiaryComment = @DiaryComment + ' - ' END SET @DiaryComment = @DiaryComment + RTRIM(ISNULL(@ToWhoName, '')) END END EXEC [dbo].[ky_NETSPCreateTemplatedDiaryStep] 0, @DeedsDate, @DueDate, @DeedsDate, @MatterCode, 'ADMAT', @FeeEarner, @TeamCode, @DiaryComment, 'N', '', '', '', '', 'N', 'Accountable Trust Receipt', '', 0 END SET @Result = 1 END ELSE BEGIN UPDATE FMI SET [ITEMTYPE] = @ItemType, [CLIENTCODE] = RTRIM(ISNULL(@ClientCode, '')), [MATTERCODE] = RTRIM(ISNULL(@MatterCode, '')), [DESCRIPTION] = RTRIM(ISNULL(@Description, '')), [LOCATION] = RTRIM(ISNULL(@Location, '')), [BOXNO] = RTRIM(ISNULL(@BoxNo, '')), [SEARCHCODE] = RTRIM(ISNULL(@SearchCode, '')), [FEEARNER] = RTRIM(ISNULL(@FeeEarner, '')), [ENTRYDATE] = @EntryDate, [DESTROYDATE] = @DestroyDate, [OPENCLOSED] = @OpenClose, [CLOSEDFILENO] = RTRIM(ISNULL(@ClosedFileNo, '')), [CLOSEDDATE] = @CloseDate, [LASTACTIONWHO] = RTRIM(ISNULL(@LastActionWho, '')), [LASTACTION] = GETDATE(), [DEEDADDRESS] = RTRIM(ISNULL(@DeedsAddress, '')), [ARDATE] = @DeedsDate, [ACCOUNTABLERECEIPT] = (CASE WHEN @IsAccountableReceipt = 1 THEN 'Y' ELSE 'N' END), [ARNARRATIVE] = RTRIM(ISNULL(@Comment, '')), [TESTATOR] = RTRIM(ISNULL(@Testator, '')), [TESTATORADDRESS] = RTRIM(ISNULL(@TestatorAddress, '')), [WILLDATE] = @WillDate, [ESTIMATEESTATE] = ISNULL(@EstEstate, 0), [EXECUTORNAME1] = RTRIM(ISNULL(@Executor1, '')), [EXECUTORADDRESS1] = RTRIM(ISNULL(@Executor1Address, '')), [EXECUTORNAME2] = RTRIM(ISNULL(@Executor2, '')), [EXECUTORADDRESS2] = RTRIM(ISNULL(@Executor2Address, '')), [EXECUTORNAME3] = RTRIM(ISNULL(@Executor3, '')), [EXECUTORADDRESS3] = RTRIM(ISNULL(@Executor3Address, '')), [EXECUTORNAME4] = RTRIM(ISNULL(@Executor4, '')), [EXECUTORADDRESS4] = RTRIM(ISNULL(@Executor4Address, '')), [Property Owner] = RTRIM(ISNULL(@PropertyOwner, '')), [NeedsAttention] = @NeedsAttention, [FROMWHOCODE] = @FromWhoCode, [FROMWHONAME] = @FromWhoName, [TOWHOCODE] = @ToWhoCode, [TOWHONAME] = @ToWhoName, [DueDate] = @DueDate, [DeceasedDate] = @DeceasedDate FROM [dbo].[FileManagerItems] FMI WHERE FMI.[NUMBER] = @number SET @Result = 2 END SELECT @NumberValue = @number SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomReplaceFile', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomReplaceFile] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomReplaceFile] (@Number INT, @Location VARCHAR(20), @BoxNo VARCHAR(50)) AS /***************************************************************************************** * Stored Procedure Name: KAAS_StrongRoomReplaceFile * Copied From : ky_NETStrongRoomReplaceFile * * This procedure is used to Update item history AS out while replacing file * * Modification history: * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2015-03-12 Pino Use the actual Primary Key, not ITEMCODE * 2015-11-26 Pino Make sure NeedsAttention doesn't need to be referenced. Tidy up. * 2016-01-05 Arun Added condition to check null value in ItemHistory Table to update INDate and INTIME * 2016-05-24 Arun Have added Boxno field * 2022-01-31 Aakif KAAS file created *****************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ClarionTime INT SET @ClarionTime = [dbo].[ky_ConvertTimeToClarion](GETUTCDATE()) UPDATE FMI SET FMI.[STATUS] = 'I', FMI.[LOCATION] = @Location, FMI.[BOXNO] = (CASE WHEN @BoxNo = '' THEN FMI.[BOXNO] ELSE @BoxNo END) --This line will update box number only user mention, oterwise it will remain the same. FROM [dbo].[FileManagerItems] FMI WHERE FMI.[NUMBER] = @Number UPDATE IHI SET IHI.[INDATE] = GETUTCDATE(), IHI.[INTIME] = @ClarionTime FROM [dbo].[ItemHistory] IHI WHERE IHI.[NUMBER] = @Number and IHI.[INDATE] is null --Fetch Location SELECT RTRIM(ISNULL(FMI.[DESCRIPTION], '')) AS [ItemDesc], RTRIM(ISNULL(FMI.[BOXNO], '')) AS [BoxNo] FROM [dbo].[FileManagerItems] FMI WHERE FMI.[NUMBER] = @Number SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_StrongRoomWithdrawFile', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_StrongRoomWithdrawFile] END GO CREATE PROCEDURE [dbo].[KAAS_StrongRoomWithdrawFile] ( @Number INT, @Who VARCHAR(10), @Handler VARCHAR(10), @Comment VARCHAR(300), @IsPermanentlyWithdrawn BIT, @FinalReceipt BIT) AS /******************************************************************************************************************************************* * * This procedure is used to update item history and file status, WHILE withdraw file * * Modification History * ----------------------------------------------------- * Date | Modified By | Description * ----------------------------------------------------- * 2014-05-16 Arun.V Created * 2014-06-17 Arun.v Location and box value is empty then format the column string is added * 2014-06-19 Arun.v If Location and Box number is empty it will show and * 2015-02-10 Pino Change NVARCHAR parameters to VARCHAR, increase Handler parameter to 10 characters. * 2015-03-12 Arun.v Change inner join to left join in location table * 2015-03-12 Pino The primary key for FileManagerItems is NUMBER, not ITEMCODE * 2015-11-26 Pino Make sure NeedsAttention column does not need to be referenced. Tidy up. * 2015-12-08 Pino If no Fee Earner is passed in through @Who, permanently withdraw the file * 2015-03-18 Arun.V Add @IsPermanentlyWithdrawn field to update [PermanentlyWithdrawnOn] column * 2018-09-20 Arun.V KEYD-5004-STRONG ROOM : Inconsistency in box number field sizes * 2019-01-03 John Ginnane KEYD-5576 - Added Final Receipt parameter * 2022-01-31 Aakif Created KAAS file *******************************************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ClarionTime VARCHAR(10) DECLARE @ItemCode VARCHAR(10) SET @ClarionTime = [dbo].[ky_ConvertTimeToClarion](GETUTCDATE()) SELECT @ItemCode = FMI.[ITEMCODE] FROM [dbo].[FileManagerItems] FMI WHERE FMI.[NUMBER] = @Number --Item History INSERT INTO [dbo].[ItemHistory] ([ITEMCODE], [Who], [OUTDATE], [OUTTIME], [NUMBER], [HANDLER], [COMMENT]) VALUES(@ItemCode, @Who, GETUTCDATE(), @ClarionTime, @Number, @Handler, @Comment) --Update Status AS Out UPDATE FMI SET FMI.[STATUS] = 'O', FMI.[PermanentlyWithdrawnOn] = CASE WHEN @IsPermanentlyWithdrawn = 1 THEN GETDATE() ELSE FMI.[PermanentlyWithdrawnOn] END, FMI.[FinalReceipt] = CASE WHEN @FinalReceipt = 1 AND FMI.[FinalReceipt] IS NULL THEN GETDATE() ELSE FMI.[FinalReceipt] END FROM [dbo].[FileManagerItems] FMI WHERE FMI.[NUMBER] = @Number --Fetch Location SELECT RTRIM(ISNULL(FMI.[DESCRIPTION],'')) AS [ItemDesc], CASE WHEN LEN(FMI.[BOXNO]) = 0 THEN '' ELSE 'Box No: ' + ' ' + CONVERT(VARCHAR(50), (FMI.[BOXNO])) END AS [BoxNo], ISNULL(CONVERT(VARCHAR(100),RTRIM(ITL.[DESCRIPTION])),'') + ',' AS [Location] FROM [dbo].[FileManagerItems] FMI LEFT OUTER JOIN [dbo].[ItemLocations] ITL ON ITL.[CODE] = FMI.[LOCATION] WHERE FMI.[NUMBER] = @Number SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SystemFieldsDelete' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SystemFieldsDelete] END GO CREATE PROCEDURE [dbo].[KAAS_SystemFieldsDelete] ( @FILEPREFIX VARCHAR(200), @FIELDNAME VARCHAR(200), @Result INT OUTPUT ) AS /************************************************************************************************ * To Delete data for System Fields main grid * * * * Stored Procedure Name : [dbo].[KAAS_SystemFieldsDelete] * * Copied from : [dbo].[ky_NETSystemFieldsDelete] * * * * Modification History : * * 2023-07-10 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM SystemUserDefinedFields WHERE FILEPREFIX = @FILEPREFIX AND FIELDNAME = @FIELDNAME) IS NOT NULL BEGIN DELETE FROM dbo.SystemUserDefinedFields WHERE FILEPREFIX = @FILEPREFIX AND FIELDNAME = @FIELDNAME SET @Result = 1 END ELSE BEGIN SET @Result = 0 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_SystemFieldsFetch', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_SystemFieldsFetch] END GO CREATE PROCEDURE [dbo].[KAAS_SystemFieldsFetch] AS /**************************************************************** * * * Returns a list of all system prefixes (e.g. "MAT:", "UDF:") * * * * Stored procedure name : KAAS_SystemFieldsFetch * * Copied from : ky_NETSystemFieldsFetch * * * * ????-??-?? ????? Created * * 2015-06-23 Sridharen KEYD-2332 - Use of LTRIM(RTRIM( * * 2019-01-10 John Ginnane KEYD-5645 - Updated format * * 2020-01-06 Vinodhan K Created KAAS_SystemFieldsFetch * * * ****************************************************************/ BEGIN SET NOCOUNT ON SELECT RTRIM(SF.[NAME]) AS [Name], RTRIM(ISNULL(SF.[PREFIX], '')) AS [Prefix] FROM [dbo].[SystemFiles] AS SF ORDER BY SF.[NAME] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SystemFieldsFetchGrid' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SystemFieldsFetchGrid] END GO CREATE PROCEDURE [dbo].[KAAS_SystemFieldsFetchGrid] ( @Prefix VARCHAR(5)) AS /************************************************************************************************ * Returns a list of all system user defined fields for a specified prefix (e.g. "MAT:", "UDF:") * * * * Stored Procedure Name : [dbo].[KAAS_SystemFieldsFetchGrid] * * Copied from : [dbo].[ky_NETSystemFieldsFetchGrid] * * * * Modification History : * * 2023-07-06 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON SELECT SUF.[FILEPREFIX], SUF.[FIELDNAME], SUF.[TYPE], SUF.[PROMPT], SUF.[LENGTH], SUF.[FORMAT], SUF.[ACTUALNAME] FROM [dbo].[SystemUserDefinedFields] AS SUF WHERE SUF.[FILEPREFIX] = @Prefix ORDER BY SUF.[FILEPREFIX], SUF.[FIELDNAME] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SystemFieldUpdateCaseFlow' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SystemFieldUpdateCaseFlow] END GO CREATE PROCEDURE [dbo].[KAAS_SystemFieldUpdateCaseFlow] (@FIELDNAME VARCHAR(30), @FILEPREFIX VARCHAR(5), @UDWKCODE VARCHAR(4), @STATUS VARCHAR(10), @OLDUDUVCODE VARCHAR(30), @OLDUDFILE VARCHAR(10), @OLDUDWKCODE VARCHAR(10), @Result INT OUTPUT) AS /************************************************************************************************ * Used to update the system fields * * * * Stored Procedure Name : [dbo].[KAAS_SystemFieldUpdateCaseFlow] * * Copied from : [dbo].[ky_NETSystemFileUpdateCaseFlow] * * * * Modification History : * * 2023-07-06 Nithyanandham M Created * ************************************************************************************************/ BEGIN SET NOCOUNT ON IF(@STATUS = 'True') BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[UDFTemplatesWorkTypes] [UTW] WHERE [UTW].[UDUVCODE] = @FIELDNAME AND [UTW].[UDWKCODE] = @UDWKCODE) BEGIN ;WITH [TUP] AS (SELECT [UTW].[UDSEQ], Row_number() OVER (ORDER BY [UTW].[UDSEQ]) AS [RN] FROM [dbo].[UDFTemplatesWorkTypes] [UTW] WHERE [UTW].[UDWKCODE] = @UDWKCODE) UPDATE [TUP] SET [TUP].[UDSEQ] = [RN] DECLARE @UDSEQ SMALLINT SET @UDSEQ = 0 SELECT TOP 1 @UDSEQ = ISNULL([UTW].[UDSEQ], 0) FROM [dbo].[UDFTemplatesWorkTypes] [UTW] WHERE [UTW].[UDWKCODE] = @UDWKCODE ORDER BY [UTW].[UDSEQ] DESC SET @UDSEQ = @UDSEQ + 1 INSERT INTO [dbo].[UDFTemplatesWorkTypes] ([UDUVCODE], [UDFILE], [UDWKCODE], [UDSEQ]) VALUES(RTRIM(@FIELDNAME), RTRIM(@FILEPREFIX), RTRIM(@UDWKCODE), RTRIM(@UDSEQ)) SET @Result = 1 END ELSE BEGIN SET @Result = 0 END END ELSE BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[UDFTemplatesWorkTypes] [UWT] WHERE [UWT].[UDUVCODE] = @FIELDNAME AND [UWT].[UDWKCODE] = @UDWKCODE) BEGIN UPDATE [UWT] SET [UWT].[UDUVCODE] = @FIELDNAME, [UWT].[UDFILE] = @FILEPREFIX, [UWT].[UDWKCODE] = @UDWKCODE FROM [dbo].[UDFTemplatesWorkTypes] [UWT] WHERE [UWT].[UDUVCODE] = @OLDUDUVCODE AND [UWT].[UDFILE] = @OLDUDFILE AND [UWT].[UDWKCODE] = @UDWKCODE SET @Result = 1 END ELSE BEGIN SET @Result = 0 END END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_SystemUserDefinedFields' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_SystemUserDefinedFields] END GO Create PROCEDURE [dbo].[KAAS_SystemUserDefinedFields] AS /************************************************************************************************************* * This procedure is used to Fetch Followup Next Action * * * * Stored Procedure Name : [dbo].[KAAS_SystemUserDefinedFields] * * Copied from : [dbo].[ky_NetSystemUserDefinedFields] * * Modification History : * * 2023-06-21 Nithyanandham M Created * *************************************************************************************************************/ BEGIN SELECT FilePrefix, FieldName,Prompt from [dbo].[SystemUserDefinedFields] END GO IF OBJECT_ID(N'KAAS_TakeAction',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_TakeAction] GO CREATE PROCEDURE [dbo].[KAAS_TakeAction] ( @Handler VARCHAR(10), @ActionID INT ) AS /******************************************************************************************************* * Allows a handler to take ownership of an Action. This is equivalent to * * the original owner delegating and releasing the action to this handler. * * * * Stored Procedure Name : [dbo].[KAAS_TakeAction] * * Copied from : [dbo].[ky_NETSPTakeAction] * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2022-07-19 Vinodhkumar M Modified - RaiseError is used to handle errors if occured * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Team VARCHAR(10) DECLARE @DelegatedToHandler INT DECLARE @OwnerHandler VARCHAR(10) DECLARE @DATE DATETIME DECLARE @Message VARCHAR(150) = ''; SELECT @TEAM = [HAN].[TEAM] FROM [dbo].[Handlers] [HAN] WHERE [HAN].[CODE] = @Handler EXEC @DelegatedToHandler = [dbo].[KAAS_TaskScalarDelegatedToHandler] @Handler, @Actionid SELECT @OwnerHandler = [DEL].[HANDLER] FROM [dbo].[DiaryDelegations] [DEL] WHERE DEL.[ACTIONID] = @ACTIONID AND DEL.[OWNER] = 'Y' AND DEL.[STATUS] = 0 SELECT @DATE = DIA.[DATE] FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID IF @OwnerHandler = @Handler BEGIN RETURN END IF @DelegatedToHandler = 0 BEGIN DECLARE @DelegatedHandler AS VARCHAR(10) DECLARE @AssignNumber AS INT DECLARE @DelType AS VARCHAR(30) --Just getting handler and Assign number to check the handler is TEAM SELECT TOP 1 @DelegatedHandler = [DEL].[HANDLER], @AssignNumber = [DEL].[AssignNo] FROM [dbo].[DiaryDelegations] [DEL] WHERE ( [DEL].[DelType] = 'Delegated' OR [DEL].[DelType] = 'Released') AND [DEL].[ACTIONID] = @ActionID ORDER BY [DEL].[AssignNo] DESC IF EXISTS (SELECT TOP 1 1 FROM [dbo].[Handlers] [HAN] WHERE [HAN].[CODE] = @DelegatedHandler AND [HAN].[TEAMCODE] = 'Y') BEGIN UPDATE [DEL] SET [DEL].[HANDLER] = @Handler, @DelType = [DEL].[DelType] FROM [dbo].[DiaryDelegations] [DEL] WHERE (DelType='Delegated' or DelType='Released') AND ACTIONID=@ActionID AND AssignNo = @AssignNumber IF (@DelType = 'Released') --FeeCode will only changed when Delegate Type is Released BEGIN UPDATE [DIA] SET [DIA].[FNCODE] = @Handler, [DIA].[DELEGATEDFNR] = @Handler FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID END END ELSE BEGIN DECLARE @DEL VARCHAR(MAX) SET @DEL = CONVERT(VARCHAR(MAX), (SELECT * FROM (SELECT CONVERT(VARCHAR(10), @ActionID) AS [actionid], @Handler AS [handler], @Team AS [team], @DATE AS [date], @DATE AS [time], 'Y' AS [owner], @OwnerHandler AS [delegate], @OwnerHandler AS [fromhandler], 'Released' AS [deltype]) [del] FOR XML AUTO)) DECLARE @DELSuccess INT EXEC @DELSuccess = [dbo].[KAAS_ScalarXMLDiaryDelegation] @DEL IF @DELSuccess = 0 BEGIN SET @DelegatedToHandler = 1 END IF @DELSuccess = -2 BEGIN SET @Message ='Not authroised to Delegate or release this Action' RAISERROR(@Message,16,99) RETURN END IF @DELSuccess = -3 BEGIN SET @Message ='Invalid Request. Please Contact Adminstrator' RAISERROR(@Message,16,99) RETURN END END END ELSE BEGIN UPDATE [DEL] SET [DEL].[STATUS] = 1, [DEL].[OWNER] = 'N', [DEL].[DelegateStatus] = 1 FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID AND [DEL].[OWNER] = 'Y' AND [DEL].[STATUS] = 0 UPDATE [DEL] SET [DEL].[OWNER] = 'Y', [DEL].[DELEGATE] = @Handler, [DEL].[DelType] = 'Released' FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ACTIONID AND [DEL].[STATUS] = 0 AND [DEL].[OWNER] = 'N' AND [DEL].[HANDLER] = @Handler UPDATE [DIA] SET [DIA].[FNCODE] = @Handler, [DIA].[DELEGATEDFNR] = @Handler, [DIA].[DELEGATIONSTATUS] = 0 FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_TaskAddFlag' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_TaskAddFlag] END GO CREATE PROCEDURE KAAS_TaskAddFlag ( @Actionid AS INT, @Flag AS TINYINT ) AS /******************************************************************************************************* * This Procedure is Used to Update Flag column in diary table. * * * * Stored Procedure Name : [dbo].[KAAS_TaskAddFlag] * * Copied from : [dbo].[Ky_NETTaskAddFlag] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON UPDATE Diary SET Flag=@Flag WHERE ACTIONID=@Actionid SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_TaskAddPriority',N'P') IS NOT NULL DROP PROCEDURE KAAS_TaskAddPriority GO CREATE PROCEDURE KAAS_TaskAddPriority ( @ACTIONID INT, @PRIORTY VARCHAR(1) ) AS /******************************************************************************************************* * This procedure is used to update the priority for the particular Action ID. * * * * Stored Procedure Name : [dbo].[KAAS_TaskAddPriority] * * Copied from : [dbo].[KY_NETTaskAddPriority] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON UPDATE diary SET [PRIORITY]=@PRIORTY WHERE ACTIONID =@ACTIONID SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_TaskCompleteAction2' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_TaskCompleteAction2] END GO CREATE PROCEDURE [dbo].[KAAS_TaskCompleteAction2] (@ActionID INT, @CurFee VARCHAR(10), @CurTeam VARCHAR(10), @NextActionsXML VARCHAR(4000), @TakeOwnership INT, @HoldDate BIT=0, @Arrangement VARCHAR(5)) AS /******************************************************************************************************* * This stored procedure used to task complete action * * * * Stored Procedure Name : [dbo].[KAAS_TaskCompleteAction2] * * Copied from : [dbo].[ky_NETTaskCompleteAction2] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * 2021-03-26 Sadiq (Ticket ID - 11828) Added select statement to know whether the Action * Generated or Completed * * 2021-04-22 Sadiq Added UTC conversion for Whats next values(11928) * * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Now DATETIME DECLARE @NowDateOnly DATETIME DECLARE @NowClarionTime CHAR(10) DECLARE @NowClarionEndTime CHAR(10) DECLARE @Continue INT DECLARE @Owner INT DECLARE @IsAuthorisedToComplete INT DECLARE @CountFailedDependentActions INT DECLARE @idoc INT DECLARE @VCActionID VARCHAR(50) DECLARE @MaxActionID INT DECLARE @LocDel VARCHAR(10) DECLARE @WorkProcess INT DECLARE @ErrorMsgTable Table ([ErrorMsg] VARCHAR(500)) DECLARE @NA TABLE ([ID] INT identity(1, 1), [ActionID] INT, [Code] VARCHAR(5), [Date] DATETIME) DECLARE @AlarmType INT DECLARE @DisabledAlarmStatusID INT DECLARE @ActionTypeID INT SET XACT_ABORT ON SELECT @AlarmType = ISNULL(ALT1.[TypeID], ALT2.[TypeID]) FROM [dbo].[AlarmTypes] ALT2 LEFT OUTER JOIN [dbo].[AlarmTypes] ALT1 ON ALT1.[Description] = 'Action' WHERE ALT2.[Description] = 'Generic Alarm' SELECT @DisabledAlarmStatusID = IsNull(ALS2.[StatusID], ALS1.[StatusID]) FROM [dbo].[AlarmStatus] ALS1 LEFT OUTER JOIN [dbo].[AlarmStatus] ALS2 ON ALS2.[Description] = convert(VARCHAR(500), 'Actioned') WHERE ALS1.[Description] = 'Disabled' SELECT @ActionTypeID = ALT1.[TypeID] FROM [dbo].[AlarmTypes] ALT1 WHERE ALT1.[Description] = 'Action' IF (RTRIM(ISNULL(@CurTeam,'')) = '') BEGIN SELECT @CurTeam = HAN.[TEAM] FROM [dbo].[Handlers] HAN WHERE HAN.[CODE] = @CurFee END /* If @Continue is SET to a value other than zero at any point during this process, stop processing further data, and make sure that the transaction at the END is rolled back */ SET @Continue = 0 /* Some processes are dependent on the current fee handler being the owner of the action that is to be completed, others require that the action is/isn't a phone call or e-mail */ SELECT @Owner = CASE DIA.[FNCODE] WHEN @CurFee THEN 1 ELSE 0 END, @WorkProcess = ISNULL(DIA.[WORKPROCESS], 0) FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID IF (@TakeOwnership = 1) SET @Owner = 1 /* Check that this fee earner is authorised to complete this action. Note that this should also be checked by the client application, before calling this procedure, but we should still check it here in case this somehow gets invoked while bypassing the client checks. */ --SELECT @IsAuthorisedToComplete = [IsAuthorisedToComplete] -- FROM [dbo].[ky_WDActionAuthorisedToComplete](@ActionID, @CurFee) BEGIN INSERT INTO @ErrorMsgTable (ErrorMsg) SELECT CASE RTRIM(ISNULL(TAC.[AuthorisationRequired], 'L')) WHEN '' THEN 'Cont' WHEN 'L' THEN 'Cont' WHEN 'C' THEN CASE WHEN RTRIM(ISNULL(MAT.[FECode], '')) = @CurFee THEN 'Cont' ELSE 'You are not authorised to complete this action. The f/e for this case is required to complete this action.' END WHEN 'P' THEN CASE WHEN RTRIM(ISNULL(MAT.[Partner], '')) = @CurFee THEN 'Cont' ELSE 'You are not authorised to complete this action. The Partner for this case is required complete this ation.' END WHEN 'F' THEN CASE WHEN RTRIM(ISNULL(CNT.[FE], '')) = @CurFee THEN 'Cont' ELSE 'You are not authorised to complete this action. The Partner for this client is required to complete this action.' END WHEN 'A' THEN CASE WHEN RTRIM(ISNULL(CNT.[FE], '')) = @CurFee THEN 'Cont' ELSE 'You are not authorised to complete this action. A Partner of the firm is required to complete this action. Recommend you delegate this action to a partner.' END WHEN 'O' THEN CASE WHEN RTRIM(ISNULL(CNT.[FE], '')) = @CurFee THEN 'Cont' ELSE 'You are not authorised to complete this action.' END ELSE 'You are not authorised to complete this action.' END FROM [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CNT ON CNT.[Code] = MAT.[ClientCode] ON MAT.[Code] = DIA.[CASECODE] LEFT OUTER JOIN [dbo].[TemplateActions] TAC ON TAC.[ACTIONCODE] = dia.[ACTIONCODE] INNER JOIN [dbo].[Handlers] FHA ON FHA.[CODE] = @CurFee WHERE DIA.[ACTIONID] = @ActionID END /* IF not authorised, do not do anything ELSE */ IF ((SELECT Top 1 ErrorMsg FROM @ErrorMsgTable)<>'Cont') BEGIN SET @Continue = 1 END ELSE BEGIN DELETE FROM @ErrorMsgTable END IF (@Continue = 0) BEGIN /* this function returns error messages for each dependent action that has not been completed within the required timeframe. This should also be checked in the client application, and it should display the error messages returned by this function. Here it suffices to make sure there are 0 messages before we proceed. */ --SELECT @CountFailedDependentActions = COUNT(1) -- FROM [dbo].[ky_WDActionCheckDependentActions](@ActionID) /* If there are any messages, do not continue */ INSERT INTO @ErrorMsgTable ([ErrorMsg]) SELECT CONVERT(VARCHAR(1000), RTRIM(ISNULL(DPA.[DependentActionDescription], '') + ' must be complete') + CASE WHEN ISNULL(DPA.[TimeFrame], '') = 'Any Time' THEN '' WHEN ISNULL(DPA.[TimeFramAmount], 0) <= 0 THEN '' ELSE ' (within a timeframe of ' + CONVERT(VARCHAR(4), convert(INT, ISNULL(DPA.[TimeFramAmount], 0))) + ' ' + ISNULL(DPA.[TimeFrame], 0) + ')' END + ' before you can complete this action') AS [ErrorMessage] FROM [dbo].[Diary] DIA OUTER APPLY (SELECT TDA.[ActionCode], TDA.[DependentActionCode], TDA.[TimeFramAmount], TDA.[TimeFrame], TDA.[Status], RTRIM(ISNULL(TAD.[DESC], '')) AS [DependentActionDescription] FROM [dbo].[TemplateDependentActions] TDA INNER JOIN [dbo].[TemplateActions] TAD ON TAD.[ACTIONCODE] = TDA.[DependentActionCode] WHERE TDA.[ActionCode] = DIA.[ActionCode]) DPA OUTER APPLY (SELECT COUNT(1) AS TOTAL FROM [dbo].[diary] DEPA WHERE DEPA.[CASECODE] = DIA.[CASECODE] AND DEPA.[ACTIONCODE] = DPA.[DependentActionCode] AND DEPA.[STATUS] = 1 AND DEPA.[DATE] >= CASE WHEN DPA.[TimeFrame] = 'Any Time' THEN CONVERT(DATETIME, '18010101') WHEN DPA.[TimeFrame] = 'Day(s)' THEN DATEADD(DD, -DPA.[TimeFramAmount], DIA.[DATE]) WHEN DPA.[TimeFrame] = 'Week(s)' THEN DATEADD(WK, -DPA.[TimeFramAmount], DIA.[DATE]) WHEN DPA.[TimeFrame] = 'Month(s)' THEN DATEADD(MM, -DPA.[TimeFramAmount], DIA.[DATE]) WHEN DPA.[TimeFrame] = 'Year(s)' THEN DATEADD(YY, -DPA.[TimeFramAmount], DIA.[DATE]) ELSE CONVERT(DATETIME, '18010101') END) FON WHERE DIA.[ACTIONID] = @ActionID AND DPA.[ActionCode] IS NOT NULL AND FON.[TOTAL] = 0 IF (SELECT COUNT(*) FROM @ErrorMsgTable) <> 0 BEGIN SET @Continue =1 END END -- END IF (@Continue = 0) /* now all the checks are done, we are going to make actual database changes. All this should be atomic so we wrap the whole lot into a transaction */ BEGIN TRANSACTION BEGIN TRY BEGIN IF (@Continue = 0) BEGIN /* some date and time variables that may be used in several of the updates that follow */ -- full date/time IF @HoldDate=0 BEGIN SET @Now = GETDATE() -- date only, time SET to 00:00:00 SET @NowDateOnly = convert(DATETIME, convert(VARCHAR, @Now, 112)) -- Clarion compliant representation of the Time part of the date/time SET @NowClarionTime = convert(CHAR(10), [dbo].[ky_ConvertTimeToClarion](@Now)) SET @NowClarionEndTime = convert(CHAR(10), [dbo].[ky_ConvertTimeToClarion](dateadd(mi, 30, @Now))) END ELSE BEGIN SET @Now = (SELECT [DATE] FROM Diary WHERE ACTIONID =@ActionID ) -- date only, time SET to 00:00:00 SET @NowDateOnly = convert(DATETIME, convert(VARCHAR, @Now, 112)) -- Clarion compliant representation of the Time part of the date/time SET @NowClarionTime = convert(CHAR(10), [dbo].[ky_ConvertTimeToClarion](@Now)) SET @NowClarionEndTime = convert(CHAR(10), [dbo].[ky_ConvertTimeToClarion](dateadd(mi, 30, @Now))) END SELECT @LocDel = DEL.[DELEGATE] FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ActionID AND DEL.[HANDLER] = @CurFee AND ISNULL(DEL.[STATUS], 0) = 0 IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) /* update all Diary delegation records that were assigned to the current handler */ UPDATE DEL SET DEL.[DATER] = @NowDateOnly, DEL.[TIMER] = @NowClarionTime, DEL.[STATUS] = 1 FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ActionID AND DEL.[HANDLER] = @CurFee AND IsNull(DEL.[Status], 0) = 0 IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) IF (@Owner = 1) BEGIN IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) */ /* Phone and E-mail records */ UPDATE DIA SET DIA.[STATUS] = 1, DIA.[PROCESSSTATUS] = 0, DIA.[FNCODE] = CASE WHEN @TakeOwnership = 1 THEN @CurFee ELSE DIA.[FNCODE] END, DIA.[TEAMCODE] = CASE WHEN @TakeOwnership = 1 THEN @CurTeam ELSE DIA.[TEAMCODE] END FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID --AND -- ISNULL(DIA.[ACTIONTYPE],'') NOT IN ('A','D','S') -- Pino 2015-10-12, add 'D' (Dictations) to exceptions IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) */ /* If it is a normal Action, update some date information, too */ UPDATE DIA SET DIA.[STATUS] = 1, DIA.[PROCESSSTATUS] = 0, DIA.[DATE] =dbo.KAAS_FNConvertDateToUTC(@Now, @CurFee) , DIA.[DYSTARTTIME] = @NowClarionTime, DIA.[DYENDTIME] = @NowClarionEndTime, DIA.[FNCODE] = CASE WHEN @TakeOwnership = 1 THEN @CurFee ELSE DIA.[FNCODE] END, DIA.[TEAMCODE] = CASE WHEN @TakeOwnership = 1 THEN @CurTeam ELSE DIA.[TEAMCODE] END FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID -- AND IsNull(DIA.[ACTIONTYPE], '') IN ('A', 'D','S') -- Pino 2015-10-12, do this also for Dictations ('D') IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) */ SET @VCActionID = convert(VARCHAR(50), @ActionID) /* Better to keep these updates in-line since we're wrapping it all into a transaction; we don't want to introduce further complications with calls to external procedures that update the database at this point. Originally: EXEC [dbo].[ky_SetLinkedAlarms] 'Actioned', 'Action', @VCActionID */ UPDATE ALM SET ALM.[Status] = @DisabledAlarmStatusID FROM [dbo].[Alarms] ALM WHERE ALM.[Type] = @ActionTypeID AND ALM.[LinkID] = @VCActionID IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) */ /* When applicable, make sure that the Matter status reflects the status of this completed action */ --UPDATE MAT -- SET MAT.[Status] = TAC.[STATUS] -- FROM [dbo].[Diary] DIA -- INNER JOIN [dbo].[matters] MAT -- ON MAT.[Code] = DIA.[CASECODE] -- INNER JOIN [dbo].[TemplateActions] TAC -- ON TAC.[ACTIONCODE] = DIA.[ACTIONCODE] -- AND ISNULL(TAC.[STATUS], '') NOT IN ('NA', 'N/A', '') -- WHERE DIA.[ACTIONID] = @ActionID UPDATE MAT SET MAT.[Status] = DIA.[ACTIONSTATUS] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = DIA.[CASECODE] AND ISNULL(DIA.[ACTIONSTATUS], '') NOT IN ('NA', 'N/A', '') WHERE DIA.[ACTIONID] = @ActionID IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) */ /* Update Case Master */ UPDATE CSM SET CSM.[CSDATELASTACN_DATE] = @NowDateOnly FROM [dbo].[Diary] DIA INNER JOIN [dbo].[CaseMaster] CSM ON CSM.[CSCODE] = DIA.[CASECODE] WHERE DIA.[ACTIONID] = @ActionID IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) */ /* Example of @NextActionsXML: Y Do XXX XXX Y Do not YYY YYY N Do ZZZ ZZZ */ EXEC sp_xml_preparedocument @idoc OUTPUT, @NextActionsXML IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) IF (@Continue = 0) BEGIN SELECT @Continue = COUNT(1) FROM OPENXML(@idoc, 'NA/NextAction', 2) WITH([Process] VARCHAR(1) 'Process', [Decision] VARCHAR(10) 'Decision', [Code] VARCHAR(5) 'Code', [Date] DATETIME) NA INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = @ActionID INNER JOIN [dbo].[TemplateActions] TAC ON TAC.[ACTIONCODE] = NA.[Code] AND TAC.[AssignActionTo] = 'P' INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = @CurFee INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CNT ON CNT.[Code] = MAT.[ClientCode] ON MAT.[Code] = DIA.[CASECODE] AND RTRIM(ISNULL(MAT.[Partner], '')) = '' WHERE NA.[Process] = 'Y' AND NA.[Decision] = 'Do' IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions */ -- Delete next actions flagged AS "Do Not". First, Diary Delegations: DELETE DSL FROM OPENXML(@idoc, 'NA/NextAction', 2) WITH([Process] VARCHAR(1) 'Process', [Decision] VARCHAR(10) 'Decision', [Code] VARCHAR(5) 'Code', [Date] DATETIME) BLCH INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = @ActionID INNER JOIN [dbo].[Diary] DS INNER JOIN [dbo].[DiaryDelegations] DSL ON DSL.[ACTIONID] = DS.[ACTIONID] ON DS.[CASECODE] = DIA.[CASECODE] AND DS.[ACTIONCODE] = BLCH.[Code] AND DS.[STATUS] = 0 WHERE BLCH.[Process] = 'Y' AND BLCH.[Decision] = 'Do not' IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions */ -- Delete next actions flagged AS "Do Not". Second, OlApptXRef: DELETE DOL FROM OPENXML(@idoc, 'NA/NextAction', 2) WITH([Process] VARCHAR(1) 'Process', [Decision] VARCHAR(10) 'Decision', [Code] VARCHAR(5) 'Code', [Date] DATETIME) BLCH INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = @ActionID INNER JOIN [dbo].[Diary] DS INNER JOIN [dbo].[OLApptXref] DOL ON DOL.[ACTIONID] = DS.[ACTIONID] ON DS.[CASECODE] = DIA.[CASECODE] AND DS.[ACTIONCODE] = BLCH.[Code] AND DS.[STATUS] = 0 WHERE BLCH.[Process] = 'Y' AND BLCH.[Decision] = 'Do not' IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions */ -- Delete next actions flagged AS "Do Not". Third, DiaryAttachments: DELETE DAT FROM OPENXML(@idoc, 'NA/NextAction', 2) WITH([Process] VARCHAR(1) 'Process', [Decision] VARCHAR(10) 'Decision', [Code] VARCHAR(5) 'Code', [Date] DATETIME) BLCH INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = @ActionID INNER JOIN [dbo].[Diary] DS INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DS.[ACTIONID] ON DS.[CASECODE] = DIA.[CASECODE] AND DS.[ACTIONCODE] = BLCH.[Code] AND DS.[STATUS] = 0 WHERE BLCH.[Process] = 'Y' AND BLCH.[Decision] = 'Do not' IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions */ -- Delete next actions flagged AS "Do Not". Fourth, DiaryLinks: DELETE DLK FROM OPENXML(@idoc, 'NA/NextAction', 2) WITH([Process] VARCHAR(1) 'Process', [Decision] VARCHAR(10) 'Decision', [Code] VARCHAR(5) 'Code', [Date] DATETIME) BLCH INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = @ActionID INNER JOIN [dbo].[Diary] DS INNER JOIN [dbo].[DiaryLinks] DLK ON DLK.[ACTIONID] = DS.[ACTIONID] ON DS.[CASECODE] = DIA.[CASECODE] AND DS.[ACTIONCODE] = BLCH.[Code] AND DS.[STATUS] = 0 WHERE BLCH.[Process] = 'Y' AND BLCH.[Decision] = 'Do not' IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions */ -- Delete next actions flagged AS "Do Not". Fifth, DiaryTemp: DELETE DTM FROM OPENXML(@idoc, 'NA/NextAction', 2) WITH([Process] VARCHAR(1) 'Process', [Decision] VARCHAR(10) 'Decision', [Code] VARCHAR(5) 'Code', [Date] DATETIME) BLCH INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = @ActionID INNER JOIN [dbo].[Diary] DS INNER JOIN [dbo].[DiaryTemp] DTM ON DTM.[ACTIONID] = DS.[ACTIONID] ON DS.[CASECODE] = DIA.[CASECODE] AND DS.[ACTIONCODE] = BLCH.[Code] AND DS.[STATUS] = 0 WHERE BLCH.[Process] = 'Y' AND BLCH.[Decision] = 'Do not' IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions */ -- Delete next actions flagged AS "Do Not". Second, the actual Diary entries: DELETE DS FROM OPENXML(@idoc, 'NA/NextAction', 2) WITH([Process] VARCHAR(1) 'Process', [Decision] VARCHAR(10) 'Decision', [Code] VARCHAR(5) 'Code', [DATE] DATETIME) BLCH INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = @ActionID INNER JOIN [dbo].[Diary] DS ON DS.[CASECODE] = DIA.[CASECODE] AND DS.[ACTIONCODE] = BLCH.[Code] AND DS.[STATUS] = 0 WHERE BLCH.[Process] = 'Y' AND BLCH.[Decision] = 'Do not' IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) /* Create new Actions based on the TemplateNextAction entries that are flagged AS "Do"s. As this involves a number of steps, we'll use a temporary table @NA (nextactions) that will hold the newly created Action IDs. We can then use that AS a basis for all following INSERT and UPDATE statements ensuring that all Diary / DiaryDelegation (etc) entries are correctly linked within this transaction. */ IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions */ --Pino 2015-09-30 Start EXEC @MaxActionID = [dbo].[KAAS_GetNextActionID] SET @MaxActionID = @MaxActionID - 1 --SELECT @MaxActionID = IsNull(MAX(DIA.[ActionID]), 0) -- FROM [dbo].[Diary] DIA --Pino 2015-09-30 Start IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) IF (@Continue = 0) BEGIN INSERT INTO @NA ([ActionID], [Code], [Date]) SELECT @MaxActionID, BLCH.[Code], dbo.KAAS_FNConvertDateToUTC([Date], @CurFee) FROM OPENXML(@idoc, 'NA/NextAction', 2) WITH(Process VARCHAR(1) 'Process', Decision VARCHAR(10) 'Decision', Code VARCHAR(5) 'Code', [Date] DATETIME) BLCH WHERE BLCH.[Process] = 'Y' AND BLCH.[Decision] = 'Do' IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) END -- END IF (@Continue = 0) EXEC sp_xml_removedocument @idoc IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions */ UPDATE @NA SET [ActionID] = [ActionID] + [ID] IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions */ /* The following is based on the original Clarion AddDiaryStep procedure (in CaseFun) Based on the NextActions in the temporary @NA table this code will: - Create new Diary entries, - Add their DiaryDelegation records, - Set the Linked Alarm - Update CaseMaster with the last added Diary Work Type ADDDIARYSTEP - START */ INSERT INTO [dbo].[Diary] ([ActionID], [CASECODE], [DATE], [STATUS], [ACTIONSTATUS], [ACTIONCODE], [ACTIONTYPE], [FnCode], [TeamCode], [Text1], [Displaytext], [DYStartTime], [DYEndTime], [DueDate], [ImageNo], [Publish], [Priority], [Highlighted], [Billable], [ProcessStatus], [BillDescription], [MILESTEONETYPE], [ORGINALACTIONID], [DraftBillNo], [Subject]) SELECT NA.[ActionID], DIA.[CASECODE] AS [CASECODE], --[dbo].[ky_WDGetDate](@Now, -- TNA.[WHENTYPE], -- TNA.[WHEN]) AS [DATE], NA.[Date] AS [DATE], 0 AS [STATUS], TAC.[STATUS] AS [ACTIONSTATUS], NA.[Code] AS [ACTIONCODE], TAC.[ACTIONCATEGORY] AS [ACTIONTYPE], CASE TAC.[AssignActionTo] WHEN 'C' THEN MAT.[FECode] WHEN 'P' THEN MAT.[Partner] WHEN 'F' THEN CNT.[FE] WHEN 'O' THEN TAC.[ASSIGNHANDLER] ELSE @CurFee END AS [FnCode], CASE TAC.[AssignTeamActionTo] WHEN 'O' THEN TAC.[ASSIGNTEAM] ELSE HAN.[TEAM] END AS [TeamCode], TAC.[DESC] AS [Text1], [dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(CONVERT(VARCHAR(MAX), TAC.[DESC]), ''), 200) AS [Displaytext], @NowClarionTime AS [DYStartTime], @NowClarionEndTime AS [DYEndTime], --[dbo].[ky_WDGetDate](@NowDateOnly, -- TNA.[WHENTYPE], -- TNA.[WHEN]) AS [DueDate], NA.[Date] AS [DueDate], 0 As [ImageNo], TAC.[PUBLISHER] AS [Publish], IsNull(SUBSTRING(TAC.[PRIORITY], 1, 1), 'N') As [Priority], TAC.[HIGHLIGHTED] As [Highlighted], CASE TAC.[BILLABLE] WHEN 'Y' THEN 1 ELSE 0 END As [Billable], 0 As [ProcessStatus], TAC.[BILLDESCRIPTION] AS [BillDescription], CASE TAC.[AssignActionTo] WHEN 'C' THEN MAT.[FECode] WHEN 'P' THEN MAT.[Partner] WHEN 'F' THEN CNT.[FE] WHEN 'O' THEN TAC.[ASSIGNHANDLER] ELSE @CurFee END AS [MilestoneType], @ActionID As [OriginalActionID], 0 As [DraftBillNo], CASE WHEN SUBSTRING(TAC.[DESC],0,CHARINDEX (CHAR(13),TAC.[DESC]))= '' THEN TAC.[DESC] ELSE SUBSTRING(TAC.[DESC],0,CHARINDEX (CHAR(13),TAC.[DESC])) END FROM @NA NA INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = @ActionID INNER JOIN [dbo].[TemplateActions] TAC ON TAC.[ACTIONCODE] = NA.[Code] INNER JOIN [dbo].[TemplateNextActions] TNA ON TNA.[ACTION] = DIA.[ACTIONCODE] AND TNA.[NEXTACTION] = NA.[Code] INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = @CurFee INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CNT ON CNT.[Code] = MAT.[ClientCode] ON MAT.[Code] = DIA.[CASECODE] IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) --Pino 2015-09-30 Start --reseed EXEC [dbo].[KAAS_ReseedActionID] --EXEC @MaxActionID = [dbo].[KAAS_GetNextActionID] --Pino 2015-09-30 Start IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions / AddDiaryStep */ INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DUEDATE], [DUETIME], [STATUS], [OWNER], [DELEGATE], [ACTIONTYPE], [DelType], [FromHandler]) SELECT DIA.[ACTIONID] AS [ACTIONID], CASE WHEN @TakeOwnership = 1 THEN @CurFee ELSE DIA.[FNCODE] END AS [HANDLER], CASE WHEN @TakeOwnership = 1 THEN @CurTeam ELSE DIA.[TEAMCODE] END AS [TEAM], DIA.[DUEDATE] AS [DATE], @NowClarionTime AS [TIME], DIA.[DUEDATE] AS [DUEDATE], @NowClarionTime AS [DUETIME], DIA.[STATUS] AS [STATUS], 'Y' AS [OWNER], DIA.[FNCODE] AS [DELEGATE], DIA.[ACTIONTYPE] AS [ACTIONTYPE], 'Created' AS [DelType], DIA.[FNCODE] AS [FromHandler] FROM @NA NA INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = NA.[ActionID] IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions / AddDiaryStep */ INSERT INTO [dbo].[Alarms] ([ID], [HandlerCode], [MatterRef], [LinkID], [OriginalDate], [DeferredDate], [Title], [Message], [Type], [Status]) SELECT convert(VARCHAR(38), newid()) AS [ID], DEL.[HANDLER] AS [Handler], DIA.[CASECODE] As [MatterRef], convert(VARCHAR(50), NA.[ActionID]) AS [LinkID], DIA.[DATE] As [OriginalDate], DIA.[DATE] As [DeferredDate], CASE WHEN DIA.[ActionType] <> 'E' THEN ISNULL(RTRIM(SUBSTRING(DIA.[TEXT1], 1, 255)), '') WHEN DIA.[ProcessType] = 'I' THEN RTRIM(SUBSTRING( 'Email From:' + RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '')) + ' - ' + ISNULL(SUBSTRING(DIA.[Subject], 1, 255), ''), 1, 255)) ELSE RTRIM(SUBSTRING( 'Email To:' + RTRIM(ISNULL(SUBSTRING(DIA.[AddressTo], 1, 255), '')) + ' - ' + ISNULL(SUBSTRING(DIA.[Subject], 1, 255), ''), 1, 255)) END AS [Title], RTRIM(SUBSTRING(DIA.[Text1], 1, 8000)) AS [Message], @AlarmType As [Type], ALS.[StatusID] AS [Status] FROM @NA NA INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = NA.[ActionID] INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[ACTIONID] = NA.[ActionID] INNER JOIN [dbo].[AlarmStatus] ALS ON ALS.[Description] = 'Attention' IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) / NextActions / AddDiaryStep */ IF NOT ((SELECT RTRIM(ISNULL(T.HoldCasePlan,'N')) FROM templateactions T INNER JOIN Diary D on T.ACTIONCODE = D.ACTIONCODE WHERE D.ACTIONID = @ActionID) = 'Y') BEGIN UPDATE CSM SET CSM.[CSWKTCODE] = TAC.[WKTCODE] FROM ( SELECT MAX(NA.[ActionID]) AS [MaxActionID] FROM @NA NA) LAID INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[TemplateActions] TAC ON TAC.[ACTIONCODE] = DIA.[ACTIONCODE] ON DIA.[ACTIONID] = LAID.[MaxActionID] INNER JOIN [dbo].[CaseMaster] CSM ON CSM.[CSCODE] = DIA.[CASECODE] END END -- END IF (@Continue = 0) /* ADDDIARYSTEP - END */ END -- END IF (@Continue = 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) */ /* Complete the diary delegations */ UPDATE DEL SET DEL.[STATUS] = 1, DEL.[HANDLER] = CASE WHEN @TakeOwnership = 1 THEN @CurFee ELSE DEL.[HANDLER] END, DEL.[TEAM] = CASE WHEN @TakeOwnership = 1 THEN @CurTeam ELSE DEL.[TEAM] END, DEL.[DelType] = CASE WHEN (@TakeOwnership = 1) AND (DEL.[DelType] = 'Released') AND (DEL.[FromHandler] = @CurFee) THEN 'Completed' ELSE DEL.[DelType] END FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ActionID AND IsNull(DEL.[STATUS], 0) <> 1 IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 1) */ /* Write new 'Completed' row to Diary Delegations */ INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [FromHandler], [ReturnedBy], [DELEGATE], [DATE], [TIME], [STATUS], [DELEGATESTATUS], [DelType]) SELECT DIA.[ACTIONID], DIA.[FNCODE], DIA.[TEAMCODE], DIA.[FNCODE], DIA.[FNCODE], DIA.FNCODE, @NowDateOnly, @NowClarionTime, 1, 1, 'Completed' FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) END -- END IF (@Owner = 1) IF (@Owner = 0) BEGIN IF (@Continue = 0) BEGIN /* top condition: (@Owner = 0) */ /* Return Action */ UPDATE DIA SET DIA.[DELEGATEDFNR] = @LocDel, DIA.[PROCESSSTATUS] = 0, DIA.[DELEGATIONSTATUS] = CASE WHEN @LocDel = DIA.[FNCODE] THEN 2 ELSE DIA.[DELEGATIONSTATUS] END FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 0) */ IF (@WorkProcess = 0) BEGIN INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [TIMER], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) SELECT DEL.[ACTIONID], @CurFee As [HANDLER], @CurTeam AS [TEAM], @Now, @NowClarionTime, NULL AS [TIMER], '' AS [DUETIME], '' AS [REVIEW], 1 AS [STATUS], '' AS [OWNER], @CurFee AS [DELEGATE], 1 As [DELEGATESTATUS], '' AS [ActionType], @CurFee AS [FromHandler], @CurFee AS [ReturnedBy], 'Processed' AS [DelType] FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ActionID AND DEL.[HANDLER] = @LocDel AND DEL.[STATUS] = 0 UPDATE DIA SET DIA.[WorkProcess] = 1 FROM [dbo].[Diary] DIA WHERE DIA.[ActionID] = @ActionID END INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [ActionType], [DATE], [DATER], [DELEGATE], [DELEGATESTATUS], [DUEDATE], [DUETIME], [DelType], [FromHandler], [HANDLER], [OWNER], [REVIEW], [ReturnedBy], [STATUS], [TEAM], [TIME], [TIMER]) SELECT DEL.[ACTIONID], DEL.[ActionType], @Now, @NowDateOnly AS [DATER], DEL.[DELEGATE], 2 As [DELEGATESTATUS], DEL.[DUEDATE], DEL.[DUETIME], 'Returned' AS [DelType], DEL.[FromHandler], DEL.[HANDLER], DEL.[OWNER], DEL.[REVIEW], @CurFee AS [ReturnedBy], 1 AS [STATUS], DEL.[TEAM], @NowClarionTime, @NowClarionTime AS [TIMER] FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ActionID AND DEL.[HANDLER] = @LocDel AND DEL.[STATUS] = 0 IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) IF (@Continue = 0) BEGIN /* top condition: (@Owner = 0) */ UPDATE DEL SET DEL.[DELEGATESTATUS] = 2, DEL.[DATER] = @NowDateOnly, DEL.[TIMER] = @NowClarionTime, DEL.[ReturnedBy] = @CurFee FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ActionID AND DEL.[HANDLER] = @LocDel AND DEL.[STATUS] = 0 IF (@@ERROR <> 0) BEGIN /* this will eventually lead to a rollback */ SET @Continue = 1 END -- END IF (@@ERROR <> 0) END -- END IF (@Continue = 0) END -- END IF (@Owner = 0) END -- END IF (@Continue = 0) END END TRY BEGIN CATCH SET @Continue = 1 END CATCH IF (@Continue = 0) BEGIN BEGIN TRY IF EXISTS (SELECT TOP 1 1 FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ActionID AND [DEL].[STATUS] = 0 AND [DEL].[OWNER] = 'Y') BEGIN UPDATE [DEL] SET [DEL].[OWNER] = '' FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ActionID AND [DEL].[STATUS] = 1 AND [DEL].[OWNER] = 'Y' END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN COMMIT SELECT [STATUS] FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID SELECT ErrorMsg FROM @ErrorMsgTable END ELSE -- ELSE (IF (@Continue = 0)) BEGIN ROLLBACK SELECT [STATUS] FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID SELECT ErrorMsg FROM @ErrorMsgTable END -- END IF (@Continue = 0) IF NOT (@Arrangement = '') BEGIN UPDATE [MAT] SET [MAT].[ChargeArrangement] = @Arrangement, [MAT].[CollectingBalance] = 0 FROM [dbo].[Diary] [DIA] INNER JOIN [dbo].[matters] [MAT] ON [MAT].[Code] = [DIA].[CASECODE] WHERE [DIA].[ACTIONID] = @ActionID END SET NoCount OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_TaskCopyDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_TaskCopyDetails] END GO CREATE PROCEDURE KAAS_TaskCopyDetails ( @ACTIONID INT, @CASECODE1 VARCHAR(20), @FNCODE VARCHAR(10), @Status VARCHAR(5) ) /************************************************************************************************* * Stored Procedure : [KAAS_TaskCopyDetails] * * Copied From : [ky_NETTaskCopyDetails] * * * * This stored procedure is used to Paset the Client Case Action information one to other case. * * * * Last Updated: 20JUNE2014 07.10 PM (IST) * * 2014-08-20 Pino - allow for 20 character Case codes (future change) * * /* Added a Flag column to insert diary on 16/12/2014 by sridharan */ * * 2015-09-30 Pino - Use ky_NETGetNextActionID * * 2019-06-04 Vinodhan - Created KAAS_TaskCopyDetails * **************************************************************************************************/ AS BEGIN SET NOCOUNT ON DECLARE @ACTIONVALUE INT -- Pino 2015-09-30 Start EXEC @ACTIONVALUE = [dbo].[KAAS_GetNextActionID] --SET @ACTIONVALUE = (SELECT ISNULL(MAX(ACTIONID),0) + 1 FROM DIARY) -- Pino 2015-09-30 End DECLARE @TIME VARCHAR(11) SET @TIME = (SELECT dbo.KAAS_ConvertTimeToClarion(GETDATE())) DECLARE @ACTIONCODE VARCHAR(20) SET @ACTIONCODE = (SELECT ACTIONCODE FROM diary WHERE ACTIONID = @ACTIONID) DECLARE @Flag TINYINT SET @Flag = (SELECT flag FROM TemplateActions WHERE ACTIONCODE = @ACTIONCODE) INSERT INTO DIARY ( CASECODE ,[DATE] ,[STATUS] ,ACTIONCODE ,ACTIONSTATUS ,ACTIONTYPE ,PROCESSTYPE ,FNCODE ,TEAMCODE ,TEXT1 ,TEXT2 ,DELEGATEDFNR ,DELEGATEDDATE ,DELEGATEDBACKDATE ,DEFERRED ,DUEDATE ,IMAGENO ,PUBLISH ,DYSTARTTIME ,DYENDTIME ,DURATION ,ACTIONID ,ORGINALACTIONID ,[PRIORITY] ,HIGHLIGHTED ,MILESTEONETYPE ,ATTACHMENTS ,PROCESSSTATUS ,WORKPROCESS ,BILLABLE ,BILLDESCRIPTION ,EMAILADDRESS ,ADDRESSTO ,CCTo ,BCCTo ,EMAIL ,[SUBJECT] ,DELEGATIONSTATUS ,DRAFTBILLNO ,CHEQUEREQNO ,TxmSent ,Location ,HearingType ,ForCopy ,TxmDate ,TxmSeqNo ,DisplayText ,Flag ) SELECT @CASECODE1 ,case when @Status = '' then [DATE] ELSE GETDATE() END ,case when @Status = '' then [STATUS] ELSE 0 END ,ACTIONCODE ,ACTIONSTATUS ,ACTIONTYPE ,PROCESSTYPE ,@FNCODE ,TEAMCODE ,TEXT1 ,TEXT2 ,DELEGATEDFNR ,DELEGATEDDATE ,DELEGATEDBACKDATE ,DEFERRED ,DUEDATE ,IMAGENO ,PUBLISH ,@TIME ,DYENDTIME ,DURATION ,@ACTIONVALUE ,@ACTIONVALUE ,[PRIORITY] ,HIGHLIGHTED ,MILESTEONETYPE ,ATTACHMENTS ,PROCESSSTATUS ,WORKPROCESS ,BILLABLE ,BILLDESCRIPTION ,EMAILADDRESS ,ADDRESSTO ,CCTo ,BCCTo ,EMAIL ,[SUBJECT] ,0.0 ,DRAFTBILLNO ,CHEQUEREQNO ,TxmSent ,Location ,HearingType ,ForCopy ,TxmDate ,TxmSeqNo ,DisplayText ,ISNULL(@Flag, 0) FROM diary WHERE ACTIONID = @ACTIONID INSERT INTO diaryDelegations( ACTIONID, HANDLER, TEAM, [DATE], [TIME], DATER, TIMER, DUEDATE, DUETIME, REVIEW, [STATUS], [OWNER], DELEGATE, DELEGATESTATUS, ACTIONTYPE, FROMHANDLER, RETURNEDBY, DELTYPE) SELECT @ACTIONVALUE , @FNCODE, TEAMCODE, case when @Status = '' then [DATE] ELSE GETDATE() END, @TIME, NULL, NULL, case when @Status = '' then DUEDATE ELSE GETDATE() END, @TIME, NULL, case when @Status = '' then [STATUS] ELSE 0 END, 'Y', @FNCODE, 0, ACTIONTYPE, @FNCODE , NULL, 'Created' FROM Diary WHERE ACTIONID = @ACTIONVALUE SELECT @ACTIONVALUE AS [ActionId] SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_TaskGetAlarmDetails]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_TaskGetAlarmDetails] GO CREATE procedure [dbo].[KAAS_TaskGetAlarmDetails] @ActionID INT AS /******************************************************************************************************* * Get Alarm Details for a Diary entry. * * * * Stored Procedure Name : [dbo].[KAAS_TaskGetAlarmDetails] * * Copied from : [dbo].[Ky_NETTaskGetAlarmDetails] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Time AS INT SET @Time= ( SELECT DYSTARTTIME FROM diary WHERE ACTIONID=@ActionID)--( SELECT CONVERT(VARCHAR, DATEADD(ms, 10 * (DYSTARTTIME - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108) FROM diary WHERE ACTIONID=@ActionID) SET @Time=(@Time+59999)/90000 IF (@Time >=95) BEGIN SET @Time= 8639901 END ELSE BEGIN SET @Time=@Time+1 SET @Time=@Time*90000 SET @Time=@Time+1 END DECLARE @AlarmTime AS DATETIME SET @AlarmTime=(SELECT CONVERT(VARCHAR,(SELECT CASE WHEN DATEPART(MINUTE,CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108)) % 15 = 0 THEN CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108) WHEN DATEPART(MINUTE,CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108)) % 15 < 10 THEN DATEADD(MINUTE, -(DATEPART(MINUTE, CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1),CONVERT(VARCHAR, GETDATE(), 112)), 108)) % 15) ,CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108)) ELSE DATEADD(MINUTE, 15 - DATEPART(MINUTE, CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1) ,CONVERT(VARCHAR, GETDATE(), 112)), 108)) % 15, CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1),CONVERT(VARCHAR, GETDATE(), 112)), 108)) END ),108) ) SELECT CASECODE,ISNULL(TEXT1,'') AS 'TEXT1', CONVERT(VARCHAR(11),DATE,106) AS [Date], --STUFF( RIGHT(CONVERT(VARCHAR,@AlarmTime, 109), 15 ), 7, 7, ' ' ) AS [Time] CONVERT(VARCHAR(5),@AlarmTime,108) AS [Time] FROM Diary WHERE ACTIONID=@ActionID SELECT A.HANDLER, B.Name, A.[OWNER] FROM DiaryDelegations A LEFT OUTER JOIN Handlers B ON A.HANDLER= B.CODE WHERE A.ACTIONID = @ActionID ORDER BY A.OWNER DESC, A.ACTIONID ASC, A.HANDLER ASC, A.ASSIGNNO ASC SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_TaskGetNextActionCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_TaskGetNextActionCode] GO CREATE PROCEDURE [dbo].[KAAS_TaskGetNextActionCode] ( @ActionId AS INT ) AS /******************************************************************************************************* * This procedure is used to get net Action Code based on the given Action ID. * * * * Stored Procedure Name : [dbo].[KAAS_TaskGetNextActionCode] * * Copied from : [dbo].[Ky_NETTaskGetNextActionCode] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * 2021-10-11 Sadiq Added Conditional info (13000) * *******************************************************************************************************/ BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; SELECT RTRIM(ISNULL([DIA].[CASECODE], '')) AS [CaseCode], RTRIM(ISNULL(TNA.[DECISION], '')) AS [Decision], RTRIM(ISNULL(TNA.[NEXTACTION], '')) AS [NextAction], TNAC.[DESC] AS [NextActionDescription], TAC.[NEXTACTIONOPTIONAL] AS NextActionOptional, CASE WHEN DPA.[TimeFrame] = 'Any Time' THEN CONVERT(DATETIME, '18010101') WHEN DPA.[TimeFrame] = 'Day(s)' THEN DATEADD(DD, -DPA.[TimeFramAmount], DIA.[DATE]) WHEN DPA.[TimeFrame] = 'Week(s)' THEN DATEADD(WK, -DPA.[TimeFramAmount], DIA.[DATE]) WHEN DPA.[TimeFrame] = 'Month(s)' THEN DATEADD(MM, -DPA.[TimeFramAmount], DIA.[DATE]) WHEN DPA.[TimeFrame] = 'Year(s)' THEN DATEADD(YY, -DPA.[TimeFramAmount], DIA.[DATE]) ELSE CONVERT(DATETIME, '18010101') END AS [TimeFrame], CONVERT(VARCHAR, [dbo].[ky_WDGetDate](GETDATE(),TNA.[WHENTYPE],TNA.[WHEN]), 120) AS [On] , CASE ISNULL([TNA].[OPTIONAL], 'N') WHEN 'Y' THEN 'Y' ELSE 'N' END AS [Conditional], CASE ISNULL([TNA].[OPTIONAL], 'N') WHEN 'Y' THEN [TNA].[SUFFilePrefix] ELSE CONVERT(VARCHAR(5), NULL) END AS [SUFFilePrefix], CASE ISNULL([TNA].[OPTIONAL], 'N') WHEN 'Y' THEN [TNA].[SUFFieldName] ELSE CONVERT(VARCHAR(30), NULL) END AS [SUFFieldName], CASE ISNULL([TNA].[OPTIONAL], 'N') WHEN 'Y' THEN [TNA].[SUFComparison] ELSE CONVERT(VARCHAR(8), NULL) END AS [SUFComparison], CASE ISNULL([TNA].[OPTIONAL], 'N') WHEN 'Y' THEN [TNA].[SUFValue] ELSE CONVERT(VARCHAR(max), NULL) END AS [SUFValue], ISNULL([SUF].[TYPE], '') AS [SUFType] FROM [diary] DIA INNER JOIN [TemplateActions] TAC ON TAC.[ACTIONCODE] = DIA.[ACTIONCODE] INNER JOIN [TemplateNextActions] TNA INNER JOIN [TemplateActions] TNAC ON TNAC.[ACTIONCODE] = TNA.[NEXTACTION] ON TNA.[ACTION] = TAC.[ACTIONCODE] LEFT JOIN TemplateDependentActions DPA ON DPA.DependentActionCode = TNA.ACTION LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [TNA].[OPTIONAL] = 'Y' AND [SUF].[FILEPREFIX] = [TNA].[SUFFilePrefix] AND [SUF].[FIELDNAME] = [TNA].[SUFFieldName] WHERE [ACTIONID] = @ActionId END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_TaskPushDate' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_TaskPushDate] END GO CREATE PROCEDURE [dbo].[KAAS_TaskPushDate] (@days INT, @date DATETIME, @AssignNo INT, @ActionID INT, @Delegated INT = 0) AS /******************************************************************************************************* * Created to Update Date column in Dairy AND Dairydelegation table * * (add days to date column 7/14/30 days) * * * * Stored Procedure Name : [dbo].[KAAS_TaskPushDate] * * Copied from : [dbo].[ky_NETTaskPushDate] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @CONVERTTIME DATETIME DECLARE @NewDate DATETIME SELECT @CONVERTTIME = CONVERT(VARCHAR, DATEADD(ms, 10 * (ISNULL([DIA].[DYSTARTTIME], 0) - 1), CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112))), 108) FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID SET @AssignNo = ISNULL(@AssignNo, 0) --IF @AssignNo = 0 --BEGIN -- -- KEYD-4242 - find only the FIRST row. -- -- By ordering the query by [STATUS] we -- -- will get the first one with [STATUS] 0 -- -- if possible -- SELECT TOP 1 -- @AssignNo = [DEL].[AssignNo] -- FROM [dbo].[DiaryDelegations] [DEL] -- WHERE [DEL].[ACTIONID] = @ActionID -- AND [DEL].[OWNER] = 'Y' -- ORDER BY [DEL].[STATUS] --END IF @days=0 BEGIN IF @date < (SELECT TOP 1 [DIA].[DUEDATE] FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID) BEGIN UPDATE [DIA] SET [DIA].[DATE] = @date + @CONVERTTIME FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID UPDATE [DEL] SET [DEL].[date] = @date FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ActionID] = @ActionID AND ( ( @AssignNo = 0 AND [DEL].[Status] = 0) OR ( @AssignNo <> 0 AND [DEL].[AssignNo] = @AssignNo)) END ELSE BEGIN UPDATE [DIA] SET [DIA].[DATE] = @date + @CONVERTTIME, [DIA].[DUEDATE] = @date FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID UPDATE [DEL] SET [DEL].[date] = @date, [DEL].[DUEDATE] = @date FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ActionID] = @ActionID AND ( ( @AssignNo = 0 AND [DEL].[Status] = 0) OR ( @AssignNo <> 0 AND [DEL].[AssignNo] = @AssignNo)) END END ELSE BEGIN SELECT @NewDate = DATEADD(DAY, @days, [DIA].[DATE]) FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID IF @NewDate < = (SELECT TOP 1 [DIA].[DUEDATE] FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID) BEGIN UPDATE [DIA] SET [DIA].[DATE] = @NewDate FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID UPDATE [DEL] SET [DEL].[DATE] = @NewDate FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ActionID] = @ActionID AND ( ( @AssignNo = 0 AND [DEL].[Status] = 0) OR ( @AssignNo <> 0 AND [DEL].[AssignNo] = @AssignNo)) END ELSE BEGIN UPDATE [DIA] SET [DIA].[DATE] = @NewDate, [DIA].[DUEDATE] = @NewDate FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID UPDATE [DEL] SET [DEL].[DATE] = @NewDate, [DEL].[DUEDATE] = @NewDate FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ActionID] = @ActionID AND ( ( @AssignNo = 0 AND [DEL].[Status] = 0) OR ( @AssignNo <> 0 AND [DEL].[AssignNo] = @AssignNo)) END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_TaskScalarDelegatedToHandler' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_TaskScalarDelegatedToHandler] END GO CREATE PROCEDURE [dbo].[KAAS_TaskScalarDelegatedToHandler] (@Handler VARCHAR(10), @ActionID INT) AS /******************************************************************************************************* * Checks whether an action is delegated to a particular handler. Returns 0 if not, 1 otherwise. * * * * Stored Procedure Name : [dbo].[KAAS_TaskScalarDelegatedToHandler] * * Copied from : [dbo].[ky_NETTaskScalarDelegatedToHandler] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @IsAssigned INT SELECT @IsAssigned = CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ActionID AND DEL.[HANDLER] = @Handler AND DEL.[DelType] NOT IN ('Completed', 'Processed', 'Returned', 'Created') AND DEL.[STATUS] = 0 AND ISNULL(DEL.[OWNER], 'N') <> 'Y' SET @IsAssigned = ISNULL(@IsAssigned, 0) RETURN @IsAssigned END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_TemplateLibaryToCreateAction' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_TemplateLibaryToCreateAction] END GO CREATE PROCEDURE [dbo].[KAAS_TemplateLibaryToCreateAction] (@DOCUMENTCODE VARCHAR(10), @CURRENTCASECODE VARCHAR(20), @CURRENTHANDLER VARCHAR(10), @CURRENTTEAM VARCHAR(10), @FILEDESTINATION VARCHAR(1000), @TRACKREFERENCE INT, @FILENAME VARCHAR(500), @FILETYPE VARCHAR(10)) AS /************************************************************************************************************** * * * This procedure is used to insert record in diary, diary delegation and diary attachment tables. * * * * Stored Procedure : KAAS_TemplateLibaryToCreateAction * * Copied From : [dbo].[ky_NETTemplateLibaryToCreateAction] * * * * Modification History * * 2015-05-08 Magesh Added action code as 'TDOC' * * 2015-09-30 Pino Carafa Use ky_NETGetNextActionID * * 2016-10-06 Pino Carafa Coding standards * * 2016-11-17 Pino Carafa Allow for TrackReference = 0 in order to deal with .NET Doc Generator * * KEYD-4264 * * 2018-08-08 Pino Carafa KEYD-4990 - Added DueDate to [diary], and [Duedate], [duetime], [time] * * and [status] to [diarydelegations] * * 2018-08-08 Pino Carafa Added DisplayText to avoid the Trigger * * 2020-02-26 Vindohan Created KAAS_TemplateLibaryToCreateAction * * * **************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ACTIONDID AS INT EXEC @ACTIONDID = [dbo].[KAAS_GetNextActionID] DECLARE @CURRENTDATE AS DATETIME SET @CURRENTDATE =(SELECT GETDATE()) DECLARE @DocClass NVARCHAR(500) DECLARE @TIMECONVERT INT SET @TIMECONVERT = dbo.KAAS_ConvertTimeToClarion(@CURRENTDATE) INSERT INTO [dbo].[diary] ([ACTIONID], [CASECODE], [ACTIONCODE], [ACTIONTYPE], [STATUS], [FNCODE], [TEAMCODE], [PROCESSSTATUS], [TEXT1], [DisplayText], [DATE], [DUEDATE], [DYSTARTTIME], [DYENDTIME]) VALUES(@ACTIONDID, @CURRENTCASECODE, 'TDOC', 'A', 0, @CURRENTHANDLER, @CURRENTTEAM, 0, @FILENAME, CONVERT(VARCHAR(200), [dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(CONVERT(VARCHAR(MAX), @FILENAME), ''), 200)), @CURRENTDATE, CONVERT(DATETIME, CONVERT(VARCHAR, @CURRENTDATE, 112)), @TIMECONVERT, @TIMECONVERT) INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DUEDATE], [DUETIME], [STATUS], [DelType], [OWNER]) VALUES(@ACTIONDID, @CURRENTHANDLER, @CURRENTTEAM, @CURRENTDATE, @TIMECONVERT, @CURRENTDATE, @TIMECONVERT, 0, 'Created', 'Y') IF ISNULL(@TRACKREFERENCE, 0) <> 0 BEGIN SELECT @DocClass = ISNULL(RTRIM([TDC].[DOCCLASS]), '') FROM [dbo].[TemplateDocuments] [TDC] WHERE [TDC].[CODE] = @DOCUMENTCODE INSERT INTO [dbo].[DiaryAttachments] ([DiaryID], [TrackReference], [CASECODE], [NAME], [DOCUMENT], [FILEPATH], [TYPE], [DOCCLASS], [DATEENTERED], [ENTEREDBY], [LASTACCESSBY], [LASTACCESSDATE], [SYSTEM], [SOURCE], [Fees], [Outlay]) VALUES(@ACTIONDID, @TRACKREFERENCE, @CURRENTCASECODE, '', @FILENAME, @FILEDESTINATION, @FILETYPE, @DocClass, @CURRENTDATE, @CURRENTHANDLER, @CURRENTHANDLER, @CURRENTDATE, 'Y', 'Capture', 0, 0) END SELECT @ACTIONDID AS [ActionId] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_TemplateQueryExecutor' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_TemplateQueryExecutor] END GO CREATE PROCEDURE [dbo].[KAAS_TemplateQueryExecutor] ( @Handler VARCHAR(10), @fromdate DATETIME=null, @todate DATETIME=null, @userWidgetId INT, @CaseCode VARCHAR(20)) AS /******************************************************************************************************* * It executes the Query templates and returns the data. * * * * Stored Procedure Name : [dbo].[KAAS_TemplateQueryExecutor] * * * * Modification History : * * 2019-06-05 Vinodhan K Created * * 2019-07-02 Vinodhan K Added a paramter CaseCode For CaseDiary Dashboard * * 2020-01-08 Ganapathy T Changed templateid into widgetid as template used for different widget * * * *******************************************************************************************************/ BEGIN DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @Query VARCHAR(MAX) DECLARE @widgetId INT SET @widgetId = ( SELECT W.WidgetId FROM [UserWidgets] UW LEFT JOIN [Widgets] W ON UW.WidgetId = W.WidgetId LEFT JOIN [UITemplates] UT ON W.TemplateId = UT.TemplateId WHERE UW.UserWidgetsId = @userWidgetId) SET @Query = ( SELECT WidgetQuery FROM [Widgets] WHERE WidgetId = @widgetId) SET @NCOMMAND= (@Query) EXECUTE sp_executesql @NCOMMAND, N'@handler VARCHAR(10), @fromdate DateTime , @todate DateTime ,@CaseCode VARCHAR(20) ', @handler = @Handler, @fromdate = @fromdate, @todate=@todate, @CaseCode=@CaseCode END GO IF OBJECT_ID(N'KAAS_TenantSettings',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_TenantSettings] GO CREATE PROCEDURE [dbo].[KAAS_TenantSettings] AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS_TenantSettings] * * Copied From : [dbo].[KAAS_CP_GetSettings] * * Description: To use detail request file email Template * * * * Modification History: * * 2021-05-27 Aakif Created * * 2021-05-31 Aakif Included column for two factor authentication * * 2022-03-07 Vinodhkumar.M Created * *******************************************************************************************************/ BEGIN SELECT [TenantLogo] AS [TenantLogo], [TenantLogoType] AS [TenantLogoType], [UPEKey] AS [UPEKey], ISNULL([IsTwoFactorEnabled], 0) AS [IsTwoFactorEnabled], ISNULL([IsLockOut_Attempt], 0) AS [IsLockOutAttempt], ISNULL([LockoutDurationInMins], 10) AS [LockoutLimitInMin], ISNULL([PasswordResetNotification], 0) AS [PasswordResetNotification] FROM [dbo].[ClientPortalSetting] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_TimeChargeBalances' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_TimeChargeBalances] END GO create PROCEDURE [dbo].[KAAS_TimeChargeBalances] (@matter VARCHAR(20)) AS /******************************************************************* * * ky_NETTimeChargeBalances * gets the time/charge balances FROM the Time Ledger * Modifications: 2015-02-12 Pino - SAM4 functionality *2019-11-11 Rajesh Copied from [dbo].[ky_NETTimeChargeBalances] *******************************************************************/ BEGIN DECLARE @IsSAM4 bit SET @IsSAM4 = [dbo].[ISSAM4]() SELECT TTL.[TOTALTIME] As [TotalMinutes], CONVERT(VARCHAR(10), FLOOR(TTL.[TOTALTIME] / 60)) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + TTL.[TOTALTIME] - (FLOOR(TTL.[TOTALTIME] / 60) * 60)), 2, 2) AS [TotalTime], TTL.[TotalCharged] FROM [dbo].[matters] MAT cross apply (SELECT ISNULL(SUM(CASE WHEN @IsSAM4 = 1 AND ISNULL(TIE.[InvoiceNo], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Time], 0) WHEN ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) <> 0 THEN ISNULL(TIE.[Time], 0) ELSE 0 END), 0) AS [TOTALTIME], ISNULL(SUM(CASE WHEN @IsSAM4 = 1 AND ISNULL(TIE.[Invoiceno], 0) <> 0 THEN 0 WHEN @IsSAM4 = 1 THEN ISNULL(TIE.[Charge], 0) ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0) AS [TotalCharged] FROM [dbo].[TimeEntry] TIE WHERE TIE.[MATTER] = MAT.[Code] AND RTRIM(ISNULL(TIE.[REC_IRR], '')) <> 'N' AND RTRIM(ISNULL(TIE.[TimeorCharge], '')) IN ('T', 'C')) TTL WHERE MAT.[Code] = @MATTER END GO IF OBJECT_ID(N'KAAS_TimerGetNarratives',N'P')IS NOT NULL DROP PROCEDURE KAAS_TimerGetNarratives GO CREATE PROCEDURE KAAS_TimerGetNarratives ( @CASECODE AS VARCHAR(20), @Date AS DATETIME ) AS /******************************************************************************************************* * This procedure is used to get action descriptions which comes under casecode. * * * * Stored Procedure Name : [dbo].[KAAS_TimerGetNarratives] * * Copied from : [dbo].[KY_NETTimerGetNarratives] * * * * Modification History: * * 2019-07-04 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF(@CASECODE = '' OR @CASECODE = '~') BEGIN SELECT CASE WHEN RTRIM(ISNULL([ACTIONTYPE], '')) = 'E' THEN CASE WHEN ISNULL([PROCESSTYPE], 'O') = 'I' THEN 'Email From:' + (RTRIM(ISNULL(CAST([EMAILADDRESS] AS VARCHAR(MAX)),''))) + ' - ' + ISNULL(CAST ([Subject] AS VARCHAR(MAX)),'') ELSE 'Email To:' + RTRIM(CAST(ISNULL([AddressTo],'') AS VARCHAR(MAX))) + ' - ' + ISNULL(CAST ([Subject] AS VARCHAR(MAX)),'') END ELSE ISNULL(RTRIM(TEXT1),'') END AS [DESCRIPTION] FROM Diary WHERE CONVERT(varchar,[Date],112)=CONVERT(varchar,@Date,112) END ELSE BEGIN SELECT CASE WHEN RTRIM(ISNULL([ACTIONTYPE], '')) = 'E' THEN CASE WHEN ISNULL([PROCESSTYPE], 'O') = 'I' THEN 'Email From:' + (RTRIM(ISNULL(CAST([EMAILADDRESS] AS VARCHAR(MAX)),''))) + ' - ' + ISNULL(CAST ([Subject] AS VARCHAR(MAX)),'') ELSE 'Email To:' + RTRIM(CAST(ISNULL([AddressTo],'') AS VARCHAR(MAX))) + ' - ' + ISNULL(CAST ([Subject] AS VARCHAR(MAX)),'') END ELSE ISNULL(RTRIM(TEXT1),'') END AS [DESCRIPTION] FROM Diary WHERE CASECODE =@CASECODE AND CONVERT(varchar,[Date],112)=CONVERT(varchar,@Date,112) END SET NOCOUNT OFF END GO IF OBJECT_ID (N'KAAS_TimeWriteoff',N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_TimeWriteoff] END GO CREATE PROCEDURE [dbo].[KAAS_TimeWriteoff] ( @FUNCTION VARCHAR(MAX), @TIMSER varchar(max), @FE varchar(10), @matter varchar(20), @woDate varchar(8), @Rate Decimal(10,2)) AS /************************************************************************************************** * KAAS_TimeWriteoff * * This procedure is used write off the time entry based on their record ID * * 2015-11-11 John Removed the wrapper around @TIMSER as the program handles this * Also added @FUNCTION parameter which has two values: * 'WRITEOFF' - Which will write off the entries in @TIMSER * 'UNBILLED' - Which will mark items in @TIMSER as unbilled * * 2015-11-20 John No longer setting InvoiceNo and BilledAmount to 0 when you mark * an item as unbilled (to cater for partially billed things) * * You can now mark write-offs as unbilled and this will mark linked * items as unbilled and then delete the write off * * You can now also write-off partially billed items (remaining * charge and full time is written off) * 2015-11-25 John Changed how the write off was calculating the time so it's now * proportional to the time that's unbilled * 2015-11-27 John Added ability to write off non-chargeable time. This will create a * write off which is marked as non-chargeable. * 2016-05-09 John Fixed marking a single written off item as unbilled removing the * entire write off. You can now also mark write-offs as unbilled and * this will remove the write and mark linked items as unbilled. * 2016-05-17 John Fixed recalculation of write off not taking into account partially * billed time * 2016-05-17 John Fixed aggregate select query using wrong alias * 2016-07-15 Sridharn KEYD-3772: Write Off Time - Editing the write off entry * resets the rate to €1.00 * 2017-02-15 John KEYD-4443 - Now recalculating matter time balances at the end * 2018-09-25 John KEYD-5486 - Write-offs now have their WriteOffID set to themselves * so they're no longer pulled into billing guides * 2019-04-01 John KEYD-5834 - Updated TOTALCHARGE decimal to allow much larger values * 2019-10-03 John KEYD-6162 - Fixed write off update setting the value to positive * when it should be negative * 2019-11-05 John KEYD-6231 - Fixed NULL being inserted into Charge * 2019-12-11 Arun V Copied from ky_NETTimeWriteoff ******************************************************************************************************/ BEGIN SET @FUNCTION = UPPER(@FUNCTION) DECLARE @idoc int DECLARE @Continue int DECLARE @MAXID int DECLARE @NEWMAXID int DECLARE @ISSAM4 INT DECLARE @PERIOD INT DECLARE @YEAR INT DECLARE @WOT TABLE ([ID] INT IDENTITY(0, 1), [HANDLER] VARCHAR(10), [REC_IRR] VARCHAR(1), [TOTALCHARGE] DECIMAL(19, 2), [TOTALTIME] INT) EXEC sp_xml_preparedocument @idoc OUTPUT, @TIMSER SET @ISSAM4 = [dbo].[ISSAM4]() IF @ISSAM4 = 0 BEGIN SELECT @PERIOD = ISNULL(CON.[CURPER], 0), @YEAR = ISNULL(CON.[YEAR], 0) FROM [dbo].[control] AS CON END ELSE BEGIN SET @PERIOD = (SELECT ISNULL([NumValue], 0) FROM [dbo].[CtrlNum] WHERE [Code] = 'CurPeriod') SET @YEAR = (SELECT ISNULL([NumValue], 0) FROM [dbo].[CtrlNum] WHERE [Code] = 'CurYear') END -- Write off entries IF @FUNCTION = 'WRITEOFF' BEGIN SET @Continue = 0 IF (@Continue = 0) BEGIN BEGIN TRY BEGIN SELECT @MAXID = IDENT_CURRENT('[dbo].[TimeEntry]') IF (@@Error <> 0) SET @Continue = 1 SET @MAXID = @MAXID + 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO [dbo].[TimeEntryLog] ([TimeId], [FromMatter], [ToMatter], [TrDate], [TrBy]) SELECT TIE.[RECORDID], TIE.[MATTER], TIE.[MATTER], @woDate, 'w/o' FROM OPENXML(@idoc, 'ute/r', 2) WITH(RecordID int '.') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND TIE.[TASK] <> 'WRI' AND IsNull(TIE.[WriteOffID], 0) = 0 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY IF @ISSAM4 = 0 BEGIN INSERT INTO @WOT ( [HANDLER], [REC_IRR], [TOTALCHARGE], [TOTALTIME]) (SELECT TIE.[FEEEARN], ISNULL(TIE.[Rec_Irr], 'C'), ISNULL(SUM(ISNULL(TIE.[CHARGED], 0)), 0) - ISNULL(SUM(ISNULL(TIE.[BilledAmount], 0)), 0), ISNULL(SUM(CONVERT(INT, ISNULL(TIE.[Time], 0) - (ISNULL(TIE.[Time], 0) * ISNULL(TIE.[BilledAmount], 0) / ISNULL(TIE.[Charge], 0)))), 0) FROM OPENXML(@idoc, 'ute/r', 2) WITH(RecordID int '.') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND ISNULL(TIE.[Charge], 0) <> 0 AND ISNULL(TIE.[TASK], '') <> 'WRI' AND IsNull(TIE.[WriteOffID], 0) = 0 GROUP BY TIE.[FEEEARN], ISNULL(TIE.[Rec_Irr], 'C')) END ELSE BEGIN INSERT INTO @WOT ( [HANDLER], [REC_IRR], [TOTALCHARGE], [TOTALTIME]) (SELECT TIE.[FEEEARN], ISNULL(TIE.[Rec_Irr], 'C'), ISNULL(SUM(ISNULL(TIE.[CHARGED], 0)), 0), ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) FROM OPENXML(@idoc, 'ute/r', 2) WITH(RecordID int '.') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND ISNULL(TIE.[Charge], 0) <> 0 AND ISNULL(TIE.[TASK], '') <> 'WRI' AND IsNull(TIE.[WriteOffID], 0) = 0 GROUP BY TIE.[FEEEARN], ISNULL(TIE.[Rec_Irr], 'C')) END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN UPDATE TIE SET TIE.[WriteOffDT] = @woDate, TIE.[WriteOffID] = @MAXID + WOT.[ID] FROM OPENXML(@idoc, 'ute/r', 2) WITH(RecordID int '.') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND TIE.[TASK] <> 'WRI' AND IsNull(TIE.[WriteOffID], 0) = 0 INNER JOIN @WOT WOT ON WOT.[HANDLER] = TIE.[FEEEARN] AND WOT.[REC_IRR] = TIE.[Rec_Irr] END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO [dbo].[TimeEntry] ([MATTER], [FEEEARN], [DATE], [TIME], [CHARGED], [RATE], [TASK], [TIMEORCHARGE], [COMMENT], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [PERIOD], [YEAR], [ACTIONID], [StageCode], [BILLED], [INVOICENO], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [WriteOffID], [WriteOffDT]) SELECT @matter, HAN.[CODE], @woDate, -WOT.[TOTALTIME], -WOT.[TOTALCHARGE], @Rate, 'WRI', 'T', 'Write-off', '', 0, HAN.[TEAM], 0, WOT.[REC_IRR], @PERIOD, @YEAR, NULL, NULL, 0, 0, 0, 0, '', WOT.[ID] + @MAXID, @woDate FROM @WOT WOT INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = WOT.[HANDLER] WHERE WOT.[TOTALCHARGE] <> 0 OR WOT.[TOTALTIME] <> 0 ORDER BY WOT.[ID] END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN SELECT @NEWMAXID = ISNull(MAX([RECORDID]), 0) FROM [dbo].[TimeEntry] SELECT @MAXID = ISNULL(MAX(@MAXID + [ID]), 0) FROM @WOT IF (@@Error <> 0) SET @Continue = 1 IF (@MAXID <> @NEWMAXID) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END END ELSE IF @FUNCTION = 'UNBILLED' BEGIN CREATE TABLE #WRITEOFFS ( [ID] INT IDENTITY(1, 1), [RECORDID] INT ) INSERT INTO #WRITEOFFS ( [RECORDID] ) SELECT DISTINCT CASE WHEN TIE.[Task] = 'WRI' THEN TIE.[RecordID] ELSE TIE.[WriteOffID] END FROM OPENXML(@idoc, 'ute/r', 2) WITH(RecordID INT '.') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] -- Set the write off ID and date to null on non-write-off items UPDATE TIE SET [WriteOffID] = NULL, [WriteOffDT] = NULL FROM OPENXML(@idoc, 'ute/r', 2) WITH(RecordID int '.') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND TIE.[TASK] <> 'WRI' -- Set the write off ID and date to null on items written off by write-offs that you want to unbill UPDATE TIE SET TIE.[WriteOffDT] = NULL, TIE.[WriteOffID] = NULL FROM [dbo].[TimeEntry] AS TIE INNER JOIN [dbo].[TimeEntry] AS WOT ON TIE.[WriteOffID] = WOT.[RecordID] AND WOT.[Task] = 'WRI' INNER JOIN OPENXML(@idoc, 'ute/r', 2) WITH([RecordID] INT '.') UTE ON WOT.[RecordID] = UTE.[RecordID] -- Update the write offs with the new balance IF [dbo].[ISSAM4]() = 0 BEGIN UPDATE [WRI] SET [WRI].[Charge] = -ISNULL([TIE].[Charge], 0), [WRI].[Time] = -ISNULL([TIE].[Time], 0) FROM [dbo].[TimeEntry] AS [WRI] INNER JOIN #WRITEOFFS AS [WOF] ON [WOF].[RECORDID] = [WRI].[RecordID] CROSS APPLY (SELECT SUM([TIE2].[Charged] - ISNULL([TIE2].[BilledAmount], 0)) AS [Charge], SUM(ISNULL([TIE2].[Time], 0) - CASE WHEN ISNULL([TIE2].[Charge], 0) = 0 THEN 0 ELSE ISNULL([TIE2].[Time], 0) * (ISNULL([TIE2].[BilledAmount], 0) / [TIE2].[Charge]) END) AS [Time] FROM [dbo].[TimeEntry] AS [TIE2] WHERE [TIE2].[WriteOffID] = [WRI].[RecordID] AND [TIE2].[RecordID] <> [WRI].[RecordID] AND [TIE2].[Task] <> 'WRI') AS [TIE] END ELSE BEGIN UPDATE [WRI] SET [WRI].[Charge] = -ISNULL([TIE].[Charge], 0), [WRI].[Time] = -ISNULL([TIE].[Time], 0) FROM [dbo].[TimeEntry] AS [WRI] INNER JOIN #WRITEOFFS AS [WOF] ON [WOF].[RECORDID] = [WRI].[RecordID] CROSS APPLY (SELECT SUM(ISNULL([TIE2].[Charged], 0)) AS [Charge], SUM(ISNULL([TIE2].[Time], 0)) AS [Time] FROM [dbo].[TimeEntry] AS [TIE2] WHERE [TIE2].[WriteOffID] = [WRI].[RecordID] AND [TIE2].[RecordID] <> [WRI].[RecordID] AND [TIE2].[Task] <> 'WRI') AS [TIE] END -- Delete write offs whose charge is 0 DELETE TIE FROM dbo.TimeEntry TIE INNER JOIN #WRITEOFFS WOF ON WOF.RECORDID = TIE.RecordID WHERE [Charge] = 0 END EXEC sp_xml_removedocument @idoc EXEC [dbo].[ky_WDUpdateMatterTimeBalance] @Matter END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UDFAnswerInsertorUpdate' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UDFAnswerInsertorUpdate] END GO CREATE PROCEDURE [dbo].[KAAS_UDFAnswerInsertorUpdate] (@CaseCode VARCHAR(200), @FILEPREFIX VARCHAR(200), @FIELDNAME VARCHAR(200), @Text VARCHAR(MAX), @Number DECIMAL(18,2), @Date DATETIME) AS /******************************************************************************************************* * This procedure is used To insert data for other case details main grid. * * * * Stored Procedure Name : [dbo].[KAAS_UDFAnswerInsertorUpdate] * * Copied from : [dbo].[ky_NETUDFAnswerInsertorUpdate] * * * * Modification History : * * 2019-07-09 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF @Date = CONVERT(DATETIME, '') BEGIN SET @Date = NULL END ELSE IF YEAR(@Date) < 1901 BEGIN SET @Date = NULL END ELSE BEGIN SET @DATE = CONVERT(DATETIME, CONVERT(VARCHAR, @Date, 112)) END IF RTRIM(ISNULL(@Text, '')) = '' BEGIN IF (@Date IS NULL) AND (@Number IS NULL) BEGIN SET @Text = '' END ELSE IF (@Date IS NULL) AND (@Number = 0) --2018-02-26 BEGIN SET @Text = CASE (SELECT [SUF].[TYPE] FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] = @FILEPREFIX AND [SUF].[FIELDNAME] = @FIELDNAME) WHEN 'Date' THEN '' WHEN 'Text' THEN @Text ELSE CONVERT(VARCHAR(30), @Number) END END ELSE IF (@Date IS NULL) BEGIN IF (SELECT [SUF].[TYPE] FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE [SUF].[FILEPREFIX] = @FILEPREFIX AND [SUF].[FIELDNAME] = @FIELDNAME) <> 'Text' BEGIN SET @Text = CONVERT(VARCHAR(30), @Number) END END ELSE BEGIN SET @Number = [dbo].[ky_NETFNConvertDateToClarion](@Date) SET @Text = CONVERT(VARCHAR(30), @Number) END END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = @CaseCode AND CUF.[UDFFILE] = @FILEPREFIX AND CUF.[UDFNAME] = @FIELDNAME) BEGIN UPDATE CUF SET CUF.[TEXT1] = @Text, CUF.[NumberValue] = @Number, CUF.[DateValue] = @Date FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = @CaseCode AND CUF.[UDFFILE] = @FILEPREFIX AND CUF.[UDFNAME] = @FIELDNAME END ELSE BEGIN DECLARE @SequenceNo INT SET @SequenceNo = (SELECT ISNULL(MAX(CUF.[SEQNO]), 0) + 1 FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = @CaseCode ) INSERT INTO [dbo].[CaseUDFAnswers] ([CASECODE], [UDFNAME], [UDFFILE], [DateValue], [NumberValue], [TEXT1], [SEQNO]) VALUES(@CaseCode, @FIELDNAME, @FILEPREFIX, @Date, @Number, @Text, @SequenceNo) END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UndertakingsPageLoad' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UndertakingsPageLoad] END GO CREATE PROCEDURE [dbo].[KAAS_UndertakingsPageLoad] (@CaseCode VARCHAR(20), @SearchText VARCHAR(4000) = '', @PageNumber INT = NULL, @PageSize INT = NULL, @SortColumn VARCHAR(50) = NULL, @SortDirection VARCHAR(10) = NULL) AS /******************************************************************************************************* * Page load data for loading the gird based on the selected case code. * * * * Stored Procedure Name : [dbo].[KAAS_UndertakingsPageLoad] * * Copied from : [dbo].[ky_NETUndertakingsPageLoad] * * * * Modification History : * * 2019-06-27 Vinodhan K Created * * 2019-06-28 Vinodhan K Searching, Paging and Sorting functionality added * *******************************************************************************************************/ BEGIN SET NOCOUNT ON SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX SET @PageSize = ISNULL(@PageSize, 0) ; DECLARE @StartRow INT = NULL; DECLARE @EndRow INT = NULL; IF(@PageNumber > -1 AND @PageSize > 0) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END IF(@SortColumn = '' OR @SortColumn = NULL) BEGIN SET @SortColumn = 'Code' END IF(@SortDirection = '' OR @SortDirection = NULL) BEGIN SET @SortDirection = 'ASC' END SELECT IDENTITY(int, 1,1) AS [Row_Number], * INTO #FoundTable FROM ( SELECT RTRIM(UND.[MATTER]) AS [MATTER], UND.[SEQ] AS [SEQ], CASE WHEN UND.[DATE] = CONVERT(DATETIME, '19000101') THEN '' ELSE convert(nvarchar(30), UND.[DATE], 23) END AS [DATE], CONVERT(NVARCHAR(30),UND.[DISCHARGEDATE],23) AS [DISCHARGEDATE], CASE RTRIM(ISNULL(UND.[TYPE],'')) WHEN 'D' THEN 'Documents' ELSE 'Financial' END AS [TYPE], RTRIM(UND.[DESCRIPTION]) AS [DESCRIPTION], RTRIM(ISNULL(UND.[WHO],'')) AS [WHO], UND.[VALUE] AS [VALUE], UND.[RECORDID] AS [RECORDID], ISNULL(UND.[ACTIONID],0) AS [ACTIONID], RTRIM(ISNULL(UND.[AUTHORISEDBYFE],'')) AS [AUTHORISEDBYFE], RTRIM(UNS.[StatusDesc]) AS [STATUS], ISNULL(UND.[IsConditional],0) AS [IsConditional], (CASE WHEN UND.[IsConditional]= 'True' THEN UND.[Condition] ELSE '' END) AS [Condition], CASE WHEN UND.[NeedsAttention] = 1 THEN 'Yes' ELSE 'No' END AS [NeedsAttention], CASE WHEN UND.[NeedsAttention] = 1 THEN 'Visible' ELSE 'Collapsed' END AS [NeedsAttentionIcon] FROM [dbo].[Undertakings] UND LEFT OUTER JOIN [dbo].[UndertakingStatus] UNS ON UNS.[RecordID] = UND.[STATUS] WHERE UND.[MATTER] = @CaseCode AND ([TYPE] LIKE '%' + @SearchText + '%' OR [WHO] LIKE '%' + @SearchText + '%' OR [DATE] LIKE '%' + @SearchText + '%' OR [VALUE] LIKE '%' + @SearchText + '%' OR [DESCRIPTION] LIKE '%' + @SearchText + '%' OR [DISCHARGEDATE] LIKE '%' + @SearchText + '%') )AS Conditions ORDER BY CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Date' THEN [DATE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Date' THEN [DATE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'NeedsAttention' THEN [NeedsAttention] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'NeedsAttention' THEN [NeedsAttention] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Type' THEN [TYPE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Type' THEN [TYPE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Who' THEN [WHO] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Who' THEN [WHO] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Value' THEN [VALUE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Value' THEN [VALUE] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'Description' THEN [DESCRIPTION] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'Description' THEN [DESCRIPTION] END END DESC, CASE WHEN @SortDirection = 'ASC' THEN CASE @SortColumn WHEN 'DischargeDate' THEN [DISCHARGEDATE] END END, CASE WHEN @SortDirection = 'DESC' THEN CASE @SortColumn WHEN 'DischargeDate' THEN [DISCHARGEDATE] END END DESC SELECT * FROM #FoundTable WHERE ( @StartRow IS NULL OR ( [Row_Number] BETWEEN @StartRow AND @EndRow ) ) SELECT (COUNT([Row_Number]) ) FROM #FoundTable SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UndoCheckoutTrackReference' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UndoCheckoutTrackReference] END GO CREATE PROCEDURE [dbo].[KAAS_UndoCheckoutTrackReference] (@TrackReference INT, @Handler VARCHAR(10)) AS /************************************************************************************************************* * * * [dbo].[KAAS_UndoCheckoutTrackReference] * * * * Frees a checked out document so it can be checked out again * * * * Modification History : * * 2023-08-09 Nithyanandham M Created * *************************************************************************************************************/ BEGIN SET NOCOUNT ON SET QUOTED_IDENTIFIER ON DECLARE @OLDNAME VARCHAR(30) DECLARE @NEWNAME VARCHAR(30) DECLARE @COMMENT VARCHAR(2000) IF EXISTS (SELECT TOP 1 1 FROM [dbo].[DiaryAttachmentCheckouts] WHERE [TrackReference] = @TrackReference AND [Handler] <> @Handler) BEGIN SELECT @NEWNAME = ISNULL((SELECT [NAME] FROM [dbo].[HandlerNames] WHERE [CODE] = @Handler), 'Handler "' + ISNULL(@Handler, '') + '"') SELECT TOP 1 @OLDNAME = ISNULL([HN].[NAME], 'Handler "' + ISNULL([DAC].[Handler], '') + '"') FROM [dbo].[DiaryAttachmentCheckouts] [DAC] LEFT OUTER JOIN [dbo].[HandlerNames] [HN] ON [HN].[CODE] = [DAC].[Handler] WHERE [DAC].[TrackReference] = @TrackReference SELECT @OLDNAME = ISNULL(@OLDNAME, 'Unknown Handler') SET @COMMENT = 'CHECKOUT OVERRIDE: ' + @NEWNAME + ' overrode checkout for ' + @OLDNAME INSERT INTO [dbo].[DiaryAttachmentAccess] ([TrackReference], [Handler], [AccessDate], [Comment]) VALUES(@TrackReference, @Handler, GETDATE(), @COMMENT) END DELETE [dbo].[DiaryAttachmentCheckouts] WHERE [TrackReference] = @TrackReference SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_UpdateActionAlarm' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateActionAlarm] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateActionAlarm] (@LinkID varchar(50)) AS /******************************************************************************************************* * Set Keyhouse Risk Management Matter Alarm. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateActionAlarm] * * Copied from : [dbo].[ky_UpdateActionAlarm] * * * * Modification History : * * 2019-04-22 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @MatterRef varchar(20) DECLARE @AlarmDateString varchar(23) DECLARE @AlarmDate datetime DECLARE @Date datetime DECLARE @DYSTARTTIME char(10) DECLARE @NUMVAL int DECLARE @TimeFromDate varchar(12) DECLARE @HourVal varchar(2) DECLARE @MinuteVal varchar(2) DECLARE @SecondVal varchar(2) DECLARE @MilliSecondVal varchar(3) DECLARE @Title NVARCHAR(255) DECLARE @Message NVARCHAR(max) DECLARE @ActionID INT DECLARE @NLinkID INT IF RTRIM(ISNULL(@LinkID, '')) = '' BEGIN SET @NLinkID = 0 END ELSE IF (ISNUMERIC(@LinkID) = 0) OR (CHARINDEX('.', @LinkID) > 0) OR (CHARINDEX(',', @LinkID) > 0) OR (CHARINDEX(':', @LinkID) > 0) OR (CHARINDEX('D', @LinkID) > 0) BEGIN SET @NLinkID = 0 END ELSE BEGIN SET @NLinkID = CONVERT(INT, @LinkID) END IF (@NLinkID <> 0) BEGIN select @ActionID = DIA.[ActionID], @Date = DIA.[date], @DYSTARTTIME = DIA.[DYSTARTTIME], @NUMVAL = case when isnumeric(isnull(DIA.[DYSTARTTIME], '')) = 0 then 0 when convert(int, DIA.[DYSTARTTIME]) > 8640000 then 0 else convert(int, DIA.[DYSTARTTIME]) - 1 END, @TimeFromDate = convert(varchar, DIA.[date], 114), @MatterRef = DIA.[CaseCode], @Title = CONVERT(NVARCHAR(255), CASE WHEN DIA.[ActionType] <> 'E' THEN RTRIM(substring(DIA.[TEXT1], 1, 255)) WHEN DIA.[ProcessType] = 'I' THEN RTRIM(substring('Email From:' + RTrim(DIA.[EmailAddress]) + ' - ' + substring(DIA.[Subject], 1, 255), 1, 255)) ELSE RTRIM(substring('Email To:' + RTrim(substring(DIA.[AddressTo], 1, 255)) + ' - ' + substring(DIA.[Subject], 1, 255), 1, 255)) end), @Message = CONVERT(NVARCHAR(MAX), DIA.[TEXT1]) from [dbo].[diary] DIA where DIA.[ActionID] = @NLinkID SET @HourVal = Right('00' + convert(varchar(2), FLOOR(@NUMVAL / 360000)), 2) SET @MinuteVal = Right('00' + convert(varchar(2), FLOOR((@NUMVAL - (360000 * FLOOR(@NUMVAL / 360000))) / 6000)), 2) SET @SecondVal = Right('00' + convert(varchar(2), FLOOR((@NUMVAL - (6000 * FLOOR(@NUMVAL / 6000))) / 100)), 2) SET @MilliSecondVal = Right('000' + convert(varchar(3), FLOOR((@NUMVAL - (100 * FLOOR(@NUMVAL / 100))) * 10)), 3) SET @AlarmDateString = CONVERT(VARCHAR, @DATE, 112) + ' ' + case when @TimeFromDate <> '00:00:00:000' then @TimeFromDate when @HourVal + ':' + @MinuteVal + ':' + @SecondVal + ':' + @MilliSecondVal <> '00:00:00:000' then @HourVal + ':' + @MinuteVal + ':' + @SecondVal + ':' + @MilliSecondVal when isNull(@DYSTARTTIME, '*') = '*' then '00:00:00:000' when isnumeric(isnull(@DYSTARTTIME, '')) = 1 then '00:00:00:000' when isdate(isnull(@DYSTARTTIME, '')) = 0 then '00:00:00:000' else convert(varchar, convert(datetime, @DYSTARTTIME), 114) End SET @AlarmDate = convert(datetime, @AlarmDateString) DELETE ALM FROM [dbo].[AlarmTypes] ALT INNER JOIN [dbo].[Alarms] ALM LEFT OUTER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[ActionID] = @ActionID AND DEL.[Handler] = ALM.[HandlerCode] ON ALM.[Type] = ALT.[TypeID] WHERE ALT.[Description] = 'Action' AND ALM.[LinkID] = @LinkID AND ( DEL.[ActionID] is null OR DEL.[Status] = 1) UPDATE ALM SET ALM.[OriginalDate] = case when @AlarmDate > ALM.[DeferredDate] then @AlarmDate else ALM.[OriginalDate] end, ALM.[DeferredDate] = case when @AlarmDate > ALM.[DeferredDate] then @AlarmDate else ALM.[DeferredDate] end, ALM.[Title] = @Title, ALM.[Message] = @Message FROM [dbo].[AlarmTypes] ALT INNER JOIN [dbo].[Alarms] ALM ON ALM.[Type] = ALT.[TypeID] WHERE ALT.[Description] = 'Action' AND ALM.[LinkID] = @LinkID END END GO IF OBJECT_ID(N'KAAS_UpdateApproveMoneyLaundering',N'P')IS NOT NULL DROP PROCEDURE [KAAS_UpdateApproveMoneyLaundering] GO CREATE PROCEDURE [KAAS_UpdateApproveMoneyLaundering] ( @Code VARCHAR(20), @IsApproved BIT, @User VARCHAR(10), @Date DATETIME ) /***************************************************************************** Stored Procedure Name : KAAS_UpdateApproveMoneyLaundering Copied From : [ky_NETUpdateApproveMoneyLaundering2] Description: This procedure is used udpate Approve money laundering Last Updated: 12 FEB 2015 Arun- Change NVARCHAR to VARCHAR 24 MAY 2016 Suriya - KEYD-3459-AML Changes 25 MAY 2016 Suriya - KEYD-3459-AML Changes 20 NOV 2017 Arun - KEYD-4889-Facility to update the AML Date by the user 16 JUL 2019 Vinodhan - Created KAAS_UpdateApproveMoneyLaundering *****************************************************************************/ AS BEGIN SET NOCOUNT ON UPDATE Contacts SET Approved = (CASE WHEN @IsApproved = 'True' THEN 1 ELSE 0 END), ApprovedDate = (CASE WHEN @IsApproved = 'True' THEN CASE WHEN @Date = '' THEN GETDATE() ELSE @Date END ELSE null END), ApprovedByUSER = (CASE WHEN @IsApproved = 'True' THEN @User ELSE '' END) WHERE Code = @Code SELECT ISNULL(CON.[Approved], 0) AS [Approved], CONVERT(VARCHAR(11), CON.[ApprovedDate], 20) AS [ApprovedDate], ISNULL(H.NAME,'') AS [ApprovedByuser] FROM Contacts CON LEFT JOIN Handlers H ON H.CODE = CON.ApprovedByUSER WHERE CON.Code = @Code SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_UpdateCaseInformation',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_UpdateCaseInformation] GO CREATE PROCEDURE [dbo].[KAAS_UpdateCaseInformation] (@ActionId INT, @Text1 VARCHAR(MAX), @DATE DATETIME) AS /******************************************************************************************************* * This procedure is used to Update Case Info in [dbo].[Diary]. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateCaseInformation] * * Copied from : NA * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN IF EXISTS(SELECT TOP 1 1 FROM Diary WHERE ACTIONID = @ActionId) BEGIN UPDATE [dbo].[Diary] SET [TEXT1] = @Text1, [DATE] = @DATE WHERE ACTIONID = @ActionId END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateClientChargeOutRates' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateClientChargeOutRates] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateClientChargeOutRates] (@ClientCode VARCHAR(20), @OldFeeEarnerCode VARCHAR(20), @OldRate DECIMAL(18,2), @NewFeeEarnerCode VARCHAR(20), @NewRate DECIMAL(18,2), @ModifyBy VARCHAR(20), @EffectiveDate DATETIME) AS /******************************************************************************************************* * This stored procedure is used to update client charge out rates. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateClientChargeOutRates] * * Copied from : [dbo].[ky_NETCONUpdateClientChargeOutRates] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[ClientChargeOutRates] [CCOR] WHERE [CCOR].[ClientCode] = @ClientCode AND [CCOR].[FeCode] = @OldFeeEarnerCode AND [CCOR].[Rate] = @NewRate AND [CCOR].[ModifyBy] = @ModifyBy) BEGIN UPDATE [CCOR] SET [CCOR].[Rate] = @NewRate, [CCOR].[ModifyDate] = GETDATE(), [CCOR].[ModifyBy] = @ModifyBy, [CCOR].[LastRate] = @OldRate, [CCOR].[EffectiveDate] = @EffectiveDate FROM [dbo].[ClientChargeOutRates] [CCOR] WHERE [CCOR].[ClientCode] = @ClientCode AND [CCOR].[FeCode] = @OldFeeEarnerCode AND [CCOR].[Rate] = @OldRate END ELSE BEGIN UPDATE [CCOR] SET [CCOR].[Rate] = @NewRate, [CCOR].[ModifyDate] = GETDATE(), [CCOR].[ModifyBy] = @ModifyBy, [CCOR].[EffectiveDate] = @EffectiveDate FROM [dbo].[ClientChargeOutRates] [CCOR] WHERE [CCOR].[ClientCode] = @ClientCode AND [CCOR].[FeCode] = @OldFeeEarnerCode AND [CCOR].[Rate] = @OldRate END --UPDATE TIME ENTRY BASED ON UPDATED ENTRY UPDATE [TIE] SET [TIE].[RATE] = @NewRate, [TIE].[CHARGE] = ([TIE].[TIME] / 60.00) * @NewRate FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[TimeEntry] [TIE] INNER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [TIE].[FEEEARN] AND ( [HAN].[CODE] = @OldFeeEarnerCode OR [HAN].[ChargeGroup] = @OldFeeEarnerCode) ON [TIE].[Matter] = [MAT].[Code] AND ISNULL([TIE].[BILLED], 0) = 0 AND [TIE].[TimeOrCharge] = 'T' AND [TIE].[Date] >= @EffectiveDate AND ISNULL([TIE].[InvoiceNo], 0) = 0 WHERE [MAT].[ClientCode] = @ClientCode AND ISNULL([MAT].[ChargeOutRateInd], 'N') <> 'Y' SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_UpdateClientContactDetailsForBank',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_UpdateClientContactDetailsForBank] GO CREATE PROCEDURE [dbo].[KAAS_UpdateClientContactDetailsForBank] (@XML NVARCHAR(MAX)) AS /******************************************************************************************************* * Inserts/Updates the details for a Client Contact. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateClientContactDetailsForBank] * * Copied from : [dbo].[ky_NETSPUpdateClientContactDetails] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN --SET @XML = N' -- example --' DECLARE @iSL INT DECLARE @NUMCONTACT INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @NUMCONTACT = [CLNUMCONTACT] FROM OPENXML(@iSL, N'ClientContact') WITH ([CLNUMCONTACT] INT '@contactnumber') IF (@NUMCONTACT IS NULL) BEGIN INSERT INTO [dbo].[ClientContacts] ([CLCODE], [CLNUMCONTACT], [BankName], [BankAddress], [BankSortCode], [BankAccNo], [IBAN], [BIC], [EFTEmailAddress], [BankType]) SELECT [SRC].[CLCODE], [MX].[NEWNUM], CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN NULL ELSE [SRC].[BankName] END, CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN NULL ELSE [SRC].[BankAddress] END, CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN NULL ELSE [SRC].[BankSortCode] END, CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN NULL ELSE [SRC].[BankAccNo] END, CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN NULL ELSE [SRC].[IBAN] END, CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN NULL ELSE [SRC].[BIC] END, CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN NULL ELSE [SRC].[EFTEmailAddress] END, CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN NULL ELSE [SRC].[BankType] END FROM OPENXML(@iSL, N'ClientContact') WITH ([CLCODE] VARCHAR(10) '@clientcode', [CLNUMCONTACT] INT '@contactnumber', [HasBankDetails] VARCHAR(1) '@hasbankdetails', [BankName] VARCHAR(60) '@bankname', [BankAddress] VARCHAR(120) '@bankaddress', [BankSortCode] VARCHAR(20) '@banksortcode', [BankAccNo] VARCHAR(20) '@bankaccno', [IBAN] VARCHAR(34) '@iban', [BIC] VARCHAR(20) '@bic', [EFTEmailAddress] VARCHAR(150) '@eftemailaddress', [BankType] VARCHAR(1) '@banktype') [SRC] CROSS APPLY (SELECT ISNULL(MAX([OV].[CLNUMCONTACT]), 0) + 1 AS [NEWNUM] FROM [dbo].[ClientContacts] [OV] WHERE [OV].[CLCODE] = [SRC].[CLCODE]) [MX] WHERE [SRC].[CLNUMCONTACT] IS NULL SELECT @NUMCONTACT = [CLNUMCONTACT] FROM [dbo].[ClientContacts] [CC] WHERE [CC].[id] = SCOPE_IDENTITY() END ELSE BEGIN -- Please note that [CLSSNUMBER] and [Marketing] appear to be obsolete fields. They are not maintained through the Framework -- Just in case anybody still uses these for Old data, we won't update these if they weren't passed in. UPDATE [CC] SET [CC].[BankName] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN [CC].[BankName] ELSE [SRC].[BankName] END, [CC].[BankAddress] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN [CC].[BankAddress] ELSE [SRC].[BankAddress] END, [CC].[BankSortCode] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN [CC].[BankSortCode] ELSE [SRC].[BankSortCode] END, [CC].[BankAccNo] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN [CC].[BankAccNo] ELSE [SRC].[BankAccNo] END, [CC].[IBAN] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN [CC].[IBAN] ELSE [SRC].[IBAN] END, [CC].[BIC] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN [CC].[BIC] ELSE [SRC].[BIC] END, [CC].[EFTEmailAddress] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN [CC].[EFTEmailAddress] ELSE [SRC].[EFTEmailAddress] END, [CC].[BankType] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1' THEN [CC].[BankType] ELSE [SRC].[BankType] END FROM OPENXML(@iSL, N'ClientContact') WITH ([CLCODE] VARCHAR(10) '@clientcode', [CLNUMCONTACT] INT '@contactnumber', [HasBankDetails] VARCHAR(1) '@hasbankdetails', [BankName] VARCHAR(60) '@bankname', [BankAddress] VARCHAR(120) '@bankaddress', [BankSortCode] VARCHAR(20) '@banksortcode', [BankAccNo] VARCHAR(20) '@bankaccno', [IBAN] VARCHAR(34) '@iban', [BIC] VARCHAR(20) '@bic', [EFTEmailAddress] VARCHAR(150) '@eftemailaddress', [BankType] VARCHAR(1) '@banktype') [SRC] INNER JOIN [dbo].[ClientContacts] [CC] ON [CC].[CLCODE] = [SRC].[CLCODE] AND [CC].[CLNUMCONTACT] = [SRC].[CLNUMCONTACT] END BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SELECT @NUMCONTACT AS [CLNUMCONTACT] END GO IF OBJECT_ID(N'KAAS_UpdateClientContactDetailsForGeneral',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_UpdateClientContactDetailsForGeneral] GO CREATE PROCEDURE [dbo].[KAAS_UpdateClientContactDetailsForGeneral] (@XML NVARCHAR(MAX)) AS /******************************************************************************************************* * Inserts/Updates the details for a Client Contact. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateClientContactDetailsForGeneral] * * Copied from : [dbo].[ky_NETSPUpdateClientContactDetails] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * * 2019-08-09 Dheepin Vijith K Modified ''date will save Null in the table in update section. * * 2021-05-13 Sadiq Modified Added primary Key validation for insertion in client contact (12184) *******************************************************************************************************/ BEGIN --SET @XML = N' -- example --' DECLARE @iSL INT DECLARE @NUMCONTACT INT DECLARE @CASECODE VARCHAR(8) DECLARE @MAXCOUNT INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @NUMCONTACT = [CLNUMCONTACT] FROM OPENXML(@iSL, N'ClientContact') WITH ([CLNUMCONTACT] INT '@contactnumber') SELECT @CASECODE = [CLCODE] FROM OPENXML(@iSL, N'ClientContact') WITH ([CLCODE] VARCHAR(10) '@clientcode') IF (@NUMCONTACT IS NULL) BEGIN SELECT @MAXCOUNT= ISNULL(MAX([OV].[CLNUMCONTACT]), 0) + 1 FROM [dbo].[ClientContacts] [OV] WHERE [OV].[CLCODE] = @CASECODE IF NOT EXISTS(SELECT CLCODE from [dbo].[ClientContacts] where CLCODE=@CASECODE AND CLNUMCONTACT=@MAXCOUNT) BEGIN INSERT INTO [dbo].[ClientContacts] ([CLCODE], [CLNUMCONTACT], [CLINITS], [CLTITLE], [CLNAMECON], [FIRSTNAME], [SURNAME], [CLSALUTE], [Address], [County], [PostalCode], [DXREF], [MartialStatus], [PPSNo], [HomePhone], [WorkPhone], [FaxNumber], [Mobile], [EmailAddress], [Dob], [DateofDeath], [MarrigeDate], [Occupation]) SELECT [SRC].[CLCODE], [MX].[NEWNUM], [SRC].[CLINITS], [SRC].[CLTITLE], [SRC].[CLNAMECON], [SRC].[FIRSTNAME], [SRC].[SURNAME], [SRC].[CLSALUTE], [SRC].[Address], [SRC].[County], [SRC].[PostalCode], [SRC].[DXREF], [SRC].[MartialStatus], [SRC].[PPSNo], [SRC].[HomePhone], [SRC].[WorkPhone], [SRC].[FaxNumber], [SRC].[Mobile], [SRC].[EmailAddress], (CASE WHEN [SRC].[Dob] = '' THEN NULL ELSE [SRC].[Dob] END) AS [Dob], (CASE WHEN [SRC].[DateofDeath] = '' THEN NULL ELSE [SRC].[DateofDeath] END) AS [DateofDeath], (CASE WHEN [SRC].[MarrigeDate] = '' THEN NULL ELSE [SRC].[MarrigeDate] END) AS [MarrigeDate], [SRC].[Occupation] FROM OPENXML(@iSL, N'ClientContact') WITH ([CLCODE] VARCHAR(10) '@clientcode', [CLNUMCONTACT] INT '@contactnumber', [CLINITS] VARCHAR(5) '@clinits', [CLTITLE] VARCHAR(10) '@cltitle', [CLNAMECON] VARCHAR(35) '@clnamecon', [FIRSTNAME] VARCHAR(20) '@firstname', [SURNAME] VARCHAR(20) '@surname', [CLSALUTE] VARCHAR(30) '@clsalute', [Address] VARCHAR(500) '@address', [County] VARCHAR(100) '@county', [PostalCode] VARCHAR(100) '@postalcode', [DXREF] VARCHAR(30) '@dxref', [MartialStatus] VARCHAR(3) '@maritalstatus', [PPSNo] VARCHAR(20) '@ppsno', [HomePhone] VARCHAR(50) '@homephone', [WorkPhone] VARCHAR(50) '@workphone', [FaxNumber] VARCHAR(50) '@faxnumber', [Mobile] VARCHAR(50) '@mobile', [EmailAddress] VARCHAR(100) '@emailaddress', [Dob] DATETIME '@dob', [DateofDeath] DATETIME '@dateofdeath', [MarrigeDate] DATETIME '@marriagedate', [Occupation] VARCHAR(100) '@occupation') [SRC] CROSS APPLY (SELECT ISNULL(MAX([OV].[CLNUMCONTACT]), 0) + 1 AS [NEWNUM] FROM [dbo].[ClientContacts] [OV] WHERE [OV].[CLCODE] = [SRC].[CLCODE]) [MX] WHERE [SRC].[CLNUMCONTACT] IS NULL END SELECT @NUMCONTACT = [CLNUMCONTACT] FROM [dbo].[ClientContacts] [CC] WHERE [CC].[id] = SCOPE_IDENTITY() END ELSE BEGIN -- Please note that [CLSSNUMBER] and [Marketing] appear to be obsolete fields. They are not maintained through the Framework -- Just in case anybody still uses these for Old data, we won't update these if they weren't passed in. UPDATE [CC] SET [CC].[CLINITS] = [SRC].[CLINITS], [CC].[CLTITLE] = [SRC].[CLTITLE], [CC].[CLNAMECON] = [SRC].[CLNAMECON], [CC].[FIRSTNAME] = [SRC].[FIRSTNAME], [CC].[SURNAME] = [SRC].[SURNAME], [CC].[CLSALUTE] = [SRC].[CLSALUTE], [CC].[Address] = [SRC].[Address], [CC].[County] = [SRC].[County], [CC].[PostalCode] = [SRC].[PostalCode], [CC].[DXREF] = [SRC].[DXREF], [CC].[MartialStatus] = [SRC].[MartialStatus], [CC].[PPSNo] = [SRC].[PPSNo], [CC].[HomePhone] = [SRC].[HomePhone], [CC].[WorkPhone] = [SRC].[WorkPhone], [CC].[FaxNumber] = [SRC].[FaxNumber], [CC].[Mobile] = [SRC].[Mobile], [CC].[EmailAddress] = [SRC].[EmailAddress], [CC].[Dob]=(CASE WHEN [SRC].[Dob] = '' THEN NULL ELSE [SRC].[Dob] END), [CC].[DateofDeath]=(CASE WHEN [SRC].[DateofDeath] = '' THEN NULL ELSE [SRC].[DateofDeath] END), [CC].[MarrigeDate]=(CASE WHEN [SRC].[MarrigeDate] = '' THEN NULL ELSE [SRC].[MarrigeDate] END), [CC].[Occupation] = [SRC].[Occupation] FROM OPENXML(@iSL, N'ClientContact') WITH ([CLCODE] VARCHAR(10) '@clientcode', [CLNUMCONTACT] INT '@contactnumber', [CLINITS] VARCHAR(5) '@clinits', [CLTITLE] VARCHAR(10) '@cltitle', [CLNAMECON] VARCHAR(35) '@clnamecon', [FIRSTNAME] VARCHAR(20) '@firstname', [SURNAME] VARCHAR(20) '@surname', [CLSALUTE] VARCHAR(30) '@clsalute', [Address] VARCHAR(500) '@address', [County] VARCHAR(100) '@county', [PostalCode] VARCHAR(100) '@postalcode', [DXREF] VARCHAR(30) '@dxref', [MartialStatus] VARCHAR(3) '@maritalstatus', [PPSNo] VARCHAR(20) '@ppsno', [HomePhone] VARCHAR(50) '@homephone', [WorkPhone] VARCHAR(50) '@workphone', [FaxNumber] VARCHAR(50) '@faxnumber', [Mobile] VARCHAR(50) '@mobile', [EmailAddress] VARCHAR(100) '@emailaddress', [Dob] DATETIME '@dob', [DateofDeath] DATETIME '@dateofdeath', [MarrigeDate] DATETIME '@marriagedate', [Occupation] VARCHAR(100) '@occupation') [SRC] INNER JOIN [dbo].[ClientContacts] [CC] ON [CC].[CLCODE] = [SRC].[CLCODE] AND [CC].[CLNUMCONTACT] = [SRC].[CLNUMCONTACT] END BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SELECT @NUMCONTACT AS [CLNUMCONTACT] END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateClientNameCaseDescription' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateClientNameCaseDescription] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateClientNameCaseDescription] (@MatterCode VARCHAR(20), @Name VARCHAR(256), @Description VARCHAR(100), @Result INT OUT ) AS /******************************************************************************************************* * Updates the Client Name or Case Description based on the Requirement * * * * Stored Procedure Name : [dbo].[KAAS_UpdateClientNameCaseDescription] * * * * Modification History : * * 2019-07-08 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ClientCode VARCHAR(10) SET @ClientCode = (SELECT SUBSTRING(@MatterCode, 0, (CHARINDEX('/',@MatterCode)))); SET @Result=0 IF ISNULL(@Name,'')<>'' BEGIN UPDATE [CL] SET [CL].[CLNAME]=@Name FROM client [CL] WHERE [CL].CLCODE=@ClientCode SET @Result=1 END IF ISNULL(@Name,'')<>'' BEGIN UPDATE [C] SET [C].[Name]=@Name FROM Contacts [C] WHERE [C].Code=@ClientCode SET @Result=2 END IF ISNULL(@Description,'')<>'' BEGIN UPDATE [MAT] SET [MAT].[Description]=@Description FROM matters [MAT] WHERE [MAT].Code=@MatterCode SET @Result=3 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_UpdateContactcategories',N'P')IS NOT NULL DROP PROCEDURE KAAS_UpdateContactcategories GO CREATE PROCEDURE KAAS_UpdateContactcategories ( @CatId INT, @ClientCode VARCHAR(10), @CTCode VARCHAR(6), @CCode VARCHAR(10), @Date DATETIME = null, @Prompt1 VARCHAR(60), @Prompt2 VARCHAR(60), @Prompt3 VARCHAR(60), @Prompt4 VARCHAR(60), @Prompt5 VARCHAR(60), @Prompt6 VARCHAR(60), @Prompt7 VARCHAR(60), @Prompt8 VARCHAR(60), @Prompt9 VARCHAR(60), @Prompt10 VARCHAR(60), @ContactNum INT ) AS /******************************************************************************************************* * This procedure is used to udpate contact categories. * * * * * * Stored Procedure Name : [dbo].[KAAS_UpdateContactcategories] * * Copied from : [dbo].[ky_NETCONUpdateContactcategories] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * * 2019-11-11 Dheepin Vijith K @Date is changed into nullable parameter. * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS(SELECT top 1 1 FROM ClientContactCategories WHERE CCCategoryId = @CatId ) BEGIN UPDATE ClientContactCategories SET [CategoryType] = @CTCode , [Category] = @CCode , [Date] = @Date , [FieldValue1] = @Prompt1 , [FieldValue2] = @Prompt2 , [FieldValue3] = @Prompt3 , [FieldValue4] = @Prompt4 , [FieldValue5] = @Prompt5 , [FieldValue6] = @Prompt6 , [FieldValue7] = @Prompt7 , [FieldValue8] = @Prompt8 , [FieldValue9] = @Prompt9 , [FieldValue10] = @Prompt10 WHERE CCCategoryId = @CatId END ELSE BEGIN INSERT INTO ClientContactCategories ( [ClientCode], [ContactNum], [CategoryType], [Category], [Date], [FieldValue1], [FieldValue2], [FieldValue3], [FieldValue4], [FieldValue5], [FieldValue6], [FieldValue7], [FieldValue8], [FieldValue9], [FieldValue10] ) VALUES ( @ClientCode, @ContactNum, @CTCode, @CCode, @Date, @Prompt1, @Prompt2, @Prompt3, @Prompt4, @Prompt5, @Prompt6, @Prompt7, @Prompt8, @Prompt9, @Prompt10 ) END SET NOCOUNT OFF END GO IF OBJECT_ID(N'[KAAS_UpdateCrossRef]',N'P')IS NOT NULL DROP PROCEDURE [KAAS_UpdateCrossRef] GO CREATE PROCEDURE [dbo].[KAAS_UpdateCrossRef] (@OldCode VARCHAR(10), @OldLinkTo VARCHAR(10), @NewLinkTo VARCHAR(10), @Relationship VARCHAR(50), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to UPDATE cross reference, this procedure will return result "1" IF * * successful UDPATE, otherwise return its default value "0" * * * * Stored Procedure Name : [dbo].[KAAS_UpdateCrossRef] * * Copied from : [dbo].[ky_NETCONUpdateCrossRef] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS (SELECT TOP 1 1 FROM [dbo].[ContactLinks] CL WHERE CL.[CONTACTA] = @OldCode AND CL.[CONTACTB] = @OldLinkTo) BEGIN UPDATE CL SET CL.[CONTACTB] = @NewLinkTo, CL.[RELATE] = @Relationship FROM [dbo].[ContactLinks] CL WHERE CL.[CONTACTA] = @OldCode AND CL.[CONTACTB] = @OldLinkTo UPDATE CL SET CL.[CONTACTA] = @NewLinkTo, CL.[RELATE] = @Relationship FROM [dbo].[ContactLinks] CL WHERE CL.[CONTACTA] = @OldLinkTo AND CL.[CONTACTB] = @OldCode SET @Result = 1 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateDiaryDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateDiaryDetails] END GO Create PROCEDURE [dbo].[KAAS_UpdateDiaryDetails] (@CaseCode VARCHAR(20), @DraftBillNo INT, @BillHeaderBillNo VARCHAR(20), @BillType VARCHAR(1)) AS /******************************************************************************************************* * * ky_NETUpdateDiaryDetails * * This stored procedure is used to update Diary and Diary delegations tables when a bill is approved. * * Modification History * 2016-12-20 Arun Created * 2016-12-21 Arun Alignment issue fixed * 2018-05-10 John No longer setting [matters].[OpenInvoiceNo] at this stage - KEYD-4894 * 2019-11-13 Rajesh Copied from [ky_NETUpdateDiaryDetails] *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Now DATETIME DECLARE @NowDateOnly DATETIME DECLARE @NowClarionTime CHAR(10) DECLARE @ActionID INT SET @Now = GETDATE() -- date only, time SET to 00:00:00 SET @NowDateOnly = CONVERT(DATETIME, CONVERT(VARCHAR, @Now, 112)) -- Clarion compliant representation of the Time part of the date/time SET @NowClarionTime = CONVERT(CHAR(10), [dbo].[KAAS_ConvertTimeToClarion](@Now)) SET @ActionID =(SELECT [Actionid] FROM [dbo].[Diary] WHERE [DRAFTBILLNO] = @DraftBillNo AND [CASECODE] = @CaseCode) UPDATE [DIA] SET [DIA].[STATUS] = 1, [DIA].[PROCESSSTATUS] = 0, [DIA].[text1] = (CASE WHEN @BillType = 'I' THEN 'Invoice No: ' + @BillHeaderBillNo WHEN @BillType='C' THEN 'Credit Not No: ' + @BillHeaderBillNo END) FROM [dbo].[Diary] [DIA] WHERE [DIA].[DRAFTBILLNO] = @DraftBillNo AND [DIA].[CASECODE] = @CaseCode UPDATE [DEL] SET [DEL].[DATER] = @NowDateOnly, [DEL].[TIMER] = @NowClarionTime, [DEL].[STATUS] = 1 FROM [dbo].[DiaryDelegations] [DEL] WHERE [DEL].[ACTIONID] = @ActionID AND ISNULL([DEL].[Status], 0) = 0 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_UpdateDocumentProperties',N'P')IS NOT NULL DROP PROCEDURE KAAS_UpdateDocumentProperties GO CREATE PROCEDURE [dbo].[KAAS_UpdateDocumentProperties] (@TrackReference VARCHAR(10), @Document VARCHAR(2000), @DocumentDate VARCHAR(17), @ClassCode VARCHAR(10), @Subject VARCHAR(2000), @DocumentPath VARCHAR(1000), @CloudOrHybrid INT, @Result VARCHAR(255) OUTPUT) AS /************************************************************************************************************ * * ky_NETSPUpdateDocManagerDoc * * Updates a Diary Attachment entry FROM the Document Manager screen in the Framework * * Modification History * ????-??-?? Sridharan Created * 2015-04-08 Sridharan KEYD-2109 Added a new parameter to get modified filepath * and change the relevant column in the Table * 2015-04-15 Sridharan Added a new output parameter to get the File path * 2016-03-22 Sridharan KEYD-3422 Changes to the Firm Undertakings Grid and Form * 2017-08-15 Pino Carafa a) Procedure was practically unreadable * 2017-08-15 Pino Carafa b) Remove irrelevant SELECT statement (proc always executed as NonQuery) * 2017-08-15 Pino Carafa c) Replace repeated SET @var = (SELECT ...) statements with a single SELECT * 2017-08-15 Pino Carafa d) Make description larger. VARCHAR(100) may not be enough. * 2019-05-27 Arun Copied from ky_NETSPUpdateDocManagerDoc procedure * 2021-05-18 Sadiq Added condition for Hybrid or cloud and update document accordingly . (12154) * 2021-10-06 Arun V Set Context info ************************************************************************************************************/ BEGIN DECLARE @LEN INT DECLARE @FPATH VARCHAR(1000) DECLARE @ActionID INT DECLARE @ActionType VARCHAR(1) DECLARE @UserName VARCHAR(20) DECLARE @HandlerCode VARCHAR(20) DECLARE @OLDDocument VARCHAR(500) DECLARE @OLDClass VARCHAR(5) DECLARE @OLDDate VARCHAR(11) DECLARE @Description VARCHAR(500) DECLARE @DescriptionTo VARCHAR(500) -- 2017-08-15 c) SELECT @FPATH = [DAT].[FILEPATH], @Actionid = [DAT].[DiaryID], @ActionType = ISNULL([DIA].[ACTIONTYPE], ''), @UserName = RTRIM(ISNULL([HAN].[NAME], ISNULL([DIA].[FNCODE], ''))), @HandlerCode = ISNULL([DIA].[FNCODE], ''), @OLDDocument = [DAT].[DOCUMENT], @OLDClass = [DAT].[DOCCLASS], @OLDDate = CONVERT(VARCHAR(11), CONVERT(DATETIME, [DAT].[DATEENTERED]), 106), @Description = 'Attachment Changed From: ' + CHAR(13) + CHAR(10) + 'Date: ' + CONVERT(VARCHAR(11), CONVERT(DATETIME, [DAT].[DATEENTERED]), 106) + CHAR(13) + CHAR(10) + 'Document Name: ' + [DAT].[DOCUMENT] + CHAR(13) + CHAR(10) + 'Document Class: ' + [DAT].[DOCCLASS] + CHAR(13) + CHAR(10) FROM [dbo].[DiaryAttachments] [DAT] LEFT OUTER JOIN [dbo].[diary] [DIA] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [DIA].[FNCODE] ON [DIA].[ACTIONID] = [DAT].[DiaryID] WHERE [DAT].[TrackReference] = @TrackReference DECLARE @HandlerBin VARBINARY(128) SET @HandlerBin = CONVERT(VARBINARY(128), @HandlerCode) set CONTEXT_INFO @HandlerBin SET @DescriptionTo = 'Attachment Changed To: ' + CHAR(13) + CHAR(10) + 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME, @DocumentDate), 106) + CHAR(13) + CHAR(10) + 'Document Name: ' + RTRIM(ISNULL(@DOCUMENT, '')) + CHAR(13) + CHAR(10) + 'Document Class: ' + RTRIM(ISNULL(@ClassCode, '')) + CHAR(13) + CHAR(10) IF NOT (@DocumentPath = '***NOCHANGE***') BEGIN SET @FPATH = [dbo].[KAAS_FN_GETFILEPATH](@DocumentPath, @FPATH) END IF NOT (@FPATH = 'NOCHANGE') BEGIN --2017-08-15 b) what??? --SELECT * FROM diary WHERE ACTIONID = @ActionID AND ACTIONTYPE = 'U' IF @ActionType = 'U' --2017-08-15 c) BEGIN IF NOT ( RTRIM(@Document) = RTRIM(@OLDDocument) AND RTRIM(@ClassCode) = RTRIM(@OLDClass) AND RTRIM(@OLDDate) = CONVERT(VARCHAR(11), CONVERT(DATETIME, @DocumentDate), 106)) BEGIN INSERT INTO [dbo].[UndertakingLog] ([UndertakingID], [FieldChanges], [FromValue], [ToValue], [ByWho], [ModifiedDate]) VALUES(@ActionID, 'Documents Edited', @Description, @DescriptionTo, @UserName, GETDATE()) END END SELECT @LEN = CASE WHEN [SC].[system_type_id] = 35 THEN 2000 ELSE [SC].[max_length] END FROM SYS.[objects] [SO] INNER JOIN SYS.[columns] [SC] ON [SC].[object_id] = [SO].[object_id] AND [SC].[name] = 'Document' WHERE [SO].[name] = 'DiaryAttachments' IF(@CloudOrHybrid=0) -- 0 is cloud BEGIN UPDATE [DAT] SET [DAT].[DATEENTERED] = @DocumentDate, [DAT].[DOCUMENT] = CASE WHEN @Document = '***NOCHANGE***' THEN [DAT].[DOCUMENT] ELSE SUBSTRING(@Document, 1, @LEN) END, [DAT].[DOCCLASS] = @ClassCode FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[TrackReference] = CONVERT(INT, @TrackReference) END ELSE -- Hybrid one BEGIN UPDATE [DAT] SET [DAT].[DATEENTERED] = @DocumentDate, [DAT].[DOCUMENT] = CASE WHEN @Document = '***NOCHANGE***' THEN [DAT].[DOCUMENT] ELSE SUBSTRING(@Document, 1, @LEN) END, [DAT].[FILEPATH] = CASE WHEN @DocumentPath = '***NOCHANGE***' THEN [DAT].[FILEPATH] ELSE @FPATH END, [DAT].[DOCCLASS] = @ClassCode FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[TrackReference] = CONVERT(INT, @TrackReference) END IF (@Subject <> '***NOCHANGE***') BEGIN SELECT @LEN = CASE WHEN SC.[system_type_id] = 35 THEN 2000 ELSE SC.[max_length] END FROM SYS.[objects] [SO] INNER JOIN SYS.[columns] [SC] ON [SC].[object_id] = [SO].[object_id] AND [SC].[name] = 'SUBJECT' WHERE [SO].[name] = 'diary' UPDATE [DIA] SET [DIA].[SUBJECT] = SUBSTRING(@Subject, 1, @LEN) FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID END SET @Result = SUBSTRING(@FPATH,LEN(@FPATH)-CHARINDEX ('\',REVERSE(@FPATH))+2,LEN(@FPATH)) END ELSE BEGIN SET @Result = 'NOCHANGE' END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateEstimateGiven' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateEstimateGiven] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateEstimateGiven] ( @CaseCode VARCHAR(20), @IsEstimateGiven BIT ) AS /******************************************************************************************************************************** * * Copied from ky_NETUpdateEstimateGiven * * Used to udpate Estimate Given from Critical information page * * Modification History * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2020-01-03 Ganapathy Recreated ********************************************************************************************************************************/ BEGIN UPDATE matters SET Section68 = (CASE WHEN @IsEstimateGiven = 'True' THEN 'Y' ELSE 'N' END) WHERE Code = @CaseCode END GO IF OBJECT_ID(N'KAAS_UpdateExternalDictations',N'P')IS NOT NULL DROP PROCEDURE KAAS_UpdateExternalDictations GO CREATE PROCEDURE KAAS_UpdateExternalDictations ( @TrackReference INT, @Status INT ) AS /******************************************************************************************************* * This stored procedure is used to Update External Dictations Status. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateExternalDictations] * * Copied from : [dbo].[ky_NETUpdateOfficers] * * * * Modification History : * * 2024-05-22 Vignesh M Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON UPDATE ExternalDictations SET [Status] = @Status WHERE TrackReference = @TrackReference SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateHandlerGroupMembership' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateHandlerGroupMembership] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateHandlerGroupMembership] (@Handler VARCHAR(10), @AllHandlers BIT, @groupname VARCHAR(100), @include BIT) AS /**************************************************************************************************************** * * [dbo].[KAAS_UpdateHandlerGroupMembership] * Includes or Excludes a handler (or "all handlers") from a particular Control Group * * Modification History * 2023-04-19 Sadiq Created ****************************************************************************************************************/ BEGIN DECLARE @groupid int SET @Handler = CASE WHEN @AllHandlers = 1 THEN '' ELSE ISNULL(@Handler, '') END SELECT @groupid = CTG.[id] FROM [dbo].[KHCtlGroups] CTG WHERE CTG.[GroupName] = @groupname IF (@groupid is not null) BEGIN IF (@include = 1) BEGIN DELETE CTH FROM [dbo].[KHCtlHandlers] CTH WHERE CTH.[Handler] = @Handler AND CTH.[AllHandlers] = @AllHandlers AND CTH.[groupid] = @groupid END ELSE BEGIN INSERT INTO [dbo].[KHCtlHandlers] ([Handler], [AllHandlers], [groupid]) SELECT CTHN.[Handler], CTHN.[AllHandlers], CTHN.[groupid] FROM (SELECT @Handler AS [Handler], @AllHAndlers AS [AllHandlers], @groupid AS [groupid]) CTHN LEFT OUTER JOIN [dbo].[KHCtlHandlers] CTHO ON CTHO.[Handler] = CTHN.[Handler] AND CTHO.[AllHandlers] = CTHN.[AllHandlers] AND CTHO.[groupid] = CTHN.[groupid] WHERE CTHO.[groupid] IS NULL END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateMatterChargeOutRates' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateMatterChargeOutRates] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateMatterChargeOutRates] (@MatterCode VARCHAR(30), @ClientCode VARCHAR(30), @OldFeeEarnerCode VARCHAR(20), @OldRate DECIMAL(18,2), @NewFeeEarnerCode VARCHAR(20), @EffectiveDate DATETIME, @NewRate DECIMAL(18,2), @ModifyBy VARCHAR(24), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to update matter charge out rates. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateMatterChargeOutRates] * * Copied from : [dbo].[ky_NETMATUpdateMatterChargeOutRates] * * * * Modification History : * * 2019-05-23 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[MatterChargeOutRates] [MCOR] WHERE [MCOR].[ClientCode] = @ClientCode AND [MCOR].[FeCode] = @OldFeeEarnerCode AND [MCOR].[ModifyBy] = @ModifyBy AND [MCOR].[MatterCode] = @MatterCode AND [MCOR].[Rate] = @NewRate) BEGIN UPDATE [MCOR] SET [MCOR].[Rate] = @NewRate, [MCOR].[EffectiveDate] = @EffectiveDate, [MCOR].[ModifyBy] = @ModifyBy, [MCOR].[ModifyDate] = GETUTCDATE(), [MCOR].[LastRate] = @OldRate FROM [dbo].[MatterChargeOutRates] [MCOR] WHERE [MCOR].[ClientCode] = @ClientCode AND [MCOR].[FeCode] = @OldFeeEarnerCode AND [MCOR].[Rate] = @OldRate AND [MCOR].[MatterCode] = @MatterCode END ELSE BEGIN UPDATE [MCOR] SET [MCOR].[Rate] = @NewRate, [MCOR].[EffectiveDate] = @EffectiveDate, [MCOR].[ModifyBy] = @ModifyBy, [MCOR].[ModifyDate] = GETUTCDATE() FROM [dbo].[MatterChargeOutRates] [MCOR] WHERE [MCOR].[ClientCode] = @ClientCode AND [MCOR].[FeCode] = @OldFeeEarnerCode AND [MCOR].[Rate] = @OldRate AND [MCOR].[MatterCode] = @MatterCode END --UPDATE TIME ENTRY BASED ON NEW ENTRY UPDATE [TIE] SET [TIE].[RATE] = @NewRate, [TIE].[CHARGE] = ([TIE].[TIME] / 60.00) * @NewRate FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[TimeEntry] [TIE] INNER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = [TIE].[FEEEARN] AND ( [HAN].[CODE] = @OldFeeEarnerCode OR [HAN].[ChargeGroup] = @OldFeeEarnerCode) ON [TIE].[Matter] = [MAT].[Code] AND ISNULL([TIE].[BILLED], 0) = 0 AND [TIE].[TimeOrCharge] = 'T' AND [TIE].[Date] >= @EffectiveDate AND ISNULL([TIE].[InvoiceNo], 0) = 0 WHERE [MAT].[Code] = @MatterCode SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_UpdateMatterDetailsAdminTab',N'P')IS NOT NULL DROP PROCEDURE KAAS_UpdateMatterDetailsAdminTab GO CREATE PROCEDURE [dbo].[KAAS_UpdateMatterDetailsAdminTab] (@MatterCode VARCHAR(20), @ValueToClient DECIMAL(17,2), @Started DATETIME, @StatuteLimit DATETIME, @DepositName VARCHAR(30), @EstimatedFees DECIMAL(17,2), @FixedFee VARCHAR(1), @ExpBillDate DATETIME, @IsEstimateGiven BIT, @IsSection13 BIT, @OutlayBudget DECIMAL(17,2), @Type VARCHAR(10), @Comments VARCHAR(3000), @EffectivelyComplete BIT, @ShowInAlert CHAR(1), @UserCode VARCHAR(6), @FeeType INT, @Result TINYINT OUTPUT) AS /************************************************************************************************************************ * Created By : Arun V * Date : 15May2014 10:27 AM * Description : This procedure is used to update matter details based on matter code, successful updation it will * Return 1 * * * Modification History * ----------------------------------------------------- * Date | Modified By | Description * ----------------------------------------------------- * 20June2014 Arun.V Comment param size has been incresed to 3000 from 300 * 24May2019 Arun V Copied from ky_NETMATUpdateMatterDetails * 26Nov2019 Arun V Have modify the data type based on table(@Estimate fee, @outlaybudget and @ValueToClient) * 12Dec2020 Sadiq Added FeeType value to update in matters table * 06May2021 Aakif Updated Statute Warning key for admin tab details & Clarion conversion for Action time ************************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @beforeSatuteDate DATETIME DECLARE @OldEstimateValue DECIMAL(17,2) DECLARE @teamcode VARCHAR(6) DECLARE @SatuteWarning VARCHAR(5) = 0 DECLARE @ActionCode VARCHAR(10) = NULL -- Old setting key for Statue Warning limit --SELECT @SatuteWarning = ISNULL([KeyValue],0) FROM Settings WHERE KeyName = 'SatuteWarning' -- New setting key for Statue Warning limit SELECT @SatuteWarning = ISNULL([KeyValue],0) FROM Settings WHERE KeyName = 'Risk Management_StatuteWarning' SELECT @ActionCode = ISNULL([KeyValue],0) FROM Settings WHERE KeyName = 'StatuteActionCode' --Statute limit is empty then it set as null value IF(CONVERT(DATETIME, @StatuteLimit) = '19000101') BEGIN SET @StatuteLimit = null END IF(CONVERT(DATETIME, @ExpBillDate) = '19000101') BEGIN SET @ExpBillDate = null END SELECT @teamcode =Team FROM Handlers WHERE CODE = @UserCode SELECT @beforeSatuteDate = ISNULL(StatuteLimits,'19000101'), @OldEstimateValue = EstFee FROM Matters WHERE Code = @MatterCode UPDATE Matters SET [Value] = @ValueToClient, [Started] = ISNULL(@Started,[Started]), StatuteLimits = @StatuteLimit, DepositName = @DepositName, EstFee = @EstimatedFees, FixedFee = @FixedFee, ExpBillD = @ExpBillDate, Section68 = ( CASE WHEN @IsEstimateGiven = 'True' THEN 'Y' ELSE 'N' END ), S13 = ( CASE WHEN @IsSection13 = 'True' THEN 'Y' ELSE 'N' END ), OutlayBud = @OutlayBudget, DepositType = @Type, Comment = @Comments, [FeeType]=@FeeType, PCode = ( CASE WHEN @EffectivelyComplete = 'True' THEN '' ELSE [ClientCode] END ), PFECODE = ( CASE WHEN @EffectivelyComplete = 'True' THEN '' ELSE [FECode] END ), ShowCommentInAlarm = @ShowInAlert WHERE Code = @MatterCode --Estimate Fee Log IF(@OldEstimateValue <> @EstimatedFees ) BEGIN INSERT INTO MatterEstimateFeeLogs ( [Log], [Mattercode], [Who], [EstimateFee] ) VALUES ( (CASE WHEN @OldEstimateValue = '0.00' then 'Added' when @OldEstimateValue <> '0.00' and @EstimatedFees = '0.00' THEN 'Deleted' ELSE 'Changed' END), @MatterCode, @UserCode, @EstimatedFees ) END /* Added by Magesh(DSRC)*/ DECLARE @actionid AS INT; DECLARE @DateCal AS INT; DECLARE @text1 AS VARCHAR (200); DECLARE @UTCActionDate AS DATETIME; SET @UTCActionDate = dbo.KAAS_FNConvertDateToUTC(dateadd(DAY,cast('-' + cast(@SatuteWarning as VARCHAR(30)) as Int), @StatuteLimit), @UserCode); SET @DateCal = [dbo].[KAAS_ConvertTimeToClarion](@UTCActionDate); --set @Result =1 set @result=case WHEN ISNULL(convert(varchar(11),@StatuteLimit,112),'19000101')='19000101' THEN 0 WHEN convert(varchar(11),@StatuteLimit,112)=convert(varchar(11),@beforeSatuteDate,112) THEN 0 else 1 END IF NOT EXISTS (SELECT TOP 1 1 FROM diary WHERE Rtrim(CASECODE) = @MatterCode AND isnull(rtrim(ACTIONTYPE), '') = 'S') BEGIN SET @text1 = 'Statute of Limitations Date =' + convert(varchar(11),@StatuteLimit,106); -- SET @Result=1 END ELSE BEGIN IF @Result = 1 BEGIN INSERT INTO DiaryDelegations (ACTIONID, HANDLER, TEAM, [DATE], [TIME], DUEDATE, DUETIME, [STATUS], [OWNER], DELEGATE, DELEGATESTATUS, ACTIONTYPE, FROMHANDLER, DELTYPE) SELECT diary.Actionid, @UserCode AS HANDLER, @teamcode AS TEAM, dateadd(DAY,cast('-' + cast(@SatuteWarning as VARCHAR(30)) as Int), @StatuteLimit) AS [DATE], @DateCal AS [TIME], @StatuteLimit AS DUEDATE, @DateCal AS DUETIME, 1 AS [STATUS], 'N' AS [OWNER], @UserCode AS DELEGATE, 0 AS DELEGATESTATUS, 'S' AS ACTIONTYPE, @UserCode AS FROMHANDLER, 'Completed' AS DELTYPE FROM diary LEFT OUTER JOIN DiaryDelegations ON diary.ACTIONID = DiaryDelegations.ACTIONID WHERE CASECODE = @MatterCode AND diary.ACTIONTYPE = 'S' AND diary.[STATUS] <> 1 UPDATE diary SET [STATUS] = 1 WHERE isnull(rtrim(ACTIONTYPE), '') = 'S' AND CASECODE = @MatterCode END SET @text1 = 'Statute of Limitations Date =' + convert(varchar(11),@StatuteLimit,106) + '' + CHAR(13) + 'Changed From ' + convert(varchar(11),@beforeSatuteDate,106) + ' To ' + convert(varchar(11),@StatuteLimit,106) + ' on the ' + convert(varchar(11),GETDATE(),106); END IF @Result = 1 BEGIN -- PINO 2015-09-30 START EXEC @actionid = [dbo].[ky_NETGetNextActionID] INSERT INTO DIARY (CASECODE, [DATE], [STATUS], ACTIONCODE, ACTIONSTATUS, ACTIONTYPE, PROCESSTYPE, FNCODE, TEAMCODE, TEXT1, DUEDATE, DYSTARTTIME, DYENDTIME, [PRIORITY], MILESTEONETYPE, WORKPROCESS, DELEGATIONSTATUS, ACTIONID, [SUBJECT], DisplayText) VALUES (@MatterCode, @UTCActionDate, 0, @ACTIONCODE, 'NA', 'S', 'I', @UserCode, @TeamCode, @text1, @StatuteLimit, @DateCal, @DateCal, 'H', @UserCode, 0, 0, @actionid, @text1, @text1); INSERT INTO DiaryDelegations (ACTIONID, HANDLER, TEAM, [DATE], [TIME], DUEDATE, DUETIME, [STATUS], [OWNER], DELEGATE, DELEGATESTATUS, ACTIONTYPE, FROMHANDLER, DELTYPE) VALUES (@actionid, @UserCode, @teamcode, dateadd(DAY, cast('-' + cast(@SatuteWarning as VARCHAR(30)) as Int), @StatuteLimit), @DateCal,@StatuteLimit, @DateCal, 0, 'Y', @UserCode, 0, 'S', @UserCode, 'Created'); END IF(@Result = 0) BEGIN IF(( @StatuteLimit is null) and ( convert(varchar(11),@beforeSatuteDate,112)<>'19000101')) BEGIN UPDATE diary SET [STATUS] = 1 WHERE isnull(rtrim(ACTIONTYPE), '') = 'S' AND CASECODE = @MatterCode SET @StatuteLimit = GETDATE() SET @text1 = 'Statute Date Deleted. It was: =' + convert(varchar(11),GETDATE(),106) SET @actionid = (SELECT ISNULL(MAX(actionid), 0) + 1 FROM diary) INSERT INTO DIARY (CASECODE, [DATE], [STATUS], ACTIONCODE, ACTIONSTATUS, ACTIONTYPE, PROCESSTYPE, FNCODE, TEAMCODE, TEXT1, DUEDATE, DYSTARTTIME, DYENDTIME, [PRIORITY], MILESTEONETYPE, WORKPROCESS, DELEGATIONSTATUS, ACTIONID, [SUBJECT], DisplayText) VALUES (@MatterCode, @UTCActionDate, 1, @ActionCode, 'NA', 'S', 'I', @UserCode, @TeamCode, @text1, @StatuteLimit, @DateCal, @DateCal, 'H', @UserCode, 0, 0, @actionid, @text1, @text1); INSERT INTO DiaryDelegations (ACTIONID, HANDLER, TEAM, [DATE], [TIME], DUEDATE, DUETIME, [STATUS], [OWNER], DELEGATE, DELEGATESTATUS, ACTIONTYPE, FROMHANDLER, DELTYPE) VALUES (@actionid, @UserCode, @teamcode, dateadd(DAY, cast('-' + cast(@SatuteWarning as VARCHAR(30)) as Int), @StatuteLimit), @DateCal,@StatuteLimit, @DateCal, 1, 'Y', @UserCode, 0, 'S', @UserCode, 'Completed'); END END --DELETE FROM CaseUDFAnswers where CASECODE = @MatterCode SET @Result = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO WHERE SO.[name] = N'KAAS_UpdateMatterDetailsArchive' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateMatterDetailsArchive] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateMatterDetailsArchive]( @MatterCode VARCHAR(20), @DateFileClosed DATETIME, @Location VARCHAR(50), @ArchiveLocation VARCHAR(50), @FileBarCodeNo VARCHAR(60), @BoxBarCodeNo VARCHAR(60), @BoxNumber VARCHAR(20), @ExpectedDestroyDate VARCHAR(30), @ActualDestroyDate VARCHAR(30), @DestroyedBy VARCHAR(10), @Closed CHAR(1)='N', @KeepOriginalDate VARCHAR(1), @Result TINYINT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the matter information for Archive. * * IF matter code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_UpdateMatterDetailsArchive] * * Copied from : [dbo].[ky_NETMATUpdateMatterDetails2] * * * * Modification History: * * 2019-05-24 Vinodhan K Created * *2023-05-31 Vignesh M Modified stored procedure is removed from SAM its already exists * *2023-06-26 Vignesh M Modified Date Closed and Reopened are updated * *2023-06-26 Vignesh M Modified Org Close date is added when case is reopened * *2023-06-27 Vignesh M Modified Keep or Replace Org Close Date functionality added * *2023-10-20 Vignesh M Modified Update handled for open Matters * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @AlreadyClosed VARCHAR(1) SELECT @AlreadyClosed = CLOSED FROM Matters WHERE Code = @MatterCode DECLARE @AlreadyClosedDate AS DATETIME IF @KeepOriginalDate = 'Y' BEGIN SELECT @AlreadyClosedDate = OrgClosedDate FROM Matters WHERE Code = @MatterCode END ELSE BEGIN SELECT @AlreadyClosedDate = CloseDate FROM Matters WHERE Code = @MatterCode END IF @AlreadyClosed = 'Y' AND ISNULL(@Closed,'N') = 'N' BEGIN UPDATE Matters SET [OrgClosedDate] = @AlreadyClosedDate, [ClosingDate] = NULL, [Location] = @Location , [ArchiveLocation] = @ArchiveLocation , [FileBarCodeNo] = @FileBarCodeNo , [BoxBarCodeNo] = @BoxBarCodeNo , [BoxNumber] = @BoxNumber , [DestroyDate] = @ExpectedDestroyDate , [ActualDestroyDate] = @ActualDestroyDate , [DestroyedBy] = @DestroyedBy, [Closed] = 'N', [ReOpenedDate] = GetUTCDate(), [CloseDate] = NULL WHERE Code = @MatterCode END ELSE IF @AlreadyClosed = 'N' AND ISNULL(@Closed,'N') = 'N' BEGIN UPDATE Matters SET [OrgClosedDate] =NULL, [ClosingDate] = NULL, [Location] = @Location , [ArchiveLocation] = @ArchiveLocation , [FileBarCodeNo] = @FileBarCodeNo , [BoxBarCodeNo] = @BoxBarCodeNo , [BoxNumber] = @BoxNumber , [DestroyDate] = @ExpectedDestroyDate , [ActualDestroyDate] = @ActualDestroyDate , [DestroyedBy] = @DestroyedBy, [Closed] = 'N', [ReOpenedDate] = NULL, [CloseDate] = NULL WHERE Code = @MatterCode END ELSE BEGIN IF @Closed = 'Y' BEGIN UPDATE Matters SET [ClosingDate] = GetUTCDate(), [Location] = @Location , [ArchiveLocation] = @ArchiveLocation , [FileBarCodeNo] = @FileBarCodeNo , [BoxBarCodeNo] = @BoxBarCodeNo , [BoxNumber] = @BoxNumber , [DestroyDate] = @ExpectedDestroyDate , [ActualDestroyDate] = @ActualDestroyDate , [DestroyedBy] = @DestroyedBy, [Closed] = @Closed, [ReOpenedDate] = NULL, [CloseDate] = GetUTCDate() WHERE Code = @MatterCode END END SET @Result = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateMatterDetailsBilling' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateMatterDetailsBilling] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateMatterDetailsBilling] (@MatterCode VARCHAR(20), @ChargeRateLevel VARCHAR(10), @ChargeArrangement VARCHAR(10), @DebtCollectedUnderCurrentArrangement DECIMAL(18,2), @TotalDebtAmountCollected VARCHAR(10), @ChargeOutRateIndicator BIT, @BillingType VARCHAR(10), @BillingMethod VARCHAR(10), @BillingFeeEarner VARCHAR(5), @Result TINYINT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the matter information for Billing. * * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_UpdateMatterDetailsBilling] * * Copied from : [dbo].[ky_NETMATUpdateMatterDetails2] * * * * Modification History: * * 2019-05-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON UPDATE Matters SET ChargeLevel = @ChargeRateLevel, DebtCollected = @TotalDebtAmountCollected, ChargeArrangement = @ChargeArrangement, ChargeOutRateInd = ( CASE WHEN @ChargeOutRateIndicator = 'True' THEN 'Y' ELSE 'N' END ), CompFrequency = @BillingType, BillingMethod = @BillingMethod, CollectingBalance = @DebtCollectedUnderCurrentArrangement, [BillingFE] = @BillingFeeEarner WHERE Code = @MatterCode SET @Result = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateMatterDetailsForAdditionalDetail' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateMatterDetailsForAdditionalDetail] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateMatterDetailsForAdditionalDetail] ( @MatterCode VARCHAR(20), @Premises VARCHAR(500), @ClExeYn CHAR(1), @ClBenYn CHAR(1), @ClDateAccept DATETIME, @CsOrgDebt DECIMAL(10,2), @CSBalDebt DECIMAL(9,2), @CsInterestCode VARCHAR(5), @CheckCharacter VARCHAR(1)=null, @AdditionalCheckCharacter VARCHAR(1)=null, @Result TINYINT OUTPUT) AS /************************************************************************************************************************ * Created By : Arun V * Date : 15May2014 10:27 AM * Description : This procedure is used to update matter details based on matter code, successful updation it will * Return 1 * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * remains fully functional * ****************************************************************************************** * * * * Supersedes: [dbo].[ky_NETMATUpdateMatterDetails] * * First compatible version: 5.5.1.1 (5.4.6.10) * * Last compatible software version: - * * Superseded by: - * * * ****************************************************************************************** * * Modification History * ----------------------------------------------------- * Date | Modified By | Description * ----------------------------------------------------- * 20June2014 Arun.V Comment param size has been incresed to 3000 from 300 * 30July2014 Arun.V Issue Rasied due to decimal Precision, so just removed CSBalDebt, CSOrgDebt Decimal Precision * 18Sept2014 Pino MAX will return NULL on an empty table. Use ISNULL(MAX([fieldname], 0)) instead * 30Oct2014 Arun.V Changed Interest Code Update Column. Its not mapped yet * 07NOv2014 Arun.V Added Composite Billing Matter * 19Nov2014 Arun.V @EstimatedFees, @DebtCollectedUnderCurrentArrangement param type changed from VARCHAR to decimal * 05Jan2015 Arun.V Branch code added * 07Jan2015 Pino CsOrgDebt also needs to update OriginalDebt in matters table * 08Jan2015 Pino Replace " with square brackets in column names * 25Jun2015 Pino Add Archive Location * 10JUL2015 Sridharan KEYD - 2441 - URGENT Passing N'' for DATETIME values into SPs set value to '19000101' * 30SEP2015 Pino Use ky_NETGetNextActionID * 04JAN2016 magesh Added checkcharacter and addtional check character * 05FEB2016 Arun Specified the Varchar size * 2016-03-16 Pino Don't use dashes in VARCHAR date in case the login language is not English... * 2016-07-12 Arun Have added Billing Fee earner * 2016-09-23 Suriya M KEYD - 4274 - Option for 'No win No Fee' Indicator on matters * 2016-11-28 Pino Carafa KEYD - 4282 - Box Number * 2018-01-10 Pino Carafa KEYD - 4441 - Your Reference is actually 100 characters so why restrict input to only 20? * 2018-03-19 Arun V Have changed OverrideAddress sp parameter size as 150 * 2018-03-23 Pino Carafa Have changed all addresses to be 500 characters * 2018-07-17 Pino Carafa Update User1,2,3 to VARCHAR(100) * 2019-05-24 Vinodhan Copied from ky_NETMATUpdateMatterDetails2 to update only the fields on Additional detail tab * 2019-08-06 Vinodhan @CheckCharacter,@AdditionalCheckCharacter changed into nullable parameters. * 2020-04-29 Prabhu.V [OriginalDebt] Need to be Update on additional details save. ************************************************************************************************************************/ BEGIN SET NOCOUNT ON UPDATE CaseMaster SET CSCLBENYN = @ClBenYn, CSCLEXEYN = @ClExeYn, CSDATEACCEPT_DATE = @ClDateAccept, CSORGDEBT = @CsOrgDebt, CSBALDEBT = @CSBalDebt, CSPREMISES = @Premises, CSIRTCODE = @CsInterestCode WHERE CSCode = @MatterCode --REVENUE MODULE /*ADDED BY MAGESH(DSRC) */ IF EXISTS (SELECT TOP 1 1 FROM MatterCheckChars WHERE MatterCode =@MatterCode ) BEGIN UPDATE MatterCheckChars SET CheckCharacter =@CheckCharacter, AddCheckCharacter =@AdditionalCheckCharacter WHERE MatterCode =@MatterCode END ELSE BEGIN INSERT INTO MatterCheckChars (MatterCode, CheckCharacter, AddCheckCharacter ) VALUES (@MatterCode, @CheckCharacter, @AdditionalCheckCharacter ) END UPDATE [MAT] SET [MAT].[OriginalDebt] = @CsOrgDebt FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @MatterCode SET @Result = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateMatterDetailsMatterTab' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateMatterDetailsMatterTab] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateMatterDetailsMatterTab] (@MatterCode VARCHAR(20), @ClientCode VARCHAR(10), @Matter VARCHAR(20), @Description VARCHAR(200), @FeeEarner VARCHAR(10), @Secretary VARCHAR(10), @Partner VARCHAR(10), @Department VARCHAR(10), @WorkType VARCHAR(5), @OldRef VARCHAR(100), @UserPrompt1 VARCHAR(100), @UserPrompt2 VARCHAR(100), @UserPrompt3 VARCHAR(100), @YourRef VARCHAR(100), @Statement BIT, @MarkAsImportance BIT, @Paperless BIT, @CasePlan VARCHAR(5), @CaseStatus VARCHAR(30), @FileColour VARCHAR(5), @CsRecordNo VARCHAR(12), @Branch VARCHAR(5), @NoWinNoFee VARCHAR(1), @Result TINYINT OUTPUT) AS /************************************************************************************************************************ * Created By : Arun V * Date : 15May2014 10:27 AM * Description : This procedure is used to update matter details based on matter code, successful updation it will * Return 1 * * * Modification History * ----------------------------------------------------- * Date | Modified By | Description * ----------------------------------------------------- * 20June2014 Arun.V Copied from ky_NETMATUpdateMatterDetails2 * 13Aug20121 Balamurugan.C Update Branch Column in Matter Table * 07-06-2023 Revathy.D Fetched Paperless Column from Matter Table * 11-03-2024 Vignesh M Update Query added for Search Matters ************************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @beforeSatuteDate DATETIME DECLARE @OldEstimateValue DECIMAL(17,2) DECLARE @IsPaperlessColumn AS BIT IF EXISTS( SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_NAME(OBJECT_ID) = 'Matters' and [NAME] = 'Paperless') BEGIN SET @IsPaperlessColumn = 1 END ELSE BEGIN SET @IsPaperlessColumn = 0 END UPDATE [dbo].[Matters] SET [ClientCode] = @ClientCode, [Matter] = @Matter, [Description] = @Description, [FECode] = @FeeEarner, [Partner] = @Partner, [Secretary] = @Secretary, [Dept] = @Department, [WType] = @WorkType, [OldRef] = @OldRef, [User1] = @UserPrompt1, [User2] = @UserPrompt2, [User3] = @UserPrompt3, [YourRef] = @yourRef, [Statements] = ( CASE WHEN @Statement = 'True' THEN 'Y' ELSE 'N' END ), [Importance] = ( CASE WHEN @MarkAsImportance = 'True' THEN 1 ELSE 0 END ), [Status] = @CaseStatus, [FileColour] = @FileColour, [NoWinNoFee] = @NoWinNoFee, [Branch] = @Branch WHERE [Code] = @MatterCode IF(@IsPaperlessColumn =1) BEGIN DECLARE @UpdateQuery nvarchar(max) = 'UPDATE [dbo].[Matters] SET [Paperless] =' + CAST(ISNULL(@Paperless,0) AS CHAR(1))+' WHERE [Code] =''' + @MatterCode +'''' EXEC (@UpdateQuery) END UPDATE [dbo].[CaseMaster] SET [CSWKTCode] = @CasePlan, [CSPLAINTNO] = @CsRecordNo WHERE [CSCode] = @MatterCode UPDATE [dbo].[SearchMatters] SET [Description] = @Description WHERE [Code] = @MatterCode SET @Result = 1 SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_UpdateMatterTimeBalance' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateMatterTimeBalance] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateMatterTimeBalance] (@matter VARCHAR(20)) AS /******************************************************************************************************* * It is used to Update Matter Time Balance. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateMatterTimeBalance] * * Copied from : [dbo].[ky_WDUpdateMatterTimeBalance] * * * * Modification History : * * 2019-07-25 Vinodhan K Created * *******************************************************************************************************/ BEGIN UPDATE MAT SET MAT.[TimeBal] = TTL.[TOTALTIME], MAT.[ChargeBal] = TTL.[TOTALCHARGED] FROM [dbo].[matters] MAT cross apply (SELECT ISNULL(SUM(CASE WHEN ISNULL(TIE.[CHARGE], 0) - ISNULL(TIE.[BilledAmount], 0) <> 0 THEN ISNULL(TIE.[time], 0) ELSE 0 END), 0) AS [TOTALTIME], ISNULL(SUM(ISNULL(TIE.[CHARGE], 0) - ISNULL(TIE.[BilledAmount], 0)), 0) AS [TOTALCHARGED] FROM [dbo].[TimeEntry] TIE WHERE TIE.[MATTER] = MAT.[Code] AND RTRIM(ISNULL(TIE.[REC_IRR], '')) <> 'N' AND RTRIM(ISNULL(TIE.[TimeorCharge], '')) <> 'B') TTL WHERE MAT.[Code] = @Matter END GO IF OBJECT_ID(N'KAAS_UpdateOfficers',N'P')IS NOT NULL DROP PROCEDURE KAAS_UpdateOfficers GO CREATE PROCEDURE KAAS_UpdateOfficers ( @RecordId INT, @Contactcode VARCHAR(6), @OfficerCode VARCHAR(6), @Name VARCHAR(30), @CoSecretary BIT, @Appointed DATETIME, @Resigned DATETIME, @Result BIT OUTPUT ) AS /******************************************************************************************************* * This stored procedure is used to Update Officers details. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateOfficers] * * Copied from : [dbo].[ky_NETUpdateOfficers] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS(SELECT TOP 1 1 FROM Officers WHERE RECORDID=@RecordId ) BEGIN UPDATE Officers SET CONTACTCODE = @Contactcode, CONTACTOFFICER = @OfficerCode, NAME = @Name , COSECRETARY = (CASE WHEN @CoSecretary = 'True' THEN 'Y' ELSE 'N' END) , DATEAPPOINTED = @Appointed, DATERESIGNED = @Resigned WHERE RECORDID=@RecordId SET @Result = 1 END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdatePinFilterMenu' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdatePinFilterMenu] END GO CREATE PROCEDURE [dbo].[KAAS_UpdatePinFilterMenu] ( @HandlerCode VARCHAR(50), @PageName VARCHAR(100) = NULL, @FilterName VARCHAR(50), @PINFlag VARCHAR(10), @ID INT ) AS /************************************************************************************************************* * * * Update Pin Custom Filter details * * * * Stored Procedure : KAAS_UpdatePinFilterMenu * * * * * * Modification History * * 2020-12-31 Prabhu Created * * 2020-01-14 Prabhu Pin Unpin and make as default * * 2020-01-17 Prabhu Pin Unpin and make as default Bug fixed by own identification * * * *************************************************************************************************************/ BEGIN UPDATE CustomFilterbyUserandPage SET [FilterOrder] = (CASE WHEN @PINFlag = 'PIN' THEN 1 ELSE 0 END) , [IsDefault] = (CASE WHEN @PINFlag = 'PIN' THEN 1 ELSE 0 END) WHERE [ID] = @ID UPDATE CustomFilterbyUserandPage SET [IsDefault] = 0, [FilterOrder] = 0 WHERE ID != @ID AND [HandlerCode] = @HandlerCode AND [PageName] = @PageName END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateProfileGroupMembership' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateProfileGroupMembership] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateProfileGroupMembership] (@ProfileID INT, @groupname VARCHAR(100), @include BIT) AS /**************************************************************************************************************** * Includes or Excludes a Profile from a particular Control Group * This subsequently then goes to update all the handlers that are members of the profile. * Stored Procedure Name : [dbo].[KAAS_UpdateProfileGroupMembership] * Copied from : [dbo].[ky_NETSPUpdateKHProfileGroupMembership] * * Modification History * 2023-04-11 Revathy.D Created (Copied from ky_NETSPUpdateKHProfileGroupMembership) * ****************************************************************************************************************/ BEGIN DECLARE @groupid int SELECT @groupid = CTG.[id] FROM [dbo].[KHCtlGroups] CTG WHERE CTG.[GroupName] = @groupname IF (@groupid is not null) BEGIN IF (@include = 1) BEGIN DELETE CTP FROM [dbo].[KHCtlProfileGroups] CTP WHERE CTP.[ProfileID] = @ProfileID AND CTP.[groupid] = @GroupID END ELSE BEGIN INSERT INTO [dbo].[KHCtlProfileGroups] ([ProfileID], [GroupID]) SELECT CTPN.[ProfileID], CTPN.[GroupID] FROM (SELECT @ProfileID AS [ProfileID], @GroupID AS [GroupID]) CTPN LEFT OUTER JOIN [dbo].[KHCtlProfileGroups] CTPO ON CTPO.[ProfileID] = CTPN.[ProfileID] AND CTPO.[GroupID] = CTPN.[GroupID] WHERE CTPO.[GroupID] IS NULL END END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateRecentHandlerList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateRecentHandlerList] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateRecentHandlerList] ( @HandlerCode VARCHAR(10), @AccessedBy VARCHAR(10)) AS /******************************************************************************************************* * * * Updates the recently selected handler by the currently logged in user * * * * Stored Procedure Name : [dbo].[KAAS_UpdateRecentHandlerList] * * * * Modification History: * * 2019-08-02 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS(SELECT TOP 1 1 FROM sys.objects WHERE [Name] = 'RecentHandlerList') AND EXISTS (SELECT TOP 1 1 FROM [RecentHandlerList] WHERE [Code] = @HandlerCode AND [AccessedBy] = @AccessedBy) BEGIN DELETE FROM [RecentHandlerList] WHERE [Code] = @HandlerCode AND [AccessedBy] = @AccessedBy END IF EXISTS(SELECT TOP 1 1 FROM sys.objects WHERE [Name] = 'RecentHandlerList') AND NOT EXISTS (SELECT TOP 1 1 FROM [RecentHandlerList] WHERE [Code] = @HandlerCode AND [AccessedBy] = @AccessedBy) BEGIN INSERT INTO [RecentHandlerList] VALUES(@HandlerCode, @AccessedBy, GETDATE()) END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateRecentMatterList' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateRecentMatterList] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateRecentMatterList] (@HANDLER varchar(10), @MATTER varchar(20)) AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_UpdateRecentMatterList] * * Copied from : [dbo].[ky_UpdateRecentMatterList] * * * * Modification History: * * 2019-04-26 Vinodhan K Created * *******************************************************************************************************/ BEGIN EXEC [dbo].[KAAS_SetMostRecentMatter] @HANDLER, @MATTER END GO IF OBJECT_ID(N'KAAS_UpdateStrongRoomActionId', N'P') IS NOT NULL BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateStrongRoomActionId] END GO CREATE PROCEDURE [KAAS_UpdateStrongRoomActionId] ( @ActionID INT, @Number INT ) /***************************************************************************** Stored Procedure Name: [KAAS_UpdateStrongRoomActionId] Copied From : [ky_NETUpdateStrongRoom] Description: This sp used to Update the action id in filemanageritem table Modification History * 2022-03-29 Aakif KAAS file created *****************************************************************************/ AS BEGIN SET NOCOUNT ON UPDATE FileManagerItems SET ActionID = @ActionID WHERE NUMBER = @Number SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_UpdateSubjectandAttachment',N'P')IS NOT NULL DROP PROCEDURE KAAS_UpdateSubjectandAttachment GO CREATE PROCEDURE [dbo].[KAAS_UpdateSubjectandAttachment] (@ActionID INT, @Text VARCHAR (MAX), @From VARCHAR (50), @settings CHAR (1), @Handler NVARCHAR (10), --@Handler MUST be NVARCHAR as it's defined as such in [dbo].[UserSettings] @SendToNewAction VARCHAR(30) = '') AS /****************************************************************************************************** * * Created By : * Date : 25MAR2015 2:37 PM * Description: This stored procedure is used to Update subject and attachement details. * * Modification History * ---------------------------------------------------------------------------------------------- * Date | Modified By | Description * ---------------------------------------------------------------------------------------------- * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2016-08-31 Sridharan KEYD:3793-Send to in Case Diary Attachment is closing new action and * renaming old (Added a new parameter SendToNewAction) * 2016-09-19 Pino Looking into KEYD-4060 I found a few minor issues with this procedure, * it was not easy to read, and the @Text input parameter could cause * truncation issues on the columns it's updating. * 2019-06-05 Arun V Copied from ky_NETUpdateSubjectandAttachment * 2021-10-06 Arun V Set Context info ******************************************************************************************************/ BEGIN SET NOCOUNT ON; DECLARE @HandlerBin VARBINARY(128) SET @HandlerBin = CONVERT(VARBINARY(128), @Handler) SET CONTEXT_INFO @HandlerBin IF @From = 'Document Manager' BEGIN IF @SendToNewAction = '' BEGIN UPDATE [DIA] SET [DIA].[subject] = RTRIM(CONVERT(VARCHAR(500), @Text)) FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID; END IF @settings = 'Y' BEGIN IF EXISTS (SELECT TOP 1 [USS].[SettingID] FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject') BEGIN UPDATE [USS] SET [USS].[Value] = 'True' FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject' END ELSE BEGIN INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) VALUES(@Handler, 'DocSyncWithSubject', 'True') END END END ELSE IF @From = 'Case Diary' BEGIN UPDATE [DAT] SET [DAT].[DOCUMENT] = RTRIM(CONVERT(VARCHAR(100), @Text)) FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[DiaryID] = @ActionID UPDATE [DIA] SET [DIA].[SUBJECT] = RTRIM(CONVERT(VARCHAR(500), @Text)) FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID IF @settings = 'Y' BEGIN IF EXISTS (SELECT TOP 1 [USS].[SettingID] FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject') BEGIN UPDATE [USS] SET [USS].[Value] = 'True' FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject' END ELSE BEGIN INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) VALUES(@Handler, 'DocSyncWithSubject', 'True') END END END SET NOCOUNT OFF; END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateSubjectandAttachment2' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateSubjectandAttachment2] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateSubjectandAttachment2] (@ActionID INT, @Text VARCHAR (MAX), @From VARCHAR (50), @settings CHAR (1), @Handler NVARCHAR (10), --@Handler MUST be NVARCHAR as it's defined as such in [dbo].[UserSettings] @SendToNewAction VARCHAR(30) = '') AS /****************************************************************************************************** * * Created By : * Date : 25MAR2015 2:37 PM * Description: This stored procedure is used to Update subject and attachement details. * Originally written as ky_NETUpdateSubjectandAttachment * Had to create new version as the DocSyncWithSubject handling was completely wrong * * Modification History * ---------------------------------------------------------------------------------------------- * Date | Modified By | Description * ---------------------------------------------------------------------------------------------- * 2015-02-12 Arun Change NVARCHAR to VARCHAR * 2016-08-31 Sridharan KEYD:3793-Send to in Case Diary Attachment is closing new action and * renaming old (Added a new parameter SendToNewAction) * 2016-09-19 Pino Looking into KEYD-4060 I found a few minor issues with this procedure, * it was not easy to read, and the @Text input parameter could cause * truncation issues on the columns it's updating. * 2017-04-05 Pino Allow for saving No value for Setting. Blank to Reset. * Y = use saved Sync setting, Yes picked * N = use saved Sync setting, No picked * = Don't use a saved Sync setting. Prompt the user. * 2019-06-05 Arun V Copied from ky_NETUpdateSubjectandAttachment2 * 2021-10-06 Arun V Set Context info ******************************************************************************************************/ BEGIN SET NOCOUNT ON; DECLARE @HandlerBin VARBINARY(128) SET @HandlerBin = CONVERT(VARBINARY(128), @Handler) set CONTEXT_INFO @HandlerBin IF ISNULL(@settings, '') <> 'N' BEGIN IF @From = 'Document Manager' BEGIN IF @SendToNewAction = '' BEGIN UPDATE [DIA] SET [DIA].[subject] = RTRIM(CONVERT(VARCHAR(500), @Text)) FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID; END END ELSE IF @From = 'Case Diary' BEGIN UPDATE [DAT] SET [DAT].[DOCUMENT] = RTRIM(CONVERT(VARCHAR(100), @Text)) FROM [dbo].[DiaryAttachments] [DAT] WHERE [DAT].[DiaryID] = @ActionID UPDATE [DIA] SET [DIA].[SUBJECT] = RTRIM(CONVERT(VARCHAR(500), @Text)) FROM [dbo].[diary] [DIA] WHERE [DIA].[ACTIONID] = @ActionID END END IF @settings = 'Y' BEGIN IF EXISTS (SELECT TOP 1 [USS].[SettingID] FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject') BEGIN UPDATE [USS] SET [USS].[Value] = 'True' FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject' END ELSE BEGIN INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) VALUES(@Handler, 'DocSyncWithSubject', 'True') END IF EXISTS (SELECT TOP 1 [USS].[SettingID] FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubjectYesNo') BEGIN UPDATE [USS] SET [USS].[Value] = 'True' FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubjectYesNo' END ELSE BEGIN INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) VALUES(@Handler, 'DocSyncWithSubjectYesNo', 'True') END END ELSE IF @settings = 'N' BEGIN IF EXISTS (SELECT TOP 1 [USS].[SettingID] FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject') BEGIN UPDATE [USS] SET [USS].[Value] = 'True' FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject' END ELSE BEGIN INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) VALUES(@Handler, 'DocSyncWithSubject', 'True') END IF EXISTS (SELECT TOP 1 [USS].[SettingID] FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubjectYesNo') BEGIN UPDATE [USS] SET [USS].[Value] = 'False' FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubjectYesNo' END ELSE BEGIN INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) VALUES(@Handler, 'DocSyncWithSubjectYesNo', 'False') END END ELSE BEGIN IF EXISTS (SELECT TOP 1 [USS].[SettingID] FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject') BEGIN UPDATE [USS] SET [USS].[Value] = 'False' FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubject' END ELSE BEGIN INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) VALUES(@Handler, 'DocSyncWithSubject', 'False') END IF EXISTS (SELECT TOP 1 [USS].[SettingID] FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubjectYesNo') BEGIN UPDATE [USS] SET [USS].[Value] = 'False' FROM [dbo].[UserSettings] [USS] WHERE [USS].[Handler] = @Handler AND [USS].[key] = 'DocSyncWithSubjectYesNo' END ELSE BEGIN INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) VALUES(@Handler, 'DocSyncWithSubjectYesNo', 'False') END END SET NOCOUNT OFF; END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateTemplateActions' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateTemplateActions] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateTemplateActions] (@ACTIONCODE VARCHAR(15), @DESC VARCHAR(100), @WKTCODE VARCHAR(4), @ACTTYPE VARCHAR(1), @Actioncategory VARCHAR(1), @STATUS VARCHAR(3), @PROCESSTYPE VARCHAR(1), @PUBLISHER VARCHAR(1), @UPDATEFIELD VARCHAR(30), @UPDATEVALUE VARCHAR(255), @HIGHLIGHTED VARCHAR(1), @MILESTONETYPE VARCHAR(12), @PRIORITY VARCHAR(6), @NEXTACTIONOPTIONAL VARCHAR(1), @BILLABLE VARCHAR(1), @EMAIL VARCHAR(1), @BILLDESCRIPTION VARCHAR(150), @AssignActionTo VARCHAR(1), @ASSIGNHANDLER VARCHAR(10), @AssignTeamActionTo VARCHAR(1), @ASSIGNTEAM VARCHAR(10), @ChargeValue VARCHAR(9), @Arrangement VARCHAR(3), @ChargeInterest VARCHAR(1), @Description VARCHAR(100), @AutoPopulate VARCHAR(1), @RequiredAction VARCHAR(1), @AuthorisationRequired VARCHAR(1), @Authby VARCHAR(10), @ConfirmByPW VARCHAR(1), @InsertStatus VARCHAR(10), @Flag TINYINT, @HoldCasePlan VARCHAR(1), @KYC VARCHAR(1), @CreateAsCompleted BIT = NULL) AS /*********************************************************************************************** * This procedure is used to FETCH Work Type by Action code. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateTemplateActions] * * Copied from : [dbo].[Ky_NetUpdateTemplateActions] * * * * Modification History : * * 2019-04-12 Nithyanandham M Created * * 2024-01-19 Vignesh M Modified Default parameter added in CreateAsCompleted * ***********************************************************************************************/ BEGIN SET NOCOUNT ON IF RTRIM(ISNULL(@DESC, '')) = '' BEGIN SET @DESC = RTRIM(ISNULL(@Description, '')) END IF RTRIM(ISNULL(@Description, '')) = '' BEGIN SET @Description = RTRIM(ISNULL(@DESC, '')) END IF RTRIM(@Description) <> RTRIM(@DESC) BEGIN SET @Description = RTRIM(@DESC) END IF (@InsertStatus = 'True') BEGIN /*Insert Missing Action Work Types Starts*/ IF NOT EXISTS (SELECT TOP 1 1 FROM ActionWorkTypes WHERE WorkType=@WKTCODE AND ACTIONCODE=@ACTIONCODE) BEGIN DECLARE @ActionWorkType as INT ;WITH T AS (SELECT SEQ, Row_number() OVER (ORDER BY SEQ) AS RN FROM ActionWorkTypes WHERE WORKTYPE = @WKTCODE) UPDATE T SET SEQ = RN SET @ActionWorkType = (SELECT ISNULL(MAX(SEQ)+1,1) FROM ActionWorkTypes WHERE WORKTYPE=@WKTCODE) INSERT INTO ActionWorkTypes ( WORKTYPE ,ACTIONCODE ,SEQ ) VALUES ( @WKTCODE ,@ACTIONCODE ,@ActionWorkType ) END /*Insert Missing Action Work Types Ends*/ IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateActions] TAC WHERE [TAC].[ACTIONCODE] = @ACTIONCODE) BEGIN INSERT INTO [dbo].[TemplateActions] ([ACTIONCODE], [DESC], [WKTCODE], [ACTTYPE], [actioncategory], [STATUS], [PROCESSTYPE], [PUBLISHER], [UPDATEFIELD], [UPDATEVALUE], [HIGHLIGHTED], [MILESTONETYPE], [PRIORITY], [NEXTACTIONOPTIONAL], [BILLABLE], [EMAIL], [BILLDESCRIPTION], [AssignActionTo], [ASSIGNHANDLER], [AssignTeamActionTo], [ASSIGNTEAM], [ChargeValue], [Arrangement], [ChargeInterest], [Description], [AutoPopulate], [RequiredAction], [AuthorisationRequired], [Authby], [ConfirmByPW], [Flag], [HoldCasePlan], [KYC], [CreateAsCompleted]) VALUES(@ACTIONCODE, @DESC, @WKTCODE, @ACTTYPE, @Actioncategory, @STATUS, @PROCESSTYPE, @PUBLISHER, @UPDATEFIELD, @UPDATEVALUE, @HIGHLIGHTED, @MILESTONETYPE, @PRIORITY, @NEXTACTIONOPTIONAL, @BILLABLE, @EMAIL, @BILLDESCRIPTION, @AssignActionTo, @ASSIGNHANDLER, @AssignTeamActionTo, @ASSIGNTEAM, @ChargeValue, @Arrangement, @ChargeInterest, @Description, @AutoPopulate, @RequiredAction, @AuthorisationRequired, @Authby, @ConfirmByPW, @Flag, @HoldCasePlan, @KYC, @CreateAsCompleted) EXEC [dbo].[Ky_NetAssignTemplateAction] @WKTCODE, @ACTIONCODE SELECT 'True' END ELSE BEGIN SELECT 'False' END END ELSE BEGIN UPDATE [TAC] SET [TAC].[DESC] = @DESC, [TAC].[Description] = @Description, [TAC].[WKTCODE] = @WKTCODE, [TAC].[ACTTYPE] = @ACTTYPE, [TAC].[actioncategory] = @actioncategory, [TAC].[STATUS] = @STATUS, [TAC].[PROCESSTYPE] = @PROCESSTYPE, [TAC].[PUBLISHER] = @PUBLISHER, [TAC].[UPDATEFIELD] = @UPDATEFIELD, [TAC].[HIGHLIGHTED] = @HIGHLIGHTED, [TAC].[MILESTONETYPE] = @MILESTONETYPE, [TAC].[PRIORITY] = @PRIORITY, [TAC].[NEXTACTIONOPTIONAL] = @NEXTACTIONOPTIONAL, [TAC].[BILLABLE] = @BILLABLE, [TAC].[AssignActionTo] = @AssignActionTo, [TAC].[ASSIGNHANDLER] = @ASSIGNHANDLER, [TAC].[AssignTeamActionTo] = @AssignTeamActionTo, [TAC].[ASSIGNTEAM] = @ASSIGNTEAM, [TAC].[ChargeValue] = @ChargeValue, [TAC].[Arrangement] = @Arrangement, [TAC].[ChargeInterest] = @ChargeInterest, [TAC].[AutoPopulate] = @AutoPopulate, [TAC].[RequiredAction] = @RequiredAction, [TAC].[AuthorisationRequired] = @AuthorisationRequired, [TAC].[Authby] = @Authby, [TAC].[ConfirmByPW] = @ConfirmByPW, [TAC].[Flag] = @Flag, [TAC].[HoldCasePlan] = @HoldCasePlan, [TAC].[KYC] = @KYC, [TAC].[CreateAsCompleted] = @CreateAsCompleted FROM [dbo].[TemplateActions] [TAC] WHERE [TAC].[ACTIONCODE] = @ACTIONCODE SELECT 'True' END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateTimeDayBook' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateTimeDayBook] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateTimeDayBook] (@Matter VARCHAR(20), @FeeEarn VARCHAR(10), @Date DATETIME, @Time INT, @Rate DECIMAL(10,2), @Charge DECIMAL(10,2), @Task VARCHAR(10), @TimeOrCharge CHAR(1), @IsChargable CHAR(1), @Comment VARCHAR(1000), @Ncccode VARCHAR(10) = NULL, @RecordID INT, @Post CHAR(1) = 'Y') AS /******************************************************************************************************* * * * * * Stored Procedure Name : [dbo].[KAAS_UpdateTimeDayBook] * * Copied from : [dbo].[ky_NETUpdateTimeDayBook] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET @Post = CASE WHEN @Post IS NULL THEN 'Y' ELSE @Post END DECLARE @PERIOD AS INT DECLARE @YEAR AS INT DECLARE @IsSAM4 bit SET @IsSAM4 = [dbo].[ISSAM4]() IF @IsSAM4 = 0 BEGIN SELECT @PERIOD = ISNULL(CL.[CURPER], 0), @YEAR = ISNULL(CL.[YEAR], 0) FROM [dbo].[CONTROL] CL END ELSE BEGIN SET @PERIOD = (SELECT CNM.[NumValue] FROM [dbo].[CtrlNum] CNM WHERE CNM.[Code] = 'CurPeriod') SET @YEAR = (SELECT CNM.[numvalue] FROM [dbo].[CtrlNum] CNM WHERE CNM.[Code] = 'CurYear') END SET @PERIOD = ISNULL(@PERIOD, 0) SET @YEAR = ISNULL(@YEAR, 0) DECLARE @ActualRate DECIMAL(18, 2) SELECT @ActualRate = [dbo].[KAAS_FN_GetDefaultRate](RTRIM(ISNULL(@Matter, '')), RTRIM(ISNULL(@FeeEarn, '')), RTRIM(ISNULL(@Ncccode, '')), RTRIM(ISNULL(@Task, ''))) IF (@RecordID = 0) BEGIN INSERT INTO [dbo].[TimeDayBook] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [Charge], [Charged], [TASK], [TimeOrCharge], [COMMENT], [NCCCode], [Rec_Irr], [Post], [StopwatchStatus], [Period], [Year], [MatterLevel], [TaskLevel], [ChargedMins], [FeeRate], [EntryDate], [ModifyDate]) SELECT NW.[MATTER], NW.[FEEEARN], NW.[DATE], NW.[TIME], NW.[RATE], NW.[CHARGE], NW.[CHARGE], NW.[TASK], NW.[TimeOrCharge], NW.[COMMENT], NW.[NCCCode], NW.[Rec_Irr], NW.[Post], NW.[StopwatchStatus], NW.[Period], NW.[Year], MAT.[ChargeLevel], TSC.[ChargeLevel], NW.[TIME], NW.[FEERATE], NW.[EntryDate], NW.[EntryDate] FROM (SELECT @Matter AS [MATTER], @FeeEarn AS [FEEEARN], @Date AS [DATE], @Time AS [TIME], @Rate AS [RATE], @Charge AS [CHARGE], @Task AS [TASK], @TimeOrCharge AS [TimeOrCharge], @Comment AS [COMMENT], @Ncccode AS [NCCCode], @IsChargable AS [Rec_Irr], @Post AS [Post], 1 AS [StopwatchStatus], @PERIOD AS [Period], @YEAR AS [Year], ISNULL(@ActualRate, @Rate) AS [FEERATE], CONVERT(DATETIME, CONVERT(VARCHAR, GetDate(), 112)) AS [EntryDate]) NW LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = NW.[MATTER] LEFT OUTER JOIN [dbo].[TasksCodes] TSC ON TSC.[CODE] = NW.[TASK] END ELSE BEGIN UPDATE TDB SET TDB.[MATTER] = @Matter, TDB.[FEEEARN] = @FeeEarn, TDB.[DATE] = @Date, TDB.[TIME] = @Time, TDB.[RATE] = @Rate, TDB.[Charge] = @Charge, TDB.[Charged] = @Charge, TDB.[TASK] = @Task, TDB.[TIMEORCHARGE] = @TimeOrCharge, TDB.[REC_IRR] = @IsChargable, TDB.[COMMENT] = @Comment, TDB.[Ncccode] = @Ncccode, TDB.[Post] = @Post, TDB.[MatterLevel] = CASE ISNULL(TDB.[MatterLevel], '') WHEN '' THEN MAT.[ChargeLevel] ELSE TDB.[MatterLevel] END, TDB.[TaskLevel] = CASE ISNULL(TDB.[TaskLevel], '') WHEN '' THEN TSC.[ChargeLevel] ELSE TDB.[TaskLevel] END, TDB.[FeeRate] = ISNULL(TDB.[FeeRate], @ActualRate), TDB.[ChargedMins] = @Time FROM [dbo].[TimeDayBook] TDB LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = TDB.[MATTER] LEFT OUTER JOIN [dbo].[TasksCodes] TSC ON TSC.[CODE] = TDB.[TASK] WHERE TDB.[RecordID] = @RecordID END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateTimeDayBookMatter' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateTimeDayBookMatter] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateTimeDayBookMatter] (@FEE VARCHAR(10), @Matter VARCHAR(20), @RecordID INT) AS /*********************************************************************************************************************** * Updates Matter Code on Time Day Book * * * * Stored procedure name : KAAS_UpdateTimeDayBookMatter * * Copied from : [dbo].[Ky_NetUpdateTimeDayBookMatter] * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ************************************************************************************************************* * * * * * * * Supersedes: - * * * * Original: - * * * * First compatible version: - * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ************************************************************************************************************* * * * * Modification History * * ?????????? ??????????? Created * * 2015-02-18 Pino Carafa Make @MATTER VARCHAR(20) instead of NVARCHAR(15) * * 2015-09-23 Suriya Mohan KEYD - 4084 - Urgent: If the matter is setup with charge, * * then if you select that matter to a blank timer * * it's saving as "Time" instead of "Charge" * * 2015-09-23 Pino Carafa KEYD = 4086 - Whatever is in the [BillingMethod] of the selected * * matter, [TimeOrCharge] can only contain either 'C' or 'T' * * 2015-09-24 Arun Vasu Revert the changes, made by suriya. * * This causes double entry for blank matter. * * Ref: http://jira1.dsrc.in:8080/browse/KEYD-4085 * * 2019-03-14 Pino Carafa Add the selected Matter to the Recent Matter list. * * In order to avoid potential issues with the "current matter", we'll add it * * to the second position, keeping the actual Current Matter in the first * * place. Also, please note that this SP might be called by somebody updating * * for somebody else's Day Book, so this SP must update the Recent Matter * * LIST the LOGGED IN Handler, NOT the one who happens to own the TDB * * entry being updated. * * 2019-08-30 Pino Carafa Code to get the Current Matter is incorrect. * * It must be the MOST RECENT one * * 2019-09-12 Pino Carafa Reinstate code to leave Most Recent Matter unchanged. Include UniqueID * * in the ORDER BY so that if GetDate() returns the same value for the two * * calls to [dbo].[ky_NETPSetMostRecentMatter] it will still work as intended * * 2019-11-07 Vinodhan Created KAAS_UpdateTimeDayBookMatter * * FEE will be fetched from web API using IdentityUser that has the logged in user info * ***********************************************************************************************************************/ BEGIN DECLARE @CurrentMatter VARCHAR(20) IF RTRIM(ISNULL(@FEE, '')) <> '' BEGIN SELECT TOP 1 @CurrentMatter = [RML].[MATTER] FROM [dbo].[RecentMatterList] [RML] WHERE [RML].[FEE] = @FEE ORDER BY [RML].[UniqueID] DESC END UPDATE [TDB] SET [TDB].[MATTER] = @Matter, [TDB].[NCCCODE] = NULL FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[RECORDID] = @RecordID IF (RTRIM(ISNULL(@Matter, '')) <> '') AND (RTRIM(ISNULL(@CurrentMatter, '')) <> RTRIM(ISNULL(@Matter, ''))) BEGIN EXEC [dbo].[KAAS_SetMostRecentMatter] @FEE, @Matter --Make sure the matter is added to the Recent Matter List -- Pino 2019-08-30 found this statement commented out, so I'm not going to touch it. BUT this means that the functionality -- described in my comment of 2019-03-14 to make sure the Current Matter stays as is is not currently active. As we have -- had no recent complaints about how this works I am going to leave As Is. -- Pino 2019-09-12 KEYD-5806 - I reckon the next line was commented out due to the issue I corrected on 2019-08-30 -- With this issue corrected it should now work as intended. So I am reinstating next line. EXEC [dbo].[KAAS_SetMostRecentMatter] @FEE, @CurrentMatter -- ... but don't change the actual "current matter" END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateTimeEntry' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateTimeEntry] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateTimeEntry] (@RecordID INT, @Date DATETIME, @Time INT, @Rate DECIMAL(10,2), @Task VARCHAR(6), @IsChargeable VARCHAR(3), @Comment VARCHAR(1000), @Handler VARCHAR(10), @User NVARCHAR(128)) AS /******************************************************************************************************* * Get the data of a TimeEntry record page. * * * * Stored Procedure Name : [dbo].[KAAS_UpdateTimeEntry] * * Copied from : [dbo].[ky_NETUpdateTimeEntry] * * * * Modification History: * * 2015-02-12 Pino Change NVARCHAR to VARCHAR * * rate is 10, 2 * * comment can be up to 1000 chars. * * 2015-09-17 John G. Round up units * * 2015-11-12 Pino KEYD - 2894 - Log user data and timestamp * * 2015-11-12 John No longing logging an entry if it was "edited" without any changes made * * 2016-06-09 Suriya KEYD-3622-Editing a Time Entry in the time ledger * * 2016-06-09 Suriya KEYD-3595-URGENT: Please review a number of recently * created Stored Procedures and FunctionsV * * 2019-07-24 Vinodhan K Created ) * *******************************************************************************************************/ BEGIN -- Check if anything changed. If not then exit IF EXISTS( SELECT TOP 1 TIE.[RecordID] FROM [dbo].[TimeEntry] AS [TIE] WHERE TIE.[RecordID] = @RecordID AND TIE.[Date] = @Date AND TIE.[Time] = @Time AND TIE.[Rate] = @Rate AND TIE.[Task] = @Task AND TIE.[Rec_Irr] = @IsChargeable AND RTRIM(TIE.[Comment]) COLLATE Latin1_General_BIN = RTRIM(@Comment) COLLATE Latin1_General_BIN) BEGIN RETURN END SET @Handler = RTRIM(ISNULL(@Handler, '')) SET @User = RTRIM(ISNULL(@User, N'')) DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N'INSERT INTO [dbo].[TimeEntryLogNew] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [CHARGE], [TASK], [TIMEORCHARGE], [COMMENT], [BILLED], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [SHOULDHAVE], [INVOICENO], [PERIOD], [YEAR], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [RECORDID], [ActionId], [StageCode], [Leave], [BilledAmount], [IncludeInBill], [BILLINGDATE], [AxleNumber], [WriteOffDT], [WriteOffID], [LogFor]' IF @Handler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', [HandlerLogFor]' END IF @User <> N'' BEGIN SET @NCOMMAND = @NCOMMAND + N', [LoginLogFor]' END SET @NCOMMAND = @NCOMMAND + N') SELECT [TIE].[MATTER], [TIE].[FEEEARN], [TIE].[DATE], [TIE].[TIME], [TIE].[RATE], [TIE].[CHARGE], [TIE].[TASK], [TIE].[TIMEORCHARGE], [TIE].[COMMENT], [TIE].[BILLED], [TIE].[NCCODE], [TIE].[DOCKET], [TIE].[TEAM], [TIE].[TRACKREF], [TIE].[REC_IRR], [TIE].[SHOULDHAVE], [TIE].[INVOICENO], [TIE].[PERIOD], [TIE].[YEAR], [TIE].[BILLINGPERIOD], [TIE].[BILLINGYEAR], [TIE].[OPENINV], [TIE].[RECORDID], [TIE].[ActionId], [TIE].[StageCode], [TIE].[Leave], [TIE].[BilledAmount], [TIE].[IncludeInBill], [TIE].[BILLINGDATE], [TIE].[AxleNumber], [TIE].[WriteOffDT], [TIE].[WriteOffID], ''C''' IF @Handler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @Handler' END IF @User <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @User' END SET @NCOMMAND = @NCOMMAND + N' FROM [dbo].[TimeEntry] [TIE] WHERE [TIE].[RecordID] = @RecordID' EXEC sp_executesql @NCOMMAND, N'@RecordID INT, @Handler VARCHAR(10), @User NVARCHAR(128)', @RecordID, @Handler, @User DECLARE @MatterCode VARCHAR(20) DECLARE @TYPE VARCHAR(1) SELECT @TYPE = TIE.[TimeOrCharge], @MatterCode = TIE.[Matter] FROM [dbo].[TimeEntry] TIE WHERE RECORDID = @RecordID DECLARE @CHARGE DECIMAL(10, 2) /************************************ * John - Recalculating units Start * ************************************/ DECLARE @ISSAM4 BIT DECLARE @UNITS DECIMAL(11, 2) DECLARE @ROUNDUPUNITS BIT DECLARE @TUTNUMVALUE DECIMAL(17, 2) SET @ISSAM4 = [dbo].[ISSAM4]() SET @ROUNDUPUNITS = 0 SELECT @ROUNDUPUNITS = [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'RoundupUnits' IF (@ROUNDUPUNITS = 0) BEGIN SET @TUTNUMVALUE = 1 END ELSE BEGIN IF @ISSAM4 = 1 BEGIN SELECT @TUTNUMVALUE = CTN.[NumValue] FROM [dbo].[CtrlNum] CTN WHERE CTN.[Code] = 'TimeUnit' END SET @TUTNUMVALUE = CASE WHEN ISNULL(@TUTNUMVALUE, 0) = 0 THEN 6 ELSE @TUTNUMVALUE END END IF @Time >= 0 BEGIN SET @UNITS = Ceiling(CONVERT(FLOAT, @Time) / CONVERT(FLOAT, @TUTNUMVALUE)) END ELSE BEGIN SET @UNITS = -Ceiling(CONVERT(FLOAT, -@Time) / CONVERT(FLOAT, @TUTNUMVALUE)) END SET @Time = @UNITS * @TUTNUMVALUE /********************************** * John - Recalculating units END * **********************************/ SET @CHARGE = CASE @TYPE WHEN 'C' THEN @Rate ELSE @Rate * (@Time / 60.0) END UPDATE TIE SET TIE.[DATE] = @Date, TIE.[TIME] = @Time, TIE.[Task] = @Task, TIE.[RATE] = @Rate, TIE.[CHARGE] = @CHARGE, TIE.[Units] = @UNITS, TIE.[COMMENT] = @Comment, TIE.[REC_IRR] = @IsChargeable FROM [dbo].[TimeEntry] TIE WHERE TIE.[RecordID] = @RecordID EXEC [dbo].[ky_WDUpdateMatterTimeBalance] @MatterCode END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UpdateTimeEntryFromDayBook' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UpdateTimeEntryFromDayBook] END GO CREATE PROCEDURE [dbo].[KAAS_UpdateTimeEntryFromDayBook] (@HANDLER VARCHAR(10), @UPDByHandler VARCHAR(10), @User NVARCHAR(128)) AS /******************************************************************************************************* * Update TimeEntry values * * * * Stored Procedure Name : [dbo].[KAAS_UpdateTimeEntryFromDayBook] * * Copied from : [dbo].[ky_NETUpdateTimeEntryFromDayBook] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET @UPDByHandler = RTRIM(ISNULL(@UPDByHandler, '')) SET @User = RTRIM(ISNULL(@User, N'')) DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N'INSERT INTO [dbo].[TimeEntryLogNew] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [CHARGE], [TASK], [TIMEORCHARGE], [COMMENT], [BILLED], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [SHOULDHAVE], [INVOICENO], [PERIOD], [YEAR], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [RECORDID], [ActionId], [StageCode], [Leave], [BilledAmount], [IncludeInBill], [BILLINGDATE], [AxleNumber], [WriteOffDT], [WriteOffID], [LogFor]' IF @Handler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', [HandlerLogFor]' END IF @User <> N'' BEGIN SET @NCOMMAND = @NCOMMAND + N', [LoginLogFor]' END SET @NCOMMAND = @NCOMMAND + N') SELECT [TIE].[MATTER], [TIE].[FEEEARN], [TIE].[DATE], [TIE].[TIME], [TIE].[RATE], [TIE].[CHARGE], [TIE].[TASK], [TIE].[TIMEORCHARGE], [TIE].[COMMENT], [TIE].[BILLED], [TIE].[NCCODE], [TIE].[DOCKET], [TIE].[TEAM], [TIE].[TRACKREF], [TIE].[REC_IRR], [TIE].[SHOULDHAVE], [TIE].[INVOICENO], [TIE].[PERIOD], [TIE].[YEAR], [TIE].[BILLINGPERIOD], [TIE].[BILLINGYEAR], [TIE].[OPENINV], [TIE].[RECORDID], [TIE].[ActionId], [TIE].[StageCode], [TIE].[Leave], [TIE].[BilledAmount], [TIE].[IncludeInBill], [TIE].[BILLINGDATE], [TIE].[AxleNumber], [TIE].[WriteOffDT], [TIE].[WriteOffID], ''C''' IF @UPDByHandler <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @UPDByHandler' END IF @User <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N', @User' END SET @NCOMMAND = @NCOMMAND + N' FROM [dbo].[WDNTEID] [NTEID] INNER JOIN [dbo].[TimeEntry] [TIE] ON [TIE].[RecordId] = NTEID.[NEWID] WHERE [NTEID].[HANDLER] = @Handler' EXEC sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @UPDByHandler VARCHAR(10), @User NVARCHAR(128)', @Handler, @UPDByHandler, @User UPDATE TIE SET TIE.[Charge] = CASE WHEN RTRIM(ISNULL(TIE.[MATTER], '~')) <> '~' THEN TDB.[CHARGE] ELSE 0 END, TIE.[REC_IRR] = CASE WHEN RTRIM(ISNULL(TIE.[MATTER], '~')) <> '~' THEN TIE.[REC_IRR] WHEN RTRIM(ISNULL(TIE.[REC_IRR], '')) = '' THEN 'C' ELSE TIE.[REC_IRR] END, TIE.[Units] = TDB.[Units], TIE.[MatterLevel] = TDB.[MatterLevel], TIE.[FEERate] = TDB.[FEERate], TIE.[ChargedMins] = TDB.[ChargedMins], TIE.[FEECost] = TDB.[FEECost], TIE.[TaskLevel] = TDB.[TaskLevel], TIE.[EntryDate] = TDB.[EntryDate], TIE.[ModifyDate] = TDB.[ModifyDate], TIE.[Leave] = TDB.[Leave], TIE.[TEAM] = HAN.[TEAM], TIE.[INVOICENO] = (CASE WHEN ISNULL(MAT.[OpenInvoiceNo], 0) <> 0 THEN MAT.[OpenInvoiceNo] ELSE 0 END), TIE.[OPENINV] = (CASE WHEN ISNULL(MAT.[OpenInvoiceNo], 0) <> 0 THEN 'Y' ELSE 'N' END), TIE.[BilledAmount] = (CASE WHEN ISNULL(MAT.[OpenInvoiceNo], 0) <> 0 THEN TDB.[Charge] ELSE 0 END), TIE.[IncludeInBill] = (CASE WHEN ISNULL(MAT.[OpenInvoiceNo], 0) <> 0 THEN 1 ELSE 0 END), TIE.[AxleNumber] = 0 FROM [dbo].[WDNTEID] NTEID INNER JOIN [dbo].[TimeDayBook] TDB ON TDB.[RECORDID] = NTEID.[RECORDID] INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RecordId] = NTEID.[NEWID] LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = TIE.[MATTER] INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = TIE.[FEEEARN] WHERE NTEID.[HANDLER] = @Handler UPDATE MAT SET MAT.[ChargeBal] = MAT.[ChargeBal] + CASE ISNULL(MAT.[OpenInvoiceNo], 0) WHEN 0 THEN TDB.[Charge] ELSE 0 END, MAT.[TimeBal] = MAT.[TimeBal] --2018-02-22 WAS MAT.[ChargeBal] ! + CASE ISNULL(MAT.[OpenInvoiceNo], 0) WHEN 0 THEN TDB.[Time] ELSE 0 END FROM [dbo].[WDNTEID] NTEID INNER JOIN [dbo].[TimeDayBook] TDB ON TDB.[RECORDID] = NTEID.[RECORDID] AND TDB.[REC_IRR] = 'C' LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = TDB.[MATTER] WHERE NTEID.[HANDLER] = @HANDLER END GO IF OBJECT_ID(N'KAAS_UpdateWorkActionType',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_UpdateWorkActionType] GO CREATE PROCEDURE [dbo].[KAAS_UpdateWorkActionType] (@MatterCode VARCHAR(20), @CasePlan VARCHAR(5)) AS /******************************************************************************************************* * This procedure is used to update work Action type based on Matter Code AND Case plan * * * * Stored Procedure Name : [dbo].[KAAS_UpdateWorkActionType] * * Copied from : [dbo].[ky_NETMATUpdateWorkActionType] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON INSERT INTO [dbo].[CaseUDFAnswers] ([CASECODE], [UDFFILE], [UDFNAME], [SEQNO], [DateValue], [NumberValue], [ForCopy], [TEXT1]) SELECT x.[MatterCode], x.[UDFILE], x.[UDFName], x.[UDSEQ], x.[UDFDate], x.[NumberValue], x.[ForCopy], x.[Text1] FROM ( SELECT @MatterCode As [MatterCode], UTWT.[UDFILE], UTWT.[UDUVCODE] AS [UDFName], MIN(UTWT.[UDSEQ]) AS [UDSEQ], NULL AS [UDFDate], 0 AS [NumberValue], NULL AS [ForCopy], NULL AS [Text1] FROM [dbo].[UDFTemplatesWorkTypes] UTWT WHERE UTWT.[UDWKCODE] = @CasePlan GROUP BY UTWT.[UDFILE], UTWT.[UDUVCODE]) x LEFT OUTER JOIN [dbo].[CaseUDFAnswers] CA ON CA.[CASECODE] = x.[MatterCode] AND CA.[UDFFILE] = x.[UDFILE] AND CA.[UDFNAME] = x.[UDFName] WHERE CA.[CASECODE] IS NULL ORDER BY X.[UDSEQ] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_UserCanPostTime' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_UserCanPostTime] END GO CREATE PROCEDURE [dbo].[KAAS_UserCanPostTime]( @MATTER VARCHAR(20), @HANDLER VARCHAR(20), @RECORDID VARCHAR(20) ) AS /******************************************************************************************************* * Please look at [dbo].[KAAS_FN_UserCanPostTime] for details on how the function works, * * as this is just a wrapper procedure which calls the function. * * * * Stored Procedure Name : [dbo].[KAAS_UserCanPostTime] * * Copied from : [dbo].[ky_NETUserCanPostTime] * * * * Modification History : * * 2019-05-17 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @ID INT IF (@RECORDID IS NOT NULL AND ISNUMERIC(@RECORDID) = 1) BEGIN SET @ID = CONVERT(INT, @RECORDID) END SELECT ISNULL([dbo].[KAAS_FN_UserCanPostTime](@MATTER, @HANDLER, @ID), 0) AS [CODE] END GO IF OBJECT_ID(N'KAAS_ValidateContactsCode',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_ValidateContactsCode] GO CREATE PROCEDURE [dbo].[KAAS_ValidateContactsCode] (@Code VARCHAR(20)) AS /******************************************************************************************************* * This procedure is used to check the contact already exists or not in * * current client details -> corporate Page.. * * * * Stored Procedure Name : [dbo].[KAAS_ValidateContactsCode] * * Copied from : [dbo].[ky_NETValidateContactsCode] * * * * Modification History : * * 2019-04-13 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON IF EXISTS(SELECT 1 FROM [dbo].[Contacts] C WHERE C.[Code] = @Code) BEGIN SELECT C.Name FROM [dbo].[Contacts] C WHERE C.Code = @Code END ELSE BEGIN SELECT '0' AS [Description] END SET NOCOUNT OFF END GO --Drop this. Incorrect naming convention IF EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spValidateEnteredActionCode]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spValidateEnteredActionCode] GO IF EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KAAS_ValidateEnteredActionCode]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[KAAS_ValidateEnteredActionCode] GO /****** Object: StoredProcedure [dbo].[KAAS_ValidateEnteredActionCode] Script Date: 04/11/2019******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[KAAS_ValidateEnteredActionCode] (@ActionCode AS VARCHAR(20)) AS /******************************************************************************************************* * Checks that the entered Action Code is valid and returns the Description * * * * Stored Procedure Name : [dbo].[KAAS_ValidateEnteredActionCode] * * Copied from : [dbo].[ky_NETSPValidateEnteredActionCode] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ BEGIN IF EXISTS(SELECT 1 FROM [dbo].[TemplateActions] TAC WHERE TAC.[ActionCode] = @ActionCode) SELECT TAC.[DESC] FROM [dbo].[TemplateActions] TAC WHERE TAC.[ACTIONCODE] = @ActionCode ELSE SELECT 0 END GO IF OBJECT_ID(N'KAAS_ValidateEnteredCase',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_ValidateEnteredCase] GO CREATE PROCEDURE [dbo].[KAAS_ValidateEnteredCase] (@Code VARCHAR(20)) AS /******************************************************************************************************* * This procedure is used fetch the data for add action Page. * * * * Stored Procedure Name : [dbo].[KAAS_ValidateEnteredCase] * * Copied from : [dbo].[ky_NETValidateEnteredCase] * * * * Modification History : * * 2019-04-11 Vinodhan K Created * *******************************************************************************************************/ BEGIN IF EXISTS(SELECT 1 FROM [dbo].[Matters] MAT WHERE MAT.[Code] = @Code AND MAT.[Closed] = 'N' ) BEGIN SELECT MAT.[Description] FROM [dbo].[Matters] MAT WHERE MAT.[Code] = @Code AND MAT.[Closed] = 'N' END ELSE BEGIN SELECT '0' AS [Description] END END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_ValidateHandlerByCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_ValidateHandlerByCode] END GO CREATE PROCEDURE [dbo].[KAAS_ValidateHandlerByCode] (@Handler NVARCHAR(30)) AS /********************************************************************************************************************* * * Checks the availability of HANDLER based on handler code and E-mail ID * * Stored Procedure : KAAS_ValidateHandlerByCode * * Created By : Prabhu.V * * Modification History * 2020-07-23 Prabhu Created KAAS_ValidateHandlerByCode * *********************************************************************************************************************/ BEGIN SELECT [Code], [Email], [PhoneNumber] FROM DBO.[Handlers] WHERE [Code] like '%' + @Handler + '%' OR [Email] like '%' + @Handler + '%' END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_WizFetchContactCode' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_WizFetchContactCode] END GO CREATE PROCEDURE KAAS_WizFetchContactCode (@ClientCodePrefix VARCHAR(10), @Result VARCHAR(10) OUTPUT, @Error VARCHAR(100) OUTPUT) AS /******************************************************************************************************* * Description: This procedure generates client code AS per the settings in * * Table : Control * * Column : AutoAlphaClientNumbering. * * * * Stored Procedure Name : [dbo].[KAAS_WizFetchContactCode] * * Copied from : [dbo].[ky_NETWizFetchContactCode] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @IsClientCodeAutoGen BIT DECLARE @MaxClientCode INT DECLARE @NewNumber INT DECLARE @NewSuffix VARCHAR(10) DECLARE @AutoClientCode VARCHAR(20) DECLARE @PrefixCode VARCHAR(10) SET @PrefixCode = '0000000000' SET @AutoClientCode = (SELECT ISNULL(AUTONUMBER,'N') from [control] ) -- Get the maximum length of the Client Code. Read Settings first... SELECT @MaxClientCode = [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'MaxClCode' -- ... and default if not present. 8 for SAM4, 6 for SAM3 IF (@MaxClientCode IS NULL) BEGIN IF ([dbo].[ISSAM4]() = 0) BEGIN SET @MaxClientCode = 6 END ELSE BEGIN SET @MaxClientCode = 8 END END IF(@AutoClientCode='N') BEGIN -- Trim the prefix SELECT @ClientCodePrefix = RTRIM(ISNULL(@ClientCodePrefix, '')) -- Truncate the prefix if it's too long IF (LEN(@ClientCodePrefix) > @MaxClientCode) BEGIN SET @ClientCodePrefix = SUBSTRING(@ClientCodePrefix, 1, @MaxClientCode) END -- Find out how to pad the Client Code. Either add a number, or pad with blanks. -- Default 1 - Add a number SET @IsClientCodeAutoGen = 1 -- Read from [dbo].[Control]. Value should be 'Y', translating to 1 or 'N' translating to 0. -- default value is 1 ('Y'), so anything other than an explicit 'N' will be read as 'Y' SELECT @IsClientCodeAutoGen = CASE WHEN ISNULL(CTL.[AutoAlphaClientNumbering], 'Y') = 'N' THEN 0 ELSE 1 END FROM [dbo].[Control] CTL IF (@IsClientCodeAutoGen = 1) BEGIN -- Get all the contacts that have a numeric suffix for the Prefix that was passed in, and get the largest one in order to -- increment by one. -- Added CONVERT(INT) here to give us numerically largest value - John -- Added a PATINDEX() to make sure we don't have any non-numeric characters that pass ISNUMERIC() SELECT @NewNumber = ISNULL(MAX(CONVERT(INT, NUF.[SUF])), 0) + 1 FROM (SELECT SUBSTRING(CON.[Code], LEN(@ClientCodePrefix) + 1, LEN([Code]) - LEN(@ClientCodePrefix)) AS [SUF] FROM [dbo].[Contacts] CON WHERE CON.[Code] LIKE @ClientCodePrefix + '%' AND ISNUMERIC(SUBSTRING(CON.[Code], LEN(@ClientCodePrefix) + 1, LEN([Code]) - LEN(@ClientCodePrefix))) = 1 AND PATINDEX('%[\,.$£€+-\D\E]%', SUBSTRING(CON.[Code], LEN(@ClientCodePrefix) + 1, LEN([Code]) - LEN(@ClientCodePrefix))) = 0) NUF -- Pad new suffix with zeros SET @NewSuffix = SUBSTRING(CONVERT(VARCHAR(11), CONVERT(BIGINT, POWER(CONVERT(BIGINT, 10), @MaxClientCode)) + @NewNumber), 2, @MaxClientCode) -- Because we truncated the Prefix if it's too long we can now be sure that the prefix is at most as long as @MaxClientCode, so we can easily append -- the suffix to the prefix: SET @NewSuffix = @ClientCodePrefix + SUBSTRING(@NewSuffix, LEN(@ClientCodePrefix) + 1, @MaxClientCode - LEN(@ClientCodePrefix)) END ELSE BEGIN SET @NewSuffix = SUBSTRING(@ClientCodePrefix + ' ', 1, @MaxClientCode) END END ELSE BEGIN DECLARE @NextClientNo INT IF [dbo].[ISSAM4]() = 1 BEGIN DECLARE @NCOMMAND NVARCHAR(MAX) SET @NCOMMAND = N'SELECT @NextClientNo = CONVERT(INT, CTN.[NumValue]) FROM [dbo].[CtrlNum] CTN WHERE CTN.[Code] = ''NextClientNo''' EXEC sp_executesql @NCOMMAND, N'@NextClientNo INT OUTPUT', @NextClientNo OUTPUT END IF @NextClientNo IS NOT NULL WHILE EXISTS (SELECT TOP 1 1 FROM [dbo].[Contacts] CNT WHERE CASE WHEN ISNUMERIC(CNT.[Code]) = 0 THEN 0 ELSE CONVERT(INT, CONVERT(FLOAT, CNT.[CODE])) END = @NextClientNo) BEGIN SET @NextClientNo = @NextClientNo + 1 END IF (@NextClientNo IS NOT NULL) BEGIN SET @NewSuffix = SUBSTRING(CONVERT(VARCHAR(10), POWER(10, @MaxClientCode) + @NextClientNo), 2, @MaxClientCode) END ELSE BEGIN SELECT @NewSuffix = SUBSTRING(CONVERT(VARCHAR(10), CASE WHEN NCC.[NewContactNo] >= NCL.[NewClientNo] THEN NCC.[NewContactNo] ELSE NCL.[NewClientNo] END), 2, @MaxClientCode) FROM (SELECT POWER(10, @MaxClientCode) + ISNULL(MAX(CONVERT(INT, CON.[CODE])), 0) + 1 AS [NewContactNo] FROM [dbo].[Contacts] CON WHERE ISNUMERIC(CON.[CODE]) = 1 AND CHARINDEX('D',con.[code])=0 AND CHARINDEX('E',con.[Code])=0 AND CHARINDEX(',',con.[Code])=0 AND CHARINDEX('.', CON.[CODE]) = 0) NCC CROSS APPLY (SELECT POWER(10, @MaxClientCode) + ISNULL(MAX(CONVERT(INT, CLT.[CLCODE])), 0) + 1 AS [NewClientNo] FROM [dbo].[client] CLT WHERE ISNUMERIC(CLT.[CLCODE]) = 1 AND CHARINDEX('D',CLT.[CLCODE])=0 AND CHARINDEX('E',CLT.[CLCODE])=0 AND CHARINDEX(',',CLT.[CLCODE])=0 AND CHARINDEX('.', CLT.[CLCODE]) = 0) NCL END END IF EXISTS (SELECT TOP 1 1 FROM [dbo].[client] CLT WHERE RTRIM(CLT.[CLCODE]) = RTRIM(@NewSuffix)) BEGIN SET @Result = '0' SET @Error = 'Client Code ''' + RTRIM(@NewSuffix) + ''' is already in use' END ELSE BEGIN IF(LEN(@NewSuffix)<=@MaxClientCode ) BEGIN SET @Result = @NewSuffix SET @Error = '0' END ELSE BEGIN SET @Result = '0' SET @Error = 'Client Code length exceed the maximum limit, Auto Client code cannot be generate.' END END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_WizFetchMatterWizardData',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_WizFetchMatterWizardData] GO CREATE PROCEDURE [dbo].[KAAS_WizFetchMatterWizardData] ( @LoginHandlerCode VARCHAR(20) , @SearchText VARCHAR(4000) = '', @PageSize INT = NULL ) AS /******************************************************************************************************* * This will load the following data's for new case wizard, * * 1. Client contacts, * * 2. Fee Earners List, * * 3. Handlers * * 4. Departments, * * 5. Work Types, * * 6. Case Plan * * * * Stored Procedure Name : [dbo].[KAAS_WizFetchMatterWizardData] * * Copied from : NA * * * * Modification History: * * 2019-04-23 Vinodhan K Created * * 2021-07-13 Balamurugan C Modified-Include Retired condition for branch * * 2022-06-10 Sadiq Added COndition to get only Page size records when page size is Passed * * 2022-10-20 Ghayathri.S.V Modified-Included PageNumber as the input parameter to KAAS_GetContactsByHandlerPrivilege * *******************************************************************************************************/ BEGIN SET NOCOUNT ON --SELECT -- RTRIM(LTRIM([Code])) AS Code -- , RTRIM(LTRIM([Name])) AS Name -- , RTRIM(LTRIM([Address])) AS [Address] --FROM -- Contacts --WHERE -- ISNULL([Code],'') IN -- ( -- EXEC ( KAAS_GetContactsByHandlerPrivilege @LoginHandlerCode) -- ) DECLARE @PageNumber INT; SET @PageNumber = 1; EXEC KAAS_GetContactsByHandlerPrivilege @LoginHandlerCode,@SearchText,@PageSize,@PageNumber SELECT RTRIM([Code]) AS Code, RTRIM(ISNULL([Name],'')) AS FeeEarners FROM Feeearnercodes WHERE Retired <> 'Y' SELECT RTRIM([Code]) AS Code, RTRIM([Name]) AS Partners FROM Handlers WHERE [TYPE] ='P' AND [RETIRED] <> 'Y' SELECT RTRIM([Code]) AS Code, RTRIM([Desc]) AS Department FROM Departments WHERE Retired <> 'Y' SELECT RTRIM([Code]) AS Code, RTRIM(ISNULL([Desc],'')) AS WorkTypes FROM Worktypes WHERE Retired <> 'Y' SELECT RTRIM(WKCODE) AS Code, RTRIM(ISNULL(WKDESC,'')) AS CasePlan FROM Templates WHERE ((Dept = '') OR (Dept = ( SELECT Dept FROM Handlers WHERE (CODE = @LoginHandlerCode )))) AND Retired = 'N' SELECT [UserPrompt1],[UserPrompt2],[UserPrompt3], YourRef, AUTONUMBER AS [AutoNumber] FROM [CONTROL] SELECT ISNULL(KeyValue,'False') AS EstFeeRequiredMatterSetup FROM SETTINGS WHERE KeyName = 'EstFeeRequiredatMatterSetup' SELECT ISNULL(KeyValue,'False') AS ExpInvoiceDateRequiredAtMatterSetup FROM SETTINGS WHERE KeyName = 'ExpInvoiceDateRequiredAtMatterSetup' SELECT [BRANCHCODE] AS [Code], [DESCRIPTION] AS [Branch] FROM [dbo].[Branch] WHERE [Retired] <> 1 SELECT RTRIM(ISNULL(Branch,'')) AS Branch FROM Handlers WHERE RTRIM(CODE) = @LoginHandlerCode AND [Retired] <> 'Y' SELECT RTRIM(Code) AS Code, RTRIM(Name) AS Secretary FROM Handlers WHERE [Type] ='S' AND [Retired] <> 'Y' SELECT KeyValue AS [BranchRequiredAtMatterSetup] FROM Settings WHERE [KeyName] = 'NewCaseWizardBranch' SELECT RTRIM(ISNULL([ColourCode],'')) AS Code, RTRIM(ISNULL([ColourDesc],'')) AS FileDescription, [RGBColour] FROM FileColours WHERE Retired <> 'Y' --Code Configuration Declare @AutoNumberClient BIT Declare @AutoAlphaNumberingClient BIT Declare @MaxNumberOfMatters INT Declare @UniqueMatterCodeNumbering BIT Declare @MaxClientCode INT Declare @MaxMatterCode INT Declare @AutoNumberIfBlank BIT Declare @AllowManualEntryOnMatterCode BIT Declare @ManualClientCode BIT SELECT @AutoNumberClient = (CASE WHEN AUTONUMBER = 'Y' THEN 'True' ELSE 'False' END), @AutoAlphaNumberingClient = (CASE WHEN AUTOALPHACLIENTNUMBERING = 'Y' THEN 'True' ELSE 'False' END), @MaxNumberOfMatters = MAXNUMBEROFMATTERS, @UniqueMatterCodeNumbering = (CASE WHEN INDICATOR19 = 'Y' THEN 'True' ELSE 'False' END) FROM [CONTROL] SELECT @MaxClientCode = (CASE WHEN [SET].[KeyName] = 'MaxClCode' THEN [SET].[KeyValue] ELSE @MaxClientCode END), @MaxMatterCode = (CASE WHEN [SET].[KeyName] = 'MaxMatNum' THEN [SET].[KeyValue] ELSE @MaxMatterCode END), @AutoNumberIfBlank = (CASE WHEN [SET].[KeyName] = 'AutoNumberIfBlank' THEN [SET].[KeyValue] ELSE @AutoNumberIfBlank END), @AllowManualEntryOnMatterCode = (CASE WHEN [SET].[KeyName] = 'ShowMatterCode' THEN [SET].[KeyValue] ELSE @AllowManualEntryOnMatterCode END), @ManualClientCode = (CASE WHEN [SET].[KeyName] = 'ManualClientCode' THEN [SET].[KeyValue] ELSE ISNULL(@ManualClientCode,'False') END) FROM SETTINGS [SET] SELECT @MaxClientCode AS [MaxClientCode], @MaxMatterCode AS [MaxMatterCode], @AutoNumberIfBlank AS [AutoNumberIfBlank], @AllowManualEntryOnMatterCode AS [AllowManualEntryOnMatterCode], @AutoNumberClient AS [AutoNumberClient], @AutoAlphaNumberingClient AS [AutoAlphaNumberingClient], @MaxNumberOfMatters AS [MaxNumberOfMatters], @UniqueMatterCodeNumbering AS [UniqueMatterCodeNumbering], @ManualClientCode AS [ManualClientCode] SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_WizInsertNewContact' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_WizInsertNewContact] END GO CREATE PROCEDURE [dbo].[KAAS_WizInsertNewContact] (@Code VARCHAR(10), @Name VARCHAR(256), @Address VARCHAR(500), @Salut VARCHAR(256), @Tel VARCHAR(20), @Mobile VARCHAR(20), @Fax VARCHAR(20), @Email VARCHAR(50), @FeeEarner VARCHAR(10), @IsApproved BIT, @SecondaryEmail VARCHAR(40), @RSINo VARCHAR(50), @LoginCode VARCHAR(3), @PostalCode VARCHAR(100), @Result INT OUTPUT) AS /******************************************************************************************************* * This procedure is used to insert new contact AND It will return * * result 1 IF successful insert AND it will return 2 IF duplicate EXISTS. * * * * Stored Procedure Name : [dbo].[KAAS_WizInsertNewContact] * * Copied from : [dbo].[ky_NETWizInsertNewContact] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2021-08-13 Balamurugan C Added postal code column * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @CHARGELEVEL INT SELECT @CHARGELEVEL = ISNULL(CONVERT(INT, [SET].[KeyValue]), 3) FROM [dbo].[Settings] AS [SET] WHERE [SET].[KeyName] = 'DefaultClientChargeLevel' AND [SET].[KeyValue] IN ('1', '2', '3', '4', '5') SELECT @CHARGELEVEL = ISNULL(@CHARGELEVEL, 3) IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[Contacts] CON WHERE CON.[Code] = @Code) BEGIN INSERT INTO [dbo].[Contacts] ([Code], [Name], [Address], [Salut], [Tel], [Fax], [email], [FE], [Approved], [CompFrequency], [ChargeLevel], [SecondaryEmail], [RSINo], [Statements], [PostalCode], [ApprovedDate], [ApprovedByUSER]) VALUES(@Code, @Name, @Address, @Salut, @Tel, @Fax, @Email, @FeeEarner, @IsApproved, 'N', @CHARGELEVEL, @SecondaryEmail, @RSINo, 'Y', @PostalCode, CASE @IsApproved WHEN 1 THEN GETDATE() ELSE null END, CASE @IsApproved WHEN 1 THEN @LoginCode ELSE null END) SET @Result = 1 INSERT INTO [dbo].[client] ([CLCODE], [CLNAME], [CLFNR], [CLLEGALNAME], [CLTEL], [CLMOBNO], [CLNEXTCSENO], [CLCSECOUNT], [CLNUMCHILD], [CLADDR], [CLEMAIL]) VALUES(@Code, @Name, @FeeEarner, @Name, @Tel, @Mobile, 0, 0, 0, @Address, @Email) END ELSE BEGIN SET @Result = 2 END UPDATE CTL SET CTL.[LASTCLIENT] = [dbo].[KAAS_FNGetMaxNumericClient]() FROM [dbo].[control] CTL DECLARE @NextClientNo INT DECLARE @NCOMMAND NVARCHAR(MAX) IF [dbo].[ISSAM4]() = 1 BEGIN SET @NCOMMAND = N'SELECT @NextClientNo = CONVERT(INT, CTN.[NumValue]) FROM [dbo].[CtrlNum] CTN WHERE CTN.[Code] = ''NextClientNo''' EXEC sp_executesql @NCOMMAND, N'@NextClientNo INT OUTPUT', @NextClientNo OUTPUT END IF @NextClientNo IS NOT NULL BEGIN WHILE EXISTS (SELECT TOP 1 1 FROM [dbo].[Contacts] CNT WHERE CASE WHEN ISNUMERIC(CNT.[Code]) = 0 THEN 0 ELSE CONVERT(INT, CONVERT(FLOAT, CNT.[CODE])) END = @NextClientNo) BEGIN SET @NextClientNo = @NextClientNo + 1 END SET @NCOMMAND = N' UPDATE CTN SET CTN.[NumValue] = @NextClientNo FROM [dbo].[CtrlNum] CTN WHERE CTN.[Code] = ''NextClientNo''' EXEC sp_executesql @NCOMMAND, N'@NextClientNo INT', @NextClientNo END SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_WizInsertNewMatter' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_WizInsertNewMatter] END GO CREATE PROCEDURE [KAAS_WizInsertNewMatter] (@ClientCode VARCHAR(10), @MatterCode1 VARCHAR(20), @Description VARCHAR(200), @FeeEarnerCode VARCHAR(10), @PartnerCode VARCHAR(10), @DepartmentCode VARCHAR(10), @WorkType VARCHAR(10), @CasePlan VARCHAR(10), @OldReference VARCHAR(12), @YourReference VARCHAR(100), @FileReference VARCHAR(100), @UserReference2 VARCHAR(100), @UserReference3 VARCHAR(100), @LoginCode VARCHAR(10), @EstimateFee DECIMAL(17,2), @ExpectedDate DATETIME, @OutlayBudget DECIMAL(18,2), @IsFixedFee BIT, @MoneyLaunderingCheck SMALLINT, @MLDept VARCHAR(20), @MLFeeEarner VARCHAR(20), @MLWorkType VARCHAR(20), @MLCasePlan VARCHAR(20), @Branch CHAR(3), @Secretary VARCHAR(10), @FileColour VARCHAR(3), @BillingMatter VARCHAR(10), @Result VARCHAR(20) OUTPUT, @ResultFECode VARCHAR(500)OUTPUT) AS /******************************************************************************************************* * This procedure is used to insert new matter. This procedure will return 1 IF * * successful insert of new matter. * * * * Stored Procedure Name : [dbo].[KAAS_WizInsertNewMatter] * * Copied from : [dbo].[ky_NETWizInsertNewMatter] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2024-03-29 Vignesh M Modified - Outlay Budget parameter - decimal places has been changed * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @MatterCode VARCHAR(20) DECLARE @MatterCount INT DECLARE @Team VARCHAR(20) DECLARE @ActionId INT DECLARE @AssignNo INT DECLARE @OpenCount INT DECLARE @CaseCode VARCHAR(20) DECLARE @MatCodeLen INT DECLARE @MatCodeZeros VARCHAR(10) DECLARE @CompositeMatter VARCHAR(20) DECLARE @ClientFeeEarner VARCHAR(10) DECLARE @ChargeLevel TINYINT DECLARE @ClientAddress VARCHAR(15) --='' DECLARE @OfficeAddress VARCHAR(15) --= '' DECLARE @ClientStatement VARCHAR(5) SET @ChargeLevel = (SELECT ISNULL(ChargeLevel,3) FROM Contacts WHERE Code=@ClientCode) SET @ClientStatement = (SELECT ISNULL(Statements,'Y') FROM Contacts WHERE Code = @ClientCode) IF NOT(@Branch = '') BEGIN SET @ClientAddress = (SELECT ISNULL(DEFCLIENT,'') FROM Branch WHERE BRANCHCODE = @Branch) SET @OfficeAddress = (SELECT ISNULL(DEFOFFICE,'') FROM Branch WHERE BRANCHCODE = @Branch) END SET @ClientAddress = RTRIM(ISNULL(@ClientAddress, '')) SET @OfficeAddress = RTRIM(ISNULL(@OfficeAddress, '')) SELECT @MatCodeLen = [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'MaxMatNum' SET @MatCodeLen = ISNULL(@MatCodeLen, 4) --PINO02 start SET @MatCodeZeros = SUBSTRING('0000000000', 1, @MatCodeLen) --PINO02 end --2015-05-07 START DECLARE @MAXNUM INT SELECT @MAXNUM = ISNULL(MAX([FILENUM]), 0) FROM [dbo].[matters] SELECT @MAXNUM = CASE WHEN [NEXTFILE] > @MAXNUM THEN [NEXTFILE] ELSE @MAXNUM END FROM [dbo].[control] --2015-05-07 END IF(@MoneyLaunderingCheck=2) BEGIN --Matters IF NOT EXISTS(SELECT TOP 1 1 FROM Matters WHERE CODE = @ClientCode + '/' + @MatCodeZeros) --PINO02 BEGIN --2015-05-07 START SET @MAXNUM = @MAXNUM + 1 UPDATE CTL SET [NEXTFILE] = @MAXNUM FROM [dbo].[control] CTL --2015-05-07 END INSERT INTO [dbo].[matters] ([Code], [ClientCode], [Matter], [Description], [FECode], [Partner], [Dept], [WType], [Permissions], [Publish], [FileNum], --2015-05-07 [Started], --PINO01 [Branch], [Secretary], [ChargeLevel], [ClientBankAc], [OfficeBankAc], [FileColour], [Statements]) SELECT INS.[Code], INS.[ClientCode], INS.[Matter], INS.[Description], INS.[FECode], INS.[Partner], INS.[Dept], INS.[WType], INS.[Permissions], INS.[Publish], @MAXNUM, --2015-05-07 MST.[Started], --PINO01 INS.[Branch], INS.[Secratery], INS.[ChargeLevel], INS.[ClientBankAc], INS.[OfficeBankAc], INS.[FileColour], INS.[Statements] FROM (SELECT @ClientCode +'/'+@MatCodeZeros AS [Code], --PINO02 @ClientCode AS [ClientCode], @MatCodeZeros AS [Matter], --PINO02 'Document matter' AS [Description], @MLFeeEarner AS [FECode], @PartnerCode AS [Partner], @MLDept AS [Dept], @MLWorkType AS [WType], 0 AS [Permissions], 'N' AS [Publish], @Branch AS [Branch], @Secretary AS [Secratery], @ChargeLevel AS [ChargeLevel], @ClientAddress AS [ClientBankAc], @OfficeAddress AS [OfficeBankAc], @FileColour AS [FileColour], @ClientStatement AS [Statements]) INS CROSS APPLY (SELECT ISNULL(MIN(MAT.[Started]), GetDate()) AS [Started] --PINO01 FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = @ClientCode) MST --CaseMaster INSERT INTO [dbo].[CaseMaster] ([CSCODE], [CSCLIENTCDE], [CSFNR], [CSDESC], [CSWKTCODE], [CSDATEENTERED_DATE]) SELECT MAT.[Code], MAT.[ClientCode], MAT.[FECode], MAT.[Description], @MLCasePlan, MAT.[Started] FROM [dbo].[matters] MAT WHERE MAT.[Code] = @ClientCode + '/' +@MatCodeZeros --PINO02 END END -- 2015-10-23 John @MatterCount is now the maximum matter found in [dbo].[matters].[Matter] SET @MatterCount = ISNULL((SELECT TOP 1 MAX(MAT.[Matter]) FROM [dbo].[matters] AS MAT WHERE ISNUMERIC(MAT.[Matter]) = 1 AND MAT.[ClientCode] = @ClientCode), 0) + 1 IF(@MatterCode1 = '') BEGIN SET @MatterCode = @MatCodeZeros + CONVERT(VARCHAR(10), @MatterCount) --PINO02 SET @MatterCode = REVERSE(SUBSTRING(REVERSE(@MatterCode), 1, @MatCodeLen)) --PINO02 END ELSE BEGIN SET @MatterCode = @MatterCode1 END --2015-05-07 START SET @MAXNUM = @MAXNUM + 1 UPDATE CTL SET [NEXTFILE] = @MAXNUM FROM [dbo].[control] CTL --2015-05-07 END -- KEYD-3919: CompositeBilling Indiactor IF @BillingMatter='OldMatter' BEGIN SELECT @CompositeMatter = RTRIM(ISNULL(CTC.[CompMatter], '')), @ClientFeeEarner = RTRIM(ISNULL(CTC.[FE], '')) FROM [dbo].[Contacts] CTC WHERE CTC.[Code] = @ClientCode END ELSE BEGIN Set @CompositeMatter='' END INSERT INTO [dbo].[matters] ([Code], [ClientCode], [Matter], [Description], [FECode], [Partner], [Dept], [FileNum], --2015-05-07 [Started], [WType], [YourRef], [OldRef], [User1], [User2], [User3], [EstFee], [ExpBillD], [OutlayBud], [FixedFee], [Branch], [CompBillingMatter], [CompFrequency], --2015-11-23 [Secretary], [ClientBankAc], [OfficeBankAc], [FileColour], [PCode], [PFECode], [Statements]) VALUES(@ClientCode + '/' + @MatterCode, @ClientCode, @MatterCode, @Description, @FeeEarnerCode, @PartnerCode, @DepartmentCode, @MAXNUM, --2015-05-07 GETDATE(), @WorkType, @YourReference, @OldReference, @FileReference, @UserReference2, @UserReference3, @EstimateFee, @ExpectedDate, @OutlayBudget, CASE WHEN @IsFixedFee = 'True' THEN 'Y' ELSE 'N' END, @Branch, @CompositeMatter, 'N', --2015-11-23 @Secretary, @ClientAddress, @OfficeAddress, @FileColour, @ClientCode + '/' + @MatterCode, @FeeEarnerCode, @ClientStatement) SET @CaseCode = @ClientCode + '/' + @MatterCode INSERT INTO [dbo].[CaseMaster] ([CSCODE], [CSCLIENTCDE], [CSFNR], [CSDESC], [CSWKTCODE], [CSDATEENTERED_DATE]) VALUES(@ClientCode + '/' + @MatterCode, @ClientCode, @FeeEarnerCode, CONVERT(VARCHAR(50), @Description), @CasePlan, GETDATE()) ----Case UDF EXEC KAAS_UpdateWorkActionType @CaseCode, @CasePlan --Gettting Open Matter Count SELECT @OpenCount = count(MAT.[Matter]) FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = @ClientCode AND ISNULL(MAT.[Closed], 'N') <> 'Y' --Update Last Matter Count UPDATE CTC SET CTC.[LastMatter] = @MatterCount, CTC.[OpenMatters] = @OpenCount, CTC.[Client] = 'Y' FROM [dbo].[Contacts] CTC WHERE CTC.[Code] = @ClientCode --Update Next Doc number - Arun --UPDATE -- [control] --SET -- NEXT_DOC_NO = 0 SELECT @Team = HAN.[Team] FROM [dbo].[Handlers] HAN WHERE HAN.[CODE] = @FeeEarnerCode --PINO 2015-09-30 START EXEC @ActionID = [dbo].[KAAS_GetNextActionID] --SELECT @ActionId = ISNULL(MAX(ActionId), 0) --PINO03 -- FROM [dbo].[diary] SET @ActionID = @ActionID - 1 --addition of sequence numbers below --PINO 2015-09-30 END DECLARE @FEDel VARCHAR(10) DECLARE @FESec VARCHAR(10) DECLARE @FEDelEmpty CHAR(1) DECLARE @FESecEmpty CHAR(1) --DECLARE @Assign VARCHAR(10) --SELECT @Assign = CASE [TMP].[AssignActionTo] -- WHEN 'D' THEN 'Del' -- WHEN 'S' THEN 'Sec' -- ELSE '' END -- FROM [dbo].[TemplateActions] [TMP] -- Inner Join [dbo].[ActionWorkTypes] AWT -- ON TMP.[ACTIONCODE]=awt.ACTIONCODE -- AND TMP.[AutoPopulate]='Y' -- WHERE AWT.WORKTYPE=@CasePlan SELECT @FEDel= HAN.[Delegate] FROM Handlers HAN WHERE CODE= (SELECT FECODE from matters where CODE=@ClientCode + '/' + @MatterCode) SELECT @FESec = Secretary from Matters WHERE Code=@ClientCode + '/' + @MatterCode If @FESec ='' OR @FESec = null BEGIN SET @FESecEmpty = 'Y' SELECT @FESec=HAN.[Delegate] FROM Handlers HAN WHERE CODE= (SELECT FECODE from matters where CODE=@ClientCode + '/' + @MatterCode) END ELSE SET @FESecEmpty = 'N' IF @FEDel = '' or @FEDel=null BEGIN SET @FEDelEmpty = 'Y' SET @FEDel=@LoginCode END ELSE SET @FEDelEmpty = 'N' IF @FESec = '' or @FEDel=null BEGIN SET @FESec=@LoginCode END DECLARE @RETURNDEFAULTFAILURES VARCHAR(500) DECLARE @NewDiary TABLE ([CASECODE] VARCHAR(20), [DATE] DATETIME, [STATUS] SMALLINT, [ACTIONCODE] VARCHAR(15), [ACTIONSTATUS] VARCHAR(3), [ACTIONTYPE] VARCHAR(1), [PROCESSTYPE] VARCHAR(1), [FNCODE] VARCHAR(10), [ASSIGN] VARCHAR(500), [TEAMCODE] VARCHAR(10), [TEXT1] VARCHAR(MAX), [IMAGENO] INT, [DUEDATE] DATETIME, [PUBLISH] VARCHAR(1), [DYSTARTTIME] VARCHAR(10), [DYENDTIME] VARCHAR(10), [DURATION] SMALLINT, [ACTIONID] INT, [ORGINALACTIONID] INT, [PRIORITY] VARCHAR(1), [HIGHLIGHTED] VARCHAR(1), [MILESTEONETYPE] VARCHAR(12), [PROCESSSTATUS] SMALLINT, [WORKPROCESS] SMALLINT, [BILLABLE] INT, [ACTIONCATEGORY] CHAR(1)) --Insert Diary - first insert into @NewDiary, then use @NewDiary to drive the inserts into -- Diary and DiaryDelegations INSERT INTO @NewDiary ([CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [ASSIGN], [TEAMCODE], [TEXT1], [IMAGENO], [DUEDATE], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [DURATION], [ACTIONID], [ORGINALACTIONID], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [ACTIONCATEGORY]) --ActionCategory for DiaryDelegations, below SELECT @ClientCode + '/' + @MatterCode, GETDATE(), '0', TAC.[ACTIONCODE], TAC.[STATUS], TAC.[ACTTYPE], TAC.[PROCESSTYPE], CASE WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L')) ='L' THEN @LoginCode WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='C' THEN @FeeEarnerCode WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='P' THEN @PartnerCode WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='F' THEN @ClientFeeEarner WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='O' THEN TAC.[ASSIGNHANDLER] WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='D' THEN (@FEDel) WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='S' THEN @FESec ELSE @LoginCode END, CASE WHEN (RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='D' AND @FEDelEmpty='Y') THEN TAC.[ACTIONCODE] + '- Empty Delegate, ' WHEN (RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='S' AND @FESecEmpty='Y') THEN TAC.[ACTIONCODE] + '- Empty Secretary, ' ELSE '' END, @Team, TAC.[DESC], '0', GETDATE(), TAC.[PUBLISHER], [dbo].[ky_ConvertTimeToClarion](CONVERT(VARCHAR(20), GETDATE(), 8)), [dbo].[ky_ConvertTimeToClarion](CONVERT(VARCHAR(20), GETDATE(), 8)), '0', @ActionId + (ROW_NUMBER() OVER (ORDER BY TAC.[desc])), @ActionId + (ROW_NUMBER() OVER (ORDER BY TAC.[desc])), CASE SUBSTRING(RTRIM(ISNULL(TAC.[Priority], 'N')), 1, 1) WHEN 'H' THEN 'H' WHEN 'L' THEN 'L' ELSE 'N' END, TAC.[HIGHLIGHTED], TAC.[MILESTONETYPE], '0', '0', CASE RTRIM(ISNULL(TAC.[BILLABLE], 'N')) WHEN 'Y' THEN 1 ELSE 0 END, TAC.[ACTIONCATEGORY] --ActionCategory for DiaryDelegations, below FROM [dbo].[ActionWorkTypes] AWT INNER JOIN [dbo].[TemplateActions] TAC ON TAC.[ACTIONCODE] = AWT.[ACTIONCODE] AND TAC.[AutoPopulate] = 'Y' WHERE AWT.[WORKTYPE] = @CasePlan SET @RETURNDEFAULTFAILURES='' SELECT @RETURNDEFAULTFAILURES = @RETURNDEFAULTFAILURES+Assign from @NewDiary Set @ResultFECode=@RETURNDEFAULTFAILURES INSERT INTO [dbo].[diary] ([CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [IMAGENO], [DUEDATE], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [DURATION], [ACTIONID], [ORGINALACTIONID], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE]) SELECT NDIA.[CASECODE], NDIA.[DATE], NDIA.[STATUS], NDIA.[ACTIONCODE], NDIA.[ACTIONSTATUS], NDIA.[ACTIONTYPE], NDIA.[PROCESSTYPE], NDIA.[FNCODE], NDIA.[TEAMCODE], NDIA.[TEXT1], NDIA.[IMAGENO], NDIA.[DUEDATE], NDIA.[PUBLISH], NDIA.[DYSTARTTIME], NDIA.[DYENDTIME], NDIA.[DURATION], NDIA.[ACTIONID], NDIA.[ORGINALACTIONID], NDIA.[PRIORITY], NDIA.[HIGHLIGHTED], NDIA.[MILESTEONETYPE], NDIA.[PROCESSSTATUS], NDIA.[WORKPROCESS], NDIA.[BILLABLE] FROM @NewDiary NDIA --PINO 2015-09-30 START - reseed EXEC [dbo].[KAAS_ReseedActionID] --EXEC @ActionID = [dbo].[KAAS_GetNextActionID] --PINO 2015-09-30 END SELECT @AssignNo = ISNULL(MAX(AssignNo), 0) --PINO03 FROM DiaryDelegations --Diary Delegations INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DUEDATE], [DUETIME], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [DelType]) SELECT NDIA.[ActionId], NDIA.FNCODE, @Team, NDIA.[DATE], [dbo].[ky_ConvertTimeToClarion](CONVERT(VARCHAR(20), NDIA.[DATE], 8)), GETDATE(), [dbo].[ky_ConvertTimeToClarion](CONVERT(VARCHAR(20), NDIA.[DATE], 8)), '0', 'Y', NDIA.FNCODE, '0', NDIA.[ACTIONCATEGORY], NDIA.FNCODE, 'Created' FROM @NewDiary NDIA SET @Result = @ClientCode + '/' + @MatterCode DECLARE @BitWiseID BIGINT SELECT @BitWiseID = CNP.[Previleges] FROM [dbo].[ContactNETPrivileges] CNP WHERE CNP.[ContactCode] = @ClientCode AND CNP.[ApplyToNewMatters] = 1 --@ClientCode IF(@BitWiseID IS NOT NULL) BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[MatterNETPrivileges] MNP WHERE MNP.[MATTER] = @Result ) BEGIN INSERT INTO [dbo].[MatterNETPrivileges] ([MATTER], [Privileges]) VALUES(@Result, @BitWiseID) END ELSE BEGIN UPDATE MNP SET MNP.[Privileges] = @BitWiseID FROM [dbo].[MatterNETPrivileges] MNP WHERE MNP.[MATTER] = @Result END END --Update Matter Charge Level DECLARE @ClientChargeLevel TINYINT SET @ClientChargeLevel = (SELECT ISNULL(chargelevel,0) FROM Contacts WHERE code = @ClientCode ) IF (@ClientChargeLevel<>0) BEGIN UPDATE Matters set ChargeLevel = @ClientChargeLevel WHERE Code = @Result END --Estimate Fee Log.. IF(@EstimateFee <> '0.00') BEGIN INSERT INTO MatterEstimateFeeLogs ( [Log], [Mattercode], [Who], [EstimateFee] ) VALUES ( 'Added', @Result, @LoginCode, @EstimateFee ) END --UPDATE C --SET -- C.ApprovedDate = CASE C.Approved WHEN 1 THEN GETDATE() ELSE null END, -- C.ApprovedByUSER = CASE C.Approved WHEN 1 THEN @LoginCode ELSE null END -- FROM -- Contacts C --WHERE -- Code = @ClientCode IF OBJECT_ID('[dbo].[InitialDebtCharges]', 'U') IS NOT NULL AND ISNULL((SELECT TOP 1 [KeyValue] FROM [dbo].[RevenueSettings] WHERE [KeyName] = 'ClaimSystemEnabled'), 'False') = 'True' BEGIN -- Setting original debt via User 1 field: IF ISNUMERIC(@FileReference) = 1 AND PATINDEX('%[^0-9.]%', @FileReference) = 0 BEGIN UPDATE MAT SET MAT.[OriginalDebt] = CONVERT(DECIMAL(13, 2), @FileReference) FROM [dbo].[matters] AS MAT WHERE MAT.[Code] = @ClientCode + '/' + @MatterCode AND MAT.[User1] = @FileReference END IF (SELECT COUNT(1) FROM [dbo].[InitialDebtCharges]) > 0 BEGIN DECLARE @NEXTPREF INT DECLARE @I INT -- This will be the ID of the next initial charge DECLARE @MAX INT -- This will be the last ID DECLARE @SQL NVARCHAR(MAX) DECLARE @MATTERCODE_FULL VARCHAR(20) SELECT @I = ISNULL(MIN(ISNULL(IDC.[id], 0)), 0), @MAX = ISNULL(MAX(ISNULL(IDC.[id], 0)), 0), @MATTERCODE_FULL = @ClientCode + '/' + @MatterCode FROM [dbo].[InitialDebtCharges] AS IDC WHILE (ISNULL(@MAX, 0) <> 0 AND ISNULL(@I, 0) <> 0 AND ISNULL(@I, 0) < ISNULL(@MAX, 0) + 1) BEGIN SELECT @NEXTPREF = ISNULL(MAX(DCL.[POSTINGREF]), 0) + 1 FROM [dbo].[DebtCostingLedger] AS DCL SELECT @SQL = ' INSERT INTO [dbo].[DebtCostingLedger] ( [MATTERCODE], [DATE], [REFERENCE], [DESCRIPTION], [TYPE], [Value], [INTEREST], [COSTS], [REMITTANCENO], [ENTRYDATE], [ENTEREDBY], [POSTINGREF], [Bounced], [PREMIUMPAID], [INTERESTPAID], [COSTSPAID], [XnId], [CourtFeeCode]) SELECT ''' + ISNULL(@MATTERCODE_FULL, '') + ''',' + '''' + CONVERT(VARCHAR(8), GETDATE(), 112) + ''',' + '''' + ISNULL(IDC.[Reference], '') + ''',' + '''' + ISNULL(IDC.[Description], '') + ''',' + '''' + ISNULL(IDC.[Type], '') + ''',' + ISNULL(IDC.[Value], '') + ',' + ISNULL(IDC.[Interest], '') + ',' + ISNULL(IDC.[Costs], '') + ',' + '0,' + '''' + CONVERT(VARCHAR(8), GETDATE(), 112) + ''',' + '''AUTO'',' + CONVERT(VARCHAR(10), @NEXTPREF) + ',' + '0,' + '0,' + '0,' + '0,' + '-1,' + '''' + ISNULL(IDC.[CourtFeeCode], '') + '''' + 'FROM [dbo].[matters] AS MAT WHERE MAT.[Code] = ''' + @MATTERCODE_FULL + '''' FROM [dbo].[matters] AS MAT LEFT OUTER JOIN [dbo].[InitialDebtCharges] AS IDC ON IDC.[id] = @I WHERE MAT.[Code] = @MATTERCODE_FULL EXEC sp_executesql @SQL DECLARE @COST_VALUE DECIMAL(19, 2) DECLARE @PAYMENT_DESC VARCHAR(MAX) SELECT TOP 1 @COST_VALUE = DCL.[COSTS], @PAYMENT_DESC = DCL.[DESCRIPTION] FROM [dbo].[DebtCostingLedger] AS DCL WHERE DCL.[POSTINGREF] = @NEXTPREF -- Try to create action for this payment EXEC [dbo].[KAAS_RevenueInsertintoDiary] @MATTERCODE_FULL, @COST_VALUE, 0, 0, 'Cost', @PAYMENT_DESC, 0, @LoginCode SELECT @I = ISNULL(MIN(ISNULL(IDC.[id], 0)), 0) FROM [dbo].[InitialDebtCharges] AS IDC WHERE IDC.[id] > @I END UPDATE MAT SET MAT.[RecoverableCosts] = ISNULL(DCL.[COSTS], 0) FROM [dbo].[matters] AS MAT LEFT OUTER JOIN (SELECT DCL.[MATTERCODE], SUM(ISNULL(DCL.[COSTS], 0)) AS [COSTS] FROM [dbo].[DebtCostingLedger] AS DCL GROUP BY DCL.[MATTERCODE]) AS DCL ON MAT.[Code] = DCL.[MATTERCODE] WHERE MAT.[Code] = @ClientCode + '/' + @MatterCode END END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_WizUDFActions',N'P')IS NOT NULL DROP PROCEDURE KAAS_WizUDFActions GO CREATE PROCEDURE KAAS_WizUDFActions ( @CasePlan VARCHAR(5) ) AS /******************************************************************************************************* * This procedure is used to FETCH udf actions for wizard. * * * * Stored Procedure Name : [dbo].[KAAS_WizUDFActions] * * Copied from : [dbo].[ky_NETWizUDFActions] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * * 2019-07-25 Vinodhan K [FIELDTYPE], [Length] and [Format] parameters have been added * 2020-03-24 Rajesh [Validation] has been added due to defect 1753 *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Value as VARCHAR(255) SET @Value = '' SELECT RTRIM(ISNULL(u.UDFCategory,'')) AS UDFCategory, RTRIM(B.PROMPT) AS PROMPT, RTRIM(B.FILEPREFIX) AS FILEPREFIX, RTRIM(B.FIELDNAME) AS FIELDNAME, RTRIM(B.[TYPE]) AS FIELDTYPE, B.[LENGTH] AS [Length], B.[FORMAT] AS [Format], B.UDFCategory AS Category, @Value AS Value, A.UDSEQ AS SEQ, A.UDSEQ AS RunningSeq, RTRIM(UDFILE) AS UDFILE, RTRIM(UDUVCODE) AS UDUVCODE, RTRIM(UDWKCODE) AS UDWKCODE, B.[VALIDATION] AS ValidationType FROM Udftemplatesworktypes A LEFT JOIN Systemuserdefinedfields B ON A.UDFILE = B.FILEPREFIX AND A.UDUVCODE = B.FIELDNAME LEFT JOIN UDFCategory u on u.ID = B.UDFCategory WHERE RTRIM(UDWKCODE)=@CasePlan ORDER BY UDSEQ SET NOCOUNT OFF END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_XMLAddTimeDayBook' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_XMLAddTimeDayBook] END GO CREATE PROCEDURE [dbo].[KAAS_XMLAddTimeDayBook] (@XML NVARCHAR(MAX)) AS BEGIN /******************************************************************************************************* * Used to add new Timedaybook entry * * * * Stored Procedure Name : [dbo].[KAAS_XMLAddTimeDayBook] * * Copied from : [dbo].[ky_NETSPXMLAddTimeDayBook] * * * * Modification History : * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ DECLARE @iSL INT DECLARE @Matter VARCHAR(20) DECLARE @FeeEarner VARCHAR(10) DECLARE @Minutes INT DECLARE @StopwatchStatus INT DECLARE @RecordID INT DECLARE @UpdateByPass BIT DECLARE @DeleteByPass BIT DECLARE @AddNew BIT DECLARE @Task VARCHAR(6) DECLARE @Comment VARCHAR(1000) DECLARE @ChargeDefault DECIMAL(10, 2) BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Matter = [SRC].[Matter], @FeeEarner = [SRC].[FeeEarner], @Minutes = [SRC].[Minutes], @StopwatchStatus = [SRC].[StopwatchStatus], @RecordID = [SRC].[RecordID], @UpdateByPass = [SRC].[UpdateByPass], @DeleteByPass = [SRC].[DeleteByPass], @AddNew = [SRC].[AddNew], @Task = [SRC].[Task], @Comment = [SRC].[Comment] FROM OPENXML(@iSL, N'tdb') WITH ([Matter] VARCHAR(20) '@matter', [FeeEarner] VARCHAR(10) '@feeearner', [Minutes] INT '@minutes', [StopwatchStatus] INT '@stopwatchstatus', [RecordID] INT '@recordid', [UpdateByPass] INT '@updatebypass', [DeleteByPass] INT '@deletebypass', [AddNew] INT '@addnew', [Task] VARCHAR(6) '@task', [Comment] VARCHAR(1000) '@comment') [SRC] EXEC sp_xml_removedocument @iSL --Original defaults SET @Minutes = ISNULL(@Minutes, 0) SET @StopwatchStatus = ISNULL(@StopwatchStatus, 1) SET @RecordID = ISNULL(@RecordID, 0) SET @UpdateByPass = ISNULL(@UpdateByPass, 0) SET @DeleteByPass = ISNULL(@DeleteByPass, 0) SET @AddNew = ISNULL(@AddNew, 0) IF EXISTS (SELECT TOP 1 1 FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[ChargingMatrix] [CMX] ON [CMX].[ARRANGEMENTCODE] = [MAT].[ChargeArrangement] AND [CMX].[CHARGECODE] = @Task WHERE [MAT].[Code] = @matter) BEGIN SELECT TOP 1 @Task = RTRIM(ISNULL([CMX].[CHARGECODE], '')), @ChargeDefault = CONVERT(DECIMAL(10, 2), ISNULL([CMX].[BAND1RATE], 0)), @Comment = RTRIM(ISNULL([CMX].[DESCRIPTION], '')) FROM [dbo].[matters] [MAT] INNER JOIN [dbo].[ChargingMatrix] [CMX] ON [CMX].[ARRANGEMENTCODE] = [MAT].[ChargeArrangement] AND [CMX].[CHARGECODE] = @Task WHERE [MAT].[Code] = @matter END ELSE IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[TasksCodes] [TC] WITH (nolock) WHERE [TC].[CODE] = @Task) BEGIN SET @Task = '' -- If "AutoDefaultTaskTime" is enabled in the settings then use the handler's default task IF (SELECT TOP 1 ISNULL(CFG.[KeyValue], 'False') FROM [dbo].[Settings] AS [CFG] WITH (nolock) WHERE [CFG].[KeyName] = 'AutoDefaultTaskTime') = 'True' BEGIN SELECT @Task = ISNULL([HAN].[DEFAULTTASK], ''), @Comment = RTRIM(ISNULL([TSK].[DESC], '')) FROM [dbo].[Handlers] AS [HAN] WITH (nolock) INNER JOIN [dbo].[TasksCodes] AS [TSK] WITH (nolock) ON [HAN].[DEFAULTTASK] = [TSK].[CODE] WHERE [HAN].[Code] = @FeeEarner END END ELSE BEGIN SELECT @TASK = RTRIM([TC].[CODE]), @ChargeDefault = CONVERT(DECIMAL(10, 2), ISNULL([TC].[CHARGEAMT], 0)) FROM [dbo].[TasksCodes] [TC] WITH (nolock) WHERE [TC].[CODE] = @TASK END IF @UpdateByPass = 0 BEGIN UPDATE [TDB] SET [TDB].[StopwatchStatus] = 1 FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[FeeEarn] = @FeeEarner END IF @DeleteByPass = 0 BEGIN --IF @DeleteByPass = 0 IF(@Minutes=0) BEGIN DELETE [TDB] FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[FeeEarn] = @FeeEarner AND ISNULL([TDB].[Time], 0) = 0 AND [TDB].[Matter] <> '' AND [TDB].[TimeOrCharge] = 'T' AND RTRIM(ISNULL([TDB].[Task], '')) = '' --KEYD-5221 AND RTRIM(ISNULL([TDB].[Comment], '')) = '' --KEYD-5221 --AND [TDB].[Matter] <> @Matter END ELSE BEGIN DELETE [TDB] FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[FeeEarn] = @FeeEarner AND ISNULL([TDB].[Time], 0) = 0 AND [TDB].[Matter] NOT IN ('' , @Matter) AND [TDB].[TimeOrCharge] = 'T' AND RTRIM(ISNULL([TDB].[Task], '')) = '' --KEYD-5221 AND RTRIM(ISNULL([TDB].[Comment], '')) = '' --KEYD-5221 END END --IF @DeleteByPass = 0 IF @RecordID <> 0 BEGIN -- IF @RecordID <> 0 UPDATE [TDB] SET [TDB].[StopwatchStatus] = @StopwatchStatus, [TDB].[Time] = @Minutes, [TDB].[Charge] = (ISNULL([TDB].[Rate], 0) * (@Minutes / 60.0)), [TDB].[Charged] = (ISNULL([TDB].[Rate], 0) * (@Minutes / 60.0)), [TDB].[Post] = 'Y' FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[RecordID] = @RecordID SELECT TOP 1 [TDB].[RecordID], ISNULL([TDB].[Time], 0) AS [Minutes] FROM [dbo].[TimeDayBook] [TDB] WITH (nolock) WHERE [TDB].[RecordID] = @RecordID END --IF @RecordID <> 0 ELSE -- ELSE CONDITION: IF @RecordID <> 0 BEGIN -- ELSE CONDITION: IF @RecordID <> 0 -- 2018-05-25 START - Try to prevent deadlocks using a CASE WHEN construct that should -- avoid table access on the first two conditions rather than the -- original IF with OR statements that still evaluates all 3 conditions IF CASE WHEN @Matter = '' THEN 1 WHEN @AddNew = 1 THEN 1 WHEN NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[TimeDayBook] [TDB] WITH (nolock) WHERE [TDB].[FeeEarn] = @FeeEarner AND RTRIM([TDB].[Matter]) = @Matter --AND [TDB].[TIMEORCHARGE]='T' KEYD-5124 - "C" type timers used to not be re-startable. But there is no need for that. AND [TDB].[Post] = 'Y') THEN 1 ELSE 0 END = 1 --Insert conditions -- 2018-05-25 END BEGIN --Insert conditions DECLARE @PERIOD AS INT DECLARE @YEAR AS INT DECLARE @IsSAM4 bit SET @IsSAM4 = [dbo].[ISSAM4]() IF @IsSAM4 = 0 BEGIN SELECT @PERIOD = [CL].[CURPER], @YEAR = [CL].[YEAR] FROM [dbo].[control] [CL] WITH (nolock) END ELSE BEGIN SELECT @PERIOD = [CL].[numvalue] FROM [dbo].[CtrlNum] [CL] WITH (nolock) WHERE [CL].[code] = 'CurPeriod' SELECT @YEAR = [CL].[numvalue] FROM [dbo].[CtrlNum] [CL] WITH (nolock) WHERE [CL].[code] = 'CurYear' END SET @PERIOD = ISNULL(@PERIOD, 0) SET @YEAR = ISNULL(@YEAR, 0) DECLARE @IsChargeable VARCHAR(1) SELECT @IsChargeable = [HAN].[ISChargeable] FROM [dbo].[Handlers] [HAN] WITH (nolock) WHERE [HAN].[CODE] = @FeeEarner SET @IsChargeable = ISNULL(@IsChargeable, 'C') DECLARE @MatterBillingMethod CHAR(1) DECLARE @ClientBillingMethod CHAR(1) DECLARE @DefaultBillingMethod CHAR(1) SELECT @MatterBillingMethod = RTRIM(ISNULL([MAT].[BillingMethod], '')), @ClientBillingMethod = RTRIM(ISNULL([CON].[BillingMethod], '')) FROM [dbo].[Matters] [MAT] WITH (nolock) LEFT OUTER JOIN [dbo].[Contacts] [CON] WITH (nolock) ON [CON].[Code] = [MAT].[ClientCode] WHERE [MAT].[Code] = @Matter SET @MatterBillingMethod = ISNULL(@MatterBillingMethod, '') SET @ClientBillingMethod = ISNULL(@ClientBillingMethod, '') IF(@MatterBillingMethod <> '') BEGIN SET @DefaultBillingMethod = @MatterBillingMethod END ELSE IF(@ClientBillingMethod <> '') BEGIN SET @DefaultBillingMethod = @ClientBillingMethod END ELSE BEGIN SET @DefaultBillingMethod = 'T' END -- John 2018-03-16 Only allow VALID methods If ISNULL(@DefaultBillingMethod, '') NOT IN ('T', 'C') BEGIN SET @DefaultBillingMethod = 'T' END INSERT INTO [dbo].[TimeDayBook] ([Matter], [FeeEarn], [Date], [Time], [Task], [TimeOrCharge], [Rec_Irr], [Post], [StopwatchStatus], [Period], [Year], [MatterLevel], [Comment], [Rate], [Charge], [Charged], [EntryDate], [ModifyDate]) SELECT [NW].[MATTER], [NW].[FeeEarn], [NW].[Date], [NW].[Time], [NW].[Task], [NW].[TimeOrCharge], @IsChargeable, [NW].[Post], [NW].[StopwatchStatus], [NW].[Period], [NW].[Year], [MAT].[ChargeLevel], [NW].[Comment], CASE WHEN @DefaultBillingMethod = 'T' THEN CONVERT(DECIMAL(10, 2), 0) WHEN ISNULL(@ChargeDefault, 0) = 0 THEN CONVERT(DECIMAL(10, 2), 0) ELSE CONVERT(DECIMAL(10, 2), @ChargeDefault) END, CASE WHEN @DefaultBillingMethod = 'T' THEN CONVERT(DECIMAL(10, 2), 0) WHEN ISNULL(@ChargeDefault, 0) = 0 THEN CONVERT(DECIMAL(10, 2), 0) ELSE CONVERT(DECIMAL(10, 2), @ChargeDefault) END, CASE WHEN @DefaultBillingMethod = 'T' THEN CONVERT(DECIMAL(10, 2), 0) WHEN ISNULL(@ChargeDefault, 0) = 0 THEN CONVERT(DECIMAL(10, 2), 0) ELSE CONVERT(DECIMAL(10, 2), @ChargeDefault) END, CONVERT(DATETIME, CONVERT(VARCHAR, GetDate(), 112)), CONVERT(DATETIME, CONVERT(VARCHAR, GetDate(), 112)) FROM (SELECT @Matter AS [MATTER], @FeeEarner AS [FeeEarn], CONVERT(VARCHAR(12), GETDATE(), 112) AS [Date], @Minutes AS [Time], @Task AS [Task], @DefaultBillingMethod AS [TimeOrCharge], 'Y' AS [Post], @StopwatchStatus AS [StopwatchStatus], @PERIOD AS [Period], @YEAR As [Year], @Comment AS [Comment]) [NW] LEFT OUTER JOIN [dbo].[matters] [MAT] WITH (nolock) ON [MAT].[Code] = [NW].[MATTER] SELECT SCOPE_IDENTITY() AS [RecordID], 0 AS [Minutes] END --Insert conditions ELSE --(ELSE CONDITION) Insert conditions BEGIN --(ELSE CONDITION) Insert conditions SET @RecordID = NULL SELECT TOP 1 @RecordID = [TDB2].[RecordID] FROM [dbo].[TimeDayBook] [TDB2] WITH (nolock) WHERE [TDB2].[FEEEARN] = @FeeEarner AND [TDB2].[MATTER] = @Matter --AND [TDB2].[TIMEORCHARGE] = 'T' KEYD-5124 ORDER BY [TDB2].[RecordID] DESC IF @RecordID IS NOT NULL BEGIN UPDATE [TDB] SET [TDB].[StopwatchStatus] = @StopwatchStatus, [TDB].[Post] = 'Y' FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[RecordID] = @RecordID SELECT [TDB].[RecordID], ISNULL([TDB].[Time], 0) AS [Minutes] FROM [dbo].[TimeDayBook] [TDB] WITH (nolock) WHERE [TDB].[RecordID] = @RecordID END END --(ELSE CONDITION) Insert conditions END -- ELSE CONDITION: IF @RecordID <> 0 END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_XMLCaseAssociateInsertProfessionalDetails' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_XMLCaseAssociateInsertProfessionalDetails] END GO CREATE PROCEDURE [KAAS_XMLCaseAssociateInsertProfessionalDetails] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /************************************************************************************************************* * * * Stored Procedure Name : KAAS_XMLCaseAssociateInsertProfessionalDetails * * Copied From : [dbo].[ky_NETXMLCaseAssociateInsertProfessionalDetails] * * * * Description:This procedure is used To insert "Add Profession Details" in CaseAssociatesNames * * * * Compatibility information - PLEASE update older versions if necessary to ensure the compatible software * * remains fully functional * * ***************************************************************************************************** * * * * * * * Supersedes: [dbo].[ky_NETCaseAssociateInsertProfessionalDetails] * * * * First compatible version: 5.6.4.1 * * * * Last compatible software version: - * * * * Superseded by: - * * * * * * * ***************************************************************************************************** * * * * Modification History * * 2019-01-24 Pino Carafa Created * * * * ORIGINAL code for [dbo].[ky_NETCaseAssociateInsertProfessionalDetails] * * 2015-01-29 Praveen Yadav.P Included bank details insert/update * * 2015-02-10 Arun.V Change NVARCHAR to VARCHAR * * 2015-09-04 Sridharan KEYD-2640: When releasing an action to another user Keyhouse closes out. * * 2016-03-09 Sridharan KEYD-3352: When you add an undertakings with “Add as Comment to Ledger” * * check box unticked, when you open that undertakings the check box * * is ticked automatically. * * 2016-03-11 Sridharan KEYD-3132: Option to retire case associates * * 2016-03-11 Sridharan KEYD-3294: Adding a name to a deceased but I think it only allows * * 15 characters – can this be rectified in order that I can put “aka” name * * 2016-03-30 Suriya KEYD-3477: URGENT PPS number not update when you add a case associate * * for the first time * * 2016-04-19 Suriya M KEYD-3487: When you retire a Case associate, all other types are displayed * * as retired in the Client/Case associate. * * 2016-10-31 Sridharan KEYD-4197: EFT Bank Details Validation on Contact * * and Case Associate screens * * 2018-03-22 Pino Carafa Handle standard size 500 character address fields * * 2018-05-15 Pino Carafa Don't crash if same associate type is used again, just don't add * * a new row to caseassoicatestypes * * 2019-01-25 Pino Carafa KEYD-5503 - In preparation of adding EFTEmailAddress, re-created procedure * * with XML parameter * * 2019-01-25 Pino Carafa KEYD-5503 - Added EFTEmailAddress * * * * 2019-06-03 Vinodhan K Created KAAS_CaseAssociateInsertProfessionalDetails * 2021-04-13 Sadiq Added two extra case details parameters for insert statement (11922) * *************************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(6) DECLARE @Fullname VARCHAR(100) DECLARE @Salutation VARCHAR(30) DECLARE @JobTitle VARCHAR(50) DECLARE @Address VARCHAR(500) DECLARE @Area VARCHAR(15) DECLARE @Company VARCHAR(80) DECLARE @DXRel VARCHAR(30) DECLARE @Email VARCHAR(100) DECLARE @FaxNo VARCHAR(20) DECLARE @Home VARCHAR(20) DECLARE @MobileNo VARCHAR(20) DECLARE @Note VARCHAR(MAX) DECLARE @Occupation VARCHAR(100) DECLARE @PhoneNo VARCHAR(20) DECLARE @PPSNo VARCHAR(20) DECLARE @Town VARCHAR(20) DECLARE @WebAddress VARCHAR(150) DECLARE @LegalName VARCHAR(150) DECLARE @LegalAddress VARCHAR(500) DECLARE @Tax VARCHAR(1) DECLARE @Deceased VARCHAR(1) DECLARE @DateOFBirth DATETIME DECLARE @DateSeparated DATETIME DECLARE @DeceasedDate DATETIME DECLARE @MarriageDate DATETIME DECLARE @Type VARCHAR(12) DECLARE @Gender VARCHAR(20) DECLARE @MaritalStatus VARCHAR(20) DECLARE @Edit INT DECLARE @FirstName VARCHAR(50) DECLARE @SurName VARCHAR(50) DECLARE @County VARCHAR(100) DECLARE @PostalCode VARCHAR(100) DECLARE @BankName VARCHAR(60) DECLARE @BankAddress VARCHAR(500) DECLARE @BankSortCode VARCHAR(20) DECLARE @BankAccNo VARCHAR(20) DECLARE @IBan VARCHAR(34) DECLARE @EFTEmailAddress VARCHAR(150) DECLARE @Bic VARCHAR(20) DECLARE @Retired VARCHAR(1) DECLARE @Banktype VARCHAR(1) DECLARE @AddressType VARCHAR(1) DECLARE @ServiceType VARCHAR(1) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CAN].[Code], @Fullname = [CAN].[Fullname], @Salutation = [CAN].[Salutation], @JobTitle = [CAN].[JobTitle], @Address = [CAN].[Address], @Area = [CAN].[Area], @Company = [CAN].[Company], @DXRel = [CAN].[DXRel], @Email = [CAN].[Email], @FaxNo = [CAN].[FaxNo], @Home = [CAN].[Home], @MobileNo = [CAN].[MobileNo], @Note = [CAN].[Note], @Occupation = [CAN].[Occupation], @PhoneNo = [CAN].[PhoneNo], @PPSNo = [CAN].[PPSNo], @Town = [CAN].[Town], @WebAddress = [CAN].[WebAddress], @LegalName = [CAN].[LegalName], @LegalAddress = [CAN].[LegalAddress], @Tax = [CAN].[Tax], @Deceased = [CAN].[Deceased], @DateOFBirth = [CAN].[DateOFBirth], @DateSeparated = [CAN].[DateSeparated], @DeceasedDate = [CAN].[DeceasedDate], @MarriageDate = [CAN].[MarriageDate], @Type = [CAN].[Type], @Gender = [CAN].[Gender], @MaritalStatus = [CAN].[MaritalStatus], @Edit = [CAN].[Edit], @FirstName = [CAN].[FirstName], @SurName = [CAN].[SurName], @County = [CAN].[County], @PostalCode = [CAN].[PostalCode], @BankName = [CAN].[BankName], @BankAddress = [CAN].[BankAddress], @BankSortCode = [CAN].[BankSortCode], @BankAccNo = [CAN].[BankAccNo], @IBan = [CAN].[IBan], @Bic = [CAN].[Bic], @EFTEmailAddress = [CAN].[EFTEmailAddress], @Retired = [CAN].[Retired], @Banktype = [CAN].[Banktype], @AddressType = [CAN].[AddressType], @ServiceType = [CAN].[ServiceType] FROM OPENXML(@iSL, N'CAN') WITH ([Code] VARCHAR(6) 'Code', [Fullname] VARCHAR(100) 'Fullname', [Salutation] VARCHAR(30) 'Salutation', [JobTitle] VARCHAR(50) 'JobTitle', [Address] VARCHAR(500) 'Address', [Area] VARCHAR(15) 'Area', [Company] VARCHAR(80) 'Company', [DXRel] VARCHAR(30) 'DXRel', [Email] VARCHAR(100) 'Email', [FaxNo] VARCHAR(20) 'FaxNo', [Home] VARCHAR(20) 'Home', [MobileNo] VARCHAR(20) 'MobileNo', [Note] VARCHAR(MAX) 'Note', [Occupation] VARCHAR(100) 'Occupation', [PhoneNo] VARCHAR(20) 'PhoneNo', [PPSNo] VARCHAR(20) 'PPSNo', [Town] VARCHAR(20) 'Town', [WebAddress] VARCHAR(150) 'WebAddress', [LegalName] VARCHAR(150) 'LegalName', [LegalAddress] VARCHAR(500) 'LegalAddress', [Tax] VARCHAR(1) 'Tax', [Deceased] VARCHAR(1) 'Deceased', [DateOFBirth] DATETIME 'DateOFBirth', [DateSeparated] DATETIME 'DateSeparated', [DeceasedDate] DATETIME 'DeceasedDate', [MarriageDate] DATETIME 'MarriageDate', [Type] VARCHAR(12) 'Type', [Gender] VARCHAR(20) 'Gender', [MaritalStatus] VARCHAR(20) 'MaritalStatus', [Edit] INT 'Edit', [FirstName] VARCHAR(50) 'FirstName', [SurName] VARCHAR(50) 'SurName', [County] VARCHAR(100) 'County', [PostalCode] VARCHAR(100) 'PostalCode', [BankName] VARCHAR(60) 'BankName', [BankAddress] VARCHAR(500) 'BankAddress', [BankSortCode] VARCHAR(20) 'BankSortCode', [BankAccNo] VARCHAR(20) 'BankAccNo', [IBan] VARCHAR(34) 'IBan', [Bic] VARCHAR(20) 'Bic', [EFTEmailAddress] VARCHAR(150) 'EFTEmailAddress', [Retired] VARCHAR(1) 'Retired', [Banktype] VARCHAR(1) 'Banktype', [AddressType] VARCHAR(1) 'AddressType', [ServiceType] VARCHAR(1) 'ServiceType' ) [CAN] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH IF(@Edit = 0) BEGIN IF (SELECT TOP 1 1 FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code) IS NULL BEGIN INSERT INTO [dbo].[CaseAssociatesNames] ([CODE], [TYPE], [NAME], [SALUTATION], [TITLE], [COMPANY], [ADDRESS], [PHONENO], [FAXNO], [HOME], [MOBILENO], [EMAIL], [WEBADDRESS], [SSNUMBER], [LEGALNAME], [LEGALADDRESS], [DXREF], [DOB], [MARTIALSTATUS], [MARRIAGEDATE], [DATESEPARATED], [DECEASEDDATE], [OCCUPATION], [NOTES], [AREA], [TOWN], [GENDER], [TAX], [DECEASED], [FORENAME], [SURNAME], [County], [PostalCode], [BankName], [BankAddress], [BankSortCode], [BankAccNo], [IBan], [Bic], [EFTEmailAddress], [Retired], [BankType], [AddressType], [ServiceType]) VALUES(@Code, ISNULL(@Type, ''), @Fullname, @Salutation, @JobTitle, @Company, @Address, @PhoneNo, @FaxNo, @Home, @MobileNo, @Email, @WebAddress, @PPSNo, @LegalName, @LegalAddress, @DXRel, CASE @DateOFBirth WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DateOFBirth, 112) END, ISNULL(@MaritalStatus, ''), CASE @MarriageDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @MarriageDate, 112) END, CASE @DateSeparated WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DateSeparated, 112) END, CASE @DeceasedDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DeceasedDate, 112) END, @Occupation, @Note, @Area, @Town, ISNULL(@Gender, ''), @Tax, @Deceased, @FirstName, @SurName, @County, @PostalCode, @BankName, @BankAddress, @BankSortCode, @BankAccNo, @IBan, @Bic, @EFTEmailAddress, @Retired, @Banktype, @AddressType, @ServiceType) INSERT INTO [dbo].[CaseAssoicatesTypes] ([NAMECODE], [TYPECODE], [SEARCHCODE], [Retired]) SELECT [NEW].[NAMECODE], [NEW].[TYPECODE], [NEW].[SEARCHCODE], [NEW].[RETIRED] FROM (SELECT @Code AS [NAMECODE], @Type AS [TYPECODE], '' AS [SEARCHCODE], @Retired AS [RETIRED]) [NEW] LEFT OUTER JOIN [dbo].[CaseAssoicatesTypes] [CAT] ON [CAT].[NAMECODE] = [NEW].[NAMECODE] AND [CAT].[TYPECODE] = [NEW].[TYPECODE] WHERE [CAT].[NAMECODE] IS NULL SET @Result = 1 END ELSE BEGIN SET @Result = 0 END END ELSE BEGIN UPDATE [CAT] SET [CAT].[Retired] = @Retired FROM [dbo].[CaseAssoicatesTypes] [CAT] WHERE [CAT].[NAMECODE] = @Code --AND TYPECODE = @Type UPDATE [CC] SET [CC].[Retired] = @Retired FROM [dbo].[CaseContacts] [CC] WHERE [CC].[NAMECODE] = @Code UPDATE [CAN] SET [CAN].[CODE] = @Code, [CAN].[TYPE] = ISNULL(@Type,''), [CAN].[NAME] = @Fullname, [CAN].[SALUTATION] = @Salutation, [CAN].[TITLE] = @JobTitle, [CAN].[COMPANY] = @Company, [CAN].[ADDRESS] = @Address, [CAN].[PHONENO] = @PhoneNo, [CAN].[FAXNO] = @FaxNo, [CAN].[HOME] = @Home, [CAN].[MOBILENO] = @MobileNo, [CAN].[EMAIL] = @Email, [CAN].[WEBADDRESS] = @WebAddress, [CAN].[SSNUMBER] = @PPSNo, [CAN].[LEGALNAME] = @LegalName, [CAN].[LEGALADDRESS] = @LegalAddress, [CAN].[DXREF] = @DXRel, [CAN].[DOB] = CASE @DateOFBirth WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DateOFBirth, 112) END, [CAN].[MARTIALSTATUS] = ISNULL(@MaritalStatus, ''), [CAN].[MARRIAGEDATE] = CASE @MarriageDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @MarriageDate, 112) END, [CAN].[DATESEPARATED] = CASE @DateSeparated WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DateSeparated, 112) END, [CAN].[DECEASEDDATE] = CASE @DeceasedDate WHEN NULL THEN '' ELSE CONVERT(DATETIME, @DeceasedDate, 112) END, [CAN].[OCCUPATION] = @Occupation, [CAN].[NOTES] = @Note, [CAN].[AREA] = @Area, [CAN].[TOWN] = @Town, [CAN].[TAX] = @Tax, [CAN].[DECEASED] = @Deceased, [CAN].[GENDER] = ISNULL(@Gender, ''), [CAN].[FORENAME] = @FirstName, [CAN].[SURNAME] = @SurName, [CAN].[County] = @County, [CAN].[PostalCode] = @PostalCode, [CAN].[BankName] = @BankName, [CAN].[BankAddress] = @BankAddress, [CAN].[BankSortCode] = @BankSortCode, [CAN].[BankAccNo] = @BankAccNo, [CAN].[IBAN] = @IBan, [CAN].[Bic] = @Bic, [CAN].[EFTEmailAddress] = @EFTEmailAddress, [CAN].[Retired] = @Retired, [CAN].[BankType] = @Banktype, [CAN].[AddressType] = @AddressType, [CAN].[ServiceType] = @ServiceType FROM [dbo].[CaseAssociatesNames] [CAN] WHERE [CAN].[CODE] = @Code SET @Result = 2 END SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLDiaryDelegation',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLDiaryDelegation] GO CREATE PROCEDURE [dbo].[KAAS_XMLDiaryDelegation] ( @DEL VARCHAR(MAX) ) AS /******************************************************************************************************* * Performs a diary delegation based on the XML string passed in. * * * * Stored Procedure Name : [dbo].[KAAS_XMLDiaryDelegation] * * Copied from : [dbo].[ky_NETSPXMLDiaryDelegation] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @Return INT EXEC @Return = [dbo].[KAAS_ScalarXMLDiaryDelegation] @DEL SELECT ISNULL(@Return, -4) END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = N'KAAS_XMLFlagDayBookEntriesForAdHocPosting' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_XMLFlagDayBookEntriesForAdHocPosting] END GO CREATE PROCEDURE [dbo].[KAAS_XMLFlagDayBookEntriesForAdHocPosting] (@XML NVARCHAR(MAX)) AS /******************************************************************************************************* * Flags entries for Ad Hoc posting * * * * Stored Procedure Name : [dbo].[KAAS_XMLFlagDayBookEntriesForAdHocPosting] * * Copied from : [dbo].[ky_NETXMLFlagDayBookEntriesForAdHocPosting] * * * * Modification History : * * 2019-04-12 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH UPDATE [TDB] SET [TDB].[AdHocPosting] = 1 FROM OPENXML(@iSL, N'AdHocPostDayBook/DayBookItem') WITH ([RecordID] VARCHAR(10) '@id') [SRC] INNER JOIN [dbo].[TimeDayBook] [TDB] ON [TDB].[RecordID] = [SRC].[RecordID] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_XMLGetCaseFields' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_XMLGetCaseFields] END GO CREATE PROCEDURE [dbo].[KAAS_XMLGetCaseFields] (@SEARCH NVARCHAR(MAX)) AS /********************************************************************************************************************** * Reads various case related fields and returns a tabular representation of the requested fields, prompts and values * * * * Stored Procedure : KAAS_XMLGetCaseFields * * Copied From : [dbo].[ky_NETSPXMLGetCaseFields] * * * * Calls [dbo].[KAAS_XMLGetCaseFieldsDebug] * * * * Modification History * * 2019-12-18 Vinodhan Created KAAS_XMLGetCaseFields * * * **********************************************************************************************************************/ BEGIN EXEC [dbo].[KAAS_XMLGetCaseFieldsDebug] @SEARCH, 0, 0 END GO IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_XMLGetCaseFieldsDebug' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[KAAS_XMLGetCaseFieldsDebug] END GO CREATE PROCEDURE [dbo].[KAAS_XMLGetCaseFieldsDebug] (@SEARCH NVARCHAR(MAX), @USEOLDPARSER BIT, @DEBUG BIT) AS /********************************************************************************************************************* * * Reads various case related fields and returns a tabular representation of the requested fields, prompts and values * * Stored Procedure : KAAS_XMLGetCaseFieldsDebug * Copied From : [dbo].[ky_NETSPXMLGetCaseFields] * * Example search string * * * * * * * * * * * * * * * * * * * * * * ' * * Modification History * 2015-08-27 Pino Carafa Created * 2016-01-05 Pino Carafa Allow for passing in Current Handler as "handler" attribute in the main * "search" element. If passed in, use this to Left Outer Join to [dbo].[handlers] * If missing, revert back to [MAT].[FECode] - KEYD-3067 * 2016-02-03 Pino Carafa The TEA1 prefix (used in ACTUALNAME values) actually refers to case fee earners * not - as the prefix suggests - "teams". Change the parser to revert TEA1 * prefixes to the new FEH prefix used for the Handlers table joined to Matters * by FECode * 2016-07-19 Pino Carafa Code to parse [SQLStatement] was incomplete * 2016-10-03 Pino Carafa KEYD-4109 Handle , , * and * 2016-10-04 Pino Carafa Include the Prefix. Relate AND to [CDE] * For 'UDF:' * 2016-10-17 Pino Carafa Left outer join to [dbo].[contacts] * 2016-10-18 Pino Carafa Improve formatting of numerical values, increase display length * KEYD-4171 and KEYD-4172 * 2016-10-20 Pino Carafa KEYD-4179 * 2016-10-20 Pino Carafa Added functionality to handle KEYD-4121 requirements * 2016-10-28 Pino Carafa Added functionality to override ActualName (e.g. for SYS:run(..) statements) * 2016-10-28 Pino Carafa Added functionality to override Retrieval Code * 2017-01-31 Pino Carafa Added functionality to handle SYS: retrieval fields - ky_NETSPParseSysField * 2017-02-01 Pino Carafa Fixed issue with more complex SYS: values * 2018-02-01 Pino Carafa Handle 0/Null Date values * 2018-02-02 Pino Carafa Added Debug option and increased field sizes to 500 to allow for longer codes * 2018-02-05 Pino Carafa Fixed issue with CONNUM * 2018-02-06 Pino Carafa Improved handling of Dummy fields and Case Associates Contact No's by Type * 2018-03-06 Pino Carafa Handling the -1 ConNums for "Skipped" Client Contacts or Case Associates * 2018-12-04 Pino Carafa Handling UDF: codes with periods in them like u.acc.date * 2018-12-11 Pino Carafa Add support for [MAT], [CSM], [CON] and [CLT] prefixes in [SQLStatement] for UDF: * 2018-12-11 Pino Carafa Allow for format(UDF('field', 'format')) * 2018-12-12 Pino Carafa Added support for [DATE:] and [DATE:, '@d18'), 4, 14) functionality to * extract Month and Year for a date. To be replaced with f.AddDays moving forward * Also: SYS:year(Today()) * 2019-01-09 Pino Carafa Added converters to convert format(UDF( and iif(UDF( syntax to SQL syntax * 2019-01-11 Pino Carafa Use the new Retrieval Code Interpreter - for now it will just affect AUD: codes * 2019-01-11 Pino Carafa Use the new Retrieval Code Interpreter for the MAT: Prefix * When a Doc Assist for MAT: has an ActualName or SQLSTATEMENT, use the old * parser instead. * 2019-01-15 Pino Carafa Use the new Retrieval Code Interpreter for the CAN: Prefix * 2019-01-15 Pino Carafa When searching for '.' or '#' use the ky_NETFNGetUnquotedCharacterPos function * so that it doesn't trip over literal values containing these. * 2019-01-16 Pino Carafa Use the new Retrieval Code Interpreter for ALL prefixes. The * ky_NETSPRetrievalCodeInterpreter will handle these, but if it comes across * one it can't handle (most likely due to an ACTUALNAME or SQLSTATEMENT) * it will hand it back to this procedure to deal with it using the OLD one. * 2019-01-17 Pino Carafa ... but stick with OLD interpreter when the field is a simple code. * 2019-01-17 Pino Carafa Don't EVER try to parse an ACTUALNAME if there is also a SQLSTATEMENT * 2019-01-18 Pino Carafa Implemented Choose and IIF statements in the Function Interpreter * 2019-01-21 Pino Carafa Use OLDPARSEQ rather than OLDPARSER to indicate quoted values to be returned * through the old Parser, so that we can then double the quotes in the returned * value, preventing issue KEYD-5663 * 2019-01-22 Pino Carafa make sure that PREFIX:FIELDNAME is parsed the same way as [PREFIX:FIELDNAME] * 2019-01-28 Pino Carafa make sure that a > in the Field ID is interpreted as a Document Naming * if it looks like [literal unquoted text >Field ID], and as a Greater Than * comparison otherwise * 2019-02-01 Pino Carafa Change columns to VARCHAR(MAX) to allow for much more complex codes * 2019-02-01 Pino Carafa Process LCN: codes with new Parser * 2019-02-06 Pino Carafa Allow for longer Format strings * 2019-07-08 Pino Carafa Inconsistent "Date" type CUFs * 2019-12-16 Vinodhan Created KAAS_XMLGetCaseFieldsDebug * *********************************************************************************************************************/ BEGIN DECLARE @DummyCanNums TABLE ([Type] VARCHAR(12) PRIMARY KEY, [CanNum] INT) DECLARE @SEARCHES TABLE ([id] INT IDENTITY(1, 1), [case] VARCHAR(20), [handler] VARCHAR(10), [RetrievalCode] VARCHAR(MAX), [OriginalRetrievalCode] VARCHAR(MAX), [FieldID] VARCHAR(MAX), [Prefix] VARCHAR(5), [FieldName] VARCHAR(MAX), [SQLTable] NVARCHAR(128), [ConType] VARCHAR(12), [ConNum] INT, [ActionID] INT, [TrackReference] INT, [SQLStatement] VARCHAR(MAX), [SQLField] VARCHAR(MAX), [ActualName] VARCHAR(MAX), [Prompt] VARCHAR(80), [FORMAT] VARCHAR(50), [VALUE] VARCHAR(MAX), [COMMAND] NVARCHAR(MAX), [DOCNAMING] VARCHAR(MAX)) DECLARE @OLDPARSER TABLE ([RetrievalCode] VARCHAR(MAX), [Prompt] VARCHAR(MAX), [VALUE] VARCHAR(MAX), [DOCNAMING] VARCHAR(MAX)) DECLARE @iSL INT DECLARE @NCommand NVARCHAR(MAX) DECLARE @VALUE VARCHAR(MAX) DECLARE @mattercode varchar(20) DECLARE @ActionID INT DECLARE @TrackReference INT DECLARE @ConType VARCHAR(20) DECLARE @ConNum INT DECLARE @UDFPrefix VARCHAR(5) DECLARE @UDFName VARCHAR(30) DECLARE @ID INT DECLARE @CURID INT DECLARE @DummyConnum INT DECLARE @DummyCanType VARCHAR(12) DECLARE @DummyCannum INT DECLARE @XMLHead VARCHAR(MAX) DECLARE @XMLOldParser VARCHAR(MAX) BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @Search END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH BEGIN TRY INSERT INTO @SEARCHES ([case], [handler], [FieldID], [RetrievalCode], [OriginalRetrievalCode], [ActionID], [TrackReference], [ActualName]) SELECT [SRC].[case], [SRC].[handler], [SRC].[FieldID], ISNULL([SRC].[RetrievalCode], [SRC].[FieldID]), ISNULL([SRC].[RetrievalCode], [SRC].[FieldID]), [SRC].[ActionID], [SRC].[TrackReference], [SRC].[ActualName] FROM OPENXML(@iSL, N'search/Field') WITH ([case] VARCHAR(20) '../@case', [handler] VARCHAR(10) '../@handler', [FieldID] VARCHAR(MAX) '@ID', [ActionID] INT '@ACTIONID', [TrackReference] INT '@TRACKREFERENCE', [ActualName] VARCHAR(MAX) '@ActualName', [RetrievalCode] VARCHAR(MAX) '@RetrievalCode') [SRC] END TRY BEGIN CATCH BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SELECT TOP 1 'INVALID XML' AS [RetrievalCode], '' AS [Prompt], '' AS [VALUE] RETURN END CATCH EXEC sp_xml_removedocument @iSL SET @XMLHead = SUBSTRING(@SEARCH, 1, CHARINDEX(N'>', @SEARCH)) IF @Debug = 1 BEGIN SELECT @XMLHead END IF NOT EXISTS (SELECT TOP 1 1 FROM @SEARCHES) BEGIN SELECT TOP 1 'INVALID XML or nothing requested' AS [RetrievalCode], '' AS [Prompt], '' AS [VALUE] RETURN END SELECT TOP 1 @ID = [SRC].[id] FROM @SEARCHES [SRC] ORDER BY [SRC].[id] --IF @DEBUG = 1 -- BEGIN -- SELECT * FROM @SEARCHES -- END WHILE @ID IS NOT NULL BEGIN SET @CURID = @ID SET @ID = NULL DECLARE @ACTIONCODE VARCHAR(MAX) SET @ACTIONCODE = NULL SELECT @ACTIONCODE = [SRC].[FieldID] FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID IF @ACTIONCODE LIKE '[[]DATE:%' BEGIN SET @ACTIONCODE = SUBSTRING(@ACTIONCODE, 7, LEN(@ACTIONCODE) - 7) IF EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateActions] [TAC] WHERE [TAC].[ACTIONCODE] = @ACTIONCODE) BEGIN DECLARE @NEXTID INT DECLARE @DIA3Found BIT SET @DIA3Found = 0 SET @NEXTID = @CURID + 1 WHILE EXISTS (SELECT TOP 1 1 FROM @SEARCHES [SRC] WHERE [SRC].[id] = @NEXTID) BEGIN IF EXISTS (SELECT TOP 1 1 FROM @SEARCHES [SRC] WHERE [SRC].[id] = @NEXTID AND [SRC].[FieldID] LIKE '%DIA3:%') BEGIN SET @DIA3Found = 1 UPDATE [SRC] SET [SRC].[FieldID] = [dbo].[KAAS_FN_ParseDIA3](@ACTIONCODE, [SRC].[FieldID]) FROM @SEARCHES [SRC] WHERE [SRC].[id] = @NEXTID END ELSE BEGIN SET @NEXTID = (SELECT MAX([id]) FROM @SEARCHES [SRC]) END SET @NEXTID = @NEXTID + 1 END IF @DIA3Found = 0 BEGIN UPDATE [SRC] SET [SRC].[FieldID] = '[SYS:f.GetLatestActionInfo(MAT:Code, ''' + @ACTIONCODE + ''', ''Date'', ''DD MMMM YYYY'')]' FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END END END IF @ACTIONCODE LIKE 'DATE:%' BEGIN SET @ACTIONCODE = SUBSTRING(@ACTIONCODE, 6, LEN(@ACTIONCODE) - 5) IF EXISTS (SELECT TOP 1 1 FROM [dbo].[TemplateActions] [TAC] WHERE [TAC].[ACTIONCODE] = @ACTIONCODE) BEGIN SET @DIA3Found = 0 SET @NEXTID = @CURID + 1 WHILE EXISTS (SELECT TOP 1 1 FROM @SEARCHES [SRC] WHERE [SRC].[id] = @NEXTID) BEGIN IF EXISTS (SELECT TOP 1 1 FROM @SEARCHES [SRC] WHERE [SRC].[id] = @NEXTID AND [SRC].[FieldID] LIKE '%DIA3:%') BEGIN SET @DIA3Found = 1 UPDATE [SRC] SET [SRC].[FieldID] = [dbo].[KAAS_FN_ParseDIA3](@ACTIONCODE, [SRC].[FieldID]) FROM @SEARCHES [SRC] WHERE [SRC].[id] = @NEXTID END ELSE BEGIN SET @NEXTID = (SELECT MAX([id]) FROM @SEARCHES [SRC]) END SET @NEXTID = @NEXTID + 1 END IF @DIA3Found = 0 BEGIN UPDATE [SRC] SET [SRC].[FieldID] = '[SYS:f.GetLatestActionInfo(MAT:Code, ''' + @ACTIONCODE + ''', ''Date'', ''DD MMMM YYYY'')]' FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END END END DECLARE @ORIGINALRETRIEVALCODE VARCHAR(MAX) DECLARE @NEWRETRIEVALCODE VARCHAR(MAX) DECLARE @ACTUALNAME VARCHAR(MAX) SELECT @mattercode = [SRC].[case], @ActionID = [SRC].[ActionID], @TrackReference = [SRC].[TrackReference], @ACTUALNAME = [SRC].[ActualName], @ORIGINALRETRIEVALCODE = [SRC].[RetrievalCode] FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID SET @ORIGINALRETRIEVALCODE = ISNULL(@ORIGINALRETRIEVALCODE, '') SET @NEWRETRIEVALCODE = @ORIGINALRETRIEVALCODE BEGIN TRY --for now, limit this functionality to codes containing the new AUD: and AUS: prefixes --IF (@NEWRETRIEVALCODE LIKE '%AUD:%') OR (@NEWRETRIEVALCODE LIKE '%AUS:%') -- BEGIN IF @DEBUG = 1 BEGIN SELECT 'Interpret Retrieval Code', @mattercode AS [Matter Code], @ActionID AS [Action ID], @TrackReference AS [Track Reference], @ACTUALNAME AS [Actual Name], @ORIGINALRETRIEVALCODE AS [Original Retrieval Code], @NEWRETRIEVALCODE AS [New Retrieval Code] END IF @USEOLDPARSER = 0 BEGIN IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[SystemUserDefinedFields] [SUF] WHERE ( ('[' + [SUF].[FILEPREFIX] + [SUF].[FIELDNAME] + ']' = @ORIGINALRETRIEVALCODE) OR ([SUF].[FILEPREFIX] + [SUF].[FIELDNAME] = @ORIGINALRETRIEVALCODE) OR ('[' + [SUF].[FILEPREFIX] + ' ' + [SUF].[FIELDNAME] + ']' = @ORIGINALRETRIEVALCODE) OR ([SUF].[FILEPREFIX] + ' ' + [SUF].[FIELDNAME] = @ORIGINALRETRIEVALCODE)) AND [SUF].[FILEPREFIX] <> 'LCN:') BEGIN --IF (@NEWRETRIEVALCODE NOT LIKE '%choose(%') --BEGIN EXEC [dbo].[KAAS_RetrievalCodeInterpreter] @mattercode, @ActionID, @TrackReference, @ACTUALNAME, @ORIGINALRETRIEVALCODE, @NEWRETRIEVALCODE OUT --END END END -- END END TRY BEGIN CATCH END CATCH IF (@NEWRETRIEVALCODE <> @ORIGINALRETRIEVALCODE) AND (@NEWRETRIEVALCODE NOT LIKE '%OLDPARSE**%') BEGIN IF @DEBUG = 1 BEGIN SELECT @ORIGINALRETRIEVALCODE AS [Retrieval Code], @NEWRETRIEVALCODE AS [Interpreted Retrieval Code] END UPDATE [SRC] SET [SRC].[PREFIX] = NULL, [SRC].[FieldName] = NULL, [SRC].[FieldID] = @NEWRETRIEVALCODE, [SRC].[RetrievalCode] = @NEWRETRIEVALCODE FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END DECLARE @ORTSTART INT DECLARE @ORTEND INT DECLARE @ORTFIELDNAME VARCHAR(MAX) DECLARE @ORTFILE VARCHAR(5) DECLARE @ORTFIELD VARCHAR(MAX) DECLARE @ORTTYPE VARCHAR(20) DECLARE @ORTSTARTSTRING VARCHAR(MAX) DECLARE @ORTENDSTRING VARCHAR(MAX) WHILE @NEWRETRIEVALCODE LIKE '%OLDPARSER**%' BEGIN --SELECT @ORIGINALRETRIEVALCODE AS [Original Retrieval Code], @NEWRETRIEVALCODE AS [New Retrieval Code] SET @ORTSTART = PATINDEX('%OLDPARSER**%', @NEWRETRIEVALCODE) SET @ORTEND = PATINDEX('%**RESRAPDLO**%', @NEWRETRIEVALCODE) SET @ORTSTARTSTRING = SUBSTRING(@NEWRETRIEVALCODE, 1, @ORTSTART - 1) SET @ORTENDSTRING = SUBSTRING(@NEWRETRIEVALCODE, @ORTEND + 13, LEN(@NEWRETRIEVALCODE) - @ORTEND - 12) SET @ORTFIELDNAME = SUBSTRING(@NEWRETRIEVALCODE, @ORTSTART + 18, @ORTEND - @ORTSTART - 18) SET @ORTFILE = SUBSTRING(@ORTFIELDNAME, 1, PATINDEX('%**%', @ORTFIELDNAME) - 1) + ':' SET @ORTFIELDNAME = SUBSTRING(@ORTFIELDNAME, LEN(@ORTFILE) + 2, LEN(@ORTFIELDNAME) - LEN(@ORTFILE) - 1) SET @ORTFIELD = SUBSTRING(@ORTFIELDNAME, 1, PATINDEX('%**TYPE**%', @ORTFIELDNAME) - 1) SET @ORTTYPE = SUBSTRING(@ORTFIELDNAME, PATINDEX('%**TYPE**%', @ORTFIELDNAME) + 8, LEN(@ORTFIELDNAME) - PATINDEX('%**TYPE**%', @ORTFIELDNAME) - 7) --SELECT @ORTSTARTSTRING, @ORTFILE, @ORTFIELD, @ORTTYPE, @ORTENDSTRING --RETURN SET @XMLOldParser = @XMLHead + '' --SET @NEWRETRIEVALCODE = SUBSTRING(@NEWRETRIEVALCODE, 17, LEN(@NEWRETRIEVALCODE) - 17) --SELECT @NEWRETRIEVALCODE AS [Use old parser], @ORIGINALRETRIEVALCODE AS [RetrievalCode], @XMLOldParser AS [Old Parser Request] DELETE @OLDPARSER INSERT INTO @OLDPARSER ([RetrievalCode], [Prompt], [VALUE], [DOCNAMING]) EXEC [dbo].[KAAS_XMLGetCaseFieldsDebug] @XMLOldParser, 1, 0 --SELECT * FROM @OLDPARSER SELECT @NEWRETRIEVALCODE = @ORTSTARTSTRING + [OP].[VALUE] + @ORTENDSTRING FROM @OLDPARSER [OP] --SELECT @NEWRETRIEVALCODE --SET @NEWRETRIEVALCODE = @ORIGINALRETRIEVALCODE UPDATE [SRC] SET [SRC].[PREFIX] = NULL, [SRC].[FieldName] = NULL, [SRC].[FieldID] = @NEWRETRIEVALCODE, [SRC].[RetrievalCode] = @NEWRETRIEVALCODE FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END WHILE @NEWRETRIEVALCODE LIKE '%OLDPARSEQ**%' BEGIN --SELECT @ORIGINALRETRIEVALCODE AS [Original Retrieval Code], @NEWRETRIEVALCODE AS [New Retrieval Code] SET @ORTSTART = PATINDEX('%OLDPARSEQ**%', @NEWRETRIEVALCODE) SET @ORTEND = PATINDEX('%**QESRAPDLO**%', @NEWRETRIEVALCODE) SET @ORTSTARTSTRING = SUBSTRING(@NEWRETRIEVALCODE, 1, @ORTSTART - 1) SET @ORTENDSTRING = SUBSTRING(@NEWRETRIEVALCODE, @ORTEND + 13, LEN(@NEWRETRIEVALCODE) - @ORTEND - 12) SET @ORTFIELDNAME = SUBSTRING(@NEWRETRIEVALCODE, @ORTSTART + 18, @ORTEND - @ORTSTART - 18) SET @ORTFILE = SUBSTRING(@ORTFIELDNAME, 1, PATINDEX('%**%', @ORTFIELDNAME) - 1) + ':' SET @ORTFIELDNAME = SUBSTRING(@ORTFIELDNAME, LEN(@ORTFILE) + 2, LEN(@ORTFIELDNAME) - LEN(@ORTFILE) - 1) SET @ORTFIELD = SUBSTRING(@ORTFIELDNAME, 1, PATINDEX('%**TYPE**%', @ORTFIELDNAME) - 1) SET @ORTTYPE = SUBSTRING(@ORTFIELDNAME, PATINDEX('%**TYPE**%', @ORTFIELDNAME) + 8, LEN(@ORTFIELDNAME) - PATINDEX('%**TYPE**%', @ORTFIELDNAME) - 7) --SELECT @ORTSTARTSTRING, @ORTFILE, @ORTFIELD, @ORTTYPE, @ORTENDSTRING --RETURN SET @XMLOldParser = @XMLHead + '' --SET @NEWRETRIEVALCODE = SUBSTRING(@NEWRETRIEVALCODE, 17, LEN(@NEWRETRIEVALCODE) - 17) --SELECT @NEWRETRIEVALCODE AS [Use old parser], @ORIGINALRETRIEVALCODE AS [RetrievalCode], @XMLOldParser AS [Old Parser Request] DELETE @OLDPARSER INSERT INTO @OLDPARSER ([RetrievalCode], [Prompt], [VALUE], [DOCNAMING]) EXEC [dbo].[KAAS_XMLGetCaseFieldsDebug] @XMLOldParser, 1, 0 --SELECT * FROM @OLDPARSER SELECT @NEWRETRIEVALCODE = @ORTSTARTSTRING + REPLACE([OP].[VALUE], '''', '''''') + @ORTENDSTRING FROM @OLDPARSER [OP] --SELECT @NEWRETRIEVALCODE --SET @NEWRETRIEVALCODE = @ORIGINALRETRIEVALCODE UPDATE [SRC] SET [SRC].[PREFIX] = NULL, [SRC].[FieldName] = NULL, [SRC].[FieldID] = @NEWRETRIEVALCODE, [SRC].[RetrievalCode] = @NEWRETRIEVALCODE FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END IF @DEBUG = 1 BEGIN SELECT 'Before first attempt', * FROM @Searches WHERE [id] = @CURID END DECLARE @DOCNAMINGFIELDID VARCHAR(MAX) DECLARE @DOCNAMINGNAMING VARCHAR(MAX) DECLARE @DOCNAMINGGTPOS INT BEGIN TRY SELECT @DOCNAMINGFIELDID = [SRC].[FieldID], @DOCNAMINGNAMING = '' FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID SET @DOCNAMINGGTPOS = CHARINDEX('>', @DOCNAMINGFIELDID) IF @DOCNAMINGGTPOS > 0 BEGIN SET @DOCNAMINGNAMING = LTRIM(SUBSTRING(@DOCNAMINGFIELDID, 1, @DOCNAMINGGTPOS - 1)) SET @DOCNAMINGFIELDID = LTRIM(RTRIM(SUBSTRING(@DOCNAMINGFIELDID, @DOCNAMINGGTPOS + 1, LEN(@DOCNAMINGFIELDID) - @DOCNAMINGGTPOS))) END ELSE BEGIN SET @DOCNAMINGNAMING = '' SET @DOCNAMINGFIELDID = '' END IF LEN(@DOCNAMINGNAMING) > 0 BEGIN IF SUBSTRING(@DOCNAMINGNAMING, 1, 1) = '[' BEGIN SET @DOCNAMINGNAMING = SUBSTRING(@DOCNAMINGNAMING, 2, LEN(@DOCNAMINGNAMING) - 1) END END IF LEN(@DOCNAMINGFIELDID) > 0 BEGIN IF SUBSTRING(@DOCNAMINGFIELDID, LEN(@DOCNAMINGFIELDID), 1) = ']' BEGIN SET @DOCNAMINGFIELDID = SUBSTRING(@DOCNAMINGFIELDID, 1, LEN(@DOCNAMINGFIELDID) - 1) END END IF CHARINDEX(':', @DOCNAMINGNAMING) > 0 BEGIN IF EXISTS (SELECT TOP 1 1 FROM [dbo].[systemuserdefinedfields] [SUF] WHERE [SUF].[FILEPREFIX] = SUBSTRING(@DOCNAMINGNAMING, 1, CHARINDEX(':', @DOCNAMINGNAMING)) AND [SUF].[FIELDNAME] = SUBSTRING(@DOCNAMINGNAMING, CHARINDEX(':', @DOCNAMINGNAMING) + 1, LEN(@DOCNAMINGNAMING) - CHARINDEX(':', @DOCNAMINGNAMING))) BEGIN SET @DOCNAMINGNAMING = '' SET @DOCNAMINGFIELDID = '' END END IF CHARINDEX('''', @DOCNAMINGNAMING) > 0 BEGIN SET @DOCNAMINGNAMING = '' SET @DOCNAMINGFIELDID = '' END IF CHARINDEX('‘', @DOCNAMINGNAMING) > 0 BEGIN SET @DOCNAMINGNAMING = '' SET @DOCNAMINGFIELDID = '' END IF CHARINDEX('’', @DOCNAMINGNAMING) > 0 BEGIN SET @DOCNAMINGNAMING = '' SET @DOCNAMINGFIELDID = '' END IF CHARINDEX('(', @DOCNAMINGNAMING) > 0 BEGIN SET @DOCNAMINGNAMING = '' SET @DOCNAMINGFIELDID = '' END IF CHARINDEX(')', @DOCNAMINGNAMING) > 0 BEGIN SET @DOCNAMINGNAMING = '' SET @DOCNAMINGFIELDID = '' END IF @DOCNAMINGFIELDID <> '' BEGIN UPDATE [SRC] SET [SRC].[FieldID] = @DOCNAMINGFIELDID, [SRC].[DOCNAMING] = @DOCNAMINGNAMING FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END END TRY BEGIN CATCH END CATCH BEGIN TRY --UPDATE [SRC] -- SET [SRC].[FieldID] = CASE WHEN [SRC].[FieldID] LIKE '%>%' THEN SUBSTRING([SRC].[FieldID], CHARINDEX('>', [SRC].[FieldID]) + 1, LEN([SRC].[FieldID]) - CHARINDEX('>', [SRC].[FieldID])) ELSE [SRC].[FieldID] END, -- [SRC].[DOCNAMING] = CASE WHEN [SRC].[FieldID] LIKE '%>%' THEN SUBSTRING([SRC].[FieldID], 1, CHARINDEX('>', [SRC].[FieldID]) - 1) ELSE '' END -- FROM @SEARCHES [SRC] -- WHERE [SRC].[id] = @CURID UPDATE [SRC] SET [SRC].[RetrievalCode] = CASE WHEN [SRC].[RetrievalCode] LIKE 'UDF:%' THEN REPLACE([SRC].[RetrievalCode], '.', '_per_') ELSE [SRC].[RetrievalCode] END, [SRC].[FieldID] = CASE WHEN [SRC].[FieldID] LIKE 'UDF:%' THEN REPLACE([SRC].[FieldID], '.', '_per_') ELSE [SRC].[FieldID] END FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END TRY BEGIN CATCH UPDATE [SRC] SET [SRC].[Prompt] = '*** Unable to parse ***' FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END CATCH BEGIN TRY UPDATE [SRC] SET [SRC].[FieldID] = CASE WHEN [SRC].[FieldID] LIKE '[[]%]' THEN SUBSTRING([SRC].[FieldID], 2, LEN([SRC].[FieldID]) - 2) ELSE [SRC].[FieldID] END FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END TRY BEGIN CATCH UPDATE [SRC] SET [SRC].[Prompt] = '*** Unable to parse ***' FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END CATCH BEGIN TRY UPDATE [SRC] SET [SRC].[FieldID] = CASE WHEN [SRC].[FieldID] LIKE 'SYS:%(%' THEN [SRC].[FieldID] WHEN [SRC].[FieldID] LIKE 'UDF:%' THEN [SRC].[FieldID] WHEN [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1) > 0 THEN SUBSTRING([SRC].[FieldID], 1, [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1) - 1) WHEN [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1) > 0 THEN SUBSTRING([SRC].[FieldID], 1, [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1) - 1) ELSE [SRC].[FieldID] END, [SRC].[ConType] = CASE WHEN [SRC].[FieldID] LIKE 'SYS:%(%' THEN [SRC].[ConType] WHEN [SRC].[FieldID] LIKE 'UDF:%' THEN [SRC].[ConType] WHEN [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1) > 0 AND [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1) > 0 THEN CONVERT(VARCHAR(12), SUBSTRING([SRC].[FieldID], [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1) + 1, [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1) - [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1) - 1)) WHEN [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1) > 0 THEN CONVERT(VARCHAR(12), SUBSTRING([SRC].[FieldID], [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1) + 1, LEN([SRC].[FieldID]) - [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1))) ELSE NULL END, [SRC].[ConNum] = CASE WHEN [SRC].[FieldID] LIKE 'SYS:%(%' THEN [SRC].[ConNum] WHEN [SRC].[FieldID] LIKE 'UDF:%' THEN [SRC].[ConNum] WHEN [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1) > 0 AND [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1) > 0 THEN CONVERT(INT, SUBSTRING([SRC].[FieldID], [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1) + 1, LEN([SRC].[FieldID]) - [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1))) WHEN [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('.', [SRC].[FieldID], 1) > 0 THEN NULL WHEN [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1) > 0 THEN CONVERT(INT, SUBSTRING([SRC].[FieldID], [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1) + 1, LEN([SRC].[FieldID]) - [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom]('#', [SRC].[FieldID], 1))) ELSE NULL END FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID AND ISNULL([SRC].[Prompt], '') <> '***Unable to parse***' END TRY BEGIN CATCH UPDATE [SRC] SET [SRC].[Prompt] = '***Unable to parse***' FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END CATCH BEGIN TRY UPDATE [SRC] SET [SRC].[Prefix] = CASE WHEN [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom](':', [SRC].[FieldID], 1) > 0 THEN SUBSTRING([SRC].[FieldID], 1, [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom](':', [SRC].[FieldID], 1)) ELSE NULL END, [SRC].[FieldName] = CASE WHEN [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom](':', [SRC].[FieldID], 1) > 0 THEN SUBSTRING([SRC].[FieldID], [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom](':', [SRC].[FieldID], 1) + 1, LEN([SRC].[FieldID]) - [dbo].[KAAS_FN_GetUnquotedCharacterPosFrom](':', [SRC].[FieldID], 1)) ELSE NULL END FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID AND ISNULL([SRC].[Prompt], '') <> '***Unable to parse***' END TRY BEGIN CATCH UPDATE [SRC] SET [SRC].[Prompt] = '***Unable to parse***' FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID AND ISNULL([SRC].[Prompt], '') <> '***Unable to parse***' END CATCH BEGIN TRY UPDATE [SRC] SET [SRC].[RetrievalCode] = REPLACE([SRC].[RetrievalCode], '_per_', '.'), [SRC].[FieldID] = REPLACE([SRC].[FieldID], '_per_', '.'), [SRC].[FieldName] = REPLACE([SRC].[FieldName], '_per_', '.') FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID AND ISNULL([SRC].[Prompt], '') <> '***Unable to parse***' END TRY BEGIN CATCH END CATCH IF EXISTS (SELECT TOP 1 1 FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID AND [SRC].[Prefix] = 'SYS:') BEGIN DECLARE @SysFieldID NVARCHAR(MAX) DECLARE @SysActualName NVARCHAR(MAX) SELECT @SysFieldID = N'SYS:' + CONVERT(NVARCHAR(MAX), [SRC].[FieldName]), @SysActualName = CONVERT(NVARCHAR(MAX), [SRC].[ActualName]) FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID SET @SysActualName = ISNULL(@SysActualName, N'') IF @DEBUG = 1 BEGIN SELECT 'before parse: ', @Sysfieldid, @sysactualname END --Handle some old Clarion UDF formatting madness START IF @Sysfieldid LIKE '%format(UDF(%' BEGIN SET @Sysfieldid = [dbo].[KAAS_FN_GetUDFFormatter](@Sysfieldid) END --Handle some old Clarion UDF formatting madness END --Handle some old Clarion UDF decider madness START IF @Sysfieldid LIKE '%iif(UDF(%' BEGIN SET @Sysfieldid = [dbo].[KAAS_FN_GetUDFDecider](@Sysfieldid) END --Handle some old Clarion UDF formatting madness END --Handle some old Clarion date madness START IF (REPLACE(REPLACE(@Sysfieldid, '‘', ''''), '’', '''') LIKE 'SYS:sub(format(%,%''@d18'')%') BEGIN DECLARE @SUBFMTSYSFIELD VARCHAR(MAX) DECLARE @SUBFMTENDOFFIELD INT DECLARE @SUBFMTFIELDID VARCHAR(MAX) SET @SUBFMTSYSFIELD = SUBSTRING(@Sysfieldid, 16, LEN(@Sysfieldid) - 15) SET @SUBFMTENDOFFIELD = CHARINDEX(',', @SUBFMTSYSFIELD) SET @SUBFMTFIELDID = SUBSTRING(@SUBFMTSYSFIELD, 1, @SUBFMTENDOFFIELD - 1) SET @SUBFMTENDOFFIELD = CHARINDEX(')', @SUBFMTSYSFIELD, @SUBFMTENDOFFIELD) DECLARE @SUBFMTSUBSTR VARCHAR(10) SET @SUBFMTSUBSTR = REPLACE(SUBSTRING(@SUBFMTSYSFIELD, @SUBFMTENDOFFIELD + 1, LEN(@SUBFMTSYSFIELD) - @SUBFMTENDOFFIELD), ' ', '') --SELECT @SUBFMTFIELDID, @SUBFMTSYSFIELD, @SUBFMTSUBSTR IF @SUBFMTSUBSTR = ',4,14)' BEGIN SET @sysfieldid = 'SYS:f.AddDays(' IF @SUBFMTFIELDID = 'Today()' BEGIN SET @sysfieldid = @sysfieldid + 'GetDate()' END ELSE BEGIN SET @sysfieldid = @sysfieldid + @SUBFMTFIELDID END SET @sysfieldid = @sysfieldid + ', 0, ''MMMM YYYY'')' -- Clarion Month / Year syntax END END IF @sysfieldid = 'SYS:year(today())' BEGIN SET @sysfieldid = 'SYS:f.AddDays(GetDate(), 0, ''YYYY'')' END --Handle some old Clarion date madness END IF (@Sysfieldid LIKE 'SYS:%Today()%') AND (@Sysfieldid NOT LIKE 'SYS:%f.%(%') AND (RTRIM(ISNULL(@SysActualName, '')) = '') BEGIN DECLARE @ADDDAYSVALUE VARCHAR(10) DECLARE @ADDDAYSFMT VARCHAR(50) IF @Sysfieldid NOT LIKE 'SYS:format(%' BEGIN IF @Sysfieldid = 'SYS:Today()' BEGIN SET @ADDDAYSVALUE = '0' END ELSE IF @Sysfieldid LIKE '%Today()%+%' BEGIN SET @ADDDAYSVALUE = RTRIM(LTRIM(ISNULL(SUBSTRING(@Sysfieldid, CHARINDEX('+', @sysfieldid) + 1, LEN(@sysfieldid) - CHARINDEX('+', @sysfieldid)), '0'))) END ELSE IF @Sysfieldid LIKE '%Today()%-%' BEGIN SET @ADDDAYSVALUE = '-' + RTRIM(LTRIM(ISNULL(SUBSTRING(@Sysfieldid, CHARINDEX('-', @sysfieldid) + 1, LEN(@sysfieldid) - CHARINDEX('-', @sysfieldid)), '0'))) END SET @SysFieldID = 'f.AddDays(GetDate(), ' + @ADDDAYSVALUE + ', ''DD MMM YYYY'')' END ELSE IF @SysfieldID LIKE 'SYS:format(Today()%' BEGIN DECLARE @ADDDAYSCOMMAPOS INT SET @ADDDAYSCOMMAPOS = CHARINDEX(',', @sysfieldid) SET @ADDDAYSFMT = SUBSTRING(@Sysfieldid, @ADDDAYSCOMMAPOS, LEN(@Sysfieldid) - @ADDDAYSCOMMAPOS + 1) IF (@Sysfieldid LIKE 'SYS:format(Today(),%') BEGIN SET @ADDDAYSVALUE = '0' END ELSE IF (@Sysfieldid LIKE 'SYS:format(Today()%+%,%') BEGIN SET @Sysfieldid = SUBSTRING(@SysfieldID, 1, @ADDDAYSCOMMAPOS - 1) SET @ADDDAYSVALUE = RTRIM(LTRIM(ISNULL(SUBSTRING(@Sysfieldid, CHARINDEX('+', @sysfieldid) + 1, LEN(@sysfieldid) - CHARINDEX('+', @sysfieldid)), '0'))) END ELSE IF (@Sysfieldid LIKE 'SYS:format(Today()%-%,%') BEGIN SET @Sysfieldid = SUBSTRING(@SysfieldID, 1, @ADDDAYSCOMMAPOS - 1) SET @ADDDAYSVALUE = '-' + RTRIM(LTRIM(ISNULL(SUBSTRING(@Sysfieldid, CHARINDEX('-', @sysfieldid) + 1, LEN(@sysfieldid) - CHARINDEX('-', @sysfieldid)), '0'))) END SET @SysFieldID = 'f.AddDays(GetDate(), ' + @ADDDAYSVALUE + @ADDDAYSFMT END END IF @Sysfieldid LIKE 'SYS:%f.%(%' BEGIN SET @SysActualName = SUBSTRING(@sysfieldid, 5, LEN(@sysfieldid) - 4) SET @SysFieldID = 'MAT:Code' EXEC [dbo].[KAAS_ParseFCode] @XMLHead, @sysactualname OUT UPDATE [SRC] SET [SRC].[Prefix] = 'MAT:', [SRC].[FieldName] = 'Code', [SRC].[ActualName] = CONVERT(VARCHAR(MAX), @SysActualName) FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END ELSE BEGIN DECLARE @NEWFORMAT VARCHAR(50) SET @NEWFORMAT = NULL EXEC [dbo].[KAAS_ParseSysField] @SysFieldID OUT, @SysActualName OUT IF LEN(@SysFieldID) > 4 BEGIN IF SUBSTRING(@SysFieldID, 4, 1) = ':' BEGIN IF @SysActualName = 'value(' + @SysFieldID + ')' BEGIN SET @SysActualName = '' END IF @SysActualName LIKE 'format(value(' + @SysFieldID + '),%' BEGIN SET @SysActualName = SUBSTRING(@SysActualName, LEN('format(value(' + @SysFieldID) + 3, LEN(@SysActualName) - LEN('format(value(' + @SysFieldID) - 3) SET @NEWFORMAT = LTRIM(RTRIM(REPLACE(@SysActualName, '''', ''))) SET @SysActualName = '' END IF @SysActualName LIKE 'format(' + @SysFieldID + ',%' BEGIN SET @SysActualName = SUBSTRING(@SysActualName, LEN('format(' + @SysFieldID) + 2, LEN(@SysActualName) - LEN('format(' + @SysFieldID) - 2) SET @NEWFORMAT = LTRIM(RTRIM(REPLACE(@SysActualName, '''', ''))) SET @SysActualName = '' END END END IF @DEBUG = 1 BEGIN SELECT 'after parse: ', @Sysfieldid, @sysactualname, @NEWFORMAT END IF @sysactualname LIKE ('%f.%(%') BEGIN EXEC [dbo].[KAAS_ParseFCode] @XMLHead, @sysactualname OUT END UPDATE [SRC] SET [SRC].[Prefix] = CONVERT(VARCHAR(5), SUBSTRING(@SysFieldID, 1, [dbo].[KAAS_FN_GetUnquotedCharacterPos](':', @SysFieldID))), [SRC].[FieldName] = CONVERT(NVARCHAR(MAX), SUBSTRING(@SysFieldID, [dbo].[KAAS_FN_GetUnquotedCharacterPos](':', @SysFieldID) + 1, LEN(@SysFieldID) - [dbo].[KAAS_FN_GetUnquotedCharacterPos](':', @SysFieldID))), [SRC].[ActualName] = CONVERT(VARCHAR(MAX), @SysActualName), [SRC].[Format] = ISNULL(@NEWFORMAT, [SRC].[Format]) FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID END END BEGIN TRY IF @DEBUG = 1 BEGIN SELECT 'System Field to Parse', [SRC].[Prefix], [SRC].[FieldName], ISNULL([SRC].[ActualName], [SUF].[ACTUALNAME]), ISNULL(@NEWFORMAT, [SUF].[FORMAT]) FROM @SEARCHES [SRC] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SRC].[Prefix] AND [SUF].[FIELDNAME] = [SRC].[FieldName] WHERE [SRC].[id] = @CURID AND ISNULL([SRC].[Prompt], '') <> '***Unable to parse***' END UPDATE [SRC] SET [SRC].[FieldName] = LTRIM(RTRIM([SRC].[FieldName])), [SRC].[Prompt] = CASE WHEN [SUF].[PROMPT] IS NULL AND [SRC].[FieldName] IS NULL THEN '***Unable to parse***' WHEN [SUF].[PROMPT] IS NULL THEN LTRIM(RTRIM([SRC].[FieldName])) ELSE [SUF].[PROMPT] END, [SRC].[ActualName] = ISNULL([SRC].[ActualName], [SUF].[ACTUALNAME]), [SRC].[FORMAT] = ISNULL(@NEWFORMAT, [SUF].[FORMAT]), [SRC].[SQLField] = [dbo].[KAAS_FN_SystemField]([SRC].[Prefix], LTRIM(RTRIM([SRC].[FieldName])), CASE WHEN RTRIM(ISNULL([SUF].[SQLSTATEMENT], '')) <> '' THEN NULL ELSE ISNULL([SRC].[ActualName], [SUF].[ACTUALNAME]) END, ISNULL(@NEWFORMAT, [SUF].[FORMAT])), [SRC].[SQLStatement] = [SUF].[SQLStatement], [SRC].[SQLTable] = CASE WHEN [SRC].[Prefix] = 'DATE:' AND PATINDEX('%DIA3:%', ISNULL([SRC].[ActualName], [SUF].[ACTUALNAME])) > 0 THEN 'diary' ELSE [dbo].[KAAS_FN_SystemTable]([SRC].[Prefix]) END FROM @SEARCHES [SRC] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SRC].[Prefix] AND [SUF].[FIELDNAME] = LTRIM(RTRIM([SRC].[FieldName])) WHERE [SRC].[id] = @CURID AND ISNULL([SRC].[Prompt], '') <> '***Unable to parse***' END TRY BEGIN CATCH BEGIN TRY UPDATE [SRC] SET [SRC].[Prompt] = CASE WHEN [SUF].[PROMPT] IS NULL AND [SRC].[FieldName] IS NULL THEN '***Unable to parse***' WHEN [SUF].[PROMPT] IS NULL THEN [SRC].[FieldName] ELSE [SUF].[PROMPT] END, [SRC].[ActualName] = ISNULL([SRC].[ActualName], [SUF].[ACTUALNAME]), [SRC].[FORMAT] = ISNULL(@NEWFORMAT, [SUF].[FORMAT]), [SRC].[SQLField] = [dbo].[KAAS_FN_SystemField]([SRC].[Prefix], [SRC].[FieldName], '', ISNULL(@NEWFORMAT, [SUF].[FORMAT])), [SRC].[SQLStatement] = [SUF].[SQLStatement], [SRC].[SQLTable] = CASE WHEN [SRC].[Prefix] = 'DATE:' AND PATINDEX('%DIA3:%', ISNULL([SRC].[ActualName], [SUF].[ACTUALNAME])) > 0 THEN 'diary' ELSE [dbo].[KAAS_FN_SystemTable]([SRC].[Prefix]) END FROM @SEARCHES [SRC] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SRC].[Prefix] AND [SUF].[FIELDNAME] = [SRC].[FieldName] WHERE [SRC].[id] = @CURID AND ISNULL([SRC].[Prompt], '') <> '***Unable to parse***' END TRY BEGIN CATCH UPDATE [SRC] SET [SRC].[Prompt] = '***Unable to Parse***', [SRC].[ActualName] = '***Unable to Parse***', [SRC].[FORMAT] = '', [SRC].[SQLField] = '''''', [SRC].[SQLTable] = '' FROM @SEARCHES [SRC] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [SRC].[Prefix] AND [SUF].[FIELDNAME] = [SRC].[FieldName] WHERE [SRC].[id] = @CURID END CATCH END CATCH --SELECT [SRC].* -- FROM @SEARCHES [SRC] UPDATE [SRC] SET [SRC].[SQLStatement] = REPLACE([SRC].[SQLStatement], '''''', '[CC].[CONTYPE]') FROM @SEARCHES [SRC] UPDATE [SRC] SET [SRC].[SQLStatement] = REPLACE([SRC].[SQLStatement], '', '[CC].[CONTYPE]') FROM @SEARCHES [SRC] UPDATE [SRC] SET [SRC].[SQLStatement] = REPLACE([SRC].[SQLStatement], '''''', '[CC].[CONNUM]') FROM @SEARCHES [SRC] UPDATE [SRC] SET [SRC].[SQLStatement] = REPLACE([SRC].[SQLStatement], '', '[CC].[CONNUM]') FROM @SEARCHES [SRC] UPDATE [SRC] SET [SRC].[SQLStatement] = REPLACE([SRC].[SQLStatement], '''''', CASE WHEN [SRC].[Prefix] = 'UDF:' THEN '[CDE].[Code]' ELSE '[MAT].[Code]' END) FROM @SEARCHES [SRC] UPDATE [SRC] SET [SRC].[SQLStatement] = REPLACE([SRC].[SQLStatement], '', CASE WHEN [SRC].[Prefix] = 'UDF:' THEN '[CDE].[Code]' ELSE '[MAT].[Code]' END) FROM @SEARCHES [SRC] UPDATE [SRC] SET [SRC].[SQLStatement] = REPLACE([SRC].[SQLStatement], '''''', CASE WHEN [SRC].[Prefix] = 'UDF:' THEN '(SELECT TOP 1 [MAT2].[ClientCode] FROM [dbo].[matters] [MAT2] WHERE [MAT2].[Code] = [CDE].[Code])' ELSE '[MAT].[ClientCode]' END) FROM @SEARCHES [SRC] UPDATE [SRC] SET [SRC].[SQLStatement] = REPLACE([SRC].[SQLStatement], '', CASE WHEN [SRC].[Prefix] = 'UDF:' THEN '(SELECT TOP 1 [MAT2].[ClientCode] FROM [dbo].[matters] [MAT2] WHERE [MAT2].[Code] = [CDE].[Code])' ELSE '[MAT].[ClientCode]' END) FROM @SEARCHES [SRC] SET @NCOMMAND = 'SELECT TOP 1 ' SELECT @DummyConnum = [ConNum] FROM @SEARCHES [SRC] WHERE [SRC].[ID] = @CURID AND [SRC].[Prefix] = 'LCN:' AND [SRC].[FieldName] = 'Dummy' SELECT @DummyCanType = [SRC].[ConType], @DummyCannum = [SRC].[ConNum] FROM @SEARCHES [SRC] WHERE [SRC].[ID] = @CURID AND [SRC].[Prefix] = 'CAN:' AND [SRC].[FieldName] = 'Dummy' SET @DummyConnum = CASE WHEN ISNULL(@DummyConnum, 0) < 1 THEN 1 ELSE @DummyConnum END SELECT @DummyCanType = ISNULL((SELECT [SRC].[ConType] FROM @SEARCHES [SRC] WHERE [SRC].[ID] = @CURID AND [SRC].[Prefix] = 'CAN:'), @DummyCanType) SELECT @DummyCannum = ISNULL((SELECT [SRC].[ConNum] FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID AND [SRC].[Prefix] = 'CAN:'), ISNULL((SELECT [DCN].[CanNum] FROM @DummyCanNums [DCN] WHERE [DCN].[Type] = @DummyCanType), 0)) SET @DummyCannum = CASE WHEN ISNULL(@DummyCannum, 0) < 1 THEN 1 ELSE @DummyCannum END INSERT INTO @DummyCanNums ([Type], [CanNum]) SELECT [ConType], [ConNum] FROM @SEARCHES [SRC] LEFT OUTER JOIN @DummyCanNums [DCN] ON [DCN].[Type] = [SRC].[ConType] WHERE [SRC].[ID] = @CURID AND [SRC].[Prefix] = 'CAN:' AND [SRC].[FieldName] = 'Dummy' AND RTRIM(ISNULL([SRC].[ConType], '')) <> '' AND [DCN].[Type] IS NULL UPDATE [DCN] SET [DCN].[CanNum] = [SRC].[ConNum] FROM @SEARCHES [SRC] INNER JOIN @DummyCanNums [DCN] ON [DCN].[Type] = [SRC].[ConType] WHERE [SRC].[ID] = @CURID AND [SRC].[Prefix] = 'CAN:' AND [SRC].[FieldName] = 'Dummy' AND RTRIM(ISNULL([SRC].[ConType], '')) <> '' UPDATE [SRC] SET [SRC].[FieldName] = SUBSTRING([SRC].[FIELDNAME], 1, CHARINDEX('=', [SRC].[FieldName]) - 1) FROM @SEARCHES [SRC] WHERE [SRC].[FieldName] LIKE '%=%' IF @Debug = 1 BEGIN SELECT @DummyCanType, @DummyCanNum, * FROM @SEARCHES END SELECT @mattercode = [SRC].[case], @ActionID = [SRC].[ActionID], @TrackReference = [SRC].[TrackReference], @ConType = CASE WHEN [SRC].[Prefix] = 'CAN:' AND RTRIM(ISNULL([SRC].[ConType], ISNULL(@DummyCanType, ''))) = '' AND CHARINDEX('.', [SRC].[FieldName]) > 0 AND CHARINDEX('#', [SRC].[FieldName]) > 0 THEN SUBSTRING([SRC].[FieldName], CHARINDEX('.', [SRC].[FieldName]) + 1, CHARINDEX('#', [SRC].[FieldName]) - CHARINDEX('.', [SRC].[FieldName]) - 1) WHEN [SRC].[Prefix] = 'CAN:' AND RTRIM(ISNULL([SRC].[ConType], ISNULL(@DummyCanType, ''))) = '' THEN '' WHEN [SRC].[Prefix] = 'CAN:' THEN RTRIM(ISNULL([SRC].[ConType], ISNULL(@DummyCanType, ''))) ELSE [SRC].[ConType] END, @ConNum = CASE WHEN [SRC].[Prefix] = 'LCN:' AND ISNULL([SRC].[ConNum], ISNULL(@DummyConnum, 0)) = -1 THEN -1 WHEN [SRC].[Prefix] = 'LCN:' AND ISNULL([SRC].[ConNum], ISNULL(@DummyConnum, 0)) < 1 THEN 1 WHEN [SRC].[Prefix] = 'LCN:' THEN ISNULL([SRC].[ConNum], ISNULL(@DummyConnum, 0)) WHEN [SRC].[Prefix] = 'CAN:' AND @DummyCanNum <> -1 AND ISNULL([SRC].[ConNum], 0) < 1 AND CHARINDEX('.', [SRC].[FieldName]) > 0 AND CHARINDEX('#', [SRC].[FieldName]) > 0 AND ISNUMERIC(SUBSTRING([SRC].[FieldName], CHARINDEX('#', [SRC].[FieldName]) + 1, LEN([SRC].[FieldName]) - CHARINDEX('#', [SRC].[FieldName]))) = 1 THEN CONVERT(INT, SUBSTRING([SRC].[FieldName], CHARINDEX('#', [SRC].[FieldName]) + 1, LEN([SRC].[FieldName]) - CHARINDEX('#', [SRC].[FieldName]))) WHEN [SRC].[Prefix] = 'CAN:' AND ISNULL([SRC].[ConNum], ISNULL(@DummyCannum, 0)) = -1 THEN -1 WHEN [SRC].[Prefix] = 'CAN:' AND ISNULL([SRC].[ConNum], ISNULL(@DummyCannum, 0)) < 1 THEN 1 WHEN [SRC].[Prefix] = 'CAN:' THEN ISNULL([SRC].[ConNum], ISNULL(@DummyCannum, 0)) ELSE [SRC].[ConNum] END, @UDFPrefix = CONVERT(VARCHAR(5), [SRC].[Prefix]), @UDFName = CONVERT(VARCHAR(30), [SRC].[FieldName]), @NCOMMAND = @NCOMMAND + N'@VALUE = ' + CASE WHEN ISNULL([SRC].[SQLStatement], '') <> '' THEN N'(' + CONVERT(NVARCHAR(MAX), [SRC].[SQLStatement]) + N')' WHEN ISNULL(CONVERT(NVARCHAR(MAX), [SRC].[SQLField]), N'') <> N'' THEN CONVERT(NVARCHAR(MAX), [SRC].[SQLField]) ELSE N'''''' END, @NCOMMAND = @NCOMMAND + CASE WHEN ISNULL([SRC].[SQLStatement], '') <> '' THEN N' FROM (SELECT @mattercode AS [Code]) [CDE]' WHEN [SRC].[SQLTABLE] IN ('control', '', 'unknown') THEN N'' ELSE N' FROM (SELECT @mattercode AS [Code]) [CDE]' END, @NCOMMAND = @NCOMMAND + CASE WHEN [SRC].[SQLTABLE] = 'control' THEN N' FROM [dbo].[control] [CTR]' WHEN [SRC].[SQLTABLE] IN ('control', '', 'unknown') THEN N'' WHEN [SRC].[SQLTABLE] = 'CaseMaster' THEN N' LEFT OUTER JOIN [dbo].[CaseMaster] [CSM] ON [CSM].[CSCODE] = [CDE].[Code]' WHEN ( ([SRC].[SQLTABLE] = 'Handlers' AND PATINDEX('%TME1%', [SRC].[ActualName]) = 0) OR PATINDEX('%TEA1:%', [SRC].[ActualName]) > 0) THEN N' LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[code] = [CDE].[Code] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = CASE WHEN RTRIM(''' + ISNULL([SRC].[handler], '') + ''') = '''' THEN [MAT].[FECode] ELSE RTRIM(''' + ISNULL([SRC].[handler], '') + ''') END LEFT OUTER JOIN [dbo].[Handlers] FEH ON [FEH].[CODE] = [MAT].[FECode] LEFT OUTER JOIN [dbo].[Handlers] TEA ON [TEA].[CODE] = [HAN].[Team]' WHEN ( [SRC].[SQLTABLE] = 'Handlers' OR ( [SRC].[Prefix] = 'DATE:' AND PATINDEX('%DIA3:%', [SRC].[ACTUALNAME]) > 0) OR [SRC].[SQLTable] = 'diary') THEN N' LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[code] = [CDE].[Code] LEFT OUTER JOIN [dbo].[diary] [DIA] ON [DIA].[ACTIONID] = @ActionID LEFT OUTER JOIN [dbo].[Handlers] [AHA] ON [AHA].[CODE] = [DIA].[FNCode] LEFT OUTER JOIN [dbo].[Handlers] [HAN] ON [HAN].[CODE] = CASE WHEN RTRIM(''' + ISNULL([SRC].[handler], '') + ''') = '''' THEN [MAT].[FECode] ELSE RTRIM(''' + ISNULL([SRC].[handler], '') + ''') END LEFT OUTER JOIN [dbo].[Handlers] [FEH] ON [FEH].[CODE] = [MAT].[FECode] LEFT OUTER JOIN [dbo].[Handlers] [TEA] ON [TEA].[CODE] = [HAN].[Team]' WHEN [SRC].[SQLTABLE] = 'DiaryAttachments' THEN N' LEFT OUTER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[TrackReference] = @TrackReference' WHEN [SRC].[SQLTABLE] = 'client' THEN N' LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[code] = [CDE].[Code] LEFT OUTER JOIN [dbo].[client] [CLT] INNER JOIN [dbo].[CONTACTS] [CON] ON [CON].[CODE] = [CLT].[CLCODE] ON [CLT].[CLCODE] = [MAT].[ClientCode]' WHEN [SRC].[SQLTABLE] = 'Contacts' THEN N' LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[code] = [CDE].[Code] LEFT OUTER JOIN [dbo].[Contacts] [CON] INNER JOIN [dbo].[client] [CLT] ON [CLT].[CLCODE] = [CON].[CODE] ON [CON].[CODE] = [MAT].[ClientCode]' WHEN [SRC].[SQLTABLE] = 'ClientContacts' THEN N' LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[code] = [CDE].[Code] LEFT OUTER JOIN [dbo].[ClientContacts] CLC ON [CLC].[CLCODE] = [MAT].[ClientCode] AND [CLC].[CLNUMCONTACT] = ISNULL(@ConNum, 1)' WHEN [SRC].[SQLTABLE] = 'Branch' THEN N' LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[code] = [CDE].[Code] LEFT OUTER JOIN [dbo].[Branch] BR ON [BR].[BRANCHCODE] = [MAT].[Branch]' WHEN [SRC].[SQLTABLE] IN ('CaseContacts', 'CaseAssociatesNames', 'CaseAssociatesContacts') THEN N' LEFT OUTER JOIN [dbo].[matters] [MAT] ON [MAT].[code] = [CDE].[Code] LEFT OUTER JOIN [dbo].[CaseContacts] CC on [CC].[CASECODE] = [CDE].[Code] and [CC].[CONTYPE] = ISNULL(@ConType, ''Contact'') and [CC].[CONNUM] = ISNULL(@ConNum, 1) LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CAN on [CAN].[CODE] = [CC].[NAMECODE] LEFT OUTER JOIN [dbo].[CaseAssociatesContacts] CAC on [CAC].[NAMECODE] = [CAN].[CODE] and [CAC].[KEYID] = [CC].[AssignedContact]' WHEN [SRC].[SQLTABLE] = 'CaseUDFAnswers' THEN N' INNER JOIN [dbo].[matters] [MAT] INNER JOIN [dbo].[CaseMaster] [CSM] ON [CSM].[CSCODE] = [MAT].[Code] LEFT OUTER JOIN [dbo].[client] [CLT] ON [CLT].[CLCODE] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[Contacts] [CON] ON [CON].[CODE] = [MAT].[ClientCode] ON [MAT].[Code] = [CDE].[Code] OUTER APPLY (SELECT RTRIM(ISNULL([SUF].[PROMPT], '''')) AS [Prompt], CASE WHEN ISNULL([SUF].[Type], '''') = ''Numeric'' THEN CASE WHEN [CUF].[NumberValue] IS NULL THEN RTRIM(ISNULL(CONVERT(VARCHAR(MAX), [CUF].[TEXT1]), '''')) ELSE [dbo].[KAAS_FN_GetNumericalFormat]([CUF].[NumberValue], ISNULL([SUF].[LENGTH], 18), ISNULL([SUF].[DECMIAL], 0)) END WHEN ISNULL([SUF].[Type], '''') <> ''Date'' THEN RTRIM(ISNULL(CONVERT(VARCHAR(MAX), LUP.[Description]), RTRIM(ISNULL(CONVERT(VARCHAR(MAX), [CUF].[TEXT1]), '''')))) WHEN [SUF].[FORMAT] IN (''@d6'', ''8'') THEN CASE WHEN (ISNULL([CUF].[NumberValue], 0) = 0) AND ([CUF].[DateValue] IS NOT NULL) THEN CONVERT(VARCHAR, [CUF].[DateValue], 103) WHEN ISNULL([CUF].[NumberValue], 0) = 0 THEN RTRIM(ISNULL([CUF].[TEXT1], '''')) ELSE CONVERT(VARCHAR, DATEADD(dd, ISNULL([CUF].[NumberValue], 0), ''18001228''), 103) END ELSE CASE WHEN (ISNULL([CUF].[NumberValue], 0) = 0) AND ([CUF].[DateValue] IS NOT NULL) THEN CONVERT(VARCHAR(2), DAY([CUF].[DateValue])) + '' '' + DATENAME(MONTH, [CUF].[DateValue]) + '' '' + CONVERT(VARCHAR(4), YEAR([CUF].[DateValue])) WHEN ISNULL([CUF].[NumberValue], 0) = 0 THEN RTRIM(ISNULL([CUF].[TEXT1], '''')) ELSE CONVERT(VARCHAR(2), DAY(DATEADD(dd, ISNULL([CUF].[NumberValue], 0), ''18001228''))) + '' '' + DATENAME(MONTH, DATEADD(DAY, ISNULL([CUF].[NumberValue], 0), ''18001228'')) + '' '' + CONVERT(VARCHAR(4), YEAR(DATEADD(dd, ISNULL([CUF].[NumberValue], 0), ''18001228''))) END END AS [Value], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), [CUF].[TEXT1]), '''')) AS [Text1] FROM [dbo].[CaseUDFAnswers] [CUF] LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] [SUF] ON [SUF].[FILEPREFIX] = [CUF].[UDFFILE] AND [SUF].[FIELDNAME] = [CUF].[UDFNAME] LEFT OUTER JOIN [dbo].[UDFLookups] [LUP] ON LUP.[FieldName] = CONVERT(VARCHAR(30), [CUF].[UDFNAME]) AND LUP.[CODE] = CONVERT(VARCHAR(3), [CUF].[Text1]) WHERE [CUF].[CASECODE] = @mattercode AND [CUF].[UDFFILE] = @UDFPrefix AND [CUF].[UDFNAME] = @UDFName) UDF' ELSE N' LEFT OUTER JOIN [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[Contacts] [CON] ON [CON].[Code] = [MAT].[ClientCode] ON [MAT].[code] = [CDE].[Code]' END FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID SET @VALUE = NULL IF @NEWFORMAT IS NOT NULL BEGIN SET @NCommand = REPLACE(@NCommand, N'[SUF].[Format]', N'''' + REPLACE(CONVERT(NVARCHAR(50), @NEWFORMAT), N'''', N'''''') + N'''') END IF @DEBUG = 1 BEGIN SELECT @NCommand, @mattercode, @ActionID, @TrackReference, @ConType, @ConNum, @UDFPrefix, @UDFName END BEGIN TRY EXEC sp_executesql @NCOMMAND, N'@mattercode VARCHAR(20), @ActionID INT, @TrackReference INT, @ConType VARCHAR(20), @ConNum INT, @UDFPrefix VARCHAR(5), @UDFName VARCHAR(30), @VALUE VARCHAR(MAX) OUTPUT', @mattercode = @mattercode, @ActionID = @ActionID, @TrackReference = @TrackReference, @ConType = @ConType, @ConNum = @ConNum, @UDFPrefix = @UDFPrefix, @UDFName = @UDFName, @VALUE = @VALUE OUTPUT END TRY BEGIN CATCH -- END CATCH --SELECT @VALUE SET @VALUE = ISNULL(@VALUE, '') UPDATE [SRC] SET [SRC].[VALUE] = @VALUE, [SRC].[COMMAND] = @NCommand, [SRC].[DOCNAMING] = CASE WHEN RTRIM(ISNULL([SRC].[DOCNAMING], '')) = '' THEN '' ELSE [SRC].[DOCNAMING] + @VALUE END FROM @SEARCHES [SRC] WHERE [SRC].[id] = @CURID SELECT TOP 1 @ID = [SRC].[id] FROM @SEARCHES [SRC] WHERE [SRC].[id] > @CURID ORDER BY [SRC].[id] END --SELECT PATINDEX('%TEA1%', [SRC].[ActualName]), * FROM @SEARCHES [SRC] SELECT [SRC].[OriginalRetrievalCode] AS [RetrievalCode], ISNULL([SRC].[Prompt], [SRC].[FieldName]) AS [Prompt], [SRC].[VALUE] AS [Value], RTRIM(ISNULL([SRC].[DOCNAMING], '')) AS [DocNaming] FROM @SEARCHES [SRC] END GO IF OBJECT_ID(N'KAAS_XMLInsertCCDAssociate',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDAssociate] GO CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDAssociate] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the contact information for Notes. * * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDAssociate] * * Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] * * * * Modification History: * * 2019-08-21 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(20) DECLARE @Name VARCHAR(256) DECLARE @Address VARCHAR(500) DECLARE @Salut VARCHAR(256) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CON].[Code], @Name = [CON].[Name], @Address = [CON].[Address], @Salut = [CON].[Salut] FROM OPENXML(@iSL, N'CON') WITH ([Code] VARCHAR(20) 'Code', [Name] VARCHAR(256) 'Name', [Address] VARCHAR(500) 'Address', [Salut] VARCHAR(256) 'Salut') [CON] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH UPDATE [MAT] SET [MAT].[ClientName] = @Name, [MAT].[ClientAddress] = @Address, [MAT].[ClientSalutation] = @Salut FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @Code SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLInsertCCDBank',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDBank] GO CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDBank] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the contact information for Bank. * * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDBank] * * Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(10) DECLARE @BankName VARCHAR(60) DECLARE @BankAddress VARCHAR(500) DECLARE @BankSortCode VARCHAR(20) DECLARE @BankAccNo VARCHAR(20) DECLARE @IBan VARCHAR(34) DECLARE @Bic VARCHAR(20) DECLARE @EFTEmailAddress VARCHAR(150) DECLARE @BankType VARCHAR(1) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CON].[Code], @BankName = [CON].[BankName], @BankAddress = [CON].[BankAddress], @BankSortCode = [CON].[BankSortCode], @BankAccNo = [CON].[BankAccNo], @IBan = [CON].[IBan], @Bic = [CON].[Bic], @EFTEmailAddress = [CON].[EFTEmailAddress], @BankType = [CON].[BankType] FROM OPENXML(@iSL, N'CON') WITH ([Code] VARCHAR(10) 'Code', [BankName] VARCHAR(60) 'BankName', [BankAddress] VARCHAR(500) 'BankAddress', [BankSortCode] VARCHAR(20) 'BankSortCode', [BankAccNo] VARCHAR(20) 'BankAccNo', [IBan] VARCHAR(34) 'IBan', [Bic] VARCHAR(20) 'Bic', [EFTEmailAddress] VARCHAR(150) 'EFTEmailAddress', [BankType] VARCHAR(1) 'BankType') [CON] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH UPDATE [CON] SET [CON].[Code] = @Code, [CON].[BankName] = @BankName, [CON].[BankAddress] = @BankAddress, [CON].[BankSortCode] = @BankSortCode, [CON].[BankAccNo] = @BankAccNo, [CON].[IBan] = @IBan, [CON].[Bic] = @Bic, [CON].[EFTEmailAddress] = @EFTEmailAddress, [CON].[BankType] = @BankType FROM [dbo].[contacts] [CON] WHERE [CON].[Code] = @Code SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLInsertCCDBilling',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDBilling] GO CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDBilling] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the contact information for Billing. * * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDBilling] * * Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(10) DECLARE @ChargeArrangement VARCHAR(5) DECLARE @BillingMethod CHAR(1) DECLARE @BillingType CHAR(1) DECLARE @ChargeOutRateInd BIT DECLARE @ChargeRateLevel TINYINT DECLARE @CurrentUser VARCHAR(10) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CON].[Code], @ChargeArrangement = [CON].[ChargeArrangement], @BillingMethod = [CON].[BillingMethod], @BillingType = [CON].[BillingType], @ChargeOutRateInd = [CON].[ChargeOutRateInd], @ChargeRateLevel = [CON].[ChargeRateLevel] FROM OPENXML(@iSL, N'CON') WITH ([Code] VARCHAR(10) 'Code', [ChargeArrangement] VARCHAR(5) 'ChargeArrangement', [BillingMethod] CHAR(1) 'BillingMethod', [BillingType] CHAR(1) 'BillingType', [ChargeOutRateInd] BIT 'ChargeOutRateInd', [ChargeRateLevel] TINYINT 'ChargeRateLevel') [CON] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH UPDATE [CON] SET [CON].[Code] = @Code, [CON].[ChargeArrangement] = @ChargeArrangement, [CON].[BillingMethod] = @BillingMethod, [CON].[ChargeOutRateInd] = CASE WHEN ISNULL(@ChargeOutRateInd, 0) = 1 THEN 'Y' ELSE 'N' END, [CON].[CompFrequency] = @BillingType, [CON].[ChargeLevel] = @ChargeRateLevel FROM [dbo].[contacts] [CON] WHERE [CON].[Code] = @Code SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLInsertCCDCorporate',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDCorporate] GO CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDCorporate] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the contact information for Corporate. * * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDCorporate] * * Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(10) DECLARE @OtherAddress VARCHAR(500) DECLARE @IsDeceased BIT DECLARE @DOD DATETIME DECLARE @LastAr DATETIME DECLARE @CRONumber VARCHAR(20) DECLARE @CompanyWebSite VARCHAR(120) DECLARE @Introducer VARCHAR(30) DECLARE @IntroFE VARCHAR(10) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CON].[Code], @Introducer = [CON].[Introducer], @IntroFE = [CON].[IntroFE], @IsDeceased = [CON].[IsDeceased], @DOD = [CON].[DOD], @LastAr = [CON].[LastAr], @CRONumber = [CON].[CRONumber], @CompanyWebSite = [CON].[CompanyWebSite], @OtherAddress = [CON].[OtherAddress] FROM OPENXML(@iSL, N'CON') WITH ([Code] VARCHAR(10) 'Code', [OtherAddress] VARCHAR(500) 'OtherAddress', [IsDeceased] BIT 'IsDeceased', [DOD] DATETIME 'DOD', [LastAr] DATETIME 'LastAr', [CRONumber] VARCHAR(20) 'CRONumber', [CompanyWebSite] VARCHAR(120) 'CompanyWebSite', [Introducer] VARCHAR(30) 'Introducer', [IntroFE] VARCHAR(10) 'IntroFE') [CON] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH UPDATE [CON] SET [CON].[Code] = @Code, [CON].[OtherAddress] = @OtherAddress, [CON].[InActive] = (CASE WHEN ISNULL(@IsDeceased, 0) = 1 THEN 'Y' ELSE 'N' END), [CON].[DateInActive] = (CASE WHEN @DOD = '' THEN NULL ELSE @DOD END), [CON].[LastAR] = @LastAr, [CON].[CRONumber] = @CRONumber, [CON].[CompanyWebSite] = @CompanyWebSite, [CON].[Introducer] = @Introducer, [CON].[IntroFE] = @IntroFE FROM [dbo].[contacts] [CON] WHERE [CON].[Code] = @Code SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLInsertCCDCrossRef',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDCrossRef] GO CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDCrossRef] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the contact information for Cross Ref client group.* * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDCrossRef] * * Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] * * * * Modification History: * * 2019-11-07 Dheepin Vijith K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @ClientGroup VARCHAR(10) DECLARE @Code VARCHAR(10) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CON].[Code], @ClientGroup = [CON].[ClientGroup] FROM OPENXML(@iSL, N'CON') WITH ([Code] VARCHAR(10) 'Code', [ClientGroup] VARCHAR(10) 'ClientGroup') [CON] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH UPDATE [CON] SET [CON].[ClientGroup] = @ClientGroup FROM [dbo].[contacts] [CON] WHERE [CON].[Code] = @Code SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLInsertCCDGeneral',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDGeneral] GO CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDGeneral] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the contact information for General. * * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDGeneral] * * Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * * 2019-06-08 Arun V Added two column Envelope and Name * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(10) DECLARE @Salut VARCHAR(256) DECLARE @MainContact VARCHAR(30) DECLARE @Address VARCHAR(500) DECLARE @Tel VARCHAR(20) DECLARE @Fax VARCHAR(20) DECLARE @Mobile VARCHAR(20) DECLARE @Email VARCHAR(40) DECLARE @SecondaryEmail VARCHAR(40) DECLARE @OtherRef VARCHAR(20) DECLARE @PPS VARCHAR(20) DECLARE @FE VARCHAR(10) DECLARE @SpousePPS VARCHAR(20) DECLARE @ClientVATNo VARCHAR(20) DECLARE @TaxType VARCHAR(5) DECLARE @PostalCode VARCHAR(100) DECLARE @County VARCHAR(100) DECLARE @DXAddress VARCHAR(500) DECLARE @Nation CHAR(20) DECLARE @WarningMessage VARCHAR(500) DECLARE @WebPassword VARCHAR(20) DECLARE @RemoteAccess BIT DECLARE @DisallowNewMatter BIT DECLARE @Approved BIT DECLARE @ApprovedDate DATETIME DECLARE @Corporate BIT DECLARE @IsStatement BIT DECLARE @CurrentUser VARCHAR(10) DECLARE @EnvelopeName VARCHAR(200) DECLARE @Name VARCHAR(256) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CON].[Code], @Salut = [CON].[Salut], @MainContact = [CON].[MainContact], @Address = [CON].[Address], @Tel = [CON].[Tel], @Fax = [CON].[Fax], @Mobile = [CON].[Mobile], @Email = [CON].[Email], @SecondaryEmail = [CON].[SecondaryEmail], @OtherRef = [CON].[OtherRef], @PPS = [CON].[PPS], @FE = [CON].[FE ], @SpousePPS = [CON].[SpousePPS], @ClientVATNo = [CON].[ClientVATNo], @TaxType = [CON].[TaxType], @PostalCode = [CON].[PostalCode], @County = [CON].[County], @DXAddress = [CON].[DXAddress], @Nation = [CON].[Nation], @WarningMessage = [CON].[WarningMessage], @WebPassword = [CON].[WebPassword], @RemoteAccess = [CON].[RemoteAccess], @DisallowNewMatter = [CON].[DisallowNewMatter], @Approved = [CON].[Approved], @ApprovedDate = [CON].[ApprovedDate], @Corporate = [CON].[Corporate], @IsStatement = [CON].[IsStatement], @CurrentUser = [CON].[CurrentUser], @EnvelopeName = [CON].[EnvelopeName], @Name = [CON].[Name] FROM OPENXML(@iSL, N'CON') WITH ([Code] VARCHAR(10) 'Code', [Salut] VARCHAR(256) 'Salut', [MainContact] VARCHAR(30) 'MainContact', [Address] VARCHAR(500) 'Address', [Tel] VARCHAR(20) 'Tel', [Fax] VARCHAR(20) 'Fax', [Mobile] VARCHAR(20) 'Mobile', [Email] VARCHAR(40) 'Email', [SecondaryEmail] VARCHAR(40) 'SecondaryEmail', [OtherRef] VARCHAR(20) 'OtherRef', [PPS] VARCHAR(20) 'PPS', [FE] VARCHAR(10) 'FE ', [SpousePPS] VARCHAR(20) 'SpousePPS', [ClientVATNo] VARCHAR(20) 'ClientVATNo', [TaxType] VARCHAR(5) 'TaxType', [PostalCode] VARCHAR(100) 'PostalCode', [County] VARCHAR(100) 'County', [DXAddress] VARCHAR(500) 'DXAddress', [Nation] VARCHAR(20) 'Nation', [WarningMessage] VARCHAR(500) 'WarningMessage', [WebPassword] VARCHAR(20) 'WebPassword', [RemoteAccess] BIT 'RemoteAccess', [DisallowNewMatter] BIT 'DisallowNewMatter', [Approved] BIT 'Approved', [ApprovedDate] DATETIME 'ApprovedDate', [Corporate] BIT 'Corporate', [IsStatement] BIT 'IsStatement', [CurrentUser] VARCHAR(10) 'CurrentUser', [EnvelopeName] VARCHAR(200) 'EnvelopeName', [Name] VARCHAR(256) 'Name') [CON] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH DECLARE @APPROVEDUSER VARCHAR(10) IF(ISNULL(@APPROVEDDATE, 0) = 1 AND @Approved = 1) BEGIN SELECT @APPROVEDDATE = CASE WHEN ISNULL([CON].[Approved], 0) = 1 AND @Approved = 1 THEN [CON].[ApprovedDate] ELSE CASE WHEN @Approved = 1 THEN GETDATE() ELSE NULL END END, @APPROVEDUSER = CASE WHEN ISNULL([CON].[Approved], 0) = 1 AND @Approved = 1 THEN [CON].[ApprovedByUSER] ELSE CASE WHEN @Approved = 1 THEN @CurrentUser ELSE '' END END FROM [dbo].[Contacts] AS CON WHERE [CON].[Code] = @Code END ELSE BEGIN SET @APPROVEDUSER = @CurrentUser END UPDATE [CON] SET [CON].[Code] = @Code, [CON].[Address] = @Address, [CON].[Salut] = @Salut, [CON].[Tel] = @Tel, [CON].[Fax] = @Fax, [CON].[Email] = @Email, [CON].[FE] = @FE, [CON].[Nation] = @Nation, [CON].[Corporate] = CASE WHEN ISNULL(@Corporate, 0) = 1 THEN 'Y' ELSE 'N' END, [CON].[OtherRef] = @OtherRef, [CON].[Approved] = @Approved, [CON].[SpousePPS] = @SpousePPS, [CON].[ClientVATNo] = @ClientVATNo, [CON].[TaxType] = @TaxType, [CON].[RSINo] = @PPS, [CON].[Statements] = CASE WHEN ISNULL(@IsStatement, 0) = 1 THEN 'Y' ELSE 'N' END, [CON].[Principal] = @MainContact, [CON].[PostalCode] = @PostalCode, [CON].[County] = @County, [CON].[WarningMsg] = @WarningMessage, [CON].[DisallowNewMatter] = @DisallowNewMatter, [CON].[DXAddress] = @DXAddress, [CON].[SecondaryEmail] = @SecondaryEmail, [CON].[Password] = @WebPassword, [CON].[RemoteAccess] = CASE WHEN ISNULL(@RemoteAccess, 0) = 1 THEN 'Y' ELSE 'N' END, [CON].[ApprovedDate] = @APPROVEDDATE, [CON].[ApprovedByUSER] = @APPROVEDUSER, [CON].[EnvelopeName] = @EnvelopeName, [CON].[Name] = @Name FROM [dbo].[contacts] [CON] WHERE [CON].[Code] = @Code UPDATE [CLT] SET [CLT].[CLCODE] = @Code, [CLT].[CLFNR] = @FE, [CLT].[CLADDR] = SUBSTRING(@Address,0,80), [CLT].[CLTEL] = @Tel, [CLT].[CLFAX] = @Fax, [CLT].[CLMOBNO] = @Mobile, [CLT].[CLEMAIL] = @Email FROM [dbo].[client] [CLT] WHERE [CLT].[CLCODE] = @Code EXECUTE [KAAS_UpdateApproveMoneyLaundering] @Code, @Approved, @CurrentUser, @ApprovedDate SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLInsertCCDLegal',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDLegal] GO CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDLegal] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the contact information for Legal. * * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDLegal] * * Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(10) DECLARE @LegalName VARCHAR(256) DECLARE @LegalAddress VARCHAR(500) DECLARE @Employer VARCHAR(100) DECLARE @ClientFolder VARCHAR(200) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CON].[Code], @LegalName = [CON].[LegalName], @LegalAddress = [CON].[LegalAddress], @Employer = [CON].[Employer], @ClientFolder = [CON].[ClientFolder] FROM OPENXML (@iSL, N'CON') WITH ([Code] VARCHAR(10) 'Code', [LegalName] VARCHAR(256) 'LegalName', [LegalAddress] VARCHAR(500) 'LegalAddress', [Employer] VARCHAR(100) 'Employer', [ClientFolder] VARCHAR(200) 'ClientFolder') [CON] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH UPDATE [CLT] SET [CLT].[CLCODE] = @Code, [CLT].[CLLEGALNAME] = @LegalName, [CLT].[CLLEGALADDR] = @LegalAddress, [CLT].[CLEMPLOYER] = @Employer, [CLT].[DCOUMENTFOLDER] = @ClientFolder FROM [dbo].[client] [CLT] WHERE [CLT].[CLCODE] = @Code SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLInsertCCDNotes',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDNotes] GO CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDNotes] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the contact information for Notes. * * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDNotes] * * Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(10) DECLARE @Comments VARCHAR(2000) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CON].[Code], @Comments = [CON].[Comments] FROM OPENXML(@iSL, N'CON') WITH ([Code] VARCHAR(10) 'Code', [Comments] VARCHAR(2000) 'Comments') [CON] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH UPDATE [CON] SET [CON].[Code] = @Code, [CON].[Comments] = @Comments FROM [dbo].[contacts] [CON] WHERE [CON].[Code] = @Code SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLInsertCCDPersonal',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDPersonal] GO CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDPersonal] (@XML NVARCHAR(MAX), @Result INT OUTPUT) AS /******************************************************************************************************* * This stored procedure is used to insert or update the contact information for Personal. * * IF contact code already exists it will update that record, Otherwise it will insert a new record . * * * * Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDPersonal] * * Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @Code VARCHAR(10) DECLARE @DOB DATETIME DECLARE @IsDeceased BIT DECLARE @DOD DATETIME DECLARE @MaritialStatus VARCHAR(5) DECLARE @Spouse VARCHAR(30) DECLARE @DateofMarriage DATETIME DECLARE @SpouseDOB DATETIME DECLARE @Separated BIT DECLARE @HowSeparated VARCHAR(20) DECLARE @Partner VARCHAR(30) DECLARE @PartnerSince DATETIME DECLARE @Occupation VARCHAR(20) DECLARE @OccupationType VARCHAR(20) DECLARE @IntroFE VARCHAR(10) DECLARE @ContactType VARCHAR(10) DECLARE @Introducer VARCHAR(30) DECLARE @iSL INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Code = [CON].[Code], @DOB = (CASE WHEN [CON].[DOB] = '' THEN NULL ELSE [CON].[DOB] END), @IsDeceased = [CON].[IsDeceased], @DOD = (CASE WHEN [CON].[DOD] = '' THEN NULL ELSE [CON].[DOD] END), @MaritialStatus = [CON].[MaritialStatus], @Spouse = [CON].[Spouse], @DateofMarriage = (CASE WHEN [CON].[DateofMarriage] = '' THEN NULL ELSE [CON].[DateofMarriage] END), @SpouseDOB = (CASE WHEN [CON].[SpouseDOB] = '' THEN NULL ELSE [CON].[SpouseDOB] END), @Separated = [CON].[Separated], @HowSeparated = [CON].[HowSeparated], @Partner = [CON].[Partner], @PartnerSince = (CASE WHEN [CON].[PartnerSince] = '' THEN NULL ELSE [CON].[PartnerSince] END) , @Occupation = [CON].[Occupation], @OccupationType = [CON].[OccupationType], @IntroFE = [CON].[IntroFE], @ContactType = [CON].[ContactType], @Introducer = [CON].[Introducer] FROM OPENXML(@iSL, N'CON') WITH ([Code] VARCHAR(10) 'Code', [DOB] DATETIME 'DOB', [IsDeceased] BIT 'IsDeceased', [DOD] DATETIME 'DOD', [MaritialStatus] VARCHAR(5) 'MaritialStatus', [Spouse] VARCHAR(30) 'Spouse', [DateofMarriage] DATETIME 'DateofMarriage', [SpouseDOB] DATETIME 'SpouseDOB', [Separated] BIT 'Separated', [HowSeparated] VARCHAR(20) 'HowSeparated', [Partner] VARCHAR(30) 'Partner', [PartnerSince] DATETIME 'PartnerSince', [Occupation] VARCHAR(20) 'Occupation', [OccupationType] VARCHAR(20) 'OccupationType', [IntroFE] VARCHAR(10) 'IntroFE', [ContactType] VARCHAR(10) 'ContactType', [Introducer] VARCHAR(30) 'Introducer') [CON] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH UPDATE [CON] SET [CON].[Code] = @Code, [CON].[Spouse] = @Spouse, [CON].[DOB] = @DOB, [CON].[SpouseDOB] = @SpouseDOB, [CON].[Introducer] = @Introducer, [CON].[IntroFE] = @IntroFE, [CON].[DateOfMarriage] = @DateofMarriage, [CON].[Separated] = CASE WHEN ISNULL(@Separated, 0) = 1 THEN 'Y' ELSE 'N' END, [CON].[HowSeparated] = @HowSeparated, [CON].[Partner] = @Partner, [CON].[PartnerSince] = @PartnerSince, [CON].[Occupation] = @Occupation, [CON].[InActive] = CASE WHEN ISNULL(@IsDeceased, 0) = 1 THEN 'Y' ELSE 'N' END, [CON].[DateInActive] = @DOD FROM [dbo].[contacts] [CON] WHERE [CON].[Code] = @Code UPDATE [CLT] SET [CLT].[CLCODE] = @Code, [CLT].[CLCONTACTCDE] = @ContactType, [CLT].[ClMartialCde] = @MaritialStatus, [CLT].[ClDateBirth_DATE] = @DOB, [CLT].[CLOCCUPCDE] = @OccupationType FROM [dbo].[client] [CLT] WHERE [CLT].[CLCODE] = @Code SET @Result = 1 SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLMatterSearch',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLMatterSearch] GO CREATE PROCEDURE [dbo].[KAAS_XMLMatterSearch] ( @Search NVARCHAR(MAX), @PageNumber INT = 1, @PageSize INT= 100, @ColumnNames VARCHAR(100) = '', @FilterValues VARCHAR(100) = '', @orderby NVARCHAR(50) = '', @order NVARCHAR(4) = '') AS /******************************************************************************************************* * Performs a matter search based on search criteria passed in in XML format through @Search. * * * * Stored Procedure Name : [dbo].[KEYHM_XMLMatterSearch] * * Copied from : [dbo].[ky_NETSPXMLMatterSearch2] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * * 2020-02-25 Prabhu V Applied Custom Filter Changes with Fetching the Closed Matter * * details as well * * 2020-06-12 Arun V Closed matter check have added in recent matter list * * 2020-09-02 Prabhu V By Default All Matters should be fetched both open and closed * * KEYSAAS-2216 * * 2022-06-09 Sadiq Removed KAAS settings and used existing Framework setting for Row * COunt * * 2022-06-30 Aakif Performance tuning; Applied parameterization; * * Removed redundant subquery; Added NoCount script * * 2022-07-14 Revathy Added Orderby and order variable as paramter to perform server side * sorting as part of scroll load * * 2023-02-10 Revathy Added Custom filter * * 2024-03-13 Balamurugan.C Modified - Added Contact Name and Matter Description * for Label fucntionality * *******************************************************************************************************/ BEGIN DECLARE @closed NCHAR(1) DECLARE @howmany INT DECLARE @handler NVARCHAR(10) DECLARE @which INT DECLARE @BitWiseID BIGINT DECLARE @searchtext VARCHAR(MAX) DECLARE @searchonlycode VARCHAR(3) DECLARE @departmentdesc VARCHAR(50) DECLARE @department VARCHAR(5) DECLARE @worktypedesc VARCHAR(50) DECLARE @worktype VARCHAR(5) DECLARE @filecolourdesc VARCHAR(20) DECLARE @filecolour VARCHAR(3) DECLARE @feecode VARCHAR(10) DECLARE @includename BIT DECLARE @includedescription BIT DECLARE @includeaddress BIT DECLARE @includeemail BIT DECLARE @includecode BIT DECLARE @includeoldref BIT DECLARE @includeuser1 BIT DECLARE @andorname VARCHAR(3) DECLARE @andornamevalue VARCHAR(200) DECLARE @andordescription VARCHAR(3) DECLARE @andordescriptionvalue VARCHAR(200) DECLARE @andoraddress VARCHAR(3) DECLARE @andoraddressvalue VARCHAR(200) DECLARE @andorcode VARCHAR(3) DECLARE @andorcodevalue VARCHAR(200) DECLARE @andorfeecode VARCHAR(3) DECLARE @andorfeecodevalue VARCHAR(200) DECLARE @andoroldref VARCHAR(3) DECLARE @andoroldrefvalue VARCHAR(200) DECLARE @andordept VARCHAR(3) DECLARE @andordeptvalue VARCHAR(200) DECLARE @andoruser1 VARCHAR(3) DECLARE @andoruser1value VARCHAR(200) DECLARE @andoruser2 VARCHAR(3) DECLARE @andoruser2value VARCHAR(200) DECLARE @andoruser3 VARCHAR(3) DECLARE @andoruser3value VARCHAR(200) DECLARE @andoryourref VARCHAR(3) DECLARE @andoryourrefvalue VARCHAR(200) DECLARE @andorwtype VARCHAR(3) DECLARE @andorwtypevalue VARCHAR(200) DECLARE @iSL INT DECLARE @StartRow INT; DECLARE @EndRow INT; --FOR DEFAULT DATE; USE OF PARAMETERIZATION DECLARE @DefaultDate VARCHAR(8) = '18000101'; DECLARE @DefaultDaybookDate VARCHAR(8) = '19000101'; SET NOCOUNT ON SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX IF(@PageNumber > -1) BEGIN SET @StartRow = ((@PageNumber) * @PageSize) + 1; SET @EndRow = (@StartRow + @PageSize) - 1; END BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @Search END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @closed = CASE ISNULL(SRC.[closed], N'A') WHEN N'Y' THEN N'Y' WHEN N'B' THEN N'B' WHEN N'N' THEN N'N' WHEN N'A' THEN N'A' END, @orderby = ISNULL(SRC.[orderby], N''), @order = CASE ISNULL(SRC.[order], N'DESC') WHEN N'DESC' THEN N'DESC' ELSE N'ASC' END, @howmany = ISNULL(SRC.[howmany], 500), @handler = ISNULL(SRC.[handler], N''), @which = CASE ISNULL(SRC.[which], 0) WHEN 1 THEN 1 --My Matters WHEN 2 THEN 2 --Recent Matters ELSE 0 END, --All Matters @searchtext = ISNULL(SRC.[search], ''), @searchonlycode = ISNULL(SRC.[searchonlycode], ''), @departmentdesc = ISNULL(SRC.[dept], ''), @worktypedesc = ISNULL(SRC.[wtype], ''), @filecolourdesc = ISNULL(SRC.[colour], ''), @feecode = ISNULL(SRC.[feecodefilter], ''), @includeaddress = ISNULL(SRC.[includeaddress], 0), @includeemail = ISNULL(SRC.[includeemail], 0), @includecode = ISNULL(SRC.[includecode], 0), @includedescription = ISNULL(SRC.[includedescription], 0), @includename = ISNULL(SRC.[includename], 0), @includeoldref = ISNULL(SRC.[includeoldref], 0), @includeuser1 = ISNULL(SRC.[includeuser1], 0), @andorname = ISNULL(SRC.[andorname], ''), @andornamevalue = ISNULL(SRC.[andornamevalue], ''), @andordescription = ISNULL(SRC.[andordescription], ''), @andordescriptionvalue = ISNULL(SRC.[andordescriptionvalue], ''), @andoraddress = ISNULL(SRC.[andoraddress], ''), @andoraddressvalue = ISNULL(SRC.[andoraddressvalue], ''), @andorcode = ISNULL(SRC.[andorcode], ''), @andorcodevalue = ISNULL(SRC.[andorcodevalue], ''), @andorfeecode = ISNULL(SRC.[andorfeecode], ''), @andorfeecodevalue = ISNULL(SRC.[andorfeecodevalue], ''), @andoroldref = ISNULL(SRC.[andoroldref], ''), @andoroldrefvalue = ISNULL(SRC.[andoroldrefvalue], ''), @andordept = ISNULL(SRC.[andordept], ''), @andordeptvalue = ISNULL(SRC.[andordeptvalue], ''), @andoruser1 = ISNULL(SRC.[andoruser1], ''), @andoruser1value = ISNULL(SRC.[andoruser1value], ''), @andoruser2 = ISNULL(SRC.[andoruser2], ''), @andoruser2value = ISNULL(SRC.[andoruser2value], ''), @andoruser3 = ISNULL(SRC.[andoruser3], ''), @andoruser3value = ISNULL(SRC.[andoruser3value], ''), @andoryourref = ISNULL(SRC.[andoryourref], ''), @andoryourrefvalue = ISNULL(SRC.[andoryourrefvalue], ''), @andorwtype = ISNULL(SRC.[andorwtype], ''), @andorwtypevalue = ISNULL(SRC.[andorwtypevalue], '') FROM OPENXML(@iSL, N'search') WITH ([closed] NCHAR(1) '@closed', [orderby] NVARCHAR(50) '@orderby', [order] NVARCHAR(4) '@order', [howmany] INT '@howmany', [handler] NVARCHAR(10) '@handler', [which] INT '@which', [search] VARCHAR(MAX) '@search', [searchonlycode] VARCHAR(3) '@searchonlycode', [dept] VARCHAR(50) '@departmentfilter', [wtype] VARCHAR(50) '@worktypefilter', [colour] VARCHAR(20) '@filecolourfilter', [feecodefilter] VARCHAR(10) '@feecodefilter', [includeaddress] BIT 'include/includefield[@name="address"]', [includecode] BIT 'include/includefield[@name="code"]', [includedescription] BIT 'include/includefield[@name="description"]', [includename] BIT 'include/includefield[@name="name"]', [includeoldref] BIT 'include/includefield[@name="oldref"]', [includeuser1] BIT 'include/includefield[@name="user1"]', [includeemail] BIT 'include/includefield[@name="email"]', [andorname] VARCHAR(3) 'andor/andorfield[@name="name"]/@andor', [andornamevalue] VARCHAR(100) 'andor/andorfield[@name="name"]/@search', [andordescription] VARCHAR(3) 'andor/andorfield[@name="description"]/@andor', [andordescriptionvalue] VARCHAR(100) 'andor/andorfield[@name="description"]/@search', [andoraddress] VARCHAR(3) 'andor/andorfield[@name="address"]/@andor', [andoraddressvalue] VARCHAR(100) 'andor/andorfield[@name="address"]/@search', [andorcode] VARCHAR(3) 'andor/andorfield[@name="code"]/@andor', [andorcodevalue] VARCHAR(100) 'andor/andorfield[@name="code"]/@search', [andorfeecode] VARCHAR(3) 'andor/andorfield[@name="feecode"]/@andor', [andorfeecodevalue] VARCHAR(100) 'andor/andorfield[@name="feecode"]/@search', [andoroldref] VARCHAR(3) 'andor/andorfield[@name="oldref"]/@andor', [andoroldrefvalue] VARCHAR(100) 'andor/andorfield[@name="oldref"]/@search', [andordept] VARCHAR(3) 'andor/andorfield[@name="dept"]/@andor', [andordeptvalue] VARCHAR(100) 'andor/andorfield[@name="dept"]/@search', [andoruser1] VARCHAR(3) 'andor/andorfield[@name="user1"]/@andor', [andoruser1value] VARCHAR(100) 'andor/andorfield[@name="user1"]/@search', [andoruser2] VARCHAR(3) 'andor/andorfield[@name="user2"]/@andor', [andoruser2value] VARCHAR(100) 'andor/andorfield[@name="user2"]/@search', [andoruser3] VARCHAR(3) 'andor/andorfield[@name="user3"]/@andor', [andoruser3value] VARCHAR(100) 'andor/andorfield[@name="user3"]/@search', [andoryourref] VARCHAR(3) 'andor/andorfield[@name="yourref"]/@andor', [andoryourrefvalue] VARCHAR(100) 'andor/andorfield[@name="yourref"]/@search', [andorwtype] VARCHAR(3) 'andor/andorfield[@name="wtype"]/@andor', [andorwtypevalue] VARCHAR(100) 'andor/andorfield[@name="wtype"]/@search') SRC IF @filecolourdesc <> '' BEGIN SELECT @filecolour = FC.[COLOURCODE] FROM [dbo].[FileColours] FC WITH (NOLOCK) WHERE FC.[COLOURDESC] = @filecolourdesc END SET @filecolour = ISNULL(@filecolour, '') IF @departmentdesc <> '' BEGIN SELECT @department = DP.[CODE] FROM [dbo].[Departments] DP WITH (NOLOCK) WHERE DP.[DESCRIPTION] = @departmentdesc END SET @department = ISNULL(@department, '') IF @worktypedesc <> '' BEGIN IF @worktypedesc LIKE 'Unknown Worktype: %' BEGIN SELECT @worktype = WT.[CODE] FROM [dbo].[WorkTypes] WT WITH (NOLOCK) WHERE 'Unknown Worktype: ' + WT.[CODE] = @worktypedesc OR WT.[DESC] = @worktypedesc END ELSE BEGIN SELECT @worktype = WT.[CODE] FROM [dbo].[WorkTypes] WT WITH (NOLOCK) WHERE WT.[DESC] = @worktypedesc END END SET @worktype = ISNULL(@worktype, '') SET @feecode = ISNULL(@feecode, '') EXEC sp_xml_removedocument @iSL DECLARE @NCOMMAND NVARCHAR(MAX) DECLARE @HasWhere BIT SET @HasWhere = 0 SET @handler = CASE WHEN RTRIM(ISNULL(@handler, '')) = '' THEN 'ADM' ELSE RTRIM(@handler) END SELECT @BitWiseID = HNG.[BitWiseID] FROM HandlerNETGroupMembership HNG WITH (NOLOCK) WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler) SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@handler, '')))) IF (@handler = 'ADM') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END -- Custom Filter Start SET @NCOMMAND = N' DECLARE @StatusCount INT = 0; DECLARE @FeeEarnerCount INT = 0; DECLARE @DepartmentCount INT = 0; DECLARE @WorkTypeCount INT = 0; DECLARE @FileColorCount INT = 0; DECLARE @CloseOpenCount INT = 0; IF @ColumnNames <> '''' BEGIN DECLARE @CustomFilter TABLE ([Status] VARCHAR(20), [FeeEarner] VARCHAR(2000), [Department] VARCHAR(2000), [WorkType] VARCHAR(MAX), [FileColor] VARCHAR(2000), [CloseOpen] VARCHAR(20)) SELECT columnName,rownumber INTO #columntbl FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS columnName, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM ( SELECT CAST('''' + REPLACE(@ColumnNames,'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) ColumnTbl SELECT FilterValue,rownumber INTO #FILTERVALUETBL FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownumber FROM ( SELECT CAST('''' + REPLACE(@FilterValues,''|'','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBL DECLARE @count INT DECLARE @lptcnt INT=1 DECLARE @ColumnName VARCHAR(100) DECLARE @FilterValue VARCHAR(2000) SELECT @count = count(1) FROM #columntbl; WHILE @lptcnt <= @count BEGIN SET @FilterValue ='''' SELECT @ColumnName = columnName FROM #columntbl WHERE rownumber = @lptcnt SELECT @FilterValue = FilterValue FROM #FILTERVALUETBL WHERE rownumber = @lptcnt IF(@ColumnName = ''Closed'') INSERT INTO @CustomFilter ([Status],[FeeEarner],[Department],[WorkType],[FileColor],[CloseOpen]) VALUES (@FilterValue,null,null,null,null,null) IF(@ColumnName = ''Fee Earner'') INSERT INTO @CustomFilter ([Status],[FeeEarner],[Department],[WorkType],[FileColor],[CloseOpen]) VALUES (null,@FilterValue,NULL,NULL,NULL,null) ELSE IF(@ColumnName = ''Department'') INSERT INTO @CustomFilter ([Status],[FeeEarner],[Department],[WorkType],[FileColor],[CloseOpen]) VALUES (null,null,@FilterValue,null,NULL,null) ELSE IF(@ColumnName = ''Work type'') INSERT INTO @CustomFilter ([Status],[FeeEarner],[Department],[WorkType],[FileColor],[CloseOpen]) VALUES (null,null,null,@FilterValue,NULL,null) ELSE IF(@ColumnName = ''File Color'') INSERT INTO @CustomFilter ([Status],[FeeEarner],[Department],[WorkType],[FileColor],[CloseOpen]) VALUES (null,null,NULL,null,@FilterValue,null) ELSE IF(@ColumnName = ''Close or Open'') INSERT INTO @CustomFilter ([Status],[FeeEarner],[Department],[WorkType],[FileColor],[CloseOpen]) VALUES (null,null,NULL,null,null,@FilterValue) SET @lptcnt = @lptcnt + 1; END SET @StatusCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [Status] IS NOT NULL AND [Status] <>'''') SET @FeeEarnerCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [FeeEarner] IS NOT NULL AND [FeeEarner] <>'''') SET @DepartmentCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [Department] IS NOT NULL AND [Department] <>'''') SET @WorkTypeCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [WorkType] IS NOT NULL AND [WorkType] <>'''') SET @FileColorCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [FileColor] IS NOT NULL AND [FileColor] <>'''') SET @CloseOpenCount = (SELECT COUNT(1) FROM @CustomFilter WHERE [CloseOpen] IS NOT NULL AND [CloseOpen] <>'''') END ' -- Custom Filter End SET @NCOMMAND = @NCOMMAND + N' --SELECT ''How Many: '' + CONVERT(VARCHAR(10), @HowMany) --SELECT ''Handler: '' + @Handler --SELECT ''BitWise ID: '' + CONVERT(VARCHAR(10), @BitWiseID) DECLARE @Result TABLE ([id] INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED, [Time] VARCHAR(5) NOT NULL, [Code] VARCHAR(20) NOT NULL, [FileColour] VARCHAR(20) NOT NULL, [FileColour_Fld] VARCHAR(20) NOT NULL, [BackgroundColour] VARCHAR(30) NOT NULL, [TextColour] VARCHAR(30) NOT NULL, [Name] VARCHAR(256) NOT NULL, [Description] VARCHAR(200) NOT NULL, [Fe] VARCHAR(30) NOT NULL, [FeeCode] VARCHAR(10) NOT NULL, [FeeEarner] VARCHAR(30) NOT NULL, [User1] VARCHAR(100) NOT NULL, [User2] VARCHAR(100) NOT NULL, [User3] VARCHAR(100) NOT NULL, [Started] DATETIME NOT NULL, [Dept] VARCHAR(50) NOT NULL, [WorkType] VARCHAR(50) NOT NULL, [Privileges] BIGINT NOT NULL, [OldRef] VARCHAR(12) NOT NULL, [Address] VARCHAR(500) NOT NULL, [Email] VARCHAR(50) NOT NULL, [Closed] CHAR(1) NOT NULL, [OrgCloseDate] DATETIME NULL, [CloseDate] DATETIME NULL, [FileRGBColour] INT NOT NULL, [LastAccessed] DATETIME NULL, [PhoneNumber] VARCHAR(50) NOT NULL, [FileNum] INT NOT NULL, [ClientCode] VARCHAR(10) NOT NULL, [DepartmentCode] VARCHAR(5) NOT NULL, [FeeEarnerTeam] VARCHAR(10) NOT NULL, [TeamName] VARCHAR(30) NOT NULL, [YourRef] VARCHAR(100) NOT NULL, [CaseStatusCode] VARCHAR(6) NOT NULL, [CaseStatusDesc] VARCHAR(50) NOT NULL, [ContactName] VARCHAR(256) NULL, [MatterDesc] VARCHAR(200) NULL ) INSERT INTO @Result ([Time], [Code], [FileColour], [FileColour_Fld], [BackgroundColour], [TextColour], [Name], [Description], [Fe], [FeeCode], [FeeEarner], [User1], [User2], [User3], [Started], [Dept], [WorkType], [Privileges], [OldRef], [Address], [Email], [Closed], [OrgCloseDate], [CloseDate], [FileRGBColour], [LastAccessed], [PhoneNumber], [FileNum], [ClientCode], [DepartmentCode], [FeeEarnerTeam], [TeamName], [YourRef], [CaseStatusCode], [CaseStatusDesc], [ContactName], [MatterDesc] ) SELECT CASE WHEN TTT.[TOTALTIME] = ''00:00'' THEN '''' ELSE TTT.[TOTALTIME] END AS [Time], SM.[Code] AS [Code], SM.[FileColourDescription] AS [FileColour], SM.[FileColourDescription] AS [FileColour_Fld], SM.[FileBackgroundColour] AS [BackgroundColour], SM.[TextColour] AS [TextColour], SM.[Name] AS [Name], SM.[Description] AS [Description], SM.[HandlerName] AS [Fe], SM.[FECode] AS [FeeCode], SM.[HandlerName] AS [FeeEarner], SM.[User1] AS [User1], SM.[User2] AS [User2], SM.[User3] AS [User3], SM.[Started] AS [Started], SM.[DeptDescription] AS [Dept], SM.[WTypeDescription] AS [WorkType], SM.[Privileges] AS [Privileges], SM.[OldRef] AS [OldRef], SM.[Address] AS [Address], SM.[Email] AS [Email], CASE WHEN SM.[Closed] = 0 THEN ''N'' ELSE ''Y'' END AS [Closed], SM.[OrgClosedDate] AS [OrgCloseDate], SM.[CloseDate] AS [CloseDate], SM.[FileRGBColour] AS [FileRGBColour], CASE WHEN YEAR(ISNULL(RML.[DateField], CONVERT(DATETIME, @DefaultDate))) < 1901 THEN NULL ELSE ISNULL(RML.[DateField], CONVERT(DATETIME, @DefaultDate)) END AS [LastAccessed], SM.[PhoneNumber] AS [PhoneNumber], SM.[FileNum] AS [FileNum], SM.[ClientCode] AS [ClientCode], SM.[Dept] AS [DepartmentCode], SM.[Team] AS [FeeEarnerTeam], SM.[TeamName] AS [TeamName], SM.[YourRef] AS [YourRef], SM.[MatterStatus] AS [CaseStatusCode], SM.[MatterStatusDescription] AS [CaseStatusDesc], [CON].[Name] AS [ContactName], RTRIM(ISNULL(SM.[Description],'''')) AS [MatterDesc] FROM [dbo].[SearchMatters] SM WITH (NOLOCK) CROSS APPLY (SELECT SUBSTRING(CONVERT(VARCHAR, DATEADD(minute, ISNULL(SUM(ISNULL(TDB.[time], 0)), 0), @DefaultDaybookDate), 108), 1, 5) AS [TOTALTIME] FROM [dbo].[TimeDayBook] TDB WITH (NOLOCK) WHERE TDB.[FeeEarn] = @Handler AND TDB.[matter] = SM.[code] ) TTT LEFT OUTER JOIN [dbo].[contacts] [CON] ON SM.[CLIENTCODE]= [CON].[CODE] ' SET @NCOMMAND = @NCOMMAND + N' LEFT OUTER JOIN [dbo].[RecentMatterList] RML WITH (NOLOCK) ON RML.[FEE] = @handler AND RML.[MATTER] = SM.[Code] WHERE ((@StatusCount = 0 OR (SM.[Closed] IN (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [Status] FROM @CustomFilter WHERE [Status] IS NOT NULL and [Status] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl)) or SM.Closed=1) AND (CASE WHEN @FeeEarnerCount = 0 THEN 1 WHEN SM.[FECode] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [FeeEarner] FROM @CustomFilter WHERE [FeeEarner] IS NOT NULL and [FeeEarner] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @DepartmentCount = 0 THEN 1 WHEN SM.[Dept] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [Department] FROM @CustomFilter WHERE [Department] IS NOT NULL and [Department] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @WorkTypeCount = 0 THEN 1 WHEN SM.[WType] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [WorkType] FROM @CustomFilter WHERE [WorkType] IS NOT NULL and [WorkType] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @FileColorCount = 0 THEN 1 WHEN SM.[FileColour] in (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [FileColor] FROM @CustomFilter WHERE [FileColor] IS NOT NULL and [FileColor] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1 AND (CASE WHEN @CloseOpenCount = 0 THEN 1 WHEN SM.[Closed] IN (SELECT FilterValue FROM (SELECT LTRIM(RTRIM(m.n.value(''.[1]'',''varchar(8000)''))) AS FilterValue , ROW_NUMBER() OVER (ORDER BY (SELECT 1)) as rownumber FROM( SELECT CAST('''' + REPLACE((SELECT DISTINCT [CloseOpen] FROM @CustomFilter WHERE [CloseOpen] IS NOT NULL and [CloseOpen] <>''''),'','','''') + '''' AS XML) AS x )t CROSS APPLY x.nodes(''/XMLRoot/RowData'')m(n)) FILTERVALUETBLFnl) THEN 1 ELSE 0 END) =1)' IF (@BitWiseID = 0) BEGIN SET @NCOMMAND = @NCOMMAND + N' AND ( SM.[Privileges] = 0 OR SM.[Privileges] = -1)' END ELSE IF (@BitWiseID = -1) BEGIN SET @NCOMMAND = @NCOMMAND + N' AND 1 = 1' END ELSE BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Privileges] & @BitWiseID <> 0' END IF (@which = 1) BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FECode] = @handler' END IF (@closed = 'N') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Closed] = 0' END IF (@closed = 'Y') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Closed] = 1' END IF (@closed = N'A') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND (SM.[Closed] = 0 OR SM.[Closed] = 1)' END IF (@worktype <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[WType] = @WorkType' END IF (@department <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Dept] = @department' END IF (@filecolour <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FileColour] = @filecolour' END IF (@feecode <> '') BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FECode] = @feecode' END DECLARE @SearchIncludes NVARCHAR(MAX) SET @SearchIncludes = N'' IF (@searchtext <> '') BEGIN IF SUBSTRING(@searchtext, 1, 1) <> '%' BEGIN SET @searchtext = '%' + @searchtext END IF SUBSTRING(@searchtext, LEN(@searchtext), 1) <> '%' BEGIN SET @searchtext = @searchtext + '%' END SET @searchtext = @searchtext COLLATE SQL_Latin1_General_Cp1251_CS_AS IF (@includeaddress = 0) AND (@includecode = 0) AND (@includedescription = 0) AND (@includename = 0) AND (@includeoldref = 0) AND (@includeuser1 = 0) AND (@includeemail = 0) BEGIN -- This is the standard call - not from Advanced Matter Search, so we search in everything IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END IF @searchonlycode <> 'yes' BEGIN SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext OR SM.[Code] LIKE @searchtext OR SM.[User1] LIKE @searchtext OR SM.[User2] LIKE @searchtext OR SM.[User3] LIKE @searchtext OR SM.[OldRef] LIKE @searchtext OR SM.[YourRef] LIKE @searchtext OR SM.[NCName] LIKE @searchtext OR SM.[NCAddress] LIKE @searchtext OR SM.[Email] LIKE @searchtext OR SM.[NCHandlerName] LIKE @searchtext OR SM.[NCPartnerName] LIKE @searchtext OR SM.[DeptDescription] LIKE @searchtext OR SM.[WTypeDescription] LIKE @searchtext OR SM.[FileColourDescription] LIKE @searchtext OR SM.[MatterStatusDescription] LIKE @searchtext' END ELSE BEGIN SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext' END END ELSE BEGIN IF (@includeaddress = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @searchtext' END IF (@includecode = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext' END IF (@includedescription = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext' END IF (@includename = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @searchtext' END IF (@includeoldref = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @searchtext' END IF (@includeuser1 = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @searchtext' END IF (@includeemail = 1) BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Email] LIKE @searchtext' END END END IF @andoraddress = 'OR' BEGIN IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%' BEGIN SET @andoraddressvalue = '%' + @andoraddressvalue END IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%' BEGIN SET @andoraddressvalue = @andoraddressvalue + '%' END SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @andoraddressvalue' END IF @andorcode = 'OR' BEGIN IF CHARINDEX('%', @andorcodevalue, 1) = 0 BEGIN IF SUBSTRING(@andorcodevalue, 1, 1) <> '%' BEGIN SET @andorcodevalue = '%' + @andorcodevalue END IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%' BEGIN SET @andorcodevalue = @andorcodevalue + '%' END END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @andorcodevalue' END IF @andordept = 'OR' BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[Dept]= @andordeptvalue' END IF @andordescription = 'OR' BEGIN IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%' BEGIN SET @andordescriptionvalue = '%' + @andordescriptionvalue END IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%' BEGIN SET @andordescriptionvalue = @andordescriptionvalue + '%' END SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @andordescriptionvalue' END IF @andorfeecode = 'OR' BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[FECode] = @andorfeecodevalue' END IF @andorname = 'OR' BEGIN IF SUBSTRING(@andornamevalue, 1, 1) <> '%' BEGIN SET @andornamevalue = '%' + @andornamevalue END IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%' BEGIN SET @andornamevalue = @andornamevalue + '%' END SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @andornamevalue' END IF @andoroldref = 'OR' BEGIN IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%' BEGIN SET @andoroldrefvalue = '%' + @andoroldrefvalue END IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%' BEGIN SET @andoroldrefvalue = @andoroldrefvalue + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @andoroldrefvalue' END IF @andoruser1 = 'OR' BEGIN IF SUBSTRING(@andoruser1value, 1, 1) <> '%' BEGIN SET @andoruser1value = '%' + @andoruser1value END IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%' BEGIN SET @andoruser1value = @andoruser1value + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @andoruser1value' END IF @andoruser2 = 'OR' BEGIN IF SUBSTRING(@andoruser2value, 1, 1) <> '%' BEGIN SET @andoruser2value = '%' + @andoruser2value END IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%' BEGIN SET @andoruser2value = @andoruser2value + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User2] LIKE @andoruser2value' END IF @andoruser3 = 'OR' BEGIN IF SUBSTRING(@andoruser3value, 1, 1) <> '%' BEGIN SET @andoruser3value = '%' + @andoruser3value END IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%' BEGIN SET @andoruser3value = @andoruser3value + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[User3] LIKE @andoruser3value' END IF @andorwtype = 'OR' BEGIN IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[WType] = @andorwtypevalue' END IF @andoryourref = 'OR' BEGIN IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%' BEGIN SET @andoryourrefvalue = '%' + @andoryourrefvalue END IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%' BEGIN SET @andoryourrefvalue = @andoryourrefvalue + '%' END IF @SearchIncludes <> N'' BEGIN SET @SearchIncludes = @SearchIncludes + N' OR ' END SET @SearchIncludes = @SearchIncludes + N'SM.[YourRef] LIKE @andoryourrefvalue' END --SELECT @SearchIncludes IF @SearchIncludes <> '' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND ( ' + @SearchIncludes + N')' END IF @andoraddress = 'AND' BEGIN IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%' BEGIN SET @andoraddressvalue = '%' + @andoraddressvalue END IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%' BEGIN SET @andoraddressvalue = @andoraddressvalue + '%' END SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS SET @NCOMMAND = @NCOMMAND + N' AND SM.[NCAddress] LIKE @andoraddressvalue' END IF @andorcode = 'AND' BEGIN IF SUBSTRING(@andorcodevalue, 1, 1) <> '%' BEGIN SET @andorcodevalue = '%' + @andorcodevalue END IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%' BEGIN SET @andorcodevalue = @andorcodevalue + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[Code] LIKE @andorcodevalue' END IF @andordept = 'AND' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[Dept] = @andordeptvalue' END IF @andordescription = 'AND' BEGIN IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%' BEGIN SET @andordescriptionvalue = '%' + @andordescriptionvalue END IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%' BEGIN SET @andordescriptionvalue = @andordescriptionvalue + '%' END SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS SET @NCOMMAND = @NCOMMAND + N' AND SM.[NCDescription] LIKE @andordescriptionvalue' END IF @andorfeecode = 'AND' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[FECode] = @andorfeecodevalue' END IF @andorname = 'AND' BEGIN IF SUBSTRING(@andornamevalue, 1, 1) <> '%' BEGIN SET @andornamevalue = '%' + @andornamevalue END IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%' BEGIN SET @andornamevalue = @andornamevalue + '%' END SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS SET @NCOMMAND = @NCOMMAND + N' AND SM.[NCName] LIKE @andornamevalue' END IF @andoroldref = 'AND' BEGIN IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%' BEGIN SET @andoroldrefvalue = '%' + @andoroldrefvalue END IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%' BEGIN SET @andoroldrefvalue = @andoroldrefvalue + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[OldRef] LIKE @andoroldrefvalue' END IF @andoruser1 = 'AND' BEGIN IF SUBSTRING(@andoruser1value, 1, 1) <> '%' BEGIN SET @andoruser1value = '%' + @andoruser1value END IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%' BEGIN SET @andoruser1value = @andoruser1value + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[User1] LIKE @andoruser1value' END IF @andoruser2 = 'AND' BEGIN IF SUBSTRING(@andoruser2value, 1, 1) <> '%' BEGIN SET @andoruser2value = '%' + @andoruser2value END IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%' BEGIN SET @andoruser2value = @andoruser2value + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[User2] LIKE @andoruser2value' END IF @andoruser3 = 'AND' BEGIN IF SUBSTRING(@andoruser3value, 1, 1) <> '%' BEGIN SET @andoruser3value = '%' + @andoruser3value END IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%' BEGIN SET @andoruser3value = @andoruser3value + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[User3] LIKE @andoruser3value' END IF @andorwtype = 'AND' BEGIN SET @NCOMMAND = @NCOMMAND + N' AND SM.[WType] = @andorwtypevalue' END IF @andoryourref = 'AND' BEGIN IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%' BEGIN SET @andoryourrefvalue = '%' + @andoryourrefvalue END IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%' BEGIN SET @andoryourrefvalue = @andoryourrefvalue + '%' END SET @NCOMMAND = @NCOMMAND + N' AND SM.[YourRef] LIKE @andoryourrefvalue' END SET @NCOMMAND = @NCOMMAND + N' ORDER BY ' + CASE @orderby WHEN N'description' THEN N'CASE WHEN SM.[Description] = '''' THEN 1 ELSE 0 END, SM.[Description] ' + @order + N', SM.[Code] ' + @order WHEN N'Code' THEN N'CASE WHEN SM.[Code] = '''' THEN 1 ELSE 0 END, SM.[Code] ' + @order WHEN N'Name' THEN N'CASE WHEN SM.[Name] = '''' THEN 1 ELSE 0 END, SM.[Name] ' + @order + N', SM.[Code] ' + @order WHEN N'Address' THEN N'CASE WHEN SM.[Address] = '''' THEN 1 ELSE 0 END, SM.[Address] ' + @order + N', SM.[Code] ' + @order WHEN N'Email' THEN N'CASE WHEN SM.[Email] = '''' THEN 1 ELSE 0 END, SM.[Email] ' + @order + N', SM.[Code] ' + @order WHEN N'PhoneNumber' THEN N'CASE WHEN SM.[PhoneNumber] = '''' THEN 1 ELSE 0 END, SM.[PhoneNumber] ' + @order + N', SM.[Code] ' + @order WHEN N'user1' THEN N'CASE WHEN SM.[User1] = '''' THEN 1 ELSE 0 END, SM.[User1] ' + @order + N', SM.[Code] ' + @order WHEN N'user2' THEN N'CASE WHEN SM.[User2] = '''' THEN 1 ELSE 0 END, SM.[User2] ' + @order + N', SM.[Code] ' + @order WHEN N'user3' THEN N'CASE WHEN SM.[User3] = '''' THEN 1 ELSE 0 END, SM.[User3] ' + @order + N', SM.[Code] ' + @order WHEN N'yourref' THEN N'CASE WHEN SM.[YourRef] = '''' THEN 1 ELSE 0 END, SM.[YourRef] ' + @order + N', SM.[Code] ' + @order WHEN N'OldRef' THEN N'CASE WHEN SM.[OldRef] = '''' THEN 1 ELSE 0 END, SM.[OldRef] ' + @order + N', SM.[Code] ' + @order WHEN N'FileNum' THEN N'CASE WHEN SM.[FileNum] = 0 THEN 1 ELSE 0 END, SM.[FileNum] ' + @order + N', SM.[Code] ' + @order WHEN N'department' THEN N'CASE WHEN SM.[DeptDescription] = '''' THEN 1 ELSE 0 END, SM.[DeptDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'Dept' THEN N'CASE WHEN SM.[DeptDescription] = '''' THEN 1 ELSE 0 END, SM.[DeptDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'worktype' THEN N'CASE WHEN SM.[WTypeDescription] = '''' THEN 1 ELSE 0 END, SM.[WTypeDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'FeeCode' THEN N'CASE WHEN SM.[FECode] = '''' THEN 2 WHEN SM.[FECode] = ''ADM'' THEN 1 ELSE 0 END, SM.[FECode] ' + @order + N', SM.[Code] ' + @order WHEN N'FeeEarner' THEN N'CASE WHEN SM.[HandlerName] = '''' AND SM.[FECode] = '''' THEN 3 WHEN SM.[HandlerName] = '''' THEN 2 WHEN SM.[HandlerName] = ''Admin'' THEN 1 ELSE 0 END, SM.[HandlerName] ' + @order + N', SM.[Code] ' + @order WHEN N'FileColour_Fld' THEN N'CASE WHEN SM.[FileColourDescription] = '''' THEN 1 ELSE 0 END, SM.[FileColourDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'FileColour' THEN N'CASE WHEN SM.[FileColourDescription] = '''' THEN 1 ELSE 0 END, SM.[FileColourDescription] ' + @order + N', SM.[Code] ' + @order WHEN N'started' THEN N'SM.[Started] ' + @order + N', SM.[Code] ' + @order WHEN N'LastAccessed' THEN N'CASE WHEN RML.[DateField] IS NULL THEN 1 ELSE 0 END, RML.[DateField] ' + @order + N', SM.[Code] ' + @order WHEN N'closedate' THEN N'CASE WHEN SM.[CloseDate] IS NULL THEN 1 ELSE 0 END, SM.[CloseDate] ' + @order + N', SM.[Code] ' + @order WHEN N'orgcloseddate' THEN N'CASE WHEN SM.[orgcloseddate] IS NULL THEN 1 ELSE 0 END, SM.[orgcloseddate] ' + @order + N', SM.[Code] ' + @order WHEN N'casestatusdesc' THEN N'CASE WHEN SM.[MatterStatusDescription] IS NULL THEN 1 ELSE 0 END, SM.[MatterStatusDescription] ' + @order + N', SM.[Code] ' + @order ELSE CASE WHEN @Which <> 2 THEN N'SM.[Code] ' + @order ELSE N'CASE WHEN RML.[DateField] IS NULL THEN 1 ELSE 0 END, RML.[DateField] DESC, SM.[Code] ' + @order END END SET @NCOMMAND = @NCOMMAND + N' SELECT ROW_NUMBER() OVER(ORDER BY [Res].[id]) AS [RowNumber], [RES].[id], [RES].[Time], [RES].[Code], [RES].[FileColour], [RES].[FileColour_Fld], [RES].[BackgroundColour], [RES].[TextColour], [RES].[Name], [RES].[Description], [RES].[Fe], [RES].[FeeCode], [RES].[FeeEarner], [RES].[User1], [RES].[User2], [RES].[User3], [RES].[Started], [RES].[Dept], [RES].[WorkType], [RES].[Privileges], [RES].[OldRef], [RES].[Address], [RES].[Email], [RES].[Closed], [RES].[OrgCloseDate], [RES].[CloseDate], [RES].[FileRGBColour], [RES].[LastAccessed], [RES].[PhoneNumber], [RES].[FileNum], [RES].[ClientCode], [RES].[DepartmentCode], [RES].[FeeEarnerTeam], [RES].[TeamName], [RES].[YourRef], [RES].[CaseStatusCode], [RES].[CaseStatusDesc], [RES].[ContactName], [RES].[MatterDesc] FROM @Result [RES] WHERE [RES].[id] BETWEEN @StartRow AND @EndRow ORDER BY [RES].[id] ASC SELECT COUNT(1) AS [TotalRecord] FROM @Result [RES] SELECT USERPROMPT1 AS [UserPrompt1], USERPROMPT2 AS [UserPrompt2], USERPROMPT3 AS [UserPrompt3], YourRef AS [YourRef] FROM [Control]' EXECUTE sp_executesql @NCOMMAND, N'@HowMany INT, @BitWiseID BIGINT, @Handler VARCHAR(10), @WorkType VARCHAR(5), @department VARCHAR(5), @filecolour VARCHAR(3), @feecode VARCHAR(10), @searchtext VARCHAR(MAX), @andoraddressvalue VARCHAR(200), @andorcodevalue VARCHAR(200), @andordeptvalue VARCHAR(200), @andordescriptionvalue VARCHAR(200), @andorfeecodevalue VARCHAR(200), @andornamevalue VARCHAR(200), @andoroldrefvalue VARCHAR(200), @andoruser1value VARCHAR(200), @andoruser2value VARCHAR(200), @andoruser3value VARCHAR(200), @andorwtypevalue VARCHAR(200), @andoryourrefvalue VARCHAR(200), @StartRow INT, @EndRow INT, @ColumnNames VARCHAR(100), @FilterValues VARCHAR(100), @DefaultDate VARCHAR(8), @DefaultDaybookDate VARCHAR(8)', @Howmany, @BitWiseID, @handler, @worktype, @department, @filecolour, @feecode, @searchtext, @andoraddressvalue, @andorcodevalue, @andordeptvalue, @andordescriptionvalue, @andorfeecodevalue, @andornamevalue, @andoroldrefvalue, @andoruser1value, @andoruser2value, @andoruser3value, @andorwtypevalue, @andoryourrefvalue, @StartRow, @EndRow, @ColumnNames, @FilterValues, @DefaultDate, @DefaultDaybookDate SET NOCOUNT OFF END GO IF OBJECT_ID(N'KAAS_XMLPostDayBook',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS_XMLPostDayBook] GO CREATE PROCEDURE [dbo].[KAAS_XMLPostDayBook] (@XML NVARCHAR(MAX)) AS /******************************************************************************************************* * Posts valid entries from the Time Day Book into the Time Entry. * * * * Stored Procedure Name : [dbo].[KAAS_XMLPostDayBook] * * Copied from : [dbo].[ky_NETXMLPostDayBook] * * * * Modification History: * * 2019-04-24 Vinodhan K Created * *******************************************************************************************************/ BEGIN DECLARE @iSL INT DECLARE @Handler VARCHAR(10) DECLARE @HSEClientGroup VARCHAR(20) DECLARE @UPDByHandler VARCHAR(10) DECLARE @User NVARCHAR(128) DECLARE @UpdateRestriction INT BEGIN TRY EXEC sp_xml_preparedocument @iSL OUTPUT, @XML END TRY BEGIN CATCH EXEC sp_xml_preparedocument @iSL OUTPUT, N'' END CATCH SELECT @Handler = [SRC].[Handler], @HSEClientGroup = [SRC].[HSEClientGroup], @UPDByHandler = [SRC].[UPDByHandler], @User = [SRC].[User], @UpdateRestriction = [SRC].[UpdateRestriction] FROM OPENXML(@iSL, N'PostDayBook') WITH ([Handler] VARCHAR(10) '@handler', [HSEClientGroup] VARCHAR(20) '@hseclientgroup', [UPDByHandler] VARCHAR(10) '@updbyhandler', [User] NVARCHAR(128) '@user', [UpdateRestriction] INT '@updaterestriction') [SRC] BEGIN TRY EXEC sp_xml_removedocument @iSL END TRY BEGIN CATCH END CATCH SET @Handler = ISNULL(@Handler, '') SET @HSEClientGroup = ISNULL(@HSEClientGroup, '') SET @UPDByHandler = ISNULL(@UPDByHandler, '') SET @User = ISNULL(@User, N'') SET @UpdateRestriction = ISNULL(@UpdateRestriction, 0) DECLARE @MAXID int DECLARE @Continue int DECLARE @COMMAND int DECLARE @AxleErrors int DECLARE @PERIOD INT DECLARE @YEAR INT DECLARE @IsSAM4 BIT DECLARE @TUTNUMVALUE DECIMAL(17, 2) DECLARE @RoundupUnits BIT SET @RoundupUnits = 0 SELECT @RoundupUnits = [SET].[KeyValue] FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'RoundupUnits' SET @IsSAM4 = [dbo].[ISSAM4]() IF @IsSAM4 = 0 BEGIN SELECT @PERIOD=ISNULL(CURPER,0), @YEAR=ISNULL(CL.[YEAR],0) FROM [CONTROL] CL END ELSE BEGIN SET @PERIOD=(SELECT ISNULL(numvalue,0) FROM CtrlNum WHERE code='CurPeriod') SET @YEAR=(SELECT ISNULL(numvalue,0) FROM CtrlNum WHERE code='CurYear') END SET @PERIOD = ISNULL(@PERIOD, 0) SET @YEAR = ISNULL(@YEAR, 0) IF (@RoundupUnits = 0) BEGIN SET @TUTNUMVALUE = 1 END ELSE BEGIN IF @IsSAM4 = 1 BEGIN SELECT @TUTNUMVALUE = CTN.[NumValue] FROM [dbo].[CtrlNum] CTN WHERE CTN.[Code] = 'TimeUnit' END SET @TUTNUMVALUE = CASE WHEN ISNULL(@TUTNUMVALUE, 0) = 0 THEN 6 ELSE @TUTNUMVALUE END END DECLARE @NTEID TABLE ([ID] int identity(1, 1), [NEWID] int, [RECORDID] int) DECLARE @PDMAT TABLE ([ID] int identity(1, 1), [CODE] varchar(20)) DECLARE @RDUP TABLE ([RECORDID] int) SELECT @AxleErrors = COUNT(1) FROM [dbo].[KAAS_WDTimeDayBookWithAxleErrors] (@HSEClientGroup, @Handler) AXER WHERE AXER.[IsAxleError] = 'Y' SELECT @MAXID = ISNULL(MAX(TIE.[RECORDID]), 0) FROM [dbo].[TimeEntry] TIE INSERT INTO @NTEID ([NEWID], [RECORDID]) SELECT @MAXID, TDB.[RECORDID] from [dbo].[TimeDayBook] [TDB] LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[WorkTypes] WTY ON WTY.[CODE] = MAT.[WType] ON MAT.[Code] = TDB.[MATTER] LEFT OUTER JOIN [dbo].[TasksCodes] TAC ON TAC.[CODE] = TDB.[TASK] WHERE TDB.[FEEEARN] = @Handler AND [dbo].[KAAS_FN_UserCanPostTime](TDB.[Matter], @Handler, TDB.[RECORDID]) = 0 AND ( [TDB].[TimeOrCharge] <> 'T' --KEYD-5185 OR [TDB].[Time] <> 0) --KEYD-5185 AND CASE WHEN RTRIM(ISNULL(TDB.[matter], '')) = '' -- Admin entries can't cause an Axle error THEN 'N' WHEN RTRIM(ISNULL(TDB.[matter], '')) = '~' -- Admin entries can't cause an Axle error THEN 'N' WHEN MAT.[Code] IS NULL -- Missing matter. This is an error THEN 'Y' WHEN RTRIM(IsNull(CON.[ClientGroup], '')) <> '' -- If it's not an HSE Client it can't cause an Axle Error THEN 'N' WHEN RTRIM(IsNull(CON.[ClientGroup], '')) <> ISNULL(@HSEClientGroup, '') -- If it's not an HSE Client it can't cause an Axle Error THEN 'N' WHEN RTRIM(ISNULL(WTY.[CODE], '')) = '' -- Missing Worktype. This is an error THEN 'Y' WHEN RTRIM(ISNULL(WTY.[ChildCare], '')) <> 'Y' -- If it's not a ChildCare matter it can't cause an Axle Error THEN 'N' WHEN RTRIM(ISNULL(TAC.[CODE], '')) = '' -- Missing Task. This is an error THEN 'Y' WHEN RTRIM(ISNULL(TAC.[AxleTask], '')) <> 'Y' -- This is not a Child Care task. This is an error THEN 'Y' WHEN LEN(RTRIM(ISNULL(TDB.[COMMENT], ''))) < 10 -- Comment must be at least 10 characters. This is an error. THEN 'Y' WHEN TDB.[TIME] > 1440 -- Task is too long! Must be less than 1440 minutes (i.e. 24 hours) THEN 'Y' ELSE 'N' END = 'N' AND ( @UpdateRestriction = 0 OR ( @UpdateRestriction = 1 AND [TDB].[AdHocPosting] = 1) OR ( @UpdateRestriction = 2 AND [TDB].[Date] < CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112)))) -- Please Note that AdHocPosting should only be evaluated ONCE - Start UPDATE [TDB] SET [TDB].[AdHocPosting] = 0 FROM [dbo].[TimeDayBook] [TDB] WHERE [TDB].[FeeEarn] = @Handler AND [TDB].[AdHocPosting] <> 0 -- Please Note that AdHocPosting should only be evaluated ONCE - End INSERT INTO @PDMAT ([CODE]) SELECT DISTINCT TDB.[MATTER] FROM [dbo].[TimeDayBook] TDB LEFT OUTER JOIN [dbo].[matters] MAT --2015-09-01 ON MAT.CODE = TDB.Matter WHERE TDB.[FEEEARN] = @Handler AND ISNULL(MAT.Closed,'N')<>'Y' UPDATE NTEID SET NTEID.[NEWID] = NTEID.[ID] + NTEID.[NEWID] FROM @NTEID NTEID --IF (@TUTNUMVALUE <> 1) ----PINO 2015-08-25 - second fix -- BEGIN ----PINO 2015-08-25 - second fix -- Round all Time Daybook Values up to the nearest Unit. DECLARE @RECID INT INSERT INTO @RDUP ([RECORDID]) SELECT TDB.[RecordID] FROM @NTEID NTEID INNER JOIN [dbo].[TimeDayBook] TDB ON TDB.[RECORDID] = NTEID.[RECORDID] AND TDB.[TimeOrCharge] <> 'C' SELECT TOP 1 @RECID = RDUP.[RECORDID] FROM @RDUP RDUP WHILE (@RECID IS NOT NULL) BEGIN DELETE RDUP FROM @RDUP RDUP WHERE RDUP.[RECORDID] = @RECID EXEC [dbo].[KAAS_SetTimeDaybookRateCharge] @RECID, @TUTNUMVALUE SET @RECID = NULL SELECT TOP 1 @RECID = RDUP.[RECORDID] FROM @RDUP RDUP END --END ----PINO 2015-08-25 - second fix SET IDENTITY_INSERT [dbo].[TimeEntry] ON INSERT INTO [dbo].[TimeEntry] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [TASK], [TIMEORCHARGE], [COMMENT], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [PERIOD], [YEAR], [BillingPeriod], [BillingYear], [ACTIONID], [StageCode], [Branch], [RECORDID]) SELECT CASE WHEN RTRIM(ISNULL(TDB.[TASK], '')) <> '' THEN TDB.[MATTER] WHEN RTRIM(ISNULL(TDB.[MATTER], '')) <> '' THEN TDB.[MATTER] ELSE '~' END, TDB.[FEEEARN], TDB.[DATE], TDB.[TIME], TDB.[RATE], TDB.[TASK], TDB.[TIMEORCHARGE], TDB.[COMMENT], CASE WHEN RTRIM(ISNULL(TDB.[TASK], '')) <> '' THEN '' WHEN RTRIM(ISNULL(TDB.[MATTER], '')) = '~' THEN TDB.[NCCCode] WHEN RTRIM(ISNULL(TDB.[MATTER], '')) <> '' THEN '' ELSE TDB.[NCCCODE] END, CASE WHEN ISNUMERIC(RTRIM(ISNULL(TDB.[DOCKET],''))) = 1 THEN CONVERT(decimal(9,0), RTRIM(ISNULL(TDB.[DOCKET],''))) ELSE 0 END, TDB.[TEAM], TDB.[TRACKREF], TDB.[REC_IRR], CASE WHEN ISNULL(TDB.[PERIOD], 0) = 0 THEN @PERIOD ELSE TDB.[PERIOD] END, CASE WHEN ISNULL(TDB.[YEAR], 0) = 0 THEN @YEAR ELSE TDB.[YEAR] END, 0, --2015-08-27 0, --2015-08-27 TDB.[ACTIONID], TDB.[StageCode], CASE WHEN TDB.[Matter] = '~' THEN '' ELSE ISNULL(HAN.[BRANCH], '') END, -- 2015-09-01 John NTEID.[NEWID] FROM @NTEID NTEID INNER JOIN [dbo].[TimeDayBook] TDB ON TDB.[RECORDID] = NTEID.[RECORDID] LEFT OUTER JOIN [dbo].[Handlers] HAN -- 2015-09-01 John ON HAN.[CODE] = TDB.[FeeEarn] LEFT OUTER JOIN [dbo].[Matters] MAT on MAT.Code = TDB.Matter SET IDENTITY_INSERT [dbo].[TimeEntry] OFF SELECT @MAXID = ISNULL(MAX(TIE.[RECORDID]), 0) FROM [dbo].[TimeEntry] TIE DBCC CHECKIDENT([TimeEntry], RESEED, @MAXID) DELETE [dbo].[WDNTEID] WHERE [handler] = @Handler INSERT INTO [dbo].[WDNTEID] ([Handler], [id], [NewId], [RECORDID]) SELECT @Handler, [ID], [NEWID], [RECORDID] FROM @NTEID EXEC [dbo].[KAAS_UpdateTimeEntryFromDayBook] @HANDLER, @UPDByHandler, @User EXEC [dbo].[KAAS_CheckUnpostableEntries] @HANDLER DELETE TDB FROM @NTEID NTEID INNER JOIN [dbo].[TimeDayBook] TDB ON TDB.[RECORDID] = NTEID.[RECORDID] INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = NTEID.[NEWID] LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = TIE.[MATTER] WHERE TIE.[MATTER] = '~' OR MAT.[Code] IS NOT NULL UPDATE MAT SET MAT.[ChargeBal] = ISNULL(TIE.[Charge], 0), MAT.[TimeBal] = ISNULL(TIE.[Time], 0) FROM @PDMAT PDM INNER JOIN [dbo].[Matters] MAT ON MAT.[Code] = PDM.[CODE] LEFT OUTER JOIN (SELECT TIE.[Matter], SUM(ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0)) AS [Charge], SUM(ISNULL(TIE.[Time], 0)) AS [Time] FROM [dbo].[TimeEntry] AS TIE WHERE TIE.[TimeOrCharge] <> 'B' AND TIE.[Rec_Irr] = 'C' AND TIE.[IncludeInBill] <> 2 AND CASE WHEN @IsSAM4 = 1 -- SAM4 doesn't use billedamount AND ISNULL(TIE.[InvoiceNo], 0) = 0 THEN 1 WHEN @IsSAM4 <> 1 -- SAM3 does AND ABS(ISNULL(TIE.[BilledAmount], 0)) < ABS(ISNULL(TIE.[Charge], 0)) THEN 1 ELSE 0 END = 1 GROUP BY TIE.[Matter]) AS TIE ON TIE.[Matter] = MAT.[Code] WHERE MAT.[Code] IS NOT NULL IF (@AxleErrors = 0) BEGIN SELECT COUNT(1) AS [TOTAL] from [dbo].[TimeDayBook] TDB WHERE TDB.[FEEEARN] = @Handler END ELSE BEGIN SELECT DISTINCT AXER.[AxleError] FROM [dbo].[ky_WDTimeDayBookWithAxleErrors] (@HSEClientGroup, @Handler) AXER WHERE AXER.[IsAxleError] = 'Y' END DECLARE @IsTimerRunning BIT SET @IsTimerRunning = 0; IF EXISTS(SELECT TOP 1 1 FROM TimeDayBook WHERE FeeEarn = @Handler AND StopwatchStatus = 0) BEGIN SET @IsTimerRunning = 1; END SELECT @IsTimerRunning AS [IsTimerRunning] END GO IF OBJECT_ID(N'KAAS__GetCurrentTenantDetails',N'P')IS NOT NULL DROP PROCEDURE [dbo].[KAAS__GetCurrentTenantDetails] GO CREATE PROCEDURE [dbo].[KAAS__GetCurrentTenantDetails] AS /******************************************************************************************************* * * * Stored Procedure Name : [dbo].[KAAS__GetCurrentTenantDetails] * * Copied from : [dbo].[KAAS_CP_GetCurrentTenantFirmName] * * * * Description: To use detail request file email Template * * * * Modification History: * * 2021-06-04 Aakif Created * * 2022-03-07 Vinodhkumar.M Created * *******************************************************************************************************/ BEGIN --SET DEFAULT HEADER IF FIRM NAME IS NOT AVAILABLE SELECT [NAME] AS [FirmName] FROM [dbo].[control] END GO