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_AddWorkflowActionChecklistItem'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_AddWorkflowActionChecklistItem]
END
GO
CREATE PROCEDURE [dbo].[KAAS_AddWorkflowActionChecklistItem]
(
@ActionCode VARCHAR(15),
@ChecklistItem VARCHAR(500),
@Optional BIT
)
AS
/*************************************************************************************************************
* This procedure is used to Adds a WorkFlow Action Checklist item *
* *
* Stored Procedure Name : [dbo].[KAAS_AddWorkflowActionChecklistItem] *
* Copied from : [dbo].[ky_NETSPAddWorkflowActionChecklistItem] *
* *
* Modification History : *
* 2024-07-18 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Seq INT
SELECT @Seq = MAX([TACL].[Sequence])
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[ACTIONCODE] = @ACTIONCODE
SET @Seq = ISNULL(@Seq, 0) + 1
INSERT
INTO [dbo].[TemplateActionChecklists]
([ACTIONCODE],
[ChecklistItem],
[Optional],
[Sequence])
VALUES(@ActionCode,
@ChecklistItem,
@Optional,
@Seq)
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 OBJECT_ID(N'KAAS_RefreshBG', N'P') IS NOT NULL
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
* 2024-10-18 Ponni M Isexist condition check changed
***************************************************************************************/
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 EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_CaseExportAction'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CaseExportAction]
END
GO
CREATE PROCEDURE [dbo].[KAAS_CaseExportAction]
(
@WKTCODE VARCHAR(10)
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_ExportCaseWorkFlowData]
* Copied From : [dbo].[ky_NETCaseExportAction]
* Description: To fetch all case work flow details to export
* Modification History:
*
* 2024-07-30 Balamurugan.C Created
* 2024-08-12 Balamurugan.C Modified - Added Email Template and Checklist data in export
*********************************************************************************************/
BEGIN
SET NOCOUNT ON
--GET WKCODE WHICH ARE IN TEMPLATE TABLE
SELECT
DISTINCT RTRIM(ISNULL(TEM.WKTYPE,'')) AS WKTYPE
,RTRIM(ISNULL(TEM.WKCODE,'')) AS WKCODE
,RTRIM(ISNULL(TEM.WKDESC,'')) AS WKDESC
,RTRIM(ISNULL(TEM.WKACTION,'')) AS WKACTION
,RTRIM(ISNULL(TEM.WKACCSRN,'')) AS WKACCSRN
,RTRIM(ISNULL(TEM.WKSRNLIT,'')) AS WKSRNLIT
,RTRIM(ISNULL(TEM.WKSRNCON,'')) AS WKSRNCON
,RTRIM(ISNULL(TEM.WKSRNPRB,'')) AS WKSRNPRB
,RTRIM(ISNULL(TEM.WKSRNDRC,'')) AS WKSRNDRC
,RTRIM(ISNULL(TEM.WKSRNGEN,'')) AS WKSRNGEN
,RTRIM(ISNULL(TEM.WKPATH,'')) AS WKPATH
,RTRIM(ISNULL(TEM.Dept,'')) AS Dept
,RTRIM(ISNULL(TEM.SourceMatter,'')) AS SourceMatter
FROM
Templates TEM
WHERE
ISNULL(RTRIM(WKCODE),'') =@WKTCODE
--UNION
-- SELECT
-- DISTINCT ISNULL(RTRIM(TEM.WKTYPE),'') AS WKTYPE
-- ,ISNULL(RTRIM(TEM.WKCODE),'') AS WKCODE
-- ,ISNULL(RTRIM(TEM.WKDESC),'') AS WKDESC
-- ,ISNULL(RTRIM(TEM.WKACTION),'') AS WKACTION
-- ,ISNULL(RTRIM(TEM.WKACCSRN),'') AS WKACCSRN
-- ,ISNULL(RTRIM(TEM.WKSRNLIT),'') AS WKSRNLIT
-- ,ISNULL(RTRIM(TEM.WKSRNCON),'') AS WKSRNCON
-- ,ISNULL(RTRIM(TEM.WKSRNPRB),'') AS WKSRNPRB
-- ,ISNULL(RTRIM(TEM.WKSRNDRC),'') AS WKSRNDRC
-- ,ISNULL(RTRIM(TEM.WKSRNGEN),'') AS WKSRNGEN
-- ,ISNULL(RTRIM(TEM.WKPATH),'') AS WKPATH
-- ,ISNULL(RTRIM(TEM.Dept),'') AS Dept
-- ,ISNULL(RTRIM(TEM.SourceMatter),'') AS SourceMatter
-- ,0 AS 'ExportField'
-- FROM
-- Templates TEM
-- INNER JOIN
-- (SELECT
-- *
-- FROM
-- TemplateActions TA
-- INNER JOIN
-- TemplateNextActions TNA
-- ON
-- TA.ACTIONCODE =TNA.NEXTACTION
-- WHERE
-- TNA.ACTION IN (SELECT ACTIONCODE FROM TEMPLATEACTIONS WHERE ISNULL(RTRIM(WKTCODE),'')=@WKTCODE)) as T on TEM.WKCODE =T.WKTCODE
--UNION
-- SELECT
-- DISTINCT ISNULL(RTRIM(TEM.WKTYPE),'') AS WKTYPE
-- ,ISNULL(RTRIM(TEM.WKCODE),'') AS WKCODE
-- ,ISNULL(RTRIM(TEM.WKDESC),'') AS WKDESC
-- ,ISNULL(RTRIM(TEM.WKACTION),'') AS WKACTION
-- ,ISNULL(RTRIM(TEM.WKACCSRN),'') AS WKACCSRN
-- ,ISNULL(RTRIM(TEM.WKSRNLIT),'') AS WKSRNLIT
-- ,ISNULL(RTRIM(TEM.WKSRNCON),'') AS WKSRNCON
-- ,ISNULL(RTRIM(TEM.WKSRNPRB),'') AS WKSRNPRB
-- ,ISNULL(RTRIM(TEM.WKSRNDRC),'') AS WKSRNDRC
-- ,ISNULL(RTRIM(TEM.WKSRNGEN),'') AS WKSRNGEN
-- ,ISNULL(RTRIM(TEM.WKPATH),'') AS WKPATH
-- ,ISNULL(RTRIM(TEM.Dept),'') AS Dept
-- ,ISNULL(RTRIM(TEM.SourceMatter),'') AS SourceMatter
-- ,0 AS 'ExportField'
-- FROM
-- Templates TEM
-- INNER JOIN
-- (SELECT
-- TA.WKTCODE
-- FROM
-- TemplateActions TA
-- INNER JOIN
-- TemplateDependentActions TDA
-- ON
-- TA.ACTIONCODE =TDA.DependentActionCode
-- WHERE
-- TDA.ActionCode IN (SELECT ACTIONCODE FROM TEMPLATEACTIONS WHERE ISNULL(RTRIM(WKTCODE),'')=@WKTCODE)) as T on TEM.WKCODE =T.WKTCODE
--GET NEXT ACTION RELATED TO THAT PARTICULAR WORK CODE
SELECT
RTRIM(ISNULL(TA.ACTIONCODE,'')) AS ACTIONCODE --0
,RTRIM(ISNULL(TA.Actioncategory,'')) AS Actioncategory --1
,RTRIM(ISNULL(TA.ACTTYPE,'')) AS ACTTYPE --2
,RTRIM(ISNULL(TA.ASSIGNHANDLER,'')) AS SASSIGNHANDLER --3
,RTRIM(ISNULL(TA.ASSIGNTEAM,'')) AS ASSIGNTEAM --4
,RTRIM(ISNULL(TA.Arrangement,'')) AS Arrangement --5
,RTRIM(ISNULL(TA.AssignActionTo,'')) AS AssignActionTo--6
,RTRIM(ISNULL(TA.Authby ,'')) AS Authby --7
,RTRIM(ISNULL(TA.AuthorisationRequired,'')) AS AuthorisationRequired --8
,RTRIM(ISNULL(TA.AutoPopulate,'')) AS AutoPopulate --9
,RTRIM(ISNULL(TA.BILLABLE,'')) AS BILLABLE --10
,RTRIM(ISNULL(TA.BILLDESCRIPTION,'')) AS BILLDESCRIPTION--11
,RTRIM(ISNULL(TA.ChargeInterest,'')) AS ChargeInterest --12
,ISNULL(TA.ChargeValue,0) AS ChargeValue --13
,RTRIM(ISNULL(TA.ConfirmByPW,'')) AS ConfirmByPW --14
,RTRIM(ISNULL(TA.[DESC],'')) AS [DESC] --15
,RTRIM(ISNULL(TA.[Description],'')) AS [Description]--16
,RTRIM(ISNULL(TA.EMAIL ,'')) AS EMAIL --17
,RTRIM(ISNULL(TA.HIGHLIGHTED ,'')) AS HIGHLIGHTED --18
,RTRIM(ISNULL(TA.MILESTONETYPE ,'')) AS MILESTONETYPE--19
,RTRIM(ISNULL(TA.NEXTACTIONOPTIONAL,'')) AS NEXTACTIONOPTIONAL --20
,RTRIM(ISNULL(TA.[PRIORITY],'')) AS [PRIORITY]--21
,RTRIM(ISNULL(TA.PROCESSTYPE ,'')) AS PROCESSTYPE--22
,RTRIM(ISNULL(TA.PUBLISHER,'')) AS PUBLISHER --23
,RTRIM(ISNULL(TA.RequiredAction,'')) AS RequiredAction --24
,RTRIM(ISNULL(TA.[STATUS],'')) AS [STATUS] --25
,RTRIM(ISNULL(TA.UPDATEFIELD,'')) AS UPDATEFIELD--26
,RTRIM(ISNULL(TA.UPDATEVALUE,'')) AS UPDATEVALUE --27
,RTRIM(ISNULL(TA.WKTCODE,'')) AS WKTCODE --28
,RTRIM(ISNULL(TA.AssignTeamActionTo,'')) AS AssignTeamActionTo--29
,ISNULL(FLAG,0) AS Flag
FROM
ActionWorkTypes A
LEFT OUTER JOIN
TemplateActions TA
ON A.ACTIONCODE= TA.ACTIONCODE
WHERE
RTRIM(ISNULL(A.WORKTYPE,'')) =@WKTCODE
UNION
SELECT
RTRIM(ISNULL(TA.ACTIONCODE,'')) AS ACTIONCODE --0
,RTRIM(ISNULL(TA.Actioncategory,'')) AS Actioncategory --1
,RTRIM(ISNULL(TA.ACTTYPE,'')) AS ACTTYPE --2
,RTRIM(ISNULL(TA.ASSIGNHANDLER,'')) AS SASSIGNHANDLER --3
,RTRIM(ISNULL(TA.ASSIGNTEAM ,'')) AS ASSIGNTEAM --4
,RTRIM(ISNULL(TA.Arrangement,'')) AS Arrangement --5
,RTRIM(ISNULL(TA.AssignActionTo ,'')) AS AssignActionTo--6
,RTRIM(ISNULL(TA.Authby,'')) AS Authby --7
,RTRIM(ISNULL(TA.AuthorisationRequired,'')) AS AuthorisationRequired --8
,RTRIM(ISNULL(TA.AutoPopulate,'')) AS AutoPopulate --9
,RTRIM(ISNULL(TA.BILLABLE,'')) AS BILLABLE --10
,RTRIM(ISNULL(TA.BILLDESCRIPTION,'')) AS BILLDESCRIPTION--11
,RTRIM(ISNULL(TA.ChargeInterest,'')) AS ChargeInterest --12
,ISNULL(TA.ChargeValue,0) AS ChargeValue --13
,RTRIM(ISNULL(TA.ConfirmByPW,'')) AS ConfirmByPW --14
,RTRIM(ISNULL(TA.[DESC],'')) AS [DESC] --15
,RTRIM(ISNULL(TA.[Description],'')) AS [Description]--16
,RTRIM(ISNULL(TA.EMAIL ,'')) AS EMAIL --17
,RTRIM(ISNULL(TA.HIGHLIGHTED ,'')) AS HIGHLIGHTED --18
,RTRIM(ISNULL(TA.MILESTONETYPE ,'')) AS MILESTONETYPE--19
,RTRIM(ISNULL(TA.NEXTACTIONOPTIONAL,'')) AS NEXTACTIONOPTIONAL --20
,RTRIM(ISNULL(TA.[PRIORITY],'')) AS [PRIORITY]--21
,RTRIM(ISNULL(TA.PROCESSTYPE ,'')) AS PROCESSTYPE--22
,RTRIM(ISNULL(TA.PUBLISHER,'')) AS PUBLISHER --23
,RTRIM(ISNULL(TA.RequiredAction,'')) AS RequiredAction --24
,RTRIM(ISNULL(TA.[STATUS],'')) AS [STATUS] --25
,RTRIM(ISNULL(TA.UPDATEFIELD,'')) AS UPDATEFIELD--26
,RTRIM(ISNULL(TA.UPDATEVALUE,'')) AS UPDATEVALUE --27
,RTRIM(ISNULL(TA.WKTCODE,'')) AS WKTCODE --28
,RTRIM(ISNULL(TA.AssignTeamActionTo,'')) AS AssignTeamActionTo--29
,ISNULL(FLAG,0) AS Flag
FROM
TemplateActions TA
INNER JOIN
(SELECT
DISTINCT TA.ACTIONCODE
,TA.Actioncategory
,TA.ACTTYPE
,TA.ASSIGNHANDLER
,TA.ASSIGNTEAM
,TA.Arrangement
,TA.AssignActionTo
,TA.Authby
,TA.AuthorisationRequired
,TA.AutoPopulate
,TA.BILLABLE
,TA.BILLDESCRIPTION
,TA.ChargeInterest
,TA.ChargeValue
,TA.ConfirmByPW
,TA.[DESC]
,TA.[Description]
,TA.EMAIL
,TA.HIGHLIGHTED
,TA.MILESTONETYPE
,TA.NEXTACTIONOPTIONAL
,TA.[PRIORITY]
,TA.PROCESSTYPE
,TA.PUBLISHER
,TA.RequiredAction
,TA.[STATUS]
,TA.UPDATEFIELD
,TA.UPDATEVALUE
,TA.WKTCODE
,NEXTACTION
FROM
TemplateNextActions TNA
INNER JOIN
TemplateActions TA
ON
TNA.ACTION =TA.ACTIONCODE
WHERE
RTRIM(ISNULL(TA.WKTCODE,'')) =@WKTCODE ) as T on TA.ACTIONCODE =T. NEXTACTION
UNION
SELECT
RTRIM(ISNULL(TA.ACTIONCODE,'')) AS ACTIONCODE --0
,RTRIM(ISNULL(TA.ActionCategory,'')) AS Actioncategory --1
,RTRIM(ISNULL(TA.ACTTYPE,'')) AS ACTTYPE --2
,RTRIM(ISNULL(TA.ASSIGNHANDLER,'')) AS SASSIGNHANDLER --3
,RTRIM(ISNULL(TA.ASSIGNTEAM,'')) AS ASSIGNTEAM --4
,RTRIM(ISNULL(TA.Arrangement,'')) AS Arrangement --5
,RTRIM(ISNULL(TA.AssignActionTo,'')) AS AssignActionTo--6
,RTRIM(ISNULL(TA.Authby ,'')) AS Authby --7
,RTRIM(ISNULL(TA.AuthorisationRequired,'')) AS AuthorisationRequired --8
,RTRIM(ISNULL(TA.AutoPopulate,'')) AS AutoPopulate --9
,RTRIM(ISNULL(TA.BILLABLE,'')) AS BILLABLE --10
,RTRIM(ISNULL(TA.BILLDESCRIPTION,'')) AS BILLDESCRIPTION--11
,RTRIM(ISNULL(TA.ChargeInterest,'')) AS ChargeInterest --12
,ISNULL(TA.ChargeValue,0) AS ChargeValue --13
,RTRIM(ISNULL(TA.ConfirmByPW,'')) AS ConfirmByPW --14
,RTRIM(ISNULL(TA.[DESC],'')) AS [DESC] --15
,RTRIM(ISNULL(TA.[Description],'')) AS [Description]--16
,RTRIM(ISNULL(TA.EMAIL,'')) AS EMAIL --17
,RTRIM(ISNULL(TA.HIGHLIGHTED,'')) AS HIGHLIGHTED --18
,RTRIM(ISNULL(TA.MILESTONETYPE,'')) AS MILESTONETYPE--19
,RTRIM(ISNULL(TA.NEXTACTIONOPTIONAL,'')) AS NEXTACTIONOPTIONAL --20
,RTRIM(ISNULL(TA.[PRIORITY],'')) AS [PRIORITY]--21
,RTRIM(ISNULL(TA.PROCESSTYPE,'')) AS PROCESSTYPE--22
,RTRIM(ISNULL(TA.PUBLISHER,'')) AS PUBLISHER --23
,RTRIM(ISNULL(TA.RequiredAction,'')) AS RequiredAction --24
,RTRIM(ISNULL(TA.[STATUS],'')) AS [STATUS] --25
,RTRIM(ISNULL(TA.UPDATEFIELD,'')) AS UPDATEFIELD--26
,RTRIM(ISNULL(TA.UPDATEVALUE,'')) AS UPDATEVALUE --27
,RTRIM(ISNULL(TA.WKTCODE,'')) AS WKTCODE --28
,RTRIM(ISNULL(TA.AssignTeamActionTo,'')) AS AssignTeamActionTo--29
,ISNULL(FLAG,0) AS Flag
FROM
TemplateActions TA
INNER JOIN
(SELECT
DISTINCT TA.ACTIONCODE
,TA.ActionCategory
,TA.ACTTYPE
,TA.ASSIGNHANDLER
,TA.ASSIGNTEAM
,TA.Arrangement
,TA.AssignActionTo
,TA.Authby
,TA.AuthorisationRequired
,TA.AutoPopulate
,TA.BILLABLE
,TA.BILLDESCRIPTION
,TA.ChargeInterest
,TA.ChargeValue
,TA.ConfirmByPW
,TA.[DESC]
,TA.[Description]
,TA.EMAIL
,TA.HIGHLIGHTED
,TA.MILESTONETYPE
,TA.NEXTACTIONOPTIONAL
,TA.[PRIORITY]
,TA.PROCESSTYPE
,TA.PUBLISHER
,TA.RequiredAction
,TA.[STATUS]
,TA.UPDATEFIELD
,TA.UPDATEVALUE
,TA.WKTCODE
,DependentActionCode
FROM
TemplateDependentActions TDA
INNER JOIN
TemplateActions TA
ON
TDA.ActionCode =TA.ACTIONCODE
WHERE
RTRIM(ISNULL(TA.WKTCODE,'')) =@WKTCODE) as T on TA.ACTIONCODE =T. DependentActionCode
--GET NEXT ACTION RELATED TO THAT PARTICULAR WORK CODE
SELECT
RTRIM(ISNULL(TNA.ACTION,'')) AS ACTION
,RTRIM(ISNULL(TNA.NEXTACTION,'')) AS NEXTACTION
,RTRIM(ISNULL(TNA.DECISION,'')) AS DECISION
,RTRIM(ISNULL(TNA.OPTIONAL,'')) AS OPTIONAL
,RTRIM(ISNULL(TNA.WHENTYPE,'')) AS WHENTYPE
,ISNULL(TNA.[WHEN] ,0) AS [WHEN]
FROM
TemplateNextActions TNA
INNER JOIN
TemplateActions TA
ON
TNA.ACTION =TA.ACTIONCODE
WHERE
RTRIM(ISNULL(TA.WKTCODE,'')) =@WKTCODE
--GET DEPENDENT ACTION THAT ARE RELATED TO THE WORK CODE
SELECT
RTRIM(ISNULL(TDA.ActionCode,'')) AS ActionCode
,RTRIM(ISNULL(TDA.DependentActionCode,'')) AS DependentActionCode
,ISNULL(TDA.RecordID,0) AS RecordID
,RTRIM(ISNULL(TDA.[Status],'')) AS [Status]
,ISNULL(TDA.TimeFramAmount,0) AS TimeFramAmount
,RTRIM(ISNULL(TDA.TimeFrame,'')) AS TimeFrame
FROM
TemplateDependentActions TDA
INNER JOIN
TemplateActions TA
ON
TDA.ActionCode =TA.ACTIONCODE
WHERE
ISNULL(RTRIM(WKTCODE),'') =@WKTCODE
--GET DOCUMENT THAT ARE RELATED TO THE WORK CODE
SELECT
RTRIM(ISNULL(TD.CODE,'')) AS CODE
,RTRIM(ISNULL(TD.DICTATION,'')) AS DICTATION
,RTRIM(ISNULL(TD.DOCCLASS,'')) AS DOCCLASS
,RTRIM(ISNULL(TD.EndToken,'')) AS EndToken
,RTRIM(ISNULL(TD.FILEPATH,'')) AS FILEPATH
,RTRIM(ISNULL(TD.NAME,'')) AS NAME
,RTRIM(ISNULL(TD.OPENDURINGDICTATION,'')) AS OPENDURINGDICTATION
,RTRIM(ISNULL(TD.OverWrite,'')) AS OverWrite
,RTRIM(ISNULL(TD.STORE,'')) AS STORE
,RTRIM(ISNULL(TD.StartToken,'')) AS StartToken
,RTRIM(ISNULL(TD.[TYPE],'')) AS [TYPE]
,RTRIM(ISNULL(TAD.[ACTION],'')) AS [ACTION]
,RTRIM(ISNULL(TAD.DOCUMENT,'')) AS DOCUMENT
,RTRIM(ISNULL(TAD.OPTIONAL,'')) AS OPTIONAL
FROM
TemplateDocuments TD
INNER JOIN
TemplateActionDcouments TAD
ON
TD.CODE =TAD.DOCUMENT
INNER JOIN
TemplateActions TA
ON
TAD.ACTION =TA.ACTIONCODE
INNER JOIN
ActionWorkTypes AWT
ON
AWT.ACTIONCODE =TA.ACTIONCODE
WHERE
RTRIM(ISNULL(WKTCODE,'')) =@WKTCODE
--GET ACTION SEQUENCE FOR THE CASE PLAN
SELECT
RTRIM(ISNULL(WORKTYPE,'')) AS WORKTYPE
,RTRIM(ISNULL(ACTIONCODE,'')) AS ACTIONCODE
,ISNULL(SEQ,0) AS SEQ
,RTRIM(ISNULL(ForCopy,'')) AS ForCopy
FROM
ActionWorkTypes
WHERE
RTRIM(ISNULL(WORKTYPE,'')) = @WKTCODE
--GET ACTIONS UDF FOR THE CASE PLAN
SELECT RTRIM(ISNULL(ACTUALNAME,'')) AS ACTUALNAME
,RTRIM(ISNULL(CALCINITIALVALUE,'')) AS CALCINITIALVALUE
,ISNULL(COMMON,0) AS COMMON
,ISNULL(DECMIAL,0) AS DECMIAL
,RTRIM(ISNULL([ENABLED],'')) AS [ENABLED]
,RTRIM(ISNULL(FIELDNAME,'')) AS FIELDNAME
,RTRIM(ISNULL(FILEPREFIX,'')) AS FILEPREFIX
,RTRIM(ISNULL(FONT,'')) AS FONT
,RTRIM(ISNULL(FORMAT,'')) AS FORMAT
,ISNULL(HEIGHT,0) AS HEIGHT
,ISNULL(HIGH,0) AS HIGH
,RTRIM(ISNULL(INITIALVALUE,'')) AS INITIALVALUE
,RTRIM(ISNULL(ISLOCK,'')) AS ISLOCK
,ISNULL([LEFT],0) AS [LEFT]
,ISNULL([LENGTH],0) AS [LENGTH]
,ISNULL(LOW,0) AS LOW
,RTRIM(ISNULL(MULTILINE,'')) AS MULTILINE
,RTRIM(ISNULL(OVERRIDEINITIALVALUE,'')) AS OVERRIDEINITIALVALUE
,RTRIM(ISNULL(PROMPT,'')) AS PROMPT
,RTRIM(ISNULL([READONLY],'')) AS [READONLY]
,RTRIM(ISNULL(B.[REQUIRED],'')) AS [REQUIRED]
,RTRIM(ISNULL(SYSTEMFIELD,'')) AS SYSTEMFIELD
,ISNULL([TOP],0) AS [TOP]
,RTRIM(ISNULL([TYPE],'')) AS [TYPE]
,RTRIM(ISNULL(B.UDFCategory,'')) AS UDFCategory
,RTRIM(ISNULL([VALIDATION],'')) AS [VALIDATION]
,RTRIM(ISNULL(VISIBLE,'')) AS VISIBLE
,ISNULL(WIDTH,0) AS WIDTH
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)=@WKTCODE
AND
B.FIELDNAME IS NOT NULL
AND
B.FILEPREFIX IS NOT NULL
SELECT A.IncludeInMatterCopy
,A.UDFILE
,A.UDSEQ
,A.UDUVCODE
,A.UDWKCODE
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)=@WKTCODE
--GET DOCCLASS FOR THE DOCUMENT
SELECT
RTRIM(ISNULL(DC.CLASSCODE,'')) AS CLASSCODE,
RTRIM(ISNULL(DC.CLASSDESCRIPTION,'')) AS CLASSDESCRIPTION,
RTRIM(ISNULL(DC.Retired,'N')) AS Retired
FROM
DocumentClasses DC
INNER JOIN
TemplateDocuments TD
ON
DC.CLASSCODE =TD.DOCCLASS
INNER JOIN
TemplateActionDcouments TAD
ON
TD.CODE =TAD.DOCUMENT
INNER JOIN
TemplateActions TA
ON
TAD.[ACTION] =TA.ACTIONCODE
INNER JOIN
ActionWorkTypes AWT
ON
AWT.ACTIONCODE =TA.ACTIONCODE
WHERE
RTRIM(ISNULL(WKTCODE,'')) =@WKTCODE
GROUP BY
DC.CLASSCODE,DC.CLASSDESCRIPTION,DC.Retired
--GET ACTION EMAIL TEMPLATE DETAILS
SELECT RTRIM(ISNULL([TEM].[ACTIONID],'')) AS [ACTIONID],
RTRIM(ISNULL([TEM].[EMAILTO],'')) AS [EMAILTO],
RTRIM(ISNULL([TEM].[EMAILCC],'')) AS [EMAILCC],
RTRIM(ISNULL([TEM].[EMAILBCC],'')) AS [EMAILBCC],
RTRIM(ISNULL([TEM].[SUBJECT],'')) AS [SUBJECT],
RTRIM(ISNULL([TEM].[INCLUDEATTACHMENTS],'')) AS [INCLUDEATTACHMENTS],
RTRIM(ISNULL([TEM].[REQUESTREADRECIPT],'')) AS [REQUESTREADRECIPT],
RTRIM(ISNULL([TEM].[PRIORITY],'')) AS [PRIORITY],
RTRIM(ISNULL([TEM].[BODY],'')) AS [BODY],
RTRIM(ISNULL([TEM].[IncludeAttachmentsPDF],'')) AS [IncludeAttachmentsPDF]
FROM [dbo].[TemplateEmails] [TEM]
JOIN [dbo].[TemplateActions] [TAS]
ON [TAS].[ACTIONCODE] = [TEM].[ACTIONID]
JOIN [dbo].[ActionWorkTypes] [AWT]
ON [AWT].ACTIONCODE = [TAS].ACTIONCODE
WHERE RTRIM(ISNULL([AWT].WORKTYPE,'')) = @WKTCODE
--GET ACTION CHECK LIST DETAILS
SELECT RTRIM(ISNULL([TAC].[ACTIONCODE],'')) AS [ACTIONCODE],
[TAC].[Sequence] AS [Sequence],
RTRIM(ISNULL([TAC].[ChecklistItem],'')) AS [ChecklistItem],
[TAC].[Optional] AS [Optional]
FROM [dbo].[TemplateActionChecklists] [TAC]
JOIN [dbo].[TemplateActions] [TAS]
ON [TAS].[ACTIONCODE] = [TAC].[ACTIONCODE]
JOIN [dbo].[ActionWorkTypes] [AWT]
ON [AWT].[ACTIONCODE] = [TAS].[ACTIONCODE]
WHERE RTRIM(ISNULL([AWT].WORKTYPE,'')) = @WKTCODE
SET NOCOUNT OFF
END
GO
IF EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_CaseImportDocClass'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CaseImportDocClass]
END
GO
CREATE PROCEDURE [dbo].[KAAS_CaseImportDocClass]
(
@CasePlanDocClassTypeTbl CasePlanDocClassType READONLY
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_CaseImportDocClass]
* Copied From : [dbo].[KY_NETCaseImportDocClass]
* Description: This procedure is used to import document class
* Modification History:
*
* 2024-08-13 Balamurugan.C Created
*********************************************************************************************/
BEGIN
INSERT INTO [dbo].[DocumentClasses]
( [CLASSCODE],
[CLASSDESCRIPTION],
[Retired]
)
SELECT [CDC].[CLASSCODE],
[CDC].[CLASSDESCRIPTION],
[CDC].[Retired]
FROM @CasePlanDocClassTypeTbl [CDC]
LEFT JOIN [dbo].[DocumentClasses] [DOC]
ON ISNULL(RTRIM([DOC].[CLASSCODE]),'') = [CDC].[CLASSCODE]
WHERE [DOC].[CLASSCODE] IS NULL
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 OBJECT_ID(N'KAAS_CaseWarningLogUserAction',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CaseWarningLogUserAction]
GO
CREATE PROCEDURE [dbo].[KAAS_CaseWarningLogUserAction]
(
@MatterCode VARCHAR(20),
@MsgCategory VARCHAR(100),
@UserCode VARCHAR(10),
@Action VARCHAR(100)
)
AS
/*******************************************************************************************************
* This procedure is used to log the user action in alarm notification *
* *
* Stored Procedure Name : [dbo].[KAAS_CaseWarningLogUserAction] *
* *
* Modification History: *
* 2024-07-26 Ghayathri.S.V Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE NMU
SET NMU.[Usercode] = @UserCode,
NMU.[UserResponsedDate] = GetDate(),
NMU.[UserOption] = CASE WHEN @Action='Show me'
THEN @Action
ELSE NULL END
FROM [dbo].[NotificationMessageUserResponse] NMU
WHERE NMU.[MatterCode] = @MatterCode
AND NMU.[MsgCategory] = @MsgCategory
AND convert(datetime, convert(varchar, NMU.[MsgGeneratedDate], 112)) = convert(datetime, convert(varchar, GetDate(), 112))
AND NMU.[Usercode] = @UserCode
SET NOCOUNT OFF
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
* 2024-09-18 Sadiq Added one more Variable ContactId to be returned (Bug no 18918)
* 2024-10-03 Sadiq Added IsKipped Variable to know whether the contact is "Never-Ignore Dont prompt in future" (Bug no 18903)
*
*********************************************************************************************************************/
BEGIN
DECLARE @SEARCHES TABLE
([Id] INT IDENTITY(1, 1),
[CaseCode] VARCHAR(20),
[ContactType] VARCHAR(20),
[Seq] INT,
[IsPrompt] BIT,
[IsSkipped] BIT,
[ContactId] VARCHAR(50))
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],
[IsSkipped],
[ContactId])
SELECT
[SRC].[CaseCode],
[SRC].[ContactType],
[SRC].[Seq],
[SRC].[IsPrompt],
[SRC].[IsSkipped],
[SRC].[ContactId]
FROM OPENXML(@iSL, N'Contact/ContactField')
WITH ([CaseCode] VARCHAR(20) '../@CaseCode',
[ContactType] VARCHAR(20) '@Type',
[Seq] INT '@Seq',
[IsPrompt] BIT '@IsPrompt',
[IsSkipped] BIT '@IsSkipped',
[ContactId] VARCHAR(50) '@ContactId') [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],
0 AS [IsSkipped]
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],
0 AS [IsSkipped]
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],
CASE
WHEN
EXISTS (SELECT TOP 1 1 FROM [CaseContacts] WHERE [CASECODE] = [SRC].[CaseCode] AND [CONTYPE] = [SRC].[ContactType] AND [CONNUM] = [SRC].[Seq] AND [NAMECODE]='N/A')
THEN
1
ELSE 0
END AS [IsSkipped],
[SRC].[ContactId] AS [Id]
FROM
@SEARCHES [SRC]
END
GO
IF EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_CheckCaseImportUDF'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CheckCaseImportUDF]
END
GO
CREATE PROCEDURE [dbo].[KAAS_CheckCaseImportUDF]
(
@FILEPREFIX VARCHAR(10)
,@FIELDNAME VARCHAR(100)
,@WTCODE VARCHAR(10)
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_CheckCaseImportUDF]
* Copied From : [dbo].[Ky_NETCheckCaseImportUDF]
* Description: Check for Case Plan UDF Fields
* Modification History:
*
* 2024-08-12 Balamurugan.C Created
*********************************************************************************************/
BEGIN
SET NOCOUNT ON
--1 ADD
--2 ADD TO PLAN
--3 UPDATE
--4 IGNORE
IF EXISTS(SELECT TOP 1 1 FROM SystemUserDefinedFields WHERE ISNULL(RTRIM(FILEPREFIX),'')=ISNULL(RTRIM(@FILEPREFIX),'') AND ISNULL(RTRIM([FIELDNAME]),'')=ISNULL(RTRIM(@FIELDNAME),''))
BEGIN
IF EXISTS(SELECT TOP 1 1 FROM Udftemplatesworktypes WHERE ISNULL(RTRIM(UDFILE),'')=ISNULL(RTRIM(@FILEPREFIX),'') AND ISNULL(RTRIM(UDWKCODE),'')=ISNULL(RTRIM(@WTCODE),'') AND ISNULL(RTRIM(UDUVCODE),'')=ISNULL(RTRIM(@FIELDNAME),''))
BEGIN
SELECT
ISNULL(RTRIM(ACTUALNAME),'') AS ACTUALNAME
,ISNULL(RTRIM(CALCINITIALVALUE),'') AS CALCINITIALVALUE
,ISNULL(RTRIM(COMMON),0) AS COMMON
,ISNULL(RTRIM(DECMIAL),0) AS DECMIAL
,ISNULL(RTRIM([ENABLED]),'') AS [ENABLED]
,ISNULL(RTRIM(FIELDNAME),'') AS FIELDNAME
,ISNULL(RTRIM(FILEPREFIX),'') AS FILEPREFIX
,ISNULL(RTRIM(FONT),'') AS FONT
,ISNULL(RTRIM(FORMAT),'') AS FORMAT
,ISNULL(RTRIM(HEIGHT),0) AS HEIGHT
,ISNULL(RTRIM(HIGH ),0) AS HIGH
,ISNULL(RTRIM(INITIALVALUE),'') AS INITIALVALUE
,ISNULL(RTRIM(ISLOCK),'') AS ISLOCK
,ISNULL(RTRIM([LEFT]),0) AS [LEFT]
,ISNULL(RTRIM([LENGTH]),0) AS [LENGTH]
,ISNULL(RTRIM(LOW),0) AS LOW
,ISNULL(RTRIM(MULTILINE),'') AS MULTILINE
,ISNULL(RTRIM(OVERRIDEINITIALVALUE ),'') AS OVERRIDEINITIALVALUE
,ISNULL(RTRIM(PROMPT),'') AS PROMPT
,ISNULL(RTRIM([READONLY] ),'') AS [READONLY]
,ISNULL(RTRIM([REQUIRED]),'') AS [REQUIRED]
,ISNULL(RTRIM(SYSTEMFIELD),'') AS SYSTEMFIELD
,ISNULL(RTRIM([TOP]),0) AS [TOP]
,ISNULL(RTRIM([TYPE]),'') AS [TYPE]
,ISNULL(RTRIM(UDFCategory),'') AS UDFCategory
,ISNULL(RTRIM([VALIDATION]),'') AS [VALIDATION]
,ISNULL(RTRIM(VISIBLE),'') AS VISIBLE
,ISNULL(RTRIM(WIDTH),0) AS WIDTH
FROM SystemUserDefinedFields UDF WHERE ISNULL(RTRIM(FILEPREFIX),'')=ISNULL(RTRIM(@FILEPREFIX),'') AND ISNULL(RTRIM([FIELDNAME]),'')=ISNULL(RTRIM(@FIELDNAME),'')
END
ELSE
BEGIN
SELECT '2'
END
END
ELSE
BEGIN
SELECT '1'
END
SET NOCOUNT OFF
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 *
* 2024-09-18 Sadiq Added one more Variable ClientId to be *
* returned (18918) *
* *
***********************************************************************************/
BEGIN
DECLARE @SEARCHES TABLE
([Id] INT IDENTITY(1, 1),
[ClientCode] VARCHAR(20),
[Code] VARCHAR(50),
[Seq] INT,
[IsPrompt] BIT,
[ClientId] VARCHAR(50))
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],
[ClientId])
SELECT
[SRC].[ClientCode],
[SRC].[Code],
[SRC].[Seq],
[SRC].[IsPrompt],
[SRC].[ClientId]
FROM OPENXML(@iSL, N'Client/ClientField')
WITH ([ClientCode] VARCHAR(20) '../@ClientCode',
[Code] VARCHAR(20) '@Code',
[Seq] INT '@Seq',
[IsPrompt] BIT '@IsPrompt',
[ClientId] VARCHAR(50) '@ClientId') [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 EXISTS (
SELECT 1
FROM [IgnoreClientContacts]
WHERE [ClientCode] = [SRC].[ClientCode]
)
THEN 0 -- If Code is in IgnoreClientContacts, set IsPrompt to 0
WHEN NOT EXISTS (
SELECT TOP 1 1
FROM [ClientContacts]
WHERE [CLCODE] = [SRC].[ClientCode]
AND [CLNUMCONTACT] = [SRC].[Seq]
)
THEN 1
ELSE 0
END AS [IsPrompt],
[SRC].[ClientId] AS [Id]
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 *
* 2024-12-03 Sadiq Added FeeType also in the SP(19194) *
*******************************************************************************************************/
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 = 'FeeTypes')
BEGIN
SET @Qry = '
BEGIN
IF EXISTS(SELECT TOP 1 1 FROM FeeTypes WHERE Description = '''' + @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_CheckDraftInvoicePresentForMatter'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CheckDraftInvoicePresentForMatter]
END
GO
CREATE PROCEDURE [dbo].[KAAS_CheckDraftInvoicePresentForMatter]
(
@MatterCode VARCHAR(20),
@DraftNo INT
)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CheckDraftInvoicePresentForMatter] *
* Description: To check whether any current / release draft invoice present for specified matter *
* *
* Modification History: *
* 2024-06-10 Balamurugan C Created *
* 2024-06-20 Balamurugan.C Added logic to check open invoice and approved open invoice *
* 2024-06-21 Balamurugan.C Added logic to check same draft invoice for open invoice check *
*******************************************************************************************************/
BEGIN
DECLARE @IsDraftInvoicePresent VARCHAR(1) = 'N';
DECLARE @ApprovedOpenInovice INT = 0;
DECLARE @OpenInvoiceNo INT = 0;
IF EXISTS(SELECT TOP 1 1
FROM [dbo].[BillHeader] [BH]
WHERE [BH].[MATTER] = @MatterCode
AND [BH].[DRAFTNO] <> @DraftNo
AND ([BH].[BILLNO] = 0 OR [BH].[BILLNO] IS NULL))
BEGIN
SET @IsDraftInvoicePresent = 'Y';
END
SET @ApprovedOpenInovice = (SELECT ISNULL([MAT].[OpenInvoiceNo], 0)
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @MatterCode)
SET @OpenInvoiceNo = (SELECT COUNT(1) AS [OpenInoviceCount]
FROM [dbo].[BillHeader] [BH]
WHERE ISNULL([BH].[OPENINVOICE], '') = 'Y'
AND [BH].[DRAFTNO] <> @DraftNo
AND ISNULL([BH].[BILLNO], 0) = 0
AND [BH].[MATTER] = @MatterCode)
SELECT @IsDraftInvoicePresent 'MultipleDraftInvoice',
@ApprovedOpenInovice 'ApprovedOpenInvoice',
@OpenInvoiceNo 'OpenInvoiceNo'
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_CheckImportCasePlanData'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CheckImportCasePlanData]
END
GO
CREATE PROCEDURE [dbo].[KAAS_CheckImportCasePlanData]
(
@Table VARCHAR(50),
@Code VARCHAR(10),
@NAME VARCHAR(MAX),
@WKCODE VARCHAR(10)
)
AS
/*************************************************************************************************************
* This procedure used for case plan import - Before importing it will check data already exists *
* *
* Stored Procedure Name : [dbo].[KAAS_CheckImportCasePlanData] *
* Copied from : [dbo].[Ky_NETCheckImportCasePlanData] *
* *
* Modification History : *
* 2024-08-08 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
-- 1-ADD
-- 2-UPDATE
-- 3-IGNORE
SET NOCOUNT ON
IF UPPER(@Table) ='TEMPLATE'
IF EXISTS (SELECT TOP 1 1 FROM Templates WHERE ISNULL(RTRIM(WKCODE),'')=@Code)
BEGIN
SELECT
ISNULL(RTRIM(RTRIM(TEM.WKTYPE)),'') AS WKTYPE
,ISNULL(RTRIM(TEM.WKCODE),'') AS WKCODE
,ISNULL(RTRIM(TEM.WKDESC),'') AS WKDESC
,ISNULL(RTRIM(TEM.WKACTION),'') AS WKACTION
,ISNULL(RTRIM(TEM.WKACCSRN),'') AS WKACCSRN
,ISNULL(RTRIM(TEM.WKSRNLIT),'') AS WKSRNLIT
,ISNULL(RTRIM(TEM.WKSRNCON),'') AS WKSRNCON
,ISNULL(RTRIM(TEM.WKSRNPRB),'') AS WKSRNPRB
,ISNULL(RTRIM(TEM.WKSRNDRC),'') AS WKSRNDRC
,ISNULL(RTRIM(TEM.WKSRNGEN),'') AS WKSRNGEN
,ISNULL(RTRIM(TEM.WKPATH),'') AS WKPATH
,ISNULL(RTRIM(TEM.Dept),'') AS Dept
,ISNULL(RTRIM(TEM.SourceMatter),'') AS SourceMatter
FROM Templates TEM WHERE ISNULL(RTRIM(WKCODE),'')=@Code
END
ELSE
BEGIN
SELECT 1
END
ELSE IF UPPER(@Table)='TEMPLATEACTION'
IF EXISTS (SELECT TOP 1 1 FROM TemplateActions WHERE ISNULL(RTRIM(ACTIONCODE),'')=@Code)
BEGIN
IF EXISTS (SELECT TOP 1 1 FROM ActionWorkTypes WHERE ISNULL(RTRIM(WORKTYPE),'')=@WKCODE AND ISNULL(RTRIM(ACTIONCODE),'')=@Code)
SELECT
ISNULL(RTRIM(TA.ACTIONCODE),'') AS ACTIONCODE --0
,ISNULL(RTRIM(TA.ACTIONCATEGORY),'')AS ACTIONCATEGORY --1
,ISNULL(RTRIM(TA.ACTTYPE),'') AS ACTTYPE --2
,ISNULL(RTRIM(TA.ASSIGNHANDLER),'') AS SASSIGNHANDLER --3
,ISNULL(RTRIM(TA.ASSIGNTEAM ),'') AS ASSIGNTEAM --4
,ISNULL(RTRIM(TA.Arrangement),'') AS Arrangement --5
,ISNULL(RTRIM(TA.AssignActionTo ),'') AS AssignActionTo--6
,ISNULL(RTRIM(TA.Authby ),'') AS Authby --7
,ISNULL(RTRIM(TA.AuthorisationRequired),'')AS AuthorisationRequired --8
,ISNULL(RTRIM(TA.AutoPopulate),'') AS AutoPopulate --9
,ISNULL(RTRIM(TA.BILLABLE),'')AS BILLABLE --10
,ISNULL(RTRIM(TA.BILLDESCRIPTION),'') AS BILLDESCRIPTION--11
,ISNULL(RTRIM(TA.ChargeInterest),'') AS ChargeInterest --12
,ISNULL(TA.ChargeValue,0) AS ChargeValue --13
,ISNULL(RTRIM(TA.ConfirmByPW),'') AS ConfirmByPW --14
,ISNULL(RTRIM(TA.[DESC]),'') AS [DESC] --15
,ISNULL(RTRIM(TA.[Description]),'') AS [Description]--16
,ISNULL(RTRIM(TA.EMAIL ),'') AS EMAIL --17
,ISNULL(RTRIM(TA.HIGHLIGHTED ),'')AS HIGHLIGHTED --18
,ISNULL(RTRIM(TA.MILESTONETYPE ),'') AS MILESTONETYPE--19
,ISNULL(RTRIM(TA.NEXTACTIONOPTIONAL),'') AS NEXTACTIONOPTIONAL --20
,ISNULL(RTRIM(TA.[PRIORITY]),'') AS [PRIORITY]--21
,ISNULL(RTRIM(TA.PROCESSTYPE ),'') AS PROCESSTYPE--22
,ISNULL(RTRIM(TA.PUBLISHER),'')AS PUBLISHER --23
,ISNULL(RTRIM(TA.RequiredAction),'') AS RequiredAction --24
,ISNULL(RTRIM(TA.[STATUS]),'') AS [STATUS] --25
,ISNULL(RTRIM(TA.UPDATEFIELD),'')AS UPDATEFIELD--26
,ISNULL(RTRIM(TA.UPDATEVALUE),'') AS UPDATEVALUE --27
,ISNULL(RTRIM(TA.WKTCODE),'') AS WKTCODE --28
,ISNULL(RTRIM(TA.AssignTeamActionTo),'') AS AssignTeamActionTo--29
,ISNULL(flag,0) as Flag
FROM
TemplateActions TA
WHERE
ISNULL(RTRIM(ACTIONCODE),'')=@Code
ELSE
SELECT 2
END
ELSE
BEGIN
SELECT 1
END
ELSE IF UPPER(@Table)='TEMPLATEDOCUMENT'
IF EXISTS (SELECT TOP 1 1 FROM TemplateDocuments TD INNER JOIN TemplateActionDcouments TAD ON TD.CODE =TAD.DOCUMENT WHERE ISNULL(RTRIM(CODE),'')=@Code AND ISNULL (RTRIM(TAD.ACTION),'')=@WKCODE)
BEGIN
SELECT
ISNULL(RTRIM(TD.CODE),'') AS CODE
,ISNULL(RTRIM(TD.DICTATION),'') AS DICTATION
,ISNULL(RTRIM(TD.DOCCLASS),'') AS DOCCLASS
,ISNULL(RTRIM(TD.EndToken),'') AS EndToken
,ISNULL(RTRIM(TD.FILEPATH),'') AS FILEPATH
,ISNULL(RTRIM(TD.NAME),'') AS NAME
,ISNULL(RTRIM(TD.OPENDURINGDICTATION),'') AS OPENDURINGDICTATION
,ISNULL(RTRIM(TD.OverWrite),'') AS OverWrite
,ISNULL(RTRIM(TD.STORE),'') AS STORE
,ISNULL(RTRIM(TD.StartToken),'') AS StartToken
,ISNULL(RTRIM(TD.TYPE),'') AS TYPE
FROM
TemplateDocuments TD
INNER JOIN
TemplateActionDcouments TAD
ON
TD.CODE =TAD.DOCUMENT
WHERE
ISNULL(RTRIM(CODE),'')=@Code
AND
ISNULL (RTRIM(TAD.ACTION),'')=@WKCODE
END
ELSE
BEGIN
SELECT 1
END
SET NOCOUNT OFF
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 EXISTS (SELECT TOP 1 1
FROM [sys].[objects] AS [SO]
WHERE [SO].[name] = N'KAAS_CheckUnpostableEntries2'
AND [SO].[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CheckUnpostableEntries2]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CheckUnpostableEntries2]
(@WDNTEID NTEID READONLY)
AS
/*************************************************************************************************************
* *
* [dbo].[KAAS_CheckUnpostableEntries2] *
* *
* Flags unpostable entries as "do not post" *
* *
* Modification History *
* 2024-06-06 Revathy.D Copied from ky_NETCheckUnpostableEntries2 *
* *
*************************************************************************************************************/
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]
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 OBJECT_ID(N'KAAS_ClientOtherDetailsFetchEditDialog', N'P') IS NOT NULL
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
2024-10-18 Ponni M Isexist condition check changed
*****************************************************************************/
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(12), 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
* 2021-06-30 PINO https://dev.azure.com/keyhouse365/Framework/_workitems/edit/12376
* 2021-10-04 PINO Added functionality to round bills
*
**************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @ROUNDTO DECIMAL(11,8)
SELECT @ROUNDTO = [BH].[RoundTo]
FROM [dbo].[BillHeader] [BH]
WHERE [BH].[DRAFTNO] = @DRAFTNO
SET @ROUNDTO = ISNULL(@ROUNDTO, 0.01)
SET @ROUNDTO = CONVERT(DECIMAL(11, 8), 1) / @ROUNDTO
DECLARE @VATS TABLE
([VATCODE] CHAR(1) NOT NULL PRIMARY KEY,
[VATRATE] DECIMAL(23, 7) NOT NULL,
[NETTOTAL] DECIMAL(23, 7) NOT NULL,
[VATTOTAL] DECIMAL(23, 7) NOT NULL)
INSERT
INTO @VATS
([VATCODE],
[VATRATE],
[NETTOTAL],
[VATTOTAL])
SELECT RTRIM(ISNULL([VC].[Code], '''')) AS [VATCode],
CONVERT(DECIMAL(23, 7), ISNULL([VC].[Rate], 0)) AS [VATRate],
ISNULL(SUM(ISNULL([BD].[NET], 0)), 0) AS [NET],
(ROUND( ( CONVERT(DECIMAL(23, 7),
1)
+ CONVERT(DECIMAL(23, 7),
ISNULL([VC].[Rate],
0))
/ CONVERT(DECIMAL(23, 7),
100))
* ISNULL(SUM(ISNULL([BD].[NET],
0)),
0),
2))
- ISNULL(SUM(ISNULL([BD].[NET], 0)), 0) AS [VAT]
FROM [dbo].[BillDetails] [BD]
LEFT OUTER JOIN [dbo].[VATCodes] [VC]
ON [VC].[Code] = [BD].[VATCode]
WHERE [BD].[DRAFTNO] = @DRAFTNO
GROUP BY RTRIM(ISNULL([VC].[Code], '''')),
CONVERT(DECIMAL(23, 7), ISNULL([VC].[Rate], 0))
IF @ROUNDTO <> 0.01
BEGIN
--We are going to modify the TOTAL VAT value so that when it''s added to the TOTAL NET value you get the figure
--closest to the nearest rounding value (e.g. 5 cent). Example: if the NET VALUE is 487.80 and the VAT is 23%
--the VAT for that amount would be 112.19, totaling to 599.99 - if the value is to be rounded to the nearest
--0.05, it will add a cent to one VAT line creating a new VAT total of 112.20 and a grand total of the desired 600
--This calculation will automatically apply this to one of the detail lines
--HOWEVER.... We don''t want it to pick a Zero VAT line and add 1 cent to it. Not that it really matters but it will
-- just "look wrong".
DECLARE @ZEROVAT DECIMAL(23, 7)
DECLARE @FIRSTNONZEROVATCODE CHAR(1)
DECLARE @ROUNDEDTOTAL DECIMAL(23, 7)
DECLARE @ROUNDEDTOTAL2 DECIMAL(23, 7)
--So let''s first of all find out what the total will be after it''s rounded
SELECT @ROUNDEDTOTAL = SUM([NETTOTAL] + [VATTOTAL]) FROM @VATS
SET @ROUNDEDTOTAL = ROUND(ROUND(@ROUNDTO * ISNULL(@ROUNDEDTOTAL, 0), 0) / @ROUNDTO, 2)
--And let''s see whether the total of Zero VAT lines does NOT add up to its nearest rounded value, and by how much
SELECT @ZEROVAT = ROUND(ROUND(@ROUNDTO * SUM([ZVT].[NETTOTAL]), 0) / @ROUNDTO, 2) - SUM([ZVT].[NETTOTAL])
FROM @VATS [ZVT]
WHERE [ZVT].[VATRATE] = 0
SET @ZEROVAT = ISNULL(@ZEROVAT, 0)
--Let''s get the first NON Zero VAT code in this bill
SELECT TOP 1 @FIRSTNONZEROVATCODE = [VATS].[VATCODE]
FROM @VATS [VATS]
WHERE [VATS].[VATRATE] <> 0
--Round all totals so that the grand total is nicely rounded
UPDATE @VATS
SET [VATTOTAL] = ROUND(ROUND(@ROUNDTO * ([NETTOTAL] + [VATTOTAL]), 0) / @ROUNDTO, 2) - [NETTOTAL]
WHERE [VATRATE] <> 0
--Now if the total Zero VAT lines were not rounded we can''t add 1 cent of VAT to one of them, it will just look wrong
--so let''s add that discrepancy to the first Non Zero VAT TOTAL
UPDATE @VATS
SET [VATTOTAL] = [VATTOTAL] + @ZEROVAT
WHERE [VATCODE] = @FIRSTNONZEROVATCODE
--Finally, it''s possible that the new GRAND TOTAL is actually different from the originally rounded GRAND TOTAL
--So if that happens let''s correct that first non zero VAT total again to its final value
SELECT @ROUNDEDTOTAL2 = SUM([NETTOTAL] + [VATTOTAL]) FROM @VATS
SET @ROUNDEDTOTAL2 = ROUND(ROUND(@ROUNDTO * ISNULL(@ROUNDEDTOTAL2, 0), 0) / @ROUNDTO, 2)
IF @ROUNDEDTOTAL2 <> @ROUNDEDTOTAL
BEGIN
UPDATE @VATS
SET [VATTOTAL] = [VATTOTAL] + @ROUNDEDTOTAL - @ROUNDEDTOTAL2
WHERE [VATCODE] = @FIRSTNONZEROVATCODE
END
END
--SELECT *
-- FROM @VATS
-- 1. Corrects the Bill Detail Line VAT Values --with correction 2021-06-30
UPDATE [BDET]
SET [BDET].[VATValue] = ROUND(CASE WHEN [BDN].[NETTOTAL] = 0
THEN 0
ELSE [BDN].[VATTOTAL] * CONVERT(DECIMAL(23, 7), CONVERT(DECIMAL(23, 7), [BDN2].[TOTALNET]) / CONVERT(DECIMAL(23, 7), [BDN].[NETTOTAL])) END, 2)
- ROUND(CASE WHEN [BDN].[NETTOTAL] = 0
THEN 0
ELSE [BDN].[VATTOTAL] * CONVERT(DECIMAL(23, 7), CONVERT(DECIMAL(23, 7), [BDN1].[TOTALNETBEFORE]) / CONVERT(DECIMAL(23, 7), [BDN].[NETTOTAL])) END, 2),
[BDET].[VATRate] = CONVERT(DECIMAL(18, 2), ROUND([BDN].[VATRATE] * CONVERT(DECIMAL(23, 7), 100), 2))
FROM (SELECT [BD].[DRAFTNO],
[BD].[KeyID],
[BD].[LINENO],
RTRIM(ISNULL([VC].[VATCODE], '''')) AS [VATCode],
CONVERT(DECIMAL(23, 7), ISNULL([VC].[VATRATE], 0)) / CONVERT(DECIMAL(23, 7), 100) AS [VATRate],
[VC].[VATTOTAL] AS [VATTOTAL],
[VC].[NETTOTAL] AS [NETTOTAL]
FROM [dbo].[BillDetails] [BD]
INNER JOIN @VATS [VC]
ON [VC].[VATCODE] = [BD].[VATCode]
WHERE [BD].[DRAFTNO] = @DRAFTNO) [BDN]
CROSS APPLY (SELECT ISNULL(SUM([BD1].[NET]), 0) AS [TOTALNETBEFORE]
FROM [dbo].[BillDetails] [BD1]
WHERE [BD1].[DRAFTNO] = [BDN].[DRAFTNO]
AND [BD1].[VATCODE] = [BDN].[VATCODE]
AND [BD1].[LINENO] < [BDN].[LINENO]) [BDN1]
CROSS APPLY (SELECT ISNULL(SUM([BD2].[NET]), 0) AS [TOTALNET]
FROM [dbo].[BillDetails] [BD2]
WHERE [BD2].[DRAFTNO] = [BDN].[DRAFTNO]
AND [BD2].[VATCODE] = [BDN].[VATCODE]
AND [BD2].[LINENO] <= [BDN].[LINENO]) [BDN2]
INNER JOIN [dbo].[BillDetails] [BDET]
ON [BDET].[DRAFTNO] = [BDN].[DRAFTNO]
AND [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 [ky_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 [ky_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
--SELECT *
-- FROM [dbo].[BillDetails] [BD]
-- WHERE [BD].[DRAFTNO] = @DRAFTNO
SET NOCOUNT OFF
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 Ginnane 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
* 2024-06-13 John Ginnane #18088 - Fixed likely truncation error
***************************************************************************/
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],
LEFT([BIH].[ADDRESSEE], 150),
[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 *
* 2024-11-14 Aakif #19116 - While inserting in DiaryAttachments should be 'Captured' for *
* 'Capture' and 'Case' if none is provided *
*******************************************************************************************************/
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
-- #19116 - Source should be Captured Or Case
IF(ISNULL(@strSource, '') = '')
BEGIN
SET @strSource = 'Case'
END
ELSE IF(@strSource = 'Capture')
BEGIN
SET @strSource = 'Captured'
END
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 OBJECT_ID(N'KAAS_CreateDiaryAttachmentXML', N'P') IS NOT NULL
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) *
* 2024-10-18 Ponni M Isexist condition check changed and varchar(11) length increased to 12 *
* 2024-11-14 Aakif #19116 - While inserting in DiaryAttachments should be 'Captured' for *
* 'Capture' and 'Case' if none is provided *
*************************************************************************************************************/
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
-- #19116 - Source should be Captured Or Case
IF(ISNULL(@strSource, '') = '')
BEGIN
SET @strSource = 'Case'
END
ELSE IF(@strSource = 'Capture')
BEGIN
SET @strSource = 'Captured'
END
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(12), 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 *
* 2024-12-03 Sadiq Handled the Property Name of NewActionId *
*******************************************************************************************************/
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 OBJECT_ID(N'KAAS_CreateSUFDocumentXRef',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CreateSUFDocumentXRef]
GO
CREATE PROCEDURE [dbo].[KAAS_CreateSUFDocumentXRef]
(
@Prefix VARCHAR(5),
@FullName VARCHAR(MAX),
@Type VARCHAR(12),
@Aggregate VARCHAR(50),
@TemplateCode VARCHAR(10)
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_CreateSUFDocumentXRef]
* Copied From : [dbo].[ky_NETSPCreateSUFDocumentXRef]
* Description: Resets cross references between a Doc Assist Code and the Template (Precedent) passed in
* Modification History:
*
* 2024-08-16 Balamurugan.C Created
*********************************************************************************************/
BEGIN
SET NOCOUNT ON
IF ISNULL(@Prefix, '') = ''
RETURN
IF ISNULL(@FullName, '') = ''
RETURN
IF ISNULL(@TemplateCode, '') = ''
RETURN
IF @Prefix <> 'sys:'
BEGIN
IF LEN(@FullName) > 30
BEGIN
RETURN
END
END
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[TemplateDocuments] [TDC]
WHERE [TDC].[CODE] = @TemplateCode)
RETURN
IF @Prefix = 'sys:'
BEGIN
INSERT
INTO [dbo].[SUFXRef]
([Prefix],
[FieldName],
[FullName])
SELECT [NEW].[Prefix],
[NEW].[FieldName],
[NEW].[FullName]
FROM (SELECT @Prefix AS [Prefix],
'' AS [FieldName],
@FullName AS [FullName]) [NEW]
LEFT OUTER JOIN [dbo].[SUFXRef] [SXR]
ON [SXR].[Prefix] = [NEW].[PREFIX]
AND [SXR].[FullName] = [NEW].[FullName]
WHERE [SXR].[id] IS NULL
INSERT
INTO [dbo].[SUFDocumentXRef]
([SUFXRefID],
[TemplateCode])
SELECT [SXR].[id],
@TemplateCode
FROM [dbo].[SUFXRef] [SXR]
LEFT OUTER JOIN [dbo].[SUFDocumentXRef] [SDXR]
ON [SDXR].[SUFXRefID] = [SXR].[id]
AND [SDXR].[TemplateCode] = @TemplateCode
WHERE [SXR].[Prefix] = @Prefix
AND [SXR].[FullName] = @FullName
AND [SDXR].[id] IS NULL
END
ELSE
BEGIN
INSERT
INTO [dbo].[SUFXRef]
([Prefix],
[FieldName],
[FullName])
SELECT [NEW].[Prefix],
[NEW].[FieldName],
[NEW].[FullName]
FROM (SELECT @Prefix AS [Prefix],
CONVERT(VARCHAR(30), @FullName) AS [FieldName],
CONVERT(VARCHAR(30), @FullName) AS [FullName]) [NEW]
LEFT OUTER JOIN [dbo].[SUFXRef] [SXR]
ON [SXR].[Prefix] = [NEW].[PREFIX]
AND [SXR].[FieldName] = [NEW].[FieldName]
WHERE [SXR].[id] IS NULL
INSERT
INTO [dbo].[SUFDocumentXRef]
([SUFXRefID],
[TemplateCode])
SELECT [SXR].[id],
@TemplateCode
FROM [dbo].[SUFXRef] [SXR]
LEFT OUTER JOIN [dbo].[SUFDocumentXRef] [SDXR]
ON [SDXR].[SUFXRefID] = [SXR].[id]
AND [SDXR].[TemplateCode] = @TemplateCode
WHERE [SXR].[Prefix] = @Prefix
AND [SXR].[FullName] = CONVERT(VARCHAR(30), @FullName)
AND [SDXR].[id] IS NULL
IF (@Prefix = 'can:') OR (@Prefix = 'aud:') OR (@Prefix = 'lcn:')
BEGIN
-- We're storing a N/A "Type" against 'lcn:' entries here so progressing to Aggregates later will be easier
INSERT
INTO [dbo].[SUFXRefByCANType]
([SUFXRefID],
[TYPE])
SELECT [SXR].[id],
@Type
FROM [dbo].[SUFXRef] [SXR]
LEFT OUTER JOIN [dbo].[SUFXRefByCANType] [SXRBCT]
ON [SXRBCT].[SUFXRefID] = [SXR].[id]
AND [SXRBCT].[TYPE] = @Type
WHERE [SXR].[Prefix] = @Prefix
AND [SXR].[FullName] = CONVERT(VARCHAR(30), @FullName)
AND [SXRBCT].[id] IS NULL
INSERT
INTO [dbo].[SUFDocumentXRefByCANType]
([SUFXRefByCANTypeID],
[TemplateCode])
SELECT [SXRBCT].[id],
@TemplateCode
FROM [dbo].[SUFXRef] [SXR]
INNER JOIN [dbo].[SUFXRefByCANType] [SXRBCT]
LEFT OUTER JOIN [dbo].[SUFDocumentXRefByCANType] [SDXRBCT]
ON [SDXRBCT].[SUFXRefByCanTypeID] = [SXRBCT].[id]
AND [SDXRBCT].[TemplateCode] = @TemplateCode
ON [SXRBCT].[SUFXRefID] = [SXR].[id]
AND [SXRBCT].[TYPE] = @Type
WHERE [SXR].[Prefix] = @Prefix
AND [SXR].[FullName] = CONVERT(VARCHAR(30), @FullName)
AND [SDXRBCT].[id] IS NULL
-- We're storing a N/A "Type" against 'lcn:' entries here so progressing to Aggregates later will be easier
INSERT
INTO [dbo].[SUFXRefByCANTypeAgg]
([SUFXRefID],
[SUFXRefByCANTypeID],
[TYPE],
[Aggregate])
SELECT [SXR].[id],
[SXRBCT].[id],
@Type,
@Aggregate
FROM [dbo].[SUFXRef] [SXR]
INNER JOIN [dbo].[SUFXRefByCANType] [SXRBCT]
LEFT OUTER JOIN [dbo].[SUFXRefByCANTypeAgg] [SXRBTA]
ON [SXRBTA].[SUFXRefID] = [SXRBCT].[SUFXRefID]
AND [SXRBTA].[SUFXRefByCANTypeID] = [SXRBCT].[id]
AND [SXRBTA].[TYPE] = [SXRBCT].[TYPE]
AND [SXRBTA].[Aggregate] = @Aggregate
ON [SXRBCT].[SUFXRefID] = [SXR].[id]
AND [SXRBCT].[TYPE] = @Type
WHERE [SXR].[Prefix] = @Prefix
AND [SXR].[FullName] = CONVERT(VARCHAR(30), @FullName)
AND [SXRBTA].[id] IS NULL
INSERT
INTO [dbo].[SUFDocumentXRefByCANTypeAgg]
([SUFXRefByCANTypeAggID],
[TemplateCode])
SELECT [SXRBCTA].[id],
@TemplateCode
FROM [dbo].[SUFXRef] [SXR]
INNER JOIN [dbo].[SUFXRefByCANType] [SXRBCT]
INNER JOIN [dbo].[SUFXRefByCANTypeAgg] [SXRBCTA]
LEFT OUTER JOIN [dbo].[SUFDocumentXRefByCANTypeAgg] [SDXRBCTA]
ON [SDXRBCTA].[SUFXRefByCanTypeAggID] = [SXRBCTA].[id]
AND [SDXRBCTA].[TemplateCode] = @TemplateCode
ON [SXRBCTA].[SUFXRefByCanTypeID] = [SXRBCT].[id]
AND [SXRBCTA].[Aggregate] = @Aggregate
ON [SXRBCT].[SUFXRefID] = [SXR].[id]
AND [SXRBCT].[TYPE] = @Type
WHERE [SXR].[Prefix] = @Prefix
AND [SXR].[FullName] = CONVERT(VARCHAR(30), @FullName)
AND [SDXRBCTA].[id] IS NULL
END
END
SET NOCOUNT OFF
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 OBJECT_ID(N'KAAS_DashboardCaseAlert', N'P') IS NOT NULL
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
* Ponni M 2024-10-18 - Isexist condition check changed
*******************************************************************************************************************************************************/
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 *
* 2024-08-19 Ghayathri SV Modified - Added Alias name *
*******************************************************************************************************/
BEGIN
SELECT DISTINCT w.widgetId AS WidgetId ,
w.widgetName AS WidgetName ,
w.description AS Description ,
w.templateId AS 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 OBJECT_ID(N'KAAS_DeleteAttachments2', N'P') IS NOT NULL
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
* 2024-10-18 Ponni M Isexist condition check changed
*****************************************************************************/
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(12),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_DeleteWorkFlowEmail'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DeleteWorkFlowEmail]
END
GO
CREATE PROCEDURE [dbo].[KAAS_DeleteWorkFlowEmail]
(@RecordID INT)
AS
/*************************************************************************************************************
Description: This procedure is used Delete the information for work flow Action Page Email Tab. *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteWorkFlowEmail] *
* Copied from : [dbo].[ky_NETDeleteWorkFlowEmail] *
* *
* Modification History : *
* 2024-07-22 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DELETE FROM [dbo].[TemplateEmails]
WHERE [RECORDID] = @RecordID
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 EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_DependentActionInsert'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DependentActionInsert]
END
GO
CREATE PROCEDURE [dbo].[KAAS_DependentActionInsert]
(
@CasePlanDependentActionTypeTbl CasePlanDependentActionType READONLY
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_DependentActionInsert]
* Copied From : [dbo].[ky_NETDependentActionInsert]
* Description: Import Dependent Action
* Modification History:
*
* 2024-08-12 Balamurugan.C Created
*********************************************************************************************/
BEGIN
UPDATE [TDA]
SET [TDA].[TimeFrame] = [CDA].[TimeFrame],
[TDA].[TimeFramAmount] = [CDA].[TimeFramAmount] ,
[TDA].[Status] =ISNULL([CDA].[Status],'')
FROM [dbo].[TemplateDependentActions] [TDA]
JOIN @CasePlanDependentActionTypeTbl [CDA]
ON ISNULL(RTRIM([CDA].[ActionCode]),'') = ISNULL(RTRIM([TDA].[ActionCode]),'')
AND ISNULL(RTRIM([CDA].[DependentActionCode]),'') = ISNULL(RTRIM([TDA].[DependentActionCode]),'')
INSERT INTO [dbo].[TemplateDependentActions]
( [ActionCode],
[DependentActionCode],
[TimeFrame],
[TimeFramAmount],
[Status]
)
SELECT [CDA].[ActionCode],
[CDA].[DependentActionCode],
[CDA].[TimeFrame],
[CDA].[TimeFramAmount],
[CDA].[Status]
FROM @CasePlanDependentActionTypeTbl [CDA]
LEFT JOIN [dbo].[TemplateDependentActions] [TDA]
ON ISNULL(RTRIM([TDA].[ActionCode]),'') = ISNULL(RTRIM([CDA].[ActionCode]),'')
AND ISNULL(RTRIM([TDA].[DependentActionCode]),'') = ISNULL(RTRIM([CDA].[DependentActionCode]),'')
WHERE [TDA].[DependentActionCode] IS NULL
END
GO
IF EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_DocumentAssistTree'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DocumentAssistTree]
END
GO
CREATE PROCEDURE [dbo].[KAAS_DocumentAssistTree]
(@Common TINYINT=0)
AS
/*************************************************************************************************************
* Load the Doc Assist tree *
* This procedure outputs first a list of entries from [dbo].[SystemFiles] to populate the parent level of *
* the tree (CID 0). This is then followed by the [dbo].[SystemUserDefinedFields] entries cross referenced *
* by CID to the "parent" nodes at the top. This is how the DocAssist program reconstructs the tree *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* *
* Stored Procedure Name : [dbo].[KAAS_DocumentAssistTree] *
* Copied from : [dbo].[ky_NETDocumentAssistTree] *
* *
* Modification History : *
* 2024-07-25 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
-- work table for the Parent level rows
DECLARE @CID TABLE
([PID] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[FILEPREFIX] VARCHAR(5) NOT NULL,
INDEX [IDX_FILEPREFIX] NONCLUSTERED ([FILEPREFIX], [PID]))
INSERT
INTO @CID
([FILEPREFIX])
SELECT [SF].[PREFIX]
FROM [dbo].[SystemFiles] [SF]
ORDER BY [SF].[PREFIX]
-- work table for the output
DECLARE @DAST TABLE
([PID] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[CID] INT NOT NULL,
[NAME] VARCHAR(120) NOT NULL,
[FILEPREFIX] VARCHAR(5) NOT NULL,
[FIELDNAME] VARCHAR(30) NOT NULL,
[TYPE] VARCHAR(11) NOT NULL,
[PROMPT] VARCHAR(80) NOT NULL,
[LENGTH] INT NOT NULL,
[DECMIAL] INT NOT NULL,
[FORMAT] VARCHAR(50) NOT NULL,
[INITIALVALUE] VARCHAR(255) NOT NULL,
[CALCINITIALVALUE] CHAR(1) NOT NULL,
[OVERRIDEINITIALVALUE] CHAR(1) NOT NULL,
[REQUIRED] CHAR(1) NOT NULL,
[VALIDATION] CHAR(1) NOT NULL,
[LOW] DECIMAL(9,2) NOT NULL,
[HIGH] DECIMAL(9,2) NOT NULL,
[SYSTEMFIELD] CHAR(1) NOT NULL,
[TOP] INT NOT NULL,
[LEFT] DECIMAL(5,2) NOT NULL,
[HEIGHT] INT NOT NULL,
[WIDTH] DECIMAL(5,2) NOT NULL,
[FONT] VARCHAR(20) NOT NULL,
[VISIBLE] CHAR(1) NOT NULL,
[ENABLED] CHAR(1) NOT NULL,
[READONLY] CHAR(1) NOT NULL,
[MULTILINE] CHAR(1) NOT NULL,
[FORMULA] VARCHAR(200) NOT NULL,
[COMMON] TINYINT NOT NULL,
[UDFCategory] INT NULL,
[ISLOCK] TINYINT NOT NULL)
-- step 1 - add the Parent Level Rows
INSERT
INTO @DAST
([CID],
[NAME],
[FILEPREFIX],
[FIELDNAME],
[TYPE],
[PROMPT],
[LENGTH],
[DECMIAL],
[FORMAT],
[INITIALVALUE],
[CALCINITIALVALUE],
[OVERRIDEINITIALVALUE],
[REQUIRED],
[VALIDATION],
[LOW],
[HIGH],
[SYSTEMFIELD],
[TOP],
[LEFT],
[HEIGHT],
[WIDTH],
[FONT],
[VISIBLE],
[ENABLED],
[READONLY],
[MULTILINE],
[FORMULA],
[COMMON],
[UDFCategory],
[ISLOCK])
SELECT 0, --[CID],
[SF].[PREFIX] + ' - ' + [SF].[NAME], --[NAME],
'', --[FILEPREFIX],
'', --[FIELDNAME],
'', --[TYPE],
'', --[PROMPT],
0, --[LENGTH],
0, --[DECMIAL],
'', --[FORMAT],
'', --[INITIALVALUE],
'', --[CALCINITIALVALUE],
'', --[OVERRIDEINITIALVALUE],
'', --[REQUIRED],
'', --[VALIDATION],
0, --[LOW],
0, --[HIGH],
'', --[SYSTEMFIELD],
0, --[TOP],
0, --[LEFT],
0, --[HEIGHT],
0, --[WIDTH],
'', --[FONT],
'', --[VISIBLE],
'', --[ENABLED],
'', --[READONLY],
'', --[MULTILINE],
'', --[FORMULA],
0, --[COMMON],
0, --[UDFCategory],
0 --[ISLOCK]
FROM [dbo].[SystemFiles] [SF]
ORDER BY [SF].[PREFIX]
-- step 2 - add the System User Defined Field rows and set their CID value to match the Prefix from the Parent Level Rows.
INSERT
INTO @DAST
([CID],
[NAME],
[FILEPREFIX],
[FIELDNAME],
[TYPE],
[PROMPT],
[LENGTH],
[DECMIAL],
[FORMAT],
[INITIALVALUE],
[CALCINITIALVALUE],
[OVERRIDEINITIALVALUE],
[REQUIRED],
[VALIDATION],
[LOW],
[HIGH],
[SYSTEMFIELD],
[TOP],
[LEFT],
[HEIGHT],
[WIDTH],
[FONT],
[VISIBLE],
[ENABLED],
[READONLY],
[MULTILINE],
[FORMULA],
[COMMON],
[UDFCategory],
[ISLOCK])
SELECT [CD].[PID],
RTRIM([SUF].[PROMPT]) + '- (' + RTRIM([SUF].[FIELDNAME]) + ')',
[SUF].[FILEPREFIX],
[SUF].[FIELDNAME],
[SUF].[TYPE],
[SUF].[PROMPT],
[SUF].[LENGTH],
[SUF].[DECMIAL],
[SUF].[FORMAT],
[SUF].[INITIALVALUE],
[SUF].[CALCINITIALVALUE],
[SUF].[OVERRIDEINITIALVALUE],
[SUF].[REQUIRED],
[SUF].[VALIDATION],
[SUF].[LOW],
[SUF].[HIGH],
[SUF].[SYSTEMFIELD],
[SUF].[TOP],
[SUF].[LEFT],
[SUF].[HEIGHT],
[SUF].[WIDTH],
[SUF].[FONT],
[SUF].[VISIBLE],
[SUF].[ENABLED],
[SUF].[READONLY],
[SUF].[MULTILINE],
[SUF].[ACTUALNAME],
[SUF].[COMMON],
[SUF].[UDFCategory],
[SUF].[ISLOCK]
FROM @CID [CD]
INNER JOIN [dbo].[SystemUserDefinedFields] [SUF]
ON [SUF].[FILEPREFIX] = [CD].[FILEPREFIX]
WHERE [SUF].[COMMON] IN (1, @Common)
ORDER BY [CD].[PID],
[SUF].[FIELDNAME]
-- return the output
SELECT [DAST].[PID],
[DAST].[CID],
[DAST].[NAME],
[DAST].[FILEPREFIX],
[DAST].[FIELDNAME],
[DAST].[TYPE],
[DAST].[PROMPT],
[DAST].[LENGTH],
[DAST].[DECMIAL],
[DAST].[FORMAT],
[DAST].[INITIALVALUE],
[DAST].[CALCINITIALVALUE],
[DAST].[OVERRIDEINITIALVALUE],
[DAST].[REQUIRED],
[DAST].[VALIDATION],
[DAST].[LOW],
[DAST].[HIGH],
[DAST].[SYSTEMFIELD],
[DAST].[TOP],
[DAST].[LEFT],
[DAST].[HEIGHT],
[DAST].[WIDTH],
[DAST].[FONT],
[DAST].[VISIBLE],
[DAST].[ENABLED],
[DAST].[READONLY],
[DAST].[MULTILINE],
[DAST].[FORMULA],
[DAST].[COMMON],
[DAST].[UDFCategory],
[DAST].[ISLOCK]
FROM @DAST [DAST]
ORDER BY [DAST].[PID]
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,
@LoggedInHandler VARCHAR(10) = NULL)
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 *
* 2024-10-09 Ponni.M AccessDate convertion based on the logged in handler timezone *
* 2024-10-24 Ponni.M AccessDate converted to UTCDate and converted to the loggedinHandelr timezone *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
select
dbo.KAAS_FNConvertUTCDateToTargetTimeZone(dbo.KAAS_FNConvertDateToUTC(DAA.[AccessDate],@LoggedInHandler), @LoggedInHandler) 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 EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_ExternalDictationsLogs'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ExternalDictationsLogs]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ExternalDictationsLogs] (
@LoggedInHandler VARCHAR(10) = NULL)
AS
/*******************************************************************************************************
*This procedure is used load the log for External Dictations. *
* *
* Stored Procedure Name : [dbo].[KAAS_ExternalDictationsLogs] *
* *
* Modification History : *
* 2024-07-02 Vignesh M Created *
* 2024-08-07 Sadiq Order by Changed to bring last modified dictation logs on top(18727) *
* 2024-09-19 Ponni M DateTimefield conversion based on the handler timezone added *
* 2024-10-17 Aakif Return only audio types of Dictation files *
* 20224-11-26 Ponni M Return only matching report typist and open dictation logs *
* 2024-12-04 Ponni M Return only matching report typist with 'new' and 'sent' status
and all 'Received' status records regardless of matching report typist
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
[DAT].[CASECODE] AS [CaseCode] ,
[MAT].[DESCRIPTION] AS [Description],
[DAT].[Document] AS [Document],
[ED].[TrackReference] AS [TrackReference],
(CASE WHEN [ED].[Status] = 0 THEN 'New'
WHEN [ED].[Status] = 1 THEN 'Sent'
WHEN [ED].[Status] = 2 THEN 'Received'
END) AS [Status],
[ED].[RecordId] AS [RecordId],
CONVERT(VARCHAR,
dbo.KAAS_FNConvertUTCDateToTargetTimeZone(
ED.[DateField], @LoggedInHandler) , 120) AS [DateField]
FROM ExternalDictations AS [ED]
INNER JOIN [dbo].[DiaryAttachments] [DAT]
INNER JOIN [matters] AS [MAT]
ON [DAT].[CASECODE] = [MAT].[Code]
INNER JOIN [dbo].[diary] [DIA]
INNER JOIN [dbo].[SearchMatters] [SM]
ON [SM].[Code] = [DIA].[CASECODE]
AND [SM].[Closed] = 0
INNER JOIN [dbo].[DiaryDelegations] [DD]
ON [DD].[ACTIONID] = [DIA].[ACTIONID]
AND [DD].[STATUS] = 0
AND [DD].[DelType] IN ('Delegated', 'Released')
INNER JOIN [dbo].[RemoteTypistStartDate] [RTS]
ON [RTS].[StartDate] < [DIA].[DATE]
ON [DIA].[ACTIONID] = [DAT].[DiaryID]
AND [DIA].[ACTIONTYPE] = 'D'
AND [DIA].[STATUS] = 0
ON [DAT].[TrackReference] = [ED].[TrackReference]
AND [DAT].[Type] IN ('AAC', 'AC3', 'FLAC', 'M4A', 'MP3', 'OGG', 'WAV', 'WMA')
INNER JOIN [dbo].[RemoteTypist] [RT]
ON [RT].[Code] = [DD].[HANDLER]
OR [ED].STATUS = 2
GROUP BY
[DAT].[CASECODE],
[MAT].[DESCRIPTION],
[DAT].[Document],
[ED].[TrackReference],
[ED].[Status],
[ED].[RecordId],
[ED].[DateField]
ORDER BY
[ED].[DateField] DESC,
[ED].[Status] DESC
SET NOCOUNT OFF
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 OBJECT_ID(N'KAAS_FetchAssociateUDFForEdit', N'P') IS NOT NULL
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 *
* 2024-10-18 Ponni M Isexist condition check changed
*******************************************************************************************************/
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(12),
@INITIALDATE,
106)
ELSE CONVERT(VARCHAR(12),
[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 OBJECT_ID(N'KAAS_FetchAvailableCaseAlarm',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchAvailableCaseAlarm]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchAvailableCaseAlarm] (
@MatterCode VARCHAR(20),
@UserCode VARCHAR(10))
AS
/**************************************************************************************************************************
*
* Copied From: [dbo].[ky_NETCAFetchAvailableCaseAlarm]
* This procedure is used to fetch alarm notification based on matter code and current user
*
* Modification History
* 2014-06-30 Arun V Created
* 2014-07-03 Arun V if matter.debtbal is zero waring message will not raise
* 2014-07-07 Arun V add functionality to insert each day log on same message
* eg: added CONVERT(NVARCHAR(11),MsgGeneratedDate)
* = CONVERT(NVARCHAR(11),GETDATE()) condition on insert statement
* 2014-12-02 Arun V Approved for money laundering warning added
* 2015-01-19 Pino Carafa Replace use of NVARCHAR with VARCHAR
* 2015-06-23 Sridharan KEYD-2332 - Use of LTRIM(RTRIM(
* 2015-09-10 Arun V Added Client Warning and Disallow new matter fields
* 2016-07-22 Arun V Have added a condition to ignore time entries with an invoice number <> 0
* for WIP Notification ref: KEYD-3707
* 2016-07-26 Arun V Have added Retired Warning message in Current Case details and Current Client Details.
* 2016-11-14 Pino Carafa Implemented SAM4 calculation for Estimate Fee where appropriate
* 2019-08-16 John Ginnane KEYD-6048 - Rewrote procedure, fixed issues where notifications were always appearing
* 2019-08-28 John Ginnane KEYD-6048 - Added new rule for AML approval date
* 2024-07-04 Aakif Created KaaS version of ky_NETCAFetchAvailableCaseAlarm
**************************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @WorkingCategory VARCHAR(100)
DECLARE @ISSAM4 BIT
DECLARE @GETDATE DATETIME
DECLARE @TODAY DATETIME
DECLARE @ClientCode VARCHAR(20)
SET @ISSAM4 = [dbo].[ISSAM4]()
SET @GETDATE = GETDATE()
SET @TODAY = DATEADD(DAY, DATEDIFF(DAY, 0, @GETDATE), 0)
SET @ClientCode = SUBSTRING(@MatterCode, 0, CHARINDEX('/', @mattercode, 0))
/* Fetch all settings */
DECLARE @EstFeeWarningLimit DECIMAL(18,9)
DECLARE @DebtorDaysLimit INT
DECLARE @LastActionMonth INT
DECLARE @LockupValueLimit DECIMAL(19,2)
DECLARE @ShowAlarm BIT
DECLARE @AMLDateMaxLimit INT
SELECT @EstFeeWarningLimit = CASE WHEN [SET].[KeyName] = 'EstFeeWarningLimit' THEN [SET].[KeyValue] ELSE @EstFeeWarningLimit END,
@DebtorDaysLimit = CASE WHEN [SET].[KeyName] = 'DebtorWarningDaysLimit' THEN [SET].[KeyValue] ELSE @DebtorDaysLimit END,
@LastActionMonth = CASE WHEN [SET].[KeyName] = 'LastActionMonth' THEN [SET].[KeyValue] ELSE @LastActionMonth END,
@LockupValueLimit = CASE WHEN [SET].[KeyName] = 'LockupUpValue' THEN [SET].[KeyValue] ELSE @LockupValueLimit END,
@ShowAlarm = CASE WHEN [SET].[KeyName] = 'ShowAlarm' THEN [SET].[KeyValue] ELSE @ShowAlarm END,
@AMLDateMaxLimit = CASE WHEN [SET].[KeyName] = 'AMLDateMaxLimit' THEN [SET].[KeyValue] ELSE @AMLDateMaxLimit END
FROM [dbo].[Settings] AS [SET]
WHERE [SET].[KeyName] IN ('EstFeeWarningLimit', 'DebtorWarningDaysLimit', 'LastActionMonth', 'LockupUpValue', 'ShowAlarm', 'AMLDateMaxLimit')
IF @ShowAlarm <> 'True'
BEGIN
RETURN
END
/* Get all relevant matter details now */
DECLARE @ShowCommentInAlarm VARCHAR(5)
DECLARE @EstimateFee DECIMAL(18,2)
DECLARE @DebtBal DECIMAL(18,9)
DECLARE @OutLayBudget DECIMAL(18,2)
DECLARE @CurrentStatuteLimitDaysCount INT
DECLARE @ExpBillDate DATETIME
DECLARE @Comments VARCHAR(1000)
DECLARE @ClientWarningMsg VARCHAR(500)
DECLARE @Approved BIT
DECLARE @ApprovedDate DATETIME
SELECT @ShowCommentInAlarm = CASE WHEN ISNULL(LTRIM(RTRIM([MAT].[ShowCommentInAlarm])), '') = 'Y'
THEN 'True'
ELSE 'False' END,
@EstimateFee = [MAT].[EstFee],
@DebtBal = ISNULL([MAT].[DebtBal], 0),
@OutLayBudget = ISNULL([MAT].[OutlayBal], 0),
@CurrentStatuteLimitDaysCount = DATEDIFF(DD, @GETDATE, [MAT].[StatuteLimits]),
@ExpBillDate = [MAT].[ExpBillD],
@Comments = REPLACE(REPLACE([MAT].[Comment], CHAR(13), ' '), CHAR(10), ' '),
@ClientWarningMsg = [CNT].[WarningMsg],
@Approved = [CNT].[Approved],
@ApprovedDate = [CNT].[ApprovedDate]
FROM [dbo].[matters] AS [MAT]
INNER JOIN [dbo].[Contacts] AS [CNT]
ON [CNT].[Code] = [MAT].[ClientCode]
WHERE [MAT].[Code] = @MatterCode
DECLARE @WIP DECIMAL(18, 2)
SELECT @WIP = SUM(CASE WHEN @ISSAM4 = 0
THEN ISNULL([TIE].[Charge], 0) -
ISNULL([TIE].[BilledAmount], 0)
WHEN [TIE].[InvoiceNo] = 0 -- in this case, @ISSAM4 = 1
THEN ISNULL([TIE].[Charge], 0)
ELSE 0 END)
FROM [dbo].[TimeEntry] AS [TIE]
WHERE [TIE].[Matter] = @MatterCode
AND [TIE].[Date] <= @GETDATE
AND [TIE].[TimeOrCharge] <> 'B'
AND [TIE].[Rec_Irr] <> 'N'
/* Get all notifications and put them in here
We will then insert new notifications into
this if we need to, then at the end of the
proc we will insert those into the table
for this matter, user and time */
DECLARE @NMUR_Log TABLE (
[Insert] BIT NOT NULL DEFAULT(1),
[NotifyMsg] VARCHAR(1000),
[MsgCategory] VARCHAR(1000),
[MsgGeneratedDate] DATETIME,
[UserResponsedDate] DATETIME)
/* All other inserts into this table will be
inserted into original table at the end */
INSERT INTO @NMUR_Log (
[Insert],
[NotifyMsg],
[MsgCategory],
[MsgGeneratedDate],
[UserResponsedDate])
SELECT 0,
[NMUR].[NotifyMsg],
[NMUR].[MsgCategory],
CONVERT(DATETIME, CONVERT(VARCHAR(8), [NMUR].[MsgGeneratedDate], 112), 112),
CONVERT(DATETIME, CONVERT(VARCHAR(8), [NMUR].[UserResponsedDate], 112), 112)
FROM [dbo].[NotificationMessageUserResponse] AS [NMUR]
WHERE [NMUR].[MatterCode] = @MatterCode
AND [NMUR].[Usercode] = @UserCode
/*
Rules
1. WIP is over 80% (Setting for the %) of the estimated fee for the matter.
2. Debtor Days are over 60 Days (Setting for the 60 Days)
3. Statute date with in 10 days
4. Today is greater than the expected bill date.
5. Last action is over 6 months (6 months is a setting )
6. Locked up value if over 20,000 ( 20,0000) is a setting.
7. If the comment is alarmed on the matter. (Will need a new field on the matters table to be flagged as "Y" if the comment is to be alarmed. )
When you then open the matter and the flag is set to Y then Pop the alarm.
8. If contacts.approved<> 'Y' then a Warining should pop in saying.
"WARNING: Money Laundering checks have not been completed for this client. "
9. Client Warning Message.
10. Current Case Details Retired field Notification.
11. Current Client Details Retired field Notification.
12. If AML approval date is @AMLDateMaxLimit (default: 18) months ago
*/
/************ RULE 1 ************/
IF 1 = 1
BEGIN
SET @WorkingCategory = 'WIP'
DECLARE @CurrentEstFeePercentage DECIMAL(18,2)
IF @EstimateFee = 0
BEGIN
SET @CurrentEstFeePercentage = 0
END
ELSE
BEGIN
SET @CurrentEstFeePercentage = (@WIP / @EstimateFee) * 100.0
END
IF @CurrentEstFeePercentage > @EstFeeWarningLimit
BEGIN
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT CONVERT(VARCHAR(20), CONVERT(DECIMAL(18, 2), @EstFeeWarningLimit)) AS [Info],
@EstimateFee AS [EstimateFee],
@CurrentEstFeePercentage AS [CurrentEstFeePercentage]
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('Warning: WIP' + CONVERT(VARCHAR(20), CONVERT(DECIMAL(18, 2), @EstFeeWarningLimit)),
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 2 ************/
IF 2 = 2
BEGIN
SET @WorkingCategory = 'Debtors'
DECLARE @CurrentDebtorsDaysCount INT
DECLARE @CurrentDebtorsDate DATETIME
DECLARE @CurrentDebtorsDays VARCHAR(100)
SELECT @CurrentDebtorsDaysCount = DATEDIFF(DD, MAX([DTL].[DATE]), @TODAY),
@CurrentDebtorsDate = MAX([DTL].[DATE])
FROM [dbo].[DebtorsLedger] AS [DTL]
WHERE [DTL].[MATTER] = @MatterCode
IF @CurrentDebtorsDaysCount > @DebtorDaysLimit AND @DebtBal<>0
BEGIN
SET @CurrentDebtorsDays = [dbo].[ky_NETGetNumberofDaysDiff](@CurrentDebtorsDate)
IF NOT EXISTS(SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT @CurrentDebtorsDays AS [Info]
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
IF NOT EXISTS(SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('Debtor Days Over: ' + @CurrentDebtorsDays,
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 3 ************/
IF 3 = 3
BEGIN
SET @WorkingCategory = 'StatuteLimit'
IF @CurrentStatuteLimitDaysCount > 0 AND @CurrentStatuteLimitDaysCount < 10
BEGIN
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT CONVERT(VARCHAR(10), @CurrentStatuteLimitDaysCount) AS [Info]
END
ELSE
BEGIN
SELECT 'Nothing' as Info
END
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('Statute Limit: ' + CONVERT(VARCHAR(10), @CurrentStatuteLimitDaysCount),
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 4 ************/
IF 4 = 4
BEGIN
SET @WorkingCategory = 'ExpectedBillDate'
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[matters] AS [MAT]
WHERE @GETDATE > [MAT].[ExpBillD]
AND [MAT].[Code] = @MatterCode)
BEGIN
IF NOT EXISTS(SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT 'GreaterThanExpectedBillDate' AS [Info],
CONVERT(VARCHAR(11), @ExpBillDate, 112) AS [ExpBillDate]
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('Current Date Greater Than Expected Bill Date',
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 5 ************/
IF 5 = 5
BEGIN
SET @WorkingCategory = 'LastAction'
DECLARE @CurrentLastActionMonth INT
SELECT TOP 1 @CurrentLastActionMonth = DATEDIFF(M, [DIA].[DATE], @GETDATE)
FROM [dbo].[diary] AS [DIA]
WHERE [DIA].[CASECODE] = @MatterCode
AND [DIA].[STATUS] = 1
ORDER BY [DIA].[DATE] DESC
IF @CurrentLastActionMonth > @LastActionMonth
BEGIN
IF NOT EXISTS(SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT @CurrentLastActionMonth AS [Info]
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('LastAction: ' + CONVERT(VARCHAR(10), @CurrentLastActionMonth),
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 6 ************/
IF 6 = 6
BEGIN
SET @WorkingCategory = 'LockedUpValue'
DECLARE @CurrentLockedUpValue DECIMAL(18,2)
SET @CurrentLockedUpValue = ISNULL(@WIP, 0) + ISNULL(@DebtBal, 0) + ISNULL(@OutLayBudget, 0)
IF @CurrentLockedUpValue > @LockupValueLimit
BEGIN
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT CONVERT(VARCHAR(20), @LockupValueLimit) AS [Info]
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('LockupValue: ' + CONVERT(VARCHAR(20), @LockupValueLimit),
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 7 ************/
IF 7 = 7
BEGIN
IF @ShowCommentInAlarm = 'True'
BEGIN
SET @WorkingCategory = 'CaseComments'
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT @Comments AS [Info]
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES (RTRIM(@Comments),
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 8 ************/
IF 8 = 8
BEGIN
IF @Approved <> 1
BEGIN
SET @WorkingCategory = 'ApprovedForMoneyLaundering'
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT 'No' AS [Info]
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('Approved For Money Laundering',
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 9 ************/
IF 9 = 9
BEGIN
IF @ClientWarningMsg <> ''
BEGIN
SET @WorkingCategory = 'ClientWarningMessage'
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT @ClientWarningMsg AS [Info]
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES (RTRIM(@ClientWarningMsg),
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 10 ***********/
IF 10 = 10
BEGIN
SET @WorkingCategory = 'CaseRetiredFieldsNotification'
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
--Current Case Details
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[matters] AS [MAT]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC]
ON [FEC].[Code] = [MAT].[FECode]
LEFT OUTER JOIN [dbo].[Handlers] AS [HAN]
ON [HAN].[CODE] = [MAT].[Partner]
LEFT OUTER JOIN [dbo].[Departments] AS [DEP]
ON [DEP].[CODE] = [MAT].[Dept]
LEFT OUTER JOIN [dbo].[WorkTypes] AS [WKT]
ON [WKT].[CODE] = [MAT].[WType]
LEFT OUTER JOIN [dbo].[FileColours] AS [FC]
ON [FC].[COLOURCODE] = [MAT].[FileColour]
LEFT OUTER JOIN [dbo].[CaseMaster] AS [CSM]
ON [CSM].[CSCODE] = [MAT].[Code]
LEFT OUTER JOIN [dbo].[Templates] AS [TEM]
ON [TEM].[WKCODE] = [CSM].[CSWKTCODE]
WHERE [MAT].[Code] = @MatterCode
AND ([FEC].[Retired] = 'Y'
OR [HAN].[Retired] = 'Y'
OR [DEP].[Retired] = 'Y'
OR [WKT].[Retired] = 'Y'
OR [FC].[Retired] = 'Y'
OR [TEM].[Retired] = 'Y'))
BEGIN
SELECT ISNULL((CASE WHEN [FEC].[Retired] = 'Y' THEN 'Fee Earner' END), '') AS [FeEarner],
ISNULL((CASE WHEN [HAN].[Retired] = 'Y' THEN 'Partner' END), '') AS [Partner],
ISNULL((CASE WHEN [DEP].[Retired] = 'Y' THEN 'Department' END), '') AS [Department],
ISNULL((CASE WHEN [WKT].[Retired] = 'Y' THEN 'Work Type' END), '') AS [WorkType],
ISNULL((CASE WHEN [FC].[Retired] = 'Y' THEN 'File Colour' END), '') AS [FileColor],
ISNULL((CASE WHEN [TEM].[Retired] = 'Y' THEN 'Case Plan' END), '') AS [CasePlan],
'' AS [Info]
FROM [dbo].[matters] AS [MAT]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC]
ON [FEC].[Code] = [MAT].[FECode]
LEFT OUTER JOIN [dbo].[Handlers] AS [HAN]
ON [HAN].[CODE] = [MAT].[Partner]
LEFT OUTER JOIN [dbo].[Departments] AS [DEP]
ON [DEP].[CODE] = [MAT].[Dept]
LEFT OUTER JOIN [dbo].[WorkTypes] AS [WKT]
ON [WKT].[CODE] = [MAT].[WType]
LEFT OUTER JOIN [dbo].[FileColours] AS [FC]
ON [FC].[COLOURCODE] = [MAT].[FileColour]
LEFT OUTER JOIN [dbo].[CaseMaster] AS [CSM]
ON [CSM].[CSCODE] = [MAT].[Code]
LEFT OUTER JOIN [dbo].[Templates] AS [TEM]
ON [TEM].[WKCODE] = [CSM].[CSWKTCODE]
WHERE [MAT].[Code] = @MatterCode
AND ([FEC].[Retired] = 'Y'
OR [HAN].[Retired] = 'Y'
OR [DEP].[Retired] = 'Y'
OR [WKT].[Retired] = 'Y'
OR [FC].[Retired] = 'Y'
OR [TEM].[Retired] = 'Y')
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
DECLARE @RetiredFields VARCHAR(200)
SELECT @RetiredFields = ISNULL((CASE WHEN [FEC].[Retired] = 'Y' THEN 'Fee Earner' END), '') +
ISNULL((CASE WHEN [HAN].[Retired] = 'Y' THEN 'Partner' END), '') +
ISNULL((CASE WHEN [DEP].[Retired] = 'Y' THEN 'Department' END), '') +
ISNULL((CASE WHEN [WKT].[Retired] = 'Y' THEN 'Work Type' END), '') +
ISNULL((CASE WHEN [FC].[Retired] = 'Y' THEN 'File Colour' END), '') +
ISNULL((CASE WHEN [TEM].[Retired] = 'Y' THEN 'Case Plan' END), '')
FROM [dbo].[matters] AS [MAT]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC]
ON [FEC].[Code] = [MAT].[FECode]
LEFT OUTER JOIN [dbo].[Handlers] AS [HAN]
ON [HAN].[CODE] = [MAT].[Partner]
LEFT OUTER JOIN [dbo].[Departments] AS [DEP]
ON [DEP].[CODE] = [MAT].[Dept]
LEFT OUTER JOIN [dbo].[WorkTypes] AS [WKT]
ON [WKT].[CODE] = [MAT].[WType]
LEFT OUTER JOIN [dbo].[FileColours] AS [FC]
ON [FC].[COLOURCODE] = [MAT].[FileColour]
LEFT OUTER JOIN [dbo].[CaseMaster] AS [CSM]
ON [CSM].[CSCODE] = [MAT].[Code]
LEFT OUTER JOIN [dbo].[Templates] AS [TEM]
ON [TEM].[WKCODE] = [CSM].[CSWKTCODE]
WHERE [MAT].[Code] = @MatterCode
AND ([FEC].[Retired] = 'Y'
OR [HAN].[Retired] = 'Y'
OR [DEP].[Retired] = 'Y'
OR [WKT].[Retired] = 'Y'
OR [FC].[Retired] = 'Y'
OR [TEM].[Retired] = 'Y')
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('CaseRetiredFields: ' + @RetiredFields,
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
/************ RULE 11 ***********/
IF 11 = 11
BEGIN
SET @WorkingCategory = 'ClientRetiredFieldsNotification'
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
--Current client Details
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[Contacts] AS [CNT]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC]
ON [FEC].[Code] = [CNT].[FE]
LEFT OUTER JOIN [dbo].[client] AS [CLI]
ON [CLI].[CLCODE] = [CNT].[Code]
LEFT OUTER JOIN [dbo].[MiscCodes] AS [MIS]
ON [MIS].[CDECODE] = [CLI].[ClMartialCde]
AND [MIS].[CDETYPE] = 'MRS'
WHERE [CNT].[Code] = @ClientCode
AND ([FEC].[Retired] = 'Y'
OR [MIS].[Retired] = 'Y'))
BEGIN
DECLARE @ClientRetiredFieldsLog as VARCHAR(100)
SELECT ISNULL((CASE WHEN [FEC].[Retired] = 'Y' THEN 'Fee Earner' END), '') AS [FeEarner],
ISNULL((CASE WHEN [MIS].[Retired] = 'Y' THEN 'Marital Status' END), '') AS [MaritalStatus],
'' AS [Info]
FROM [dbo].[Contacts] AS [CNT]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC]
ON [FEC].[Code] = [CNT].[FE]
LEFT OUTER JOIN [dbo].[client] AS [CLI]
ON [CLI].[CLCODE] = [CNT].[Code]
LEFT OUTER JOIN [dbo].[MiscCodes] AS [MIS]
ON [MIS].[CDECODE] = [CLI].[ClMartialCde]
AND [MIS].[CDETYPE] = 'MRS'
WHERE [CNT].[Code] = @ClientCode
AND ([FEC].[Retired] = 'Y'
OR [MIS].[Retired] = 'Y')
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
SELECT @ClientRetiredFieldsLog = ISNULL((CASE WHEN [FEC].[Retired] = 'Y' THEN 'Fee Earner' END), '') +
ISNULL((CASE WHEN [MIS].[Retired] = 'Y' THEN 'Marital Status' END), '')
FROM [dbo].[Contacts] AS [CNT]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC]
ON [FEC].[Code] = [CNT].[FE]
LEFT OUTER JOIN [dbo].[client] AS [CLI]
ON [CLI].[CLCODE] = [CNT].[Code]
LEFT OUTER JOIN [dbo].[MiscCodes] AS [MIS]
ON [MIS].[CDECODE] = [CLI].[ClMartialCde]
AND [MIS].[CDETYPE] = 'MRS'
WHERE [CNT].[Code] = @ClientCode
AND ([FEC].[Retired] = 'Y'
OR [MIS].[Retired] = 'Y')
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('ClientRetiredFields: ' + @ClientRetiredFieldsLog,
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
IF 12 = 12
BEGIN
IF @Approved = 1 AND (@ApprovedDate IS NULL OR @GETDATE > DATEADD(MONTH, @AMLDateMaxLimit, @ApprovedDate))
BEGIN
SET @WorkingCategory = 'AMLApprovalDate'
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgCategory] = @WorkingCategory
AND [NMUR].[UserResponsedDate] = @TODAY)
BEGIN
SELECT 'No' AS [Info]
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
IF NOT EXISTS (SELECT TOP 1 1
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[MsgGeneratedDate] = @TODAY
AND [NMUR].[MsgCategory] = @WorkingCategory)
BEGIN
INSERT INTO @NMUR_Log (
[NotifyMsg],
[MsgCategory])
VALUES ('AML Approval Date',
@WorkingCategory)
END
END
ELSE
BEGIN
SELECT 'Nothing' AS [Info]
END
END
INSERT INTO [dbo].[NotificationMessageUserResponse] (
[MatterCode],
[NotifyMsg],
[MsgGeneratedDate],
[MsgCategory],
[Usercode])
SELECT @MatterCode,
[NMUR].[NotifyMsg],
@GETDATE,
[NMUR].[MsgCategory],
@UserCode
FROM @NMUR_Log AS [NMUR]
WHERE [NMUR].[Insert] = 1
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 *
* 2024-06-13 Vignesh M Composite Billing Matter is added *
*******************************************************************************************************/
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],
[MAT].[CompBillingMatter] AS [CompBillingMatter]
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 *
* 2024-06-12 Vignesh M Composite Billing Matter is added *
*******************************************************************************************************/
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],
[MAT].[CompBillingMatter]
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 *
* 2024-10-18 Ponni M Datetime length changed from 11 to 12. *
***************************************************************************************************************/
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(12), [CC].[DOB], 106) AS [DOB],
CONVERT(VARCHAR(12), [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_FetchHandlerByCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchHandlerByCode]
GO
CREATE PROCEDURE
[KAAS_FetchHandlerByCode]
AS
/*******************************************************************************************************
* This procedure used to fetch from and To email address with active handler with out team and retired
handler based on the matching code. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchHandlerByCode] *
* Copied from : [dbo].[kAAS_NETFetchHandler] *
* *
* Modification History: *
* 2024-09-18 Ponni M Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
--For fetching the handler code
DECLARE @value VARCHAR(100)
SELECT @value = [SET].[KeyValue]
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'RemoteTypist'
SET @value = ISNULL(@value, '')
--for fetching from email address
DECLARE @FromEmail VARCHAR(100)
SELECT @FromEmail = [SET].[KeyValue]
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'GraphAPIFromEmailId'
SET @FromEmail = ISNULL(@FromEmail, '')
--Get handler info
SELECT RTRIM([HAN].[CODE]) AS [Code],
RTRIM([HAN].[NAME]) AS [Name],
RTRIM(ISNULL([HAN].[EMAIL], '')) AS [ToEmail],
@FromEmail AS [FromEmail]
FROM [dbo].[Handlers] [HAN]
WHERE ( ISNULL([HAN].[Retired], 'N') <> 'Y'
AND [HAN].[CODE] = @value)
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 *
* 2024-06-24 Vignesh M Modified Added Undertakings Category *
*******************************************************************************************************/
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
SELECT
RTRIM(ISNULL(U.CODE , '')) AS [Code],
RTRIM(ISNULL(U.[DESCRIPTION] , '')) AS [Category]
FROM
UndertakingsCategory U
ORDER BY CODE
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
* 2024-10-16 Ghayathri.S.V Modifed to fetch telephone and mobile number details
**********************************************************************************/
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],
[CN].[CLTEL] AS [Telephone],
[CN].[CLMOBNO] AS [MobileNumber]
FROM @RES [RES]
INNER JOIN
[dbo].[diary] [DIA]
INNER JOIN
[dbo].[SearchMatters] [SM]
ON
[SM].[Code] = [DIA].[CASECODE]
INNER JOIN
[dbo].[Client] [CN]
ON
[SM].[ClientCode] = [CN].[CLCODE]
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_FetchWorkFlowAssociateTypes'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchWorkFlowAssociateTypes]
END
GO
CREATE PROCEDURE [dbo].[KAAS_FetchWorkFlowAssociateTypes]
AS
/**************************************************************************************************************
Description: This procedure is used load the data for Document assist. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchWorkFlowAssociateTypes] *
* Copied from : [dbo].[ky_NETFetchAssociateTypes] *
* *
* Modification History : *
* 2024-07-26 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
RTRIM(ISNULL(A.CODE,'')) AS Code,
RTRIM(ISNULL(A.[DESCRIPTION], '')) AS [Description],
RTRIM(ISNULL(A.ASSOCIATETYPE, '')) AS Associatetype
FROM
AssociateTypes A
ORDER BY
A.CODE ASC
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 EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_FetchWorkFlowEmail'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchWorkFlowEmail]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchWorkFlowEmail]
(@RecordID INT)
AS
/*************************************************************************************************************
* Description: This procedure is used Fetch the information for work flow Action Page Email Tab. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchWorkFlowEmail] *
* Copied from : [dbo].[ky_NETFetchWorkFlowEmail] *
* *
* Modification History : *
* 2024-07-24 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT TEM.[RECORDID] AS [RecordId],
RTRIM(ISNULL(TEM.[ACTIONID], '')) AS [ActionId],
RTRIM(ISNULL(TEM.[EMAILTO], '')) AS [EmailTo],
RTRIM(ISNULL(TEM.[EMAILCC],'')) AS [EmailCC],
RTRIM(ISNULL(TEM.[SUBJECT], '')) AS [Subject],
RTRIM(ISNULL(TEM.[EMAILBCC], '')) AS [EmailBCC],
RTRIM(ISNULL(TEM.[INCLUDEATTACHMENTS], '')) AS [IncludeAttachment],
RTRIM(ISNULL(TEM.[INCLUDEATTACHMENTSPDF], '')) AS [IncludeAttachmentPDF],
RTRIM(ISNULL(TEM.[REQUESTREADRECIPT], '')) AS [RequestReadReceipt],
RTRIM(ISNULL(TEM.[PRIORITY], '')) AS [Priority],
RTRIM(ISNULL(TEM.[BODY], '')) AS [Body]
FROM [dbo].[TemplateEmails] TEM
WHERE TEM.[RECORDID] = @RecordID
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_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 EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_GetActionDetailsForDraftInvoice'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetActionDetailsForDraftInvoice]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetActionDetailsForDraftInvoice]
(
@DraftNo INT
)
AS
/*******************************************************************************************************
* Fetch the Action Code for specified draft invoice *
* *
* Stored Procedure Name : [dbo].[KAAS_GetActionDetailsForDraftInvoice] *
* *
* Modification History: *
* 2024-07-15 Balamurugan C Created *
*******************************************************************************************************/
BEGIN
SELECT [Matter] AS [Matter],
[DRAFTNO] AS [DraftNo],
[BILLNO] AS [BillNo],
CAST([ACTIONID] AS int) AS [ActionId]
FROM [dbo].[BillHeader]
WHERE ISNULL([ACTIONID],0) <> 0
AND [DRAFTNO] = @DraftNo
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 OBJECT_ID(N'KAAS_GetActiveHandlersLookupList',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GetActiveHandlersLookupList]
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]
* 2024-11-07 Aakif - Modified alias name as per DTO model
*********************************************************************************************************/
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 [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'
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] (
@KeyNames VARCHAR(MAX) = ''
)
AS
/*******************************************************************************************************
* This Procedure is used to Get Settings *
* *
* Stored Procedure Name : [dbo].[KAAS_GetAllConfigFromSettings] *
* *
* Modification History : *
* 2022-03-09 Vinodhkumar.M Created *
* 2024-07-10 Vignesh M Modified Added Key Name Parameter *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SET @KeyNames = REPLACE(@KeyNames,',',''',''')
DECLARE @QRY VARCHAR(MAX)
SET @QRY = '
SELECT
[SET].[KeyName],
[SET].[KeyValue]
FROM
[dbo].[Settings] [SET]'
SET @QRY = @QRY + 'WHERE 1 = 1 '
IF ISNULL(@KeyNames,'') != ''
BEGIN
SET @QRY = @QRY + 'AND [SET].[KeyName] IN ('''+ @KeyNames +''')'
END
EXEC(@QRY)
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)
* 2024-10-09 Ponni Column names (Code,Name,Team,ExchangeAlias,Retired,branch,Nominal) changed into the camalcase
from uppercase for removing the unwanted mampping conversions
* 2024-11-07 Ghayathri Updated the retired logic to fetch all handlers
************************************************************************************************************/
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]
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 *
* 2024-06-04 Vignesh M Modified Action Created User is added *
* 2024-07-24 Aakif Fixed Typo for MatterUniqueId as per DTO model *
*************************************************************************************************************/
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
DECLARE @ActionCreatedBy 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], '')),
@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 @ActionCreatedBy = [DEL].[HANDLER]
FROM [DiaryDelegations] AS [DEL]
WHERE [ACTIONID] = @ActionId AND [DelType] = 'Created'
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],
@ActionCreatedBy AS [ActionCreatedBy]
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 OBJECT_ID(N'KAAS_GetClientContactForEdit', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetClientContactForEdit]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetClientContactForEdit]
(@CLCODE VARCHAR(8),
@CLNUMCONTACT INT)
AS
/*******************************************************************************************************
* Gets the details for a Client Contact. *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_GetClientContactForEdit] *
* Copied from : [dbo].[ky_NETSPGetClientContact] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
* 2024-10-17 Aakif Renamed procedure KAAS_GetClientContact to KAAS_GetClientContactForEdit*
* 2024-10-18 Ponni M Isexist condition check changed *
* 2024-11-28 Sadiq Added Country Field(19126) *
*******************************************************************************************************/
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 *
* 2024-10-18 Ponni M Isexist condition check changed and DateTime Convertion from 11 to 12 *
*******************************************************************************************************/
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(12), [CC].[DOB], 106) AS [DOB],
CONVERT(VARCHAR(12), [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 *
* 2024-07-05 Vignesh M Modified-Added Contacts Warning Message *
*******************************************************************************************************/
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,
RTRIM(ISNULL(CON.[WarningMsg], '''')) AS WarningMsg
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 *
* 2024-08-26 Aakif Modified alias names to match DTO *
*******************************************************************************************************/
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 *
* 2024-10-21 Sadiq If classDescription is empty then show it as 'Unknown'(19050) * *
************************************************************************************************************************/
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],
CASE
WHEN TRIM([DocumentClassDescription]) = '' THEN 'Unknown'
ELSE [DocumentClassDescription]
END AS [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 *
* 2019-05-20 Arun Copied from ky_NETSPGetDocumentVersioning *
* 2020-02-25 Vinodhan Added UniqueId column *
* 2024-07-28 Aakif Included alias name in Result to avoid mapping issue *
***********************************************************************************************/
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] AS [DocVersionId],
[TrackReference] AS [TrackReference],
[IMDocID] AS [ImDocId],
[Version] AS [Version],
[FilePath] AS [FilePath],
[ShortComments] AS [ShortComments],
[Comments] AS [Comments],
[TimeStamp] AS [TimeStamp],
[Handler] AS [Handler],
[HandlerName] AS [HandlerName],
[UniqueId] AS [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 *
* 2024-06-12 Balamurugan.C Fetching Round Off Value *
*****************************************************************************/
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],
ISNULL([BIH].[RoundTo],0.01) AS [RoundTo]
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 *
* 2024-10-09 Ghayathri.S.V Included code to fetch TimeZone settings *
*******************************************************************************************************/
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')
--FETCH DEFAULT TIME ZONE SETTINGS
DECLARE @DefaultTimeZone VARCHAR(200);
SELECT @DefaultTimeZone = [Value]
FROM [dbo].[UserSettings]
WHERE [Handler] = @HandlerCode
AND [Key] = 'TimeZone';
-- 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(@DefaultTimeZone, 'GMT Standard Time')) + ''' AS DefaultTimeZone,
''' + 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 *
* 2024-07-31 Aakif Modified Alias name to avoid autoMapper dependency *
*************************************************************************************************************************/
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 OBJECT_ID(N'KAAS_GetKYCDetails', N'P') IS NOT NULL
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
* 2024-10-18 Ponni M Isexist condition check changed
********************************************************************************************************************/
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(12), 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(12), 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
/*******************************************************************************************************
* It is returns Linked Matters for current case code. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetLinkedListData] *
* *
* Modification History : *
* 2019-07-17 Aakif Created *
*******************************************************************************************************/
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 [dbo].[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 *
* 2024-10-01 Balamurugan.C Modified - Included a column for Branch Code *
*******************************************************************************************************/
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].[BranchCode],
[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 *
* 2024-09-04 Ghayathri.S.V Modified to Fetch NcCode *
*******************************************************************************************************/
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,
[NcCode] VARCHAR(20) 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],
[NcCode])
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],
[TDB].[NCCCode] AS [NcCode]
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],
[TDB].[NcCode]
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 OBJECT_ID(N'KAAS_GetNotificationApprovalData', N'P') IS NOT NULL
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 *
* 2024-10-18 Ponni M Isexist condition check changed
*************************************************************************************************************/
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] *
* Modification history
* Ponni M : Modified for the unwanted mappings removal
Editphonelog Column name "TEAMCODE" changed to TeamCode
*****************************************************************************/
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) *
* 2024-08-20 Sadiq Removed Identity set for @Dels which was causing error in Else statement *
when TaskMode is 0 for Teams Task (Bug No - 18810 ) *
* 2024-12-02 Balamurugan.C 1) Removed the NOT IN (Because it is an expensive query for static datas) *
2) Removed 'IN' condition in Where statement and changed *
with 'EXISTS' for static parameter variables *
3) Removed unnessary casing for varchar *
4) Direct conversion in case when statement used with variable *
5) Removed KAAS_FNConvertUTCDateToTargetTimeZone from the select query *
******************************************************************************************************************/
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
DECLARE @StaticStatusTbl TABLE
(
[Status] VARCHAR(50)
)
INSERT INTO @StaticStatusTbl([Status]) VALUES('Completed'), ('Processed'), ('Returned')
DECLARE @ActionTypeTable TABLE ([Item] VARCHAR(10));
INSERT INTO @ActionTypeTable (Item)
SELECT RTRIM(LTRIM(Item))
FROM KAAS_FN_SplitString(@ActionType, ',');
DECLARE @PriorityTable TABLE ([Item] VARCHAR(10));
INSERT INTO @PriorityTable (Item)
SELECT RTRIM(LTRIM(Item))
FROM KAAS_FN_SplitString(@Priority, ',');
DECLARE @FlagTable TABLE (Item INT);
INSERT INTO @FlagTable (Item)
SELECT CAST(RTRIM(LTRIM(Item)) AS INT)
FROM KAAS_FN_SplitString(@Flag, ',');
DECLARE @FormatNextGetDate DATETIME;
DECLARE @FormatNextToDate DATETIME;
SET @FormatNextGetDate = DATEADD(DAY, 1, CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112)));
SET @FormatNextToDate = DATEADD(DAY, 1, CONVERT(DATETIME, @ToDate));
DECLARE @HandlerTimeZone NVARCHAR(50)
SELECT
@HandlerTimeZone = [Value]
FROM
UserSettings
WHERE
[Handler] = @HandlerID AND
[Key] = 'TimeZone'
SELECT @HandlerTimeZone = ISNULL(@HandlerTimeZone, 'GMT Standard Time')
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'
LEFT JOIN @StaticStatusTbl [SSL]
ON [SSL].[Status] = [DEL].[DelType]
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 [SSL].[Status] IS NULL
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 @FormatNextGetDate
WHEN @TaskType != 'OUTSTANDING' THEN @FormatNextToDate
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([DIA].[Subject],'')
ELSE 'Email To:' + RTRIM(CAST(ISNULL([DIA].[AddressTo],'') AS VARCHAR(50))) + ' - ' + ISNULL([DIA].[Subject],'')
END
ELSE
CASE
WHEN [DIA].[SUBJECT] IS NULL OR RTRIM([DIA].[SUBJECT]) = '' 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 EXISTS (
SELECT 1
FROM @ActionTypeTable AS [AT]
WHERE [AT].Item =
CASE
WHEN ISNULL(LTRIM(RTRIM(DIA.[ACTIONTYPE])), '') = '' THEN 'A'
ELSE DIA.[ACTIONTYPE]
END
)
)
AND
(
ISNULL(@Priority, '') = ''
OR EXISTS (
SELECT 1
FROM @PriorityTable AS [PT]
WHERE [PT].Item = RTRIM(LTRIM(DIA.[PRIORITY]))
)
)
AND
(
ISNULL(@Flag, '') = ''
OR EXISTS (
SELECT 1
FROM @FlagTable AS FT
WHERE FT.Item = ISNULL(DIA.[Flag], 0)
)
)
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
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'
LEFT JOIN @StaticStatusTbl [SSL]
ON [SSL].[Status] = [DEL].[DelType]
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 [SSL].[Status] IS NULL
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 @FormatNextGetDate
WHEN @TaskType != 'OUTSTANDING' THEN @FormatNextToDate
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([DIA].[Subject],'')
ELSE 'Email To:' + RTRIM(CAST(ISNULL([DIA].[AddressTo],'') AS VARCHAR(50))) + ' - ' + ISNULL([DIA].[Subject],'')
END
ELSE
CASE
WHEN [DIA].[SUBJECT] IS NULL OR RTRIM([DIA].[SUBJECT]) = '' 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 EXISTS (
SELECT 1
FROM @ActionTypeTable AS [AT]
WHERE [AT].Item =
CASE
WHEN ISNULL(LTRIM(RTRIM(DIA.[ACTIONTYPE])), '') = '' THEN 'A'
ELSE DIA.[ACTIONTYPE]
END
)
)
AND
(
ISNULL(@Priority, '') = ''
OR EXISTS (
SELECT 1
FROM @PriorityTable AS [PT]
WHERE [PT].Item = RTRIM(LTRIM(DIA.[PRIORITY]))
)
)
AND
(
ISNULL(@Flag, '') = ''
OR EXISTS (
SELECT 1
FROM @FlagTable AS FT
WHERE FT.Item = ISNULL(DIA.[Flag], 0)
)
)
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],
CONVERT(DATETIME,CONVERT(DATETIMEOFFSET, [DEL].[DATE]) AT TIME ZONE (SELECT @HandlerTimeZone)) AS [DelDate],
CONVERT(VARCHAR(5),CONVERT(DATETIMEOFFSET, [DEL].[DATE]) AT TIME ZONE (SELECT @HandlerTimeZone), 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
* 2024-10-09 Ponni M Column names changed to the camelCase letters from upperCase
*******************************************************************************************************/
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_GetUniqueSystemUserDefinedFields',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GetUniqueSystemUserDefinedFields]
GO
CREATE PROCEDURE [dbo].[KAAS_GetUniqueSystemUserDefinedFields]
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_GetUniqueSystemUserDefinedFields]
* Description: This procedure is used to get distinct system field for import document codes
* Modification History:
*
* 2024-08-16 Balamurugan.C Created
*********************************************************************************************/
BEGIN
SELECT DISTINCT [FILEPREFIX] AS [FilePrefix]
FROM [dbo].[SystemUserDefinedFields]
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 *
* 2024-07-17 Balamurugan.C Modified : Changed id column as Id and Parameter name *
proper naming conversion *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT [TACL].[id] AS [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 OBJECT_ID(N'KAAS_IgnoreClientContact',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_IgnoreClientContact]
GO
CREATE PROCEDURE
[dbo].[KAAS_IgnoreClientContact]
(@CaseCode VARCHAR(20))
AS
/*************************************************************************************************************
* *
* [dbo].[KAAS_IgnoreClientContact] *
* Instruct the .NET Document Generator to ignore the fact that there are no Client Contacts for this client *
* *
* *
* Modification History *
* 2024-09-18 Sadiq Created *
* *
*************************************************************************************************************/
BEGIN
INSERT
INTO [dbo].[IgnoreClientContacts]
([ClientCode])
SELECT [NEW].[ClientCode]
FROM (SELECT [MAT].[ClientCode] AS [ClientCode]
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @CaseCode) [NEW]
LEFT OUTER JOIN [dbo].[IgnoreClientContacts] [ICC]
ON [ICC].[ClientCode] = [NEW].[ClientCode]
WHERE [ICC].[ClientCode] IS NULL
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] = N'KAAS_ImportActionDocuments'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ImportActionDocuments]
END
GO
CREATE PROCEDURE [dbo].[KAAS_ImportActionDocuments]
(
@CasePlanDocumentDetailsTypeTbl CasePlanDocumentDetailsType READONLY
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_ImportActionDocuments]
* Copied From : [dbo].[ky_NETImportActionDocuments]
* Description: Import Action Documents
* Modification History:
*
* 2024-08-09 Balamurugan.C Created
*********************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE [TDC]
SET [TDC].[FILEPATH] = [CDT].[FILEPATH],
[TDC].[NAME] = [CDT].[NAME],
[TDC].[TYPE] = [CDT].[TYPE],
[TDC].[DOCCLASS] = [CDT].[DOCCLASS],
[TDC].[STARTTOKEN] = [CDT].[StartToken],
[TDC].[ENDTOKEN] = [CDT].[EndToken],
[TDC].[DICTATION] = [CDT].[DICTATION],
[TDC].[OPENDURINGDICTATION] = [CDT].[OPENDURINGDICTATION],
[TDC].[STORE] = [CDT].[STORE],
[TDC].[OVERWRITE] = [CDT].[OverWrite]
FROM [dbo].[TemplateDocuments] [TDC]
INNER JOIN @CasePlanDocumentDetailsTypeTbl [CDT]
ON [CDT].[CODE] = [TDC].[CODE]
WHERE [CDT].[RecordStatus] <> 3
INSERT
INTO [dbo].[TemplateDocuments]
([CODE],
[FILEPATH],
[NAME],
[TYPE],
[DOCCLASS],
[STARTTOKEN],
[ENDTOKEN],
[DICTATION],
[OPENDURINGDICTATION],
[STORE],
[OVERWRITE])
SELECT [CDT].[CODE],
[CDT].[FILEPATH],
[CDT].[NAME],
[CDT].[TYPE],
[CDT].[DOCCLASS],
[CDT].[StartToken],
[CDT].[EndToken],
[CDT].[DICTATION],
[CDT].[OPENDURINGDICTATION],
[CDT].[STORE],
[CDT].[OverWrite]
FROM @CasePlanDocumentDetailsTypeTbl [CDT]
LEFT JOIN [dbo].[TemplateDocuments] [TDC]
ON [TDC].[CODE] = [CDT].[CODE]
WHERE [TDC].[CODE] IS NULL AND [CDT].[RecordStatus] <> 3
UPDATE [TAD]
SET [TAD].[OPTIONAL] = [CDT].[OPTIONAL]
FROM [dbo].[TemplateActionDcouments] [TAD]
INNER JOIN @CasePlanDocumentDetailsTypeTbl [CDT]
ON [CDT].[ACTION] = [TAD].[ACTION]
AND [CDT].[CODE] = [TAD].[DOCUMENT]
WHERE [CDT].[RecordStatus] <> 3
INSERT
INTO [dbo].[TemplateActionDcouments]
([ACTION],
[DOCUMENT],
[OPTIONAL]
)
SELECT [CDT].[ACTION],
[CDT].[DOCUMENT],
[CDT].[OPTIONAL]
FROM @CasePlanDocumentDetailsTypeTbl [CDT]
LEFT JOIN [dbo].[TemplateActionDcouments] [TAD]
ON [TAD].[ACTION] = [CDT].[ACTION]
AND [TAD].[DOCUMENT] = [CDT].[CODE]
WHERE [TAD].[DOCUMENT] IS NULL AND [CDT].[RecordStatus] <> 3
DECLARE @TADS TABLE
([SeqNo] INT IDENTITY(0, 1) PRIMARY KEY NOT NULL,
[DOCUMENT] VARCHAR(10) NOT NULL,
[ACTION] VARCHAR(15) NOT NULL)
INSERT INTO @TADS
([DOCUMENT],
[ACTION])
SELECT [TAD2].[DOCUMENT],
[TAD2].[ACTION]
FROM [dbo].[TemplateActionDcouments] [TAD2]
INNER JOIN @CasePlanDocumentDetailsTypeTbl [CDT]
ON [TAD2].[ACTION] = [CDT].[ACTION]
ORDER BY ISNULL([TAD2].[SeqNo], 999),
[TAD2].[DOCUMENT];
UPDATE [TAD]
SET [TAD].[SeqNo] = [SQ].[SeqNo]
FROM @TADS [SQ]
INNER JOIN [dbo].[TemplateActionDcouments] [TAD]
ON [TAD].[ACTION] = [SQ].[ACTION]
AND [TAD].[DOCUMENT] = [SQ].[DOCUMENT]
INNER JOIN @CasePlanDocumentDetailsTypeTbl [CDT]
ON [CDT].[ACTION] = [TAD].[ACTION]
AND [CDT].[CODE] = [TAD].[DOCUMENT];
DECLARE @PRECEDENTFOLDER VARCHAR(255)
-- Get the Precedent Folder from SystemConfig
SELECT @PRECEDENTFOLDER = [SCPRECEDENTFOLDER]
FROM [dbo].[SystemConfig]
-- Trim any trailing spaces from the folder path
SET @PRECEDENTFOLDER = RTRIM(ISNULL(@PRECEDENTFOLDER, ''))
-- If the Precedent Folder is empty, return without making any updates
IF @PRECEDENTFOLDER = ''
BEGIN
RETURN
END
-- Ensure the folder path ends with a backslash
IF SUBSTRING(@PRECEDENTFOLDER, LEN(@PRECEDENTFOLDER), 1) <> '\'
BEGIN
SET @PRECEDENTFOLDER = @PRECEDENTFOLDER + '\'
END
-- Perform the bulk update on records in TemplateDocuments that match codes in the table type
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]
INNER JOIN @CasePlanDocumentDetailsTypeTbl [CDT]
ON [TD].[CODE] = [CDT].[CODE]
WHERE [TD].[FILEPATH] LIKE 'C:\%AzurePrecedents%'
END
GO
IF EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_ImportAddCasePlan'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ImportAddCasePlan]
END
GO
CREATE PROCEDURE [dbo].[KAAS_ImportAddCasePlan]
(
@WKTYPE VARCHAR(3),
@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)
)
AS
/*************************************************************************************************************
* This procedure used for case plan import - Adding basic case plan details *
* *
* Stored Procedure Name : [dbo].[KAAS_ImportAddCasePlan] *
* Copied from : [dbo].[Ky_NetImportAddCasePlan] *
* *
* Modification History : *
* 2024-08-08 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @SCPRECENDENTPATH VARCHAR(100)
SELECT @SCPRECENDENTPATH = ISNULL(RTRIM(SCF.[SCPRECEDENTFOLDER]),'')
FROM [dbo].[SystemConfig] SCF
IF @SCPRECENDENTPATH <> ''
BEGIN
SET @WKPATH = @SCPRECENDENTPATH + '\' + @WKDESC
END
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[Templates] TMP
WHERE TMP.[WKCODE] = @WKCODE)
BEGIN
UPDATE TMP
SET TMP.[WKDESC] = @WKDESC,
TMP.[WKACCSRN] = @WKACCSRN,
TMP.[WKSRNLIT] = @WKSRNLIT,
TMP.[WKSRNCON] = @WKSRNCON,
TMP.[WKSRNPRB] = @WKSRNPRB,
TMP.[WKSRNDRC] = @WKSRNDRC,
TMP.[WKSRNGEN] = @WKSRNGEN,
TMP.[WKPATH] = @WKPATH,
TMP.[Dept] = @Dept
FROM [dbo].[Templates] TMP
WHERE TMP.[WKCODE] = @WKCODE
END
ELSE
BEGIN
INSERT
INTO [dbo].[Templates]
([WKTYPE],
[WKCODE],
[WKDESC],
[WKACTION],
[WKACCSRN],
[WKSRNLIT],
[WKSRNCON],
[WKSRNPRB],
[WKSRNDRC],
[WKSRNGEN],
[WKPATH],
[Dept],
[SourceMatter])
VALUES(@WKTYPE,
@WKCODE,
@WKDESC,
@WKACTION,
@WKACCSRN,
@WKSRNLIT,
@WKSRNCON,
@WKSRNPRB,
@WKSRNDRC,
@WKSRNGEN,
@WKPATH,
@Dept,
@SourceMatter)
END
SET NOCOUNT OFF
END
GO
IF EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_ImportAddTemplateActions'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ImportAddTemplateActions]
END
GO
CREATE PROCEDURE [dbo].[KAAS_ImportAddTemplateActions]
(
@CaseWorkFlowActionsTypeTbl CaseWorkFlowActionsType READONLY
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_ImportAddTemplateActions]
* Copied From : [dbo].[ky_NETImportAddTemplateActions]
* Description: To Insert the Action List for case plan
* Modification History:
*
* 2024-08-09 Balamurugan.C Created
*********************************************************************************************/
BEGIN
UPDATE [TMA]
SET [TMA].[DESC] = RTRIM(ISNULL([CWT].[DESC],'')),
[TMA].[WKTCODE] = [CWT].[WKTCODE],
[TMA].[ACTTYPE] = [CWT].[ACTTYPE],
[TMA].[ACTIONCATEGORY] = [CWT].[Actioncategory],
[TMA].[STATUS] = [CWT].[STATUS],
[TMA].[PROCESSTYPE] = [CWT].[PROCESSTYPE],
[TMA].[PUBLISHER] = [CWT].[PUBLISHER],
[TMA].[UPDATEFIELD] = [CWT].[UPDATEFIELD],
[TMA].[UPDATEVALUE] = [CWT].[UPDATEVALUE],
[TMA].[HIGHLIGHTED] = [CWT].[HIGHLIGHTED],
[TMA].[MILESTONETYPE] = [CWT].[MILESTONETYPE],
[TMA].[PRIORITY] = [CWT].[PRIORITY],
[TMA].[NEXTACTIONOPTIONAL] = [CWT].[NEXTACTIONOPTIONAL],
[TMA].[BILLABLE] = [CWT].[BILLABLE],
[TMA].[EMAIL] = [CWT].[EMAIL],
[TMA].[BILLDESCRIPTION] = [CWT].[BILLDESCRIPTION],
[TMA].[AssignActionTo] = [CWT].[AssignActionTo],
[TMA].[ASSIGNHANDLER] = [CWT].[SASSIGNHANDLER],
[TMA].[AssignTeamActionTo] = [CWT].[AssignTeamActionTo],
[TMA].[ASSIGNTEAM] = [CWT].[ASSIGNTEAM],
[TMA].[ChargeValue] = [CWT].[ChargeValue],
[TMA].[Arrangement] = [CWT].[Arrangement],
[TMA].[ChargeInterest] = [CWT].[ChargeInterest],
[TMA].[Description] = RTRIM(ISNULL([CWT].[Description],'')),
[TMA].[AutoPopulate] = [CWT].[AutoPopulate],
[TMA].[RequiredAction] = [CWT].[RequiredAction],
[TMA].[AuthorisationRequired] = [CWT].[AuthorisationRequired],
[TMA].[Authby] = [CWT].[Authby],
[TMA].[ConfirmByPW] = [CWT].[ConfirmByPW],
[TMA].[Flag] = [CWT].[Flag]
FROM [dbo].[TemplateActions] [TMA]
INNER JOIN @CaseWorkFlowActionsTypeTbl [CWT]
ON [TMA].[ACTIONCODE] = [CWT].[ACTIONCODE]
WHERE [CWT].[RecordStatus] <> 3;
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])
SELECT
[CWT].[ACTIONCODE],
RTRIM(ISNULL([CWT].[DESC],'')),
[CWT].[WKTCODE],
[CWT].[ACTTYPE],
[CWT].[Actioncategory],
[CWT].[STATUS],
[CWT].[PROCESSTYPE],
[CWT].[PUBLISHER],
[CWT].[UPDATEFIELD],
[CWT].[UPDATEVALUE],
[CWT].[HIGHLIGHTED],
[CWT].[MILESTONETYPE],
[CWT].[PRIORITY],
[CWT].[NEXTACTIONOPTIONAL],
[CWT].[BILLABLE],
[CWT].[EMAIL],
[CWT].[BILLDESCRIPTION],
[CWT].[AssignActionTo],
[CWT].[SASSIGNHANDLER] AS [ASSIGNHANDLER],
[CWT].[AssignTeamActionTo],
[CWT].[ASSIGNTEAM],
[CWT].[ChargeValue],
[CWT].[Arrangement],
[CWT].[ChargeInterest],
RTRIM(ISNULL([CWT].[Description],'')),
[CWT].[AutoPopulate],
[CWT].[RequiredAction],
[CWT].[AuthorisationRequired],
[CWT].[Authby],
[CWT].[ConfirmByPW],
[CWT].[Flag]
FROM @CaseWorkFlowActionsTypeTbl [CWT]
LEFT JOIN [TemplateActions] [TMA]
ON [TMA].[ACTIONCODE] = [CWT].[ACTIONCODE]
WHERE [TMA].[ACTIONCODE] IS NULL AND [CWT].[RecordStatus]<> 3
END
GO
IF EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_ImportCasePlanUDF'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ImportCasePlanUDF]
END
GO
CREATE PROCEDURE [dbo].[KAAS_ImportCasePlanUDF]
(
@CasePlanUdfTypeTbl CasePlanUdfType READONLY
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_ImportCasePlanUDF]
* Copied From : [dbo].[Ky_NETImportCasePlanUDF]
* Description: Import Action Documents
* Modification History:
*
* 2024-08-12 Balamurugan.C Created
*********************************************************************************************/
BEGIN
UPDATE [UWT]
SET [UWT].[UDUVCODE] =[CPU].[UDUVCODE],
[UWT].[IncludeInMatterCopy] =[CPU].[IncludeInMatterCopy]
FROM [dbo].[Udftemplatesworktypes] [UWT]
INNER JOIN @CasePlanUdfTypeTbl [CPU]
ON ISNULL(RTRIM([CPU].[UDWKCODE]),'') = ISNULL(RTRIM([UWT].[UDWKCODE]),'')
AND ISNULL(RTRIM([CPU].[UDUVCODE]),'') = ISNULL(RTRIM([UWT].[UDUVCODE]),'')
AND ISNULL(RTRIM([CPU].[UDFILE]),'') = ISNULL(RTRIM([UWT].[UDFILE]),'')
WHERE [CPU].[RecordStatus] <> 4
INSERT INTO [dbo].[Udftemplatesworktypes]
(
[IncludeInMatterCopy],
[UDFILE],
[UDSEQ],
[UDUVCODE],
[UDWKCODE]
)
SELECT [CPU].[IncludeInMatterCopy],
[CPU].[UDFILE],
[CPU].[UDSEQ],
[CPU].[UDUVCODE],
[CPU].[UDWKCODE]
FROM @CasePlanUdfTypeTbl [CPU]
LEFT JOIN [Udftemplatesworktypes] [UWT]
ON ISNULL(RTRIM([UWT].[UDWKCODE]),'') = ISNULL(RTRIM([CPU].[UDWKCODE]),'')
AND ISNULL(RTRIM([UWT].[UDUVCODE]),'') = ISNULL(RTRIM([CPU].[UDUVCODE]),'')
AND ISNULL(RTRIM([UWT].[UDFILE]),'') = ISNULL(RTRIM([CPU].[UDFILE]),'')
WHERE [UWT].[UDUVCODE] IS NULL AND [CPU].[RecordStatus] <> 4
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_ImportFollowupActions', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_ImportFollowupActions]
GO
CREATE PROCEDURE [dbo].[KAAS_ImportFollowupActions]
(
@CasePlanFollowUpActionTypeTbl CasePlanFollowUpActionType READONLY
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_ImportFollowupActions]
* Copied From : [dbo].[ky_NETImportFollowupActions]
* Description: Import Follow up actions
* Modification History:
*
* 2024-08-09 Balamurugan.C Created
*********************************************************************************************/
BEGIN
UPDATE [TNA]
SET [TNA].[DECISION] = [CAF].[DECISION],
[TNA].[OPTIONAL] = [CAF].[OPTIONAL],
[TNA].[WHENTYPE] = [CAF].[WHENTYPE],
[TNA].[WHEN] = [CAF].[WHEN]
FROM [dbo].[TemplateNextActions] [TNA]
INNER JOIN @CasePlanFollowUpActionTypeTbl [CAF]
ON [CAF].[ACTION] = [CAF].[ACTION]
AND [CAF].[NEXTACTION] = [CAF].[NEXTACTION]
INSERT INTO [dbo].[TemplateNextActions]
([ACTION]
,[NEXTACTION]
,[DECISION]
,[OPTIONAL]
,[WHENTYPE]
,[WHEN])
SELECT [CAF].[ACTION],
[CAF].[NEXTACTION],
[CAF].[DECISION],
[CAF].[OPTIONAL],
[CAF].[WHENTYPE],
[CAF].[WHEN]
FROM @CasePlanFollowUpActionTypeTbl [CAF]
LEFT JOIN [dbo].[TemplateNextActions] [TNA]
ON [TNA].[ACTION] = [CAF].[ACTION]
AND [TNA].[NEXTACTION] = [CAF].[NEXTACTION]
WHERE [TNA].[NEXTACTION] IS NULL
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 EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_InsertCasePlanCheckList'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertCasePlanCheckList]
END
GO
CREATE PROCEDURE [dbo].[KAAS_InsertCasePlanCheckList]
(
@CasePlanTemplateCheckListTypeTbl CasePlanTemplateCheckListType READONLY
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_InsertCasePlanCheckList]
* Description: Import Checklist items to case plan
* Modification History:
*
* 2024-08-13 Balamurugan.C Created
*********************************************************************************************/
BEGIN
UPDATE [TCL]
SET [TCL].[ACTIONCODE] = [CCL].[ACTIONCODE],
[TCL].[Sequence] = [CCL].[Sequence],
[TCL].[ChecklistItem] = [CCL].[ChecklistItem],
[TCL].[Optional] = [CCL].[Optional]
FROM [dbo].[TemplateActionChecklists] [TCL]
JOIN @CasePlanTemplateCheckListTypeTbl [CCL]
ON [CCL].[ACTIONCODE] = [TCL].[ACTIONCODE]
INSERT INTO [dbo].[TemplateActionChecklists]
(
[ACTIONCODE],
[Sequence],
[ChecklistItem],
[Optional]
)
SELECT [CCL].[ACTIONCODE],
[CCL].[Sequence],
[CCL].[ChecklistItem],
[CCL].[Optional]
FROM @CasePlanTemplateCheckListTypeTbl [CCL]
LEFT JOIN [dbo].[TemplateActionChecklists] [TCL]
ON [TCL].[ACTIONCODE] = [CCL].[ACTIONCODE]
WHERE [TCL].[ACTIONCODE] IS NULL
END
GO
IF EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_InsertCasePlanEmailTemplate'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertCasePlanEmailTemplate]
END
GO
CREATE PROCEDURE [dbo].[KAAS_InsertCasePlanEmailTemplate]
(
@CasePlanEmailTemplateTypeTbl CasePlanEmailTemplateType READONLY
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_InsertCasePlanEmailTemplate]
* Description: Import Email Template for Case Plan
* Modification History:
*
* 2024-08-13 Balamurugan.C Created
*********************************************************************************************/
BEGIN
UPDATE [TME]
SET [TME].[EMAILTO] = [CET].[EMAILTO],
[TME].[EMAILCC] = [CET].[EMAILCC],
[TME].[EMAILBCC] = [CET].[EMAILBCC],
[TME].[SUBJECT] = [CET].[SUBJECT],
[TME].[INCLUDEATTACHMENTS] = [CET].[INCLUDEATTACHMENTS],
[TME].[REQUESTREADRECIPT] = [CET].[REQUESTREADRECIPT],
[TME].[PRIORITY] = [CET].[PRIORITY],
[TME].[BODY] = [CET].[BODY],
[TME].[IncludeAttachmentsPDF] = [CET].[IncludeAttachmentsPDF]
FROM [dbo].[TemplateEmails] [TME]
INNER JOIN @CasePlanEmailTemplateTypeTbl [CET]
ON [CET].[ACTIONID] = [TME].[ACTIONID]
INSERT INTO [dbo].[TemplateEmails]
(
[ACTIONID],
[EMAILTO],
[EMAILCC],
[EMAILBCC],
[SUBJECT],
[INCLUDEATTACHMENTS],
[REQUESTREADRECIPT],
[PRIORITY],
[BODY],
[IncludeAttachmentsPDF]
)
SELECT [CET].[ACTIONID],
[CET].[EMAILTO],
[CET].[EMAILCC],
[CET].[EMAILBCC],
[CET].[SUBJECT],
[CET].[INCLUDEATTACHMENTS],
[CET].[REQUESTREADRECIPT],
[CET].[PRIORITY],
[CET].[BODY],
[CET].[IncludeAttachmentsPDF]
FROM @CasePlanEmailTemplateTypeTbl [CET]
LEFT JOIN [dbo].[TemplateEmails] [TME]
ON [TME].[ACTIONID] = [CET].[ACTIONID]
WHERE [TME].[ACTIONID] IS NULL
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 *
* 2024-10-18 Ponni M @DATEENTERED varchar(11) changed to Varchar(12) *
* 2024-11-14 Aakif #19116 - While inserting in DiaryAttachments should be 'Captured' for *
* 'Capture' and 'Case' if none is provided *
*******************************************************************************************************/
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
-- #19116 - Source should be Captured Or Case
IF(ISNULL(@Source, '') = '')
BEGIN
SET @Source = 'Case'
END
ELSE IF(@Source = 'Capture')
BEGIN
SET @Source = 'Captured'
END
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(12),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 OBJECT_ID(N'KAAS_InsertDocumentAssistValueXML', N'P') IS NOT NULL
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 *
* 2024-10-18 Ponni M Isexist condition check changed
************************************************************************************************/
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 *
* 2024-10-28 Ponni M All the GetDate() method converted into the GETUTCDATE() *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
--Diary
DECLARE @TIMECONVERT INT
SET @TIMECONVERT = dbo.ky_ConvertTimeToClarion(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 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,
GETUTCDATE(),
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,
GETUTCDATE(),
@TIMECONVERT,
null,
@TIMECONVERT,
GETUTCDATE(),
@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 *
* 2024-10-28 Ponni M All the GetDate() method converted into the GETUTCDATE() *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
--Diary
DECLARE @TIMECONVERT INT
SET @TIMECONVERT = dbo.ky_ConvertTimeToClarion(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 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,
GETUTCDATE(),
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 OBJECT_ID(N'KAAS_InsertUndertakings', N'P') IS NOT NULL
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] *
* 2024-10-18 Ponni M Isexist condition check changed
* 2024-11-04 Nithyanandham.M Date value convert issue fix.
*******************************************************************************************************/
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 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(15),@UndertakingsDate) = CONVERT(VARCHAR(15),@UndertakingDATE1) AND @GivenorReceived1 = @GivenReceived AND @CommercialOrNon = @CommercialNon1 AND @Type = @TYPE1 AND @DealingNo = @DeelingNo1 AND @UStatus1 = @StatusID AND CONVERT(VARCHAR(15),@WarningDATE1) = CONVERT(VARCHAR(15),@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(15),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(15)
DECLARE @DiaryWarningDateOLD VARCHAR(15)
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(15),UDEL.[DUEDATE],106),
@DiaryWarningDateOLD = CONVERT(VARCHAR(15),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(15),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(15),CONVERT(DATETIME,@UndertakingsDate),106)
OR @DiaryWarningDateOLD <> CONVERT(VARCHAR(15),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(15), @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 EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_InsertWorkFlowEmail'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertWorkFlowEmail]
END
GO
CREATE PROCEDURE [dbo].[KAAS_InsertWorkFlowEmail]
(@RecordID INT,
@ActionID VARCHAR(15),
@EmailTo VARCHAR(MAX),
@EmailCC VARCHAR(MAX),
@EmailBCC VARCHAR(MAX),
@Subject VARCHAR(MAX),
@IncludeAttachment VARCHAR(1),
@IncludeAttachmentPDF VARCHAR(1),
@Priority VARCHAR(1),
@RequestReadReceipt VARCHAR(1),
@Body VARCHAR(MAX))
/*************************************************************************************************************
Description: This procedure is used Insert the information for work flow Action Page Email Tab. *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertWorkFlowEmail] *
* Copied from : [dbo].[ky_NETInsertWorkFlowEmail] *
* *
* Modification History : *
* 2024-07-24 Balamurugan C Created *
*************************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
SET @RecordID = ISNULL(@RecordID, 0)
IF @RecordID = 0
BEGIN
INSERT
INTO [dbo].[TemplateEmails]
([ACTIONID],
[EMAILTO],
[EMAILCC],
[EMAILBCC],
[SUBJECT],
[INCLUDEATTACHMENTS],
[INCLUDEATTACHMENTSPDF],
[PRIORITY],
[RequestReadRecipt],
[BODY])
VALUES(@ActionID,
@EmailTo,
@EmailCC,
@EmailBCC,
@Subject,
@IncludeAttachment,
@IncludeAttachmentPDF,
@Priority,
@RequestReadReceipt,
@Body)
END
ELSE
BEGIN
UPDATE TEM
SET TEM.[ACTIONID] = @ActionID,
TEM.[EMAILTO] = @EmailTo,
TEM.[EMAILCC] = @EmailCC,
TEM.[EMAILBCC] = @EmailBCC,
TEM.[SUBJECT] = @Subject,
TEM.[INCLUDEATTACHMENTS] = @IncludeAttachment,
TEM.[INCLUDEATTACHMENTSPDF] = @IncludeAttachmentPDF,
TEM.[Priority] = @Priority,
TEM.[RequestReadRecipt] = @RequestReadReceipt,
TEM.[BODY] = @Body
FROM [dbo].[TemplateEmails] TEM
WHERE TEM.[RECORDID] = @RecordID
END
SET NOCOUNT OFF
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 *
* 2024-08-27 Sadiq Associates Type to be returned for Doc Generation Associates(18834) *
* 2024-10-14 Ghayathri.SV Updated the grid fetchnig logic based on the ky_NETSPLoadAssociateParties *
*******************************************************************************************************/
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],
UPPER(RTRIM(ISNULL([CAT].[TYPECODE], ''''))) AS [CONTYPE],
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]
LEFT OUTER 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 OBJECT_ID(N'KAAS_MaintainLoadMaster',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadMaster]
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 *
* 2024-12-03 Sadiq Modified Added FeeType also in the SP *
*******************************************************************************************************/
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
ELSE IF (@MasterName='FeeTypes')
BEGIN
SELECT
[ID] AS 'Id',
[Description] AS 'Description',
CASE [Retired] WHEN 1 THEN 'Y'
ELSE 'N' END AS [Retired]
FROM
[dbo].[FeeTypes]
ORDER BY
[Id]
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 OBJECT_ID(N'KAAS_ModifyActionPhonelog',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_ModifyActionPhonelog]
GO
CREATE PROCEDURE
[dbo].[KAAS_ModifyActionPhonelog]
(@CASECODE VARCHAR(20),
@DATE DATETIME,
@STATUS SMALLINT,
@ACTIONCODE VARCHAR(15),
@ACTIONSTATUS VARCHAR(3),
@ACTIONTYPE VARCHAR(1),
@PROCESSTYPE VARCHAR(1),
@FNCODE VARCHAR(10),
@HandlerCode 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 update the phone log information *
* *
* Stored Procedure Name : [dbo].[KAAS_ModifyActionPhonelog] *
* Copied from : [dbo].[KAAS_ModifyDiaryDetails] *
* *
* Modification History : *
* 2024-10-29 Ponni M Created *
*
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @TIMECONVERT INT
SET @TIMECONVERT = dbo.ky_ConvertTimeToClarion(dbo.KAAS_FNConvertDateToUTC(@DYSTARTTIME, @HandlerCODE))
--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, @HandlerCODE))
--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, @HandlerCODE),
[STATUS] = @STATUS,
[ACTIONCODE] = @ACTIONCODE,
[ACTIONSTATUS] = @ACTIONSTATUS,
[ACTIONTYPE] = @ACTIONTYPE,
[FNCODE] = @FNCODE,
[TEAMCODE] = @TEAMCODE,
[TEXT1] = @TEXT1,
[TEXT2] = @TEXT2,
[DUEDATE] = dbo.KAAS_FNConvertDateToUTC(@DUEDATE, @HandlerCODE),
[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, @HandlerCODE),
DEL.[DUEDATE] = dbo.KAAS_FNConvertDateToUTC(@DUEDATE, @HandlerCODE)
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 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_MoveWorkflowActionChecklistItem'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_MoveWorkflowActionChecklistItem]
END
GO
CREATE PROCEDURE [dbo].[KAAS_MoveWorkflowActionChecklistItem]
(@Id INT,
@Direction INT)
AS
/*************************************************************************************************************
* Moves a WorkFlow Action Checklist item *
* @Direction: 1 = to the top *
* 2 = up by one *
* 3 = down by one *
* 4 = to the bottom *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_MoveWorkflowActionChecklistItem] *
* Copied from : [dbo].[ky_NETSPMoveWorkflowActionChecklistItem] *
* *
* Modification History : *
* 2024-07-18 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @ACTIONCODE VARCHAR(15)
DECLARE @CURRENTSEQUENCE INT
DECLARE @IDS TABLE
([Seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[ID] INT NOT NULL)
SELECT @ACTIONCODE = [TACL].[ACTIONCODE],
@CURRENTSEQUENCE = [TACL].[Sequence]
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[id] = @Id
IF @Direction = 1 --To The Top
BEGIN
INSERT
INTO @IDS
([ID])
VALUES(@Id)
INSERT
INTO @IDS
([ID])
SELECT [TACL].[id]
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[ACTIONCODE] = @ACTIONCODE
AND [TACL].[id] <> @Id
ORDER BY [TACL].[Sequence]
END
IF @Direction = 2 --Up by one
BEGIN
INSERT
INTO @IDS
([ID])
SELECT [TACL].[id]
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[ACTIONCODE] = @ACTIONCODE
AND [TACL].[id] <> @Id
AND [TACL].[Sequence] < @CURRENTSEQUENCE - 1
ORDER BY [TACL].[Sequence]
INSERT
INTO @IDS
([ID])
VALUES(@Id)
INSERT
INTO @IDS
([ID])
SELECT [TACL].[id]
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[ACTIONCODE] = @ACTIONCODE
AND [TACL].[id] <> @Id
AND [TACL].[Sequence] >= @CURRENTSEQUENCE - 1
ORDER BY [TACL].[Sequence]
END
IF @Direction = 3 --Down by one
BEGIN
INSERT
INTO @IDS
([ID])
SELECT [TACL].[id]
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[ACTIONCODE] = @ACTIONCODE
AND [TACL].[id] <> @Id
AND [TACL].[Sequence] <= @CURRENTSEQUENCE + 1
ORDER BY [TACL].[Sequence]
INSERT
INTO @IDS
([ID])
VALUES(@Id)
INSERT
INTO @IDS
([ID])
SELECT [TACL].[id]
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[ACTIONCODE] = @ACTIONCODE
AND [TACL].[id] <> @Id
AND [TACL].[Sequence] > @CURRENTSEQUENCE + 1
ORDER BY [TACL].[Sequence]
END
IF @Direction = 4 --To the bottom
BEGIN
INSERT
INTO @IDS
([ID])
SELECT [TACL].[id]
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[ACTIONCODE] = @ACTIONCODE
AND [TACL].[id] <> @Id
ORDER BY [TACL].[Sequence]
INSERT
INTO @IDS
([ID])
VALUES(@Id)
END
UPDATE [TACL]
SET [TACL].[Sequence] = [IDS].[Seq]
FROM @IDS [IDS]
INNER JOIN [dbo].[TemplateActionChecklists] [TACL]
ON [TACL].[id] = [IDS].[ID]
SET NOCOUNT OFF
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) *
* 2024-08-05 Ghayathri.S.V Fetched FE Code *
*******************************************************************************************************/
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(HAN.[CODE], '''')) AS [FeCode],
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 OBJECT_ID(N'KAAS_OtherCaseDetailsFetchEditDialog', N'P') IS NOT NULL
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 *
* 2024-10-18 Ponni M Isexist condition check changed
*******************************************************************************************************/
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(12),
@INITIALDATE,
106)
ELSE CONVERT(VARCHAR(12),
[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 TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_RedistributeFeesXML'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_RedistributeFeesXML]
END
GO
CREATE PROCEDURE [dbo].[KAAS_RedistributeFeesXML] (
@XML NVARCHAR(MAX))
AS
/***************************************************************
* Redistributes an invoices fees, updates the transactions
* and nominal ledger reports
*
* Stored Procedure : [KAAS_RedistributeFeesXML]
*
* Example XML:
*
*
*
*
*
* Copied From : [ky_NETRedistributeFeesXML]
*
* Modification History:
* 2024-07-08 Balamurugan.C Created
***************************************************************/
BEGIN
SET NOCOUNT ON;
--SET @XML = '
--
--
--'
DECLARE @idoc INT
BEGIN TRY
EXEC sp_xml_preparedocument @idoc OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @idoc OUTPUT, ''
END CATCH
DECLARE @USER VARCHAR(10)
DECLARE @Handler VARCHAR(10)
DECLARE @WindowsUser VARCHAR(50)
DECLARE @DRAFTNO INT
DECLARE @BATCHNO INT
DECLARE @MATTER VARCHAR(20)
DECLARE @TODAY DATETIME
DECLARE @IsBranchingEnabled BIT
DECLARE @INVCR INT
DECLARE @VATNOMINAL VARCHAR(10)
DECLARE @BaseCurrency CHAR(1)
DECLARE @EICONVERT DECIMAL(9, 6)
DECLARE @TimeCosting CHAR(1)
DECLARE @Outlay CHAR(10)
SELECT @BaseCurrency = [CON].[BASECURRENCY],
@EICONVERT = 0.787564, -- This is hard coded in clarion code
@TimeCosting = [CON].[TIMECOSTING],
@Outlay = [CON].[OUTLAY],
@TODAY = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0),
@IsBranchingEnabled = CASE WHEN ISNULL([CON].[INDICATOR22], '') = 'Y' THEN 1 ELSE 0 END,
@INVCR = 1,
@VATNOMINAL = [CON].[VAT]
FROM [dbo].[control] [CON]
SELECT @DRAFTNO = [XML].[DRAFTNO],
@USER = [XML].[USER],
@Handler = ISNULL([XML].[Handler], ''),
@WindowsUser = ISNULL([XML].[WindowsUser], '')
FROM OPENXML(@idoc, 'NewBreakdown', 2)
WITH([DRAFTNO] INT '@DRAFTNO',
[USER] VARCHAR(10) '@USER',
[Handler] VARCHAR(10) '@Handler',
[WindowsUser] VARCHAR(50) '@WindowsUser') AS [XML]
SELECT @BATCHNO = [BIH].[BATCHNO],
@MATTER = [BIH].[MATTER]
FROM [dbo].[BillHeader] AS [BIH]
WHERE [BIH].[DRAFTNO] = @DRAFTNO
SELECT @INVCR = CASE WHEN [BAH].[INVCR] = 'C' THEN -1 ELSE 1 END
FROM [dbo].[BatchH] AS [BAH]
WHERE [BAH].[BATCHNO] = @BATCHNO
IF ISNULL(@DRAFTNO, 0) = 0 OR ISNULL(@BATCHNO, 0) = 0
BEGIN
RETURN
END
DELETE [NML]
FROM [dbo].[NominalLedger] AS [NML]
INNER JOIN [dbo].[BatchDetails] AS [BAD]
ON [BAD].[BATCHNO] = [NML].[BATCHNO]
AND [BAD].[PREF] = [NML].[PREF]
WHERE [NML].[BATCHNO] = @BATCHNO
AND [BAD].[OUTLAY] = 'F'
DELETE [BAD]
FROM [dbo].[BatchDetails] AS [BAD]
WHERE [BAD].[BATCHNO] = @BATCHNO
AND [BAD].[OUTLAY] = 'F'
DELETE [BFBD]
FROM [dbo].[BillFeeBreakDown] AS [BFBD]
WHERE [BFBD].[DRAFTNO] = @DRAFTNO
INSERT INTO [dbo].[BillFeeBreakDown] (
[MATTER],
[DRAFTNO],
[BILLNO],
[FECODE],
[TYPE],
[PERCENT],
[CALCULATION],
[VALUE],
[VATCODE],
[VATAMT],
[VATCalculation])
SELECT [XML].[MATTER],
[XML].[DRAFTNO],
[XML].[BILLNO],
[XML].[FECODE],
[XML].[TYPE],
[XML].[PERCENT],
[XML].[CALCULATION],
[XML].[VALUE],
[XML].[VATCODE],
[XML].[VATAMT],
[XML].[VATCalculation]
FROM OPENXML(@idoc, 'NewBreakdown/Breakdown', 2)
WITH([MATTER] VARCHAR(20) '../@MATTER',
[DRAFTNO] INT '../@DRAFTNO',
[BILLNO] INT '../@BILLNO',
[FECODE] VARCHAR(10) '@FECODE',
[TYPE] CHAR(1) '@TYPE',
[PERCENT] DECIMAL(5, 2) '@PERCENT',
[CALCULATION] DECIMAL(9, 5) '@CALCULATION',
[VALUE] DECIMAL(11, 2) '@VALUE',
[VATCODE] CHAR(1) '../@VATCODE',
[VATAMT] DECIMAL(11, 2) '@VATAMT',
[VATCALCULATION] DECIMAL(15, 5) '@VATCALCULATION') [XML]
DECLARE @ControlLastPREF INT
-- This might be overkill but it means we check all potential places for the largest posting reference
;WITH [CON] ([Table], [LastPREF]) AS (SELECT 'control', MAX([CON].[LASTPREF]) FROM [dbo].[control] AS [CON]),
[BAH] ([Table], [LastPREF]) AS (SELECT 'BatchH', MAX([BAH].[PREF]) FROM [dbo].[BatchH] AS [BAH]),
[BAD] ([Table], [LastPREF]) AS (SELECT 'BatchDetails', MAX([BAD].[PREF]) FROM [dbo].[BatchDetails] AS [BAD]),
[NML] ([Table], [LastPREF]) AS (SELECT 'NominalLedger', MAX([NML].[PREF]) FROM [dbo].[NominalLedger] AS [NML]),
[MTL] ([Table], [LastPREF]) AS (SELECT 'MatterLedger', MAX([MTL].[PREF]) FROM [dbo].[MatterLedger] AS [MTL]),
[DTL] ([Table], [LastPREF]) AS (SELECT 'DebtorsLedger', MAX([DTL].[PREF]) FROM [dbo].[DebtorsLedger] AS [DTL]),
[SPL] ([Table], [LastPREF]) AS (SELECT 'SupplierLedger', MAX([SPL].[PREF]) FROM [dbo].[SupplierLedger] AS [SPL])
SELECT @ControlLastPREF = ISNULL(MAX([Tables].[LastPREF]), 0)
FROM (SELECT [LastPREF] FROM [CON] UNION
SELECT [LastPREF] FROM [BAH] UNION
SELECT [LastPREF] FROM [BAD] UNION
SELECT [LastPREF] FROM [NML] UNION
SELECT [LastPREF] FROM [MTL] UNION
SELECT [LastPREF] FROM [DTL] UNION
SELECT [LastPREF] FROM [SPL]) AS [Tables]
-- These two insert statement was lifted from [dbo].[ky_NETCreateAccountsBatch]
INSERT INTO [dbo].[BatchDetails] (
[PREF],
[BATCHNO],
[TYPE],
[CODE],
[REF],
[DATE],
[FEE],
[BRANCH],
[NARR],
[MATTER],
[SUPP],
[VALUE],
[VATCODE],
[VATVAL],
[CLIENTYN],
[OUTLAY],
[PENDING],
[YEAR],
[PERNO],
[ENTRYCURRENCY],
[CURRENCYVALUE],
[CURRENCYVAT],
[OUTLAYCODE],
[THIRDPARTY],
[PAYEE],
[HEADPREF],
[HEADBATCH],
[ALLOCBATCH],
[ALLOCPREF],
[ALLOCREF],
[ALLOCVALUE],
[ALLOCWRITEOFF],
[PSUPP],
[UNDETAKING],
[CaseAssCode],
[ONCEOFFPAYMENT],
[PAYCLIENT],
[CLIENTCODE],
[EFTEMAILYORN])
SELECT @ControlLastPREF + ROW_NUMBER() OVER(ORDER BY [BFBD].[RecordID] ASC),
[BAH].[BATCHNO],
'I',
[FEC].[NOMINAL],
[BAH].[REF],
[BAH].[DATE],
[BFBD].[FECODE],
[BAH].[BRANCH],
LEFT('Fees Credit - ' + [BFBD].[FECODE] + ' ' + [BFBD].[MATTER], 100),
[BFBD].[MATTER],
'', -- SUPP
CASE WHEN [BFBD].[VALUE] = 0
THEN [BAH].[FEETOT]
ELSE [BFBD].[VALUE] END, -- VALUE
[BFBD].[VATCODE], -- VATCODE
[BFBD].[VATAMT], -- VATVAL
'N', -- CLIENTYN
[BFBD].[TYPE], -- OUTLAY
'', -- PENDING
[BAH].[YEAR],
[BAH].[PERNO],
@BaseCurrency,
[BFBD].[VALUE] * @EICONVERT,
[BFBD].[VATAMT] * @EICONVERT,
'', -- OUTLAYCODE
'', -- THIRDPARTY
'', -- PAYEE
0, -- HEADPREF
0, -- HEADBATCH
0, -- ALLOCBRACH
0, -- ALLOCPREF
'', -- ALLOCREF
0, -- ALLOCVALUE
'', -- ALLOCWRITEOFF
'', -- PSUPP
0, -- UNDETAKING
NULL, -- CaseAssCode
'N', -- OnceOffPayment
'N', -- PayClient
'', --ClientCode
'N' -- EFTEmailYorN
FROM [dbo].[BillFeeBreakDown] AS [BFBD]
INNER JOIN [dbo].[BillHeader] AS [BIH]
ON [BFBD].[MATTER] = [BIH].[MATTER]
AND [BFBD].[DRAFTNO]= [BIH].[DRAFTNO]
INNER JOIN [dbo].[BatchH] AS [BAH]
ON [BAH].[BATCHNO] = [BIH].[BATCHNO]
LEFT OUTER JOIN [dbo].[Handlers] AS [HAN]
ON [HAN].CODE = [BFBD].[FECODE]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] AS [FEC]
ON [FEC].[Code] = [HAN].[MAILADDRESS]
WHERE [BFBD].[MATTER] = @MATTER
AND [BFBD].[DRAFTNO] = @DRAFTNO
AND [BFBD].[TYPE] = 'F'
AND [BFBD].[VALUE] <> 0
SELECT @ControlLastPREF = MAX([BAD].[PREF])
FROM [dbo].[BatchDetails] AS [BAD]
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],
[PreBilledOutlay])
SELECT @ControlLastPREF + ROW_NUMBER() OVER (ORDER BY [BID].[KEYID] ASC),
[BAH].[BATCHNO],
'I',
[BID].[NOMINAL],
[BAH].[REF],
[BAH].[DATE],
[BID].[FEEEARNER],
[BID].[MATTER],
[BID].[NET],
[BID].[VATCODE],
[BID].[VATVALUE],
'N',
@BaseCurrency,
[BID].[NET] * @EICONVERT,
[BID].[VATVALUE] * @EICONVERT,
[BAH].[YEAR],
[BAH].[PERNO],
LEFT([BID].[NARRATIVE], 100),
'F', -- BatchDetails.OUTLAY
'',
'N',
'N',
'',
'N',
[BID].[PreBilledOutlay]
FROM [dbo].[BillDetails] AS [BID]
INNER JOIN [dbo].[BillHeader] AS [BIH]
ON [BID].[MATTER] = [BIH].[MATTER]
AND [BID].[DRAFTNO] = [BIH].[DRAFTNO]
INNER JOIN [dbo].[BatchH] AS [BAH]
ON [BAH].[BATCHNO] = [BIH].[BATCHNO]
WHERE [BID].[MATTER] = @MATTER
AND [BID].[DRAFTNO] = @DRAFTNO
AND [BID].[TYPE] = 'M'
AND [BID].[NET] <> 0
-- These next two insert statements are taken from [dbo].[KAAS_UpdatePostingSAMInvoice]
-- ! Update Nominal for Detail Lines
INSERT INTO [dbo].[NominalLedger] (
[CODE],
[BRANCH],
[BATCHNO],
[PREF],
[DATE],
[REF],
[NARR],
[MATTER],
[SUPP],
[FEE],
[VALUE],
[CURRENCYVALUE],
[PER],
[YEAR],
[ENTRYDATE],
[RECNO],
[ClearedDate])
SELECT ISNULL(RTRIM([BAD].[CODE]), ''), /* CODE */
CASE WHEN @IsBranchingEnabled = 1 THEN [BAH].[BRANCH] ELSE '' END, /* BRANCH */
[BAD].[BATCHNO], /* BATCHNO */
[BAD].[PREF], /* PREF */
[BAD].[DATE], /* DATE */
ISNULL(RTRIM([BAD].[REF]), ''), /* REF */
ISNULL(RTRIM([BAD].[NARR]), ''), /* NARR */
ISNULL(RTRIM([BAH].[MATTER]), ''), /* MATTER */
'', /* SUPP */
ISNULL(RTRIM([BAD].[FEE]), ''), /* FEE */
ISNULL([BAD].[VALUE], 0) * -1 * @INVCR, /* VALUE */
ISNULL([BAD].[CURRENCYVALUE], 0) * -1 * @INVCR, /* CURRENCYVALUE */
[BAH].[PERNO], /* PER */
[BAH].[YEAR], /* YEAR */
@TODAY, /* ENTRYDATE */
0, /* RECNO */
ISNULL([BAH].[ClearedDate], [BAH].[DATE]) /* ClearedDate */
FROM [dbo].[BatchH] AS [BAH]
INNER JOIN [dbo].[BatchDetails] AS [BAD]
ON [BAH].[BATCHNO] = [BAD].[BATCHNO]
WHERE [BAH].[BATCHNO] = @BATCHNO
AND [BAD].[OUTLAY] = 'F'
-- ! Update Nominal for Detail Lines VAT
INSERT INTO [dbo].[NominalLedger] (
[CODE],
[BRANCH],
[BATCHNO],
[PREF],
[DATE],
[REF],
[NARR],
[MATTER],
[SUPP],
[FEE],
[VALUE],
[CURRENCYVALUE],
[PER],
[YEAR],
[ENTRYDATE],
[RECNO],
[ClearedDate])
SELECT ISNULL(RTRIM(@VATNOMINAL), ''), /* CODE */
CASE WHEN @IsBranchingEnabled = 1 THEN [BAH].[BRANCH] ELSE '' END, /* BRANCH */
[BAD].[BATCHNO], /* BATCHNO */
[BAD].[PREF], /* PREF */
[BAD].[DATE], /* DATE */
ISNULL(RTRIM([BAD].[REF]), ''), /* REF */
'VAT on Invoice/Cr Note ' + ISNULL(RTRIM([BAD].[REF]), ''), /* NARR */
ISNULL(RTRIM([BAH].[MATTER]), ''), /* MATTER */
'', /* SUPP */
ISNULL(RTRIM([BAD].[FEE]), ''), /* FEE */
ISNULL([BAD].[VATVAL], 0) * -1 * @INVCR, /* VALUE */
ISNULL([BAD].[CURRENCYVAT], 0) * -1 * @INVCR, /* CURRENCYVALUE */
[BAH].[PERNO], /* PER */
[BAH].[YEAR], /* YEAR */
@TODAY, /* ENTRYDATE */
0, /* RECNO */
ISNULL([BAH].[ClearedDate], [BAH].[DATE]) /* ClearedDate */
FROM [dbo].[BatchH] AS [BAH]
INNER JOIN [dbo].[BatchDetails] AS [BAD]
ON [BAH].[BATCHNO] = [BAD].[BATCHNO]
WHERE [BAH].[BATCHNO] = @BATCHNO
AND [BAD].[VATVAL] <> 0
AND [BAD].[OUTLAY] = 'F'
-- Because we have only inserted new PREFs into BatchDetails we only need to query that table
UPDATE [CON]
SET [CON].[LASTPREF] = (SELECT MAX([BAD].[PREF]) FROM [dbo].[BatchDetails] AS [BAD])
FROM [dbo].[control] AS [CON]
INSERT INTO [dbo].[Log] (
[DATE],
[USER],
[EVENT])
SELECT @TODAY,
@USER,
'Handler ''' + @Handler + ''' changed breakdown on invoice. ' +
'Draft No: ' + ISNULL(CONVERT(VARCHAR(10), @DRAFTNO), '') + '. ' +
'BatchNo: ' + ISNULL(CONVERT(VARCHAR(10), @BATCHNO), '') + '. ' +
'Windows User: ' + @WindowsUser
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 *
* 2024-07-10 Ghayathri.S.V Updated to fetch the payment request details *
*******************************************************************************************************/
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
SELECT [MAT].[Code] AS [Code],
[CON].[Name] AS [Name],
[MAT].[Description] As [Description],
[CRH].[ReturnReason] AS [ReturnReason],
[HAN].[Email] AS [EmailAddress],
[HAN].[Name] AS [HandlerName],
[SET].[KeyValue] AS [ChequeApproverFromMail],
[SETT].[KeyValue] AS [ChequeApproverHandler],
[CRH].[ReqNo] AS [ReqNo],
[CRH].[Who] AS [RequestedUser]
FROM [dbo].[ChequeRequisitionHeader] [CRH]
JOIN [dbo].[ChequeRequisitionDetail] [CRD]
ON [CRH].[ReqNo] = [CRD].[ReqNo]
JOIN [dbo].[Matters] [MAT]
ON [MAT].[Code] = [CRD].[Matter]
JOIN [dbo].[Settings] [SET]
ON [SET].[KeyName] = 'ChequeApprover'
JOIN [dbo].[Handlers] [HAN]
ON [HAN].[Code] =[CRH].[Who]
JOIN [dbo].[Contacts] [CON]
ON [CON].[Code] = [MAT].[ClientCode]
LEFT JOIN [dbo].[Settings] [SETT]
ON [SETT].KeyName = 'ChequeApproverHandler'
WHERE [CRH].[ReqNo] = @ID
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 OBJECT_ID(N'[KAAS_RemoveHandlerSupervisorPrivileges]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_RemoveHandlerSupervisorPrivileges]
GO
CREATE PROCEDURE
[dbo].[KAAS_RemoveHandlerSupervisorPrivileges]
(@HandlerCode VARCHAR(10))
AS
BEGIN
/*****************************************************************************
*
* [KAAS_RemoveHandlerSupervisorPrivileges]
*
* Removes the -1 "supervisor" privileges, and replaces them with privileges
* amounting to having all security net groups selected. After that the
* administrator can remove individual privileges from this user.
*
* Stored Procedure Name : [dbo].[KAAS_RemoveHandlerSupervisorPrivileges] *
* Copied from : [dbo].[ky_NETRemoveHandlerSupervisorPrivileges]
*
* Modification History
* 2024-08-01 Sadiq Created
*
*****************************************************************************/
DECLARE @Privileges BIGINT
SET @Privileges = 0
select @Privileges = @Privileges | SNG.[BitWiseID] from [dbo].[SecurityNETGroups] SNG
SELECT @Privileges
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] = CASE WHEN NGM.[BitWiseID] = CONVERT(BIGINT, -1)
THEN CONVERT(BIGINT, @Privileges)
ELSE NGM.[BitWiseID] END
FROM [dbo].[HandlerNETGroupMembership] NGM
WHERE NGM.[HANDLER] = @HandlerCode
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_RemoveSUFDocumentXRefs',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_RemoveSUFDocumentXRefs]
GO
CREATE PROCEDURE [dbo].[KAAS_RemoveSUFDocumentXRefs]
(
@TemplateCode VARCHAR(10)
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_RemoveSUFDocumentXRefs]
* Copied From : [dbo].[ky_NETSPRemoveSUFDocumentXRefs]
* Description: Resets cross references between a Doc Assist Code and the Template (Precedent) passed in
* Modification History:
*
* 2024-08-16 Balamurugan.C Created
*********************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @SXBCTAs TABLE
([id] INTEGER NOT NULL PRIMARY KEY)
INSERT
INTO @SXBCTAs
([id])
SELECT [SDXBCTA].[SUFXRefByCANTypeAggID]
from [dbo].[SUFDocumentXRefByCANTypeAgg] [SDXBCTA]
where [SDXBCTA].[TemplateCode] = @TemplateCode
--Remove the aggregates linked to this Template Document
delete [SDXBCTA]
from [dbo].[SUFDocumentXRefByCANTypeAgg] [SDXBCTA]
where [SDXBCTA].TemplateCode = @TemplateCode
--Remove all aggregates that are no longer in use after the above were removed
DELETE [SXBCTA]
from [dbo].[SUFXRefByCANTypeAgg] [SXBCTA]
left outer join [dbo].[SUFDocumentXRefByCANTypeAgg] [SDXBCTA]
on [SDXBCTA].[SUFXRefByCANTypeAggID] = [SXBCTA].[id]
WHERE [SDXBCTA].[id] IS NULL
DECLARE @SXBCTs TABLE
([id] INTEGER NOT NULL PRIMARY KEY)
INSERT
INTO @SXBCTs
([id])
SELECT distinct [SDXBCT].[SUFXRefByCANTypeID]
from [dbo].[SUFDocumentXRefByCANType] [SDXBCT]
where [SDXBCT].[TemplateCode] = @TemplateCode
--Remove the contact types linked to this Template Document
delete [SDXBCT]
from [dbo].[SUFDocumentXRefByCANType] [SDXBCT]
where [SDXBCT].TemplateCode = @TemplateCode
--Remove all contact types that are no longer in use after the above were removed
DELETE [SXBCT]
from [dbo].[SUFXRefByCANType] [SXBCT]
left outer join [dbo].[SUFDocumentXRefByCANType] [SDXBCT]
on [SDXBCT].[SUFXRefByCANTypeID] = [SXBCT].[id]
WHERE [SDXBCT].[id] IS NULL
DECLARE @SXs TABLE
([id] INTEGER NOT NULL PRIMARY KEY)
INSERT
INTO @SXs
([id])
SELECT [SDX].[SUFXRefID]
from [dbo].[SUFDocumentXRef] [SDX]
where [SDX].[TemplateCode] = @TemplateCode
--Remove the doc assists (regardless of "contact type" or "aggregate") linked to this Template Document
delete [SDX]
from [dbo].[SUFDocumentXRef] [SDX]
where [SDX].TemplateCode = @TemplateCode
--Remove the doc assists (regardless of "contact type" or "aggregate") that are no longer in use after the above were removed
DELETE [SX]
from [dbo].[SUFXRef] [SX]
left outer join [dbo].[SUFDocumentXRef] [SDX]
on [SDX].[SUFXRefID] = [SX].[id]
WHERE [SDX].[id] IS NULL
SET NOCOUNT OFF
END
GO
IF EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_RemoveWorkflowActionChecklistItem'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_RemoveWorkflowActionChecklistItem]
END
GO
CREATE PROCEDURE [dbo].[KAAS_RemoveWorkflowActionChecklistItem]
(@Id INT)
AS
/*************************************************************************************************************
* This procedure is used to Removes a WorkFlow Action Checklist item *
* *
* Stored Procedure Name : [dbo].[KAAS_RemoveWorkflowActionChecklistItem] *
* Copied from : [dbo].[ky_NETSPRemoveWorkflowActionChecklistItem] *
* *
* Modification History : *
* 2024-07-18 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @ACTIONCODE VARCHAR(15)
DECLARE @CURRENTSEQUENCE INT
DECLARE @IDS TABLE
([Seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[ID] INT NOT NULL)
SELECT @ACTIONCODE = [TACL].[ACTIONCODE],
@CURRENTSEQUENCE = [TACL].[Sequence]
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[id] = @Id
UPDATE [DCL]
SET [DCL].[WCLId] = NULL
FROM [dbo].[DiaryChecklist] [DCL]
WHERE [DCL].[WCLId] = @Id
DELETE [dbo].[TemplateActionChecklists] WHERE [id] = @Id
INSERT
INTO @IDS
([ID])
SELECT [TACL].[id]
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[ACTIONCODE] = @ACTIONCODE
AND [TACL].[id] <> @Id
ORDER BY [TACL].[Sequence]
UPDATE [TACL]
SET [TACL].[Sequence] = [IDS].[Seq]
FROM @IDS [IDS]
INNER JOIN [dbo].[TemplateActionChecklists] [TACL]
ON [TACL].[id] = [IDS].[ID]
SET NOCOUNT OFF
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),
@ISDICTATION BIT,
@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 *
* 2024-08-06 Sadiq Handled Dictation Category to Set 'D' on Dictation (18722) *
*******************************************************************************************************/
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(@ISDICTATION=1)
BEGIN
SET @RequestFileActionType = 'D'
END
ELSE
BEGIN
IF (RTRIM(IsNull(@RequestFileActionType, '')) = '')
BEGIN
SET @RequestFileActionType = 'L'
END
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 *
* 2024-10-18 Ponni M @DATEENTERED field length changed from varchar(11) to varchar(12) *
* 2024-11-14 Aakif #19116 - While inserting in DiaryAttachments should be 'Captured' for *
* 'Capture' and 'Case' if none is provided *
*******************************************************************************************************/
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
-- #19116 - Source should be Captured Or Case
IF(ISNULL(@Source, '') = '')
BEGIN
SET @Source = 'Case'
END
ELSE IF(@Source = 'Capture')
BEGIN
SET @Source = 'Captured'
END
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(12),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 *
* 2024-07-10 Sadiq Updated NewDate to take currentUTC instead of DiaryDate(Bug no 18687)*
*******************************************************************************************************/
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= GETUTCDATE();
-- 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 *
* 2024-08-05 Ghayathri.S.V Fetched Bank details *
*******************************************************************************************************/
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],
[CTC].[BIC] AS [Bic],
[CTC].[Iban] AS [Iban],
[CTC].[BankAccNo] AS [BankAccNo],
[CTC].[BankSortCode] AS [BankSortCode]
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 EXISTS (SELECT TOP 1 1
FROM sys.[objects] SO
WHERE SO.[name] = N'KAAS_SetCompositeBilling'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_SetCompositeBilling]
END
GO
CREATE PROCEDURE [dbo].[KAAS_SetCompositeBilling](
@ContactCode VARCHAR(10),
@MatterCode VARCHAR(20)
)
AS
/*******************************************************************************************************
* This procedure is used to set Composite Billing for contact and All Matter *
* *
* Stored Procedure Name : [dbo].[KAAS_SetCompositeBilling] *
* *
* Modification History: *
* 2024-06-12 Vignesh M Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE Contacts
SET CompMatter = @MatterCode
WHERE Code = @ContactCode
UPDATE matters
SET CompBillingMatter = @MatterCode
WHERE ClientCode = @ContactCode
SET NOCOUNT OFF
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),
@RoundTo DECIMAL(11,8)
)
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 *
* 2024-06-12 Balamurugan.C Modified - Passing Round Off Value from *
Client end and Added the Round *
Off Recalculation logic *
* 2024-06-25 Balamurugan.C Modified - Added CreditInvoiceNo in add mode *
********************************************************************************/
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 */
ISNULL(@CreditInvoiceNo,0), /* CreditInvoiceNo */
0, /* ManualFeeBreakDown */
CASE WHEN @BillSent = 1 THEN 'Y' ELSE 'N' END, /* BillSent */
@DefaultBillLayoutReportID, /* DefaultBillLayoutReportID */
@FECode, /* FeCode */
CASE WHEN ISNULL(@RoundTo, 0) <= 0 THEN 0.01 ELSE @RoundTo END /* RoundTo */
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] = @DraftNo), 0)
-- 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] = @RoundTo
FROM [dbo].[BillHeader] AS [BIH]
WHERE [BIH].[DRAFTNO] = @DraftNo
IF @RoundTo2 <> @RoundTo
BEGIN
EXEC [dbo].[KAAS_CorrectBillDetailsANDFEBreakdown] @DraftNo
END
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
* 2024-10-18 Ponni M - DiaryDate and CompleteDate field length changed from varchar(11) to varchar(12)
****************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @ITEMDIARY_SQL NVARCHAR(MAX)
SELECT @ITEMDIARY_SQL = '
SELECT CONVERT(VARCHAR(12),
[dbo].[KAAS_FNConvertUTCDateToTargetTimeZone](
IDI.[DATE], @Handler), 106) AS [DiaryDate],
RTRIM(ISNULL(IDI.[DETAILS], '''')) AS [DiaryDetails],
CONVERT(VARCHAR(12),
[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 OBJECT_ID(N'KAAS_TaskCopyDetails', N'P') IS NOT NULL
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 *
* 2024-10-18 Ponni M - Isexist condition check changed
**************************************************************************************************/
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(12)
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 *
* 2024-10-18 Ponni M [Date] field length changed from varchar(11) to varchar(12)
*******************************************************************************************************/
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(12),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 OBJECT_ID(N'KAAS_TemplateLibaryToCreateAction',N'P')IS NOT NULL
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 *
* 2024-07-17 Aakif The SOURCE value 'Capture' is incorrect. It should be 'Captured' *
**************************************************************************************************************/
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',
'Captured',
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_TenantGetTimeZoneDataList',N'P')IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_TenantGetTimeZoneDataList]
END
GO
CREATE PROCEDURE [dbo].[KAAS_TenantGetTimeZoneDataList]
AS
/*******************************************************************************************************
* Fetches the List of Time Zones *
* *
* Stored Procedure Name : [dbo].[KAAS_TenantGetTimeZoneDataList] *
* *
* Modification History: *
* 09 October 2024 Ghayathri.S.V Created s*
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT TimeZoneName
FROM [dbo].[TimeZones]
ORDER BY TimeZoneName ASC
SET NOCOUNT OFF
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 OBJECT_ID(N'KAAS_TranscriptAssignAction',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_TranscriptAssignAction]
GO
CREATE PROCEDURE
[dbo].[KAAS_TranscriptAssignAction]
(@ActionId INT,
@RemoteTypist VARCHAR(10))
/*******************************************************************************************************
* This procedure is used to assign the action back to the person who created that action *
* *
* Stored Procedure Name : [dbo].[KAAS_TranscriptAssignAction] *
* *
* Modification History : *
* 2024-06-04 Vignesh M Created *
* 2024-12-05 Aakif Increased the char limit for RemoteTypist *
*******************************************************************************************************/
AS
BEGIN
DECLARE @Owner VARCHAR(20)
DECLARE @AssignNo INT
DECLARE @DelType VARCHAR(20)
SELECT @AssignNo = MAX([AssignNo])
FROM [DiaryDelegations] AS [DEL]
WHERE [ACTIONID] = @ActionId
SELECT @Owner = [DEL].[HANDLER]
FROM [DiaryDelegations] AS [DEL]
WHERE [ACTIONID] = @ActionId AND [DelType] = 'Created'
SELECT @DelType = [DEL].[DelType]
FROM [DiaryDelegations] AS [DEL]
WHERE [DEL].[ACTIONID] = @ActionId AND [DEL].[AssignNo] = @AssignNo
IF @DelType = 'Delegated'
BEGIN
EXEC [KAAS_TakeAction] @Handler = @RemoteTypist,@ActionID = @ActionId
EXEC [KAAS_TakeAction] @Handler = @Owner,@ActionID = @ActionId
END
ELSE
BEGIN
EXEC [KAAS_TakeAction] @Handler = @Owner,@ActionID = @ActionId
END
SET NOCOUNT OFF
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)
* 2024-11-28 Sadiq Modified Added Country Values also () *
*******************************************************************************************************/
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],
[Country],
[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].[Country],
[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',
[Country] VARCHAR(100) '@country',
[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].[Country] = [SRC].[Country],
[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',
[Country] VARCHAR(100) '@country',
[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 *
* 2024-10-17 Sadiq Modifed to Update ClientName and Description value in Search Matter *
Table (Bug No - 19044) *
*******************************************************************************************************/
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
UPDATE [C]
SET [C].[Name]=@Name
FROM Contacts [C]
WHERE [C].Code=@ClientCode
SET @Result=2
--Update Value in Search matter table to update in Advanced Matter search
UPDATE [SM]
SET [SM].[Name]=@Name,
[SM].[NCName]=@Name
FROM [SearchMatters] [SM]
WHERE [SM].Code=@MatterCode
END
IF ISNULL(@Description,'')<>''
BEGIN
UPDATE [MAT]
SET [MAT].[Description]=@Description
FROM matters [MAT]
WHERE [MAT].Code=@MatterCode
SET @Result=3
--Update Value in Search matter table to update in Advanced Matter search
UPDATE [SM]
SET [SM].[Description]=@Description,
[SM].[NCDescription]=@Description
FROM [SearchMatters] [SM]
WHERE [SM].Code=@MatterCode
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
* 2024-10-18 Ponni M @DATEENTERED and @OLDDate field length changed from varchar(11) to varchar(12)
* 2024-11-06 Sadiq handled to Task Document Time also in consideration , Merge Date and Time and update in DB (19087)
************************************************************************************************************/
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(12)
DECLARE @Description VARCHAR(500)
DECLARE @DescriptionTo VARCHAR(500)
DECLARE @DateTimeMerge DATETIME
-- Combine date part from @DocumentDate and time part from DATEENTERED
SELECT @DateTimeMerge =
CONVERT(DATETIME,
CONVERT(CHAR(8), CONVERT(DATETIME, @DocumentDate, 112), 112) + ' ' +
CONVERT(VARCHAR(8), DATEENTERED, 108),
120)
FROM [DiaryAttachments]
WHERE TrackReference = @TrackReference;
-- 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(12), CONVERT(DATETIME, [DAT].[DATEENTERED]), 106),
@Description = 'Attachment Changed From: ' + CHAR(13) + CHAR(10)
+ 'Date: ' + CONVERT(VARCHAR(12), 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(12),CONVERT(DATETIME, @DateTimeMerge), 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(12), CONVERT(DATETIME, @DateTimeMerge), 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] = @DateTimeMerge,
[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] = @DateTimeMerge,
[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 *
* 2024-05-22 Vignesh M Modified - Updated Date Field *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE ExternalDictations
SET [Status] = @Status,
[DateField] = GETUTCDATE()
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 OBJECT_ID(N'KAAS_UpdateImportsequence', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_UpdateImportsequence]
GO
IF EXISTS (SELECT 1 FROM [sys].[types] WHERE name = 'CasePlanActionMappingDetailsType')
BEGIN
DROP TYPE [dbo].[CasePlanActionMappingDetailsType]
END
GO
CREATE TYPE [dbo].[CasePlanActionMappingDetailsType] AS TABLE(
[WORKTYPE] VARCHAR(10) NULL,
[ACTIONCODE] VARCHAR(10) NULL,
[SEQ] INT NULL,
[ForCopy] VARCHAR(10) NULL
)
GO
CREATE PROCEDURE [dbo].[KAAS_UpdateImportsequence]
(
@CasePlanActionMappingDetailsTypeTbl CasePlanActionMappingDetailsType READONLY
)
AS
/*********************************************************************************************
*
* Stored Procedure Name: [dbo].[KAAS_UpdateImportsequence]
* Copied From : [dbo].[Ky_NETUpdateImportsequence]
* Description: To Insert the Action List mapping details for case plan
* Modification History:
*
* 2024-08-09 Balamurugan.C Created
*********************************************************************************************/
BEGIN
UPDATE [AWT]
SET [AWT].[SEQ] = [CPT].[SEQ],
[AWT].[ForCopy] = [CPT].[ForCopy]
FROM [dbo].[ActionWorkTypes] [AWT]
INNER JOIN @CasePlanActionMappingDetailsTypeTbl [CPT]
ON [AWT].[WORKTYPE] = [CPT].[WORKTYPE]
AND [AWT].[ACTIONCODE] = [CPT].[ACTIONCODE]
INSERT INTO [dbo].[ActionWorkTypes]
(WORKTYPE
,ACTIONCODE
,SEQ
,ForCopy)
SELECT [CPT].[WORKTYPE]
,[CPT].[ACTIONCODE]
,[CPT].[SEQ]
,[CPT].[ForCopy]
FROM @CasePlanActionMappingDetailsTypeTbl [CPT]
LEFT JOIN [dbo].[ActionWorkTypes] [AWT]
ON [AWT].[WORKTYPE] = [CPT].[WORKTYPE]
AND [AWT].[ACTIONCODE] = [CPT].[ACTIONCODE]
WHERE [AWT].ACTIONCODE IS NULL
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
* 18Oct2024 Ponni M @StatuteLimit field length changed from varchar(11) to varchar(12)
************************************************************************************************************************/
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(12),@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(12),@StatuteLimit,106) + '' + CHAR(13) + 'Changed From ' + convert(varchar(12),@beforeSatuteDate,106) + ' To ' + convert(varchar(12),@StatuteLimit,106) + ' on the ' + convert(varchar(12),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(12),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),
@CompBillingMatter VARCHAR(20),
@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 *
* 2024-06-12 Vignesh M Modified Composite Billing matter is added *
*******************************************************************************************************/
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,
[CompBillingMatter] = @CompBillingMatter
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
* 03-10-2024 Ponni M Modified for updating the SearchMatters table.
"KAAS_UpdateSearchMatter" SP called for updating the SearchMatters table
************************************************************************************************************************/
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
exec [dbo].[KAAS_UpdateSearchMatter] @MATTER = @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_UpdateSearchMatter',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_UpdateSearchMatter]
GO
Create PROCEDURE
[dbo].[KAAS_UpdateSearchMatter]
(@MATTER VARCHAR(20))
AS
/*************************************************************************************************************
* *
* Modification History *
* 03/10/2024 Ponni M Created Copied from the "ky_NETSPUpdateSearchMatter" * *
* *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'DelayClientNameUpdate'
AND [SET].[KeyValue] = 'True')
BEGIN
SET NOCOUNT OFF
RETURN
END
DECLARE @SEARCHMATTER NVARCHAR(MAX)
DECLARE @UPDATEDMATTER NVARCHAR(MAX)
SET @SEARCHMATTER = CONVERT(NVARCHAR(MAX), (SELECT [SM].[ClientCode],
[SM].[Matter],
[SM].[Description],
[SM].[FECode],
[SM].[Partner],
[SM].[Dept],
[SM].[Started],
[SM].[closedate],
[SM].[orgcloseddate],
[SM].[WType],
[SM].[Branch],
[SM].[Closed],
[SM].[User1],
[SM].[User2],
[SM].[User3],
[SM].[YourRef],
[SM].[OldRef],
[SM].[FileNum],
[SM].[FileColour],
[SM].[MatterStatus]
FROM [dbo].[SearchMatters] [SM]
WITH (NOLOCK)
WHERE [SM].[Code] = @MATTER
FOR XML AUTO))
SET @UPDATEDMATTER = CONVERT(NVARCHAR(MAX), (SELECT *
FROM (SELECT RTRIM(ISNULL([INS].[ClientCode], '')) AS [ClientCode],
RTRIM(ISNULL([INS].[Matter], '')) AS [Matter],
[dbo].[ky_RemoveSpuriousWhitespace2]([INS].[Description], 200) AS [Description],
RTRIM(ISNULL([INS].[FECode], '')) AS [FECode],
RTRIM(ISNULL([INS].[Partner], '')) AS [Partner],
RTRIM(ISNULL([INS].[Dept], '')) AS [Dept],
[INS].[Started] AS [Started],
[INS].[CloseDate] AS [closedate],
[INS].[OrgClosedDate] AS [orgcloseddate],
RTRIM(ISNULL([INS].[WType], '')) AS [WType],
RTRIM(ISNULL([INS].[Branch], '')) AS [Branch],
CASE WHEN ISNULL([INS].[Closed], 'N') = 'Y'
THEN CONVERT(BIT, 1)
ELSE CONVERT(BIT, 0) END AS [Closed],
RTRIM(ISNULL([INS].[User1], '')) AS [User1],
RTRIM(ISNULL([INS].[User2], '')) AS [User2],
RTRIM(ISNULL([INS].[User3], '')) AS [User3],
RTRIM(ISNULL([INS].[YourRef], '')) AS [YourRef],
RTRIM(ISNULL([INS].[OldRef], '')) AS [OldRef],
ISNULL([INS].[FileNum], 0) AS [FileNum],
RTRIM(ISNULL([INS].[FileColour], '')) AS [FileColour],
RTRIM(ISNULL([INS].[Status], '')) AS [MatterStatus]
FROM [dbo].[matters] [INS]
WHERE [INS].[Code] = @MATTER) [SM]
FOR XML AUTO))
IF @SEARCHMATTER = @UPDATEDMATTER
BEGIN
SET NOCOUNT OFF
RETURN
END
UPDATE [SM]
SET [SM].[ClientCode] = RTRIM(ISNULL([INS].[ClientCode], '')),
[SM].[Matter] = RTRIM(ISNULL([INS].[Matter], '')),
[SM].[Description] = [dbo].[ky_RemoveSpuriousWhitespace2]([INS].[Description], 200),
[SM].[NCDescription] = [dbo].[ky_RemoveSpuriousWhitespace2]([INS].[Description], 200) COLLATE SQL_Latin1_General_Cp1251_CS_AS,
[SM].[FECode] = RTRIM(ISNULL([INS].[FECode], '')),
[SM].[Partner] = RTRIM(ISNULL([INS].[Partner], '')),
[SM].[Dept] = RTRIM(ISNULL([INS].[Dept], '')),
[SM].[Started] = [INS].[Started],
[SM].[closedate] = [INS].[closedate],
[SM].[orgcloseddate] = [INS].[orgcloseddate],
[SM].[WType] = RTRIM(ISNULL([INS].[WType], '')),
[SM].[Branch] = RTRIM(ISNULL([INS].[Branch], '')),
[SM].[Closed] = CASE WHEN ISNULL([INS].[Closed], 'N') = 'Y'
THEN CONVERT(BIT, 1)
ELSE CONVERT(BIT, 0) END,
[SM].[User1] = RTRIM(ISNULL([INS].[User1], '')),
[SM].[User2] = RTRIM(ISNULL([INS].[User2], '')),
[SM].[User3] = RTRIM(ISNULL([INS].[User3], '')),
[SM].[YourRef] = RTRIM(ISNULL([INS].[YourRef], '')),
[SM].[OldRef] = RTRIM(ISNULL([INS].[OldRef], '')),
[SM].[FileNum] = ISNULL([INS].[FileNum], 0),
[SM].[FileColour] = RTRIM(ISNULL([INS].[FileColour], '')),
[SM].[DeptDescription] = RTRIM(ISNULL([DPT].[DESC], '')),
[SM].[WTypeDescription] = RTRIM(ISNULL([WKT].[DESC], '')),
[SM].[FileColourDescription] = RTRIM(ISNULL([FCL].[COLOURDESC], '')),
[SM].[FileBackgroundColour] = CASE WHEN RTRIM(ISNULL([FCL].[BackgroundColour], '')) = '' THEN 'Transparent' ELSE RTRIM(ISNULL([FCL].[BackgroundColour], '')) END,
[SM].[FileRGBColour] = ISNULL([FCL].[RGBColour], -1),
[SM].[TextColour] = [dbo].[ky_NETFNGetForegroundColour](ISNULL([FCL].[RGBColour], -1)),
[SM].[HandlerName] = RTRIM(ISNULL([FEC].[NAME], '')),
[SM].[NCHandlerName] = RTRIM(ISNULL([FEC].[NAME], '')) COLLATE SQL_Latin1_General_Cp1251_CS_AS,
[SM].[Team] = RTRIM(ISNULL([TEA].[CODE], '')),
[SM].[TeamName] = RTRIM(ISNULL([TEA].[NAME], '')),
[SM].[PartnerName] = RTRIM(ISNULL([PAR].[NAME], '')),
[SM].[NCPartnerName] = RTRIM(ISNULL([PAR].[NAME], '')) COLLATE SQL_Latin1_General_Cp1251_CS_AS,
[SM].[Name] = RTRIM(ISNULL([CLT].[CLNAME], '')),
[SM].[NCName] = RTRIM(ISNULL([CLT].[CLNAME], '')) COLLATE SQL_Latin1_General_Cp1251_CS_AS,
[SM].[Address] = [dbo].[ky_RemoveSpuriousWhitespace2]([CLT].[CLADDR], 500),
[SM].[NCAddress] = [dbo].[ky_RemoveSpuriousWhitespace2]([CLT].[CLADDR], 500) COLLATE SQL_Latin1_General_Cp1251_CS_AS,
[SM].[Email] = RTRIM(ISNULL([CLT].[CLEMAIL], '')),
[SM].[PhoneNumber] = RTRIM(ISNULL([CLT].[CLTEL], '')),
[SM].[Privileges] = ISNULL([MNP].[Privileges], CONVERT(BIGINT, -1)),
[SM].[MatterStatus] = RTRIM(ISNULL([INS].[Status], '')),
[SM].[MatterStatusDescription] = RTRIM(ISNULL([STC].[DESCRIPTION], ''))
FROM [dbo].[matters] [INS]
INNER JOIN [dbo].[searchmatters] [SM]
ON [SM].[Code] = [INS].[Code]
LEFT OUTER JOIN [dbo].[Departments] [DPT]
ON [DPT].[CODE] = [INS].[Dept]
LEFT OUTER JOIN [dbo].[WorkTypes] [WKT]
ON [WKT].[CODE] = [INS].[WType]
LEFT OUTER JOIN [dbo].[FileColours] [FCL]
ON [FCL].[COLOURCODE] = [INS].[FileColour]
LEFT OUTER JOIN [dbo].[Handlers] [FEC]
LEFT OUTER JOIN [dbo].[Handlers] [TEA]
ON [TEA].[CODE] = [FEC].[TEAM]
ON [FEC].[CODE] = [INS].[FECode]
LEFT OUTER JOIN [dbo].[Handlers] [PAR]
ON [PAR].[CODE] = [INS].[Partner]
LEFT OUTER JOIN [dbo].[client] [CLT]
ON [CLT].[CLCODE] = [INS].[ClientCode]
LEFT OUTER JOIN [dbo].[MatterNetPrivileges] [MNP]
ON [MNP].[MATTER] = [INS].[Code]
LEFT OUTER JOIN [dbo].[StatusCodes] [STC]
ON [STC].[CODE] = [INS].[Status]
WHERE [INS].[Code] = @MATTER
SET NOCOUNT OFF
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 EXISTS (SELECT TOP 1 1
FROM [sys].[objects] AS [SO]
WHERE [SO].[name] = N'KAAS_UpdateTimeEntryFromDayBook2'
AND [SO].[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateTimeEntryFromDayBook2]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateTimeEntryFromDayBook2]
(@HANDLER VARCHAR(10),
@UPDByHandler VARCHAR(10),
@User NVARCHAR(128),
@WDNTEID NTEID READONLY)
AS
/**************************************************************************************
*
* KAAS_UpdateTimeEntryFromDayBook2
*
* Update TimeEntry values
*
* Modification History
* 2024-06-06 Revathy.D Copied from ky_NETUpdateTimeEntryFromDayBook2
*
**************************************************************************************/
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 @WDNTEID [NTEID]
INNER JOIN [dbo].[TimeEntry] [TIE]
ON [TIE].[RecordId] = [NTEID].[NEWID]'
EXEC sp_executesql @NCOMMAND, N'@UPDByHandler VARCHAR(10), @User NVARCHAR(128), @WDNTEID NTEID READONLY', @UPDByHandler, @User, @WDNTEID
/* KEYD-6920 */
--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 @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]
-- Try to speed this up by taking a smarter approach, only update actual changed matters, and do them one at a time
--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 @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
DECLARE @COUNTMATTERS INT
DECLARE @MATUPD TABLE
([MATTER] VARCHAR(20) PRIMARY KEY,
[ChargeBal] DECIMAL(13, 2),
[TimeBal] DECIMAL(13, 2))
SELECT @COUNTMATTERS = COUNT(DISTINCT [TDB].[MATTER])
FROM @WDNTEID [NTEID]
INNER JOIN [dbo].[TimeDayBook] [TDB]
ON [TDB].[RECORDID] = [NTEID].[RECORDID]
AND [TDB].[REC_IRR] = 'C'
INSERT
INTO @MATUPD
([MATTER],
[ChargeBal],
[TimeBal])
SELECT TOP (@COUNTMATTERS)
[TDB].[MATTER],
SUM(CASE WHEN [MAT].[OpenInvoiceNo] IS NULL
THEN CONVERT(DECIMAL(13, 2), ISNULL([TDB].[Charge], 0))
WHEN [MAT].[OpenInvoiceNo] = 0
THEN CONVERT(DECIMAL(13, 2), ISNULL([TDB].[Charge], 0))
ELSE CONVERT(DECIMAL(13, 2), 0) END),
SUM(CASE WHEN [MAT].[OpenInvoiceNo] IS NULL
THEN CONVERT(DECIMAL(13, 2), ISNULL([TDB].[Time], 0))
WHEN [MAT].[OpenInvoiceNo] = 0
THEN CONVERT(DECIMAL(13, 2), ISNULL([TDB].[Time], 0))
ELSE CONVERT(DECIMAL(13, 2), 0) END)
FROM @WDNTEID [NTEID]
INNER JOIN [dbo].[TimeDayBook] [TDB]
INNER JOIN [dbo].[matters] [MAT]
ON [MAT].[CODE] = [TDB].[MATTER]
ON [TDB].[RECORDID] = [NTEID].[RECORDID]
AND [TDB].[REC_IRR] = 'C'
GROUP BY [TDB].[MATTER]
DELETE @MATUPD
WHERE ISNULL([ChargeBal], 0) = 0
AND ISNULL([TimeBal], 0) = 0
UPDATE [MAT]
SET [MAT].[ChargeBal] = ISNULL([MAT].[ChargeBal], CONVERT(DECIMAL(13, 2), 0)) + [MUP].[ChargeBal],
[MAT].[TimeBal] = ISNULL([MAT].[TimeBal], CONVERT(DECIMAL(13, 2), 0)) + [MUP].[TimeBal]
FROM @MATUPD [MUP]
INNER JOIN [dbo].[matters] [MAT]
ON [MAT].[CODE] = [MUP].[MATTER]
--DECLARE @UPDMAT VARCHAR(20)
--DECLARE @UPDChargeBal DECIMAL(13, 2)
--DECLARE @UPDTimeBal DECIMAL(13, 2)
--WHILE EXISTS
-- (SELECT TOP 1 1
-- FROM @MATUPD)
-- BEGIN
-- SELECT TOP 1
-- @UPDMAT = [MAT].[MATTER],
-- @UPDChargeBal = [MAT].[ChargeBal],
-- @UPDTimeBal = [MAT].[TimeBal]
-- FROM @MATUPD [MAT]
-- UPDATE [MAT]
-- SET [MAT].[ChargeBal] = ISNULL([MAT].[ChargeBal], CONVERT(DECIMAL(13, 2), 0)) + @UPDChargeBal,
-- [MAT].[TimeBal] = ISNULL([MAT].[TimeBal], CONVERT(DECIMAL(13, 2), 0)) + @UPDTimeBal
-- FROM [dbo].[matters] [MAT]
-- WHERE [MAT].[CODE] = @UPDMAT
-- DELETE @MATUPD
-- WHERE [MATTER] = @UPDMAT
-- END
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_UpdateWorkflowActionChecklistItem'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateWorkflowActionChecklistItem]
END
GO
CREATE PROCEDURE [dbo].[KAAS_UpdateWorkflowActionChecklistItem]
(
@Id INT,
@ChecklistItem VARCHAR(500),
@Optional BIT
)
AS
/*************************************************************************************************************
* This procedure is used to IUpdates a WorkFlow Action Checklist item *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateWorkflowActionChecklistItem] *
* Copied from : [dbo].[ky_NETSPUpdateWorkflowActionChecklistItem] *
* *
* Modification History : *
* 2024-07-18 Balamurugan C Created *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE [TACL]
SET [TACL].[ChecklistItem] = @ChecklistItem,
[TACL].[Optional] = @Optional
FROM [dbo].[TemplateActionChecklists] [TACL]
WHERE [TACL].[ID] = @Id
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 OBJECT_ID(N'KAAS_WizFetchContactCode', N'P') IS NOT NULL
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
* 2024-12-04 Ghayathri.S.V Modified-Included to fetch Fee Type data *
*******************************************************************************************************/
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]
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_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),
@EnvelopeName VARCHAR(200),
@MainContact VARCHAR(30),
@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 *
* 2024-11-28 Balamurugan C Added Pricipal and Envelope Name *
*******************************************************************************************************/
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],
[EnvelopeName],
[Principal])
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,
@EnvelopeName,
@MainContact)
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),
@FeeType VARCHAR(1),
@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 *
* 2024-12-04 Ghayathri.S.V Modified - Included logic to insert fee type data
*******************************************************************************************************/
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],
[FeeType],
[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.[FeeType],
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],
@FeeType AS [FeeType],
@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],
[FeeType],
[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,
@FeeType,
@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 EXISTS (SELECT TOP 1 1
FROM [sys].[objects] AS [SO]
WHERE [SO].[name] = N'KAAS_XMLPostDayBook2'
AND [SO].[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_XMLPostDayBook2]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_XMLPostDayBook2]
(@XML NVARCHAR(MAX))
AS
/*************************************************************************************************************
* *
* [KAAS_XMLPostDayBook2] *
* *
* Posts valid entries from the Time Day Book into the Time Entry *
******************************************************************************************************
*
* Modification History *
* 2024-06-06 Revathy.D Copied from Ky_NETXMLPostDayBook2 *
* *
*************************************************************************************************************/
BEGIN
DECLARE @iSL INT
DECLARE @Handler VARCHAR(10)
DECLARE @HSEClientGroup VARCHAR(20)
DECLARE @UPDByHandler VARCHAR(10)
DECLARE @User NVARCHAR(128)
DECLARE @UpdateRestriction INT
DECLARE @WDNTEID NTEID
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([CL].[CURPER], 0),
@YEAR = ISNULL([CL].[YEAR], 0)
FROM [CONTROL] [CL]
END
ELSE
BEGIN
SET @PERIOD = (SELECT ISNULL([CLN].[numvalue], 0) FROM [dbo].[CtrlNum] [CLN] WHERE [CLN].[code] = 'CurPeriod')
SET @YEAR = (SELECT ISNULL([CLN].[numvalue], 0) FROM [dbo].[CtrlNum] [CLN] WHERE [CLN].[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].[ky_WDTimeDayBookWithAxleErrors]
(@HSEClientGroup,
@Handler) [AXER]
WHERE [AXER].[IsAxleError] = 'Y'
SELECT @MAXID = ISNULL(MAX([TIE].[RECORDID]), 0)
FROM [dbo].[TimeEntry] [TIE]
INSERT
INTO @WDNTEID
([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].[ky_NETFNUserCanPostTime]([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))))
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 @WDNTEID 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 @WDNTEID 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].[ky_NETSetTimeDaybookRateCharge] @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],
[Charge],
[Charged],
[Units],
[TASK],
[TIMEORCHARGE],
[COMMENT],
[NCCODE],
[DOCKET],
[TEAM],
[TRACKREF],
[REC_IRR],
[InvoiceNo],
[PERIOD],
[YEAR],
[BillingPeriod],
[BillingYear],
[OpenInv],
[ACTIONID],
[StageCode],
[BilledAmount],
[AxleNumber],
[IncludeInBill],
[Leave],
[MatterLevel],
[FEERate],
[ChargedMins],
[FEECost],
[TaskLevel],
[Branch],
[EntryDate],
[ModifyDate],
[RECORDID])
SELECT CASE WHEN RTRIM(ISNULL([TDB].[TASK], '')) <> ''
THEN [TDB].[MATTER]
WHEN RTRIM(ISNULL([TDB].[MATTER], '')) <> ''
THEN [TDB].[MATTER]
ELSE '~' END AS [Matter],
[TDB].[FEEEARN],
[TDB].[DATE],
[TDB].[TIME],
[TDB].[RATE],
CASE WHEN RTRIM(ISNULL([TDB].[MATTER], '~')) <> '~'
THEN [TDB].[CHARGE]
ELSE 0 END AS [Charge],
CASE WHEN RTRIM(ISNULL([TDB].[MATTER], '~')) <> '~'
THEN [TDB].[CHARGE]
ELSE 0 END AS [Charged],
[TDB].[Units],
[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 AS [NCCODE],
CASE WHEN ISNUMERIC(RTRIM(ISNULL([TDB].[DOCKET],''))) = 1
THEN CONVERT(decimal(9,0), RTRIM(ISNULL([TDB].[DOCKET],'')))
ELSE 0 END AS [DOCKET],
ISNULL([HAN].[TEAM], [TDB].[TEAM]),
[TDB].[TRACKREF],
[TDB].[REC_IRR],
CASE WHEN ISNULL([MAT].[OpenInvoiceNo], 0) <> 0
THEN [MAT].[OpenInvoiceNo]
ELSE 0 END,
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
CASE WHEN ISNULL([MAT].[OpenInvoiceNo], 0) <> 0
THEN 'Y'
ELSE 'N' END AS [OpenInv],
[TDB].[ACTIONID],
[TDB].[StageCode],
CASE WHEN ISNULL([MAT].[OpenInvoiceNo], 0) <> 0
THEN [TDB].[Charge]
ELSE 0 END AS [BilledAmount],
0 AS [AxleNumber],
CASE WHEN ISNULL([MAT].[OpenInvoiceNo], 0) <> 0
THEN 1
ELSE 0 END AS [IncludeInBill],
[TDB].[Leave],
[TDB].[MatterLevel],
[TDB].[FEERate],
[TDB].[ChargedMins],
[TDB].[FEECost],
[TDB].[TaskLevel],
CASE WHEN [TDB].[Matter] = '~' THEN '' ELSE ISNULL(HAN.[BRANCH], '') END, -- 2015-09-01 John
[TDB].[EntryDate],
[TDB].[ModifyDate],
[NTEID].[NEWID]
FROM @WDNTEID 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 @WDNTEID
-- ([id],
-- [NewId],
-- [RECORDID])
--SELECT [ID],
-- [NEWID],
-- [RECORDID]
-- FROM @NTEID
EXEC [dbo].[KAAS_UpdateTimeEntryFromDayBook2] @HANDLER, @UPDByHandler, @User, @WDNTEID
EXEC [dbo].[KAAS_CheckUnpostableEntries2] @WDNTEID
DELETE [TDB]
FROM @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]
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
AND ( @UpdateRestriction = 0
OR ( @UpdateRestriction = 1
AND [TDB].[AdHocPosting] = 1)
OR ( @UpdateRestriction = 2
AND [TDB].[Date] < CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112))))
END
ELSE
BEGIN
SELECT DISTINCT [AXER].[AxleError]
FROM [dbo].[ky_WDTimeDayBookWithAxleErrors]
(@HSEClientGroup,
@Handler) [AXER]
WHERE [AXER].[IsAxleError] = 'Y'
END
-- KEYD-5889 - Moved to the end of the procedure so the above select statements can be filtered according to UpdateRestriction
-- 2019/04/30 JG
-- 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
END
GO
IF OBJECT_ID(N'KAAS__GetClientUDFDetailsForPage',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS__GetClientUDFDetailsForPage]
GO
CREATE PROCEDURE [dbo].[KAAS__GetClientUDFDetailsForPage]
(@FORMID INT,
@ClientCode VARCHAR(20))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name: [KAAS__GetClientUDFDetailsForPage]
* Description: This procedure is used to get Client UDF Details For Page.
*
* Modification History:
*
* 2024-10-17 Nithyanandham.M Created
*******************************************************************************************************/
BEGIN
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 ISNULL(CONVERT(VARCHAR(20), [DV].[DateValue], 106), '')
WHEN UDFA.[DateValue] = '19000101'
THEN ''
ELSE CONVERT(VARCHAR(20), UDFA.[DateValue], 106) END AS [DateValue],
CASE WHEN [UDFA].[UDFNAME] IS NOT NULL
THEN ISNULL([UDFA].[NumberValue], '0.00')
ELSE CONVERT(VARCHAR(20), [DV].[NumberValue]) END AS [NumberValue],
CASE WHEN [UDFA].[UDFNAME] IS NOT NULL
THEN RTRIM(ISNULL([UDFA].[TEXT1], ''))
ELSE [DV].[TEXT1] END AS [TEXT1]
FROM [dbo].[SystemUserDefinedFields] SUDF
INNER JOIN [dbo].[ClientUDFFormParameters] UFP
ON SUDF.[FILEPREFIX] = UFP.[UDFPrefix]
AND SUDF.[FIELDNAME] = UFP.[UDFName]
LEFT OUTER JOIN [dbo].[ClientUDFAnswers] UDFA
ON UDFA.[UDFFILE] = SUDF.[FILEPREFIX]
AND UDFA.[UDFNAME] = SUDF.[FIELDNAME]
AND (UDFA.[ClientCode] = @ClientCode
OR ISNULL(UDFA.[ClientCode],'') = '')
OUTER APPLY [dbo].[ky_NETFNGetUDFDefaultValue]([SUDF].[FIELDNAME]) AS [DV]
WHERE UFP.[UDFFormID] = @FORMID
ORDER BY UFP.[seqno]
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
IF OBJECT_ID(N'KAAS_InsertORUpdateClientUDFDetails',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_InsertORUpdateClientUDFDetails]
GO
CREATE PROCEDURE [dbo].[KAAS_InsertORUpdateClientUDFDetails]
(@FORMID INT,
@HANDLER VARCHAR(10),
@ClientCode VARCHAR(20))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name: [KAAS_InsertORUpdateClientUDFDetails]
* Description: This procedure is used to Insert OR Update Client UDF Details.
*
* Modification History:
*
* 2024-10-17 Nithyanandham.M Created
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS (SELECT TOP 1 1 FROM UDFFormClientRelation WHERE HANDLER=@HANDLER AND Clientcode=@ClientCode )
BEGIN
UPDATE
UDFFormClientRelation
SET
Formid =@FORMID
WHERE
HANDLER=@HANDLER
AND
Clientcode=@ClientCode
END
ELSE
BEGIN
INSERT INTO
UDFFormClientRelation
(Formid
,handler
,Clientcode )
VALUES
(@FORMID
,@HANDLER
,@ClientCode )
END
SET NOCOUNT OFF
END
GO