IF OBJECT_ID(N'KAAS_CP_AcitvateNewUserAccount',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_AcitvateNewUserAccount]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_AcitvateNewUserAccount]
(@EmailId VARCHAR(200),
@PasswordHash NVARCHAR(512))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_AcitvateNewUserAccount] *
* Description: To activate new user account with password hash *
* *
* Modification History: *
* 2021-06-08 Aakif Created *
* 2021-07-09 Aakif #12608 - Name and email has to be removed while account activation *
*******************************************************************************************************/
BEGIN
-- Update user details to activate account
UPDATE [dbo].[ClientLogin]
SET
[PasswordHash] = @PasswordHash,
[IsEmailConfirmed] = 1,
[IsUserVerifiedEmail] = 1,
[EmailActivationToken] = NULL,
[EmailActivationTokenExpirationTime] = NULL
WHERE [Email] = @EmailId
END
GO
IF OBJECT_ID(N'KAAS_CP_AddEditRecentMatterList',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_AddEditRecentMatterList]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_AddEditRecentMatterList]
(@LoginId BIGINT,
@CaseCode VARCHAR(15))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_AddEditRecentMatterList] *
* Description: TO ADD OR EDIT CLIENT PORTAL USER'S RECENT MATTER LIST *
* *
* Modification History: *
* 2022-07-06 Aakif Created *
*******************************************************************************************************/
BEGIN
IF NOT EXISTS (SELECT TOP 1 1
FROM [dbo].[ClientPortalRecentMatter] [RML]
WHERE [RML].ClientLoginId = @LoginId
AND [RML].[MatterCode] = @CaseCode)
BEGIN
INSERT INTO
[dbo].[ClientPortalRecentMatter]
([ClientLoginId],
[MatterCode])
VALUES
(@LoginId,
@CaseCode)
END
ELSE
BEGIN
UPDATE [dbo].[ClientPortalRecentMatter]
SET [LastAccessDate] = GETUTCDATE()
WHERE [ClientLoginId] = @LoginId
AND [MatterCode] = @CaseCode
END
END
GO
IF OBJECT_ID(N'KAAS_CP_AddEditUserSetting',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_AddEditUserSetting]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_AddEditUserSetting]
(@LoginId BIGINT,
@SettingKey VARCHAR(100),
@SettingValue NVARCHAR(MAX))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_AddEditUserSetting] *
* Description: TO ADD OR EDIT CLIENT PORTAL USER SETTING *
* *
* Modification History: *
* 2022-07-06 Aakif Created *
*******************************************************************************************************/
BEGIN
IF NOT EXISTS (SELECT TOP 1 1
FROM [dbo].[ClientPortalUserSetting] [US]
WHERE [US].ClientLoginId = @LoginId
AND [US].[Key] = @SettingKey)
BEGIN
INSERT INTO
[dbo].[ClientPortalUserSetting]
([ClientLoginId],
[Key],
[Value])
VALUES
(@LoginId,
@SettingKey,
@SettingValue)
END
ELSE
BEGIN
UPDATE [dbo].[ClientPortalUserSetting]
SET [Value] = @SettingValue
WHERE [ClientLoginId] = @LoginId
AND [Key] = @SettingKey
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CP_CreateActionForFECode'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_CreateActionForFECode]
END
GO
CREATE PROCEDURE [KAAS_CP_CreateActionForFECode]
(
@CASECODE VARCHAR(20),
@FNCODE VARCHAR(10),
@TEAMCODE VARCHAR(10),
@SUBJECT VARCHAR(MAX),
@TEXT VARCHAR(MAX),
@Result INT OUTPUT
)
/*******************************************************************************************************
* This sp used to insert blank action. *
* *
* Stored Procedure Name : [dbo].[CreateActionForFECode] *
* 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-04-18 Vinodhkumar.M Created *
* 2022-04-26 Vinodhkumar.M Updated - action code in insert statement *
* 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.KAAS_CP_ConvertTime(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
-- This SP created for Client Portal Upload
EXEC @ACTIONID = [dbo].[KAAS_CP_GetNextActionId]
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,
'ADMNT',
null,
'N',
null,
@FNCODE,
@TEAMCODE,
@TEXT,
null,
null,
null,
null,
null,
GETUTCDATE(),
'P',
@TIMECONVERT,
@TIMECONVERT,
0,
@ACTIONID,
0,
'N',
null,
null,
null,
0,
0,
0,
null,
null,
null,
null,
null,
null,
@SUBJECT,
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 OBJECT_ID(N'KAAS_CP_CreateActionForNewInstruction',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_CreateActionForNewInstruction]
GO
CREATE PROCEDURE [KAAS_CP_CreateActionForNewInstruction]
(
@CASECODE VARCHAR(20),
@FormId INT
)
/*******************************************************************************************************
* This sp used to create action based on Template provided by new instruction form type *
* *
* Stored Procedure Name : [dbo].[CreateActionForFECode] *
* *
* Modification History : *
* 2022-06-07 Aakif Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
--Diary INSERT IF TEMPLATE ACTION IS PRESENT FOR FORM
DECLARE @NewActionCode VARCHAR(15) = NULL;
DECLARE @FECode nvarchar(20) = '';
DECLARE @ActionDesc VARCHAR(100) = '';
DECLARE @ActionType CHAR(1) = '';
DECLARE @HandlerTeamCode VARCHAR(10) = '';
SELECT @NewActionCode = LTRIM(RTRIM(ISNULL(InitialActionCode, ''))),
@FECode = LTRIM(RTRIM(FeCode))
FROM [dbo].[WebForms]
WHERE [FormId] = @FormId
SELECT @ActionDesc = [Description],
@ActionType = [ACTTYPE]
FROM [dbo].[TemplateActions]
WHERE ACTIONCODE = @NewActionCode
SELECT @HandlerTeamCode = [Team]
FROM [dbo].[Handlers]
WHERE [CODE] = @FECode
DECLARE @TIMECONVERT INT
SET @TIMECONVERT = dbo.KAAS_CP_ConvertTime(GETDATE())
DECLARE @ACTIONID INT
-- This SP created for Client Portal Upload
EXEC @ACTIONID = [dbo].[KAAS_CP_GetNextActionId]
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,
@NewActionCode,
null,
@ActionType,
null,
@FECode,
@HandlerTeamCode,
@ActionDesc,
null,
null,
null,
null,
null,
GETUTCDATE(),
'P',
@TIMECONVERT,
@TIMECONVERT,
0,
@ACTIONID,
0,
'N',
null,
null,
null,
0,
0,
0,
null,
null,
null,
null,
null,
null,
@ActionDesc,
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,
@FECode,
@HandlerTeamCode,
GETUTCDATE(),
@TIMECONVERT,
null,
@TIMECONVERT,
GETDATE(),
@TIMECONVERT,
null,
0,
'Y',
@FECode,
0,
null,
@FECode,
null,
'Created')
--SET @Result = @ACTIONID
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CP_DeleteAction',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_DeleteAction]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_DeleteAction]
(@ACTIONID INT,
@HANDLERCODE VARCHAR(10),
@IsAddAction BIT)
/*******************************************************************************************************
* This procedure is used Delete an Action from the Case Diary. *
* *
* Stored Procedure Name : [dbo].[KAAS_CP_DeleteAction] *
* Copied from : [dbo].[KAAS_DeleteAction] *
* *
* 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 *
* 2021-03-18 Vinodhkumar.M Created *
* 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] *
* *
*******************************************************************************************************/
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 @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
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 [DIA].[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
-- 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
-- 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_CP_FetchDiaryByMatterCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_FetchDiaryByMatterCode]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_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,
@LoginId BIGINT = NULL )
AS
/*************************************************************************************************************
* *
* Copied From: [dbo].[KEYHM_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 KEYHM_FNConvertUTCDateToTargetTimeZone function to convert *
action date to utc *
* 2021-06-14 Aakif Created *
* 2022-06-08 Aakif Included TEXT2 field that retains word wrapping *
*************************************************************************************************************/
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
AND ISNULL([DIA].PUBLISH, '') = 'P'
-- -- 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_CP_FNConvertUTCDateToTargetTimeZone([DIA].[DATE], @LoginId) AS [DATE],
CONVERT(VARCHAR(5),dbo.KAAS_CP_FNConvertUTCDateToTargetTimeZone([DIA].[DATE], @LoginId), 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],
CAST(RTRIM(LTRIM(CAST([DIA].[TEXT1] AS nVARCHAR(max)))) AS TEXT) AS [TEXT2],
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_CP_FNConvertUTCDateToTargetTimeZone([DIA].[DUEDATE], @LoginId) , 20)
ELSE
CONVERT(VARCHAR, dbo.KAAS_CP_FNConvertUTCDateToTargetTimeZone([DIA].[DATE], @LoginId) , 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
AND ISNULL([DIA].PUBLISH, '') = 'P'
ORDER BY [FND].[id]
End
GO
/****** Object: StoredProcedure [dbo].[KAAS_GenerateCaseAssociateCode] Script Date: 21/01/2015 12:44:29 ******/
IF OBJECT_ID(N'KAAS_CP_GenerateCaseAssociateCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GenerateCaseAssociateCode]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GenerateCaseAssociateCode]
(@code VARCHAR(100),
@result VARCHAR(100) OUTPUT)
AS
/*******************************************************************************************************
* This procedure is used to Generate Case Associate code. *
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GenerateCaseAssociateCode] *
* Copied from : [dbo].[KAAS_GenerateCaseAssociateCode] *
* *
* Modification History : *
* 2019-05-31 Vinodhan K Created *
* 2022-04-20 Vinodhkumar.M Created for client portal *
*******************************************************************************************************/
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_CP_GetAccountSummaryDetails',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetAccountSummaryDetails]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetAccountSummaryDetails]
(@MatterCode VARCHAR(20))
AS
/******************************************************************************************************************
* *
* Used to fetch account summary details *
* *
* Stored Procedure Name: [dbo].[KAAS_CP_GetAccountSummaryDetails] *
* Copied from : [dbo].[KAAS_GetMatterLedgerDetail] *
* [dbo].[ky_NETGetMatterLedger] *
* [dbo].[ky_NETGetMatterLedgerSAM4] *
* *
* Modification History: *
* 2021-07-13 Vinodhkumar 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 EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CP_GetActionId'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_GetActionId]
END
GO
CREATE PROCEDURE [KAAS_CP_GetActionId]
(
@CASECODE VARCHAR(20),
@FNCODE VARCHAR(10),
@TEAMCODE VARCHAR(10),
@Result INT OUTPUT
)
/*******************************************************************************************************
* This sp used to insert blank action. *
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetActionId] *
* Copied from : [dbo].[ky_NETInsertTasksAction] *
* Copied from : [dbo].[KAAS_InsertTasksAction] *
* *
* 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 *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
--Diary
DECLARE @TIMECONVERT INT
SET @TIMECONVERT = dbo.KAAS_CP_ConvertTime(GETDATE())
DECLARE @ACTIONID INT
--Pino 2015-09-30 Start
-- EXEC @ACTIONID = [dbo].[KAAS_GetNextActionID]
--SET @ACTIONID = (SELECT ISNULL(MAX(ACTIONID + 1), 1) FROM [dbo].[diary])
--Pino 2015-09-30 End
-- This SP created for Client Portal Upload
EXEC @ACTIONID = [dbo].[KAAS_CP_GetNextActionId]
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,
'A',
null,
@FNCODE,
@TEAMCODE,
null,
null,
null,
null,
null,
null,
GETDATE(),
'P',
@TIMECONVERT,
@TIMECONVERT,
0,
@ACTIONID,
0,
'N',
null,
null,
null,
0,
0,
0,
null,
null,
null,
null,
null,
null,
null,
0,
0,
0,
0,
null,
'Not Applicable',
null,
null,
0,
null,
0)
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[DATE],
[TIME],
[DATER],
[TIMER],
[DUEDATE],
[DUETIME],
[REVIEW],
[STATUS],
[OWNER],
[DELEGATE],
[DELEGATESTATUS],
[ActionType],
[FromHandler],
[ReturnedBy],
[DelType])
VALUES(@ACTIONID,
@FNCODE,
@TEAMCODE,
GETDATE(),
@TIMECONVERT,
null,
@TIMECONVERT,
GETDATE(),
@TIMECONVERT,
null,
0,
'Y',
@FNCODE,
0,
null,
@FNCODE,
null,
'Created')
SET @Result = @ACTIONID
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CP_GetAllUserLoginDetails',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetAllUserLoginDetails]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetAllUserLoginDetails]
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetAllUserLoginDetails] *
* Description: To get login details for all users in system *
* *
* Modification History: *
* 2021-07-06 Aakif Created *
* 2022-07-27 Vinodhkumar.M fetch only non deleted user condition is added *
*******************************************************************************************************/
BEGIN
SELECT
[ClientLoginId] AS [ClientLoginId],
[Email] AS [Email],
[PhoneNumber] AS [PhoneNumber],
[Name] AS [Name],
[ClientDefaulTimeZone] AS [ClientDefaulTimeZone],
[AccessCode] AS [AccessCode],
[AccessCodeStatus] AS [AccessCodeStatus],
[PasswordHash] AS [PasswordHash],
ISNULL([NoOfAttempt],0) AS [NoOfAttempt],
dbo.KAAS_CP_GetLastLoginDateTime(
ClientLoginId) AS [ClientLastAccessDateTime],
dbo.KAAS_CP_FNCheckUserIsLocked(
ClientLoginId) AS [IsLocked],
[LastAccessedDateTime] AS [LastAccessedDateTime],
[LockedOutEndDate] AS [LockedOutEndDate],
[SecurityStamp] AS [SecurityStamp],
ISNULL([IsTwoFactorEnabled],0) AS [IsTwoFactorEnabled],
[IsActiveLogin] AS [IsActiveLogin],
[IsFirstlogin] AS [IsFirstlogin],
[IsDeleted] AS [IsDeleted],
[IsAdmin] AS [IsAdmin],
[IsEmailConfirmed] AS [IsEmailConfirmed],
[IsPhoneNumberConfirmed] AS [IsPhoneNumberConfirmed],
[EmailActivationToken] AS [EmailActivationToken],
[ConcurrencyStamp] AS [ConcurrencyStamp],
[PasswordResetOTP] AS [PasswordResetOTP],
[PasswordResetOTPCreationTime] AS [PasswordResetOTPCreationTime],
[PasswordResetOTPExpirationTime] AS [PasswordResetOTPExpirationTime],
[OTPAccessToken] AS [OTPAccessToken],
[OTPAccessTokenCreationTime] AS [OTPAccessTokenCreationTime],
[OTPAccessTokenExpirationTime] AS [OTPAccessTokenExpirationTime],
[PasswordResetOTPAttemptCount] AS [PasswordResetOTPAttemptCount],
[PasswordResetLockOutEndDate] AS [PasswordResetLockOutEndDate],
[IsPasswordResetOTPVerified] AS [IsPasswordResetOTPVerified],
[IsUserVerifiedEmail] AS [IsUserVerifiedEmail],
[VerifiedByAdminUserId] AS [VerifiedByAdminUserId],
[EmailActivationTokenCreatedTime] AS [EmailActivationTokenCreatedTime],
[EmailActivationTokenExpirationTime] AS [EmailActivationTokenExpirationTime],
[IsAdminVerifiedUserLogin] AS [IsAdminVerifiedUserLogin],
[SecretQuestion] AS [SecretQuestion],
[Answer] AS [Answer]
FROM
[dbo].[ClientLogin]
WHERE
[IsDeleted] = 0
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CP_GetCaseFoldersAttachment'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_GetCaseFoldersAttachment]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_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_CP_GetCaseFoldersAttachment] *
* Copied from : [dbo].[ky_NETGetCaseFolders] *
* Copied from : [dbo].[KAAS_GetCaseFolders] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
* 2022-02-10 Vinodhkumar.M Created - to upload Document in client portal *
*******************************************************************************************************/
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 OBJECT_ID(N'KAAS_CP_GetCurrentTenantFirmName',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetCurrentTenantFirmName]
GO
CREATE PROCEDURE [dbo].[KAAS_CP_GetCurrentTenantFirmName]
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetCurrentTenantFirmName] *
* Description: To get tenant firm name for client portal *
* *
* Modification History: *
* 2021-06-04 Aakif 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_CP_GetDashboardWidgetDetails',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetDashboardWidgetDetails]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetDashboardWidgetDetails]
(@LoginId VARCHAR(100))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetDashboardWidgetDetails] *
* Description: To get widget details for Home page Dashboard *
* *
* Modification History: *
* 2021-07-06 Vinodhkumar Created
* 2021-07-09 Vinodhkumar Instead of using select statement,using scalar variables to store *
and using the variable to dispaly the data *
* 2021-08-09 Aakif Included default value decimal precision for cost variables *
* 2022-06-13 Aakif Fixed issue to show only active cases in dashboard *
* 2022-06-14 Aakif Used join instead of subquery to improve performance *
*******************************************************************************************************/
BEGIN
DECLARE
@ActiveCases INT,
@OutstandingAction INT,
@RecentAction INT,
@OutstandingInvoice DECIMAL(10,2),
@UnbilledOutlay DECIMAL(10,2),
@UnbilledTime DECIMAL(10,2)
DECLARE @PublishedCasesList TABLE
(
[MatterCode] VARCHAR(15)
)
--Getting the published matter list and stored in table variable
INSERT INTO
@PublishedCasesList
SELECT
[MatterCode]
FROM
[dbo].[KAAS_CP_TFGetMatterCodeForClient] (@LoginId)
--To get active cases
SELECT
@ActiveCases = COUNT(1)
FROM
@PublishedCasesList PA
JOIN
[dbo].[matters] MAT
ON PA.MatterCode = MAT.[Code]
AND ISNULL(MAT.Closed, '') = 'N'
--To get outstanding action for all active cases
SELECT
@OutstandingAction = COUNT(1)
FROM
[dbo].[diary] [DIA]
JOIN
@PublishedCasesList [PC]
ON
[DIA].[CaseCode] = [PC].[MatterCode]
WHERE
ISNULL([Publish], '') = 'P' AND
[Status] = 0
--To get the recent action for all active cases
SELECT
@RecentAction = COUNT(1)
FROM
[dbo].[Diary] [DIA]
JOIN
@PublishedCasesList [PC]
ON
[DIA].[CaseCode] = [PC].[MatterCode]
WHERE
ISNULL([Publish], '') = 'P' AND
[Date] >= DATEADD(DAY,-7,GETUTCDATE())
--To get the Outstanding invoice for active cases
SELECT
@OutstandingInvoice = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([DebtBal], 0)), 0))
FROM
[dbo].[Matters] [MAT]
JOIN
@PublishedCasesList [PC]
ON
[MAT].[Code] = [PC].[MatterCode]
WHERE
ISNULL([Publish], '') = 'P'
--To get the Unbilled outlay amount
SELECT
@UnbilledOutlay = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([OutlayBal], 0)), 0))
FROM
[dbo].[Matters] [MAT]
JOIN
@PublishedCasesList [PC]
ON
[MAT].[Code] = [PC].[MatterCode]
WHERE
ISNULL([Publish], '') = 'P'
--To get the unbilled time for all active cases
SELECT
@UnbilledTime = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([ChargeBal], 0)), 0))
FROM
[dbo].[Matters] [MAT]
JOIN
@PublishedCasesList [PC]
ON
[MAT].[Code] = [PC].[MatterCode]
WHERE
ISNULL([Publish], '') = 'P'
SELECT
@ActiveCases AS [ActiveCases],
@OutstandingAction AS [OutstandingAction],
@RecentAction AS [RecentAction],
@OutstandingInvoice AS [OutstandingInvoice],
@UnbilledOutlay AS [UnbilledOutlay],
@UnbilledTime AS [UnbilledTime]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CP_GetDiaryAttachments'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_GetDiaryAttachments]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetDiaryAttachments]
(@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] *
* 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 *
*******************************************************************************************************/
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 OBJECT_ID(N'KAAS_CP_GetDocumentsIM',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetDocumentsIM]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_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) = '',
@LoginId BIGINT = 0,
@ColumnNames VARCHAR(50) = '',
@FilterValues VARCHAR(4000) = '',
@DocumentIsNear BIT = 0,
@DocumentStartDate DATE ='',
@DocumentEndDate DATE =''
)
AS
/************************************************************************************************************************
* *
* Copied From: [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-16 Aakf Created *
* 2021-07-29 Aakif Replaced table function to get document counts for published items *
************************************************************************************************************************/
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)
,[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))
DECLARE @DOCCLASSFilterCount INT = 0;
DECLARE @TypeFilterCount 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) values (@FilterValue,null)
ELSE
insert into @CustomFilter (DOCCLASS,TYPE) values (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 <>'')
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.[diary] [DIA]
INNER JOIN dbo.[DiaryAttachments] [DA] ON [DA].[DiaryID] = [DIA].[ACTIONID]
AND [DA].[CASECODE] = [DIA].[CASECODE]
WHERE [DIA].[CaseCode] = @matter
AND
[DA].DATEENTERED>=@DocumentStartDate
AND
[DA].DATEENTERED<=@DocumentEndDate
AND
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
SELECT @TOTALRECORDS = Count(1)+ @TOTALRECORDS FROM @res
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]
--,Count(1) Over() as TotalRowsCount
INTO #DiaryTablesDoc
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]
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 [DIA].[CaseCode] = @matter
AND
[DA].DATEENTERED>=@DocumentStartDate
AND
[DA].DATEENTERED<=@DocumentEndDate
AND
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
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]
-- ,[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
FROM #DiaryTablesDoc [DIA]
-- 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 #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.[diary] [DIA]
INNER JOIN dbo.[DiaryAttachments] [DA] ON [DA].[DiaryID] = [DIA].[ACTIONID]
AND [DA].[CASECODE] = [DIA].[CASECODE]
WHERE [DIA].[CaseCode] = @matter
AND
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
SELECT @TOTALRECORDS = Count(1)+ @TOTALRECORDS FROM @res
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]
--,Count(1) Over() as TotalRowsCount
INTO #DiaryTables
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]
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 [DIA].[CaseCode] = @matter
AND
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
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]
-- ,[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
FROM #DiaryTables [DIA]
-- 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
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
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]
-- , 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
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
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]
)
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]
FROM #DiaryTableListDOc [DIA]
--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
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
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]
-- , 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
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
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]
)
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]
FROM #DiaryTableList [DIA]
--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
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
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]
--,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
ISNULL([DIA].PUBLISH, '') = 'P'
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
)
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]
)
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]
FROM #DiaryTable [DIA]
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] AS [Id],
CONVERT(VARCHAR(15),dbo.KAAS_CP_FNConvertUTCDateToTargetTimeZone([DiaryDate], @LoginId), 23) AS [DATE],
[ACTIONID],
CONVERT(VARCHAR(15), dbo.KAAS_CP_FNConvertUTCDateToTargetTimeZone([DocumentDate], @LoginId), 23) AS [DocumentDate],
[IMDocID],
[IMClass],
[DocumentClassDescription],
[DocClass],
[Document],
[TRACKREFERENCE] AS [DocTrackReference],
[TYPE] AS [DocType],
[Attachments],
[EMAIL],
[EMAILFROM] AS [EMAILADDRESS],
[EMAILTO] AS [ADDRESSTO],
[EMAILSENT],
[SUBJECT],
[ShortText],
[NAME],
[FILEPATH] AS [FilePath],
[PROCESSTYPE],
[ACTIONTYPE],
[ActionTypeDescription],
[DOCUMENTSOURCE],
[CurrentVersion],
[IsInDocFolder],
[IsShared],
UniqueId
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
[seq] AS [seq],
[id] AS [FolderId],
[parent] AS [parent],
[foldername] AS [foldername],
[foldericon] AS [foldericon],
[folderimage] AS [folderimage],
[foldershared] AS [foldershared],
[folderisours] AS [folderisours],
[foldername] AS [Document],
[documentcount] AS [DocumentCount],
999 + TRY_CAST(seq AS INT) AS [Id]
FROM
[dbo].[KAAS_CP_FNGetDocFolders](@matter, @DocFolderID, 1, 1)
WHERE
parent <> -1
END
ELSE
BEGIN
SELECT TOP 0
CONVERT(INT, 0) AS [seq],
CONVERT(INT, 0) AS [FolderId],
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 OBJECT_ID(N'KAAS_CP_GetFEandTeamCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetFEandTeamCode]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetFEandTeamCode]
(@CASECODE VARCHAR(15) = NULL)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetFEandTeamCode] *
* Description: To get current team code and FE code *
* *
* Modification History: *
* 2022-02-14 Vinodhkumar.M Ceated *
*******************************************************************************************************/
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 OBJECT_ID(N'KAAS_CP_GetMatterDetailsForClient',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetMatterDetailsForClient]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetMatterDetailsForClient]
(@LoginId BIGINT,
@CaseCode VARCHAR(20) = NULL,
@IsShowCloseMatter BIT = 0)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetMatterDetailsForClient] *
* Description: To get matter details for client portal *
* *
* Modification History: *
* 2021-06-09 Aakif Created *
* 2021-06-11 Aakif Included option to serach with case code. User TimeZone conversion *
* and label names for User1, User2, User3 and Your Ref *
* 2021-06-22 Aakif Included column for matter comment and fixed null data issue for status *
* 2022-02-10 vinodhkumar.M Included - FE code, Team code column *
* 2022-02-10 vinodhkumar.M Removed - new SP created to fetch FE code, Team code column, so *
removing columns here *
* 2022-04-20 vinodhkumar.M Included - client Code *
* 2022-04-26 vinodhkumar.M Included - Fe Code,Telephone number,DisallowNewMatter and *
handled Inactive condition *
* 2022-04-29 vinodhkumar.M Updated - Replaced Contact inactive condition with Matter table *
closed in where clause also put left join for matter table *
with [FeeEarnerCodes] table *
* 2022-06-06 Aakif Updated SP to include option to list closed matter as well *
* 2022-06-08 Aakif Included column to show matter close status *
* 2022-06-14 Aakif Included column to show Outstanding balance *
* 2022-07-07 Aakif Included option to show recently accessed matter first *
* 2022-08-11 Aakif Performance Tuning *
* 2023-10-12 Pino Carafa Rewrite using [dbo].[PublishedMatters] View *
* *
********************************************************************************************************/
BEGIN
SET NOCOUNT ON
SET @CaseCode = RTRIM(ISNULL(@CaseCode, ''))
DECLARE @MATS TABLE
([Code] VARCHAR(20) PRIMARY KEY,
[LastAccess] DATETIME,
UNIQUE NONCLUSTERED ([LastAccess] DESC, [Code]))
DECLARE @COUNT INT
IF @CaseCode <> ''
BEGIN
SELECT @COUNT = COUNT(1)
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, NOLOCK)
ON [MAT].[Code] = [CLA].[MatterCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] = @CaseCode
END
ELSE IF @IsShowCloseMatter = 1
BEGIN
SELECT @COUNT = COUNT(1)
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, NOLOCK)
ON [MAT].[Code] = [CLA].[MatterCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NOT NULL
END
ELSE
BEGIN
SELECT @COUNT = COUNT(1)
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, INDEX([IDX_Closed]), NOLOCK)
ON [MAT].[Closed] = 0
AND [MAT].[Code] = [CLA].[MatterCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NOT NULL
END
IF @COUNT > 0
BEGIN
IF @CaseCode <> ''
BEGIN
INSERT
INTO @MATS
([Code],
[LastAccess])
SELECT TOP (@COUNT)
[MAT].[Code],
[MAT].[Started]
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, NOLOCK)
ON [MAT].[Code] = [CLA].[MatterCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] = @CaseCode
END
ELSE IF @IsShowCloseMatter = 1
BEGIN
INSERT
INTO @MATS
([Code],
[LastAccess])
SELECT TOP (@COUNT)
[MAT].[Code],
[MAT].[Started]
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, NOLOCK)
ON [MAT].[Code] = [CLA].[MatterCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NOT NULL
END
ELSE
BEGIN
INSERT
INTO @MATS
([Code],
[LastAccess])
SELECT TOP (@COUNT)
[MAT].[Code],
[MAT].[Started]
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, INDEX([IDX_Closed]), NOLOCK)
ON [MAT].[Closed] = 0
AND [MAT].[Code] = [CLA].[MatterCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NOT NULL
END
END
IF @CaseCode <> ''
BEGIN
SELECT @COUNT = COUNT(1)
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, INDEX([IDX_Client]), NOLOCK)
ON [MAT].[ClientCode] = [CLA].[ContactCode]
AND [MAT].[Code] = @CaseCode
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NULL
END
ELSE IF @IsShowCloseMatter = 1
BEGIN
SELECT @COUNT = COUNT(1)
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, INDEX([IDX_Client]), NOLOCK)
ON [MAT].[ClientCode] = [CLA].[ContactCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NULL
END
ELSE
BEGIN
SELECT @COUNT = COUNT(1)
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, INDEX([IDX_ClosedClient]), NOLOCK)
ON [MAT].[Closed] = 0
AND [MAT].[ClientCode] = [CLA].[ContactCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NULL
END
IF @COUNT > 0
BEGIN
IF @CaseCode <> ''
BEGIN
INSERT
INTO @MATS
([Code],
[LastAccess])
SELECT TOP (@COUNT)
[MAT].[Code],
[MAT].[Started]
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, INDEX([IDX_Client]), NOLOCK)
LEFT OUTER JOIN @MATS [MTX]
ON [MTX].[Code] = [MAT].[Code]
ON [MAT].[ClientCode] = [CLA].[ContactCode]
AND [MAT].[Code] = @CaseCode
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NULL
AND [MTX].[Code] IS NULL
END
ELSE IF @IsShowCloseMatter = 1
BEGIN
INSERT
INTO @MATS
([Code],
[LastAccess])
SELECT TOP (@COUNT)
[MAT].[Code],
[MAT].[Started]
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, INDEX([IDX_Client]), NOLOCK)
LEFT OUTER JOIN @MATS [MTX]
ON [MTX].[Code] = [MAT].[Code]
ON [MAT].[ClientCode] = [CLA].[ContactCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NULL
AND [MTX].[Code] IS NULL
END
ELSE
BEGIN
INSERT
INTO @MATS
([Code],
[LastAccess])
SELECT TOP (@COUNT)
[MAT].[Code],
[MAT].[Started]
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, INDEX([IDX_ClosedClient]), NOLOCK)
LEFT OUTER JOIN @MATS [MTX]
ON [MTX].[Code] = [MAT].[Code]
ON [MAT].[Closed] = 0
AND [MAT].[ClientCode] = [CLA].[ContactCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NULL
AND [MTX].[Code] IS NULL
END
END
UPDATE [MAT]
SET [MAT].[LastAccess] = [CPRM].[LastAccessDate]
FROM [dbo].[ClientPortalRecentMatter] [CPRM] WITH (NOLOCK)
INNER JOIN @MATS [MAT]
ON [MAT].[Code] = [CPRM].[MatterCode]
WHERE [CPRM].[ClientLoginId] = @LoginId
SELECT [MAT].[Code] AS [Code],
[LA].[DATE] AS [LastActionDate],
[MS].[DATE] AS [LastMilestoneDate],
[NA].[DATE] AS [NextActionDate],
[LA].[DisplayText] AS [LastActionText],
[MS].[DisplayText] AS [LastMilestoneText],
[NA].[DisplayText] AS [NextActionText],
[MAT].[Name] AS [ClientName],
[MAT].[ClientCode] AS [ClientCode],
[MAT].[FECode] AS [FECode],
[MAT].[Telephone] AS [Telephone],
[MAT].[ClientAddress] AS [ClientAddress],
[MAT].[Code] AS [MatterCode],
[MAT].[MatterDescription] AS [MatterDescription],
[MAT].[CaseHandler] AS [CaseHandler],
[MAT].[User1Label] AS [User1Label],
[MAT].[User1] AS [User1],
[MAT].[User2Label] AS [User2Label],
[MAT].[User2] AS [User2],
[MAT].[User3Label] AS [User3Label],
[MAT].[User3] AS [User3],
[MAT].[YourRefLabel] AS [YourRefLabel],
[MAT].[YourRef] AS [YourRef],
[MAT].[MatterStartDate] AS [MatterStartDate],
[MAT].[MatterCloseDate] AS [MatterCloseDate],
[MAT].[MatterStatusCode] AS [MatterStatusCode],
[MAT].[MatterStatus] AS [MatterStatus],
[MAT].[MatterOriginalDebt] AS [MatterOriginalDebt],
[MAT].[MatterComments] AS [MatterComments],
[MAT].[DisallowNewMatter] AS [DisallowNewMatter],
[MAT].[IsMatterClosed] AS [IsMatterClosed],
[MAT].[OutstandingAmount] AS [OutstandingAmount],
[MT1].[LastAccess] AS [LastAccessDate]
FROM @MATS [MT1]
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, NOLOCK, INDEX([PK_PublishedMatters]))
ON [MAT].[Code] = [MT1].[Code]
OUTER APPLY ( SELECT TOP 1
[PUB].[ACTIONID],
[PUB].[DATE],
[PUB].[DisplayText]
FROM [dbo].[PublishedActions] [PUB]
WITH (NOEXPAND, INDEX ([IDX_NextActions]), NOLOCK)
WHERE [PUB].[CASECODE] = [MAT].[Code]
AND [PUB].[STATUS] = 0
ORDER BY [PUB].[CASECODE],
[PUB].[STATUS],
[PUB].[DATE]) [NA]
OUTER APPLY ( SELECT TOP 1
[PUB].[ACTIONID],
[PUB].[DATE],
[PUB].[DisplayText]
FROM [dbo].[PublishedActions] [PUB]
WITH (NOEXPAND, INDEX ([IDX_LastActions]), NOLOCK)
WHERE [PUB].[CASECODE] = [MAT].[Code]
AND [PUB].[STATUS] = 1
ORDER BY [PUB].[CASECODE],
[PUB].[STATUS] DESC,
[PUB].[DATE] DESC) [LA]
OUTER APPLY ( SELECT TOP 1
[PUB].[ACTIONID],
[PUB].[DATE],
[PUB].[DisplayText]
FROM [dbo].[PublishedActions] [PUB]
WITH (NOEXPAND, INDEX ([IDX_Highlighted]), NOLOCK)
WHERE [PUB].[CASECODE] = [MAT].[Code]
AND [PUB].[HIGHLIGHTED] = 1
AND [PUB].[STATUS] = 1
ORDER BY [PUB].[CASECODE],
[PUB].[HIGHLIGHTED] DESC,
[PUB].[DATE] DESC) [MS]
ORDER BY [MT1].[LastAccess] DESC,
[MAT].[Code] ASC
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CP_GetMatterDocFolderTree', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_GetMatterDocFolderTree]
END
GO
CREATE PROCEDURE [dbo].[KAAS_CP_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 *
* 2021-06-17 Aakif Created *
* 2021-07-29 Aakif Replaced table function to get document counts for published items *
*******************************************************************************************************/
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
[seq] AS [seq],
[id] AS [FolderId],
[parent] AS [parent],
[foldername] AS [foldername],
[foldericon] AS [foldericon],
[folderimage] AS [folderimage],
[foldershared] AS [foldershared],
[folderisours] AS [folderisours],
[foldername] AS [Document],
[documentcount] AS [DocumentCount],
999 + TRY_CAST(seq AS INT) AS [Id]
FROM
[dbo].[KAAS_CP_FNGetDocFolders](@matter, @folderid, 1, 1)
END
GO
IF OBJECT_ID(N'KAAS_CP_GetNewMatterCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetNewMatterCode]
GO
CREATE PROCEDURE [dbo].[KAAS_CP_GetNewMatterCode]
(@ClientCode VARCHAR(10),
@MatterNumber VARCHAR(10),
@MatterLen VARCHAR(10),
@MatterCode VARCHAR(20) OUTPUT)
AS
/************************************************************************************************************
Stored Procedure Name: [ky_NETCheckMatterCode]
Description: This procedure is used to Check new matter is already exists or not.
Created : 03 Nov 2014
Modification History :
20 Nov 2014 Pino Use [dbo].[Settings]
2022-04-20 Vinodhkumar.M Created for client portal
************************************************************************************************************/
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))
SET @MatterCode = @NewMatterNum
END
-- Procedure is called to check whether a previously generated number is still valid
IF(@MatterLen <> 'True') AND (RTRIM(ISNULL(@MatterNumber, '')) <> '')
BEGIN
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[matters] MAT
WHERE MAT.[Code] = @ClientCode + '/' + @MatterNumber)
BEGIN
SET @MatterCode = @MatterNumber
END
ELSE
BEGIN
SELECT 'This matter code already exists.'
END
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_CP_GetNextActionId'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_GetNextActionId]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetNextActionId]
AS
/*******************************************************************************************************
* Dummy Procedure in preparation for the use of the DiarySeed table *
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetNextActionId] *
* Copied from : [dbo].[ky_NETGetNextActionID] *
* Copied from : [dbo].[KAAS_GetNextActionID] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
* 2022-02-11 Vinodhkumar.M Created - to upload Document in client portal *
*******************************************************************************************************/
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 EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CP_GetNextTrackReference'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_GetNextTrackReference]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetNextTrackReference]
(@Result INT OUTPUT)
AS
/*******************************************************************************************************
* Gets next available track referene number *
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetNextTrackReference] *
* Copied from : [dbo].[spGetNextTrackReferenceInDiaryAttachments] *
* Copied from : [dbo].[KAAS_GetNextTrackReferenceInDiaryAttachments] *
* *
* 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 *
*******************************************************************************************************/
BEGIN
DECLARE @TrackReference INT
EXEC @TrackReference = [dbo].[KAAS_CP_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_CP_GetNextTrackRefValue'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_GetNextTrackRefValue]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetNextTrackRefValue]
AS
/**********************************************************************************
* SP Name : KAAS_CP_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-11 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 OBJECT_ID(N'KAAS_CP_GetPortalTemplateForKey',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetPortalTemplateForKey]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetPortalTemplateForKey]
(@TemplateKey VARCHAR(100))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetPortalTemplateForKey] *
* Description: To get email or message template for provided key *
* *
* Modification History: *
* 2021-07-02 Aakif Created *
*******************************************************************************************************/
BEGIN
SELECT
[PortalTemplateId] AS [PortalTemplateId],
[TemplateType] AS [TemplateKey],
[TemplateSubject] AS [TemplateSubject],
[TemplateBody] AS [TemplateBody]
FROM
[dbo].[PortalNotificationTemplate]
WHERE
[TemplateType] = @TemplateKey
END
GO
IF OBJECT_ID(N'KAAS_CP_GetRatesFields',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetRatesFields]
GO
CREATE PROCEDURE [dbo].[KAAS_CP_GetRatesFields]
(@FormId INT = 0)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetRatesFields] *
* Description: To get fields for client portal *
* *
* Modification History: *
* 2022-04-13 Vinodhkumar.M Created *
*******************************************************************************************************/
BEGIN
SELECT [RecordId],
[FormId],
LTRIM(RTRIM([FilePreFix])) AS [FilePreFix],
LTRIM(RTRIM([FieldName])) AS [FieldName],
[FieldOrder],
LTRIM(RTRIM([FieldLabel])) AS [FieldLabel],
[Required],
[FieldTip],
[ControlTypeID],
[Lines],
[WidthChars]
FROM
[dbo].[WebFields]
WHERE
[FormId] = @FormId
ORDER BY
[FieldOrder] ASC
SELECT [WebAssociateID],
[FormId],
LTRIM(RTRIM([CaseAssociateType])) AS [CaseAssociateType],
LTRIM(RTRIM([AssociateLabel])) AS [AssociateLabel],
[AssociateOrder],
[PopupSelection],
[AllowMultiples],
[DefaultMultiples]
FROM
[dbo].[WebAssociates]
WHERE
[FormId] = @FormId
ORDER BY
[AssociateOrder] ASC
SELECT [WAF].[WebAssociateFieldID],
[WAF].[WebAssociateId],
LTRIM(RTRIM([WAF].[FieldPrefix])) AS [FieldPrefix],
LTRIM(RTRIM([WAF].[FieldName])) AS [FieldName],
[WAF].[FieldOrder],
LTRIM(RTRIM([WAF].[FieldLabel])) AS [FieldLabel],
[WAF].[FieldTip],
[WAF].[Required],
[WAF].[ControlTypeID],
[WAF].[Lines],
[WAF].[WidthChars]
FROM
[dbo].[WebAssociatesFields] [WAF]
INNER JOIN
[dbo].[WebAssociates] [WA] ON [WA].[WebAssociateID] = [WAF].[WebAssociateId]
WHERE
[WA].[FormId] = @FormId
ORDER BY
[WAF].[WebAssociateId],
[WAF].[FieldOrder] ASC
END
GO
IF OBJECT_ID(N'KAAS_CP_GetRateTitle',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetRateTitle]
GO
CREATE PROCEDURE [dbo].[KAAS_CP_GetRateTitle]
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetRateTitle] *
* Description: To get form details for client portal *
* *
* Modification History: *
* 2022-04-11 Vinodhkumar.M Created *
*******************************************************************************************************/
BEGIN
SELECT Title,
FormId,
FormName,
CasePlanCode,
Handler,
Team,
InitialActionCode,
RequestAction,
Department,
WorkType,
FeCode,
TemplateCode
FROM [dbo].[WebForms]
END
GO
IF OBJECT_ID(N'KAAS_CP_GetSettings',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetSettings]
GO
CREATE PROCEDURE [dbo].[KAAS_CP_GetSettings]
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetSettings] *
* Description: To get settings for client portal *
* *
* Modification History: *
* 2021-05-27 Aakif Created *
* 2021-05-31 Aakif Included column for two factor authentication *
*******************************************************************************************************/
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_CP_GetUploadAzureInfo'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_GetUploadAzureInfo]
END
GO
Create Procedure
[dbo].[KAAS_CP_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-10 Vinodhkumar.M Created - to upload Document in client portal *
*************************************************************************************************************/
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 OBJECT_ID(N'KAAS_CP_GetUserLoginDetails',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetUserLoginDetails]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetUserLoginDetails]
(@EmailId VARCHAR(200))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetUserLoginDetails] *
* Description: To get login details for specified email *
* *
* Modification History: *
* 2021-05-27 Aakif Created *
* 2021-05-31 Aakif Included column for two factor authentication *
* 2022-07-28 vinodhkumar restrict deletes user from listing *
*******************************************************************************************************/
BEGIN
SELECT
[ClientLoginId] AS [ClientLoginId],
[Email] AS [Email],
[PhoneNumber] AS [PhoneNumber],
[Name] AS [Name],
[ClientDefaulTimeZone] AS [ClientDefaulTimeZone],
[AccessCode] AS [AccessCode],
[AccessCodeStatus] AS [AccessCodeStatus],
[PasswordHash] AS [PasswordHash],
ISNULL([NoOfAttempt],0) AS [NoOfAttempt],
[LastAccessedDateTime] AS [LastAccessedDateTime],
[LockedOutEndDate] AS [LockedOutEndDate],
[SecurityStamp] AS [SecurityStamp],
ISNULL([IsTwoFactorEnabled],0) AS [IsTwoFactorEnabled],
[IsActiveLogin] AS [IsActiveLogin],
[IsFirstlogin] AS [IsFirstLogin],
[IsDeleted] AS [IsDeleted],
[IsAdmin] AS [IsAdmin],
[IsEmailConfirmed] AS [IsEmailConfirmed],
[IsPhoneNumberConfirmed] AS [IsPhoneNumberConfirmed],
[EmailActivationToken] AS [EmailActivationToken],
[ConcurrencyStamp] AS [ConcurrencyStamp],
[PasswordResetOTP] AS [PasswordResetOTP],
[PasswordResetOTPCreationTime] AS [PasswordResetOTPCreationTime],
[PasswordResetOTPExpirationTime] AS [PasswordResetOTPExpirationTime],
[OTPAccessToken] AS [OTPAccessToken],
[OTPAccessTokenCreationTime] AS [OTPAccessTokenCreationTime],
[OTPAccessTokenExpirationTime] AS [OTPAccessTokenExpirationTime],
[PasswordResetOTPAttemptCount] AS [PasswordResetOTPAttemptCount],
[PasswordResetLockOutEndDate] AS [PasswordResetLockOutEndDate],
[IsPasswordResetOTPVerified] AS [IsPasswordResetOTPVerified],
[IsUserVerifiedEmail] AS [IsUserVerifiedEmail],
[VerifiedByAdminUserId] AS [VerifiedByAdminUserId],
[EmailActivationTokenCreatedTime] AS [EmailActivationTokenCreatedTime],
[EmailActivationTokenExpirationTime] AS [EmailActivationTokenExpirationTime],
[IsAdminVerifiedUserLogin] AS [IsAdminVerifiedUserLogin],
[SecretQuestion] AS [SecretQuestion],
[Answer] AS [Answer]
FROM
[dbo].[ClientLogin]
WHERE
[Email] = @EmailId AND [IsDeleted] = 0
END
GO
IF OBJECT_ID(N'KAAS_CP_GetUserSetting',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_GetUserSetting]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_GetUserSetting]
(@LoginId BIGINT,
@SettingKey VARCHAR(100))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_GetUserSetting] *
* Description: TO GET CLIENT PORTAL USER SETTING *
* *
* Modification History: *
* 2022-07-06 Aakif Created *
*******************************************************************************************************/
BEGIN
SELECT [US].[SettingId] AS [SettingId],
[US].[ClientLoginId] AS [ClientLoginId],
[US].[Key] AS [Key],
[US].[Value] AS [Value]
FROM [dbo].[ClientPortalUserSetting] [US]
WHERE [US].[ClientLoginId] = @LoginId
AND [US].[Key] = @SettingKey
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CP_InsertDocumentIntoFolder'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_InsertDocumentIntoFolder]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_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_CP_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-10 Vinodhkumar.M Created - to upload Document in client portal *
************************************************************************************************************/
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 OBJECT_ID(N'KAAS_CP_InsertMatterAndAssociate',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_InsertMatterAndAssociate]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_InsertMatterAndAssociate]
(@JsonData NVARCHAR(MAX),
@ClientCode VARCHAR(20),
@FormId INT,
@LoginId BIGINT = 0,
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This procedure is used to Generate Case Associate code. *
* *
* Stored Procedure Name : [dbo].[KAAS_CP_InsertMatterAndAssociate] *
* *
* Modification History : *
* 2022-04-20 Vinodhkumar.M Created for client portal *
* 2022-06-06 Aakif Marked the case associate as published by default if present *
* 2022-06-16 Arun V Added Default case code
* 2022-06-17 Arun V Case Associate Type table insert added for assocaites.
* 2022-07-07 Aakif Included option to show recently accessed matter first *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
BEGIN TRY
BEGIN TRAN
DECLARE @TempTable Table
(
[Key] NVARCHAR(50),
[Value] NVARCHAR(500),
[Type] NVARCHAR(10),
[WebAsscoaiteId] NVARCHAR(10),
[ControlTypeId] NVARCHAR(10)
)
--Matters
DECLARE @MatterCode NVARCHAR(20) = '';
DECLARE @FECode nvarchar(20) = '';
DECLARE @CasePlanCode nvarchar(20) = '';
DECLARE @WType nvarchar(20) = '';
DECLARE @Dept nvarchar(20) = '';
--For New Actions
DECLARE @NewActionCode VARCHAR(15) = '';
DECLARE @DynamicMATColums NVARCHAR(500) = '';
DECLARE @DynamicMATValues NVARCHAR(500) = '';
-- Case Associates Names
DECLARE @CaseAssociateCodeOutput NVARCHAR(20) = '';
DECLARE @DynamicCANColums NVARCHAR(500) = '';
DECLARE @DynamicCANValues NVARCHAR(500) = '';
DECLARE @WebAssociateTempTable Table
(
[RowNumber] INT,
[WebAssociateId] INT,
[CaseAssociateType] VARCHAR(30)
)
DECLARE @IncrementValue INT = 1;
DECLARE @RowCount INT = 0;
DECLARE @WebAssociateId INT = 0;
DECLARE @CaseAssociateType VARCHAR(30) = '';
--UDF
DECLARE @UDFTempTable Table
(
[RowNumber] INT,
[ControlTypeId] INT,
[KeyName] NVARCHAR(20),
[KeyValue] NVARCHAR(100)
)
DECLARE @UDFIncrementValue INT = 1;
DECLARE @UDFRowCount INT = 0;
DECLARE @UDFControlTypeId INT = 0;
DECLARE @UDFKeyName VARCHAR(20) = 0;
DECLARE @UDFKeyValue VARCHAR(100) = 0;
INSERT INTO @TempTable
SELECT *
FROM OPENJSON(@JsonData)
WITH (
[Key] NVARCHAR(50) '$.Key',
[Value] NVARCHAR(500) '$.Value',
[Type] NVARCHAR(10) '$.Type',
[WebAsscoaiteId] NVARCHAR(10) '$.WebAssociateId',
[ControlTypeId] NVARCHAR(10) '$.ControlTypeId'
);
EXEC [dbo].[KAAS_CP_GetNewMatterCode] @ClientCode,N'',N'False', @MatterCode OUT
SELECT @FECode = LTRIM(RTRIM(FeCode)),
@WType = LTRIM(RTRIM(WorkType)),
@Dept = LTRIM(RTRIM(Department)),
@NewActionCode = LTRIM(RTRIM(ISNULL(InitialActionCode, ''))),
@CasePlanCode = LTRIM(RTRIM(ISNULL(CasePlanCode, '')))
FROM [dbo].[WebForms]
WHERE FormId = @FormId
--INSERT MATTERS START
SELECT
@DynamicMATColums = @DynamicMATColums + [Key] + ', ',
@DynamicMATValues = @DynamicMATValues + ''''+[Value] +''''+ ', '
FROM @TempTable WHERE [Type]='MAT:'
SELECT @DynamicMATColums = SUBSTRING(@DynamicMATColums, 0, LEN(@DynamicMATColums)),
@DynamicMATValues = SUBSTRING(@DynamicMATValues, 0, LEN(@DynamicMATValues))
DECLARE @InsertMatterQuery NVARCHAR(MAX) =
'Insert into Matters (Code, ClientCode, Matter, FECode, WType, Dept,[Started],Publish, '+@DynamicMATColums+') values
( '''+@ClientCode+'/'+@MatterCode+''' , '''+@ClientCode+''','''+@MatterCode+''', '''+@FECode +''','''+@WType+''' ,'''+@Dept+''',GETDATE(),''P'','+@DynamicMATValues+' )'
INSERT INTO CaseMaster(CSCODE,CSCLIENTCDE,CSFNR,CSDATEENTERED_DATE, CSWKTCODE)
VALUES(@ClientCode+'/'+@MatterCode,@ClientCode,@FECode,GETDATE(), @CasePlanCode)
EXEC(@InsertMatterQuery)
-- UPDATE MATTER DESC TO 'CLIENT_NAME -V- MATTER_DESC'
DECLARE @ClientName VARCHAR(256);
DECLARE @ClientAndMatterCode VARCHAR(20) = @ClientCode+'/'+@MatterCode;
SELECT @ClientName = [CON].[Name]
FROM [dbo].[Contacts] [CON]
WHERE [CON].[Code] = @ClientCode
UPDATE [MAT]
SET [MAT].[Description] = ISNULL(@ClientName, '') + ' -V- ' + ISNULL([MAT].[Description], '')
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @ClientCode+'/'+@MatterCode
-- UPDATE MATTER DESC END
-- UPDATE RECENT MATTER DATA
EXEC KAAS_CP_AddEditRecentMatterList @LoginId, @ClientAndMatterCode
-- INSERTING NEW TEMPLATE ACTIONS START
IF(ISNULL(@NewActionCode, '') <> '')
BEGIN
DECLARE @FullMatterCode VARCHAR(20) = @ClientCode+'/'+@MatterCode;
EXEC [dbo].[KAAS_CP_CreateActionForNewInstruction] @FullMatterCode, @FormId
END
-- INSERTING NEW TEMPLATE ACTIONS END
--INSERT MATTERS END
--INSERT CASE ASSOCIATES NAMES START
INSERT INTO @WebAssociateTempTable(RowNumber,WebAssociateId,CaseAssociateType)
SELECT ROW_NUMBER() OVER(ORDER BY FORMID ) AS RowNumber,WebAssociateID,CaseAssociateType FROM [dbo].[WebAssociates] WHERE [FormId] = @FormId
SELECT @RowCount = COUNT(1) FROM @WebAssociateTempTable
WHILE(@IncrementValue <= @RowCount)
BEGIN
EXEC [dbo].[KAAS_CP_GenerateCaseAssociateCode] '',@CaseAssociateCodeOutput OUT
SELECT @WebAssociateId = WebAssociateId, @CaseAssociateType = LTRIM(RTRIM(CaseAssociateType)) FROM @WebAssociateTempTable WHERE RowNumber = @IncrementValue
SELECT
@DynamicCANColums = @DynamicCANColums + [Key] + ', ',
@DynamicCANValues = @DynamicCANValues + ''''+[Value] +''''+ ', '
FROM @TempTable
WHERE [Type]='CAN:' AND [WebAsscoaiteId]= ''+@WebAssociateId+''
SELECT @DynamicCANColums = SUBSTRING(@DynamicCANColums, 0, LEN(@DynamicCANColums)),
@DynamicCANValues = SUBSTRING(@DynamicCANValues, 0, LEN(@DynamicCANValues))
DECLARE @InsertCaseAssociateQuery NVARCHAR(MAX) =
'Insert into CaseAssociatesNames (Code,Type,'+@DynamicCANColums+') values
( '''+@CaseAssociateCodeOutput+''', '''+@CaseAssociateType+''','+@DynamicCANValues+' )'
INSERT INTO CaseContacts(CASECODE,CONTYPE,CONNUM,NAMECODE, PUBLISH)
VALUES(@ClientCode+'/'+@MatterCode,@CaseAssociateType,@IncrementValue,@CaseAssociateCodeOutput, 'Y')
INSERT INTO CaseAssoicatesTypes(NAMECODE, TYPECODE, SEARCHCODE, Retired) VALUES
(@CaseAssociateCodeOutput, @CaseAssociateType,'', 'N')
SET @DynamicCANColums = '';
SET @DynamicCANValues = '';
SET @IncrementValue = @IncrementValue + 1;
EXEC(@InsertCaseAssociateQuery)
END
--INSERT CASE ASSOCIATES NAMES END
--INSERT UDF START
INSERT INTO @UDFTempTable(RowNumber,ControlTypeId,KeyName,KeyValue)
SELECT ROW_NUMBER() OVER(ORDER BY ControlTypeID ) AS RowNo,ControlTypeID,[Key],Value
FROM @TempTable
WHERE [Type]='UDF:'
SELECT @UDFRowCount = COUNT(1) FROM @UDFTempTable
WHILE(@UDFIncrementValue <= @UDFRowCount)
BEGIN
SELECT @UDFControlTypeId = ControlTypeId,
@UDFKeyName = KeyName,
@UDFKeyValue = KeyValue
FROM @UDFTempTable
WHERE RowNumber= @UDFIncrementValue
--INSERT UDF
DECLARE @CASECODE VARCHAR(20) = ''+@ClientCode+'/'+@MatterCode+'';
DECLARE @UDF_INSERT INT = 0;
DECLARE @UDF_UPDATE INT = 0;
EXEC [dbo].[KAAS_CP_NETOtherCaseDetailsInsert] @CASECODE,@UDFKeyName,@UDF_INSERT OUT
IF(@UDFControlTypeId = 1 OR @UDFControlTypeId = 2 OR @UDFControlTypeId = 5)
BEGIN
EXEC [dbo].[KAAS_CP_NETOtherCaseDetailsUpdate] @CASECODE,'UDF:',@UDFKeyName,@UDFKeyValue,0,NULL,@UDF_UPDATE OUT
END
ELSE IF(@UDFControlTypeId = 3)
BEGIN
EXEC [dbo].[KAAS_CP_NETOtherCaseDetailsUpdate] @CASECODE,'UDF:',@UDFKeyName,'',0,@UDFKeyValue,@UDF_UPDATE OUT
END
ELSE IF(@UDFControlTypeId = 4)
BEGIN
EXEC [dbo].[KAAS_CP_NETOtherCaseDetailsUpdate] @CASECODE,'UDF:',@UDFKeyName,'',@UDFKeyValue,NULL,@UDF_UPDATE OUT
END
SET @UDFIncrementValue = @UDFIncrementValue + 1;
END
--INSERT UDF END
SET @Result = 1
SET NOCOUNT OFF
COMMIT TRAN
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRAN
END
END CATCH
END
GO
IF OBJECT_ID(N'KAAS_CP_ListCaseContacts',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_ListCaseContacts]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_ListCaseContacts]
(@CaseCode VARCHAR(20),
@ForEmail BIT = 1,
@Number INT = 0,
@Status VARCHAR(1) = '',
@SearchText VARCHAR(4000) = NULL
)
AS
/*************************************************************************************************************
* Stored Procedure Name: [KAAS_CP_ListCaseContacts]
* 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-06-18 Aakif Created
* 2021-06-22 Aakif Fixed issue to fetch published contact
* 2022-06-06 Aakif Included address field for case contacts
* 2022-06-22 Aakif Included legal address field for associates contact
*************************************************************************************************************/
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].[ContactAddresses],
[RES].[LegalAddress]
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],
RTRIM(ISNULL([CAN].[ADDRESS], '')) AS [ContactAddresses],
RTRIM(ISNULL([CAN].[LEGALADDRESS], '')) AS [LegalAddress]
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]
-- 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],
RTRIM(ISNULL([CAC].[ADDRESS], '')) AS [ContactAddresses],
'' AS [LegalAddress]
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]
-- 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],
'' AS [ContactAddresses],
'' AS [LegalAddress]
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],
RTRIM(ISNULL([CTC].[ADDRESS], '')) AS [ContactAddresses],
'' AS [LegalAddress]
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 OBJECT_ID(N'KAAS_CP_NETOtherCaseDetailsFetchListOnly',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_NETOtherCaseDetailsFetchListOnly]
GO
CREATE PROCEDURE KAAS_CP_NETOtherCaseDetailsFetchListOnly
(
@FIELDNAME VARCHAR(30)
)
AS BEGIN
/*****************************************************************************
Stored Procedure Name: KAAS_CP_NETOtherCaseDetailsFetchListOnly
Copied From : ky_NETOtherCaseDetailsFetchListOnly
Description: To Fetch validation on selected list only (L) is selected in UDF
Fields.
Last Udpated: 30May2014 08:00 PM
18 FEB 2015 Arun- Change NVARCHAR to VARCHAR
23JUN2015 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM(
* 2022-04-21 Vinodhkumar.M Created for client portal
*****************************************************************************/
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_CP_NETOtherCaseDetailsInsert',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_NETOtherCaseDetailsInsert]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_NETOtherCaseDetailsInsert]
(@CaseCode VARCHAR(200),
@FIELDNAME VARCHAR(200),
@Result INT OUTPUT)
AS
/*************************************************************************************************************
* *
* SP NAME : [dbo].[KAAS_CP_NETOtherCaseDetailsInsert] *
* Copied from : [dbo].[ky_NETOtherCaseDetailsInsert] *
* *
* To insert data for other case details main grid. *
* *
* 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 *
* 2014-??-?? ??????????? Created *
* 2015-02-12 Arun V. Change NVARCHAR to VARCHAR *
* 2015-06-23 Sridharan KEYD-2332 - Use of LTRIM(RTRIM( *
* 2015-06-15 Pino Carafa FIELDNAME can be up to 30 characters, *
* 2016-02-29 Pino Carafa DateValue '' equates to 1900-01-01. Use NULL instead *
* 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 *
* 2020-04-01 John Ginnane KEYD-6341 - Moved the default value handling into its own function *
* ky_NETFNGetUDFDefaultValue *
* *
* 2022-04-21 Vinodhkumar.M 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
INSERT
INTO [dbo].[CaseUDFAnswers]
([CASECODE],
[UDFFILE],
[UDFNAME],
[SEQNO],
[DateValue],
[NumberValue],
[TEXT1])
SELECT @CaseCode,
'UDF:',
RTRIM(@FIELDNAME),
@SEQNO,
[DV].[DateValue],
[DV].[NumberValue],
[DV].[TEXT1]
FROM [dbo].[KAAS_CP_NETFNGetUDFDefaultValue](@FIELDNAME) AS [DV]
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CP_NETOtherCaseDetailsUpdate',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_NETOtherCaseDetailsUpdate]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_NETOtherCaseDetailsUpdate]
(@CaseCode VARCHAR(200),
@FILEPREFIX VARCHAR(200),
@FIELDNAME VARCHAR(200),
@Text VARCHAR(MAX),
@Number DECIMAL(18,2),
@Date DATETIME,
@Result INT OUTPUT)
AS
/*****************************************************************************************************************
* Stored Procedure Name: [dbo].[KAAS_CP_NETOtherCaseDetailsUpdate]
* Copied from : ky_NETOtherCaseDetailsUpdate
* Description: To insert data for other case details main grid.
*
* Modification History
* 2015-10-14 Sridharan RDJ-155 - Dates on UDFs
* 2016-02-29 Pino Carafa DateTime Values of '' are converted to 1900-01-01
* Should be Null
* 2016-02-29 Arun Update Text Value is empty if Number = 0.00 and Date = empty
* 2016-09-16 Suriya KEYD-4045-Urgent: The UDF vales for the TEXT fields are not working properly
* 2022-04-21 Vinodhkumar.M 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].[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
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CP_OtherCaseDetails',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_OtherCaseDetails]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_OtherCaseDetails]
(@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_CP_OtherCaseDetails] *
* Copied from : [dbo].[KAAS_OtherCaseDetailsFetchMainGrid] *
* *
* 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 *
* 2021-06-22 Aakif List only published UDF data *
*******************************************************************************************************/
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 = 'DESC'
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]
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
SystemUserDefinedFields.PUBLISH = 1
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 OBJECT_ID(N'KAAS_CP_RegisterNewUser',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_RegisterNewUser]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_RegisterNewUser]
(@EmailId VARCHAR(200),
@IsTwoFactorEnabled BIT = 0,
@EmailActivationToken NVARCHAR(252) = NULL,
@TokenCreationTime DATETIME = NULL,
@TokenExpirationTime DATETIME = NULL,
@IsResendMail BIT = 0,
@ClientName VARCHAR(256) = NULL,
@PhoneNo VARCHAR(50) = NULL)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_RegisterNewUser] *
* Description: To register new user in Client Portal *
* *
* Modification History: *
* 2021-06-07 Aakif Created *
* 2021-06-28 Aakif Included condition to resend account activation mail *
*******************************************************************************************************/
BEGIN
-- Update OTP with its expiry time
IF(@IsResendMail = 0)
BEGIN
INSERT INTO
[dbo].[ClientLogin]
(
[Email],
[IsActiveLogin],
[IsTwoFactorEnabled],
[EmailActivationToken],
[EmailActivationTokenCreatedTime],
[EmailActivationTokenExpirationTime]
)
VALUES
(
@EmailId,
0,
@IsTwoFactorEnabled,
@EmailActivationToken,
@TokenCreationTime,
@TokenExpirationTime
)
END
ELSE
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[EmailActivationToken] = @EmailActivationToken,
[EmailActivationTokenCreatedTime] = @TokenCreationTime,
[EmailActivationTokenExpirationTime] = @TokenExpirationTime
WHERE
[Email] = @EmailId
END
-- Check if name and phone number is availabe and update user data
IF (ISNULL(@ClientName, '') != '')
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[Name] = @ClientName
WHERE
[Email] = @EmailId
END
IF (ISNULL(@PhoneNo, '') != '')
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[PhoneNumber] = @PhoneNo
WHERE
[Email] = @EmailId
END
END
GO
IF OBJECT_ID(N'KAAS_CP_ReportGeneration',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_ReportGeneration]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_ReportGeneration]
(@FromDate VARCHAR(50),
@ToDate VARCHAR(50),
@LoginId BIGINT)
AS
/*******************************************************************************************************
* This procedure is used to Generate Case Associate code. *
* *
* Stored Procedure Name : [dbo].[KAAS_CP_ReportGeneration] *
* *
* Modification History : *
* 2022-04-28 Vinodhkumar.M Created for client portal report *
* 2022-07-20 Vinodhkumar.M Modified - added Client Name *
* 2024-07-11 Aakif Modified - Included publish filters for CaseContacts *
* 2024-08-20 Aakif Modified - Performance tuning as per
guidelines from KAAS_CP_GetMatterDetailsForClient *
*******************************************************************************************************/
BEGIN
DECLARE @FormatedFromDate DATETIME = DATEADD(MINUTE,59,DATEADD(hh,23,CAST(@FromDate AS DATETIME)));
DECLARE @FormatedToDate DATETIME = DATEADD(MINUTE,59,DATEADD(hh,23,CAST(@ToDate AS DATETIME)));
-- TEMPORARY TABLE TO HOLD MATTER DETAILS
DECLARE @MATS TABLE
([Code] VARCHAR(20) PRIMARY KEY,
[MatterStartDate] DATETIME,
[MatterOriginalDebt] DECIMAL(18,2),
[MatterComments] VARCHAR(3000),
[User1] VARCHAR(100),
[ClientName] VARCHAR(256),
[MatterStatus] VARCHAR(50),
UNIQUE NONCLUSTERED ([MatterStartDate] DESC, [Code]))
-- STORE ALL THE MATTERS FOR WHICH THE USER HAS ACCESS TO
INSERT
INTO @MATS
([Code],
[MatterStartDate],
[MatterOriginalDebt],
[MatterComments] ,
[User1] ,
[ClientName],
[MatterStatus])
SELECT
[MAT].[Code],
[MAT].[MatterStartDate],
[MAT].[MatterOriginalDebt],
[MAT].[MatterComments],
[MAT].[User1],
[MAT].[Name],
[MAT].[MatterStatus]
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, NOLOCK)
ON [MAT].[Code] = [CLA].[MatterCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NOT NULL
-- STORE ALL THE MATTERS WITHIN THE CLIENT CODE FOR WHICH THE USER HAS ACCESS TO
INSERT
INTO @MATS
([Code],
[MatterStartDate],
[MatterOriginalDebt],
[MatterComments] ,
[User1] ,
[ClientName],
[MatterStatus])
SELECT
[MAT].[Code],
[MAT].[MatterStartDate],
[MAT].[MatterOriginalDebt],
[MAT].[MatterComments],
[MAT].[User1],
[MAT].[Name],
[MAT].[MatterStatus]
FROM [dbo].[ClientLoginAccess] [CLA] WITH (NOLOCK)
INNER JOIN [dbo].[PublishedMatters] [MAT] WITH (NOEXPAND, INDEX([IDX_Client]), NOLOCK)
LEFT OUTER JOIN @MATS [MTX]
ON [MTX].[Code] = [MAT].[Code]
ON [MAT].[ClientCode] = [CLA].[ContactCode]
WHERE [CLA].[ClientLoginId] = @LoginId
AND [CLA].[MatterCode] IS NULL
AND [MTX].[Code] IS NULL
SELECT DISTINCT
Row_Number()
OVER ( ORDER BY
[MAT].[MatterStartDate] DESC) AS [UniqueId],
[MAT].[User1] AS [RateNo],
[MAT].[MatterOriginalDebt] AS [OriginalDebt],
ISNULL([CASEASSOCIATE].[NAME], '') AS [Name],
ISNULL([CASEASSOCIATE].[ADDRESS], '') AS [Address],
ISNULL([CASEASSOCIATE].[LEGALNAME], '') AS [LegalName],
ISNULL([CASEASSOCIATE].[LEGALADDRESS], '') AS [LegalAddress],
[MAT].[MatterComments] AS [Comment],
[MAT].MatterStartDate AS [Started],
[MAT].[ClientName] AS [ClientName],
[MAT].[MatterStatus] AS [CaseStatus]
FROM @MATS MAT
INNER JOIN [DBO].[CASECONTACTS] [CSC]
ON [MAT].[Code] = (SELECT TOP 1 [CSC].[CASECODE] )
INNER JOIN [DBO].[CASEASSOCIATESNAMES] [CASEASSOCIATE]
ON [CASEASSOCIATE].[CODE] = [CSC].[NAMECODE]
WHERE ISNULL([CSC].[PUBLISH], '') = 'Y'
AND [MAT].[MatterStartDate]
BETWEEN @FormatedFromDate
AND @FormatedToDate
END
GO
IF OBJECT_ID(N'KAAS_CP_RevokeClientAccessForCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_RevokeClientAccessForCode]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_RevokeClientAccessForCode]
(@LoginId BIGINT,
@ClientCode VARCHAR(20)
)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_RevokeClientAccessForCode] *
* Description: To revoke users access for client codein Client Portal *
* *
* Modification History: *
* 2021-06-28 Aakif Created *
*******************************************************************************************************/
BEGIN
DELETE FROM
[ClientLoginAccess]
WHERE
ClientLoginId = @LoginId
AND ContactCode = @ClientCode
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_CP_SaveUploadDiaryAttachment'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_SaveUploadDiaryAttachment]
END
DECLARE @NCOMMAND NVARCHAR(MAX)
SET @NCOMMAND =
N'CREATE PROCEDURE [dbo].[KAAS_CP_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_CP_SaveUploadDiaryAttachment] *
* Copied from : [dbo].[KAAS_SaveDiaryAttachement] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
* 2022-02-10 Vinodhkumar.M Created - to upload Document in client portal *
*******************************************************************************************************/
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_CP_UnlockOrToggleIsActive',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_UnlockOrToggleIsActive]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UnlockOrToggleIsActive]
(@LoginId BIGINT,
@ToggleIsActive BIT,
@IsActive BIT = 0,
@PhoneNumber VARCHAR(50))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_UnlockOrToggleIsActive] *
* Description: To unlock a user or toggle IsActive *
* *
* Modification History: *
* 2021-07-07 Aakif Created *
* 2024-12-018 Ghayathri.S.V Modified - To update the phone number details *
* 2025-01-31 Ghayathri.S.V Modified -> On Uncheck unlock the user. *
*******************************************************************************************************/
BEGIN
-- UNLOCK A USER
IF(@ToggleIsActive = 0)
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[NoOfAttempt] = 0,
[LockedOutEndDate] = NULL,
[IsActiveLogin] = 1
WHERE
[ClientLoginId] = @LoginId
END
-- TOGGLE ISACTIVE FLAG FOR USER
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[IsActiveLogin] = @IsActive
WHERE
[ClientLoginId] = @LoginId
END
-- UPDATE PHONE NUMBER
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[PhoneNumber] = @PhoneNumber
WHERE
[ClientLoginId] = @LoginId
END
END
GO
IF OBJECT_ID(N'KAAS_CP_UpdateAccessCodeForUser',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_UpdateAccessCodeForUser]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UpdateAccessCodeForUser]
(@EmailId VARCHAR(200),
@AccessCode VARCHAR(50) = NULL,
@AccessCodeStatus VARCHAR(200) = NULL,
@OffSetForOtpExpiry TINYINT = 10)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_UpdateAccessCodeForUser] *
* Description: To store Access Code and OTP Expirty time for user *
* *
* Modification History: *
* 2021-05-31 Aakif Created *
*******************************************************************************************************/
BEGIN
DECLARE @CurrentDateTime DATETIME = GETUTCDATE();
-- Update OTP with its expiry time
UPDATE [dbo].[ClientLogin]
SET
[AccessCode] = @AccessCode,
[AccessCodeStatus] = @AccessCodeStatus,
[OTPAccessTokenCreationTime] = @CurrentDateTime,
[OTPAccessTokenExpirationTime] = DATEADD(MINUTE, @OffSetForOtpExpiry, @CurrentDateTime)
WHERE
[Email] = @EmailId
END
GO
IF OBJECT_ID(N'KAAS_CP_UpdateClientAccess',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_UpdateClientAccess]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UpdateClientAccess]
(@EmailId VARCHAR(200),
@HandlerCode VARCHAR(10),
@ContactCode VARCHAR(25),
@MatterCode VARCHAR(25) = NULL,
@Result BIT OUTPUT)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_UpdateClientAccess] *
* Description: To add accesss to clients for a code *
* *
* Modification History: *
* 2021-06-25 Aakif Created *
* 2021-06-29 Aakif Included out paramter to denote if client code is already added for user *
*******************************************************************************************************/
BEGIN
-- CLIENT ACCESS LOGIN TO CONTACT CODES
DECLARE @ClientId BIGINT = 0;
DECLARE @IsNewEntry BIT = 0;
SELECT
@ClientId = ClientLoginId
FROM
[ClientLogin]
WHERE
Email = @EmailId
-- INSERT TO CLIENT LOGIN ACCESS
IF NOT EXISTS (SELECT 1 FROM ClientLoginAccess WHERE ClientLoginId = @ClientId AND ContactCode = @ContactCode)
BEGIN
INSERT INTO [ClientLoginAccess]
(
ClientLoginId,
ContactCode,
MatterCode,
HasAccessToAllMatter,
PublishedHandlerCode,
PublishedDateTime
)
VALUES
(
@ClientId,
@ContactCode,
@MatterCode,
'Y',
@HandlerCode,
GETUTCDATE()
)
SELECT @Result = 1
END
ELSE
BEGIN
SELECT @Result = 0
END
END
GO
IF OBJECT_ID(N'KAAS_CP_UpdateIncorrectLoginAttempt',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_UpdateIncorrectLoginAttempt]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UpdateIncorrectLoginAttempt]
(@EmailId VARCHAR(200),
@Result INT = 0 OUTPUT)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_UpdateIncorrectLoginAttempt] *
* Description: To update lockout date and number of attempts for user *
* *
* Modification History: *
* 2021-06-01 Aakif Created *
*******************************************************************************************************/
BEGIN
DECLARE @CurrentLoginAttempt TINYINT;
DECLARE @MaxLockoutAttemp INT, @LockoutTimeoutLimit INT;
--GET current incorrect login attempt count
SELECT
@CurrentLoginAttempt = ISNULL(NoOfAttempt,0)
FROM
[dbo].[ClientLogin]
WHERE
[Email] = @EmailId
-- GET Max attempt and lockout duration from setting
SELECT
@MaxLockoutAttemp = ISNULL(IsLockOut_Attempt, 3),
@LockoutTimeoutLimit = ISNULL(LockoutDurationInMins, 10)
FROM
[dbo].[ClientPortalSetting]
-- Step 1: Update current attempt at login
UPDATE [dbo].[ClientLogin]
SET
[NoOfAttempt] = (@CurrentLoginAttempt + 1)
WHERE
[Email] = @EmailId
-- Step 2: Check if current attempt exceeds limit and update lockedout date
IF(@MaxLockoutAttemp <= (@CurrentLoginAttempt + 1 ))
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[LockedOutEndDate] = DATEADD(MINUTE, @LockoutTimeoutLimit, GETUTCDATE())
WHERE
[Email] = @EmailId
SET @Result = @LockoutTimeoutLimit
END
END
GO
IF OBJECT_ID(N'KAAS_CP_UpdateLastLoginData',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_UpdateLastLoginData]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UpdateLastLoginData]
(@EmailId VARCHAR(200),
@LoginId BIGINT,
@DeviceInfo NVARCHAR(20) = NULL,
@BrowserInfo NVARCHAR(20) = NULL,
@IPAddress NVARCHAR(30) = NULL)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_UpdateLastAccessDate] *
* Description: To update last accessed datetime for user *
* *
* Modification History: *
* 2021-05-27 Aakif Created *
* 2021-06-31 Aakif Reset LockedoutEndDate after successful login *
*******************************************************************************************************/
BEGIN
-- Step 1: Update last login access date
UPDATE [dbo].[ClientLogin]
SET [LastAccessedDateTime] = GETUTCDATE(),
[NoOfAttempt] = 0,
[LockedOutEndDate] = NULL,
[IsFirstlogin] = 0,
[IsActiveLogin] = 1
WHERE
[Email] = @EmailId
-- Step 2: Add user login history
INSERT INTO
[dbo].[ClientPortalLogonInfo]
([ClientLoginId]
,[LastAccessedDateTime]
,[DeviceInfo]
,[Browser]
,[IPAddress])
VALUES
(@LoginId
,GETUTCDATE()
,@DeviceInfo
,@BrowserInfo
,@IPAddress)
END
GO
IF OBJECT_ID(N'KAAS_CP_UpdatePasswordHash',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_UpdatePasswordHash]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UpdatePasswordHash]
(@LoginId BIGINT,
@NewPasswordHash NVARCHAR(512))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_UpdatePasswordHash] *
* Description: To update password hash after the reset is successful *
* *
* Modification History: *
* 2021-06-02 Aakif Created *
*******************************************************************************************************/
BEGIN
-- Update password hash after password is reset
UPDATE [dbo].[ClientLogin]
SET
[PasswordHash] = @NewPasswordHash,
[PasswordResetLockOutEndDate] = NULL
WHERE [ClientLoginId] = @LoginId
END
GO
IF OBJECT_ID(N'KAAS_CP_UpdatePortalSetting',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_UpdatePortalSetting]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UpdatePortalSetting]
(@IsTwoFactor BIT,
@LockoutCount INT,
@LockoutDuration INT,
@PasswordNotifyMode TINYINT = 0,
@UpeKey VARCHAR(200) = NULL,
@IsKeyUpdated BIT = 0,
@TenantLogo IMAGE = NULL,
@LogoType VARCHAR(15) = NULL)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_UpdatePortalSetting] *
* Description: To get settings for client portal *
* *
* Modification History: *
* 2021-06-29 Aakif Created *
* 2021-07-01 Aakif Included option to modify tenant Logo *
*******************************************************************************************************/
BEGIN
IF (@IsKeyUpdated = 1)
BEGIN
UPDATE [ClientPortalSetting]
SET
[IsTwoFactorEnabled] = @IsTwoFactor,
[IsLockOut_Attempt] = @LockoutCount,
[LockoutDurationInMins] = @LockoutDuration,
[PasswordResetNotification] = @PasswordNotifyMode
END
ELSE
BEGIN
INSERT INTO
[dbo].[ClientPortalSetting]
(
[UPEKey],
[IsTwoFactorEnabled],
[IsLockOut_Attempt],
[LockoutDurationInMins],
[PasswordResetNotification]
)
VALUES
(
@UpeKey,
@IsTwoFactor,
@LockoutCount,
@LockoutDuration,
@PasswordNotifyMode
)
END
IF(ISNULL(@LogoType, '') <> '')
BEGIN
UPDATE [ClientPortalSetting]
SET
[TenantLogoType] = @LogoType,
[TenantLogo] = @TenantLogo
END
END
GO
IF OBJECT_ID(N'KAAS_CP_UpdateResetPasswordCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_UpdateResetPasswordCode]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UpdateResetPasswordCode]
(@LoginId BIGINT,
@ResetPasswordCode VARCHAR(10),
@CodeCreationTime DATETIME = NULL,
@CodeExpirationTime DATETIME = NULL)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_UpdateResetPasswordCode] *
* Description: To store Reset password OTP Expirty time for user *
* *
* Modification History: *
* 2021-06-02 Aakif Created *
*******************************************************************************************************/
BEGIN
-- Update OTP with its expiry time
UPDATE [dbo].[ClientLogin]
SET
[IsPasswordResetOTPVerified] = 0,
[PasswordResetOtp] = @ResetPasswordCode,
[PasswordResetOtpcreationTime] = @CodeCreationTime,
[PasswordResetOtpexpirationTime] = @CodeExpirationTime
WHERE [ClientLoginId] = @LoginId
END
GO
IF OBJECT_ID(N'KAAS_CP_UpdateUserPhoneNumber',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_UpdateUserPhoneNumber]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UpdateUserPhoneNumber]
(@PhoneNo VARCHAR(50),
@LoginId BIGINT,
@HandlerCode VARCHAR(10))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_UpdateUserPhoneNumber] *
* Description: To update user phone number and log who updated it *
* *
* Modification History: *
* 2021-06-30 Aakif Created *
*******************************************************************************************************/
BEGIN
-- Step 1: Update user data
UPDATE [dbo].[ClientLogin]
SET
[PhoneNumber] = @PhoneNo
WHERE
[ClientLoginId] = @LoginId
-- Step 2: Add modification history for user
INSERT INTO
[dbo].[ClientPortalPhoneNoUpdateLog]
(
[ClientLoginId],
[UpdatedByHandler],
[UpdateDateTime]
)
VALUES
(
@LoginId,
@HandlerCode,
GETUTCDATE()
)
END
GO
IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_CP_UploadDiaryAttachment' AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CP_UploadDiaryAttachment]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_UploadDiaryAttachment]
(@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_CP_UploadDiaryAttachment] *
* 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-10 Vinodhkumar.M Created - to upload Document in client portal *
* 2022-02-11 Vinodhkumar.M KAAS_CP_GETFILEPATH is created by copying Function KAAS_FN_GETFILEPATH *
* 2022-02-11 Vinodhkumar.M Subject,text1, action code and handled date and due date is added
and removed client portal flag *
* 2022-02-17 Vinodhkumar.M default action code, subject, file description parameters range updated*
* 2022-11-03 Vinodhkumar.M IslastFileToUpload Parameter is added for diary table update *
query should call only once *
* 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_CP_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(@IslastFileToUpload = 1)
BEGIN
IF EXISTS(SELECT TOP 1 1 FROM diary WHERE ACTIONID = @DIARYID)
BEGIN
UPDATE [diary]
SET [SUBJECT] = @Subject,
[TEXT1] = @FileDescription,
[ACTIONCODE] = @DefaultActionCode,
[DATE] = dbo.KAAS_FNConvertDateToUTC(GETDATE(),@ENTEREDBY),
[DUEDATE] = dbo.KAAS_FNConvertDateToUTC(GETDATE(),@ENTEREDBY)
WHERE [ACTIONID] = @DIARYID
END
END
SET @Result = @FILEPATH
END
ELSE
BEGIN
SET @Result = 'NOCHANGE'
END
END
END
GO
IF OBJECT_ID(N'KAAS_CP_ValidateResetPassword',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CP_ValidateResetPassword]
GO
CREATE PROCEDURE
[dbo].[KAAS_CP_ValidateResetPassword]
(@LoginId BIGINT,
@IsOtpValid BIT,
@IsPasswordReset BIT = 0)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_CP_ValidateResetPassword] *
* Description: To validate Reset password OTP and lockout user if invalid credentails provided *
* *
* Modification History: *
* 2021-06-03 Aakif Created *
*******************************************************************************************************/
BEGIN
DECLARE @CurrentAttempt TINYINT, @LockoutLimit TINYINT, @LockoutDuration INT;
--HANDLE FOR VALID RESET PWD OTP
IF(@IsOtpValid = 1)
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[IsPasswordResetOTPVerified] = 1
WHERE [ClientLoginId] = @LoginId
END
ELSE
BEGIN
--GET CURRENT ATTEMPT COUNT TO DECIDE WHETHER TO LOCKOUT USER
SELECT
@CurrentAttempt = ISNULL(PasswordResetOTPAttemptCount, 0)
FROM
[dbo].[ClientLogin]
-- SET LOCKOUT TENANT SETTINGS
SELECT
@LockoutLimit = ISNULL(IsLockOut_Attempt, 3),
@LockoutDuration = ISNULL(LockoutDurationInMins, 10)
FROM
[dbo].[ClientPortalSetting]
-- LOCKOUT USER FOR MAX LIMIT REACHED
IF(@CurrentAttempt >= @LockoutLimit)
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[PasswordResetLockOutEndDate] = DATEADD(MINUTE, @LockoutDuration, GETUTCDATE())
WHERE [ClientLoginId] = @LoginId
END
--INCREMENT CURRENT ATTEMPT COUNT
UPDATE [dbo].[ClientLogin]
SET
[PasswordResetOTPAttemptCount] = (@CurrentAttempt + 1)
WHERE [ClientLoginId] = @LoginId
END
--RESET ALL DATA AFTER PASSWORD IS RESET
IF(@IsPasswordReset = 1)
BEGIN
UPDATE [dbo].[ClientLogin]
SET
[PasswordResetOTPAttemptCount] = 0,
[IsPasswordResetOTPVerified] = 0,
[PasswordResetLockOutEndDate] = NULL,
[PasswordResetOTP] = NULL,
[PasswordResetOTPCreationTime] = NULL,
[PasswordResetOTPExpirationTime] = NULL
WHERE [ClientLoginId] = @LoginId
END
END
GO