IF OBJECT_ID(N'KAAS_ACLedgerSetClientReserveInsert',N'P') IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_ACLedgerSetClientReserveInsert]
GO
CREATE PROCEDURE
[dbo].[KAAS_ACLedgerSetClientReserveInsert]
(@Reserve VARCHAR(15),
@Comment VARCHAR(80),
@User VARCHAR(10),
@Matter VARCHAR(20) ,
@Result INT OUTPUT)
AS
/******************************************************************************************************************
* To insert and Set Client A/c Reserve value. *
* *
* Stored Procedure Name: [dbo].[KAAS_ACLedgerSetClientReserveInsert] *
* Copied from : [dbo].[ky_NETACLedgerSetClientReserveInsert] *
* *
* Modification History: *
* 2019-07-18 Vinodhan K Created *
******************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @ISSAM4 INT
SET @ISSAM4 = [dbo].[ISSAM4]()
IF @ISSAM4 = 0
BEGIN
SET @NCOMMAND = N'
INSERT
INTO [dbo].[MatterLedger]
([MATTER],
[BATCHNO],
[PREF],
[DATE],
[REF],
[NARR],
[VALUED],
[VALUEO],
[VALUEC],
[FEE],
[PER],
[YEAR],
[ENTRYDATE],
[CLIENT],
[VALUECC],
[VALUECD],
[DEPOSITTYPE],
[CURVALUED],
[CURVALUEO],
[CURVALUEC],
[CURVALUECC],
[CURVALUECD],
[BILLED],
[BILLINGYEAR],
[BILLINGPERIOD],
[BILLINGDATE],
[BILLEDOUTLAYVALUE],
[INVOICENO],
[INCLUDEINBILL])
VALUES(RTRIM(@Matter),
0,
0,
GETDATE(),
LEFT(RTRIM(@User), 10),
''RESERVE: '' + RTRIM(@Comment),
0.00,
0.00,
0.00,
'''',
0,
0,
GETDATE(),
'''',
0.00,
0.00,
'''',
0.00,
0.00,
0.00,
0.00,
0.00,
'''',
0,
0,
'''',
0.00,
0,
0)
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[matters] MAT
WHERE MAT.[CODE] = @Matter )
BEGIN
UPDATE MAT
SET MAT.[CLIENTMIN] = @Reserve
FROM [dbo].[matters] MAT
WHERE MAT.[CODE] = @Matter
END
SET @Result = 1'
END
ELSE
BEGIN
SET @NCOMMAND = '
DECLARE @YEAR INT
DECLARE @PERIOD INT
SELECT @YEAR = CASE WHEN NUM.[Code] = ''CurYear''
THEN ISNULL(NUM.[NumValue], 0)
ELSE @YEAR END,
@PERIOD = CASE WHEN NUM.[Code] = ''CurPeriod''
THEN ISNULL(NUM.[NumValue], 0)
ELSE @PERIOD END
FROM [dbo].[CtrlNum] AS NUM
WHERE NUM.[Code] IN (''CurYear'', ''CurPeriod'')
INSERT INTO [dbo].[Transactions] (
[BatchNo],
[XnType],
[RecType],
[LineType],
[Destination],
[TypeCode],
[ChequeStatus],
[NominalCode],
[TransferCosts],
[TransferFrom],
[Branch],
[PostRef],
[ParentRef],
[TransRef],
[TransDate],
[ClearType],
[ClearDate],
[WriteDownDate],
[Team],
[FeeEarner],
[MatterCode],
[Supplier],
[Narrative],
[EntryCurrency],
[TransTotal],
[DrCr],
[NominalValue],
[CurrencyNominal],
[DebtorsValue],
[DebtorsValueOS],
[CurrencyDebtors],
[CurrDebtorsOS],
[OutlayValue],
[CurrencyOutlay],
[OutlayCode],
[OpenInvoice],
[OutlayBill],
[ClientCurrent],
[CurrencyCurent],
[ClientDeposit],
[CurrencyDeposit],
[SupplierValue],
[SupplierValueOS],
[PostingPeriod],
[PostingYear],
[Payee],
[NVNetValue],
[CurrencyNVNet],
[VNetValue],
[CurrencyVNet],
[VATValue],
[CurrencyVAT],
[VATRate],
[FeesBilled],
[FeesOS],
[CurrFees],
[CurrFeesOS],
[VATonFees],
[VATonFeesOS],
[CurrVATonFees],
[CurrVATFeesOS],
[OutlayNV],
[OutlayNVOS],
[CurrNVOutlay],
[CurrNVOlayOS],
[OutlayV],
[OutlayVOS],
[CurrVOlay],
[CurrVOlayOS],
[VATonOutlay],
[VATOutlayOS],
[CurrVATonOlay],
[CurrVATOlayOS],
[MiscBilled],
[MiscOS],
[CurrMiscBilled],
[CurrMiscOS],
[VATonMisc],
[VATMiscOS],
[CurrVATonMisc],
[CurrVATMiscOS],
[VATBilled],
[CurrVATBill],
[ThirdParty],
[EntryDate],
[UpdateDate],
[EnteredBy],
[UpdateBy],
[Requisition],
[ReceiptNo],
[DraftNo],
[MemXnid],
[Posted],
[Authorised],
[AuthorDate],
[UserBatch],
[CorrectionInd],
[CorrectDate],
[CorrectUser],
[CorrectID],
[Reconciliation],
[Reconciled],
[WriteOffRemainder],
[AllocPending],
[PreBilledOutlays],
[BilledOutlay],
[Seq],
[ReturnPreBilled],
[PreBilledV],
[PreBilledNV],
[OffSetOutlay],
[OtherRef],
[OutlayBilledDate],
[EFTSent],
[EFTDate],
[EFTFileNumber],
[EFTFileName],
[EFTYorN],
[ClientCode],
[PayClient],
[OnceOffPayment],
[CaseAssCode],
[RegisteredPost],
[EFTEmailYorN])
SELECT 0, /* BatchNo */
''C'', /* XnType */
''H'', /* RecType */
''X'', /* LineType */
''T'', /* Destination */
''Comment'', /* TypeCode */
'''', /* ChequeStatus */
'''', /* NominalCode */
'''', /* TransferCosts */
'''', /* TransferFrom */
'''', /* Branch */
0, /* PostRef */
0, /* ParentRef */
LEFT(RTRIM(@User), 10), /* TransRef */
CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(), 112), 112), /* TransDate */
'''', /* ClearType */
NULL, /* ClearDate */
NULL, /* WriteDownDate */
'''', /* Team */
'''', /* FeeEarner */
@Matter, /* MatterCode */
'''', /* Supplier */
''RESERVE: '' + RTRIM(@Comment), /* Narrative */
'''', /* EntryCurrency */
0, /* TransTotal */
0, /* DrCr */
0, /* NominalValue */
0, /* CurrencyNominal */
0, /* DebtorsValue */
0, /* DebtorsValueOS */
0, /* CurrencyDebtors */
0, /* CurrDebtorsOS */
0, /* OutlayValue */
0, /* CurrencyOutlay */
'''', /* OutlayCode */
'''', /* OpenInvoice */
0, /* OutlayBill */
0, /* ClientCurrent */
0, /* CurrencyCurent */
0, /* ClientDeposit */
0, /* CurrencyDeposit */
0, /* SupplierValue */
0, /* SupplierValueOS */
@PERIOD, /* PostingPeriod */
@YEAR, /* PostingYear */
'''', /* Payee */
0, /* NVNetValue */
0, /* CurrencyNVNet */
0, /* VNetValue */
0, /* CurrencyVNet */
0, /* VATValue */
0, /* CurrencyVAT */
'''', /* VATRate */
0, /* FeesBilled */
0, /* FeesOS */
0, /* CurrFees */
0, /* CurrFeesOS */
0, /* VATonFees */
0, /* VATonFeesOS */
0, /* CurrVATonFees */
0, /* CurrVATFeesOS */
0, /* OutlayNV */
0, /* OutlayNVOS */
0, /* CurrNVOutlay */
0, /* CurrNVOlayOS */
0, /* OutlayV */
0, /* OutlayVOS */
0, /* CurrVOlay */
0, /* CurrVOlayOS */
0, /* VATonOutlay */
0, /* VATOutlayOS */
0, /* CurrVATonOlay */
0, /* CurrVATOlayOS */
0, /* MiscBilled */
0, /* MiscOS */
0, /* CurrMiscBilled */
0, /* CurrMiscOS */
0, /* VATonMisc */
0, /* VATMiscOS */
0, /* CurrVATonMisc */
0, /* CurrVATMiscOS */
0, /* VATBilled */
0, /* CurrVATBill */
'''', /* ThirdParty */
CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(), 112), 112), /* EntryDate */
NULL, /* UpdateDate */
'''', /* EnteredBy */
'''', /* UpdateBy */
0, /* Requisition */
0, /* ReceiptNo */
0, /* DraftNo */
0, /* MemXnid */
''Y'', /* Posted */
'''', /* Authorised */
NULL, /* AuthorDate */
0, /* UserBatch */
''L'', /* CorrectionInd */
NULL, /* CorrectDate */
'''', /* CorrectUser */
0, /* CorrectID */
0, /* Reconciliation */
'''', /* Reconciled */
'''', /* WriteOffRemainder */
0, /* AllocPending */
'''', /* PreBilledOutlays */
0, /* BilledOutlay */
0, /* Seq */
'''', /* ReturnPreBilled */
0, /* PreBilledV */
0, /* PreBilledNV */
'''', /* OffSetOutlay */
'''', /* OtherRef */
NULL, /* OutlayBilledDate */
''N'', /* EFTSent */
NULL, /* EFTDate */
0, /* EFTFileNumber */
'''', /* EFTFileName */
''N'', /* EFTYorN */
'''', /* ClientCode */
''N'', /* PayClient */
''N'', /* OnceOffPayment */
'''', /* CaseAssCode */
0, /* RegisteredPost */
''N'' /* EFTEmailYorN */
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[matters] AS MAT
WHERE MAT.[Code] = @Matter)
BEGIN
UPDATE MAT
SET MAT.[CLIENTMIN] = @Reserve
FROM [dbo].[matters] AS MAT
WHERE MAT.[Code] = @Matter
END
SET @Result = 1'
END
EXECUTE sp_executesql @NCOMMAND,
N'@Matter VARCHAR(20), @User VARCHAR(10), @Comment VARCHAR(80), @Reserve VARCHAR(15), @Result INT OUTPUT',
@Matter = @Matter,
@User = @User,
@Comment = @Comment,
@Reserve = @Reserve,
@Result = @REsult OUTPUT
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_AddMatterLedgerComment', N'P') IS NOT NULL
DROP PROCEDURE KAAS_AddMatterLedgerComment
GO
DECLARE @COMMAND VARCHAR(MAX)
/*******************************************************************************************************
* It is used to add a Matter Ledger Comment. *
* *
* Stored Procedure Name : [dbo].[KAAS_AddMatterLedgerComment] *
* Copied from : [dbo].[ky_NETAddMatterLedgerComment] *
* *
* Modification History : *
* 2019-07-17 Vinodhan K Created *
*******************************************************************************************************/
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @COMMAND = 'CREATE PROCEDURE
[dbo].[KAAS_AddMatterLedgerComment]
(@MATTER VARCHAR(20),
@DATE DATETIME,
@REF VARCHAR(10),
@COMMENT VARCHAR(100))
AS
BEGIN
INSERT
INTO [dbo].[MatterLedger]
([MATTER],
[BATCHNO],
[PREF],
[DATE],
[REF],
[NARR],
[VALUED],
[VALUEO],
[VALUEC],
[FEE],
[PER],
[YEAR],
[ENTRYDATE],
[CLIENT],
[VALUECC],
[VALUECD],
[DEPOSITTYPE],
[CURVALUED],
[CURVALUEO],
[CURVALUEC],
[CURVALUECC],
[CURVALUECD],
[BILLED],
[BILLINGYEAR],
[BILLINGPERIOD],
[BILLINGDATE],
[BilledOutlayValue],
[InvoiceNo],
[IncludeInBill])
VALUES(@MATTER,
0,
0,
@DATE,
@REF,
@COMMENT,
0,
0,
0,
0,
0,
0,
NULL,
SUBSTRING(@MATTER,
0,
CHARINDEX(''/'',
@MATTER)),
0,
0,
'''',
0,
0,
0,
0,
0,
'''',
NULL,
NULL,
NULL,
0,
0,
NULL)
SELECT SCOPE_IDENTITY()
END'
EXEC (@COMMAND)
END
ELSE
BEGIN
SET @COMMAND = '
CREATE PROCEDURE [dbo].[KAAS_AddMatterLedgerComment] (
@MATTER VARCHAR(20),
@DATE DATETIME,
@REF VARCHAR(10),
@COMMENT VARCHAR(100))
AS
/*******************************************************************************************************
* It is used to add a Matter Ledger Comment(SAM4 version). *
* *
* Stored Procedure Name : [dbo].[KAAS_AddMatterLedgerComment] *
* Copied from : [dbo].[ky_NETAddMatterLedgerComment] *
* *
* Modification History : *
* 2019-07-17 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @YEAR INT
DECLARE @PERIOD INT
SELECT @YEAR = CASE WHEN NUM.[Code] = ''CurYear''
THEN ISNULL(NUM.[NumValue], 0)
ELSE @YEAR END,
@PERIOD = CASE WHEN NUM.[Code] = ''CurPeriod''
THEN ISNULL(NUM.[NumValue], 0)
ELSE @PERIOD END
FROM [dbo].[CtrlNum] AS NUM
WHERE NUM.[Code] IN (''CurYear'', ''CurPeriod'')
INSERT INTO [dbo].[Transactions] (
[BatchNo],
[XnType],
[RecType],
[LineType],
[Destination],
[TypeCode],
[ChequeStatus],
[NominalCode],
[TransferCosts],
[TransferFrom],
[Branch],
[PostRef],
[ParentRef],
[TransRef],
[TransDate],
[ClearType],
[ClearDate],
[WriteDownDate],
[Team],
[FeeEarner],
[MatterCode],
[Supplier],
[Narrative],
[EntryCurrency],
[TransTotal],
[DrCr],
[NominalValue],
[CurrencyNominal],
[DebtorsValue],
[DebtorsValueOS],
[CurrencyDebtors],
[CurrDebtorsOS],
[OutlayValue],
[CurrencyOutlay],
[OutlayCode],
[OpenInvoice],
[OutlayBill],
[ClientCurrent],
[CurrencyCurent],
[ClientDeposit],
[CurrencyDeposit],
[SupplierValue],
[SupplierValueOS],
[PostingPeriod],
[PostingYear],
[Payee],
[NVNetValue],
[CurrencyNVNet],
[VNetValue],
[CurrencyVNet],
[VATValue],
[CurrencyVAT],
[VATRate],
[FeesBilled],
[FeesOS],
[CurrFees],
[CurrFeesOS],
[VATonFees],
[VATonFeesOS],
[CurrVATonFees],
[CurrVATFeesOS],
[OutlayNV],
[OutlayNVOS],
[CurrNVOutlay],
[CurrNVOlayOS],
[OutlayV],
[OutlayVOS],
[CurrVOlay],
[CurrVOlayOS],
[VATonOutlay],
[VATOutlayOS],
[CurrVATonOlay],
[CurrVATOlayOS],
[MiscBilled],
[MiscOS],
[CurrMiscBilled],
[CurrMiscOS],
[VATonMisc],
[VATMiscOS],
[CurrVATonMisc],
[CurrVATMiscOS],
[VATBilled],
[CurrVATBill],
[ThirdParty],
[EntryDate],
[UpdateDate],
[EnteredBy],
[UpdateBy],
[Requisition],
[ReceiptNo],
[DraftNo],
[MemXnid],
[Posted],
[Authorised],
[AuthorDate],
[UserBatch],
[CorrectionInd],
[CorrectDate],
[CorrectUser],
[CorrectID],
[Reconciliation],
[Reconciled],
[WriteOffRemainder],
[AllocPending],
[PreBilledOutlays],
[BilledOutlay],
[Seq],
[ReturnPreBilled],
[PreBilledV],
[PreBilledNV],
[OffSetOutlay],
[OtherRef],
[OutlayBilledDate],
[EFTSent],
[EFTDate],
[EFTFileNumber],
[EFTFileName],
[EFTYorN],
[ClientCode],
[PayClient],
[OnceOffPayment],
[CaseAssCode],
[RegisteredPost],
[EFTEmailYorN])
SELECT 0, /* BatchNo */
''C'', /* XnType */
''H'', /* RecType */
''X'', /* LineType */
''T'', /* Destination */
''Comment'', /* TypeCode */
'''', /* ChequeStatus */
'''', /* NominalCode */
'''', /* TransferCosts */
'''', /* TransferFrom */
'''', /* Branch */
0, /* PostRef */
0, /* ParentRef */
@REF, /* TransRef */
@DATE, /* TransDate */
'''', /* ClearType */
NULL, /* ClearDate */
NULL, /* WriteDownDate */
'''', /* Team */
'''', /* FeeEarner */
@MATTER, /* MatterCode */
'''', /* Supplier */
@COMMENT, /* Narrative */
'''', /* EntryCurrency */
0, /* TransTotal */
0, /* DrCr */
0, /* NominalValue */
0, /* CurrencyNominal */
0, /* DebtorsValue */
0, /* DebtorsValueOS */
0, /* CurrencyDebtors */
0, /* CurrDebtorsOS */
0, /* OutlayValue */
0, /* CurrencyOutlay */
'''', /* OutlayCode */
'''', /* OpenInvoice */
0, /* OutlayBill */
0, /* ClientCurrent */
0, /* CurrencyCurent */
0, /* ClientDeposit */
0, /* CurrencyDeposit */
0, /* SupplierValue */
0, /* SupplierValueOS */
@PERIOD, /* PostingPeriod */
@YEAR, /* PostingYear */
'''', /* Payee */
0, /* NVNetValue */
0, /* CurrencyNVNet */
0, /* VNetValue */
0, /* CurrencyVNet */
0, /* VATValue */
0, /* CurrencyVAT */
'''', /* VATRate */
0, /* FeesBilled */
0, /* FeesOS */
0, /* CurrFees */
0, /* CurrFeesOS */
0, /* VATonFees */
0, /* VATonFeesOS */
0, /* CurrVATonFees */
0, /* CurrVATFeesOS */
0, /* OutlayNV */
0, /* OutlayNVOS */
0, /* CurrNVOutlay */
0, /* CurrNVOlayOS */
0, /* OutlayV */
0, /* OutlayVOS */
0, /* CurrVOlay */
0, /* CurrVOlayOS */
0, /* VATonOutlay */
0, /* VATOutlayOS */
0, /* CurrVATonOlay */
0, /* CurrVATOlayOS */
0, /* MiscBilled */
0, /* MiscOS */
0, /* CurrMiscBilled */
0, /* CurrMiscOS */
0, /* VATonMisc */
0, /* VATMiscOS */
0, /* CurrVATonMisc */
0, /* CurrVATMiscOS */
0, /* VATBilled */
0, /* CurrVATBill */
'''', /* ThirdParty */
NULL, /* EntryDate */
NULL, /* UpdateDate */
'''', /* EnteredBy */
'''', /* UpdateBy */
0, /* Requisition */
0, /* ReceiptNo */
0, /* DraftNo */
0, /* MemXnid */
''Y'', /* Posted */
'''', /* Authorised */
NULL, /* AuthorDate */
0, /* UserBatch */
''L'', /* CorrectionInd */
NULL, /* CorrectDate */
'''', /* CorrectUser */
0, /* CorrectID */
0, /* Reconciliation */
'''', /* Reconciled */
'''', /* WriteOffRemainder */
0, /* AllocPending */
'''', /* PreBilledOutlays */
0, /* BilledOutlay */
0, /* Seq */
'''', /* ReturnPreBilled */
0, /* PreBilledV */
0, /* PreBilledNV */
'''', /* OffSetOutlay */
'''', /* OtherRef */
NULL, /* OutlayBilledDate */
''N'', /* EFTSent */
NULL, /* EFTDate */
0, /* EFTFileNumber */
'''', /* EFTFileName */
''N'', /* EFTYorN */
'''', /* ClientCode */
''N'', /* PayClient */
''N'', /* OnceOffPayment */
'''', /* CaseAssCode */
0, /* RegisteredPost */
''N'' /* EFTEmailYorN */
SELECT SCOPE_IDENTITY()
END'
EXEC (@COMMAND)
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_AdvancedSearchFields'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_AdvancedSearchFields]
END
GO
CREATE PROCEDURE KAAS_AdvancedSearchFields
AS
/*******************************************************************************************************
* Fetches the Fee Earner, Department, Work Type. *
* *
* Stored Procedure Name : [dbo].[KAAS_AdvancedSearchFields] *
* *
* Modification History : *
* 2019-06-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
--Fee Earner
SELECT '' AS [Code],
'' AS [Description],
'' AS [Team]
UNION
select RTRIM(ISNULL(FEC.[Code], '')) AS [Code],
RTRIM(ISNULL(FEC.[Name], '')) AS [Description],
ISNULL((SELECT RTRIM(ISNULL(Name, '')) FROM Handlers WHERE CODE=Tea.[TEAM] and ISNULL([TEAMCODE], 'N')='Y'),'') AS [Team]
from [dbo].FeeEarnerCodes FEC
LEFT OUTER JOIN [dbo].[Handlers] TEA
ON TEA.[CODE] = FEC.[CODE]
WHERE
RTRIM(ISNULL(FEC.[CODE], '')) <> ''
AND
ISNULL(FEC.Retired,'N') <>'Y'
--Department
SELECT '' AS [Code],
'' AS [Department]
UNION
select RTRIM(ISNULL(DPT.[CODE], '')) AS [Code],
RTRIM(ISNULL(DPT.[DESC], '')) AS [Department]
from [dbo].[Departments] DPT
where ISNULL(DPT.[RETIRED], '') <> 'Y'
--Work Type
SELECT '' AS [Code],
'' AS [WorkTypes]
UNION
select RTRIM(ISNULL(WKT.[CODE], '')) AS [Code],
RTRIM(ISNULL(WKT.[DESC], '')) AS [WorkTypes]
from [dbo].[WorkTypes] WKT
where ISNULL(WKT.[RETIRED], '') <> 'Y'
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_ApplySecuirtyGroupSettingsToAllMatters'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ApplySecuirtyGroupSettingsToAllMatters]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ApplySecuirtyGroupSettingsToAllMatters]
(@MatterCode VARCHAR(20))
AS
/*******************************************************************************************************
* Gets the client that belongs to the matter that was passed in,and then applies its *
* ContactNetPrivileges to all the matters for that client. *
* *
* Stored Procedure Name : [dbo].[KAAS_ApplySecuirtyGroupSettingsToAllMatters] *
* Copied from : [dbo].[ky_NETApplySecuirtyGroupSettingsToAllMatters] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @ContactCode VARCHAR(10)
DECLARE @BitWiseID BIGINT
SELECT TOP 1
@ContactCode = [MAT].[ClientCode]
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @MatterCode
IF NOT @ContactCode IS NULL
BEGIN
SELECT TOP 1
@BitWiseID = [CNP].[Previleges]
FROM [dbo].[ContactNetPrivileges] [CNP]
WHERE [CNP].[ContactCode] = @ContactCode
SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0))
IF @BitWiseID = 0
BEGIN
DELETE [MNP]
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[MatterNETPrivileges] [MNP]
ON [MNP].[MATTER] = [MAT].[Code]
WHERE [MAT].[ClientCode] = @ContactCode
END
ELSE
BEGIN
INSERT
INTO [dbo].[MatterNETPrivileges]
([MATTER],
[Privileges])
SELECT [MAT].[Code],
@BitWiseID
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[MatterNETPrivileges] [MNP]
ON [MNP].[MATTER] = [MAT].[Code]
WHERE [MAT].[ClientCode] = @ContactCode
AND [MNP].[MATTER] IS NULL
UPDATE [MNP]
SET [MNP].[Privileges] = @BitWiseID
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[MatterNETPrivileges] [MNP]
ON [MNP].[MATTER] = [MAT].[Code]
WHERE [MAT].[ClientCode] = @ContactCode
END
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_BanksForChequeRequest'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_BanksForChequeRequest]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_BanksForChequeRequest]
(@MATTER VARCHAR(20),
@ClientOrOutlay VARCHAR(1),
@ORIGINALCODE VARCHAR(10))
AS
/*************************************************************************************************
*
* List all banks for the Cheque Request functionality
* SP suitable for both SAM4 and SAM3
*
* Stored Proceudre name : KAAS_BanksForChequeRequest
* Copied From : ky_NETSPBanksForChequeRequest
*
* @ClientOrOutlay = C - FROM Client A/c
* @ClientOrOutlay = O - FROM Outlay A/c
*
* Modification history:
* 2015-03-27 Pino - Allow for an original code that used to be allowable as
* a bank Nominal code, but no longer is. Add ValidBank
* column to ensure that on changes to such a cheque, the
* user must change the bank.
* 2015-12-08 Arun - Have changed column alias name from Code to NominalCode
* 2017-06-12 Pino - Added original [Code] column back in for backward compatibility
* Kept Arun's new column for forward compatibility
* 2019-08-06 Vinodhan - Created KAAS_BanksForChequeRequest
*
*************************************************************************************************/
BEGIN
DECLARE @COMMAND VARCHAR(MAX)
SET @ORIGINALCODE = RTRIM(ISNULL(@ORIGINALCODE, ''))
IF EXISTS (SELECT TOP 1 1
FROM SYS.[objects] SO
INNER JOIN SYS.[columns] SC
ON SC.[object_id] = SO.[object_id]
AND SC.[name] = 'NominalCode'
WHERE SO.[name] = 'Nominal'
AND SO.[type] = 'U')
BEGIN
SET @COMMAND = '
SELECT RTRIM(ISNULL(NCD.[NominalCode], '''')) As [NominalCode],
RTRIM(ISNULL(NCD.[NominalCode], '''')) As [Code],
RTRIM(ISNULL(NCD.[AccountName], '''')) AS [Description],
CASE WHEN RTRIM(ISNULL(NCD.[Client], '''')) = ''Y''
THEN ''Y''
ELSE ''N'' END AS [ClientAccount],
CASE WHEN RTRIM(ISNULL(NCD.[Deposit], '''')) = ''Y''
THEN ''Y''
ELSE ''N'' END AS [DepositAccount],
'''' AS [DepositType],
'''' AS [Sequence],
RTRIM(ISNULL(NCD.[PorB], '''')) AS [PorB],
'''' AS [NominalTypeCode],
'''' AS [NominalType],
CONVERT(BIT, 1) AS [ValidBank]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[Nominal] NCD
ON ( ''' + @ClientOrOutlay + ''' = ''C''
AND NCD.[NominalCode] = MAT.[ClientBankAC])
OR ( ''' + @ClientOrOutlay + ''' = ''O''
AND NCD.[NominalCode] = MAT.[OfficeBankAC])
OR (''' + @ClientOrOutlay + ''' NOT IN (''C'', ''O''))
WHERE MAT.[code] = ''' + RTRIM(ISNULL(@MATTER, '')) + ''''
END
ELSE
BEGIN
SET @COMMAND = '
SELECT RTRIM(ISNULL(NCD.[CODE], '''')) As [NominalCode],
RTRIM(ISNULL(NCD.[CODE], '''')) As [Code],
RTRIM(ISNULL(NCD.[DESC], '''')) AS [Description],
CASE WHEN RTRIM(ISNULL(NCD.[CLIENTAC], '''')) = ''Y''
THEN ''Y''
ELSE ''N'' END AS [ClientAccount],
CASE WHEN RTRIM(ISNULL(NCD.[DEPOSITYN], '''')) = ''Y''
THEN ''Y''
ELSE ''N'' END AS [DepositAccount],
RTRIM(ISNULL(NCD.[DEPOSITTYPE], '''')) AS [DepositType],
RTRIM(ISNULL(NCD.[SEQ], '''')) AS [Sequence],
RTRIM(ISNULL(NCD.[PB], '''')) AS [PorB],
RTRIM(ISNULL(NCD.[TYPE], '''')) AS [NominalTypeCode],
RTRIM(ISNULL(NT.[NTYDESC], '''')) AS [NominalType],
CASE RTRIM(ISNULL(NCD.[ChequeReq], ''N''))
WHEN ''Y'' THEN CONVERT(BIT, 1)
ELSE CONVERT(BIT, 0) END AS [ValidBank]
FROM [dbo].[Nominal] NCD
LEFT OUTER JOIN [dbo].[NominalTypes] NT
ON NT.[NTYCODE] = NCD.[TYPE]
WHERE RTRIM(ISNULL(NCD.[ChequeReq], ''N'')) = ''Y''
OR NCD.[CODE] = ''' + REPLACE(@ORIGINALCODE, '''', '''''') + '''
ORDER BY RTRIM(ISNULL(NCD.[DESC], ''''))'
END
EXEC (@COMMAND)
END
GO
IF OBJECT_ID(N'[KAAS_CaseAssociateFetchAddProfessionalLoadData]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_CaseAssociateFetchAddProfessionalLoadData]
GO
CREATE PROCEDURE [KAAS_CaseAssociateFetchAddProfessionalLoadData]
AS
/*******************************************************************************************************
* This procedure is used load the data for add professional popup page. *
* *
* Stored Procedure Name : [dbo].[KAAS_CaseAssociateFetchAddProfessionalLoadData] *
* Copied from : [dbo].[ky_NETCaseAssociateFetchAddProfessionalLoadData] *
* *
* Modification History : *
* 2019-05-31 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
RTRIM(UPPER(CODE)) AS CODE,
RTRIM(ISNULL([DESCRIPTION],'')) AS [DESCRIPTION],
RTRIM(ISNULL(ASSOCIATETYPE,'')) AS ASSOCIATETYPE,
RTRIM(ISNULL(category,'')) AS category
FROM
dbo.AssociateTypes
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CaseAssociateFetchEditProfessionalLoadData'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CaseAssociateFetchEditProfessionalLoadData]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CaseAssociateFetchEditProfessionalLoadData]
(@AssociateCode VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure is used load the data for Edit professional page. *
* *
* Stored Procedure Name : [dbo].[KAAS_CaseAssociateFetchEditProfessionalLoadData] *
* Copied from : [dbo].[ky_NETCaseAssociateFetchEditProfessionalLoadData] *
* *
* Modification History : *
* 2019-06-03 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT RTRIM(ISNULL([CAN].[CODE], '')) AS [CODE],
RTRIM(ISNULL([CAN].[TYPE], '')) AS [TYPE],
RTRIM(ISNULL([CAN].[NAME], '')) AS [NAME],
RTRIM(ISNULL([CAN].[SALUTATION], '')) AS [SALUTATION],
RTRIM(ISNULL([CAN].[TITLE], '')) AS [TITLE],
RTRIM(ISNULL([CAN].[COMPANY], '')) AS [COMPANY],
RTRIM(ISNULL([CAN].[ADDRESS], '')) AS [ADDRESS],
RTRIM(ISNULL([CAN].[FORENAME], '')) AS [FORENAME],
RTRIM(ISNULL([CAN].[SURNAME], '')) AS [SURNAME],
RTRIM(ISNULL([CAN].[PHONENO], '')) AS [PHONENO],
RTRIM(ISNULL([CAN].[FAXNO], '')) AS [FAXNO],
RTRIM(ISNULL([CAN].[HOME], '')) AS [HOME],
RTRIM(ISNULL([CAN].[MOBILENO], '')) AS [MOBILENO],
RTRIM(ISNULL([CAN].[EMAIL], '')) AS [EMAIL],
RTRIM(ISNULL([CAN].[WEBADDRESS], '')) AS [WEBADDRESS],
RTRIM(ISNULL([CAN].[SSNUMBER], '')) AS [SSNUMBER],
RTRIM(ISNULL([CAN].[LEGALNAME], '')) AS [LEGALNAME],
RTRIM(ISNULL([CAN].[LEGALADDRESS], '')) AS [LEGALADDRESS],
RTRIM(ISNULL([CAN].[COURTNO], '')) AS [COURTNO],
RTRIM(ISNULL([CAN].[COURTAREA], '')) AS [COURTAREA],
RTRIM(ISNULL([CAN].[TAX], '')) AS [TAX],
RTRIM(ISNULL([CAN].[DXREF], '')) AS [DXREF],
CONVERT(VARCHAR(10),[CAN].[DOB],112) AS [DOB],
RTRIM(ISNULL([CAN].[MARTIALSTATUS],'')) AS [MARTIALSTATUS],
CASE [CAN].[MARRIAGEDATE]
WHEN NULL
THEN ''
ELSE CONVERT(VARCHAR(10),[CAN].[MARRIAGEDATE],112) END AS [MARRIAGEDATE],
RTRIM(ISNULL([CAN].[DECEASED], '')) AS [DECEASED],
RTRIM(ISNULL([CAN].[SEPARATED], '')) AS [SEPARATED],
RTRIM(ISNULL([CAN].[HOWSEPARATED], '')) AS [HOWSEPARATED],
CASE [CAN].[DATESEPARATED]
WHEN NULL
THEN ''
ELSE CONVERT(VARCHAR(10),[CAN].[DATESEPARATED],112) END AS [DATESEPARATED],
CASE [CAN].[DECEASEDDATE]
WHEN NULL
THEN ''
ELSE CONVERT(VARCHAR(10),[CAN].[DECEASEDDATE],112) END AS [DECEASEDDATE],
RTRIM(ISNULL([CAN].[OCCUPATION], '')) AS [OCCUPATION],
RTRIM(ISNULL([CAN].[SEARCH], '')) AS [SEARCH],
RTRIM(ISNULL(CONVERT(VARCHAR(9),[CAN].[CONTACTNO]), '')) AS [CONTACTNO],
RTRIM(ISNULL([CAN].[NOTES], '')) AS [NOTES],
RTRIM(ISNULL([CAN].[AREA], '')) AS [AREA],
RTRIM(ISNULL([CAN].[TOWN], '')) AS [TOWN],
RTRIM(ISNULL([CAN].[GENDER],'')) AS [GENDER],
RTRIM(ISNULL([CAN].[ADDRESSTYPE], '')) AS [ADDRESSTYPE],
RTRIM(ISNULL([CAN].[SERVICETYPE], '')) AS [SERVICETYPE],
RTRIM(ISNULL([CAN].[CRONUMBER], '')) AS [CRONUMBER],
RTRIM(ISNULL([CAN].[VATNUMBER], '')) AS [VATNUMBER],
--RTRIM(ISNULL([CAN].[FORENAME], '')) AS [FORENAME],
--RTRIM(ISNULL([CAN].[SURNAME], '')) AS [SURNAME],
RTRIM(ISNULL([CAN].[County], '')) AS [County],
RTRIM(ISNULL([CAN].[PostalCode], '')) AS [PostalCode],
RTRIM(ISNULL([CAN].[BankName], '')) AS [BankName],
RTRIM(ISNULL([CAN].[BankAddress], '')) AS [BankAddress],
RTRIM(ISNULL([CAN].[BankSortCode], '')) AS [BankSortCode],
RTRIM(ISNULL([CAN].[BankAccNo], '')) AS [BankAccNo],
RTRIM(ISNULL([CAN].[IBan], '')) AS [IBan],
RTRIM(ISNULL([CAN].[Bic], '')) AS [Bic],
RTRIM(ISNULL([MS].[Retired], 'N')) AS [Retired],
RTRIM(ISNULL([CAN].[Banktype], '')) AS [Banktype],
RTRIM(ISNULL([CAN].[EFTEmailAddress], '')) AS [EFTEmailAddress]
FROM [dbo].[CaseAssociatesNames] [CAN]
LEFT OUTER JOIN [dbo].[MiscCodes] [MS]
ON [MS].[CDECODE] = [CAN].[MARTIALSTATUS]
WHERE [CAN].[CODE] = @AssociateCode
SELECT RTRIM([CT].[NAMECODE]) AS [NAMECODE],
UPPER(RTRIM([CT].[TYPECODE])) AS [BankTypeCode],
RTRIM([CT].[TYPECODE]) AS [TYPECODE],
RTRIM([AST].[DESCRIPTION]) AS [SEARCHCODE],
ISNULL([CT].[Retired], 'N') AS [Retired],
CASE WHEN [UIC].[TOTAL] = 0 THEN 'N' ELSE 'Y' END AS [UsedInCase]
FROM [dbo].[CaseAssoicatesTypes] [CT]
INNER JOIN [dbo].[AssociateTypes] [AST]
ON [AST].[CODE] = [CT].[TYPECODE]
CROSS APPLY (SELECT COUNT(1) AS [TOTAL]
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[NAMECODE] = [CT].[NAMECODE]
AND [CC].[CONTYPE] = [CT].[TYPECODE]) [UIC]
WHERE [CT].[NAMECODE] = @AssociateCode
SELECT RTRIM(ISNULL([CAC].[NAMECODE], '')) AS [NameCode],
RTRIM(ISNULL(CAST([CAC].[KEYID] AS VARCHAR(20)), '')) AS [KeyId],
RTRIM(ISNULL([CAC].[NAME], '')) AS [Name],
RTRIM(ISNULL([CAC].[SALUTATION], '')) AS [Salutation],
RTRIM(ISNULL([CAC].[JOBTITLE], '')) AS [JobTitle],
RTRIM(ISNULL([CAC].[ADDRESS], '')) AS [Address],
RTRIM(ISNULL([CAC].[PHONE], '')) AS [Phone],
RTRIM(ISNULL([CAC].[FAX], '')) AS [Fax],
RTRIM(ISNULL([CAC].[MOBILE], '')) AS [Mobile],
RTRIM(ISNULL([CAC].[EMAIL], '')) AS [Email],
RTRIM(ISNULL([CAC].[RELATIONSHIP], '')) AS [Relationship],
RTRIM(ISNULL([CAC].[NOTES], '')) AS [Notes]
FROM [dbo].[CaseAssociatesContacts] [CAC]
WHERE [CAC].[NAMECODE] = @AssociateCode
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#OtherCaseInvolvementTable
FROM
(
SELECT RTRIM(ISNULL([CC].[CASECODE], '')) AS [CASECODE],
RTRIM(ISNULL([CC].[CONTYPE], '')) AS [CONTYPE],
RTRIM(ISNULL([CC].[CONNUM], '')) AS [CONNUM],
RTRIM(ISNULL([CC].[NAMECODE], '')) AS [NAMECODE],
RTRIM(ISNULL([CON].[NAME], '')) AS [NAME],
RTRIM(ISNULL([CC].[CONNUM], '')) AS [Seq],
RTRIM(ISNULL([MAT].[DESCRIPTION], '')) AS [DESCRIPTION]
FROM [dbo].[CaseContacts] [CC]
LEFT OUTER JOIN [dbo].[Matters] [MAT]
ON [MAT].[Code] = [CC].[CASECODE]
LEFT OUTER JOIN [dbo].[Contacts] [CON]
ON [CON].[Code] = [MAT].[ClientCode]
WHERE [CC].[NAMECODE] = @AssociateCode) AS OtherCaseInvolvementTable
ORDER BY [NAMECODE] ASC,
[CONTYPE] ASC,
[CASECODE] ASC
SELECT
*
FROM
#OtherCaseInvolvementTable
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_CaseAssociateFetchLoadData]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_CaseAssociateFetchLoadData]
GO
CREATE PROCEDURE [KAAS_CaseAssociateFetchLoadData]
(@SearchText VARCHAR(4000) = '',
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL)
AS
/*******************************************************************************************************
* This procedure is used load the data for add professional page. *
* 1. CaseAssociate grid. *
* 2. Case Associate type list box. *
* *
* Stored Procedure Name : [dbo].[KAAS_CaseAssociateFetchLoadData] *
* Copied from : [dbo].[ky_NETCaseAssociateFetchLoadData] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
* 2019-05-30 Vinodhan K Searching, Paging and Sorting functionality added *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
SET @PageSize = ISNULL(@PageSize, 0) - 1; -- 0 BASED INDEX
DECLARE @StartRow INT = NULL;
DECLARE @EndRow INT = NULL;
IF(@PageNumber > -1 AND @PageSize > 0)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(int, 1,1) AS [Row_Number],
*
INTO
#FoundTable
FROM
(SELECT
UPPER(CODE) AS CODE,
[DESCRIPTION]
FROM
AssociateTypes
WHERE
[CODE] LIKE '%' + @SearchText + '%'
OR
[DESCRIPTION] LIKE '%' + @SearchText + '%') AS Test
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [CODE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [CODE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [DESCRIPTION]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [DESCRIPTION]
END
END DESC
SELECT
0 AS [Row_Number],
'' AS CODE,
'ALL' AS [DESCRIPTION]
UNION ALL
SELECT
*
FROM
#FoundTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number]) + 1) --Including the dynamically included row where CODE = '', DESCRIPTION = 'ALL'
FROM
#FoundTable
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CaseAssociateInsertGeneral'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CaseAssociateInsertGeneral]
END
GO
CREATE PROCEDURE
[KAAS_CaseAssociateInsertGeneral]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This procedure is used To insert "Add Profession Details" in CaseAssociatesNames *
* *
* Stored Procedure Name : [dbo].[KAAS_CaseAssociateInsertGeneral] *
* Copied from : [dbo].[ky_NETXMLCaseAssociateInsertProfessionalDetails] *
* *
* Modification History : *
* 2019-05-31 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(6)
DECLARE @Fullname VARCHAR(100)
DECLARE @Salutation VARCHAR(30)
DECLARE @JobTitle VARCHAR(50)
DECLARE @Address VARCHAR(500)
DECLARE @Company VARCHAR(80)
DECLARE @DXRel VARCHAR(30)
DECLARE @Email VARCHAR(100)
DECLARE @FaxNo VARCHAR(20)
DECLARE @Home VARCHAR(20)
DECLARE @MobileNo VARCHAR(20)
DECLARE @PhoneNo VARCHAR(20)
DECLARE @Type VARCHAR(12)
DECLARE @FirstName VARCHAR(50)
DECLARE @SurName VARCHAR(50)
DECLARE @County VARCHAR(100)
DECLARE @PostalCode VARCHAR(100)
DECLARE @Retired VARCHAR(1)
DECLARE @Edit INT
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT
@Code = [CAN].[Code],
@Fullname = [CAN].[Fullname],
@Salutation = [CAN].[Salutation],
@JobTitle = [CAN].[JobTitle],
@Address = [CAN].[Address],
@Company = [CAN].[Company],
@DXRel = [CAN].[DXRel],
@Email = [CAN].[Email],
@FaxNo = [CAN].[FaxNo],
@Home = [CAN].[Home],
@MobileNo = [CAN].[MobileNo],
@PhoneNo = [CAN].[PhoneNo],
@Type = [CAN].[Type],
@FirstName = [CAN].[FirstName],
@SurName = [CAN].[SurName],
@County = [CAN].[County],
@PostalCode = [CAN].[PostalCode],
@Retired = [CAN].[Retired],
@Edit = [CAN].[Edit]
FROM OPENXML(@iSL, N'CAN')
WITH ([Code] VARCHAR(6) 'Code',
[Fullname] VARCHAR(100) 'Fullname',
[Salutation] VARCHAR(30) 'Salutation',
[JobTitle] VARCHAR(50) 'JobTitle',
[Address] VARCHAR(500) 'Address',
[Company] VARCHAR(80) 'Company',
[DXRel] VARCHAR(30) 'DXRel',
[Email] VARCHAR(100) 'Email',
[FaxNo] VARCHAR(20) 'FaxNo',
[Home] VARCHAR(20) 'Home',
[MobileNo] VARCHAR(20) 'MobileNo',
[PhoneNo] VARCHAR(20) 'PhoneNo',
[Type] VARCHAR(12) 'Type',
[FirstName] VARCHAR(50) 'FirstName',
[SurName] VARCHAR(50) 'SurName',
[County] VARCHAR(100) 'County',
[PostalCode] VARCHAR(100) 'PostalCode',
[Retired] VARCHAR(1) 'Retired',
[Edit] INT 'Edit')[CAN]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
IF(@Edit = 0)
BEGIN
IF (SELECT TOP 1 1
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code) IS NULL
BEGIN
INSERT
INTO [dbo].[CaseAssociatesNames]
([CODE],
[TYPE],
[NAME],
[SALUTATION],
[TITLE],
[COMPANY],
[ADDRESS],
[PHONENO],
[FAXNO],
[HOME],
[MOBILENO],
[EMAIL],
[DXREF],
[FORENAME],
[SURNAME],
[County],
[PostalCode],
[Retired])
VALUES(@Code,
ISNULL(@Type, ''),
@Fullname,
@Salutation,
@JobTitle,
@Company,
@Address,
@PhoneNo,
@FaxNo,
@Home,
@MobileNo,
@Email,
@DXRel,
@FirstName,
@SurName,
@County,
@PostalCode,
@Retired)
INSERT
INTO [dbo].[CaseAssoicatesTypes]
([NAMECODE],
[TYPECODE],
[SEARCHCODE],
[Retired])
SELECT [NEW].[NAMECODE],
[NEW].[TYPECODE],
[NEW].[SEARCHCODE],
[NEW].[RETIRED]
FROM (SELECT @Code AS [NAMECODE],
@Type AS [TYPECODE],
'' AS [SEARCHCODE],
@Retired AS [RETIRED]) [NEW]
LEFT OUTER JOIN [dbo].[CaseAssoicatesTypes] [CAT]
ON [CAT].[NAMECODE] = [NEW].[NAMECODE]
AND [CAT].[TYPECODE] = [NEW].[TYPECODE]
WHERE [CAT].[NAMECODE] IS NULL
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
END
ELSE
BEGIN
UPDATE [CAT]
SET [CAT].[Retired] = @Retired
FROM [dbo].[CaseAssoicatesTypes] [CAT]
WHERE [CAT].[NAMECODE] = @Code --AND TYPECODE = @Type
UPDATE [CC]
SET [CC].[Retired] = @Retired
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[NAMECODE] = @Code
UPDATE [CAN]
SET [CAN].[CODE] = @Code,
[CAN].[TYPE] = ISNULL(@Type,''),
[CAN].[NAME] = @Fullname,
[CAN].[SALUTATION] = @Salutation,
[CAN].[TITLE] = @JobTitle,
[CAN].[COMPANY] = @Company,
[CAN].[ADDRESS] = @Address,
[CAN].[PHONENO] = @PhoneNo,
[CAN].[FAXNO] = @FaxNo,
[CAN].[HOME] = @Home,
[CAN].[MOBILENO] = @MobileNo,
[CAN].[EMAIL] = @Email,
[CAN].[DXREF] = @DXRel,
[CAN].[FORENAME] = @FirstName,
[CAN].[SURNAME] = @SurName,
[CAN].[County] = @County,
[CAN].[PostalCode] = @PostalCode,
[CAN].[Retired] = @Retired
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code
SET @Result = 2
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CaseAssociateLoadMainGrid'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CaseAssociateLoadMainGrid]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CaseAssociateLoadMainGrid]
(@CaseCode VARCHAR(20),
@Retired VARCHAR(1) = 'N',
@SearchText VARCHAR(4000) = '',
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL
)
AS
/*******************************************************************************************************
* This procedure is used load the Case Associate Main Grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_CaseAssociateLoadMainGrid] *
* Copied from : [dbo].[ky_NETCaseAssociateLoadMainGrid] *
* *
* Modification History : *
* 2019-07-11 Vinodhan K Created *
* 2019-07-11 Vinodhan K Searching, Sorting, Pagination added *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FoundTable
FROM(
SELECT CCN.[CaseCode],
RTRIM(CCN.[CONTYPE]) AS [ConType],
CCN.[ConNum],
CCN.[NAMECODE] AS [ConNameCode],
CCN.[SOLCODE] AS [SolCode],
CCN.[SOLREF] AS [SolRef],
CCN.[INSCODE] AS [InsCode],
CCN.[ASSIGNEDCONTACT] AS [AssignedContact],
CAC.[NAMECODE] AS [AssociateNameCode],
CAC.[KEYID] AS [KeyId],
CAC.[NAME] AS [ConName],
CAC.[PHONE] AS [Phone],
CAC.[EMAIL] AS [ConEmail],
AST.[CODE] AS [Code],
AST.[DESCRIPTION] AS [Description],
CAN.[CODE] AS [ConCode],
CAN.[TYPE] AS [Type],
CAN.[NAME] AS [AssociateName],
CAN.[COMPANY] AS [Company],
CAN.[ADDRESS] AS [Address],
CAN.[PHONENO] AS [PhoneNo],
CAN.[MOBILENO] AS [MobileNo],
CAN.[EMAIL] AS [AssociateEmail],
CAN.[SEARCH] AS [Search],
CAN.[CONTACTNO] AS [ContactNo],
CAN.[SALUTATION] AS [Salutation],
CCN.[CONNUM] AS [Seq],
CASE WHEN RTRIM(ISNULL(CAN.[COMPANY],'')) <> ''
THEN RTRIM(CAN.[Name]) + ' ('+ RTRIM(CAN.[COMPANY]) +')'
ELSE RTRIM(CAN.[Name]) END AS [NameCompany],
CASE WHEN (RTRIM(ISNULL(CCN.[ForCopy],'0')) = '1' OR RTRIM(ISNULL(CCN.[ForCopy],'0')) = 'Y' )
THEN 'True'
ELSE 'False' END AS [ForCopy],
CAC.[NAME] AS [AssignedContactName],
CAC.[PHONE] AS [AssignedContactPhone],
ISNULL(CCN.[IsAssociateOtherSide],'False') AS [IsAssociateOtherSide],
ISNULL(CCN.Retired,'N') AS [Retired]
FROM [dbo].[CaseContacts] CCN
LEFT OUTER JOIN [dbo].[CaseAssociatesContacts] CAC
ON CAC.[KEYID] = CCN.[ASSIGNEDCONTACT]
LEFT OUTER JOIN [dbo].[AssociateTypes] AST
ON AST.[CODE] = CCN.[CONTYPE]
LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CAN
ON CAN.[CODE] = CCN.[NAMECODE]
WHERE UPPER(CCN.[CASECODE]) = UPPER(@CaseCode)
AND LEN(ISNULL(CCN.[NAMECODE],'')) >0
AND CCN.[NAMECODE] <> 'N/A'
AND LEN(ISNULL(CAN.[NAME],''))>0
AND CAN.[NAME] <> 'N/A'
AND ( @RETIRED = 'Y'
OR ISNULL(CCN.Retired, 'N') <> 'Y')
AND
(
CCN.[CaseCode] LIKE '%' + @SearchText + '%'
OR
CCN.[ConType] LIKE '%' + @SearchText + '%'
OR
CAN.[NAME] LIKE '%' + @SearchText + '%'
OR
CAN.[ADDRESS] LIKE '%' + @SearchText + '%'
OR
CAN.[PHONENO] LIKE '%' + @SearchText + '%'
OR
CCN.[SOLREF] LIKE '%' + @SearchText + '%'
OR
CAN.[EMAIL] LIKE '%' + @SearchText + '%'
OR
CAN.[MOBILENO] LIKE '%' + @SearchText + '%'
OR
CAC.[NAME] LIKE '%' + @SearchText + '%'
OR
CAC.[PHONE] LIKE '%' + @SearchText + '%'
OR
ISNULL(CCN.Retired,'N') LIKE '%' + @SearchText + '%'
)
) AS FoundTable
SELECT
*
FROM
#FoundTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'CaseCode' THEN [CaseCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'CaseCode' THEN [CaseCode]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ConType' THEN [ConType]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ConType' THEN [ConType]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'AssociateName' THEN [AssociateName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'AssociateName' THEN [AssociateName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Address' THEN [Address]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Address' THEN [Address]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'PhoneNo' THEN [PhoneNo]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'PhoneNo' THEN [PhoneNo]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'SolRef' THEN [SolRef]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'SolRef' THEN [SolRef]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'AssociateEmail' THEN [AssociateEmail]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'AssociateEmail' THEN [AssociateEmail]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'MobileNo' THEN [MobileNo]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'MobileNo' THEN [MobileNo]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'AssignedContactName' THEN [AssignedContactName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'AssignedContactName' THEN [AssignedContactName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'AssignedContactPhone' THEN [AssignedContactPhone]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'AssignedContactPhone' THEN [AssignedContactPhone]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Retired' THEN [Retired]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Retired' THEN [Retired]
END
END DESC
SELECT
COUNT([Row_Number]) AS TotalRecords
FROM
#FoundTable
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CaseBalances'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CaseBalances]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CaseBalances]
(@CaseCode VARCHAR(20))
AS
/**********************************************************************************************************************
* Stored Procedure Name : KAAS_CaseBalances
* Copied From : ky_NETSPCaseBalances
*
* Description: Get the Case Balances - Use this instead of ky_NETCaseSummaryPageLoad in cases where only the balances
* are required, e.g. on Bill or Cheque requests.
*
* Modification History
* 2018-08-10 Pino Carafa Created
* 2019-08-06 Vinodhan Created KAAS_CaseBalances
*
**********************************************************************************************************************/
BEGIN
DECLARE @NCOMMAND nvarchar(MAX)
DECLARE @IsSAM4 bit
SET @IsSAM4 = [dbo].[ISSAM4]()
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)
IF @IsSAM4 = 1
BEGIN
SET @NCOMMAND = N'
SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([TRN].[DebtorsValue], 0)), 0)),
@DebtBalDate = MAX(CASE WHEN ISNULL([TRN].[DebtorsValue], 0) = 0 THEN NULL ELSE [TRN].[TransDate] END),
@OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([TRN].[OutlayValue], 0)), 0)),
@OutlayBalDate = MAX(CASE WHEN ISNULL([TRN].[OutlayValue], 0) = 0 THEN NULL ELSE [TRN].[TransDate] END),
@ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([TRN].[ClientCurrent], 0)), 0)),
@ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL([TRN].[ClientDeposit], 0)), 0))
FROM [dbo].[Transactions] [TRN]
WHERE [TRN].[MatterCode] = @CaseCode
AND [TRN].[Posted] = ''Y''
AND [TRN].[RecType] <> ''V''
AND [TRN].[CorrectionInd] = ''L'''
EXECUTE sp_executesql @NCOMMAND,
N'@CaseCode VARCHAR(20),
@DebtBal DECIMAL(19, 2) OUTPUT,
@DebtBalDate DATETIME OUTPUT,
@OutlayBal DECIMAL(19, 2) OUTPUT,
@OutlayBalDate DATETIME OUTPUT,
@ClientCurrent DECIMAL(19, 2) OUTPUT,
@ClientDeposit DECIMAL(19, 2) OUTPUT',
@CaseCode = @CaseCode,
@DebtBal = @DebtBal OUTPUT,
@DebtBalDate = @DebtBalDate OUTPUT,
@OutlayBal = @OutlayBal OUTPUT,
@OutlayBalDate = @OutlayBalDate OUTPUT,
@ClientCurrent = @ClientCurrent OUTPUT,
@ClientDeposit = @ClientDeposit OUTPUT
END
SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code],
CONVERT(DECIMAL(19, 2), CASE WHEN @DebtBal IS NOT NULL
THEN @DebtBal
ELSE ISNULL(MAT.[DebtBal], 0) END) AS [DebtBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @OutlayBal IS NOT NULL
THEN @OutlayBal
ELSE ISNULL(MAT.[OutlayBal], 0) END) AS [OutlayBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent IS NOT NULL
THEN ISNULL(@ClientCurrent, 0) + ISNULL(@ClientDeposit, 0)
WHEN @ClientDeposit IS NOT NULL
THEN ISNULL(@ClientCurrent, 0) + ISNULL(@ClientDeposit, 0)
ELSE ISNULL(MAT.[ClientBal], 0) END) AS [ClientBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent IS NOT NULL
THEN @ClientCurrent
ELSE ISNULL(MAT.[ClientCurBal], 0) END) AS [ClientCurBal]
FROM dbo.[matters] MAT
WHERE MAT.[Code] = @CaseCode
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CASEDIARYFetchActionTypes'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CASEDIARYFetchActionTypes]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CASEDIARYFetchActionTypes]
(@LoginHandlerCode VARCHAR(10),
@MatterCode VARCHAR(20) = '')
AS
/*******************************************************************************************************
* This procedure is used to FETCH Action Type . *
* *
* Stored Procedure Name : [dbo].[KAAS_CASEDIARYFetchActionTypes] *
* Copied from : [dbo].[ky_NETCASEDIARYFetchActionTypes] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(10)
SET @Code = (SELECT RTRIM(ISNULL([CSM].[CSWKTCODE], '')) AS [CsWktCode]
FROM [dbo].[CaseMaster] [CSM]
WHERE [CSM].[CSCODE] = @MatterCode)
SELECT ISNULL(RTRIM([TMP].[WKCODE]),'') AS [Code],
RTRIM(ISNULL([TMP].[WKDESC], '')) AS [Actions]
FROM [dbo].[Templates] [TMP]
WHERE ( ISNULL([TMP].[Dept], '') = ''
OR [TMP].[Dept] = (SELECT [HAN].[Dept]
FROM [dbo].[Handlers] [HAN]
WHERE [HAN].[CODE] = @LoginHandlerCode))
AND ( ISNULL([TMP].[Retired], 'N') <> 'Y'
OR [TMP].[WKCODE] = @Code)
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CASEDIARYFetchActionWorkTypebyActionCode'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CASEDIARYFetchActionWorkTypebyActionCode]
END
GO
CREATE PROCEDURE
[KAAS_CASEDIARYFetchActionWorkTypebyActionCode]
(@ActionCode VARCHAR(5))
AS
/*******************************************************************************************************
* This procedure is used to FETCH Work Type by Action code. *
* *
* Stored Procedure Name : [dbo].[KAAS_CASEDIARYFetchActionWorkTypebyActionCode] *
* Copied from : [dbo].[ky_NETCASEDIARYFetchActionWorkTypebyActionCode] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
--Case type action list
SELECT T.[WORKTYPE],
T.[ACTIONCODE],
T.[SEQ],
T.[TEXT1] AS [DESCRIPTION],
T.[WKTCODE],
T.[ACTIONCATEGORY],
T.[STATUS],
T.[MILESTONETYPE],
T.[CASECODE],
T.[DATE],
T.[PROCESSTYPE],
T.[FNCODE],
T.[TEAMCODE],
T.[DYSTARTTIME],
T.[ACTIONID],
T.[ORGINALACTIONID],
T.[PRIORITY],
T.[HIGHLIGHTED],
T.[ATTACHMENTS],
T.[PROCESSSTATE],
T.[WORKPROCESS],
T.[BILLABLE],
T.[EMALADDRESS],
T.[ADDRESSTO],
T.[EMAIL],
T.[SUBJECT],
T.[DELEGATIONSTATUS],
T.[DRAFTBILLNO],
T.[DDStatus],
T.[DStatus],
T.[AlternativeRow],
REPLACE( ( 'Double click the select action to process the following**Action Code: '
+ ISNULL(T.[ACTIONCODE],'')
+ '**'
+ ISNULL(T.[TEXT1],'')
+ '****'
+ 'Associated document to generate:'
+ '**'
+ ISNULL((SELECT STUFF((SELECT '**' + RTRIM(ISNULL(TDTT.[NAME],''))
FROM [dbo].[TemplateActionDcouments] TADTT
INNER JOIN [dbo].[TemplateDocuments] TDTT
ON TADTT.[DOCUMENT] = TDTT.[CODE]
WHERE TADTT.[ACTION] = T.[ACTIONCODE]
FOR XML PATH('')), 1, 2, '')), 'Nil')
+ '****'
+ 'Associated action to process:**')
+ ISNULL((SELECT STUFF((SELECT '**' + Rtrim(Isnull(TATT.[DESC],''))
FROM [dbo].[TemplateActions] TATT
INNER JOIN [dbo].[TemplateNextActions] TNATT
ON TNATT.[NEXTACTION] = TATT.[ACTIONCODE]
WHERE TNATT.[ACTION] = T.[ACTIONCODE]
FOR XML PATH('')), 1, 2, '')), 'Nil')
,'**'
,CHAR(13)) AS [ToolTips],
[Flag]
FROM (SELECT AWT.[WORKTYPE],
AWT.[ACTIONCODE],
AWT.[SEQ],
TAC.[DESC] AS [TEXT1],
TAC.[WKTCODE],
TAC.[ACTIONCATEGORY],
TAC.[STATUS],
TAC.[MILESTONETYPE],
'' AS [CASECODE],
NULL AS [DATE],
TAC.[PROCESSTYPE],
NULL AS [FNCODE],
NULL AS [TEAMCODE],
NULL AS [DYSTARTTIME],
0 AS [ACTIONID],
NULL AS [ORGINALACTIONID],
TAC.[PRIORITY],
TAC.[HIGHLIGHTED],
NULL AS [ATTACHMENTS],
NULL AS [PROCESSSTATE],
0 AS [WORKPROCESS],
NULL AS [BILLABLE],
NULL AS [EMALADDRESS],
NULL AS [ADDRESSTO],
NULL AS [EMAIL],
NULL AS [SUBJECT],
0 AS [DELEGATIONSTATUS],
0 AS [DRAFTBILLNO],
0 AS [DDStatus],
0 AS [DStatus],
ROW_NUMBER()
OVER(ORDER BY AWT.[WORKTYPE],
AWT.[SEQ]) % 2 AS AlternativeRow,
ISNULL(TAC.[flag], 0) AS [Flag]
FROM dbo.[ActionWorkTypes] AWT
INNER JOIN dbo.[TemplateActions] TAC
ON AWT.[ACTIONCODE] = TAC.[ACTIONCODE]
WHERE AWT.[WORKTYPE] = @ActionCode ) AS T
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CASEDIARYFetchAttachments',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_CASEDIARYFetchAttachments]
GO
CREATE PROCEDURE
[dbo].[KAAS_CASEDIARYFetchAttachments]
(@DiaryId INT)
AS
/*******************************************************************************************************
* Fetch Attachment list by diary number *
* *
* Stored Procedure Name : [dbo].[KAAS_CASEDIARYFetchAttachments] *
* Copied from : [dbo].[ky_NETCASEDIARYFetchAttachments] *
* *
* Modification History : *
* 2019-04-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Handler VARCHAR(10)
SET @Handler = RTRIM(ISNULL(@Handler, 'ADM'))
INSERT
INTO [dbo].[DiaryAttachmentAccess]
([TrackReference],
[Handler],
[Comment])
SELECT [DAT].[TrackReference],
@Handler,
'Listed for Diary'
FROM [dbo].[DiaryAttachments] [DAT]
WHERE [DAT].[DiaryID] = @DiaryId
--Attachments list
SELECT [DAT].[DiaryID] AS [DIARYID],
[DAT].[TrackReference] AS [TRACKREFERENCE],
RTRIM(ISNULL([DAT].[CASECODE], '')) AS [CASECODE],
RTRIM(ISNULL([DAT].[NAME], '')) AS [NAME],
RTRIM(ISNULL([DAT].[DOCUMENT], '')) AS [DOCUMENT],
CASE WHEN [UNC].[UNC] IS NULL
THEN RTRIM(ISNULL([DAT].[FILEPATH], ''))
ELSE [UNC].[UNC]
+ SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH],'')),3,
LEN(RTRIM(ISNULL([DAT].[FILEPATH],'')))- 2)
END
AS [FILEPATH],
RTRIM(ISNULL([DAT].[TYPE], '')) AS [TYPE],
RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) AS [CLASSDESCRIPTION],
[DAT].[DATEENTERED] AS [DATEENTERED],
RTRIM(ISNULL([DAT].[SYSTEM], 'N')) AS [SYSTEM],
RTRIM(ISNULL([DAT].[DOCCLASS], '')) AS [DOCCLASS],
[DV].[CurrentVersion] AS [CurrentVersion],
RTRIM(ISNULL(DX.[IMDocID], '')) AS [IMDocID],
RTRIM(ISNULL([DAT].[ENTEREDBY], '')) AS [ENTEREDBY],
RTRIM(ISNULL([DAT].[LASTACCESSBY], '')) AS [LASTACCESSBY],
RTRIM(ISNULL([DAT].[DICTATIONFILE], '')) AS [DICTATIONFILE],
RTRIM(ISNULL([DAT].[SOURCE], '')) AS [Source],
[MAT].uniqueid AS [UniqueId]
FROM [dbo].[DiaryAttachments] [DAT]
CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]),
0)
+ 1 AS [CurrentVersion]
FROM [dbo].[DiaryAttachmentVersioning] [DAV]
WHERE [DAV].[TrackReference] = [DAT].[TRACKREFERENCE]) [DV]
LEFT OUTER JOIN [dbo].[DocumentClasses] [DCL]
ON [DCL].[CLASSCODE] = [DAT].[DOCCLASS]
LEFT OUTER JOIN [dbo].[UNCAlias] [UNC]
ON SUBSTRING([DAT].[FilePath], 2, 1) = ':'
AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1)
LEFT OUTER JOIN [dbo].[DAIMXRef] [DX]
ON [DX].[TrackReference] = [DAT].[TrackReference]
INNER JOIN [dbo].[matters] [MAT]
ON [DAT].[CASECODE] = [MAT].[Code]
WHERE [DAT].[DiaryID] = @DiaryId
ORDER BY [DAT].[TrackReference] DESC
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CaseSummaryPageLoad',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_CaseSummaryPageLoad]
GO
CREATE PROCEDURE
[dbo].[KAAS_CaseSummaryPageLoad]
(@CaseCode VARCHAR(20))
AS
/*******************************************************************************************************
* To get all detail about the matter to load it on to the grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_CaseSummaryPageLoad] *
* Copied from : [dbo].[ky_NETCaseSummaryPageLoad] *
* *
* Modification History : *
* 2019-04-16 Vinodhan K Created *
* 2019-05-29 John Ginnane KEYD-5916 - Changed "Last Action" to be the last completed action *
*******************************************************************************************************/
BEGIN
DECLARE @NCOMMAND nvarchar(MAX)
SET NOCOUNT ON
DECLARE @DraftBillValue DECIMAL(18, 2)
DECLARE @IsSAM4 bit
SET @IsSAM4 = [dbo].[ISSAM4]()
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0)
FROM [dbo].[BillHeader] HED
INNER JOIN [dbo].[BillDetails] BD
ON BD.[DRAFTNO] = HED.[DRAFTNO]
WHERE HED.[MATTER] = @CaseCode
AND HED.[BILLNO] = 0'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0)
FROM [dbo].[BillHead] HED
INNER JOIN [dbo].[BillDetail] BD
ON BD.[BillID] = HED.[BillingID]
WHERE HED.[MatterCode] = @CaseCode
AND HED.[BillStatus] <> ''Approved''
AND ISNULL(HED.[ProForma], '''') = ''Y'''
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @CaseCode = @CaseCode, @DraftBillValue=@DraftBillValue OUTPUT
DECLARE @Section68 VARCHAR(10)
DECLARE @IsApproved VARCHAR(10)
DECLARE @TimeBal INT
DECLARE @ChargeBal DECIMAL(19, 2)
DECLARE @TotalCharge Decimal(19, 2)
DECLARE @TotalTime INT
--Matter values that are re-used elsewhere in this procedure.
SELECT @Section68 = ISNULL(MAT.[Section68],''),
@IsApproved = ISNULL(CON.[Approved],'')
FROM [dbo].[matters] MAT
LEFT OUTER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
WHERE MAT.[Code] = @CaseCode
DECLARE @LDIADATE DATETIME
DECLARE @LDIAACTIONTYPE VARCHAR(1)
DECLARE @LDIATEXT1 VARCHAR(MAX)
DECLARE @LDIAFNCODE VARCHAR(10)
DECLARE @LDIAFNNAME VARCHAR(50)
SELECT TOP 1
@LDIADATE = LDIA.[DATE],
@LDIAACTIONTYPE = LDIA.[ACTIONTYPE],
@LDIATEXT1 = LDIA.[TEXT1],
@LDIAFNCODE = LDIA.[FNCODE],
@LDIAFNNAME = [FEC].[Name]
FROM [dbo].[diary] LDIA
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON LDIA.FNCODE = [FEC].[CODE]
WHERE LDIA.[CASECODE] = @CaseCode
AND LDIA.[STATUS] = 1
ORDER BY LDIA.[DATE] DESC
DECLARE @MDIADATE DATETIME
DECLARE @MDIAACTIONTYPE VARCHAR(1)
DECLARE @MDIATEXT1 VARCHAR(MAX)
DECLARE @MDIAFNCODE VARCHAR(10)
DECLARE @MDIAFNNAME VARCHAR(50)
SELECT TOP 1
@MDIADATE= MDIA.[DATE],
@MDIAACTIONTYPE = MDIA.[ACTIONTYPE],
@MDIATEXT1 = MDIA.[TEXT1],
@MDIAFNCODE = MDIA.[FNCODE],
@MDIAFNNAME = [FEC].[Name]
FROM [dbo].[diary] MDIA
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON MDIA.FNCODE = [FEC].[CODE]
WHERE MDIA.[CASECODE] = @CaseCode
AND MDIA.[HIGHLIGHTED] = 'Y'
ORDER BY MDIA.[DATE] DESC
DECLARE @NDIADATE DATETIME
DECLARE @NDIAACTIONTYPE VARCHAR(1)
DECLARE @NDIATEXT1 VARCHAR(MAX)
DECLARE @NDIAFNCODE VARCHAR(10)
DECLARE @NDIAFNNAME VARCHAR(50)
SELECT TOP 1
@NDIADATE = NDIA.[DATE],
@NDIAACTIONTYPE = NDIA.[ACTIONTYPE],
@NDIATEXT1 = NDIA.[TEXT1],
@NDIAFNCODE = NDIA.[FNCODE],
@NDIAFNNAME = [FEC].[Name]
FROM dbo.[diary] NDIA
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON NDIA.FNCODE = [FEC].[CODE]
WHERE NDIA.[CASECODE] = @CaseCode
AND NDIA.[STATUS] = 0
ORDER BY NDIA.[DATE] ASC
DECLARE @TIEDATE DATETIME
--Pino 2015-05-27 Start
--SELECT @TIEDATE = (MAX(TIE.[DATE]))
-- FROM [dbo].[TimeEntry] TIE
-- WHERE TIE.[Matter] = @CaseCode
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN DLG.[DATE] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE DLG.[DATE] END)
FROM [dbo].[DebtorsLedger] DLG
WHERE DLG.[MATTER] = @CaseCode'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN TRN.[TransDate] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE TRN.[TransDate] END)
FROM [dbo].[Transactions] TRN
WHERE TRN.[Posted] = ''Y''
AND TRN.[MatterCode] = @CaseCode
AND TRN.[DebtorsValue] <> 0
AND TRN.[CorrectionInd] = ''L''
AND ( ( TRN.[XnType] = ''I''
AND TRN.[RecType] = ''H'')
OR ( TRN.[XnType] = ''J''
AND TRN.[RecType] = ''D''))'
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @CaseCode = @CaseCode, @TIEDATE = @TIEDATE OUTPUT
--Pino 2015-05-27 End
DECLARE @LastTimeEntryDate DATETIME
DECLARE @LastTimeEntryTime INT
DECLARE @LastTimeEntryRate DECIMAL(10, 2)
DECLARE @LastTimeEntryCharge DECIMAL(10, 2)
DECLARE @LastTimeEntryTask VARCHAR(6)
DECLARE @LastTimeEntryComment VARCHAR(1000)
DECLARE @LastTimeEntryFE VARCHAR(10)
DECLARE @LastTimeEntryFEName VARCHAR(50)
DECLARE @TimeEntryTotalCharge DECIMAL(19, 2)
DECLARE @TimeEntryTotalTime INT
SELECT TOP (1)
@LastTimeEntryDate = TIE.[DATE],
@LastTimeEntryTime = TIE.[Time],
@LastTimeEntryRate = TIE.[Rate],
@LastTimeEntryCharge = TIE.[Charge],
@LastTimeEntryTask = TIE.[Task],
@LastTimeEntryComment = TIE.[Comment],
@LastTimeEntryFE = TIE.[FeeEarn],
@LastTimeEntryFEName = [FEC].[Name]
FROM [dbo].[TimeEntry] TIE
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON [TIE].[FeeEarn] = [FEC].[CODE]
WHERE TIE.[Matter] = @CaseCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
ORDER BY TIE.[Date] DESC,
TIE.[Time] DESC
SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0)
SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0)
-- Please see also: KAAS_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_PMatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_TLFetchTimeEntry. If you change any of these calculations,
-- ensure the ones in there are changed as well.
SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0),
@TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0),
@TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Charge], 0) END), 0),
@ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 1
THEN ISNULL(TIE.[Charge], 0)
ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0),
@TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN CASE WHEN TIE.[Charge] = 0
THEN 0
ELSE CONVERT(INT,
FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME])
* ( (TIE.[Charge] - TIE.[BilledAmount])
/
TIE.[Charge]))) END
ELSE ISNULL(TIE.[Time], 0) END), 0),
@TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Time], 0) END), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[Matter] = @CaseCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
DECLARE @DebtBal DECIMAL(19, 2)
DECLARE @OutlayBal DECIMAL(19, 2)
DECLARE @DebtBalDate DATETIME
DECLARE @OutlayBalDate DATETIME
DECLARE @ClientCurrent DECIMAL(19, 2)
DECLARE @ClientDeposit DECIMAL(19, 2)
-- Please see also: KAAS_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_TLFetchTimeEntry. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- To ensure SAM3 will retrieve these from [dbo].[matters]
SET @DebtBal = 0
SET @OutlayBal = 0
SET @ClientCurrent = 0
SET @ClientDeposit = 0
IF @IsSAM4 = 1
BEGIN
SET @NCOMMAND = N'
SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)),
@DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)),
@OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)),
@ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0))
FROM [dbo].[Transactions] TRN
WHERE TRN.[MatterCode] = @CaseCode
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND TRN.[CorrectionInd] = ''L'''
EXECUTE sp_executesql @NCOMMAND,
N'@CaseCode VARCHAR(20),
@DebtBal DECIMAL(19, 2) OUTPUT,
@DebtBalDate DATETIME OUTPUT,
@OutlayBal DECIMAL(19, 2) OUTPUT,
@OutlayBalDate DATETIME OUTPUT,
@ClientCurrent DECIMAL(19, 2) OUTPUT,
@ClientDeposit DECIMAL(19, 2) OUTPUT',
@CaseCode = @CaseCode,
@DebtBal = @DebtBal OUTPUT,
@DebtBalDate = @DebtBalDate OUTPUT,
@OutlayBal = @OutlayBal OUTPUT,
@OutlayBalDate = @OutlayBalDate OUTPUT,
@ClientCurrent = @ClientCurrent OUTPUT,
@ClientDeposit = @ClientDeposit OUTPUT
END
--Result Set 0
--Matter Data
SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description],
RTRIM(ISNULL(MAT.[ClientCode], '')) AS [ClientCode],
RTRIM(ISNULL(CLT.[CLNAME], '')) AS [CLName],
RTRIM(ISNULL(CLT.[CLADDR], '')) AS [CLAddr],
RTRIM(ISNULL(MAT.[FECode], '')) AS [FECode],
RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName],
RTRIM(ISNULL(MAT.[Dept], '')) AS [Dept],
RTRIM(ISNULL(DPT.[DESC], '')) AS [Desc],
RTRIM(MAT.WType) AS [WType],
RTRIM(ISNULL(WKT.[DESC], '')) AS [WorkType],
MAT.[Started] AS [Started],
MAT.[EstFee] AS [EstFee],
MAT.[ExpBillD] AS [ExpBillD],
CONVERT(DECIMAL(19, 2), CASE WHEN @DebtBal <> 0
THEN @DebtBal
ELSE ISNULL(MAT.[DebtBal], 0) END) AS [DebtBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @OutlayBal <> 0
THEN @OutlayBal
ELSE ISNULL(MAT.[OutlayBal], 0) END) AS [OutlayBal],
MAT.[OutlayBud] AS [OutlayBud],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0
THEN @ClientCurrent + @ClientDeposit
WHEN @ClientDeposit <> 0
THEN @ClientCurrent + @ClientDeposit
ELSE ISNULL(MAT.[ClientBal], 0) END) AS [ClientBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0
THEN @ClientCurrent
ELSE ISNULL(MAT.[ClientCurBal], 0) END) AS [ClientCurBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientDeposit <> 0
THEN @ClientDeposit
ELSE ISNULL(MAT.[ClientDepBal], 0) END) AS [ClientDepBal],
MAT.[StatuteLimits] AS [StatuteLimits],
CTL.USERPROMPT1 AS [User1Label],
RTRIM(ISNULL(MAT.[User1], '')) AS [User1Value],
CTL.USERPROMPT2 AS [User2Label],
RTRIM(ISNULL(MAT.[User2], '')) AS [User2Value],
CTL.USERPROMPT3 AS [User3Label],
RTRIM(ISNULL(MAT.[User3], '')) AS [User3Value],
CTL.YourRef AS [YourRefLabel],
RTRIM(ISNULL(MAT.[YourRef], '')) AS [YourRefValue],
MAT.[Value] AS [Value],
@TimeBal AS [TimeBal],
CONVERT(VARCHAR(20), (CONVERT(INT, @TimeBal) / 60))
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @TimeBal) % 60), 2, 2) AS [TimeBalHours],
@ChargeBal AS [ChargeBal],
CONVERT(VARCHAR(20), (CONVERT(INT, @TotalTime) / 60))
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @TotalTime) % 60), 2, 2) AS [TotalHours],
@TotalCharge AS [TotalCharge],
MAT.[FileColour] AS [FileColour],
RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef],
RTRIM(ISNULL(MAT.[Status], '')) AS [Status],
MAT.[StatuteLimits] AS [StatuteLims],
RTRIM(ISNULL(MAT.[Comment], '')) AS [Comment],
@DraftBillValue AS [DraftBillTotal],
@TIEDATE AS [LastBillDate],
@LDIADATE AS [LastActionDate],
RTRIM(ISNULL(@LDIAActionType, '')) AS [LastActionType],
RTRIM(ISNULL(@LDIATEXT1, '')) AS [LastActionText],
RTRIM(ISNULL(@LDIAFNCODE, '')) AS [LastActionFE],
RTRIM(ISNULL(@LDIAFNNAME, '')) AS [LastActionFEName],
@MDIADATE AS [LastMilestoneDate],
RTRIM(ISNULL(@MDIAActionType, '')) AS [LastMilestoneType],
RTRIM(ISNULL(@MDIATEXT1, '')) AS [LastMilestoneText],
RTRIM(ISNULL(@MDIAFNCODE, '')) AS [LastMilestoneFE],
RTRIM(ISNULL(@MDIAFNNAME, '')) AS [LastMilestoneFEName],
@NDIADATE AS [NextActionDate],
RTRIM(ISNULL(@NDIAActionType, '')) AS [NextActionType],
RTRIM(ISNULL(@NDIATEXT1, '')) AS [NextActionText],
RTRIM(ISNULL(@NDIAFNCODE, '')) AS [NextActionFE],
RTRIM(ISNULL(@NDIAFNNAME, '')) AS [NextActionFEName],
@LastTimeEntryDate AS [LastTimeEntryDate],
@LastTimeEntryTime AS [LastTimeEntryTime],
@LastTimeEntryRate AS [LastTimeEntryRate],
@LastTimeEntryCharge AS [LastTimeEntryCharge],
@LastTimeEntryTask AS [LastTimeEntrytask],
@LastTimeEntryComment AS [LastTimeEntryComment],
@LastTimeEntryFE AS [LastTimeEntryFE],
@LastTimeEntryFEName AS [LastTimeEntryFEName],
@TimeEntryTotalCharge AS [TimeEntryTotalCharge],
@TimeEntryTotalTime AS [TotalTime],
STC.[DESCRIPTION] AS [StatusCodeDescription],
CSM.[CSWKTCODE] AS [CSWKTCode],
TMP.[WKDESC] AS [WKDesc],
CASE WHEN MAT.[ShowCommentInAlarm] = 'Y'
THEN 'True'
ELSE 'False' END AS [ShowCommentInAlarm],
RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [FileColourDescription],
ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB],
@Section68 AS [Section68],
@IsApproved AS [IsApproved]
FROM dbo.[matters] MAT
LEFT JOIN dbo.[WorkTypes] WKT
ON WKT.[CODE] = MAT.[WType]
LEFT OUTER JOIN dbo.[Departments] DPT
ON DPT.[CODE] = MAT.[Dept]
LEFT OUTER JOIN dbo.[Handlers] HAN
ON HAN.[CODE] = MAT.[FECode]
LEFT OUTER JOIN dbo.[client] CLT
ON CLT.[CLCODE] = MAT.[ClientCode]
LEFT OUTER JOIN dbo.[StatusCodes] STC
ON STC.[CODE] = MAT.[Status]
LEFT OUTER JOIN dbo.[CaseMaster] CSM
LEFT OUTER JOIN dbo.[Templates] TMP
ON TMP.[WKCODE] = CSM.[CSWKTCODE]
ON CSM.[CSCODE] = MAT.[Code]
LEFT OUTER JOIN [dbo].[FileColours] FCL
ON FCL.[COLOURCODE] = MAT.[FileColour]
CROSS JOIN [CONTROL] [Ctl]
WHERE MAT.[Code] = @CaseCode
--Result Set 1
--WIP
SELECT TIES.[FeeEarn] AS [FeeEarn],
TIES.[NAME] AS [Name],
CONVERT(VARCHAR(20), TIES.[TOTALTIME] / 60)
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [FETotalHours],
TIES.[Charge] AS [FECharge],
TIES.[ChargeBal] AS [FEChargeBal],
CONVERT(VARCHAR(20), TIES.[WIPTOTALTIME] / 60)
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[WIPTOTALTIME] % 60)), 2, 2) AS [FEWIPHours]
FROM ( SELECT TIE.[FeeEarn] AS [FeeEarn],
HAN.[NAME] AS [NAME],
ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME],
SUM(CONVERT(DECIMAL(18, 2),ISNULL(TIE.[Charge],0))) AS [Charge],
SUM(CONVERT(DECIMAL(18, 2),
CASE WHEN @IsSAM4 = 1 AND TIE.[InvoiceNo] <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN ISNULL(TIE.[Charge],0)
- ISNULL(TIE.[BilledAmount],0)
ELSE ISNULL(TIE.[Charge],0)
END))
AS [ChargeBal],
CONVERT(INT, FLOOR(CONVERT(DECIMAL(18, 2), ISNULL(SUM(CASE WHEN @IsSAM4 = 1
AND [TIE].[InvoiceNo] <> 0
THEN 0
WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0
THEN 0
ELSE TIE.[TIME] END)
, 0))
*
CASE WHEN SUM(CONVERT(DECIMAL(18, 2),
CASE WHEN @IsSAM4 = 1 AND [TIE].[InvoiceNo] <> 0
THEN 0
WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0
THEN 0
ELSE TIE.[Charge] END)) = 0
THEN 0
ELSE SUM(CONVERT(DECIMAL(18, 2),
CASE WHEN @IsSAM4 = 1 AND TIE.[InvoiceNo] <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN ISNULL(TIE.[Charge], 0)
- ISNULL(TIE.[BilledAmount], 0)
ELSE ISNULL(TIE.[Charge],0)
END))
/
SUM(CONVERT(DECIMAL(18, 2),
CASE WHEN @IsSAM4 = 1
AND [TIE].[InvoiceNo] <> 0
THEN 0
WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0
THEN 0
ELSE TIE.[Charge] END)) END))
AS [WIPTOTALTIME]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[MATTER] = MAT.[Code]
INNER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = TIE.[FeeEarn]
WHERE TIE.[MATTER] = @CaseCode
AND TIE.[DATE] < GETDATE()
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
AND TIE.[REC_IRR] <> 'N'
GROUP BY TIE.[FEEEARN],
HAN.[NAME]) TIES
ORDER BY TIES.[ChargeBal] DESC,
TIES.[TOTALTIME] DESC
--Result Set 2
-- Critical dates
SELECT ISNULL(CONVERT(VARCHAR, DIA.[DATE], 106), '') AS [DiaryDate],
RTRIM(ISNULL(DIA.[FNCODE],'')) AS [Who],
RTRIM(ISNULL(DIA.[TEXT1],'')) AS [Description],
CASE RTRIM(ISNULL([Status], ''))
WHEN '1'
THEN 'True'
ELSE 'False' END AS [Status]
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONTYPE] = 'c'
AND DIA.[CASECODE] = @CaseCode
ORDER BY DIA.[date]
--Result Set 3
--Court Date Grid
SELECT ISNULL(CONVERT(VARCHAR, DIA.[DATE], 106), '') AS [Date],
DIA.[FNCODE] AS [FNCode],
DIA.[TEXT1] AS [CourtDate]
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONTYPE] = 'o'
AND DIA.[CASECODE] = @CaseCode
--Result Set 4
--Activity to Date
SELECT TIES.[Activity],
CASE WHEN TIES.[TOTALTIME] < 0
THEN '-'
ELSE '' END
+ CONVERT(VARCHAR(20), ABS(TIES.[TOTALTIME]) / 60)
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (ABS(TIES.[TOTALTIME]) % 60)), 2, 2) AS [ActivityToDateTime],
TIES.[Value] AS [ActivityToDateValue]
FROM ( SELECT TIE.[TASK] AS [Task],
CASE WHEN TSC.[DESC] IS NULL
THEN 'Task Code: ' + ISNULL(TIE.[TASK], '')
ELSE RTRIM(ISNULL(TSC.[DESC],'')) END AS [Activity],
ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME],
SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
LEFT OUTER JOIN [dbo].[TasksCodes] TSC
ON TSC.[CODE] = TIE.[Task]
ON TIE.[MATTER] = MAT.[Code]
WHERE TIE.[MATTER] = @CaseCode
AND TIE.[DATE] < GETDATE()
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
AND TIE.[REC_IRR] <> 'N'
AND TIE.[Task] <> 'WRI'
GROUP BY TIE.[TASK],
CASE WHEN TSC.[DESC] IS NULL
THEN 'Task Code: ' + ISNULL(TIE.[TASK], '')
ELSE RTRIM(ISNULL(TSC.[DESC],'')) END) TIES
ORDER BY TIES.[Value] DESC,
TIES.[TOTALTIME] DESC
--Result Set 5
--UNDERTAKINGS
SELECT UND.[DESCRIPTION] AS [Description],
UND.[VALUE] AS [Value],
UND.[WHO] AS [Who],
CASE [GIVENORRECEIVED]
WHEN 'G' THEN 'Given'
WHEN 'R' THEN 'Received'
ELSE '' END AS [GivenOrReceived]
FROM [dbo].[UNDERTAKINGS] UND
WHERE UND.[MATTER] = @CaseCode
--Result Set 6
--Total Time [Activity]
SELECT CONVERT(VARCHAR(20), TIES.[TOTALTIME] / 60)
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [ActivityTotalTime],
TIES.[Value] AS [ActivityTotalValue]
FROM ( SELECT ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME],
SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[MATTER] = MAT.[Code]
WHERE TIE.[MATTER] = @CaseCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C'))
AND TIE.[TASK] <> 'WRI') TIES
--Result Set 7
--Write off time
SELECT TIES.[WriteOffValue] As [WriteOffValue]
FROM ( SELECT SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [WriteOffValue]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[MATTER] = MAT.[Code]
WHERE TIE.[MATTER] = @CaseCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C'))
AND TIE.[Task] = 'WRI') TIES
--Result Set 8
--Date for Debtor Ledger
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT [dbo].[KAAS_FN_DateDiffVerbose](LDL.[LastDebtLedgerDate],
LDL.[TODAY]) AS [DebtLedgerOSVerbose],
CASE WHEN DATEDIFF(DAY, LDL.[LastDebtLedgerDate], LDL.[TODAY]) > 0
THEN DATEDIFF(DAY, LDL.[LastDebtLedgerDate], LDL.[TODAY])
ELSE 0 END AS [DebtLedgerOSDays]
FROM ( SELECT GetDate() AS [TODAY],
MAX(DTL.[DATE]) AS [LastDebtLedgerDate]
FROM [dbo].[DebtorsLedger] DTL
WHERE DTL.[MATTER] = @CaseCode) LDL'
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20)', @CaseCode = @CaseCode
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT [dbo].[KAAS_FN_DateDiffVerbose](LDL.[LastDebtLedgerDate],
LDL.[TODAY]) AS [DebtLedgerOSVerbose],
CASE WHEN DATEDIFF(DAY, LDL.[LastDebtLedgerDate], LDL.[TODAY]) > 0
THEN DATEDIFF(DAY, LDL.[LastDebtLedgerDate], LDL.[TODAY])
ELSE 0 END AS [DebtLedgerOSDays]
FROM ( SELECT GetDate() AS [TODAY],
@DebtBalDate AS [LastDebtLedgerDate]) LDL'
EXECUTE sp_executesql @NCOMMAND, N'@DebtBalDate DATETIME', @DebtBalDate = @DebtBalDate
END
--Result Set 9
--Date for Matter Ledger (Outstanding)
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT [dbo].[KAAS_FN_DateDiffVerbose](LDL.[LastMatLedgerDate],
LDL.[TODAY]) AS [MatLedgerOSVerbose],
CASE WHEN DATEDIFF(DAY, LDL.[LastMatLedgerDate], LDL.[TODAY]) > 0
THEN DATEDIFF(DAY, LDL.[LastMatLedgerDate], LDL.[TODAY])
ELSE 0 END AS [MatLedgerOSDays]
FROM ( SELECT GetDate() AS [TODAY],
MAX(MAL.[DATE]) AS [LastMatLedgerDate]
FROM [dbo].[MatterLedger] MAL
WHERE MAL.[MATTER] = @CaseCode
AND ISNULL(MAL.[VALUEO], 0) <> 0) LDL'
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20)', @CaseCode = @CaseCode
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT [dbo].[KAAS_FN_DateDiffVerbose](LDL.[LastMatLedgerDate],
LDL.[TODAY]) AS [MatLedgerOSVerbose],
CASE WHEN DATEDIFF(DAY, LDL.[LastMatLedgerDate], LDL.[TODAY]) > 0
THEN DATEDIFF(DAY, LDL.[LastMatLedgerDate], LDL.[TODAY])
ELSE 0 END AS [MatLedgerOSDays]
FROM ( SELECT GetDate() AS [TODAY],
@OutlayBalDate AS [LastMatLedgerDate]) LDL'
EXECUTE sp_executesql @NCOMMAND, N'@OutlayBalDate DATETIME', @OutlayBalDate = @OutlayBalDate
END
-- PLEASE NOTE THAT THE CALCULATION BELOW IS ALSO USED IN KAAS_TLFetchTimeEntry, so
-- please modify both procedures if this needs to be changed.
-- Result Set 10
-- The fees issued to date
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT ISNULL(SUM((CASE WHEN HED.[INVCR] = ''I''
THEN TRN.[VALUE]
ELSE TRN.[VALUE] * - 1 END)), 0) AS [FeesIssued]
FROM [dbo].[BatchH] HED
INNER JOIN [dbo].[BatchDetails] TRN
ON TRN.[BATCHNO] = HED.[BATCHNO]
WHERE HED.[MATTER] = @CaseCode
AND HED.[POSTED] = ''Y''
AND TRN.[TYPE] = ''I''
AND TRN.[OUTLAY] = ''F'''
END
ELSE
BEGIN
SET @NCOMMAND = N'
DECLARE @TotalFeesBilled DECIMAL(22, 2)
SELECT @TotalFeesBilled = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[TransactionsHeaders] HED
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
WHERE HED.[MatterCode] = @CaseCode
--values imported from Axxia
SELECT @TotalFeesBilled = @TotalFeesBilled + ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[Transactions] TRN
LEFT OUTER JOIN [dbo].[TransactionsHeaders] HED
ON HED.[BatchNo] = TRN.[BatchNo]
WHERE TRN.[MatterCode] = @CaseCode
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
AND HED.[BatchNo] IS NULL
SELECT @TotalFeesBilled AS [FeesIssued]'
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20)', @CaseCode = @CaseCode
-- Result Set 11
-- Current outstanding fees
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(DTL.[OSFees], 0)), 0)) AS [OSFees]
FROM [dbo].[DebtorsLedger] DTL
WHERE DTL.[matter] = @CaseCode'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[FeesOS], 0)), 0)) AS [OSFees]
FROM [dbo].[Transactions] TRN
WHERE TRN.[MatterCode] = @CaseCode
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND TRN.[CorrectionInd] = ''L'''
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20)', @CaseCode = @CaseCode
-- Result set 12
-- Print job tracker totals - KEYD-4348
DECLARE @DOCBILLED DECIMAL(19, 2)
IF [dbo].[ISSAM4]() = 1
BEGIN
SELECT @DOCBILLED = SUM(ISNULL(TRN.[NominalValue], 0)) * -1
FROM [dbo].[TransactionsHeaders] AS HED
INNER JOIN [dbo].[Transactions] AS TRN
ON HED.[BatchNo] = TRN.[BatchNo]
WHERE HED.[Posted] = 'Y'
AND HED.[XnType] = 'I'
AND TRN.[RecType] = 'D'
AND TRN.[LineType] = 'M'
AND TRN.[OutlayCode] = ISNULL((SELECT TOP 1 [KeyValue] FROM [dbo].[Settings] WHERE [KeyName] = 'PrintLedgerOutlayCode'), '')
AND TRN.[CorrectionInd] = 'L'
AND HED.[MatterCode] = @CaseCode
END
ELSE
BEGIN
SELECT @DOCBILLED = SUM(ISNULL(BAD.[VALUE], 0))
FROM [dbo].[BatchH] AS BAH
INNER JOIN [dbo].[BatchDetails] AS BAD
ON BAH.[BATCHNO] = BAD.[BATCHNO]
INNER JOIN [dbo].[control] AS CON
ON BAD.[CODE] = CON.[MISCOUTLAY]
WHERE BAH.[POSTED] = 'Y'
AND BAH.[TYPE]= 'I'
AND BAD.[OUTLAY] = 'F'
AND BAD.[OUTLAYCODE] = ISNULL((SELECT TOP 1 [KeyValue] FROM [dbo].[Settings] WHERE [KeyName] = 'PrintLedgerOutlayCode'), '')
AND BAH.[MATTER] = @CaseCode
END
SELECT ISNULL(SUM(ISNULL(PJT.[Cost], 0)), 0) AS [TotalDoc],
ISNULL(SUM(ISNULL(CASE WHEN ISNULL(PJT.[InvoiceNo], 0) <= 0 AND ISNULL(PJT.[Status], '') = 'Printed'
THEN ISNULL(PJT.[Cost], 0)
ELSE 0
END, 0)), 0)
AS [UnbilledDoc],
ISNULL(@DOCBILLED, 0) AS [BilledDoc],
ISNULL(SUM(ISNULL(CASE WHEN ISNULL(PJT.[Status], '') <> 'Printed'
THEN ISNULL(PJT.[Cost], 0)
ELSE 0
END, 0)), 0)
AS [WriteOffDoc]
FROM [dbo].[matters] AS MAT
LEFT OUTER JOIN [dbo].[PrintJobTracker] AS PJT
ON MAT.[Code] = PJT.[MatterCode]
WHERE MAT.[Code] = @CaseCode
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_ChangeApplytoAllProperty',N'P')IS NOT NULL
DROP PROCEDURE KAAS_ChangeApplytoAllProperty
GO
CREATE PROC KAAS_ChangeApplytoAllProperty
@ContactCode VARCHAR(20),
@Status BIT=0
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_ChangeApplytoAllProperty] *
* Copied from : [dbo].[Ky_NetChangeApplytoAllProperty] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
UPDATE
[ContactNETPrivileges]
SET
ApplyToNewMatters=@Status
WHERE
ContactCode=@ContactCode
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_ChangeContactPrivilegeGroup'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ChangeContactPrivilegeGroup]
END
GO
CREATE PROCEDURE
KAAS_ChangeContactPrivilegeGroup
(@ContactCode VARCHAR(10),
@GroupID INT,
@BitOnOrOff INT)
AS
/*******************************************************************************************************
* Sets or unsets whether a matter is part of a particular Privilege Group. *
* *
* Stored Procedure Name : [dbo].[KAAS_ChangeContactPrivilegeGroup] *
* Copied from : [dbo].[ky_NETChangeContactPrivilegeGroup] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @BitWiseID BIGINT
--DECLARE @ContactCode VARCHAR(20)
--SET @ContactCode = (SUBSTRING(@MatterCode,0,CHARINDEX('/',@MatterCode ,0)))
IF EXISTS (SELECT TOP 1 1 FROM [Contacts] WHERE [Code] = @ContactCode)
BEGIN --IF the matter EXISTS
SELECT @BitWiseID = SNG.[BitWiseID]
FROM [dbo].[SecurityNETGroups] SNG
WHERE SNG.[GroupID] = @GroupID
IF (NOT @BitWiseID IS NULL)
BEGIN --IF the security group EXISTS
-- Create Privileges IF the record doesn't exist yet
-- (i.e. matter was accessible to all users)
INSERT
INTO [dbo].[ContactNETPrivileges]
([ContactCode],
[Previleges])
SELECT NCNP.[ContactCode],
NCNP.[Privileges]
FROM (SELECT @ContactCode AS ContactCode,
CONVERT(BIGINT,0) AS [Privileges]) NCNP
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = NCNP.[ContactCode]
LEFT OUTER JOIN [dbo].[ContactNETPrivileges] OCNP
ON OCNP.[ContactCode] = NCNP.[ContactCode]
WHERE OCNP.[ContactCode] IS NULL
-- Set Privileges - Bit OR will set it AS always ON,
-- then we can simply subtract IF it's to be set off
UPDATE CNP
SET CNP.[Previleges] = ( ISNULL(CONVERT(BIGINT, CNP.Previleges),
CONVERT(BIGINT, 0))
| @BitWiseID)
- CASE WHEN @BitOnOrOff = 0
THEN @BitWiseID
ELSE 0 END
FROM [dbo].[ContactNETPrivileges] CNP
WHERE CNP.[ContactCode] = @ContactCode
-- If all privileges are unchecked, the matter is deemed to be accessible
-- to all, AND the MatterNetPrivileges record can be deleted.
DELETE CNP
FROM [dbo].[ContactNETPrivileges] CNP
WHERE CNP.[ContactCode] = @ContactCode
AND ISNULL(CONVERT(BIGINT, CNP.[Previleges]), CONVERT(BIGINT, 0)) = CONVERT(BIGINT, 0)
END --IF the security group EXISTS
--EXEC ky_NETSPChangeMatterPrivilegeGroup @MatterCode,@GroupID,@BitOnOrOff
END --IF the matter EXISTS
END
GO
IF OBJECT_ID(N'KAAS_ChangeMatterPublish',N'P')IS NOT NULL
DROP PROCEDURE KAAS_ChangeMatterPublish
GO
CREATE PROCEDURE KAAS_ChangeMatterPublish
(
@MatterCode VARCHAR(20),
@IsPublish BIT
)
AS
/*****************************************************************************************
* Procedure Name: KAAS_ChangeMatterPublish
* Description: This procedure is used to update publish field for matter
* Modification History:
* ---------------------------------------------------------------------------------------
* Date Modified by Description
* ---------------------------------------------------------------------------------------
* 2016-05-23 Arun Created
*****************************************************************************************/
BEGIN
UPDATE
Matters
SET
Publish =
(CASE
WHEN @IsPublish = 'True'
THEN 'P'
ELSE
'N'
END)
WHERE
Code = @MatterCode
END
GO
IF OBJECT_ID(N'KAAS_CheckClientCodeSize',N'P')IS NOT NULL
DROP PROCEDURE KAAS_CheckClientCodeSize
GO
CREATE PROCEDURE KAAS_CheckClientCodeSize
(@CLIENTCODE AS VARCHAR(10))
AS
/*******************************************************************************************************
* This procedure is used to addup extra space to the client code while performing new case and *
* move matter functionality. *
* *
* Stored Procedure Name : [dbo].[KAAS_CheckClientCodeSize] *
* Copied from : [dbo].[KY_NETCheckClientCodeSize] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @MaxClientCode INT
DECLARE @NEWCLIENTCODE VARCHAR(10)
SELECT @MaxClientCode = [SET].[KeyValue]
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'MaxClCode'
IF (@MaxClientCode IS NULL)
BEGIN
IF ([dbo].[ISSAM4]() = 0)
BEGIN
SET @MaxClientCode = 6
END
ELSE
BEGIN
SET @MaxClientCode = 8
END
END
SET @NEWCLIENTCODE = SUBSTRING(@CLIENTCODE + ' ', 1, @MaxClientCode)
SELECT ISNULL(@NEWCLIENTCODE ,'') AS NEWCLIENTCODE
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CheckExistingCases'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CheckExistingCases]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CheckExistingCases]
(@SENT VARCHAR(17),
@HASH VARCHAR(32),
@MATTER VARCHAR(20),
@SenderSMTPAddress VARCHAR(MAX),
@TrackReference INT = 0)
AS
/*******************************************************************************************************
* Checks whether an e-mail may already have been saved to case. *
* *
* Stored Procedure Name : [dbo].[KAAS_CheckExistingCases] *
* Copied from : [dbo].[ky_NETSPCheckExistingCases] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @cases TABLE
([id] INT IDENTITY(1, 1),
[MatterCode] VARCHAR(20),
[ClientCode] VARCHAR(20),
[MatterDescription] VARCHAR(500),
[ClientName] VARCHAR(500),
[ActionID] INT,
[Subject] VARCHAR(1000))
SET @SenderSMTPAddress = RTRIM(ISNULL(@SenderSMTPAddress, ''))
SET @MATTER = RTRIM(ISNULL(@MATTER, ''))
SET @HASH = RTRIM(ISNULL(@HASH, ''))
SET @TrackReference = ISNULL(@TrackReference, 0)
IF (@TrackReference <> 0)
BEGIN
INSERT
INTO @cases
([MatterCode],
[ClientCode],
[MatterDescription],
[ClientName],
[ActionID],
[Subject])
SELECT RTRIM(ISNULL(DIA.[CASECODE], '')) AS [MatterCode],
RTRIM(ISNULL(MAT.[ClientCode], '')) As [ClientCode],
RTRIM(ISNULL(MAT.[Description], '')) As [MatterDescription],
RTRIM(ISNULL(CON.[name], '')) As [ClientName],
ISNULL(DIA.[ActionID], 0) AS [ActionID],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), '')) As [Subject]
FROM [dbo].[MessageHashXRef] H
INNER JOIN [dbo].[DiaryAttachments] DAT
INNER JOIN [dbo].[diary] DIA
INNER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[contacts] CON
ON CON.[code] = MAT.[ClientCode]
ON MAT.[code] = DIA.[CASECODE]
ON DIA.[ACTIONID] = DAT.[DIARYID]
ON DAT.[TRACKREFERENCE] = H.[TrackReference]
WHERE H.[TrackReference] = @TrackReference
END
IF (@HASH <> '')
BEGIN
INSERT
INTO @cases
([MatterCode],
[ClientCode],
[MatterDescription],
[ClientName],
[ActionID],
[Subject])
SELECT RTRIM(ISNULL(DIA.[CASECODE], '')) AS [MatterCode],
RTRIM(ISNULL(MAT.[ClientCode], '')) As [ClientCode],
RTRIM(ISNULL(MAT.[Description], '')) As [MatterDescription],
RTRIM(ISNULL(CON.[name], '')) As [ClientName],
ISNULL(DIA.[ActionID], 0) AS [ActionID],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), '')) As [Subject]
FROM [dbo].[MessageHashXRef] H
INNER JOIN [dbo].[DiaryAttachments] DAT
INNER JOIN [dbo].[diary] DIA
INNER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[contacts] CON
ON CON.[code] = MAT.[ClientCode]
ON MAT.[code] = DIA.[CASECODE]
ON DIA.[ACTIONID] = DAT.[DIARYID]
ON DAT.[TRACKREFERENCE] = H.[TrackReference]
WHERE H.[Hash] = @Hash
AND ( ( H.[Sent] >= DATEADD(ss, -600, @SENT)
AND H.[Sent] <= DATEADD(ss, 600, @SENT))
OR ( ISNULL([DIA].[TxmDate], [H].[Sent]) >= DATEADD(ss, -600, @SENT)
AND ISNULL([DIA].[TxmDate], [H].[Sent]) <= DATEADD(ss, 600, @SENT))
OR ( ISNULL([DIA].[Date], [H].[Sent]) >= DATEADD(ss, -600, @SENT)
AND ISNULL([DIA].[Date], [H].[Sent]) <= DATEADD(ss, 600, @SENT)))
AND H.[TrackReference] <> @TrackReference
END
IF (@SenderSMTPAddress <> '')
BEGIN
IF (@MATTER <> '')
BEGIN
INSERT
INTO @cases
([MatterCode],
[ClientCode],
[MatterDescription],
[ClientName],
[ActionID],
[Subject])
SELECT RTRIM(ISNULL(MAT.[Code], '')) As [MatterCode],
RTRIM(ISNULL(MAT.[ClientCode], '')) As [ClientCode],
RTRIM(ISNULL(MAT.[Description], '')) As [MatterDescription],
RTRIM(ISNULL(CON.[name], '')) As [ClientName],
ISNULL(DIA.[ActionID], 0) AS [ActionID],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), '')) As [Subject]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[contacts] CON
ON CON.[code] = MAT.[ClientCode]
OUTER APPLY (SELECT TOP 1 DI2.[ActionID],
DI2.[Subject]
FROM [dbo].[diary] DI2
WHERE DI2.[CASECODE] = MAT.[CODE]
AND DI2.[TxmDate] >= DATEADD(ss, -120, @SENT)
AND DI2.[TxmDate] <= DATEADD(ss, 120, @SENT)
AND ( DI2.[EMAILADDRESS] LIKE '%<' + @SenderSMTPAddress + '>%'
OR DI2.[EMAILADDRESS] LIKE '%(' + @SenderSMTPAddress + ')%'
OR DI2.[EMAILADDRESS] LIKE '%' + @SenderSMTPAddress + ' <%>%'
OR DI2.[EMAILADDRESS] LIKE '%' + @SenderSMTPAddress + ' (%)%'
OR DI2.[EMAILADDRESS] = @SenderSMTPAddress
OR DI2.[EMAILADDRESS] LIKE [dbo].[ky_InterpretExchangeAddress](@SenderSMTPAddress))
AND DI2.[EMAIL] = 'Y') DIA
CROSS APPLY (SELECT COUNT(1) AS [TOTAL]
FROM @cases CAS
WHERE CAS.[MatterCode] = MAT.[Code]
AND CAS.[ActionID] = DIA.[ACTIONID]) ALI
WHERE MAT.[code] = @MATTER
AND ALI.[TOTAL] = 0
END
ELSE
BEGIN
IF (@HASH = '')
BEGIN
INSERT
INTO @cases
([MatterCode],
[ClientCode],
[MatterDescription],
[ClientName],
[ActionID],
[Subject])
SELECT RTRIM(ISNULL(MAT.[Code], '')) As [MatterCode],
RTRIM(ISNULL(MAT.[ClientCode], '')) As [ClientCode],
RTRIM(ISNULL(MAT.[Description], '')) As [MatterDescription],
RTRIM(ISNULL(CON.[name], '')) As [ClientName],
ISNULL(MAX(DIA.[ActionID]), 0) AS [ActionID],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), '')) As [Subject]
FROM [dbo].[diary] DIA
INNER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[contacts] CON
ON CON.[code] = MAT.[ClientCode]
ON MAT.[code] = DIA.[CASECODE]
CROSS APPLY (SELECT COUNT(1) AS [TOTAL]
FROM @cases CAS
WHERE CAS.[ActionID] = DIA.[ACTIONID]) ALI
WHERE DIA.[TxmDate] >= DATEADD(ss, -120, @SENT)
AND DIA.[TxmDate] <= DATEADD(ss, 120, @SENT)
AND ( DIA.[EMAILADDRESS] LIKE '%<' + @SenderSMTPAddress + '>%'
OR DIA.[EMAILADDRESS] LIKE '%(' + @SenderSMTPAddress + ')%'
OR DIA.[EMAILADDRESS] LIKE '%' + @SenderSMTPAddress + ' <%>%'
OR DIA.[EMAILADDRESS] LIKE '%' + @SenderSMTPAddress + ' (%)%'
OR DIA.[EMAILADDRESS] = @SenderSMTPAddress
OR DIA.[EMAILADDRESS] LIKE [dbo].[ky_InterpretExchangeAddress](@SenderSMTPAddress))
AND DIA.[EMAIL] = 'Y'
AND ALI.[TOTAL] = 0
GROUP BY RTRIM(ISNULL(MAT.[Description], '')),
RTRIM(ISNULL(MAT.[Code], '')),
RTRIM(ISNULL(MAT.[ClientCode], '')),
RTRIM(ISNULL(CON.[name], '')),
RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[Subject]), ''))
END
END
END
SELECT CS.[MatterCode],
CS.[ClientCode],
CS.[MatterDescription],
CS.[ClientName],
CS.[ActionID],
CS.[Subject]
FROM @cases CS
ORDER BY CS.[id]
END
GO
IF OBJECT_ID(N'KAAS_CheckMatterCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CheckMatterCode]
GO
CREATE PROCEDURE [dbo].[KAAS_CheckMatterCode]
(@ClientCode VARCHAR(10),
@MatterNumber VARCHAR(10),
@MatterLen VARCHAR(10))
AS
/*******************************************************************************************************
* This procedure is used to Check new matter is already exists or not. *
* *
* Stored Procedure Name : [dbo].[KAAS_CheckMatterCode] *
* Copied from : [dbo].[ky_NETCheckMatterCode] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @MaxLen INT
DECLARE @NewMatterNum VARCHAR(10)
DECLARE @NewMatter BIGINT
-- Get the maximum Matter Number length from the Settings table
SELECT @MaxLen = CONVERT(INT, [SET].[KeyValue])
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'MaxMatNum'
-- Default to 4 for SAM3 and 8 for SAM4 if value isn't in the Settings Table
IF (@MaxLen IS NULL)
BEGIN
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @MaxLen = 4
END
ELSE
BEGIN
SET @MaxLen = 8
END
END
-- If procedure is called to discover the maximum matter length, return it.
IF(@MatterLen = 'True')
BEGIN
SELECT @MaxLen AS [max_length]
END
-- Procedure is called to automatically calculate the next matter number
IF(@MatterLen <> 'True') AND (RTRIM(ISNULL(@MatterNumber, '')) = '')
BEGIN
-- Calculate the next matter number
SELECT @NewMatter = 1000000001 + ISNULL(MAX(CASE WHEN ISNUMERIC(MAT.[Matter]) = 0
THEN 0
ELSE CONVERT(INT, MAT.[Matter])
END), 0)
FROM [dbo].[matters] MAT
WHERE MAT.[ClientCode] = @ClientCode
SELECT @NewMatterNum = REVERSE(SUBSTRING(REVERSE(CONVERT(VARCHAR(10), @NewMatter)), 1, @MaxLen))
SELECT @NewMatterNum AS [Matter]
END
-- Procedure is called to check whether a previously generated number is still valid
IF(@MatterLen <> 'True') AND (RTRIM(ISNULL(@MatterNumber, '')) <> '')
BEGIN
IF(LEN(@MatterNumber) < @MaxLen)
BEGIN
-- Calculate the next matter number
SELECT @NewMatter = 1000000001 + (@MatterNumber-1)
SELECT @NewMatterNum = REVERSE(SUBSTRING(REVERSE(CONVERT(VARCHAR(10), @NewMatter)), 1, @MaxLen))
SELECT @MatterNumber = @NewMatterNum
END
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[matters] MAT
WHERE MAT.[Code] = @ClientCode + '/' + @MatterNumber)
BEGIN
SELECT @MatterNumber
END
ELSE
BEGIN
SELECT 'This matter code already exists.'
END
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CheckMatterIsClosed',N'P') IS NOT NULL
DROP PROCEDURE KAAS_CheckMatterIsClosed
GO
CREATE PROCEDURE KAAS_CheckMatterIsClosed
(
@MATTERCODE AS VARCHAR(20)
)
AS
/*******************************************************************************************************
* This procedure is used to check the given matter is closed or not. *
* *
* Stored Procedure Name : [dbo].[KAAS_CheckMatterIsClosed] *
* Copied from : [dbo].[KY_NETCheckMatterIsClosed] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
ISNULL(Closed,'N')
FROM
matters
WHERE
Code=@MATTERCODE
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CheckOtherCaseFieldNameExists',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CheckOtherCaseFieldNameExists]
GO
CREATE PROCEDURE [dbo].[KAAS_CheckOtherCaseFieldNameExists]
(@CaseCode VARCHAR(20),
@FieldName VARCHAR(100))
AS
/*******************************************************************************************************
* To FETCH the count of the entered Field Name in the other case details main grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_CheckOtherCaseFieldNameExists] *
* *
* Modification History: *
* 2019-08-16 Dheepin Vijith K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT COUNT (1)
FROM CaseUDFAnswers CA
INNER JOIN SystemUserDefinedFields SF
ON CA.UDFFILE = SF.FILEPREFIX
AND CA.UDFNAME = SF.FIELDNAME
WHERE
RTRIM(CA.CASECODE) = RTRIM(@CaseCode) AND
SF.[FieldName] =@FieldName
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_CheckUnpostableEntries',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_CheckUnpostableEntries]
GO
CREATE PROCEDURE
[dbo].[KAAS_CheckUnpostableEntries]
(@HANDLER varchar(10))
AS
/*******************************************************************************************************
* Flags unpostable entries as "do not post". *
* *
* Stored Procedure Name : [dbo].[KAAS_CheckUnpostableEntries] *
* Copied from : [dbo].[ky_NETCheckUnpostableEntries] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
UPDATE TDB
SET TDB.[POST] = CASE WHEN MAT.[CODE] IS NULL
THEN 'N'
ELSE 'Y' END
FROM WDNTEID NTEID
INNER JOIN [dbo].[TimeDayBook] TDB
ON TDB.[RECORDID] = NTEID.[RECORDID]
AND RTRIM(ISNULL(TDB.[MATTER], '')) <> ''
INNER JOIN [dbo].[matters] MAT
ON MAT.[Code] = TDB.[MATTER]
WHERE NTEID.[HANDLER] = @HANDLER
END
GO
IF OBJECT_ID(N'[KAAS_ClearFNLMatters]',N'P')IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_ClearFNLMatters]
END
GO
CREATE PROCEDURE [dbo].[KAAS_ClearFNLMatters] (
@Code NVARCHAR(20))
AS
/******************************************************************************************************************
* To Clear the FNL details from Matter *
* *
* Stored Procedure Name: [dbo].[KAAS_ClearFNLMatters] *
* Copied from : [dbo].[ky_NETClearFNLMatters] *
* *
* Modification History: *
* 2019-07-19 Vinodhan K Created *
******************************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE MAT
SET MAT.[FNL_Name] = '',
MAT.[FNL_Address] = '',
MAT.[FNL_Date] = NULL,
MAT.[FNL_Fees] = 0.00,
MAT.[FNL_Outlay] = 0.00,
MAT.[FNL_VAT] = 0.00,
MAT.[FNL_Total] = 0.00
FROM [dbo].[matters] AS MAT
WHERE MAT.[Code] = @Code
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_ClientCaseGetNextMatter'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ClientCaseGetNextMatter]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ClientCaseGetNextMatter]
(@matter VARCHAR(20),
@BitWiseID BIGINT)
AS
/*******************************************************************************************************
* Used in the Client/Case screens to let the user go to the next matter by *
* clicking a button. Will cycle around to the first matter when the END is reached. *
* *
* Stored Procedure Name : [dbo].[KAAS_ClientCaseGetNextMatter] *
* Copied from : [dbo].[ky_NETPClientCaseGetNextMatter] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0))
DECLARE @nextmatter TABLE
([ClientCode] VARCHAR(10),
[CODE] VARCHAR(20))
INSERT
INTO @nextmatter
([ClientCode],
[CODE])
SELECT TOP 1
RTRIM(ISNULL([MAT].[ClientCode], '')),
RTRIM(ISNULL([MAT].[CODE], ''))
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP
ON MNP.[MATTER] = MAT.[Code]
WHERE [MAT].[CODE] > @matter
AND [MAT].[Closed] = 'N'
AND ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, CONVERT(VARCHAR(20), @BitWiseID)) <> 0
OR MNP.[Privileges] IS NULL)
ORDER BY [MAT].[CODE]
IF NOT EXISTS
(SELECT TOP 1 1
FROM @nextmatter)
BEGIN
INSERT
INTO @nextmatter
([ClientCode],
[CODE])
SELECT TOP 1
RTRIM(ISNULL([MAT].[ClientCode], '')),
RTRIM(ISNULL([MAT].[CODE], ''))
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP
ON MNP.[MATTER] = MAT.[Code]
WHERE ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, CONVERT(VARCHAR(20), @BitWiseID)) <> 0
OR MNP.[Privileges] IS NULL)
AND [MAT].[Closed] = 'N'
ORDER BY [MAT].[CODE]
END
SELECT [ClientCode],
[CODE]
FROM @nextmatter
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_ClientCaseGetPreviousMatter'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ClientCaseGetPreviousMatter]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ClientCaseGetPreviousMatter]
(@matter VARCHAR(20),
@BitWiseID BIGINT)
AS
/*******************************************************************************************************
* Used in the Client/Case screens to let the user go to the previous matter by *
* clicking a button. Will cycle around to the last matter when the START is reached. *
* *
* Stored Procedure Name : [dbo].[KAAS_ClientCaseGetPreviousMatter] *
* Copied from : [dbo].[ky_NETPClientCaseGetPreviousMatter] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0))
DECLARE @previousmatter TABLE
([ClientCode] VARCHAR(10),
[CODE] VARCHAR(20))
INSERT
INTO @previousmatter
([ClientCode],
[CODE])
SELECT TOP 1
RTRIM(ISNULL([MAT].[ClientCode], '')),
RTRIM(ISNULL([MAT].[CODE], ''))
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP
ON MNP.[MATTER] = MAT.[Code]
WHERE [MAT].[CODE] < @matter
AND [MAT].[Closed] = 'N'
AND ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, CONVERT(VARCHAR(20), @BitWiseID)) <> 0
OR MNP.[Privileges] IS NULL)
ORDER BY [MAT].[CODE] DESC
IF NOT EXISTS
(SELECT TOP 1 1
FROM @previousmatter)
BEGIN
INSERT
INTO @previousmatter
([ClientCode],
[CODE])
SELECT TOP 1
RTRIM(ISNULL([MAT].[ClientCode], '')),
RTRIM(ISNULL([MAT].[CODE], ''))
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP
ON MNP.[MATTER] = MAT.[Code]
WHERE ( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, CONVERT(VARCHAR(20), @BitWiseID)) <> 0
OR MNP.[Privileges] IS NULL)
AND [MAT].[Closed] = 'N'
ORDER BY [MAT].[CODE] DESC
END
SELECT [ClientCode],
[CODE]
FROM @previousmatter
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CreateDiaryAttachment'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CreateDiaryAttachment]
END
GO
CREATE PROCEDURE [dbo].[KAAS_CreateDiaryAttachment]
(@pDiaryID Int=0,
@pName VARCHAR(10),
@pDocName VARCHAR(100),
@pDocument VARCHAR(255),
@pType VARCHAR(10),
@pDocClass VARCHAR(10),
@pDateEntered VARCHAR(17),
@pEnterBy VARCHAR(8),
@pLastAccessed VARCHAR(17),
@pLastAccessedby VARCHAR(8),
@pSystem VARCHAR(1),
@pDictationFile VARCHAR(255),
@pSource VARCHAR(20),
@pDocFolders VARCHAR(MAX))
AS
/*******************************************************************************************************
* Create a Diary Attachment for a particular Action. *
* *
* Stored Procedure Name : [dbo].[KAAS_CreateDiaryAttachment] *
* Copied from : [dbo].[ky_NETSPCreateDiaryAttachment] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
* 2019-05-31 Ramesh K Modified - File name extension to be stored in lower case *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @strcasecode VARCHAR(20)
DECLARE @inTrackRef Int
DECLARE @strFileName VARCHAR(255)
DECLARE @strUNCFileName VARCHAR(500)
DECLARE @strMatterNo VARCHAR(10)
DECLARE @strClientCode VARCHAR(10)
DECLARE @strDefaultFolder VARCHAR(255)
DECLARE @strSource VARCHAR(20)
DECLARE @strType VARCHAR(10)
DECLARE @continue INT
DECLARE @error VARCHAR(1000)
DECLARE @DocNamingMethod CHAR(1)
DECLARE @StorageMethod CHAR(1)
SELECT @DocNamingMethod = [CON].[DocumentNamingMethod] FROM [dbo].[control] [CON]
SET @DocNamingMethod = CASE WHEN ISNULL(@DocNamingMethod, ' ') = 'T' THEN 'T' ELSE ' ' END
SELECT @StorageMethod = [SCN].[STORAGEMETHOD] FROM [dbo].[SystemConfig] [SCN]
SET @StorageMethod = CASE WHEN ISNULL(@StorageMethod, 'C') = 'D' THEN 'D' ELSE 'C' END
SET @continue = 0
SET @error = ''
SET @pDiaryID = ISNULL(@pDiaryID, 0)
IF (@pDiaryID = 0)
BEGIN
SET @continue = 12
SET @error = 'invalid or missing Diary ID'
END
-- Get Diary and Matter information
IF (@continue = 0)
BEGIN
BEGIN TRY
SELECT @strcasecode = RTRIM(ISNULL(MAT.[code], '')),
@strClientCode = RTRIM(ISNULL(MAT.[clientcode], '')),
@strMatterNo = RTRIM(ISNULL(MAT.[matter], '')),
@strSource = RTRIM(ISNULL(DIA.[PROCESSTYPE], ''))
FROM [dbo].[diary] DIA
INNER JOIN [dbo].[matters] MAT
ON MAT.[code] = DIA.[CASECODE]
WHERE DIA.[ACTIONID] = @pDiaryID
SET @strcasecode = ISNULL(@strcasecode, '')
SET @strClientCode = ISNULL(@strClientCode, '')
SET @strMatterNo = ISNULL(@strMatterNo, '')
SET @strSource = CASE WHEN ISNULL(@pSource, '') = ''
THEN CASE WHEN ISNULL(@strSource, 'I') = 'I'
THEN 'Received E-mail'
ELSE 'Sent E-mail' END
ELSE @pSource END
IF (@strcasecode = '')
BEGIN
SET @continue = 2
SET @error = 'invalid or missing Diary ID'
END
END TRY
BEGIN CATCH
SET @continue = 1
SET @error = 'Error retrieving Diary information for Diary ID: ' + ISNULL(convert(VARCHAR(10), @pDiaryID), 'unknown') + ' ' + Error_Message()
END CATCH
END
-- Get Next TrackReference -----------------------------------------------------------------------------------------------------------------------------------------
IF (@continue = 0)
BEGIN
BEGIN TRY
--SELECT @inTrackRef = ISNULL(MAX(DAT.[TrackReference]), 0) + 1
-- FROM [dbo].[DiaryAttachments] DAT
EXEC @inTrackRef = [dbo].[KAAS_GetNextTrackReference]
END TRY
BEGIN CATCH
SET @continue = 3
SET @error = 'Error calculating next Track Reference: ' + Error_Message()
END CATCH
END
-- Write DiaryAttachment Record -----------------------------------------------------------------------------------------------------------------------------------------
IF (@continue = 0)
BEGIN
BEGIN TRY
SELECT @strDefaultFolder = (SELECT RTRIM(ISNULL(SC.[SCWPFOLDER], ''))
FROM [dbo].[SystemConfig] SC)
SET @strDefaultFolder = ISNULL(@strDefaultFolder, '')
IF (@strDefaultFolder = '')
BEGIN
SET @continue = 4
SET @error = 'SCWPFOLDER not SET in System Config'
END
END TRY
BEGIN CATCH
SET @continue = 5
SET @error = 'Error retrieving SCWPFOLDER: ' + Error_Message()
END CATCH
END
IF (@continue = 0)
BEGIN
BEGIN TRY
IF @StorageMethod = 'C'
BEGIN
SELECT @strFileName = RTRIM(ISNULL(CLT.[DCOUMENTFOLDER], ''))
FROM [dbo].[client] CLT
WHERE CLT.[CLCODE] = @strClientCode
SET @strFileName = RTRIM(ISNULL(@strFileName, ''))
IF (@strFileName = '')
BEGIN
SET @strFileName = @strDefaultFolder + '\' + @strClientCode
UPDATE CLT
SET CLT.[DCOUMENTFOLDER] = @strFileName
FROM [dbo].[client] CLT
WHERE CLT.[CLCODE] = @strClientCode
END
END
ELSE
BEGIN
SET @strFileName = @strDefaultFolder + '\' + CONVERT(VARCHAR(6), GETDATE(), 112)
END
END TRY
BEGIN CATCH
SET @continue = 6
SET @error = 'Error establishing Document Folder: ' + Error_Message()
END CATCH
END
IF (@continue = 0)
BEGIN
SET @pDocument = RTRIM(ISNULL(@pDocument, ''))
SET @pDocument = REPLACE(@pDocument, CHAR(13) + CHAR(10), '_')
IF (@pDocument = '')
BEGIN
SET @continue = 7
SET @error = 'missing document name'
END
END
IF (@continue = 0)
BEGIN
SET @pDocName = RTRIM(ISNULL(@pDocName, ''))
SET @pDocName = REPLACE(@pDocName, CHAR(13) + CHAR(10), '_')
IF (@pDocName = '')
BEGIN
SET @continue = 7
SET @error = 'missing document name'
END
END
IF (@continue = 0)
BEGIN
BEGIN TRY
SET @pType = RTRIM(ISNULL(@pType, ''))
SET @strType = convert(VARCHAR(10), @pType)
END TRY
BEGIN CATCH
SET @continue = 8
SET @error = 'Error interpreting Document Type: ' + Error_Message()
END CATCH
END
IF (@continue = 0)
BEGIN
BEGIN TRY
DECLARE @pDocName2 VARCHAR(100)
DECLARE @pDocumentWork VARCHAR(255)
SET @pDocumentWork = REVERSE(@pDocument)
IF CHARINDEX('\', @pDocumentWork) > 0
BEGIN
SET @pDocumentWork = SUBSTRING(@pDocumentWork, 1, CHARINDEX('\', @pDocumentWork) - 1)
END
IF CHARINDEX('.', @pDocumentWork) > 0
BEGIN
SET @pDocumentWork = SUBSTRING(@pDocumentWork, CHARINDEX('.', @pDocumentWork) + 1, LEN(@pDocumentWork) - CHARINDEX('.', @pDocumentWork))
END
SET @pDocumentWork = REVERSE(@pDocumentWork)
IF @DocNamingMethod <> 'T'
BEGIN
SET @pDocName2 = REPLACE(REPLACE(REPLACE([dbo].[KAAS_FN_RemovePatternFromString](@pDocumentWork, '%[:*<>$&.!?@#~/\\\%|`ª{}\+=_^?œ",]%'), CHAR(13), ''), CHAR(10), ''), CHAR(9), '')
IF @StorageMethod = 'D'
BEGIN
SET @strFileName = @strFileName
+ '\'
+ @pDocName2
+ '_'
+ convert(VARCHAR(10), @inTrackRef)
END
ELSE
BEGIN
SET @strFileName = @strFileName
+ '\'
+ @strMatterNo
+ '\'
+ @pDocName2
+ '_'
+ convert(VARCHAR(10), @inTrackRef)
END
END
ELSE
BEGIN
IF @StorageMethod = 'D'
BEGIN
SET @strFileName = @strFileName
+ '\'
+ convert(VARCHAR(10), @inTrackRef)
END
ELSE
BEGIN
SET @strFileName = @strFileName
+ '\'
+ @strMatterNo
+ '\'
+ convert(VARCHAR(10), @inTrackRef)
END
END
IF (@pType <> '')
BEGIN
SET @strFileName = @strFileName
+ '.'
+ LOWER(@pType)
END
END TRY
BEGIN CATCH
SET @continue = 9
SET @error = 'Error establishing filename: ' + Error_Message()
END CATCH
END
SET @strFileName = ISNULL(@strFileName, '')
SET @strUNCFileName = @strFileName
IF (SUBSTRING(@strUNCFileName, 2, 1) = ':')
BEGIN
SELECT @strUNCFileName = ISNULL(MAX(UNC.[UNC]) + SUBSTRING(@strUNCFileName, 3, LEN(@strUNCFileName) - 2), @strUNCFileName)
FROM [dbo].[UNCAlias] UNC
WHERE SUBSTRING(@strUNCFileName, 1, 1) = UNC.[Drive]
SET @strUNCFileName = LEFT(@strUNCFileName, 2) + REPLACE(RIGHT(@strUNCFileName, LEN(@strUNCFileName) - 2), '\\', '\')
END
IF(@strType = 'FOL')
BEGIN
SET @strFileName = @pDocument
END
IF (@continue = 0)
BEGIN
BEGIN TRY
INSERT INTO DiaryAttachments
([DiaryId],
[TrackReference],
[CaseCode],
[Name],
[Document],
[Filepath],
[Type],
[DocClass],
[DateEntered],
[EnteredBy],
[LastAccessDate],
[LastAccessBy],
[System],
[Dictationfile],
[Source])
VALUES(@pDiaryID,
@inTrackRef,
@strcasecode,
@pName,
@pDocName,
@strFileName,
@strType,
@pDocClass,
convert(DATETIME, @pDateEntered),
@pEnterBy,
convert(DATETIME, @pLastAccessed),
@pLastAccessedby,
@pSystem,
@pDictationFile,
@strSource)
END TRY
BEGIN CATCH
SET @continue = 10
SET @error = 'Error inserting Diary Attachment record: ' + Error_Message()
END CATCH
END
IF (@continue = 0)
BEGIN
BEGIN TRY
DECLARE @iSL INT
DECLARE @data TABLE
([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[folderid] INT NOT NULL,
[trackreference] INT NOT NULL)
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @pDocFolders
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, ''
END CATCH
INSERT
INTO @data
([folderid],
[trackreference])
SELECT SRC.[folderid],
@inTrackRef
FROM OPENXML(@iSL, N'selectedfolders/folder')
WITH ([folderid] INT '@id') SRC
EXEC sp_xml_removedocument @iSL
INSERT
INTO [dbo].[DocFolderDocuments]
([DocFolderID],
[TrackReference])
SELECT DT.[folderid],
DT.[trackreference]
FROM @data DT
LEFT OUTER JOIN [dbo].[DocFolderDocuments] DFD
ON DFD.[DocFolderID] = DT.[folderid]
AND DFD.[TrackReference] = DT.[trackreference]
WHERE DFD.[TrackReference] IS NULL
END TRY
BEGIN CATCH
SET @continue = 11
SET @error = 'Error copying documents to document folder: ' + Error_Message()
END CATCH
END
SELECT @strcasecode AS [CaseCode],
@inTrackRef AS [NewTrackReference],
@strFileName As [Path],
@strUNCFileName As [UNCPath],
@continue AS [ErrorCode],
@error AS [ErrorMessage]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CreateDiaryStep'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE KAAS_CreateDiaryStep
END
GO
CREATE PROCEDURE KAAS_CreateDiaryStep
(@pStatus Int=0,
@pDate datetime,
@pDueDate datetime,
@pSentDate datetime,
@pCaseCode varchar(20),
@pActionCode char(15),
@pActionType char(1),
@pActionStatus char(3),
@pPriority char(1),
@pHighlighted char(1),
@pBillable int,
@pWorkProcess int,
@pPublish char(1),
@pFnCode varchar(10),
@pTeamCode varchar(10),
@pText1 varchar(MAX),
@pAttachments char(1),
@pEmailAddress varchar(MAX),
@pAddressTo varchar(MAX),
@pccTo varchar(MAX),
@pbccTo varchar(MAX),
@pemail char(1),
@pSubject varchar(MAX),
@pProcessType char(1),
@pLocation varchar(50),
@pDuration int)
AS
/*******************************************************************************************************
* Create Diary Step suitable for Add Task as well as assigning a mail to Case, and applying a duration.*
* *
* Stored Procedure Name : [dbo].[KAAS_CreateDiaryStep] *
* Copied from : [dbo].[ky_WDCreateDiaryStep5] in AllDiaryStepProcedures *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @strcasecode nVarChar(20)
DECLARE @intAssignno int
DECLARE @SubjectLen int
DECLARE @CaseCodeLen int
DECLARE @FELen int
DECLARE @TeamLen int
DECLARE @dDate datetime
DECLARE @pTime char(10)
DECLARE @pEndTime char(10)
DECLARE @dDueDate datetime
DECLARE @pDueTime char(10)
DECLARE @continue int
DECLARE @error varchar(1000)
DECLARE @NewActionID int
DECLARE @KYC char(1)
DECLARE @FirmDomainAddress VARCHAR(50)
SELECT @FirmDomainAddress = CONVERT(VARCHAR(50), ISNULL([SET].[KeyValue], ''))
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'FirmDomainAddress'
DECLARE @CheckAddress VARCHAR(MAX)
SET @CheckAddress = @pEmailAddress
If CHARINDEX('@', @CheckAddress) > 1
BEGIN
SET @CheckAddress = SUBSTRING(@CheckAddress, CHARINDEX('@', @CheckAddress), LEN(@CheckAddress) - CHARINDEX('@', @CheckAddress) + 1)
IF SUBSTRING(@CheckAddress, LEN(@CheckAddress), 1) IN ('>', ')', ']')
BEGIN
SET @CheckAddress = SUBSTRING(@CheckAddress, 1, LEN(@CheckAddress) - 1)
END
SET @CheckAddress = '%;' + @CheckAddress + ';%'
END
ELSE
BEGIN
SET @CheckAddress = ''
END
SET @FirmDomainAddress = ISNULL(@FirmDomainAddress, 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
IF LEN(@FirmDomainAddress) > 0
BEGIN
IF SUBSTRING(@FirmDomainAddress, 1, 1) <> '@'
BEGIN
SET @FirmDomainAddress = '@' + @FirmDomainAddress
END
END
IF @CheckAddress <> ''
BEGIN
IF ';' + @FirmDomainAddress + ';' LIKE @CheckAddress
BEGIN
SET @pProcessType = 'O'
END
END
SET @continue = 0
SET @error = ''
SET @NewActionID = 0
BEGIN TRANSACTION
Begin Try
SET @pDuration = ISNULL(@pDuration, 0)
IF (@pDuration <= 0)
BEGIN
SET @pDuration = 30
END
SET @pDuration = @pDuration * 60
End Try
Begin Catch
SET @continue = 1
SET @error = 'invalid duration information'
SET @NewActionID = 0
End Catch
IF (@continue = 0)
BEGIN
BEGIN TRY
-- Get only the DATE portion of the date that was passed in
IF (@pDate is null)
SET @pDate = GETDATE()
IF (@pDueDate is null)
SET @pDueDate = @pDate
SET @dDate = convert(datetime, convert(varchar, @pDate, 112))
SET @pTime = convert(char(10), (1000 * convert(int, DATEDIFF(ms, @dDate, @pDate) / 10000)) + 1)
SET @pEndTime = convert(char(10), (@pDuration * 100) + (1000 * convert(int, DATEDIFF(ms, @dDate, @pDate) / 10000)) + 1)
SET @dDueDate = convert(datetime, convert(varchar, @pDueDate, 112))
SET @pDueTime = convert(char(10), @pDuration + (10 * convert(int, DATEDIFF(ms, @dDueDate, @pDueDate) / 10000)))
END TRY
BEGIN CATCH
SET @continue = 2
SET @error = 'error processing date parameters'
SET @NewActionID = 0
END CATCH
END
IF (@continue = 0)
BEGIN
BEGIN TRY
select @SubjectLen = CASE WHEN sc.xtype = 35
THEN 150
ELSE sc.[length] END
from sysobjects so
inner join syscolumns sc
on sc.[id] = so.[id]
and sc.[name] = 'subject'
where so.[name] = 'diary'
select @CaseCodeLen = sc.[length]
from sysobjects so
inner join syscolumns sc
on sc.[id] = so.[id]
and sc.[name] = 'casecode'
where so.[name] = 'diary'
select @FELen = sc.[length]
from sysobjects so
inner join syscolumns sc
on sc.[id] = so.[id]
and sc.[name] = 'fncode'
where so.[name] = 'diary'
select @TeamLen = sc.[length]
from sysobjects so
inner join syscolumns sc
on sc.[id] = so.[id]
and sc.[name] = 'teamcode'
where so.[name] = 'diary'
END TRY
BEGIN CATCH
SET @continue = 3
SET @error = 'invalid duration information'
SET @NewActionID = 0
END CATCH
END
-- Get CaseCode From Matters Table -----------------------------------------------------------------------------------------------------------------------------------------
IF (@continue = 0)
BEGIN
BEGIN TRY
SET @strCaseCode = NULL
SELECT Top 1
@strCaseCode = MAT.[Code]
From [dbo].[Matters] MAT
WHERE MAT.[code] = @pCaseCode
SET @strCaseCode = RTRIM(Isnull(@strCaseCode, ''))
Set @pFNCode = RTRIM(@pFNCode)
Set @pTeamCode = RTRIM(@pTeamCode)
IF (@strCaseCode = '')
BEGIN
SET @continue = 4
BEGIN TRY
SET @pCaseCode = RTRIM(ISNULL(@pCaseCode, ''))
END TRY
BEGIN CATCH
SET @pCaseCode = ''
END CATCH
SET @error = 'Invalid Case Code: ' + @pCaseCode
SET @NewActionID = 0
END
IF (@continue = 0)
BEGIN
IF (LEN(@strCaseCode) < 2)
BEGIN
SET @continue = 4
SET @error = 'Invalid parameters. Case Code too short'
SET @NewActionID = 0
END
END
IF (@continue = 0)
BEGIN
IF (LEN(@strCaseCode) > @CaseCodeLen)
BEGIN
SET @continue = 4
SET @error = 'Invalid parameters. Case Code too long'
SET @NewActionID = 0
END
END
IF (@continue = 0)
BEGIN
IF (LEN(@pFNCode) > @FELen)
BEGIN
SET @continue = 4
SET @error = 'Invalid parameters. FE code too long'
SET @NewActionID = 0
END
END
IF (@continue = 0)
BEGIN
IF (LEN(@pTeamCode) > @TeamLen)
BEGIN
SET @continue = 4
SET @error = 'Invalid parameters. TEAM code too long'
SET @NewActionID = 0
END
END
-- Set Publish and Subject -----------------------------------------------------------------------------------------------------------------------------------
IF (@continue = 0)
BEGIN
Select @pPublish = CASE WHEN RTRIM(ISNULL(@pPublish, '')) <> ''
THEN @pPublish
ELSE TAC.[PUBLISHER] END,
@KYC = TAC.[KYC],
@pProcessType = CASE WHEN RTRIM(ISNULL(@pProcessType, '')) <> ''
THEN @pProcessType
ELSE TAC.[PROCESSTYPE] END
From TemplateActions TAC
where TAC.[ACTIONCODE] = @pActionCode
IF (RTRIM(IsNull(@pPublish, '')) = '')
BEGIN
SET @pPublish = 'N'
END
IF (RTRIM(IsNull(@pProcessType, '')) = '')
BEGIN
SET @pProcessType = ''
END
SET @pSubject = RTRIM(@pSubject)
IF LEN(@pSubject) > @SubjectLen
BEGIN
SET @pSubject = Substring(@pSubject, 1, @SubjectLen)
END
END
-- Truncate potentially long fields -----------------------------------------------------------------------------------------------------------------------------------
IF (@continue = 0)
BEGIN
SET @pEmailAddress = CONVERT(varchar(150), ISNULL(@pEmailAddress, ''))
SET @pSubject = CONVERT(varchar(500), ISNULL(@pSubject, ''))
SET @pAddressTo = CONVERT(varchar(2000), ISNULL(@pAddressTo, ''))
SET @pccTo = CONVERT(varchar(2000), ISNULL(@pccTo, ''))
SET @pbccTo = CONVERT(varchar(2000), ISNULL(@pbccTo, ''))
END
END TRY
BEGIN CATCH
SET @continue = 5
SET @error = 'Invalid parameters Publish, ProcessType or Subject'
SET @NewActionID = 0
END CATCH
END
IF (@continue = 0)
BEGIN
BEGIN TRY
-- Pino 2015-09-30 Start
EXEC @NewActionID = [dbo].[ky_NETGetNextActionID]
--SELECT @NewActionID = ISNULL(MAX(DIA.[ActionID]), 0) + 1
-- FROM [dbo].[diary] DIA
-- Pino 2015-09-30 End
END TRY
BEGIN CATCH
SET @continue = 8
SET @error = convert(varchar(1000), 'Error establishing new Action ID, ' + Error_Message())
SET @NewActionID = 0
END CATCH
END
-- Write Diary Record -----------------------------------------------------------------------------------------------------------------------------------------
IF (@continue = 0)
BEGIN
BEGIN TRY
INSERT INTO [dbo].[Diary]
([ActionID],
[Status],
[CaseCode],
[ActionCode],
[ActionStatus],
[PRIORITY],
[HIGHLIGHTED],
[BILLABLE],
[WORKPROCESS],
[FnCode],
[TeamCode],
[Text1],
[Attachments],
[EmailAddress],
[AddressTo],
[Location],
[ccTo],
[bccTo],
[email],
[Subject],
[Publish],
[ActionType],
[ProcessType],
[DYSTARTTIME],
[DYENDTIME],
[Date],
[DUEDATE],
[TxmDate],
[KYC])
VALUES(@NewActionID,
@pStatus,
@pCaseCode,
@pActionCode,
@pActionStatus,
@pPriority,
@pHighlighted,
@pBillable,
@pWorkProcess,
@pFnCode,
@pTeamCode,
convert(text, @pText1),
@pAttachments,
@pEmailAddress,
@pAddressTo,
@pLocation,
@pccTo,
@pbccTo,
@pemail,
@pSubject,
@pPublish,
@pActionType,
@pProcessType,
@pTime,
@pEndTime,
@pDate,
@pDueDate,
@pSentDate,
@KYC)
END TRY
BEGIN CATCH
SET @continue = 6
SET @error = convert(varchar(1000), 'Error inserting Diary Entry, ' + Error_Message())
SET @NewActionID = 0
END CATCH
END
-- Write the diary delegation record ------------------------------------------------------------
IF (@continue = 0)
BEGIN
BEGIN TRY
INSERT INTO [DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[DATE],
[TIME],
[DATER],
[TIMER],
[DUEDATE],
[DUETIME],
[REVIEW],
[STATUS],
[OWNER],
[DELEGATE],
[DELEGATESTATUS],
[ActionType],
[FromHandler],
[ReturnedBy],
[DelType])
VALUES(@NewActionID,
@pFnCode,
@pTeamCode,
@dDate,
@pTime,
@dDate,
@pTime,
@dDueDate,
@pDueTime,
' ',
@pStatus,
'Y',
@pFnCode,
0,
@pActionType,
' ',
' ',
'Created')
END TRY
BEGIN CATCH
SET @continue = 7
SET @error = convert(varchar(1000), 'Error inserting Diary Delegation, ' + Error_Message())
SET @NewActionID = 0
END CATCH
END
-- Commit Transaction ------------------------------------------------------------------------------------------------------------------
IF (@continue = 0)
BEGIN
COMMIT
END
ELSE
BEGIN
SET @NewActionID = 0
ROLLBACK
END
SELECT @continue AS [ErrorCode],
@error AS [ErrorMessage],
@NewActionID AS [NewActionID]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_CreateFNL'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_CreateFNL]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_CreateFNL]
(@Matter VARCHAR(20),
@Date DATETIME,
@Name VARCHAR(50),
@address VARCHAR(120),
@Fees DECIMAL(15,2),
@Outlay DECIMAL(15,2),
@fecode VARCHAR(10),
@Vat DECIMAL(15,2),
@Total DECIMAL(15,2),
@Handler VARCHAR(10))
AS
/******************************************************************************************************************
* To Create the new FNL *
* *
* Stored Procedure Name: [dbo].[KAAS_CreateFNL] *
* Copied from : [dbo].[ky_NETCreateFNL] *
* *
* Modification History: *
* 2019-07-19 Vinodhan K Created *
******************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @IsSAM4 BIT
DECLARE @NARR VARCHAR(80)
DECLARE @COMMAND NVARCHAR(MAX)
SET @IsSAM4 = [dbo].[ISSAM4]()
IF @IsSAM4 = 0
BEGIN
SET @NARR = CONVERT(VARCHAR(80),
'FNL: '
+ CONVERT(VARCHAR(15),@Total)
+ ' '
+ RTRIM(ISNULL(CONVERT(VARCHAR(12),@Name), ''))
+ '... Fees: '
+ CONVERT(VARCHAR(15), @Fees)
+ ' Outlay: ' + CONVERT(VARCHAR(15), @Outlay)
+ ' Vat: ' + CONVERT(VARCHAR(15), @Vat))
SET @Matter = RTRIM(ISNULL(@Matter, ''))
SET @COMMAND = N'
INSERT
INTO [dbo].[Matterledger]
([MATTER],
[BATCHNO],
[PREF],
[DATE],
[NARR],
[FEE],
[REF])
VALUES(''' + Replace(@Matter, '''', '''''') + ''',
0,
0,
''' + Replace(@Date , '''', '''''') + ''',
''' + Replace(@NARR, '''', '''''') + ''',
''' + Replace(@fecode, '''', '''''') + ''',
''' + Replace(@Handler, '''', '''''') + ''')
SELECT SCOPE_IDENTITY()'
EXEC (@COMMAND)
END
ELSE
BEGIN
SET @NARR = CONVERT(VARCHAR(200),
'FNL: ' + CONVERT(VARCHAR(15), @Total) +
' ' + RTRIM(ISNULL(CONVERT(VARCHAR(30), @Name), '')) +
'... Fees: ' + CONVERT(VARCHAR(15), @Fees) +
' Outlay: ' + CONVERT(VARCHAR(15), @Outlay) +
' VAT: ' + CONVERT(VARCHAR(15), @Vat))
SET @Matter = RTRIM(ISNULL(@Matter, ''))
EXEC [dbo].[KAAS_AddMatterLedgerComment] @Matter, @Date, @Handler, @NARR
END
BEGIN
UPDATE MAT
SET MAT.[FNL_Name] = RTRIM(ISNULL(@Name, '')),
MAT.[FNL_Address] = RTRIM(ISNULL(@address, '')),
MAT.[FNL_Date] = @Date,
MAT.[FNL_Fees] = @Fees ,
MAT.[FNL_Outlay] = @Outlay ,
MAT.[FNL_VAT] = @Vat,
MAT.[FNL_Total] = @Total
FROM [dbo].[matters] MAT
WHERE MAT.[Code] = @Matter
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_Dashboard',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_Dashboard]
GO
CREATE PROCEDURE [dbo].[KAAS_Dashboard] (
@Handler VARCHAR(10),
@Fromdate DATETIME,
@todate DATETIME)
AS
/*******************************************************************************************************
* Populates the My Overview page *
* *
* Stored Procedure Name : [dbo].[KAAS_Dashboard] *
* Copied from : [dbo].[KY_NETDashboard3] *
* *
* Modification History : *
* 2019-04-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @TotalUndertakings INT
DECLARE @TotalStatuteLimits INT
DECLARE @IsSAM4 BIT
DECLARE @BitWiseID BIGINT
DECLARE @GETDATE DATETIME
SET @GETDATE = GETDATE()
SET @IsSAM4 = [dbo].[ISSAM4]()
SET @handler = CASE WHEN RTRIM(ISNULL(@handler, '')) = '' THEN 'ADM' ELSE RTRIM(@handler) END
SELECT @BitWiseID = HNG.[BitWiseID]
FROM HandlerNETGroupMembership HNG
WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler)
SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@handler, ''))))
IF (@handler = 'ADM')
BEGIN
SET @BitWiseID = CONVERT(BIGINT, -1)
END
SELECT @TotalUndertakings = count(1)
FROM dbo.[Undertakings] UND
INNER JOIN [dbo].[matters] MAT
ON MAT.[Code] = UND.[MATTER]
WHERE UND.[AuthorisedByFE] = @Handler
AND MAT.[Closed] <> 'Y'
AND UND.[DISCHARGEDATE] IS NULL
SELECT @TotalStatuteLimits = count(1)
FROM dbo.[matters] MAT
WHERE MAT.[FECode] = @Handler
AND DATEDIFF(DD, @GETDATE, CASE WHEN ISNULL(MAT.[StatuteLimits], '21000101')='19000101' THEN '21000101' ELSE MAT.[StatuteLimits] END) <= 60
AND MAT.[Closed] <> 'Y'
--Statement to get No. of Overdue and No. of Outstandings
SELECT ISNULL(ADT.[Overdue Task], 0) AS [OverdueTask],
ISNULL(ADT.[Outstanding Task], 0) AS [OutstandingTask],
ISNULL(ADT.[Critical Tasks], 0) AS [CriticalTasks],
ISNULL(ADT.[Court Dates], 0) AS [CourtDates],
ISNULL(ADT.[High Priority], 0) AS [HighPriority],
ISNULL(ADT.[Phone Message], 0) AS [PhoneMessage],
@TotalUndertakings AS [UnderTaking],
@TotalStatuteLimits AS [StatuteDateApproaching]
FROM ( SELECT SUM(CASE WHEN DEL.[DATE] < @fromdate
THEN 0
WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @GETDATE, 112)))
THEN 0
WHEN [DEL].[STATUS] = 0
THEN 1
ELSE 0 END) AS [Overdue Task],
SUM(CASE WHEN DEL.[DATE] < @fromdate
THEN 0
WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112)))
THEN 0
WHEN [DEL].[STATUS] = 0
THEN 1
ELSE 0 END) AS [Outstanding Task],
SUM(CASE WHEN DEL.[DATE] < @fromdate
THEN 0
WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112)))
THEN 0
WHEN [DIA].[ActionType] = 'C'
THEN 1
ELSE 0 END) AS [Critical Tasks],
SUM(CASE WHEN DEL.[DATE] < @fromdate
THEN 0
WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112)))
THEN 0
WHEN [DIA].[ActionType] = 'O'
THEN 1
ELSE 0 END) AS [Court Dates],
SUM(CASE WHEN DEL.[DATE] < @fromdate
THEN 0
WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112)))
THEN 0
WHEN [DIA].[PRIORITY] = 'H'
THEN 1
ELSE 0 END) AS [High Priority],
SUM(CASE WHEN DEL.[DATE] < @fromdate
THEN 0
WHEN DEL.[DATE] >= DATEADD(DD, 1, CONVERT (DATETIME, CONVERT(VARCHAR, @todate, 112)))
THEN 0
WHEN [DIA].[ActionType] = 'T'
THEN 1
ELSE 0 END) AS [Phone Message]
FROM [dbo].[DiaryDelegations] DEL
INNER JOIN [dbo].[Diary] DIA
INNER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[Contacts] CON
ON CON.[CODE] = MAT.[CLIENTCODE]
LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP
ON MNP.[MATTER] = MAT.[Code]
ON MAT.[CODE] = DIA.[CASECODE]
AND ISNULL(MAT.[Closed], 'N') <> 'Y'
ON DIA.[ACTIONID] = DEL.[ACTIONID]
WHERE DEL.[HANDLER] = @Handler
AND DEL.[STATUS] = 0
AND DEL.[DelType] <> 'Completed'
AND DEL.[DelType] <> 'Processed'
AND DEL.[DelType] <> 'Returned'
AND ( ISNULL(MNP.[Privileges], CONVERT (BIGINT, -1)) & @BitWiseID <> 0
OR ISNULL(MNP.[Privileges], CONVERT (BIGINT, 0)) = 0)) ADT
SELECT 0 AS [Zero]
DECLARE @MyTimeDayBook DECIMAL(18, 2)
DECLARE @MyTimeDayBookHr VARCHAR(20)
DECLARE @MyTimeDayBookWeek DECIMAL(18, 2)
DECLARE @MyTimeDayBookWeekHr VARCHAR(20)
DECLARE @MyTimeDayBookMonth DECIMAL(18, 2)
DECLARE @MyTimeDayBookMonthHr VARCHAR(20)
DECLARE @MyTimeDayBookYear DECIMAL(18, 2)
DECLARE @MyTimeDayBookYearHr VARCHAR(20)
DECLARE @AdminTimeDayBookMonth DECIMAL(18, 2)
DECLARE @AdminTimeDayBookMonthHr VARCHAR(20)
DECLARE @AdminTimeDayBookYear DECIMAL(18, 2)
DECLARE @AdminTimeDayBookYearHr VARCHAR(20)
DECLARE @DailyAverageMTD DECIMAL(18, 2) -- Average time recorded per day in the current month
DECLARE @DailyAverageYTD DECIMAL(18, 2) -- Average time recorded per day in the current year
DECLARE @TODAYNUM INT
DECLARE @MONDAY DATETIME
DECLARE @STARTOFMONTH DATETIME
DECLARE @STARTOFYEAR DATETIME
DECLARE @MONTHTODATE DATETIME -- This is the current date, up to the end of the financial month
SELECT @TODAYNUM = DATEPART(WEEKDAY, @GETDATE) - DATEPART(WEEKDAY, '20000102') --the 2nd of January, 2000 was a Monday
IF @TODAYNUM <= 0
SET @TODAYNUM = @TODAYNUM + 7
SET @MONDAY = CONVERT(DATETIME, CONVERT(VARCHAR, DATEADD(DAY, 1 - @TODAYNUM, @GETDATE), 112))
SELECT @TODAYNUM = DATEPART(DAY, @GETDATE)
SELECT @STARTOFMONTH = KPI.[FromDate],
@STARTOFYEAR = KPI.[StartOfYear],
@MONTHTODATE = CASE WHEN @GETDATE > KPI.[ToDate] THEN KPI.[ToDate] ELSE @GETDATE END
FROM [dbo].[KPIParameters] AS KPI
SET @STARTOFYEAR = ISNULL(@STARTOFYEAR, CONVERT(DATETIME, CONVERT(VARCHAR(4), YEAR(@GETDATE)) + '0101'))
SELECT @MyTimeDayBook = ISNULL(SUM(ISNULL(TDB.[TIME], 0)), 0)
FROM [dbo].[TimeDayBook] TDB
WHERE TDB.[FEEEARN] = @Handler
AND TDB.[TIMEORCHARGE] = 'T'
AND TDB.[Rec_irr] = 'C'
SELECT @MyTimeDayBookWeek = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[FEEEARN] = @Handler
AND TIE.[TIMEORCHARGE] = 'T'
AND TIE.[Rec_irr] = 'C'
AND TIE.[Date] >= @MONDAY
AND TIE.[DATE] <= @GETDATE
AND ISNULL(TIE.[TASK], '') <> 'WRI'
AND TIE.[Matter] <> '~'
SELECT @MyTimeDayBookMonth = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[FEEEARN] = @Handler
AND TIE.[TIMEORCHARGE] = 'T'
AND TIE.[Rec_irr] = 'C'
AND TIE.[Date] >= @STARTOFMONTH
AND TIE.[DATE] <= @MONTHTODATE
AND ISNULL(TIE.[TASK], '') <> 'WRI'
AND TIE.[Matter] <>'~'
SELECT @MyTimeDayBookYear = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[FEEEARN] = @Handler
AND TIE.[TIMEORCHARGE] = 'T'
AND TIE.[Rec_irr] = 'C'
AND TIE.[Date] >= @STARTOFYEAR
AND TIE.[DATE] <= @MONTHTODATE
AND ISNULL(TIE.[TASK], '') <> 'WRI'
AND TIE.[Matter] <>'~'
SELECT @AdminTimeDayBookMonth = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[FEEEARN] = @Handler
AND TIE.[TIMEORCHARGE] = 'T'
AND TIE.[Date] >= @STARTOFMONTH
AND TIE.[DATE] <= @MONTHTODATE
AND ISNULL(TIE.[TASK], '') <> 'WRI'
AND TIE.[Matter] = '~'
SELECT @AdminTimeDayBookYear = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[FEEEARN] = @Handler
AND TIE.[TIMEORCHARGE] = 'T'
AND TIE.[Date] >= @STARTOFYEAR
AND TIE.[DATE] <= @MONTHTODATE
AND ISNULL(TIE.[TASK], '') <> 'WRI'
AND TIE.[Matter] = '~'
SET @MyTimeDayBook = CASE WHEN @MyTimeDayBook < 0 THEN 0 ELSE @MyTimeDayBook END
SET @MyTimeDayBookHr =
CASE
WHEN
LEN(CONVERT(INT, @MyTimeDayBook) / 60) < 2
THEN
'0' + CAST(CONVERT(INT, @MyTimeDayBook) / 60 AS VARCHAR)
ELSE
CAST(CONVERT(INT, @MyTimeDayBook) / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @MyTimeDayBook) % 60)), 2, 2)
SET @MyTimeDayBookWeek = CASE WHEN @MyTimeDayBookWeek < 0 THEN 0 ELSE @MyTimeDayBookWeek END
SET @MyTimeDayBookWeekHr =
CASE
WHEN
LEN(CONVERT(INT, @MyTimeDayBookWeek) / 60) < 2
THEN
'0' + CAST(CONVERT(INT, @MyTimeDayBookWeek) / 60 AS VARCHAR)
ELSE
CAST(CONVERT(INT, @MyTimeDayBookWeek) / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @MyTimeDayBookWeek) % 60)), 2, 2)
SET @MyTimeDayBookMonth = CASE WHEN @MyTimeDayBookMonth < 0 THEN 0 ELSE @MyTimeDayBookMonth END
SET @MyTimeDayBookMonthHr =
CASE
WHEN
LEN(CONVERT(INT, @MyTimeDayBookMonth) / 60) < 2
THEN
'0' + CAST(CONVERT(INT, @MyTimeDayBookMonth) / 60 AS VARCHAR)
ELSE
CAST(CONVERT(INT, @MyTimeDayBookMonth) / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @MyTimeDayBookMonth) % 60)), 2, 2)
SET @MyTimeDayBookYear = CASE WHEN @MyTimeDayBookYear < 0 THEN 0 ELSE @MyTimeDayBookYear END
SET @MyTimeDayBookYearHr =
CASE
WHEN
LEN(CONVERT(INT, @MyTimeDayBookYear) / 60) < 2
THEN
'0' + CAST(CONVERT(INT, @MyTimeDayBookYear) / 60 AS VARCHAR)
ELSE
CAST(CONVERT(INT, @MyTimeDayBookYear) / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @MyTimeDayBookYear) % 60)), 2, 2)
SET @AdminTimeDayBookMonth = CASE WHEN @AdminTimeDayBookMonth < 0 THEN 0 ELSE @AdminTimeDayBookMonth END
SET @AdminTimeDayBookMonthHr =
CASE
WHEN
LEN(CONVERT(INT, @AdminTimeDayBookMonth) / 60) < 2
THEN
'0' + CAST(CONVERT(INT, @AdminTimeDayBookMonth) / 60 AS VARCHAR)
ELSE
CAST(CONVERT(INT, @AdminTimeDayBookMonth) / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @AdminTimeDayBookMonth) % 60)), 2, 2)
SET @AdminTimeDayBookYear = CASE WHEN @AdminTimeDayBookYear < 0 THEN 0 ELSE @AdminTimeDayBookYear END
SET @AdminTimeDayBookYearHr =
CASE
WHEN
LEN(CONVERT(INT, @AdminTimeDayBookYear) / 60) < 2
THEN
'0' + CAST(CONVERT(INT, @AdminTimeDayBookYear) / 60 AS VARCHAR)
ELSE
CAST(CONVERT(INT, @AdminTimeDayBookYear) / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (CONVERT(INT, @AdminTimeDayBookYear) % 60)), 2, 2)
SELECT @DailyAverageMTD = SUM(ISNULL(TIE.[Time], 0)) / CASE WHEN ISNULL([dbo].[KAAS_NetWorkingDays](@STARTOFMONTH, @MONTHTODATE), 0) = 0
THEN 1
ELSE [dbo].[KAAS_NetWorkingDays](@STARTOFMONTH, @MONTHTODATE) END
FROM [dbo].[TimeEntry] AS TIE
WHERE TIE.[FeeEarn] = @HANDLER
AND TIE.[Rec_Irr] = 'C'
AND TIE.[TimeOrCharge] <> 'B'
AND TIE.[Task] <> 'WRI'
AND TIE.[Matter] <> '~'
AND TIE.[Date] <= @MONTHTODATE
AND TIE.[Date] >= @STARTOFMONTH
SELECT @DailyAverageYTD = SUM(ISNULL(TIE.[Time], 0)) / CASE WHEN ISNULL([dbo].[KAAS_NetWorkingDays](@STARTOFYEAR, @MONTHTODATE), 0) = 0
THEN 1
ELSE [dbo].[KAAS_NetWorkingDays](@STARTOFYEAR, @MONTHTODATE) END
FROM [dbo].[TimeEntry] AS TIE
WHERE TIE.[FeeEarn] = @HANDLER
AND TIE.[Rec_Irr] = 'C'
AND TIE.[TimeOrCharge] <> 'B'
AND TIE.[Task] <> 'WRI'
AND TIE.[Matter] <> '~'
AND TIE.[Date] <= @GETDATE
AND TIE.[Date] >= @STARTOFYEAR
-- Statement to get Time recorder value
SELECT @MyTimeDayBookHr AS [MyTimedayBookHr],
@MyTimeDayBookWeekHr AS [TimeRecordedThisWeekHr],
@MyTimeDayBookMonthHr AS [TimeRecordedThisMonthHr],
@MyTimeDayBookYearHr AS [TimeRecordedThisYearHr],
@MyTimeDayBook AS [MyTimedayBook],
@MyTimeDayBookWeek AS [TimeRecordedThisWeek],
@MyTimeDayBookMonth AS [TimeRecordedThisMonth],
@MyTimeDayBookYear AS [TimeRecordedThisYear],
@AdminTimeDayBookMonthHr AS [AdminTimeRecordedThisMonthHr],
@AdminTimeDayBookYearHr AS [AdminTimeRecordedThisYearHr],
@AdminTimeDayBookMonth AS [AdminTimeRecordedThisMonth],
@AdminTimeDayBookYear AS [AdminTimeRecordedThisYear],
ISNULL(@DailyAverageMTD, 0) AS [AverageTimeMTD],
ISNULL(@DailyAverageYTD, 0) AS [AverageTimeYTD]
--Statement to get fees details
DECLARE @FeesCurrent DECIMAL(18, 2)
DECLARE @FeesLastPer DECIMAL(18, 2)
DECLARE @FeesYTD DECIMAL(18, 2)
DECLARE @FeesLastYTD DECIMAL(18, 2)
DECLARE @FeesLastYear DECIMAL(18, 2)
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = '
SELECT @FeesCurrent = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0)
FROM dbo.[BatchDetails] BD
INNER JOIN dbo.[BatchH] BH
ON BD.[BATCHNO] = BH.[BATCHNO]
AND BH.[POSTED] = ''Y''
INNER JOIN [dbo].[KPIParameters] KPI
ON KPI.[Year] = BD.[YEAR]
AND KPI.[Period] = BD.[PERNO]
WHERE BD.[FEE] = @Handler
AND BD.[TYPE] = ''I''
AND BD.[OUTLAY] = ''F'''
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT @FeesCurrent = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[Transactions] HED
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
AND TRN.[FeeEarner] = @Handler
INNER JOIN [dbo].[KPIParameters] KPI
ON KPI.[Year] = HED.[PostingYear]
AND KPI.[Period] = HED.[PostingPeriod]
WHERE HED.[RecType] = ''H'''
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesCurrent DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesCurrent=@FeesCurrent OUTPUT
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = '
SELECT @FeesLastPer = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0)
FROM dbo.[BatchDetails] BD
INNER JOIN dbo.[BatchH] BH
ON BD.[BATCHNO] = BH.[BATCHNO]
AND BH.[POSTED] = ''Y''
INNER JOIN [dbo].[KPIParameters] KPI
ON ( KPI.[Year] = BD.[YEAR]
AND KPI.[Period] <> 1
AND KPI.[Period] - 1 = BD.[PERNO])
OR ( KPI.[Year] = BD.[YEAR] - 1
AND KPI.[Period] = 1
AND BD.[PERNO] = 12)
WHERE BD.[FEE] = @Handler
AND BD.[TYPE] = ''I''
AND BD.[OUTLAY] = ''F'''
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT @FeesLastPer = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[Transactions] HED
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
AND TRN.[FeeEarner] = @Handler
INNER JOIN [dbo].[KPIParameters] KPI
ON ( KPI.[Year] = HED.[PostingYear]
AND KPI.[Period] <> 1
AND KPI.[Period] - 1 = HED.[PostingPeriod])
OR ( KPI.[Year] = HED.[PostingYear] - 1
AND KPI.[Period] = 1
AND HED.[PostingPeriod] = 12)
WHERE HED.[RecType] = ''H'''
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesLastPer DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesLastPer=@FeesLastPer OUTPUT
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = '
SELECT @FeesYTD = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0)
FROM dbo.[BatchDetails] BD
INNER JOIN dbo.[BatchH] BH
ON BD.[BATCHNO] = BH.[BATCHNO]
AND BH.[POSTED] = ''Y''
INNER JOIN [dbo].[KPIParameters] KPI
ON KPI.[Year] = BD.[YEAR]
AND KPI.[Period] >= BD.[PERNO]
WHERE BD.[FEE] = @Handler
AND BD.[TYPE] = ''I''
AND BD.[OUTLAY] = ''F'''
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT @FeesYTD = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[Transactions] HED
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
AND TRN.[FeeEarner] = @Handler
INNER JOIN [dbo].[KPIParameters] KPI
ON KPI.[Year] = HED.[PostingYear]
AND KPI.[Period] >= HED.[PostingPeriod]
WHERE HED.[RecType] = ''H'''
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesYTD DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesYTD=@FeesYTD OUTPUT
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = 'SELECT @FeesLastYTD = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0)
FROM dbo.[BatchDetails] BD
INNER JOIN dbo.[BatchH] BH
ON BD.[BATCHNO] = BH.[BATCHNO]
AND BH.[POSTED] = ''Y''
INNER JOIN [dbo].[KPIParameters] KPI
ON KPI.[Year]-1 = BD.[YEAR]
AND KPI.[Period] >= BD.[PERNO]
WHERE BD.[FEE] = @Handler
AND BD.[TYPE] = ''I''
AND BD.[OUTLAY] = ''F'''
END
ELSE
BEGIN
SET @NCOMMAND = 'SELECT @FeesLastYTD = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[Transactions] HED
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND TRN.[CorrectionInd] IN (''L'', ''X'')
AND TRN.[FeeEarner] = @Handler
INNER JOIN [dbo].[KPIParameters] KPI
ON KPI.[Year]-1 = HED.[PostingYear]
AND KPI.[Period] >= HED.[PostingPeriod]
WHERE HED.[RecType] = ''H'''
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesLastYTD DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesLastYTD=@FeesLastYTD OUTPUT
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = 'SELECT @FeesLastYear = ISNULL(SUM(CASE WHEN BH.[INVCR] = ''I'' THEN BD.[VALUE] ELSE 0 END - CASE WHEN BH.[INVCR] = ''C'' THEN BD.[VALUE] ELSE 0 END), 0)
FROM dbo.[BatchDetails] BD
INNER JOIN dbo.[BatchH] BH
ON BD.[BATCHNO] = BH.[BATCHNO]
AND BH.[POSTED] = ''Y''
INNER JOIN [dbo].[KPIParameters] KPI
ON KPI.[Year]-1 = BD.[YEAR]
WHERE BD.[FEE] = @Handler
AND BD.[TYPE] = ''I''
AND BD.[OUTLAY] = ''F'''
END
ELSE
BEGIN
SET @NCOMMAND = 'SELECT @FeesLastYear = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[Transactions] HED
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND TRN.[CorrectionInd] IN (''L'', ''X'')
AND TRN.[FeeEarner] = @Handler
INNER JOIN [dbo].[KPIParameters] KPI
ON KPI.[Year]-1 = HED.[PostingYear]
WHERE HED.[RecType] = ''H'''
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@FeesLastYear DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @FeesLastYear=@FeesLastYear OUTPUT
SELECT REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesCurrent, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedCurrentMonth],
REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesLastPer, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedLastMonth],
REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesYTD, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedYearToDate],
REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesLastYTD, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedLastYearToDate],
REPLACE(CONVERT(VARCHAR, CAST(ROUND(ISNULL(@FeesLastYear, 0), 0) AS MONEY), 1), '.00', '') AS [FeesIssuedLastYear]
DECLARE @DraftInvoice DECIMAL(18, 2)
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = '
SELECT @DraftInvoice = ISNULL(SUM((ISNULL(BD.[NET], 0) +
ISNULL(BD.[VATVALUE], 0)) *
CASE WHEN ISNULL(BH.[INVCR], ''I'') = ''C''
THEN -1
ELSE 1 END), 0)
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[BillHeader] BH
INNER JOIN [dbo].[BillDetails] BD
ON BD.[DRAFTNO] = BH.[DRAFTNO]
ON BH.[MATTER] = MAT.[Code]
AND BH.[BILLNO] = 0
WHERE MAT.[FECode] = @Handler'
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT @DraftInvoice = ISNULL(SUM((ISNULL(BD.[NetValue], 0) +
ISNULL(BD.[VatValue], 0)) *
CASE WHEN ISNULL(BH.[TYPE], ''I'') = ''C''
THEN -1
ELSE 1 END), 0)
FROM [dbo].[matters] AS MAT
INNER JOIN [dbo].[Billhead] BH
ON BH.[MatterCode] = MAT.[Code]
INNER JOIN [dbo].[BillDetail] BD
ON BD.[BillID] = BH.[BillingID]
AND BD.[RecordType] = ''F''
AND BD.[FeCode] = @Handler
WHERE MAT.[FECode] = @Handler
AND BH.[BillStatus] <> ''Approved'''
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10),@DraftInvoice DECIMAL(18, 2) OUTPUT', @Handler = @Handler, @DraftInvoice=@DraftInvoice OUTPUT
DECLARE @OSFees DECIMAL(19, 2)
DECLARE @OSInvoices DECIMAL(19, 2)
DECLARE @AVGDDays INT
-- Pino 2015-05-26 - Please make sure that this calculation exactly mirrors the corresponding one
-- in [dbo].[KAAS_DashboardCaseAlert] - if either is changed, change the other one
-- accordingly
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT @OSFees = DT.[OSFees],
@OSInvoices = DT.[OSInvoices],
@AVGDDays = CASE WHEN DT.[DebtorEntries] = 0
THEN 0
ELSE DT.[DebtorDays] / DT.[DebtorEntries] END
FROM (SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(CONVERT(DECIMAL(19, 2), ISNULL(DTL.[OSFees], 0))), 0)) AS [OSFees],
CONVERT(DECIMAL(19, 2), ISNULL(SUM(CONVERT(DECIMAL(19, 2), ISNULL(DTL.[OSVALUE], 0))), 0)) AS [OSInvoices],
ISNULL(SUM(CASE WHEN DTL.[DATE] IS NULL
THEN 0
WHEN DTL.[DATE] > @GETDATE
THEN 0
WHEN DTL.[OSVALUE] = 0
THEN 0
ELSE DATEDIFF(Day, DTL.[DATE], @GETDATE) END), 0) AS [DebtorDays],
ISNULL(SUM(CASE WHEN DTL.[DATE] IS NULL
THEN 0
WHEN DTL.[DATE] > @GETDATE
THEN 0
WHEN DTL.[OSVALUE] = 0
THEN 0
ELSE 1 END), 0) AS [DebtorEntries]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[DebtorsLedger] DTL
ON DTL.[MATTER] = MAT.[Code]
AND DTL.[OSValue] > 0
WHERE MAT.[FECode] = @Handler) DT'
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @GETDATE DATETIME, @OSFees DECIMAL(19, 2) OUTPUT, @OSInvoices DECIMAL(19, 2) OUTPUT, @AVGDDays INT OUTPUT', @Handler = @Handler, @GETDATE = @GETDATE, @OSFees = @OSFees OUTPUT, @OSInvoices = @OSInvoices OUTPUT, @AVGDDays = @AVGDDays OUTPUT
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @OSFees = DT.[OSFees],
@OSInvoices = DT.[OSInvoices],
@AVGDDays = CASE WHEN DT.[DebtorEntries] = 0
THEN 0
ELSE DT.[DebtorDays] / DT.[DebtorEntries] END
FROM (SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValueOS], 0)), 0)) AS [OSInvoices],
CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[FeesOS], 0)), 0)) AS [OSFees],
ISNULL(SUM(CASE WHEN TRN.[TransDate] IS NULL
THEN 0
WHEN TRN.[TransDate] > @GETDATE
THEN 0
WHEN TRN.[DebtorsValueOS] = 0
THEN 0
ELSE DATEDIFF(Day, TRN.[TransDate], @GETDATE) END), 0) AS [DebtorDays],
ISNULL(SUM(CASE WHEN TRN.[TransDate] IS NULL
THEN 0
WHEN TRN.[TransDate] > @GETDATE
THEN 0
WHEN TRN.[DebtorsValueOS] = 0
THEN 0
ELSE 1 END), 0) AS [DebtorEntries]
FROM [dbo].[matters] AS MAT
INNER JOIN [dbo].[Transactions] TRN
ON MAT.[Code] = TRN.[MatterCode]
WHERE TRN.[Posted] = ''Y''
AND MAT.[FECode] = @Handler
AND TRN.[CorrectionInd] = ''L''
AND TRN.[DebtorsValueOS] > 0
AND ((TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'')
OR (TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))) DT'
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @GETDATE DATETIME, @OSInvoices DECIMAL(19, 2) OUTPUT, @OSFees DECIMAL(19, 2) OUTPUT, @AVGDDays INT OUTPUT', @Handler = @Handler, @GETDATE = @GETDATE, @OSInvoices = @OSInvoices OUTPUT, @OSFees = @OSFees OUTPUT, @AVGDDays = @AVGDDays OUTPUT
END
DECLARE @WIP DECIMAL(19, 2)
-- Pino 2015-05-26 - Please make sure that this calculation exactly mirrors the corresponding one
-- in [dbo].[KAAS_DashboardCaseAlert] - if either is changed, change the other one
-- accordingly
-- John 2016-01-25 - Made query match the one in KAAS_DashboardCaseAlert
IF @IsSAM4 = 0
BEGIN
--SELECT @WIP = ISNULL(SUM(ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0)), 0)
-- FROM [dbo].[TimeEntry] TIE
-- INNER JOIN [dbo].[matters] MAT
-- ON MAT.[Code] = TIE.[Matter]
-- AND MAT.[Closed] = 'N'
-- WHERE TIE.[FeeEarn] = @Handler
-- AND TIE.[Rec_Irr] <> 'N'
-- AND TIE.[Matter] <> '~'
-- AND ( TIE.[TimeOrCharge] = 'T'
-- OR TIE.[TimeOrCharge] = 'C')
SELECT @WIP = ISNULL(SUM(WP.[WIP]), 0)
FROM ( SELECT TIE.[Matter],
ISNULL(SUM(ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0)), 0) AS [WIP]
FROM [dbo].[TimeEntry] TIE
INNER JOIN [dbo].[matters] MAT
ON MAT.[Code] = TIE.[Matter]
AND MAT.[Closed] = 'N'
WHERE TIE.[FeeEarn] = @Handler
AND TIE.[Rec_Irr] <> 'N'
AND TIE.[Matter] <> '~'
AND ( TIE.[TimeOrCharge] = 'T'
OR TIE.[TimeOrCharge] = 'C')
GROUP BY TIE.[Matter]) WP
INNER JOIN [dbo].[matters] MT2
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MT2.[ClientCode]
ON MT2.[Code] = WP.[Matter]
END
ELSE
BEGIN
--SELECT @WIP = ISNULL(SUM(CASE WHEN TIE.[InvoiceNo] = 0
-- THEN ISNULL(TIE.[Charge], 0)
-- ELSE 0 END), 0)
-- FROM [dbo].[TimeEntry] TIE
-- INNER JOIN [dbo].[matters] MAT
-- ON MAT.[Code] = TIE.[Matter]
-- AND MAT.[Closed] = 'N'
-- WHERE TIE.[FeeEarn] = @Handler
-- AND TIE.[Rec_Irr] <> 'N'
-- AND TIE.[Matter] <> '~'
-- AND ( TIE.[TimeOrCharge] = 'T'
-- OR TIE.[TimeOrCharge] = 'C')
SELECT @WIP = ISNULL(SUM(WP.[WIP]), 0)
FROM ( SELECT TIE.[Matter],
ISNULL(SUM(CASE WHEN TIE.[InvoiceNo] = 0
THEN ISNULL(TIE.[Charge], 0)
ELSE 0 END), 0) AS [WIP]
FROM [dbo].[TimeEntry] TIE
INNER JOIN [dbo].[matters] MAT
ON MAT.[Code] = TIE.[Matter]
AND MAT.[Closed] = 'N'
WHERE TIE.[FeeEarn] = @Handler
AND TIE.[Rec_Irr] <> 'N'
AND TIE.[Matter] <> '~'
AND ( TIE.[TimeOrCharge] = 'T'
OR TIE.[TimeOrCharge] = 'C')
GROUP BY TIE.[Matter]) WP
INNER JOIN [dbo].[matters] MT2
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MT2.[ClientCode]
ON MT2.[Code] = WP.[Matter]
END
-- Pino 2015-06-24 Start
DECLARE @OutlayBalance DECIMAL(19, 2)
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT @OutlayBalance = ISNULL(SUM(ISNULL(MAT.[OutlayBal], 0)), 0)
FROM [dbo].[matters] MAT
WHERE MAT.[FECode] = @Handler
AND MAT.[Closed] <> ''Y'''
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @OutlayBalance = ISNULL(SUM(ISNULL(OBL.[OutlayBalance], 0)), 0)
FROM ( SELECT MAT.[Code],
ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0) AS [OutlayBalance]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[MatterCode] = MAT.[Code]
AND ( ( (TRN.[Posted] = ''Y'')
AND (TRN.[RecType] <> ''V'')
AND (TRN.[CorrectionInd] = ''L''))
OR ( (TRN.[Posted] IS NULL)
AND (TRN.[RecType] IS NULL)
AND (TRN.[CorrectionInd] IS NULL)))
WHERE MAT.[FECode] = @Handler
AND MAT.[Closed] <> ''Y''
GROUP BY MAT.[Code]) OBL'
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @OutlayBalance DECIMAL(19, 2) OUTPUT', @Handler = @Handler, @OutlayBalance = @OutlayBalance OUTPUT
-- Pino 2015-06-24 END
--Statement to get OS fee and invoice
SELECT REPLACE(CONVERT(VARCHAR,CAST(ROUND(@OSInvoices,0) AS MONEY),1),'.00','') AS [OSInvoice],
REPLACE(CONVERT(VARCHAR,CAST(ROUND(@OSFees,0) AS MONEY),1),'.00','') AS [OSFees],
REPLACE(CONVERT(VARCHAR,CAST(ROUND(@AVGDDays,0) AS MONEY),1),'.00','') AS [AverageDebtorsDays],
REPLACE(CONVERT(VARCHAR,CAST(ROUND(@WIP,0) AS MONEY),1),'.00','') AS [CurrentWIP],
REPLACE(CONVERT(VARCHAR,CAST(ROUND(@DraftInvoice,0) AS MONEY),1),'.00','') AS [DraftInvoice],
REPLACE(CONVERT(VARCHAR,CAST(ROUND((@OSInvoices + @OutlayBalance + @WIP),0) AS MONEY),1),'.00','') AS [CurrentLookupValue], --Pino 2015-09-29
REPLACE(CONVERT(VARCHAR,CAST(ROUND(@OutlayBalance,0) AS MONEY),1),'.00','') AS [OutlayBalance] --Added Pino 2015-06-24
DECLARE @Open INT
DECLARE @Dormant INT
DECLARE @Expectinvoice INT
DECLARE @Noestimatefee INT
DECLARE @Approachingestimatedfee INT
DECLARE @Lockedupvalue INT
DECLARE @Noestimategiven INT
DECLARE @MoneyLaunderingchecks INT
DECLARE @EffectivelyCompleted INT
DECLARE @EstFeeWarningLimit DECIMAL(19, 2)
DECLARE @LockupUpValue DECIMAL(19, 2)
SELECT @EstFeeWarningLimit = CONVERT(DECIMAL(19, 2), ISNULL([SET].[KeyValue], '0'))
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'EstFeeWarningLimit'
SET @EstFeeWarningLimit = ISNULL(@EstFeeWarningLimit, 0)
SELECT @LockupUpValue = CONVERT(DECIMAL(19, 2), ISNULL([SET].[KeyValue], '0'))
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'LockupUpValue'
SET @LockupUpValue = ISNULL(@LockupUpValue, 0)
SELECT @Open = ISNULL(SUM(CASE WHEN MAT.[Closed] = 'Y'
THEN 0
WHEN MAT.[ClientCode] = 'ZZZZZZ'
THEN 0
WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2
THEN 0
WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter
THEN 0
ELSE 1 END), 0),
@Expectinvoice = ISNULL(SUM(CASE WHEN MAT.[ExpBillD] <= @GETDATE
THEN 1
ELSE 0 END), 0),
@Noestimatefee = ISNULL(SUM(CASE WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2
THEN 0
WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter
THEN 0
WHEN MAT.[EstFee] = 0
THEN 1
ELSE 0 END), 0),
@Approachingestimatedfee = ISNULL(SUM(CASE WHEN (COALESCE ((ISNULL(MAT.[ChargeBal], 0) / NULLIF (MAT.[EstFee], 0) * 100), 0)) > @EstFeeWarningLimit
THEN 1
ELSE 0 END), 0),
@Lockedupvalue = ISNULL(SUM(CASE WHEN (MAT.[ChargeBal] + MAT.[DebtBal] + MAT.[OutlayBal]) > @LockupUpValue
THEN 1
ELSE 0 END), 0),
@Noestimategiven = ISNULL(SUM(CASE WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2
THEN 0
WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter
THEN 0
WHEN MAT.[Section68] = 'Y'
THEN 0
ELSE 1 END), 0),
@EffectivelyCompleted=ISNULL(SUM(CASE WHEN isnumeric(MAT.[matter]) = 0 --system matters like ZZZZZZ/ZZZ2
THEN 0
WHEN convert(int, MAT.[matter]) = 0 --ignore "0" matter
THEN 0
WHEN ISNULL(MAT.PCODE, '') = '' AND ISNULL(PFECODE, '') = ''
THEN 1
ELSE 0 END),0)
FROM [dbo].[matters] MAT
WHERE MAT.[FECode] = @Handler
AND MAT.Closed <> 'Y'
DECLARE @MATTERS TABLE ([Code] VARCHAR(20), [LastActionDate] DATETIME)
INSERT INTO @MATTERS ([Code], [LastActionDate])
EXEC @Dormant = [dbo].[KAAS_GetDormantMatters] @Handler
SELECT @MoneyLaunderingchecks = COUNT(DISTINCT CON.[CODE])
FROM [dbo].[Contacts] CON
INNER JOIN [dbo].[matters] MAT
ON MAT.[ClientCode] = CON.[Code]
AND MAT.[Closed] <> 'Y'
WHERE CON.[FE] = @Handler
AND ISNULL(CON.[Approved], 0) <> 1
SELECT ISNULL(@Open, 0) AS [OpenMatters],
ISNULL(@Dormant, 0) AS [MyDormantMatters],
ISNULL(@Expectinvoice, 0) AS [NoCaseWhereExpectInvoiceDateHasPassed],
ISNULL(@Noestimatefee, 0) AS [NoCaseWithNoEstimateFee],
ISNULL(@Approachingestimatedfee, 0) AS [NoCaseApproachingEstimatedFee],
ISNULL(@Lockedupvalue, 0) AS [NoCaseApproachingLockedUpValue],
ISNULL(@MoneyLaunderingchecks, 0) AS [NoClientsThatRequireMoneyLaunderingChecks],
ISNULL(@Noestimategiven, 0) AS [NoCasesWithNoEstimateGiven],
ISNULL(@EffectivelyCompleted, 0) AS [NoCasesEffectivelyComplete]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardAddWidgetsChildPanels'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardAddWidgetsChildPanels]
END
GO
CREATE PROCEDURE KAAS_DashboardAddWidgetsChildPanels (
@userPanelId int,
@handlerCode varchar(10),
@widgetIds varchar(100)=NULL,
@panelIds varchar(100)=NULL
)
AS
/*******************************************************************************************************
* Adds Widgets and Child Panels into a Panel. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardAddWidgetsChildPanels] *
* *
* Modification History : *
* 2019-05-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
--Insert values in UserPanel
INSERT INTO [UserPanels] (handlercode, panelid, panelname, parentpanel)
SELECT @handlercode,
panelid,
panelname,
@userpanelid
FROM [Panels]
WHERE panelid
IN (SELECT * FROM [dbo].[KAAS_FN_CSVToTable](@panelIds))
AND
@panelIds IS NOT NULL;
--Insert values in UserWidgets
INSERT INTO [UserWidgets] (userpanelid,widgetid,widgetdata)
SELECT @userpanelid,
widgetid,
(N'Widgetdata')
FROM [Widgets]
WHERE Widgetid
IN (SELECT * FROM [dbo].[KAAS_FN_CSVToTable](@widgetIds))
AND
@widgetIds IS NOT NULL;
;WITH FirstLevel AS
(
SELECT UP.UserPanelId,
UP.PanelId,
UP.PanelName,
UP.ParentPanel
FROM [UserPanels] UP
WHERE UserPanelId=@userPanelId
OR
ParentPanel = @userpanelId
)SELECT * FROM FirstLevel
;WITH FirstLevel AS
(
SELECT UP.UserPanelId,
UP.PanelId,
UP.PanelName,
UP.ParentPanel
FROM [UserPanels] UP
WHERE UserPanelId=@userPanelId
OR
ParentPanel = @userpanelId
)SELECT UW.UserWidgetsId,
UW.UserPanelId,
UW.WidgetId,
UW.WidgetData,
W.WidgetName,
W.TemplateId
FROM [UserWidgets] UW
LEFT JOIN [Widgets] W ON UW.WidgetId = W.WidgetId
WHERE UW.UserPanelId
IN (SELECT UserPanelId FROM FirstLevel)
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardCaseAlert'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardCaseAlert]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_DashboardCaseAlert]
(@Handler VARCHAR(10),
@Function VARCHAR(50),
@PageNumber INT,
@PageSize INT,
@SearchText VARCHAR(100),
@SortColumn VARCHAR(20),
@SortDirection VARCHAR(10))
AS
/*******************************************************************************************************************************************************
*
* Retrieves Detailed information for the entries displayed on the Dashboard (My Overview) page
*
* Stored Procedure Name : KAAS_DashboardCaseAlert
* Copied From : ky_NETDashboardCaseAlert
*
* Pino 2014-11-19 - changed statements for Open Matters and Dormant Matters.
* assigned task to review remaining select statements
*
* Magesh 2015-05-05 - Changed conditions to get data more specifically
*
* Pino 2015-05-26 - SAM4 calculations
*
* Pino 2015-06-24 - Include Outlay Balance
*
* Pino 2015-06-25 - Fix drilldown for Clients Requiring Money Laundering Checks
* Exclude zero balances from Outlay Balance drilldown
*
* Magesh 2015-08-31 - Added condition to the query used to find out @TotalStatuteLimits to exculed min date values '1900-01-01'
*
* Magesh 2015-09-15 - Added three more function for fees for current month , last month and year to date.
*
* Magesh 2015-10-10 - Added three more funtions to show timedaybook and time enty for week,month and year.
*
* Magesh 2015-10-09 - Added three more funtions to show Admin time enty for week,month and year.
*
* Magesh 2015-10-16 - Added extra funtions to show effectively complete matters.
*
* John 2015-11-09 - Fixed function 'TimeDayBookforWeek' looking for 'ADM' handler instead of @Handler
*
* John 2015-11-19 - KEYD-2939 - Changed the inner join from batchdetails to matters to now be
* batchh to matters
* John 2015-11-25 - KEYD-2943 - Wrapped a number of financial figures in new function )
*
* John 2016-01-11 - Undid previous change as the VB .NET handles this now.
* It was also messing up totals for the figures (e.g. can't add "(-123.45)" to "512.12")
* Also excluding matters with no WIP from the WIP drill down
*
* John 2016-02-02 - Now excluding close matters from undertakings and statute approaching
* http://jira1.dsrc.in:8080/browse/KEYD-3158
*
* Arun 2016-02-05 - Specified the Varchar size
*
* Pino 2016-04-11 - Ignore No Estimate Fee calculation for system matters like ZZZZZZ/ZZZ2 and
* for the "zero" matters
*
* Pino 2016-04-12 - Exclude further "zero" matters
*
* Suriya 2016-04-26 - KEYD-3536-In the My Overview page the "Admin time recorded this week" drill down list is not showing any details.
*
* Arun 2016-05-16 - Have added OSFees and Debtors Days in Dashboard alert
*
* John 2016-08-02 - Code refactor
*
* Sridharan 2016-08-16 - KEYD:3591: In "My over view" page the "Fee" column of the Fees issued Year to Date
* drill down list is displayed wrong.
*
* John 2016-09-26 - KEYD-4090 Fees issued must now be posted before appearing in My Overview
*
* John 2017-03-20 - Added Last Year and Last Year to Date functions
* Also serious overhaul of some queries
*
* John 2017-03-27 - Fixed getdate not being passed into SQL statement
* Corrected SAM3 Fees Last Year (to Date) clause so it looks at last year, not next
*
* Pino 2017-03-28 - Fixed use of ISNULL(RTRIM(
*
* John 2017-06-06 - Time for this year now only looks at chargeable time (to be consistent with other time frames)
*
* Pino 2017-06-15 - Fixed calculation for Debtors Days - @GETDATE not passed in.
*
* John 2017-10-26 - Fixed potential mismatch with ky_NETDashboard_v2
*
* John 2018-10-25 - KEYD-5519: Made date check for dormant matters consistent with warning on diary (using setting now)
*
* John 2018-11-05 - Dormant check now only looks at complete actions
*
* John 2018-11-08 - Dormant check looks at any activity in diary, time ledger, matter ledger and undertakings
*
* John 2018-11-09 - Fixed Outstanding Fees window not showing anything - KEYD-5558
*
* John 2018-11-12 - Fixed SAM4 debtors days not showing anything - KEYD-5558
*
* John 2018-12-06 - Added return for "DraftInvoices" - KEYD-5563
*
* Vinodhan K 2019-18-07 - Added KAAS_DashboardCaseAlert
*******************************************************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @TODAYNUM INT
DECLARE @MONDAY DATETIME
DECLARE @STARTOFMONTH DATETIME
DECLARE @STARTOFYEAR DATETIME
DECLARE @MONTHTODATE DATETIME
DECLARE @GETDATE DATETIME
SELECT @GETDATE = GETDATE()
SELECT @STARTOFMONTH = KPI.[FromDate],
@STARTOFYEAR = KPI.[StartOfYear],
@MONTHTODATE = CASE WHEN @GETDATE > KPI.[ToDate] THEN KPI.[ToDate] ELSE @GETDATE END
FROM [dbo].[KPIParameters] AS KPI
SELECT @STARTOFYEAR = ISNULL(@STARTOFYEAR, CONVERT(DATETIME, CONVERT(VARCHAR(4), YEAR(@GETDATE)) + '0101')),
@TODAYNUM = DATEPART(WEEKDAY, @GETDATE) - DATEPART(WEEKDAY, '20000102') --the 2nd of January, 2000 was a Monday
IF @TODAYNUM <= 0
SET @TODAYNUM = @TODAYNUM + 7
SET @MONDAY = CONVERT(DATETIME, CONVERT(VARCHAR, DATEADD(DAY, 1 - @TODAYNUM, @GETDATE), 112))
SELECT @FUNCTION = UPPER(ISNULL(@FUNCTION, ''))
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF @FUNCTION = 'OPENMATTER'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#OpenMatterTable
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code],
RTRIM(ISNULL(CON.[Name], '')) AS [Name],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description]
FROM [dbo].[matters] MAT
LEFT OUTER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
[MAT].[Code] LIKE '%' + @SearchText + '%'
OR
[CON].[NAME] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
)
AND MAT.[FECode] = @Handler
AND MAT.[ClientCode] <> 'ZZZZZZ'
AND CASE WHEN ISNUMERIC(MAT.[matter]) = 0
THEN 1
WHEN CONVERT(INT, MAT.[matter]) = 0
THEN 1
ELSE 0 END = 0
AND MAT.[Closed] <> 'Y') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC
SELECT
*
FROM
#OpenMatterTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#OpenMatterTable
END
ELSE IF @FUNCTION = 'EFFECTIVELYCOMPLETE'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#EffectivelyCompleteTable
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code],
RTRIM(ISNULL(CON.[Name], '')) AS [Name],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description]
FROM [dbo].[matters] AS MAT
LEFT OUTER JOIN [dbo].[Contacts] AS CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
[MAT].[Code] LIKE '%' + @SearchText + '%'
OR
[CON].[NAME] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
)
AND [MAT].[FECode] = @Handler
AND ISNULL(MAT.[PCODE], '') = ''
AND ISNULL(MAT.[PFECODE], '') = ''
AND CASE WHEN ISNUMERIC(MAT.[matter]) = 0
THEN 1
WHEN CONVERT(INT, MAT.[matter]) = 0
THEN 1
ELSE 0 END = 0
AND MAT.[Closed] <> 'Y') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC
SELECT
*
FROM
#EffectivelyCompleteTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#EffectivelyCompleteTable
END
ELSE IF @FUNCTION = 'DORMANTMATTER'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
DECLARE @MATTERS TABLE ([Code] VARCHAR(20), [LastActionDate] DATETIME)
INSERT INTO @MATTERS ([Code], [LastActionDate])
EXEC [dbo].[KAAS_GetDormantMatters] @Handler
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#DormantMatterTable
FROM
(SELECT MAT.[Code] AS [Code],
ISNULL(RTRIM([CNT].[Name]), '') AS [Name],
ISNULL(RTRIM([MAT].[Description]), '') AS [Description],
TMP.[LastActionDate]
FROM [dbo].[matters] AS MAT
LEFT OUTER JOIN [dbo].[Contacts] AS CNT
ON MAT.[ClientCode] = CNT.[Code]
INNER JOIN @MATTERS AS TMP
ON MAT.[Code] = TMP.[Code]
WHERE
(
[MAT].[Code] LIKE '%' + @SearchText + '%'
OR
[CNT].[NAME] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
)) AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC
SELECT
*
FROM
#DormantMatterTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#DormantMatterTable
END
ELSE IF @FUNCTION = 'INVOICEDATEPASSED'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#InvoiceDatePassedTable
FROM
(SELECT MAT.[Code] AS [Code],
RTRIM(ISNULL(CON.[Name], '')) AS [Name],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description],
MAT.[ExpBillD] AS [ExpectedBillDate],
ISNULL(MAT.[EstFee], 0) AS [EstimatedFee],
ISNULL(MAT.[ChargeBal], 0) AS [WIP]
FROM [dbo].[matters] AS MAT
LEFT JOIN [dbo].[Contacts] AS CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
[MAT].[Code] LIKE '%' + @SearchText + '%'
OR
[CON].[NAME] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
OR
[MAT].[ExpBillD] LIKE '%' + @SearchText + '%'
OR
[MAT].[EstFee] LIKE '%' + @SearchText + '%'
OR
[MAT].[ChargeBal] LIKE '%' + @SearchText + '%'
)
AND MAT.[FECode] = @Handler
AND MAT.[ExpBillD] <= @GETDATE
AND MAT.[Closed] <> 'Y') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ExpectedBillDate' THEN [ExpectedBillDate]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ExpectedBillDate' THEN [ExpectedBillDate]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'EstimatedFee' THEN [EstimatedFee]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'EstimatedFee' THEN [EstimatedFee]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END DESC
SELECT
*
FROM
#InvoiceDatePassedTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#InvoiceDatePassedTable
END
ELSE IF @FUNCTION = 'NOESTIMATEFEE'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#NoEstimateFeeTable
FROM
(SELECT MAT.[Code] AS [Code],
RTRIM(ISNULL(CON.[Name], '')) AS [Name],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description]
FROM [dbo].[matters] AS MAT
LEFT OUTER JOIN [dbo].[Contacts] AS CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
[MAT].[Code] LIKE '%' + @SearchText + '%'
OR
[CON].[NAME] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
)
AND MAT.[FECode] = @Handler
AND CASE WHEN ISNUMERIC(MAT.[matter]) = 0
THEN 1
WHEN CONVERT(INT, MAT.[matter]) = 0
THEN 1
ELSE MAT.[EstFee] END = 0
AND MAT.[Closed] <> 'Y') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC
SELECT
*
FROM
#NoEstimateFeeTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#NoEstimateFeeTable
END
ELSE IF @FUNCTION = 'APPROACHINGESTIMATEFEE'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#ApproachingEstimateFeeTable
FROM
(SELECT MAT.[Code] AS [Code],
RTRIM(ISNULL(CON.[Name],'')) AS [Name],
RTRIM(ISNULL(MAT.[Description],'')) AS [Description],
ISNULL(EstFee,0) AS [EstimatedFee],
ISNULL(ChargeBal,0) AS [WIP],
CAST(CAST((COALESCE((ISNULL(MAT.[ChargeBal], 0) / NULLIF(MAT.[EstFee], 0) * 100), 0)) AS DECIMAL(18,2)) AS VARCHAR(100)) + '%' AS [PercentageOfEstimatedFee]
FROM [dbo].[matters] AS MAT
LEFT OUTER JOIN [dbo].[Contacts] AS CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
[MAT].[Code] LIKE '%' + @SearchText + '%'
OR
[CON].[Name] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
OR
[MAT].[EstFee] LIKE '%' + @SearchText + '%'
OR
[MAT].[ChargeBal] LIKE '%' + @SearchText + '%'
OR
(CAST(CAST((COALESCE((ISNULL(MAT.[ChargeBal], 0) / NULLIF(MAT.[EstFee], 0) * 100), 0)) AS DECIMAL(18,2)) AS VARCHAR(100)) + '%') LIKE '%' + @SearchText + '%'
)
AND FECode = @Handler
AND COALESCE((ISNULL(MAT.[ChargeBal], 0) / NULLIF(MAT.[EstFee], 0) * 100), 0) > (SELECT ISNULL([KeyValue], 0) FROM [dbo].[Settings] WHERE [KeyName] = 'EstFeeWarningLimit')
AND MAT.[Closed] <> 'Y') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'EstimatedFee' THEN [EstimatedFee]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'EstimatedFee' THEN [EstimatedFee]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'PercentageOfEstimatedFee' THEN [PercentageOfEstimatedFee]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'PercentageOfEstimatedFee' THEN [PercentageOfEstimatedFee]
END
END DESC
SELECT
*
FROM
#ApproachingEstimateFeeTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#ApproachingEstimateFeeTable
END
ELSE IF @FUNCTION = 'APPROACHINGLOCKEDUP'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#ApproachingLockedupTable
FROM
(SELECT MAT.[Code] AS [Code],
RTRIM(ISNULL(CON.[Name],'')) AS [Name],
RTRIM(ISNULL(MAT.[Description],'')) AS [Description]
FROM [dbo].[matters] AS MAT
LEFT OUTER JOIN [dbo].[Contacts] AS CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
[MAT].[Code] LIKE '%' + @SearchText + '%'
OR
[CON].[NAME] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
)
AND MAT.[FECode] = @Handler
AND (ISNULL(MAT.[ChargeBal], 0) + ISNULL(MAT.[DebtBal], 0) + ISNULL(MAT.[OutlayBal], 0)) > (SELECT ISNULL([KeyValue], 0) FROM [dbo].[Settings] WHERE KeyName = 'LockupUpValue')
AND MAT.[Closed] <> 'Y') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC
SELECT
*
FROM
#ApproachingLockedupTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#ApproachingLockedupTable
END
ELSE IF @Function='MONEYLANDERINGCHECKS'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#MoneyLanderingCheckTable
FROM
(
-- Pino 2015-06-25 Rewrite START
SELECT RTRIM(ISNULL(CON.[Code], '')) AS [ClientCode],
RTRIM(ISNULL(CON.[Name], '')) AS [Name],
[dbo].[ky_RemoveSpuriousWhitespace2](RTRIM(ISNULL(CON.[Address], '')), 200) AS [Address],
RM.[Code] AS [Code],
RM.[Description] AS [Description]
FROM [dbo].[Contacts] CON
-- Get code and description of most recently started matter for this client
-- Because it's a Cross Apply it works akin to an INNER JOIN so clients with
-- no open matters are automatically excluded.
CROSS APPLY ( SELECT TOP 1
RTRIM(ISNULL(MAT.[Code], '')) AS [Code],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description]
FROM [dbo].[matters] MAT
WHERE MAT.[ClientCode] = CON.[Code]
AND MAT.[Closed] <> 'Y'
ORDER BY MAT.[Started] DESC) RM
WHERE
(
[CON].[Code] LIKE '%' + @SearchText + '%'
OR
[CON].[Name] LIKE '%' + @SearchText + '%'
OR
[dbo].[ky_RemoveSpuriousWhitespace2](RTRIM(ISNULL(CON.[Address], '')), 200) LIKE '%' + @SearchText + '%'
OR
[RM].[Code] LIKE '%' + @SearchText + '%'
OR
[RM].[Description] LIKE '%' + @SearchText + '%'
)
AND CON.[FE] = @Handler
AND ISNULL(CON.[Approved], 0) <> 1
-- Pino 2015-06-25 Rewrite END
) AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientCode' THEN [ClientCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientCode' THEN [ClientCode]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Address' THEN [Address]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Address' THEN [Address]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC
SELECT
*
FROM
#MoneyLanderingCheckTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#MoneyLanderingCheckTable
END
ELSE IF @Function='NOESTIMATEGIVEN'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#NoEstimateGivenTable
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code],
RTRIM(ISNULL(CON.[Name], '')) AS [Name],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
[MAT].[Code] LIKE '%' + @SearchText + '%'
OR
[CON].[NAME] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
)
AND MAT.[FECode] = @Handler
AND ISNULL(MAT.[Section68], '') <> 'Y'
AND CASE WHEN isnumeric(MAT.[matter]) = 0
THEN 1
WHEN convert(int, MAT.[matter]) = 0
THEN 1
ELSE 0 END = 0
AND MAT.[Closed] <> 'Y') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC
SELECT
*
FROM
#NoEstimateGivenTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#NoEstimateGivenTable
END
ELSE IF @Function='WIP'
-- Pino 2015-05-26 - Please make sure that this calculation exactly mirrors the corresponding one
-- in [dbo].[Ky_NETDashBoard] - if either is changed, change the other one
-- accordingly
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#WIPTable
FROM
(SELECT WP.[Matter] AS [Code],
RTRIM(ISNULL(CON.[NAME], '')) AS [ClientName],
RTRIM(ISNULL(CON.[CODE], '')) AS [ClientCode],
RTRIM(ISNULL(MT2.[Description], '')) AS [Description],
WP.[WIP] AS [WIP],
WP.[LastTimeEntryDate] AS [LastTimeEntryDate]
FROM ( SELECT TIE.[Matter],
ISNULL(SUM(ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0)), 0) AS [WIP],
MAX(TIE.[Date]) AS [LastTimeEntryDate]
FROM [dbo].[TimeEntry] TIE
INNER JOIN [dbo].[matters] MAT
ON MAT.[Code] = TIE.[Matter]
AND MAT.[Closed] = 'N'
WHERE TIE.[FeeEarn] = @Handler
AND TIE.[Rec_Irr] <> 'N'
AND TIE.[Matter] <> '~'
AND ( TIE.[TimeOrCharge] = 'T'
OR TIE.[TimeOrCharge] = 'C')
GROUP BY TIE.[Matter]) WP
INNER JOIN [dbo].[matters] MT2
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MT2.[ClientCode]
ON MT2.[Code] = WP.[Matter]
WHERE
(
[WP].[Matter] LIKE '%' + @SearchText + '%'
OR
[CON].[NAME] LIKE '%' + @SearchText + '%'
OR
[CON].[CODE] LIKE '%' + @SearchText + '%'
OR
[MT2].[Description] LIKE '%' + @SearchText + '%'
OR
[WP].[WIP] LIKE '%' + @SearchText + '%'
OR
[WP].[LastTimeEntryDate] LIKE '%' + @SearchText + '%'
)
AND
WP.[WIP] <> 0) AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientCode' THEN [ClientCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientCode' THEN [ClientCode]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'LastTimeEntryDate' THEN [LastTimeEntryDate]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'LastTimeEntryDate' THEN [LastTimeEntryDate]
END
END DESC
SELECT
*
FROM
#WIPTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#WIPTable
END
ELSE
BEGIN
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#WIPSamTable
FROM
(SELECT WP.[Matter] AS [Code],
RTRIM(ISNULL(CON.[NAME], '')) AS [ClientName],
RTRIM(ISNULL(CON.[CODE], '')) AS [ClientCode],
RTRIM(ISNULL(MT2.[Description], '')) AS [Description],
WP.[WIP] AS [WIP],
WP.[LastTimeEntryDate] AS [LastTimeEntryDate]
FROM ( SELECT TIE.[Matter],
ISNULL(SUM(CASE WHEN TIE.[InvoiceNo] = 0
THEN ISNULL(TIE.[Charge], 0)
ELSE 0 END), 0) AS [WIP],
MAX(TIE.[Date]) AS [LastTimeEntryDate]
FROM [dbo].[TimeEntry] TIE
INNER JOIN [dbo].[matters] MAT
ON MAT.[Code] = TIE.[Matter]
AND MAT.[Closed] = 'N'
WHERE TIE.[FeeEarn] = @Handler
AND TIE.[Rec_Irr] <> 'N'
AND TIE.[Matter] <> '~'
AND ( TIE.[TimeOrCharge] = 'T'
OR TIE.[TimeOrCharge] = 'C')
GROUP BY TIE.[Matter]) WP
INNER JOIN [dbo].[matters] MT2
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MT2.[ClientCode]
ON MT2.[Code] = WP.[Matter]
WHERE
(
[WP].[Matter] LIKE '%' + @SearchText + '%'
OR
[CON].[NAME] LIKE '%' + @SearchText + '%'
OR
[CON].[CODE] LIKE '%' + @SearchText + '%'
OR
[MT2].[Description] LIKE '%' + @SearchText + '%'
OR
[WP].[WIP] LIKE '%' + @SearchText + '%'
OR
[WP].[LastTimeEntryDate] LIKE '%' + @SearchText + '%'
)
AND
WP.[WIP] <> 0) AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientCode' THEN [ClientCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientCode' THEN [ClientCode]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'LastTimeEntryDate' THEN [LastTimeEntryDate]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'LastTimeEntryDate' THEN [LastTimeEntryDate]
END
END DESC
SELECT
*
FROM
#WIPSamTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#WIPSamTable
END
END
ELSE IF @Function='OSINVOICE'
-- Pino 2015-05-26 - Please make sure that this calculation exactly mirrors the corresponding one
-- in [dbo].[Ky_NETDashBoard] - if either is changed, change the other one
-- accordingly
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#OSInvoiceSAM3Table
FROM
(SELECT RTRIM(ISNULL(DLG.[Ref], '''')) AS [InvoiceRef],
RTRIM(ISNULL(DLG.[MATTER], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [ClientName],
RTRIM(ISNULL(MAT.[Description],'''')) AS [Description],
ISNULL(CONVERT(VARCHAR,DLG.[DATE],106),'''') AS [InvoiceDate],
CONVERT(DECIMAL(19, 2), DLG.OSVALUE) AS [Outstanding],
DATEDIFF(dd, DLG.[DATE], @GETDATE) AS [DaysOld]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[DebtorsLedger] DLG
ON DLG.[MATTER] = MAT.[Code]
AND DLG.[OSVALUE] > 0
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[DLG].[Ref] LIKE ''%' + @SearchText + '%''
OR
[DLG].[MATTER] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[DLG].[DATE] LIKE ''%' + @SearchText + '%''
OR
[DLG].[OSVALUE] LIKE ''%' + @SearchText + '%''
)
)
AND
MAT.[FECode] = @Handler) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#OSInvoiceSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#OSInvoiceSAM3Table'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#OSInvoiceSAM4Table
FROM
(SELECT TRN.[OutlayBill] AS [InvoiceRef],
TRN.[MatterCode] AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [ClientName],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Description],
CONVERT(VARCHAR, TRN.[TransDate], 106) AS [InvoiceDate],
CONVERT(DECIMAL(19, 2), ISNULL(TRN.[DebtorsValueOS], 0)) AS [Outstanding],
CASE WHEN TRN.[TransDate] IS NULL
THEN 0
WHEN TRN.[TransDate] > @GETDATE
THEN 0
WHEN TRN.[DebtorsValueOS] = 0
THEN 0
ELSE DATEDIFF(Day, TRN.[TransDate], @GETDATE) END AS [DaysOld]
FROM [dbo].[Transactions] TRN
LEFT OUTER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[contacts] CON
ON CON.[Code] = MAT.[ClientCode]
ON MAT.[code] = TRN.[MatterCode]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[TRN].[OutlayBill] LIKE ''%' + @SearchText + '%''
OR
[TRN].[MatterCode] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransDate] LIKE ''%' + @SearchText + '%''
OR
[TRN].[DebtorsValueOS] LIKE ''%' + @SearchText + '%''
)
)
AND TRN.[Posted] = ''Y''
AND TRN.[FeeEarner] = @Handler
AND TRN.[CorrectionInd] = ''L''
AND ( ( TRN.[XnType] = ''I''
AND TRN.[RecType] = ''H'')
OR ( TRN.[XnType] = ''J''
AND TRN.[RecType] = ''D''))
AND TRN.[DebtorsValueOS] > 0) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#OSInvoiceSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#OSInvoiceSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @GETDATE DATETIME, @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @GETDATE = @GETDATE, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
ELSE IF @Function='UNDERTAKINGS'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#UndertakingTable
FROM
(SELECT
RTRIM(ISNULL(UND.MATTER,'')) AS Code,
RTRIM(ISNULL(Contacts.[Name],'')) AS ClientName,
RTRIM(ISNULL(M.[Description],'')) AS [Description],
CASE
WHEN UND.UNDDATE IS NULL THEN ''
WHEN CONVERT(VARCHAR(11),UND.UNDDATE,23)='19000101' THEN ''
ELSE CONVERT(VARCHAR(11),UND.UNDDATE ,20)
END AS [Date]
FROM
dbo.[Undertakings] UND
LEFT JOIN
Matters AS M
ON
UND.MATTER = M.Code
LEFT JOIN
Contacts
ON
M.ClientCode = Contacts.Code
WHERE
(
[UND].[MATTER] LIKE '%' + @SearchText + '%'
OR
[Contacts].[Name] LIKE '%' + @SearchText + '%'
OR
[M].[Description] LIKE '%' + @SearchText + '%'
)
AND
UND.[AuthorisedByFE] = @Handler
AND
UND.[DISCHARGEDATE] IS NULL
AND M.[Closed] <> 'Y') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC
SELECT
*
FROM
#UndertakingTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#UndertakingTable
END
ELSE IF @Function='STATUTEDATE'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#StatuteDateTable
FROM
(SELECT
RTRIM(ISNULL(M.Code,'')) AS [Code],
RTRIM(ISNULL(Contacts.[Name],'')) AS [ClientName],
RTRIM(ISNULL(M.[Description],'')) AS [Description],
CASE
WHEN M.StatuteLimits IS NULL THEN ''
WHEN CONVERT(VARCHAR(11),M.StatuteLimits,23)='19000101' THEN ''
ELSE CONVERT(VARCHAR(11),M.StatuteLimits ,20)
END AS [Date]
FROM
Matters AS M
INNER JOIN
Contacts
ON
M.ClientCode = Contacts.Code
WHERE
(
[M].[Code] LIKE '%' + @SearchText + '%'
OR
[Contacts].[Name] LIKE '%' + @SearchText + '%'
OR
[M].[Description] LIKE '%' + @SearchText + '%'
)
AND
M.FECode = @Handler
AND
DATEDIFF(DD, @GETDATE, CASE WHEN ISNULL(M.[StatuteLimits], '21000101')='19000101' THEN '21000101' ELSE M.[StatuteLimits] END) <= 60
AND
M.[Closed] <> 'Y') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC
SELECT
*
FROM
#StatuteDateTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#StatuteDateTable
END
ELSE IF @Function='OUTLAYBALANCE'
BEGIN
EXEC [dbo].[KAAS_OutlayBalanceDrilldown] @Handler, @PageNumber, @PageSize, @SearchText, @SortColumn, @SortDirection
END
ELSE IF @Function='Fees Issued Current Month'
BEGIN
-- Rewrite by John START
-- KEYD-3505
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeeIssuedCurrentMonthSAM3Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
ISNULL(BAD.[VALUE], 0) *
CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C''
THEN -1
ELSE 1 END AS [Fee],
RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref],
RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative],
BAD.[DATE] AS [Date]
FROM [dbo].[BatchDetails] AS BAD
INNER JOIN [dbo].[BatchH] AS BAH
ON BAD.[BATCHNO] = BAH.[BATCHNO]
AND BAH.[Posted] = ''Y''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON KPI.[Year] = BAD.[YEAR]
AND KPI.[Period] = BAD.[PERNO]
INNER JOIN [dbo].[matters] AS MAT
ON BAH.[MATTER] = MAT.[Code]
INNER JOIN [dbo].[Contacts] AS CON
ON MAT.[ClientCode] = CON.[Code]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[BAD].[VALUE] LIKE ''%' + @SearchText + '%''
OR
[BAH].[INVCR] LIKE ''%' + @SearchText + '%''
OR
[BAD].[REF] LIKE ''%' + @SearchText + '%''
OR
[BAD].[NARR] LIKE ''%' + @SearchText + '%''
)
)
AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + '''
AND ISNULL(BAD.[TYPE], '''') = ''I''
AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeeIssuedCurrentMonthSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeeIssuedCurrentMonthSAM3Table'
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeeIssuedCurrentMonthSAM4Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
ISNULL(TRN.[FeesBilled], 0) *
ISNULL(TRN.[DrCr], 1) * -1 AS [Fee],
RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref],
RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative],
TRN.[TransDate] AS [Date]
FROM [dbo].[Contacts] AS CON
INNER JOIN [dbo].[matters] AS MAT
ON CON.[Code] = MAT.[ClientCode]
INNER JOIN [dbo].[Transactions] AS HED
ON HED.[MatterCode] = MAT.[Code]
INNER JOIN [dbo].[Transactions] AS TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND TRN.[CorrectionInd] IN (''L'', ''X'')
AND TRN.[FeeEarner] = ''' + @Handler + '''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON KPI.[Year] = HED.[PostingYear]
AND KPI.[Period] = HED.[PostingPeriod]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[TRN].[FeesBilled] LIKE ''%' + @SearchText + '%''
OR
[TRN].[DrCr] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransRef] LIKE ''%' + @SearchText + '%''
OR
[TRN].[Narrative] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransDate] LIKE ''%' + @SearchText + '%''
)
)
AND
ISNULL(HED.[RecType], '''') = ''H'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeeIssuedCurrentMonthSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeeIssuedCurrentMonthSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
ELSE IF @Function='Fees Issued Last Month'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeesIssuedLastMonthSAM3Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
ISNULL(BAD.[VALUE], 0) *
CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C''
THEN -1
ELSE 1 END AS [Fee],
RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref],
RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative],
BAD.[DATE] AS [Date]
FROM [dbo].[BatchDetails] AS BAD
INNER JOIN [dbo].[BatchH] AS BAH
ON BAD.[BATCHNO] = BAH.[BATCHNO]
AND BAH.[Posted] = ''Y''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON (KPI.[Year] = BAD.[YEAR]
AND KPI.[Period] <> 1
AND KPI.[Period] - 1 = BAD.[PERNO])
OR (KPI.[Year] = BAD.[YEAR] - 1
AND KPI.[Period] = 1
AND BAD.[PERNO] = 12)
INNER JOIN [dbo].[matters] AS MAT
ON BAH.[MATTER] = MAT.[Code]
INNER JOIN [dbo].[Contacts] AS CON
ON MAT.[ClientCode] = CON.[Code]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[BAD].[VALUE] LIKE ''%' + @SearchText + '%''
OR
[BAH].[INVCR] LIKE ''%' + @SearchText + '%''
OR
[BAD].[REF] LIKE ''%' + @SearchText + '%''
OR
[BAD].[NARR] LIKE ''%' + @SearchText + '%''
OR
[BAD].[DATE] LIKE ''%' + @SearchText + '%''
)
)
AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + '''
AND ISNULL(BAD.[TYPE], '''') = ''I''
AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeesIssuedLastMonthSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeesIssuedLastMonthSAM3Table'
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeesIssuedLastMonthSAM4Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
ISNULL(TRN.[FeesBilled], 0) *
ISNULL(TRN.[DrCr], 1) * - 1 AS [Fee],
RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref],
RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative],
TRN.[TransDate] AS [Date]
FROM [dbo].[Contacts] AS CON
INNER JOIN [dbo].[matters] AS MAT
ON CON.[Code] = MAT.[ClientCode]
INNER JOIN [dbo].[Transactions] AS HED
ON HED.[MatterCode] = MAT.[Code]
INNER JOIN [dbo].[Transactions] AS TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND TRN.[CorrectionInd] IN (''L'', ''X'')
AND TRN.[FeeEarner] = ''' + @HANDLER + '''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON (KPI.[Year] = HED.[PostingYear]
AND KPI.[Period] <> 1
AND KPI.[Period] - 1 = HED.[PostingPeriod])
OR (KPI.[Year] = HED.[PostingYear] - 1
AND KPI.[Period] = 1
AND HED.[PostingYear] = 12)
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[TRN].[FeesBilled] LIKE ''%' + @SearchText + '%''
OR
[TRN].[DrCr] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransRef] LIKE ''%' + @SearchText + '%''
OR
[TRN].[Narrative] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransDate] LIKE ''%' + @SearchText + '%''
)
)
AND ISNULL(HED.[RecType], '''') = ''H'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeesIssuedLastMonthSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeesIssuedLastMonthSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
ELSE IF @Function='Fees Issued Year to Date'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeesIssuedYearToDateSAM3Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C'' THEN -BAD.[VALUE]
WHEN ISNULL(BAH.[INVCR], '''') = ''I'' THEN BAD.[VALUE]
ELSE 0 END AS [Fee],
RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref],
RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative],
BAD.[DATE] AS [Date]
FROM [dbo].[BatchDetails] AS BAD
INNER JOIN [dbo].[BatchH] AS BAH
ON BAD.[BATCHNO] = BAH.[BATCHNO]
AND BAH.[Posted] = ''Y''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON KPI.[Year] = BAD.[YEAR]
AND KPI.[Period] >= BAD.[PERNO]
INNER JOIN [dbo].[matters] AS MAT
ON BAH.[MATTER] = MAT.[Code]
INNER JOIN [dbo].[Contacts] AS CON
ON MAT.[ClientCode] = CON.[Code]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[BAH].[INVCR] LIKE ''%' + @SearchText + '%''
OR
[BAD].[REF] LIKE ''%' + @SearchText + '%''
OR
[BAD].[NARR] LIKE ''%' + @SearchText + '%''
OR
[BAD].[DATE] LIKE ''%' + @SearchText + '%''
)
)
AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + '''
AND ISNULL(BAD.[TYPE], '''') = ''I''
AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeesIssuedYearToDateSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeesIssuedYearToDateSAM3Table'
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeesIssuedYearToDateSAM4Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
ISNULL(TRN.[FeesBilled], 0) *
ISNULL(TRN.[DrCr], 1) * - 1 AS [Fee],
RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref],
RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative],
TRN.[TransDate] AS [Date]
FROM [dbo].[Contacts] AS CON
INNER JOIN [dbo].[matters] AS MAT
ON CON.[Code] = MAT.[ClientCode]
INNER JOIN [dbo].[Transactions] AS HED
ON MAT.[Code] = HED.[MatterCode]
INNER JOIN [dbo].[Transactions] AS TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND (TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
AND TRN.[FeeEarner] = ''' + @Handler + '''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON KPI.[Year] = HED.[PostingYear]
AND KPI.[Period] >= HED.[PostingPeriod]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[TRN].[FeesBilled] LIKE ''%' + @SearchText + '%''
OR
[TRN].[DrCr] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransRef] LIKE ''%' + @SearchText + '%''
OR
[TRN].[Narrative] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransDate] LIKE ''%' + @SearchText + '%''
)
)
AND
HED.[RecType] = ''H'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeesIssuedYearToDateSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeesIssuedYearToDateSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
-- Rewrite by John END
ELSE IF @Function='Fees Issued Last Year to Date'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeesIssuedLastYearToDateSAM3Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C'' THEN -BAD.[VALUE]
WHEN ISNULL(BAH.[INVCR], '''') = ''I'' THEN BAD.[VALUE]
ELSE 0 END AS [Fee],
RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref],
RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative],
BAD.[DATE] AS [Date]
FROM [dbo].[BatchDetails] AS BAD
INNER JOIN [dbo].[BatchH] AS BAH
ON BAD.[BATCHNO] = BAH.[BATCHNO]
AND BAH.[Posted] = ''Y''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON KPI.[Year] - 1 = BAD.[YEAR]
AND KPI.[Period] >= BAD.[PERNO]
INNER JOIN [dbo].[matters] AS MAT
ON BAH.[MATTER] = MAT.[Code]
INNER JOIN [dbo].[Contacts] AS CON
ON MAT.[ClientCode] = CON.[Code]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[BAH].[INVCR] LIKE ''%' + @SearchText + '%''
OR
[BAD].[REF] LIKE ''%' + @SearchText + '%''
OR
[BAD].[NARR] LIKE ''%' + @SearchText + '%''
OR
[BAD].[DATE] LIKE ''%' + @SearchText + '%''
)
)
AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + '''
AND ISNULL(BAD.[TYPE], '''') = ''I''
AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeesIssuedLastYearToDateSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeesIssuedLastYearToDateSAM3Table'
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeesIssuedLastYearToDateSAM4Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
ISNULL(TRN.[FeesBilled], 0) *
ISNULL(TRN.[DrCr], 1) * - 1 AS [Fee],
RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref],
RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative],
TRN.[TransDate] AS [Date]
FROM [dbo].[Transactions] AS HED
INNER JOIN [dbo].[Transactions] AS TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND TRN.[CorrectionInd] IN (''L'', ''X'')
AND TRN.[FeeEarner] = ''' + @Handler + '''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON KPI.[Year] - 1 = HED.[PostingYear]
AND KPI.[Period] >= HED.[PostingPeriod]
LEFT OUTER JOIN [dbo].[matters] AS MAT
ON MAT.[Code] = HED.[MatterCode]
LEFT OUTER JOIN [dbo].[Contacts] AS CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[TRN].[FeesBilled] LIKE ''%' + @SearchText + '%''
OR
[TRN].[DrCr] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransRef] LIKE ''%' + @SearchText + '%''
OR
[TRN].[Narrative] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransDate] LIKE ''%' + @SearchText + '%''
)
)
AND HED.[RecType] = ''H'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeesIssuedLastYearToDateSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeesIssuedLastYearToDateSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
ELSE IF @Function='Fees Issued Last Year'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeesIssuedLastYearSAM3Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
CASE WHEN ISNULL(BAH.[INVCR], '''') = ''C'' THEN -BAD.[VALUE]
WHEN ISNULL(BAH.[INVCR], '''') = ''I'' THEN BAD.[VALUE]
ELSE 0 END AS [Fee],
RTRIM(ISNULL(BAD.[REF], '''')) AS [Ref],
RTRIM(ISNULL(BAD.[NARR], '''')) AS [Narrative],
BAD.[DATE] AS [Date]
FROM [dbo].[BatchDetails] AS BAD
INNER JOIN [dbo].[BatchH] AS BAH
ON BAD.[BATCHNO] = BAH.[BATCHNO]
AND BAH.[Posted] = ''Y''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON KPI.[Year] - 1 = BAD.[YEAR]
INNER JOIN [dbo].[matters] AS MAT
ON BAH.[MATTER] = MAT.[Code]
INNER JOIN [dbo].[Contacts] AS CON
ON MAT.[ClientCode] = CON.[Code]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[BAH].[INVCR] LIKE ''%' + @SearchText + '%''
OR
[BAD].[REF] LIKE ''%' + @SearchText + '%''
OR
[BAD].[NARR] LIKE ''%' + @SearchText + '%''
OR
[BAD].[DATE] LIKE ''%' + @SearchText + '%''
)
)
AND ISNULL(BAD.[FEE], '''') = ''' + @HANDLER + '''
AND ISNULL(BAD.[TYPE], '''') = ''I''
AND ISNULL(BAD.[OUTLAY], '''') = ''F'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeesIssuedLastYearSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeesIssuedLastYearSAM3Table'
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FeesIssuedLastYearSAM4Table
FROM
(SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code],
RTRIM(ISNULL(CON.[Name], '''')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Matter],
ISNULL(TRN.[FeesBilled], 0) *
ISNULL(TRN.[DrCr], 1) * - 1 AS [Fee],
RTRIM(ISNULL(TRN.[TransRef], '''')) AS [Ref],
RTRIM(ISNULL(TRN.[Narrative], '''')) AS [Narrative],
TRN.[TransDate] AS [Date]
FROM [dbo].[Transactions] AS HED
INNER JOIN [dbo].[Transactions] AS TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND TRN.[CorrectionInd] IN (''L'', ''X'')
AND TRN.[FeeEarner] = ''' + @Handler + '''
INNER JOIN [dbo].[KPIParameters] AS KPI
ON KPI.[Year] - 1 = HED.[PostingYear]
LEFT OUTER JOIN [dbo].[matters] AS MAT
ON MAT.[Code] = HED.[MatterCode]
LEFT OUTER JOIN [dbo].[Contacts] AS CON
ON CON.[Code] = MAT.[ClientCode]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[CON].[Name] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[TRN].[FeesBilled] LIKE ''%' + @SearchText + '%''
OR
[TRN].[DrCr] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransRef] LIKE ''%' + @SearchText + '%''
OR
[TRN].[Narrative] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransDate] LIKE ''%' + @SearchText + '%''
)
)
AND HED.[RecType] = ''H'') AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#FeesIssuedLastYearSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#FeesIssuedLastYearSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
ELSE IF @Function='TimeDayBook'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#TimeDayBookTable
FROM
(SELECT ISNULL(TDB.[Matter], '') AS [Code],
RTRIM(ISNULL(CNT.[Name], '')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description],
ISNULL(TDB.[Date], '') AS [Date],
RTRIM(ISNULL(TDB.[Comment], '')) AS [Comment],
ISNULL(TDB.[Time], 0) AS [Time],
ISNULL(TDB.[Charge], 0) AS [Charge]
FROM [dbo].[TimeDayBook] TDB
LEFT OUTER JOIN [dbo].[matters] AS MAT
ON TDB.[Matter] = MAT.[Code]
LEFT OUTER JOIN [dbo].[Contacts] AS CNT
ON MAT.[ClientCode] =CNT.[Code]
WHERE
(
[TDB].[Matter] LIKE '%' + @SearchText + '%'
OR
[CNT].[Name] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
OR
[TDB].[Date] LIKE '%' + @SearchText + '%'
OR
[TDB].[Comment] LIKE '%' + @SearchText + '%'
OR
[TDB].[Time] LIKE '%' + @SearchText + '%'
OR
[TDB].[Charge] LIKE '%' + @SearchText + '%'
)
AND TDB.[FeeEarn] = @Handler
AND TDB.[TimeOrCharge] = 'T'
AND TDB.[Rec_irr] = 'C') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Client' THEN [Client]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Client' THEN [Client]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END DESC
SELECT
*
FROM
#TimeDayBookTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#TimeDayBookTable
END
ELSE IF @Function='TimeDayBookforWeek'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#TimeDayBookForWeekTable
FROM
(SELECT ISNULL(TIE.[Matter],'') AS [Code],
RTRIM(ISNULL(CON.[Name],'')) AS [Client],
RTRIM(ISNULL(MAT.[Description],'')) AS [Description],
ISNULL(TIE.[Date],'') AS [Date],
RTRIM(ISNULL(TIE.[Comment],'')) AS [Comment],
ISNULL(TIE.[Time],0) AS [Time],
ISNULL(TIE.[Charge],0) AS [Charge]
FROM [dbo].[TimeEntry] AS TIE
LEFT OUTER JOIN [dbo].[matters] AS MAT
ON TIE.[Matter] = MAT.[Code]
LEFT OUTER JOIN [dbo].[Contacts] AS CON
ON MAT.[ClientCode] = CON.[Code]
WHERE
(
[TIE].[Matter] LIKE '%' + @SearchText + '%'
OR
[CON].[Name] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
OR
[TIE].[Date] LIKE '%' + @SearchText + '%'
OR
[TIE].[Comment] LIKE '%' + @SearchText + '%'
OR
[TIE].[Time] LIKE '%' + @SearchText + '%'
OR
[TIE].[Charge] LIKE '%' + @SearchText + '%'
)
AND TIE.[FeeEarn] = @Handler
AND TIE.[TimeOrCharge] = 'T'
AND TIE.[Date] >= @MONDAY
AND TIE.[Date] <= @GETDATE
AND TIE.[Rec_irr] = 'C'
AND ISNULL(TIE.[Task], '') <> 'WRI') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Client' THEN [Client]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Client' THEN [Client]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END DESC
SELECT
*
FROM
#TimeDayBookForWeekTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#TimeDayBookForWeekTable
END
ELSE IF @Function='TimeDayBookforMonth'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#TimeDayBookForMonthTable
FROM
(SELECT ISNULL(TIE.[Matter], '') AS [Code],
RTRIM(ISNULL(CON.[Name], '')) AS [Client],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description],
TIE.[Date] AS [Date],
RTRIM(ISNULL(TIE.[Comment], '')) AS [Comment],
ISNULL(TIE.[Time], 0) AS [Time],
ISNULL(TIE.[Charge], 0) AS [Charge]
FROM [dbo].[TimeEntry] AS TIE
LEFT OUTER JOIN [dbo].[matters] AS MAT
ON TIE.[Matter] =MAT.[Code]
LEFT OUTER JOIN [dbo].[Contacts] AS CON
ON MAT.[ClientCode] =CON.[Code]
WHERE
(
[TIE].[Matter] LIKE '%' + @SearchText + '%'
OR
[CON].[Name] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
OR
[TIE].[Date] LIKE '%' + @SearchText + '%'
OR
[TIE].[Comment] LIKE '%' + @SearchText + '%'
OR
[TIE].[Time] LIKE '%' + @SearchText + '%'
OR
[TIE].[Charge] LIKE '%' + @SearchText + '%'
)
AND TIE.[FeeEarn] = @Handler
AND TIE.[TimeOrCharge] = 'T'
AND TIE.[Rec_irr] = 'C'
AND TIE.[Date] >= @STARTOFMONTH
AND TIE.[Date] <= @MONTHTODATE
AND ISNULL(TIE.[Task], '') <> 'WRI') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Client' THEN [Client]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Client' THEN [Client]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END DESC
SELECT
*
FROM
#TimeDayBookForMonthTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#TimeDayBookForMonthTable
END
ELSE IF @Function='TimeDayBookforYear'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#TimeDayBookForYearTable
FROM
(SELECT ISNULL(TIE.[Matter],'') AS [Code],
RTRIM(ISNULL(CON.[Name],'')) AS [Client],
RTRIM(ISNULL(MAT.[Description],'')) AS [Description],
TIE.[Date] AS [Date],
RTRIM(ISNULL(TIE.[Comment], '')) AS [Comment],
ISNULL(TIE.[Time], 0) AS [Time],
ISNULL(TIE.[Charge], 0) AS [Charge]
FROM [dbo].[TimeEntry] AS TIE
LEFT OUTER JOIN [dbo].[matters] AS MAT
ON TIE.[Matter] = MAT.[Code]
LEFT OUTER JOIN [dbo].[Contacts] AS CON
ON MAT.[ClientCode] = CON.[Code]
WHERE
(
[TIE].[Matter] LIKE '%' + @SearchText + '%'
OR
[CON].[Name] LIKE '%' + @SearchText + '%'
OR
[MAT].[Description] LIKE '%' + @SearchText + '%'
OR
[TIE].[Date] LIKE '%' + @SearchText + '%'
OR
[TIE].[Comment] LIKE '%' + @SearchText + '%'
OR
[TIE].[Time] LIKE '%' + @SearchText + '%'
OR
[TIE].[Charge] LIKE '%' + @SearchText + '%'
)
AND TIE.[FeeEarn] = @Handler
AND TIE.[TimeOrCharge] = 'T'
AND TIE.[Rec_irr] = 'C'
AND TIE.[Date] >= @STARTOFYEAR
AND TIE.[Date] <= @MONTHTODATE
AND ISNULL(TIE.[Task], '') <> 'WRI') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Client' THEN [Client]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Client' THEN [Client]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [Description]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END DESC
SELECT
*
FROM
#TimeDayBookForYearTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#TimeDayBookForYearTable
END
ELSE IF @Function='AdminTimeDayBookforWeek'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#AdminTimeDayBookforWeekTable
FROM
(SELECT ISNULL(TIE.[Matter],'') AS [Code],
ISNULL(TIE.[Date],'') AS [Date],
RTRIM(ISNULL(TIE.[Comment],'')) AS [Comment],
ISNULL(TIE.[Time],0) AS [Time],
ISNULL(TIE.[Charge],0) AS [Charge]
FROM [dbo].[TimeEntry] AS TIE
WHERE
(
[TIE].[Matter] LIKE '%' + @SearchText + '%'
OR
[TIE].[Date] LIKE '%' + @SearchText + '%'
OR
[TIE].[Comment] LIKE '%' + @SearchText + '%'
OR
[TIE].[Time] LIKE '%' + @SearchText + '%'
OR
[TIE].[Charge] LIKE '%' + @SearchText + '%'
)
AND TIE.[FeeEarn] = @Handler
AND TIE.[TimeOrCharge] = 'T'
AND TIE.[Date] >= @MONDAY
AND TIE.[Date] <= @MONTHTODATE
AND ISNULL(TIE.[TASK], '') <> 'WRI'
AND TIE.[Matter] = '~') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END DESC
SELECT
*
FROM
#AdminTimeDayBookforWeekTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#AdminTimeDayBookforWeekTable
END
ELSE IF @Function='AdminTimeDayBookforMonth'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#AdminTimeDayBookforMonthTable
FROM
(SELECT ISNULL(TIE.[Matter], '') AS [Code],
ISNULL(TIE.[Date], '') AS [Date],
RTRIM(ISNULL(TIE.[Comment], '')) AS [Comment],
ISNULL(TIE.[Time], 0) AS [Time],
ISNULL(TIE.[Charge], 0) AS [Charge]
FROM [dbo].[TimeEntry] AS TIE
WHERE
(
[TIE].[Matter] LIKE '%' + @SearchText + '%'
OR
[TIE].[Date] LIKE '%' + @SearchText + '%'
OR
[TIE].[Comment] LIKE '%' + @SearchText + '%'
OR
[TIE].[Time] LIKE '%' + @SearchText + '%'
OR
[TIE].[Charge] LIKE '%' + @SearchText + '%'
)
AND TIE.[FeeEarn] = @Handler
AND TIE.[TimeOrCharge] = 'T'
AND TIE.[Date] >= @STARTOFMONTH
AND TIE.[Date] <= @MONTHTODATE
AND ISNULL(TIE.[Task], '') <> 'WRI'
AND TIE.[Matter] = '~') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END DESC
SELECT
*
FROM
#AdminTimeDayBookforMonthTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#AdminTimeDayBookforMonthTable
END
ELSE IF @Function='AdminTimeDayBookforYear'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#AdminTimeDayBookforYearTable
FROM
(SELECT ISNULL(TIE.[Matter], '') AS [Code],
ISNULL(TIE.[Date], '') AS [Date],
RTRIM(ISNULL(TIE.[Comment], '')) AS [Comment],
ISNULL(TIE.[Time], 0) AS [Time],
ISNULL(TIE.[Charge], 0) AS [Charge]
FROM [dbo].[TimeEntry] TIE
WHERE
(
[TIE].[Matter] LIKE '%' + @SearchText + '%'
OR
[TIE].[Date] LIKE '%' + @SearchText + '%'
OR
[TIE].[Comment] LIKE '%' + @SearchText + '%'
OR
[TIE].[Time] LIKE '%' + @SearchText + '%'
OR
[TIE].[Charge] LIKE '%' + @SearchText + '%'
)
AND TIE.[FeeEarn] = @Handler
AND TIE.[TimeOrCharge] = 'T'
AND TIE.[Date] >= @STARTOFYEAR
AND TIE.[Date] <= @MONTHTODATE
AND ISNULL(TIE.[Task], '') <> 'WRI'
AND TIE.[Matter] = '~') AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date' THEN [Date]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END DESC
SELECT
*
FROM
#AdminTimeDayBookforYearTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#AdminTimeDayBookforYearTable
END
ELSE IF @Function='OSFees'
BEGIN
IF [dbo].[ISSAM4]() = 0
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#OSFeesSAM3Table
FROM
(SELECT MAT.[Code],
MAT.[Description],
DTL.[OSFEES] AS [OSFees]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[DebtorsLedger] DTL
ON DTL.[MATTER] = MAT.[Code]
AND DTL.[OSValue] > 0
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[DTL].[OSFEES] LIKE ''%' + @SearchText + '%''
)
)
AND
MAT.[FECode] = @Handler) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#OSFeesSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#OSFeesSAM3Table'
END
ELSE
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#OSFeesSAM4Table
FROM
(SELECT MAT.[Code] AS [Code],
ISNULL(MAT.[Description], '''') AS [Description],
ISNULL(TRN.[FeesOS], 0) AS [OSFees]
FROM [dbo].[matters] AS MAT
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[MatterCode] = MAT.[Code]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[TRN].[FeesOS] LIKE ''%' + @SearchText + '%''
)
)
AND TRN.[Posted] = ''Y''
AND MAT.[FECode] = @Handler
AND TRN.[CorrectionInd] = ''L''
AND TRN.[DebtorsValueOS] > 0
AND ((TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'')
OR (TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#OSFeesSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#OSFeesSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
ELSE IF @Function='DebtorDays'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#DebtorDaysSAM3Table
FROM
(SELECT MAT.[Code],
ISNULL(MAT.[Description], '''') AS [Description],
DTL.[DATE] AS [TransDate],
ISNULL(CASE WHEN DTL.[DATE] IS NULL
THEN 0
WHEN DTL.[DATE] > @GETDATE
THEN 0
WHEN DTL.[OSVALUE] = 0
THEN 0
ELSE DATEDIFF(Day, DTL.[DATE], @GETDATE) END, 0) AS [DebtorDays],
ISNULL(CASE WHEN DTL.[DATE] IS NULL
THEN 0
WHEN DTL.[DATE] > @GETDATE
THEN 0
WHEN DTL.[OSVALUE] = 0
THEN 0
ELSE 1 END, 0) AS [DebtorEntries]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[DebtorsLedger] DTL
ON DTL.[MATTER] = MAT.[Code]
AND DTL.[OSValue] > 0
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[DTL].[DATE] LIKE ''%' + @SearchText + '%''
OR
[DTL].[OSVALUE] LIKE ''%' + @SearchText + '%''
)
)
AND MAT.[FECode] = @Handler) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#DebtorDaysSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#DebtorDaysSAM3Table'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#DebtorDaysSAM4Table
FROM
(SELECT MAT.[Code],
ISNULL(MAT.[Description], '''') AS [Description],
TRN.[TransDate] AS [TransDate],
ISNULL(CASE WHEN TRN.[TransDate] IS NULL
THEN 0
WHEN TRN.[TransDate] > @GETDATE
THEN 0
WHEN TRN.[DebtorsValueOS] = 0
THEN 0
ELSE DATEDIFF(Day, TRN.[TransDate], @GETDATE) END, 0) AS [DebtorDays],
ISNULL(CASE WHEN TRN.[TransDate] IS NULL
THEN 0
WHEN TRN.[TransDate] > @GETDATE
THEN 0
WHEN TRN.[DebtorsValueOS] = 0
THEN 0
ELSE 1 END, 0) AS [DebtorEntries]
FROM [dbo].[matters] AS MAT
INNER JOIN [dbo].[Transactions] TRN
ON MAT.[Code] = TRN.[MatterCode]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransDate] LIKE ''%' + @SearchText + '%''
OR
[TRN].[DebtorsValueOS] LIKE ''%' + @SearchText + '%''
)
)
AND TRN.[Posted] = ''Y''
AND MAT.[FECode] = @Handler
AND TRN.[CorrectionInd] = ''L''
AND ((TRN.[XnType] = ''I'' AND TRN.[RecType] = ''H'')
OR (TRN.[XnType] = ''J'' AND TRN.[RecType] = ''D''))
AND TRN.[DebtorsValueOS] > 0) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#DebtorDaysSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#DebtorDaysSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @GETDATE DateTime, @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @GETDATE = @GETDATE, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
ELSE IF @Function='DraftInvoices'
BEGIN
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#DraftInvoiceSAM3Table
FROM
(SELECT MAT.[Code],
MAT.[Description],
BIH.[DATE] AS [Date],
(ISNULL(BID.[Fee], 0) +
ISNULL(BID.[Outlay], 0) +
ISNULL(BID.[MiscOutlay], 0) +
ISNULL(BID.[VAT], 0)) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [Total],
ISNULL(BID.[Fee], 0) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [Fee],
ISNULL(BID.[Outlay], 0) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [Outlay],
ISNULL(BID.[MiscOutlay], 0) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [MiscOutlay],
ISNULL(BID.[VAT], 0) * CASE WHEN BIH.[INVCR] = ''C'' THEN -1 ELSE 1 END AS [VAT]
FROM [dbo].[matters] AS MAT
INNER JOIN [dbo].[BillHeader] AS BIH
ON MAT.[Code] = BIH.[MATTER]
LEFT OUTER JOIN (SELECT BID.[DRAFTNO],
SUM(CASE WHEN BID.[TYPE] = ''F'' THEN BID.[NET] ELSE 0 END) AS [Fee],
SUM(CASE WHEN BID.[TYPE] = ''O'' THEN BID.[NET] ELSE 0 END) AS [Outlay],
SUM(CASE WHEN BID.[TYPE] = ''M'' THEN BID.[NET] ELSE 0 END) AS [MiscOutlay],
SUM(BID.[VATVALUE]) AS [VAT]
FROM [dbo].[BillDetails] AS BID
GROUP BY BID.[DRAFTNO]) AS BID
ON BID.[DRAFTNO] = BIH.[DRAFTNO]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[BIH].[DATE] LIKE ''%' + @SearchText + '%''
)
)
AND BIH.[BILLNO] = 0
AND MAT.[FECode] = @Handler) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#DraftInvoiceSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#DraftInvoiceSAM3Table'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#DraftInvoiceSAM4Table
FROM
(SELECT MAT.[Code],
MAT.[Description],
BH.[BillDate] AS [Date],
(ISNULL(BD.[Fee], 0) +
ISNULL(BD.[Outlay], 0) +
ISNULL(BD.[MiscOutlay], 0) +
ISNULL(BD.[VAT], 0)) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [Total],
ISNULL(BD.[Fee], 0) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [Fee],
ISNULL(BD.[Outlay], 0) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [Outlay],
ISNULL(BD.[MiscOutlay], 0) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [MiscOutlay],
ISNULL(BD.[VAT], 0) * CASE WHEN BH.[Type] = ''C'' THEN -1 ELSE 1 END AS [VAT]
FROM [dbo].[matters] AS MAT
INNER JOIN [dbo].[Billhead] AS BH
ON MAT.[Code] = BH.[MatterCode]
LEFT OUTER JOIN (SELECT BD.[BillID],
SUM(CASE WHEN BD.[RecordType] = ''F'' THEN BD.[NetValue] ELSE 0 END) AS [Fee],
SUM(CASE WHEN BD.[RecordType] = ''O'' THEN BD.[NetValue] ELSE 0 END) AS [Outlay],
SUM(CASE WHEN BD.[RecordType] = ''M'' THEN BD.[NetValue] ELSE 0 END) AS [MiscOutlay],
SUM(BD.[VatValue]) AS [VAT]
FROM [dbo].[BillDetail] AS BD
GROUP BY BD.[BillID]) AS BD
ON BH.[BillingID] = BD.[BillID]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[Code] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[BH].[BillDate] LIKE ''%' + @SearchText + '%''
)
)
AND BH.[BillStatus] <> ''Approved''
AND MAT.[FECode] = @Handler) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#DraftInvoiceSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#DraftInvoiceSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardCreateUserPanel'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardCreateUserPanel]
END
GO
CREATE PROCEDURE KAAS_DashboardCreateUserPanel (@panelid int , @handlercode varchar(10))
AS
/*******************************************************************************************************
* Create a new user Panel. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardCreateUserPanel] *
* *
* Modification History : *
* 2019-05-15 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
INSERT INTO [UserPanels] (handlercode, panelid, panelname, parentpanel)
SELECT @handlercode,
panelid,
panelname,
null
FROM [Panels]
WHERE panelid=@panelid;
SELECT TOP 1 up.userpanelid,
up.panelid,
up.panelname,
up.parentpanel,
p.width
FROM [Panels] p
LEFT JOIN [UserPanels] up
ON p.panelid = up.panelid
WHERE p.panelid=@panelid
ORDER BY up.userpanelid DESC
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardDeleteUserPanel'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardDeleteUserPanel]
END
GO
CREATE PROCEDURE KAAS_DashboardDeleteUserPanel (@userPanelId int)
AS
/*******************************************************************************************************
* Delete the selected user Panel. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardDeleteUserPanel] *
* *
* Modification History : *
* 2019-05-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DELETE FROM [UserPanels]
WHERE userpanelid = @userPanelId
OR ParentPanel = @userPanelId
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardDeleteUserWidget'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardDeleteUserWidget]
END
GO
CREATE PROCEDURE KAAS_DashboardDeleteUserWidget (@userWidgetId int)
AS
/*******************************************************************************************************
* Delete the selected user Widget. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardDeleteUserWidget] *
* *
* Modification History : *
* 2019-05-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DELETE FROM [UserWidgets]
WHERE UserWidgetsId = @userWidgetId
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardGetAllPanels'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardGetAllPanels]
END
GO
CREATE PROCEDURE KAAS_DashboardGetAllPanels(
@DashboardType varchar(20))
AS
/*******************************************************************************************************
* Fetch all the Panels. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardGetAllPanels] *
* *
* Modification History : *
* 2019-05-15 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT [PanelId],
[PanelName],
[Description],
[DashboardType],
[Width]
FROM [Panels]
WHERE DashboardType = @DashboardType
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardGetAllUserAllowedWidgets'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardGetAllUserAllowedWidgets]
END
GO
CREATE PROCEDURE KAAS_DashboardGetAllUserAllowedWidgets (@userPanelId int)
AS
/*******************************************************************************************************
* Fetches all the user allowed widgets. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardGetAllUserAllowedWidgets] *
* *
* Modification History : *
* 2019-05-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT DISTINCT w.widgetId,
w.widgetName,
w.description,
w.templateId
FROM [Widgets] w
LEFT JOIN [PanelWidgetAssociation] pwa ON w.WidgetId = pwa.WidgetId
LEFT JOIN [UserPanels] up ON pwa.PanelId = up.PanelId
WHERE up.userPanelId=@userPanelId
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardGetAllUserPanelData'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardGetAllUserPanelData]
END
GO
CREATE PROCEDURE KAAS_DashboardGetAllUserPanelData (
@handlerCode varchar(10),
@DashboardType varchar(20)
)
AS
/*******************************************************************************************************
* Get all User Panel's Widgets and Child Panels. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardGetAllUserPanelData] *
* *
* Modification History : *
* 2019-05-20 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
;WITH FirstLevel AS
(
SELECT UP.UserPanelId, UP.HandlerCode, UP.PanelId, UP.PanelName, UP.ParentPanel ,P.Description,P.DashboardType,P.Width
FROM [UserPanels] UP
LEFT JOIN [Panels] P ON UP.PanelId=P.PanelId
WHERE Handlercode = @handlerCode AND ParentPanel IS NULL AND P.DashboardType=@DashboardType
), SecondLevel AS
(
SELECT UP.UserPanelId, UP.HandlerCode,UP.PanelId, UP.PanelName, 0 AS ParentPanel,UP.Description,UP.DashboardType,UP.Width FROM FirstLevel UP
UNION ALL
SELECT u1.UserPanelId, u1.HandlerCode,u1.PanelId, u1.PanelName, sl.UserPanelId ,p1.Description,p1.DashboardType,p1.Width FROM UserPanels u1
INNER JOIN Panels p1 ON u1.PanelId=p1.PanelId
INNER JOIN SecondLevel sl ON u1.ParentPanel = sl.UserPanelId
)SELECT * FROM SecondLevel ORDER BY ParentPanel
;WITH FirstLevel AS
(
SELECT UP.UserPanelId, UP.HandlerCode, UP.PanelId, UP.PanelName, UP.ParentPanel ,P.Description,P.DashboardType,P.Width
FROM [UserPanels] UP
LEFT JOIN [Panels] P ON UP.PanelId=P.PanelId
WHERE Handlercode = @handlerCode AND ParentPanel IS NULL AND P.DashboardType=@DashboardType
), SecondLevel AS
(
SELECT UP.UserPanelId, UP.HandlerCode,UP.PanelId, UP.PanelName, 0 AS ParentPanel,UP.Description,UP.DashboardType,UP.Width FROM FirstLevel UP
UNION ALL
SELECT u1.UserPanelId, u1.HandlerCode,u1.PanelId, u1.PanelName, sl.UserPanelId ,p1.Description,p1.DashboardType,p1.Width FROM UserPanels u1
INNER JOIN Panels p1 ON u1.PanelId=p1.PanelId
INNER JOIN SecondLevel sl ON u1.ParentPanel = sl.UserPanelId
)SELECT UW.UserWidgetsId,
UW.UserPanelId,
UW.WidgetId,
UW.WidgetData,
W.WidgetName,
W.Description AS WidgetDescription,
W.TemplateId
FROM [UserWidgets] UW
LEFT JOIN [Widgets] W
ON UW.WidgetId=W.WidgetId
WHERE UW.UserPanelId IN (SELECT UserPanelId FROM SecondLevel)
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardGetSingleUserPanelData'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardGetSingleUserPanelData]
END
GO
CREATE PROCEDURE KAAS_DashboardGetSingleUserPanelData (
@handlerCode varchar(10),
@userPanelId int
)
AS
/*******************************************************************************************************
* Get Single User Panel's Widgets and Child Panels. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardGetSingleUserPanelData] *
* *
* Modification History : *
* 2019-05-20 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
;WITH FirstLevel AS
(
SELECT UP.UserPanelId,
UP.HandlerCode,
UP.PanelId,
UP.PanelName,
UP.ParentPanel,
P.Description,
P.DashboardType,
P.Width
FROM [UserPanels] UP
LEFT JOIN
[Panels] P ON UP.PanelId=P.PanelId
WHERE Handlercode = @handlerCode
AND
UserPanelId=@userPanelId
), SecondLevel AS
(
SELECT UP.UserPanelId,
UP.HandlerCode,
UP.PanelId,
UP.PanelName,
0 AS ParentPanel,
UP.Description,
UP.DashboardType,
UP.Width
FROM FirstLevel UP
UNION ALL
SELECT U1.UserPanelId,
U1.HandlerCode,
U1.PanelId,
U1.PanelName,
SL.UserPanelId,
P1.Description,
P1.DashboardType,
P1.Width
FROM UserPanels U1
INNER JOIN
Panels P1 ON U1.PanelId=P1.PanelId
INNER JOIN
SecondLevel SL ON U1.ParentPanel = SL.UserPanelId
WHERE SL.UserPanelId=@userPanelId
)SELECT * FROM SecondLevel ORDER BY ParentPanel
;WITH FirstLevel AS
(
SELECT UP.UserPanelId,
UP.HandlerCode,
UP.PanelId,
UP.PanelName,
UP.ParentPanel,
P.Description,
P.DashboardType,
P.Width
FROM [UserPanels] UP
LEFT JOIN [Panels] P ON UP.PanelId=P.PanelId
WHERE Handlercode = @handlerCode
AND
UserPanelId=@userPanelId
), SecondLevel AS
(
SELECT UP.UserPanelId,
UP.HandlerCode,
UP.PanelId,
UP.PanelName,
0 AS ParentPanel,
UP.Description,
UP.DashboardType,
UP.Width
FROM FirstLevel UP
UNION ALL
SELECT U1.UserPanelId,
U1.HandlerCode,
U1.PanelId,
U1.PanelName,
SL.UserPanelId,
P1.Description,
P1.DashboardType,
P1.Width
FROM UserPanels U1
INNER JOIN Panels P1 ON U1.PanelId=P1.PanelId
INNER JOIN SecondLevel SL ON U1.ParentPanel = SL.UserPanelId
WHERE SL.UserPanelId=@userPanelId
)SELECT UW.UserWidgetsId,
UW.UserPanelId,
UW.WidgetId,
UW.WidgetData,
W.WidgetName,
W.Description AS WidgetDescription,
W.TemplateId
FROM [UserWidgets] UW
LEFT JOIN [Widgets] W
ON UW.WidgetId=W.WidgetId
WHERE UW.UserPanelId IN (SELECT UserPanelId FROM SecondLevel)
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardGetWidgetData'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardGetWidgetData]
END
GO
CREATE PROCEDURE KAAS_DashboardGetWidgetData (
@handlerCode VARCHAR(10),
@fromdate DATETIME=NULL,
@todate DATETIME=NULL,
@userWidgetId INT,
@CaseCode VARCHAR(20)=NULL
)
AS
/*******************************************************************************************************
* Fetches the Widget data. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardGetWidgetData] *
* *
* Modification History : *
* 2019-05-16 Vinodhan K Created *
* 2019-06-02 Vinodhan K Added a paramter CaseCode For CaseDiary Dashboard *
*******************************************************************************************************/
BEGIN
DECLARE @widgetData VARCHAR(MAX)
SELECT uw.UserWidgetsId,
uw.UserPanelId,
uw.WidgetId,
w.WidgetName,
w.Description AS WidgetDescription,
w.TemplateId,
w.WidgetData,
ui.TemplateName
FROM [UserWidgets] uw
LEFT JOIN [Widgets] w ON uw.WidgetId = w.WidgetId
LEFT JOIN [UITemplates] ui ON w.TemplateId=ui.TemplateId
WHERE uw.UserWidgetsId=@userWidgetId;
SET @fromdate=CASE WHEN @fromdate is null
THEN GETUTCDATE()
END
SET @todate=CASE WHEN @todate is null
THEN GETUTCDATE()
END
EXEC [KAAS_TemplateQueryExecutor] @handlerCode,@fromdate,@todate,@userWidgetId,@CaseCode
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_Dashboardmaxlimit'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_Dashboardmaxlimit]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_Dashboardmaxlimit]
(@HANDLER NVARCHAR(10))--@HANDLER MUST be NVARCHAR as it's defined as such in [dbo].[UserSettings]
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_Dashboardmaxlimit] *
* Copied from : [dbo].[Ky_NETDashboardmaxlimit] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @TIMEDAYBOOKLIMIT DECIMAL(18, 2)
DECLARE @TIMEDAYBOOKLIMITHR VARCHAR(20)
DECLARE @TIMEFORWEEK DECIMAL(18, 2)
DECLARE @TIMEFORWEEKHR VARCHAR(20)
DECLARE @TIMEFORMONTH DECIMAL(18, 2)
DECLARE @TIMEFORMONTHHR VARCHAR(20)
DECLARE @TIMEFORYEAR DECIMAL(18, 2)
DECLARE @TIMEFORYEARHR VARCHAR(20)
DECLARE @TIMEYTD DECIMAL(18, 2)
DECLARE @TIMEYTDHR VARCHAR(20)
DECLARE @NCTIMEFORMONTH DECIMAL(18, 2)
DECLARE @NCTIMEFORMONTHHR VARCHAR(20)
DECLARE @NCTIMEFORYEAR DECIMAL(18, 2)
DECLARE @NCTIMEFORYEARHR VARCHAR(20)
DECLARE @FEESISSUEDCURMONTH DECIMAL(18, 2)
DECLARE @FEESISSUEDLASTMONTH DECIMAL(18, 2)
DECLARE @FEESISSUEDYTD DECIMAL(18, 2)
DECLARE @FEESISSUEDLASTYTD DECIMAL(18, 2)
DECLARE @FEESISSUEDLASTYEAR DECIMAL(18, 2)
DECLARE @OSINVOICELIMIT DECIMAL(18, 2)
DECLARE @CURRENTWIPLIMIT DECIMAL(18, 2)
DECLARE @DRAFTINVOICELIMIT DECIMAL(18, 2)
DECLARE @YEAR INT
DECLARE @PERIOD INT
-- Get the financial year and period from the KPI, if not there then control, if not there then use now.
IF [dbo].[ISSAM4]() = 0
BEGIN
SELECT @YEAR = ISNULL(KPI.[Year], ISNULL(CON.[YEAR], YEAR(GETDATE())))
FROM [dbo].[KPIParameters] AS KPI
OUTER APPLY [dbo].[control] AS CON
SELECT @PERIOD = ISNULL(KPI.[Period], ISNULL(CON.[CURPER], MONTH(GETDATE())))
FROM [dbo].[KPIParameters] AS KPI
OUTER APPLY [dbo].[control] AS CON
END
ELSE
BEGIN
SELECT @YEAR = ISNULL(KPI.[Year], ISNULL(CON.[NumValue], YEAR(GETDATE())))
FROM [dbo].[KPIParameters] AS KPI
OUTER APPLY (SELECT TOP 1 NUM.[NumValue]
FROM [dbo].[CtrlNum] AS NUM
WHERE NUM.[Code] = 'CurYear') AS CON
SELECT @PERIOD = ISNULL(KPI.[Period], ISNULL(CON.[NumValue], MONTH(GETDATE())))
FROM [dbo].[KPIParameters] AS KPI
OUTER APPLY (SELECT TOP 1 NUM.[NumValue]
FROM [dbo].[CtrlNum] AS NUM
WHERE NUM.[Code] = 'CurPeriod') AS CON
END
-- This is very unwieldy but not much choice when converting time values stored as strings into time formats (7.5 -> 07:30)
SELECT @TIMEDAYBOOKLIMIT = 60.0 * CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END),
@TIMEDAYBOOKLIMITHR = CONVERT(VARCHAR(5), DATEADD(SECOND, 3600.0 * CONVERT(DECIMAL(18, 2), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END), 0), 108),
@TIMEFORWEEK = 60.0 * CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END) * 5.0,
@TIMEFORWEEKHR = RIGHT('00' + CONVERT(VARCHAR, FLOOR(CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END) * 5.0)), 2) +
':' +
RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (60.0 * CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = '' THEN '0' ELSE US.[Value] END) * 5.0) % 60.0)), 2), 2)
FROM [dbo].[UserSettings] AS US
WHERE US.[Handler] = @HANDLER
AND UPPER(RTRIM(US.[Key])) = 'TIMEDAYBOOKLIMIT'
SELECT @OSINVOICELIMIT = CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = ''
THEN '0'
ELSE US.[Value] END)
FROM [dbo].[UserSettings] AS US
WHERE US.[Handler] = @HANDLER
AND UPPER(RTRIM(US.[Key])) = 'OSINVOICELIMIT'
SELECT @DRAFTINVOICELIMIT = CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = ''
THEN '0'
ELSE US.[Value] END)
FROM [dbo].[UserSettings] AS US
WHERE US.[Handler] = @HANDLER
AND UPPER(RTRIM(US.[Key])) = 'DRAFTINVOICELIMIT'
SELECT @CURRENTWIPLIMIT = CONVERT(DECIMAL(18, 5), CASE WHEN ISNULL(US.[Value], '') = ''
THEN '0'
ELSE US.[Value] END)
FROM [dbo].[UserSettings] AS US
WHERE US.[Handler] = @HANDLER
AND UPPER(RTRIM(US.[Key])) = 'CURRENTWIPLIMIT'
SELECT @TIMEFORMONTH = CASE WHEN FLOOR((SUM(ISNULL(BDG.[ChargableTimeBudget], 0))) * 60.0) < 10
THEN RIGHT('00' + FLOOR((SUM(ISNULL(BDG.[ChargableTimeBudget], 0))) * 60.0), 2)
ELSE FLOOR((SUM(ISNULL(BDG.[ChargableTimeBudget], 0))) * 60.0) END,
@TIMEFORMONTHHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[ChargableTimeBudget], 0)))) +
':' +
RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2),
@NCTIMEFORMONTH = FLOOR((SUM(ISNULL(BDG.[NonChargableTimeBudget], 0))) * 60.0),
@NCTIMEFORMONTHHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)))) +
':' +
RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2),
@FEESISSUEDCURMONTH = SUM(ISNULL(BDG.[FeesBudget], 0))
FROM [dbo].[HandlerBudgets] AS BDG
WHERE BDG.[HANDLER] = @HANDLER
AND BDG.[MONTH] = @PERIOD
AND BDG.[YEAR] = @YEAR
SELECT @FEESISSUEDLASTMONTH = FLOOR(SUM(ISNULL(BDG.[FeesBudget], 0)))
FROM [dbo].[HandlerBudgets] AS BDG
WHERE BDG.[Handler] = @HANDLER
AND BDG.[Month] = CASE WHEN @PERIOD - 1 = 0 THEN 12 ELSE @PERIOD END
AND BDG.[Year] = CASE WHEN @PERIOD - 1 = 0 THEN @YEAR - 1 ELSE @YEAR END
SELECT @FEESISSUEDYTD = FLOOR(SUM(BDG.[FeesBudget])),
@TIMEYTD = SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0,
@TIMEYTDHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0)) +
':' +
RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2)
FROM [dbo].[HandlerBudgets] AS BDG
WHERE BDG.[Handler] = @HANDLER
AND BDG.[Month] <= @PERIOD
AND BDG.[Year] = @YEAR
SELECT @TIMEFORYEAR = FLOOR(SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0),
@TIMEFORYEARHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[ChargableTimeBudget], 0)))) +
':' +
RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[ChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2),
@NCTIMEFORYEAR = FLOOR(SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)) * 60.0),
@NCTIMEFORYEARHR = CONVERT(VARCHAR, CONVERT(INT, SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)))) +
':' +
RIGHT('00' + LEFT(CONVERT(VARCHAR, CONVERT(INT, (SUM(ISNULL(BDG.[NonChargableTimeBudget], 0)) * 60.0) % 60)), 2), 2)
FROM [dbo].[HandlerBudgets] AS BDG
WHERE BDG.[Handler] = @HANDLER
AND BDG.[Year] = @YEAR
SELECT @FEESISSUEDLASTYTD = FLOOR(SUM(ISNULL(CASE WHEN BDG.[Month] <= @PERIOD THEN BDG.[FeesBudget] ELSE 0 END, 0))),
@FEESISSUEDLASTYEAR = FLOOR(SUM(ISNULL(BDG.[FeesBudget], 0)))
FROM [dbo].[HandlerBudgets] AS BDG
WHERE BDG.[Handler] = @HANDLER
AND BDG.[Year] = @YEAR - 1
SELECT ISNULL(@TIMEDAYBOOKLIMIT,0) AS [TIMEDAYBOOKLIMIT],
ISNULL(@TIMEFORWEEK ,0) AS [TIMEFORWEEK],
ISNULL(@TIMEFORMONTH ,0) AS [TIMEFORMONTH],
ISNULL(@TIMEFORYEAR, 0) AS [TIMEFORYEAR],
ISNULL(@NCTIMEFORMONTH, 0) AS [NCTIMEFORMONTH],
ISNULL(@NCTIMEFORYEAR, 0) AS [NCTIMEFORYEAR],
ISNULL(@TIMEYTD, 0) AS [TIMEYTD],
REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDCURMONTH, 0), 0), 1), '.00', '') AS [FEESISSUEDCURMONTH],
REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDLASTMONTH, 0), 0), 1), '.00', '') AS [FEESISSUEDLASTMONTH],
REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDYTD, 0), 0), 1), '.00', '') AS [FEESISSUEDYTD],
REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDLASTYTD, 0), 0), 1), '.00', '') AS [FEESISSUEDLASTYTD],
REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@FEESISSUEDLASTYEAR, 0), 0), 1), '.00', '') AS [FEESISSUEDLASTYEAR],
REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@OSINVOICELIMIT, 0), 0), 1), '.00', '') AS [OSINVOICELIMIT],
REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@CURRENTWIPLIMIT, 0), 0), 1), '.00', '') AS [CURRENTWIPLIMIT],
REPLACE(CONVERT(VARCHAR, ROUND(ISNULL(@DRAFTINVOICELIMIT, 0), 0), 1), '.00', '') AS [DRAFTINVOICELIMIT],
ISNULL(@TIMEDAYBOOKLIMITHR, '00:00') AS [TIMEDAYBOOKLIMITHR],
ISNULL(@TIMEFORWEEKHR, '00:00') AS [TIMEFORWEEKHR],
ISNULL(@TIMEFORMONTHHR, '00:00') AS [TIMEFORMONTHHR],
ISNULL(@TIMEFORYEARHR, '00:00') AS [TIMEFORYEARHR],
ISNULL(@NCTIMEFORMONTHHR, '00:00') AS [NCTIMEFORMONTHHR],
ISNULL(@NCTIMEFORYEARHR, '00:00') AS [NCTIMEFORYEARHR],
ISNULL(@TIMEYTDHR, '00:00') AS [TIMEYTDHR]
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DashboardUpdatePanelName'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DashboardUpdatePanelName]
END
GO
CREATE PROCEDURE KAAS_DashboardUpdatePanelName (@userPanelId int , @panelName varchar(50))
AS
/*******************************************************************************************************
* Update the name of the user Panel. *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardUpdatePanelName] *
* *
* Modification History : *
* 2019-05-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
UPDATE [UserPanels]
SET panelname = @panelName
WHERE userpanelid = @userPanelId
END
GO
IF OBJECT_ID(N'KAAS_DeleteAction',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_DeleteAction]
GO
CREATE PROCEDURE [dbo].[KAAS_DeleteAction]
(
@ACTIONID INT,
@HANDLERCODE VARCHAR(10)
)
/*******************************************************************************************************
* This procedure is used Delete an Action from the Case Diary. *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteAction] *
* Copied from : [dbo].[ky_NETAADelete] *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
DECLARE @Error VARCHAR(200)
DECLARE @NCOMMAND nvarchar(MAX)
DECLARE @AllowUserToDeleteOthersAction BIT;
SET NOCOUNT ON
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 [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
DELETE DAT
FROM [dbo].[DiaryAttachments] DAT
WHERE DAT.[DiaryID] = @ACTIONID
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
DELETE DIA
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONID] = @ACTIONID
SELECT 'True'
END
ELSE
BEGIN
SELECT @Error
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_DeleteAllClientChargeOutRates',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteAllClientChargeOutRates]
GO
CREATE PROCEDURE [dbo].[KAAS_DeleteAllClientChargeOutRates] (
@ClientCode VARCHAR(20),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteAllClientChargeOutRates] *
* Copied from : NA *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DELETE FROM
ClientChargeOutRates
WHERE
CLIENTCODE = @ClientCode
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_DeleteAllMatterChargeOutRates',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteAllMatterChargeOutRates]
GO
CREATE PROCEDURE [dbo].[KAAS_DeleteAllMatterChargeOutRates] (
@MatterCode VARCHAR(20),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to delete all the matter charge out rates. *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteAllMatterChargeOutRates] *
* Copied from : NA *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DELETE FROM
MatterChargeOutRates
WHERE
MatterCode = @MatterCode
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_DeleteAssociateContact]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteAssociateContact]
GO
CREATE PROCEDURE [KAAS_DeleteAssociateContact]
(
@KeyId VARCHAR(20)
,@Code VARCHAR(20)
,@Result INT OUTPUT
)
AS
/*******************************************************************************************************
* This procedure is used delete Case Associate.CaseAssoicatesContact *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteAssociateContact] *
* Copied from : [dbo].[ky_NETDeleteAssociateContact] *
* *
* Modification History : *
* 2019-06-03 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF(SELECT TOP 1 1 FROM CaseAssociatesContacts WHERE NAMECODE = @Code AND KEYID = @KeyId)IS NOT NULL
BEGIN
DELETE FROM
CaseAssociatesContacts
WHERE
NAMECODE = @Code
AND
KEYID = @KeyId
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DeleteAssociateProfessional'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DeleteAssociateProfessional]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_DeleteAssociateProfessional]
(@Code VARCHAR(6),
@Type VARCHAR(12),
@Result INT OUTPUT)
AS
/*************************************************************************************************************
* *
* [dbo].[ky_NETDeleteProfessional] '904385', 'DEFENDANT' *
* Deletes a Case Associate Type and its associated Case Associate Name if there are no remaining Types *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * First compatible version: - * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* ?????????? ??????????? Created *
* 2015-02-12 Arun V. Change NVARCHAR to VARCHAR *
* 2016-04-04 Arun V. have added Case Assocaite Type to delte particular associative *
* 2017-11-10 Pino Carafa Coding Standards *
* Bug: Was deleting Case Associate Contacts even when still keeping the *
* Case Associate Name *
* 2018-05-17 Pino Carafa KEYD-5253 was NOT deleting Type if ANY CaseContacts existed for ANY type *
* 2019-06-03 Arun V Copied from [dbo].[ky_NETDeleteProfessional] *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[NAMECODE] = @Code
AND ( ISNULL(@TYPE, '') = ''
OR [CC].[CONTYPE] = ISNULL(@Type, '')))
BEGIN
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code) -- if this code exists in the Case Associates Names (if)
BEGIN
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseAssoicatesTypes] [CAT]
WHERE [CAT].[NAMECODE] = @Code
AND [CAT].[TYPECODE] <> @Type) -- can we delete the associated data?
BEGIN
DELETE [CAC]
FROM [dbo].[CaseAssociatesContacts] [CAC]
WHERE [CAC].[NAMECODE] = @Code
DELETE [CAT]
FROM [dbo].[CaseAssoicatesTypes] [CAT]
WHERE [CAT].[NAMECODE] = @Code
AND [CAT].[TYPECODE] = @Type
DELETE [CAN]
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code
END
ELSE -- can we delete the associated data? (else)
BEGIN
DELETE [CAT]
FROM [dbo].[CaseAssoicatesTypes] [CAT]
WHERE [CAT].[NAMECODE] = @Code
AND [CAT].[TYPECODE] = @Type
END
SET @Result = 1
END
ELSE -- if this code exists in the Case Associates Names (else)
BEGIN
SET @Result = 0
END
END
ELSE
BEGIN
SET @Result = 2
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_DeleteAssociateUDFs',N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_DeleteAssociateUDFs]
END
GO
CREATE PROCEDURE [dbo].[KAAS_DeleteAssociateUDFs] (
@XML NVARCHAR(MAX))
AS
/***************************************************************************************************************
*
* Deletes the UDF from the Associate
*
* Stored procedure name : KAAS_DeleteAssociateUDFs
* Copied from : ky_NETDeleteAssociateOtherDetails
*
*
*
*
*
* Modification History
* 2019-01-15 John Ginnane KEYD-5645 - Created
* 2019-07-29 Vinodhan Created Deletes the UDF from the Associate
*
**************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @idoc INT
DECLARE @NAMECODE VARCHAR(100)
DECLARE @FIELDS TABLE ([id] INT)
BEGIN TRY
EXEC sp_xml_preparedocument @idoc OUTPUT, @XML
END TRY
BEGIN CATCH
END CATCH
SELECT @NAMECODE = T.[NAMECODE]
FROM OPENXML(@idoc, 'data', 2)
WITH([NAMECODE] VARCHAR(100) '@namecode') AS T
INSERT INTO @FIELDS ([id])
SELECT T.[id]
FROM OPENXML(@idoc, 'data/item', 2)
WITH([id] INT '@id') AS T
DELETE AUD
FROM [dbo].[AssociateUDF] AS AUD
INNER JOIN @FIELDS AS TMP
ON AUD.[Id] = TMP.[id]
WHERE AUD.[NameCode] = @NAMECODE
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DeleteAttachments'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DeleteAttachments]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_DeleteAttachments]
(@TRACKREFERENCE INT)
AS
/*****************************************************************************
Stored Procedure Name : KAAS_DeleteAttachments
Copied From : [ky_NETAADeleteAttachments]
Description: This procedure is used Delete the Contact for ClientCase Page.
Imported into Framework for backward compatibility
22MAR2016 Sridharan KEYD-3422Changes to the Firm Undertakings Grid and Form
11JUN2019 Created KAAS_DeleteAttachments
*****************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT 1 FROM DiaryAttachments D WHERE D.TRACKREFERENCE = @TRACKREFERENCE)
BEGIN
DECLARE @ActionID INT
SET @ActionID = (SELECT DiaryID FROM DiaryAttachments WHERE TrackReference = @TrackReference)
IF EXISTS(SELECT * FROM diary WHERE ACTIONID = @ActionID AND ACTIONTYPE = 'U')
BEGIN
DECLARE @UserName VARCHAR(20)
DECLARE @Description VARCHAR(500)
DECLARE @DescriptionTo VARCHAR(500)
SET @UserName = (SELECT NAME FROM Handlers WHERE Code = (SELECT FNCODE FROM diary WHERE ACTIONID = @ActionID))
SET @Description = (SELECT 'Attachment Deleted: ' + CHAR(13) + CHAR(10)
+ 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME, DATEENTERED),106) + CHAR(13) + CHAR(10)
+ 'Document Name: ' + DOCUMENT +CHAR(13) + CHAR(10)
+ 'Document Class: ' + DOCCLASS + CHAR(13) + CHAR(10) FROM DiaryAttachments WHERE TrackReference = @TrackReference )
INSERT INTO
[dbo].[UndertakingLog]
([UndertakingID],
[FieldChanges],
[FromValue],
[ToValue],
[ByWho],
[ModifiedDate])
VALUES(@ActionID,
'Documents Deleted',
'',
@Description,
@UserName,
CONVERT(DATETIME,GETDATE(),112))
END
DELETE FROM
DiaryAttachments
WHERE
TRACKREFERENCE = @TRACKREFERENCE
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_DeleteCaseAssociate]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteCaseAssociate]
GO
CREATE PROCEDURE [KAAS_DeleteCaseAssociate]
(
@Code VARCHAR(20)
,@CaseCode VARCHAR(20)
,@ConType VARCHAR(50)
,@Connum INT
,@Result INT OUTPUT
)
AS
/*****************************************************************************
Stored Procedure Name : KAAS_DeleteCaseAssociate
Copied From : ky_NETDeleteCaseAssociate
Description: This procedure is used delete Case Associate.
CaseAssoicatesTypes
Last Updated: 12 FEB 2015 Arun- Change NVARCHAR to VARCHAR
23JUN2015 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM(
13JAN2015 Sridharan KEYD -3114 - Resequence Case Associates after sequence number changes
2016-04-11 John Now deleting only the @CONNUM contact
2019-07-27 Vinodhan Created KAAS_DeleteCaseAssociate
*****************************************************************************/
BEGIN
SET NOCOUNT ON
IF(SELECT TOP 1 1 FROM CaseContacts WHERE NAMECODE = @Code AND CASECODE = @CaseCode AND RTRIM(CONTYPE) = RTRIM(@ConType))IS NOT NULL
BEGIN
DELETE FROM [dbo].[CaseContacts]
WHERE [NAMECODE] = @Code
AND [CASECODE] = @CaseCode
AND [CONTYPE] = @ConType
AND [CONNUM] = @Connum
EXEC KAAS_ReorderCaseContact @CaseCode,@ConType,@Connum,@Connum
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_DeleteCategory]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteCategory]
GO
CREATE PROCEDURE [KAAS_DeleteCategory] (
@RecordID INT
)
/*******************************************************************************************************
* This procedure is used Delete the Client page Category. *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteCategory] *
* Copied from : [dbo].[ky_NETCONDeleteCategory] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
DELETE FROM
ContactCategories
WHERE
RECORDID = @RecordID
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_DeleteClientChargeOutRates]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteClientChargeOutRates]
GO
CREATE PROCEDURE [KAAS_DeleteClientChargeOutRates] (
@ClientCode VARCHAR(10)
,@FeeEarnerCode VARCHAR(10)
,@Rate VARCHAR(10)
,@Result INT OUTPUT
)
AS
/*******************************************************************************************************
* This stored procedure is used to delete ClientChargeOutRates details. *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteClientChargeOutRates] *
* Copied from : [dbo].[ky_NETCONDeleteClientChargeOutRates] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DELETE FROM
ClientChargeOutRates
WHERE
ClientCode = @ClientCode
AND FeCode = @FeeEarnerCode
AND Rate = @Rate
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_DeleteContactcategory',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_DeleteContactcategory]
GO
CREATE PROCEDURE [dbo].[KAAS_DeleteContactcategory]
(
@ClientCode VARCHAR(10),
@CatId INT,
@CTCode VARCHAR(6),
@CCode VARCHAR(10),
@ContactNum INT,
@Result INT OUTPUT
)
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteContactcategory] *
* Copied from : NA *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT top 1 1 FROM ClientContactCategories WHERE CCCategoryId = @CatId )
BEGIN
DELETE FROM ClientContactCategories
WHERE ClientCode = @ClientCode
AND CCCategoryId = @CatId
AND CategoryType = @CTCode
AND Category = @CCode
AND ContactNum = @ContactNum
SET @Result = 1
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_DeleteContactType]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteContactType]
GO
CREATE PROCEDURE [KAAS_DeleteContactType]
(
@Code VARCHAR(20)
,@Result INT OUTPUT
)
AS
/*******************************************************************************************************
* This procedure is used delete Associate type. CaseAssoicatesTypes *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteContactType] *
* Copied from : [dbo].[ky_NETDeleteContactType] *
* *
* Modification History : *
* 2019-05-30 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF(SELECT TOP 1 1 FROM AssociateTypes WHERE CODE = @Code)IS NOT NULL
BEGIN
IF(SELECT TOP 1 1 FROM CaseAssoicatesTypes WHERE TYPECODE = @Code) IS NULL
BEGIN
DELETE FROM
AssociateTypes
WHERE
CODE = @Code
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_DeleteCrossReference]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteCrossReference]
GO
CREATE PROCEDURE
[KAAS_DeleteCrossReference]
(@Code VARCHAR(10),
@LinkToCode VARCHAR(10),
@Relationship VARCHAR(50),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to delete ContactLinks details. *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteCrossReference] *
* Copied from : [dbo].[ky_NETCONDeleteCrossReference] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DELETE CL
FROM [dbo].[ContactLinks] CL
WHERE CL.[CONTACTA] = RTRIM(ISNULL(@Code, ''))
AND CL.[CONTACTB] = RTRIM(ISNULL(@LinkToCode, ''))
AND CL.[RELATE] = RTRIM(ISNULL(@Relationship, ''))
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_DeleteDiaryDelegations]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteDiaryDelegations]
GO
CREATE PROCEDURE [KAAS_DeleteDiaryDelegations]
(
@ASSIGNNO INT,
@CODE VARCHAR(20),
@ACTIONID INT
)
/*****************************************************************************
Stored Procedure Name: [[KAAS_DeleteDiaryDelegations]]
Description: This procedure is used delete the diary delegation based on assignno and action id
Last Updated:
12 FEB 2015 Arun- Change NVARCHAR to VARCHAR
26 SEP 2017 Arun - KEYD-4577
26 SEP 2017 Arun - KEYD-4577 - Added an condition to check any action is delegated by the owner..
03 JUN 2019 Arun - Copied from [ky_NETCCFetchDiaryDelegations]
*****************************************************************************/
AS
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT 1 FROM DiaryDelegations WHERE AssignNo = @ASSIGNNO AND DelType = 'Released')
BEGIN
UPDATE
DiaryDelegations
SET
DELEGATE = @CODE
, FromHandler = @CODE
WHERE
ACTIONID = @ACTIONID
AND
[OWNER] = 'Y'
END
DELETE FROM
DiaryDelegations
WHERE
AssignNo = @ASSIGNNO
AND DelType <> 'Created'
IF ( SELECT
COUNT(*)
FROM
DiaryDelegations
WHERE
DELEGATE = (SELECT
HANDLER
FROM
DiaryDelegations
WHERE
[OWNER] = 'Y' AND
ACTIONID = @ACTIONID) AND
DelType = 'Delegated' AND
ACTIONID = @ACTIONID) = 0
BEGIN
UPDATE
diary
SET
DELEGATIONSTATUS = 0
WHERE
ACTIONID = @ACTIONID
END
SET NOCOUNT OFF
END
GO
IF [dbo].[ISSAM4]() = 1
BEGIN
EXEC ('
IF OBJECT_ID(N''KAAS_DeleteDraftBillOnlySAM4'',N''P'') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_DeleteDraftBillOnlySAM4]
END')
EXEC ('
CREATE PROCEDURE
[dbo].[KAAS_DeleteDraftBillOnlySAM4]
(@ID INT,
@HANDLERCODE VARCHAR(10))
/*******************************************************************************************************
* This procedure is used to delete the Bill related details for a draft bill. *
* This procedure can be called from: *
* KAAS_DeleteAction *
* KAAS_DeleteDraftBillSAM4 *
* The above procedures take care of the associated Action as well as the Bill information. *
* This procedure only looks at the Bill information, and assumes that the Action is taken care of. *
* *
* Do NOT call this procedure on its own. *
* Suitable for SAM4 only *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteDraftBillOnlySAM4] *
* Copied from : [dbo].[ky_NETSPDeleteDraftBillOnlySAM4] *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
DECLARE @xml XML
SET @xml = (SELECT BH.[BillingID],
BH.[MatterCode],
BH.[BillDescription],
BH.[Addressee],
BH.[FeCode],
BH.[InvoiceTo],
BH.[Address],
BH.[Ref],
BH.[Type],
BH.[OpenInvoice],
BH.[BillDate],
BH.[TimeWriteDownDate],
BH.[TransferToPay],
BH.[Message],
BH.[InvoiceNo],
BH.[CreateBy],
BH.[EntryDate],
BH.[BillStatus],
BH.[ReleasedBy],
BH.[ReleasedDate],
BH.[AccountsClearedBy],
BH.[AccountsClearedDate],
BH.[Billlayout],
BH.[Branch],
BH.[CreditInvoiceNo],
BH.[ProForma],
BH.[DefaultBillLayoutReportID]
FROM [dbo].[Billhead] BH
WHERE BH.[BillingID] = @ID
FOR XML AUTO)
INSERT
INTO [dbo].[BillLogging]
([DATE],
[Handler],
[DRAFTNO],
[Action])
SELECT GETDATE(),
@HANDLERCODE,
BH.[BillingID],
''Deleted FROM Action: '' + CONVERT(VARCHAR(MAX), @xml)
FROM [dbo].[Billhead] BH
WHERE BH.[BillingID] = @ID
EXEC [dbo].[ky_BGDeleteSAM4] @ID
DELETE FROM [dbo].[Billhead] WHERE [BillingID] = @ID
DELETE FROM [dbo].[BillDetail] WHERE [BillID] = @ID
DELETE FROM [dbo].[BillingGuideFormated] WHERE [BillGuideNo] = @ID
DELETE FROM [dbo].[BillingGuide] WHERE [BillingNo] = @ID
DELETE FROM [dbo].[BillBreakdown] WHERE [BillingNo] = @ID
DELETE FROM [dbo].[BillingLog] WHERE [BillingId] = @ID
DELETE FROM [dbo].[BillCompMatter] WHERE [BillingNo] = @ID
UPDATE TIE
SET TIE.[BILLED] = 0
FROM [dbo].[TimeEntry] AS TIE
WHERE TIE.[BILLED] = @ID * - 1
UPDATE TRN
SET TRN.[DraftNo] = 0
FROM [dbo].[Transactions] AS TRN
WHERE TRN.[DraftNo] = @ID * -1
SET NOCOUNT OFF
END')
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DeleteHybirdAttachments'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DeleteHybirdAttachments]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_DeleteHybirdAttachments]
(@FilePath VARCHAR(400))
AS
/*******************************************************************************************************
* To delete the attachments from a diary when the configuration is set to hybrid connection *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteHybirdAttachments] *
* *
* Modification History : *
* 2019-06-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @Command VARCHAR(500);
SET @Command = 'DEL "' + @FilePath + '"';
EXECUTE XP_CMDSHELL @Command;
END
GO
IF OBJECT_ID(N'[KAAS_DeleteIntellisense]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteIntellisense]
GO
CREATE PROCEDURE [KAAS_DeleteIntellisense]
(
@Handler VARCHAR(6),
@Id INT
)
AS
/*******************************************************************************************************
* This procedure is used To Delete the Intellisense. *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteIntellisense] *
* Copied from : [dbo].[ky_NETDeleteIntellisense] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DELETE FROM
Intellisense
WHERE
Id = @Id
SELECT
RTRIM(Id) AS Id,
RTRIM(Handler) AS Handler,
RTRIM(Narrative) AS Narrative
FROM
Intellisense
WHERE
Handler = @Handler
ORDER by Narrative
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_DeleteMatterChargeOutRates]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_DeleteMatterChargeOutRates]
GO
CREATE PROCEDURE [KAAS_DeleteMatterChargeOutRates] (
@MatterCode VARCHAR(20)
,@FeCode VARCHAR(10)
,@Result VARCHAR(5) OUTPUT
)
AS
/*******************************************************************************************************
* This stored procedure is used to delete matter charge out rates. *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteMatterChargeOutRates] *
* Copied from : [dbo].[ky_NETMATDeleteMatterChargeOutRateIndicator] *
* *
* Modification History : *
* 2019-05-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DELETE FROM
MatterChargeOutRates
WHERE
MatterCode = @MatterCode
AND FeCode = @FeCode
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_DeleteMatterLinkbyRecordId','P')IS NOT NULL
DROP PROCEDURE KAAS_DeleteMatterLinkbyRecordId
GO
CREATE PROCEDURE KAAS_DeleteMatterLinkbyRecordId
(
@RecordId INT
)
AS
/*
Created By : Arun V
Date : 04Nov2014
Description : This procedure is used to delete matter linked reference by record id
Modification History
-----------------------------------------------------
Date | Modified By | Description
-----------------------------------------------------
22 May 2019 Arun V Copied from ky_NETDeleteMatterLinkbyRecordId
*/
BEGIN
SET NOCOUNT ON
DECLARE @PrimeMatter NVARCHAR(20)
DECLARE @LinkedMatter NVARCHAR(20)
SELECT @PrimeMatter = PrimeMatter , @LinkedMatter = LinkedMatter
FROM LinkedMatters
WHERE RecordId= @RecordId
--Delete link A
DELETE FROM LinkedMatters
WHERE
PrimeMatter = @PrimeMatter AND
LinkedMatter = @LinkedMatter
--Delete link B
DELETE FROM LinkedMatters
WHERE
PrimeMatter = @LinkedMatter AND
LinkedMatter = @PrimeMatter
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DeleteMattersEstimatedFee'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DeleteMattersEstimatedFee]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_DeleteMattersEstimatedFee]
(@RecordID INT)
AS
/*******************************************************************************************************
* This SP used to Delete a Matters Estimated Fee Detail *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteMattersEstimatedFee] *
* Copied from : [dbo].[ky_NETDeleteMattersEstimatedFee] *
* *
* Modification History : *
* 2019-05-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DELETE [MEF]
FROM [dbo].[MattersEstimatedFees] [MEF]
WHERE [MEF].[RecordID] = @RecordID
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DeleteMyDayBook'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DeleteMyDayBook]
END
GO
CREATE PROCEDURE [dbo].[KAAS_DeleteMyDayBook]
@RecordID INT
AS
/*******************************************************************************************************
* Delete a time book from [dbo].[Timedaybook] for the selected record. *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteMyDayBook] *
* Copied from : [dbo].[ky_NETDeleteMyDayBook] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DELETE
Timedaybook
WHERE
RECORDID=@RecordID
END
GO
IF OBJECT_ID(N'KAAS_DeleteOfficer',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_DeleteOfficer]
GO
CREATE PROCEDURE [dbo].[KAAS_DeleteOfficer] (
@ClientCode VARCHAR(20),
@RecordId INT,
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteOfficer] *
* Copied from : NA *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DELETE FROM Officers
WHERE CONTACTCODE = @ClientCode
AND RECORDID = @RecordId
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_DeleteOtherContacts',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_DeleteOtherContacts]
GO
CREATE PROCEDURE [dbo].[KAAS_DeleteOtherContacts] (
@ClientCode VARCHAR(20),
@NumContact INT,
@Result VARCHAR(10) OUTPUT)
AS
/*******************************************************************************************************
* This procedure is used to delete client contact categories *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteOtherContacts] *
* Copied from : [dbo].[ky_NETCONDeleteOtherContacts] *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DELETE CC
FROM [dbo].[ClientContacts] AS CC
WHERE CC.[CLCODE] = @ClientCode
AND CC.[CLNUMCONTACT] = @NumContact
DELETE CCC
FROM [dbo].[ClientContactCategories] AS CCC
WHERE CCC.[ClientCode] = @ClientCode
AND CCC.[ContactNum] = @NumContact
EXEC [dbo].[ky_NETReorderClientContacts] @ClientCode
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DeleteTimeEntry'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DeleteTimeEntry]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_DeleteTimeEntry]
(@RecordID INT,
@Handler VARCHAR(10),
@User NVARCHAR(128))
AS
/*******************************************************************************************************
* Delete the data of a TimeEntry record page. *
* *
* Stored Procedure Name : [dbo].[KAAS_DeleteTimeEntry] *
* Copied from : [dbo].[ky_NETDeleteTimeEntry] *
* *
* 2015-06-23 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM( *
* 2015-11-12 Pino Carafa KEYD - 2894 - Log user data and timestamp *
* 2015-11-12 John KEYD - 2901 - Deleting a write off will mark written off items *
* as unbilled *
* Modification History: *
* 2019-07-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET @Handler = RTRIM(ISNULL(@Handler, ''))
SET @User = RTRIM(ISNULL(@User, N''))
DECLARE @NCOMMAND NVARCHAR(MAX)
SET @NCOMMAND = N'INSERT
INTO [dbo].[TimeEntryLogNew]
([MATTER],
[FEEEARN],
[DATE],
[TIME],
[RATE],
[CHARGE],
[TASK],
[TIMEORCHARGE],
[COMMENT],
[BILLED],
[NCCODE],
[DOCKET],
[TEAM],
[TRACKREF],
[REC_IRR],
[SHOULDHAVE],
[INVOICENO],
[PERIOD],
[YEAR],
[BILLINGPERIOD],
[BILLINGYEAR],
[OPENINV],
[RECORDID],
[ActionId],
[StageCode],
[Leave],
[BilledAmount],
[IncludeInBill],
[BILLINGDATE],
[AxleNumber],
[WriteOffDT],
[WriteOffID],
[LogFor]'
IF @Handler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[HandlerLogFor]'
END
IF @User <> N''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[LoginLogFor]'
END
SET @NCOMMAND = @NCOMMAND + N')
SELECT [TIE].[MATTER],
[TIE].[FEEEARN],
[TIE].[DATE],
[TIE].[TIME],
[TIE].[RATE],
[TIE].[CHARGE],
[TIE].[TASK],
[TIE].[TIMEORCHARGE],
[TIE].[COMMENT],
[TIE].[BILLED],
[TIE].[NCCODE],
[TIE].[DOCKET],
[TIE].[TEAM],
[TIE].[TRACKREF],
[TIE].[REC_IRR],
[TIE].[SHOULDHAVE],
[TIE].[INVOICENO],
[TIE].[PERIOD],
[TIE].[YEAR],
[TIE].[BILLINGPERIOD],
[TIE].[BILLINGYEAR],
[TIE].[OPENINV],
[TIE].[RECORDID],
[TIE].[ActionId],
[TIE].[StageCode],
[TIE].[Leave],
[TIE].[BilledAmount],
[TIE].[IncludeInBill],
[TIE].[BILLINGDATE],
[TIE].[AxleNumber],
[TIE].[WriteOffDT],
[TIE].[WriteOffID],
''D'''
IF @Handler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@Handler'
END
IF @User <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@User'
END
SET @NCOMMAND = @NCOMMAND + N'
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @RecordID'
EXEC sp_executesql @NCOMMAND, N'@RecordID INT, @Handler VARCHAR(10), @User NVARCHAR(128)', @RecordID, @Handler, @User
-- Check if we're deleting a write off entry
DECLARE @TASK VARCHAR(MAX)
SET @TASK = (SELECT TOP 1 [Task] FROM [dbo].[TimeEntry] WHERE [RecordID] = @RecordID)
IF ISNULL(@TASK, '') = 'WRI'
BEGIN
-- Identify all written off items and mark as unbilled
UPDATE [TIE] SET
[WriteOffID] = NULL,
[WriteOffDT] = NULL
FROM [dbo].[TimeEntry] AS [TIE]
WHERE
[TIE].[WriteOffID] = @RecordID
END
DECLARE @MatterCode NVARCHAR(20)
SELECT @MatterCode = RTRIM(ISNULL([TIE].[Matter], ''))
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @RecordID
DELETE [TIE]
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @RecordID
IF (@MatterCode IS NOT NULL)
BEGIN
EXEC [dbo].[ky_WDUpdateMatterTimeBalance] @MatterCode
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_LogDocumentAccess'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_LogDocumentAccess]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_LogDocumentAccess]
(@TrackReference INT,
@Handler VARCHAR(10),
@Comment VARCHAR(2000))
AS
/*************************************************************************************************************
* *
* [dbo].[ky_NETSPDocumentAccess] *
* *
* Log Document Access *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * First compatible version: 5.5.1.2 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2017-10-02 Pino Carafa Created *
* 2018-08-09 Pino Carafa Performance Improvement *
* 2019-03-20 Pino Carafa Azure Compatibility *
* 2019-05-05 Arun V Copied from ky_NETSPDocumentAccess *
*************************************************************************************************************/
BEGIN
SET @TrackReference = ISNULL(@TrackReference, 0)
IF @TrackReference = 0
BEGIN
RETURN
END
IF (SELECT TOP 1 1 FROM [dbo].[DiaryAttachments] [DAT] WITH (NOLOCK) WHERE [DAT].[TrackReference] = @TrackReference) IS NULL
BEGIN
RETURN
END
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[Handlers] [HAN] WITH (NOLOCK)
WHERE [HAN].[CODE] = RTRIM(ISNULL(@Handler, '')))
BEGIN
SELECT @Handler = RTRIM(ISNULL([HAN].[Code], ''))
FROM [dbo].[Handlers] [HAN] WITH (NOLOCK)
WHERE [HAN].[CODE] = RTRIM(ISNULL(@Handler, ''))
END
ELSE
BEGIN
SET @Handler = ''
END
IF RTRIM(ISNULL(@Handler, '')) = ''
BEGIN
SELECT @Handler = CONVERT(VARCHAR(10),
CASE WHEN CHARINDEX(CHAR(0),
CONVERT(VARCHAR(MAX),
[P].[context_info])) > 0
THEN SUBSTRING(CONVERT(VARCHAR(MAX),
[P].[context_info]),
1,
CHARINDEX(CHAR(0),
CONVERT(VARCHAR(MAX),
[P].[context_info])) - 1)
ELSE CONVERT(VARCHAR(MAX),
[P].[context_info]) END)
FROM [sysprocesses] P
WHERE P.[spid] = @@SPID
END
SET @Handler = RTRIM(ISNULL(@Handler, 'ADM'))
SET @Comment = CASE WHEN RTRIM(ISNULL(@Comment, '')) = ''
THEN 'No reason given'
ELSE RTRIM(ISNULL(@Comment, '')) END
INSERT
INTO [dbo].[DiaryAttachmentAccess]
([TrackReference],
[Handler],
[Comment])
VALUES(@TrackReference,
@Handler,
@Comment)
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DocumentManagerGetDocDetails'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DocumentManagerGetDocDetails]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_DocumentManagerGetDocDetails]
(@ActionID INT,
@Text VARCHAR(MAX),
@From VARCHAR(50),
@Handler VARCHAR(10))
AS
/*********************************************************************************************************************
* [dbo].[ky_NETDocumentManagerGetDocDetails2]
*
* This Procedure is used to get the sync Document name with subject checks
* Originally written as ky_NETDocumentManagerGetDocDetails but the functionality dealing with DocSyncWithSubject
* was so wrong it couldn't be corrected.
*
* Modification History
* 2015 Unknown Originally created.
* 2015-02-12 Arun V. Change NVARCHAR to VARCHAR
* 2015-07-07 Sridharan KEYD-2433 "Remember sync document name setting is not working correctly"
* 2016-02-05 Arun V. Specified the Varchar size
* 2017-04-05 Pino Carafa @Handler was varchar(5) not 10 as it should be
* NO idea what the original creator was thinking.
* Corrected coding standards
* Introduce a second Setting value to store the Yes/No value. Until now, there was
* only DocSyncWithSubject, which was treated as "remember the choice 'YES'" if set
* to True, and "don't remember anything" if set to False. Terrible.
* 2017-05-11 Pino Carafa 1 - If @count (the number of attachments for a particular diary entry) is not 1,
* then none of this applies, and it should just return 2
* 2 - When the EXISTS statements indicate that the requested items DO exist, then
* nothing needs to be done so return 2
* 2019-06-04 Arun V Copied from ky_NETDocumentManagerGetDocDetails2
*********************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @count AS INT
SELECT COUNT(1)
FROM [dbo].[DiaryAttachments] [DAT]
WHERE [DAT].[DiaryID] = 6154
DECLARE @DocSyncWithSubject BIT
DECLARE @DocSyncWithSubjectYesNo INT
SET @count = ISNULL(@count, 0)
--2017-05-11
IF @count <> 1
BEGIN
SELECT 2
RETURN
END
SELECT @DocSyncWithSubject = CASE WHEN [UST].[Value] = 'True'
THEN 1
ELSE 0 END
FROM [dbo].[UserSettings] [UST]
WHERE [UST].[Handler] = @Handler
AND [UST].[Key] = 'DocSyncWithSubject'
SET @DocSyncWithSubject = ISNULL(@DocSyncWithSubject, 0)
IF @DocSyncWithSubject = 1
BEGIN
SELECT @DocSyncWithSubjectYesNo = CASE WHEN [UST].[Value] = 'True'
THEN 1
ELSE 2 END
FROM [dbo].[UserSettings] [UST]
WHERE [UST].[Handler] = @Handler
AND [UST].[Key] = 'DocSyncWithSubjectYesNo'
END
SET @DocSyncWithSubjectYesNo = ISNULL(@DocSyncWithSubjectYesNo, 0)
IF @From = 'Document Manager'
BEGIN
IF (@count = 1)
BEGIN
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[DiaryAttachments] [DAT]
WHERE RTRIM([DAT].[DOCUMENT]) = @Text
AND [DAT].[DIARYID] = @ActionID)
BEGIN
SELECT @DocSyncWithSubjectYesNo
RETURN
END
ELSE
BEGIN
SELECT 2
RETURN
END
END
END
IF @From = 'Case Diary'
BEGIN
IF (@count = 1)
BEGIN
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[diary] [DIA]
WHERE RTRIM(CONVERT(VARCHAR(30), [DIA].[SUBJECT])) = @Text
AND [DIA].[ACTIONID] = @ActionID)
BEGIN
SELECT @DocSyncWithSubjectYesNo
RETURN
END
ELSE
BEGIN
SELECT 2
RETURN
END
END
END
SELECT 0
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_DuplicateDocFolderTree'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_DuplicateDocFolderTree]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_DuplicateDocFolderTree]
(@originalid INT)
AS
/*******************************************************************************************************
* Duplicates a folder tree to a new root *
* *
* Stored Procedure Name : [dbo].[KAAS_DuplicateDocFolderTree] *
* Copied from : [dbo].[ky_NETSPDuplicateDocFolderTree] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @fromid INT
SELECT TOP 1 @fromid = [DF].[id]
FROM [dbo].[DocFolders] [DF]
WHERE [DF].[id] = @originalid
AND [DF].[parent] IS NULL
DECLARE @MAX INT
DECLARE @data TABLE
([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[id] INT NOT NULL,
[parent] INT NOT NULL,
[foldername] VARCHAR(500) NOT NULL,
[foldericon] INT NOT NULL,
[newfolder] BIT NOT NULL,
[deletefolder] BIT NOT NULL)
IF (@fromid IS NOT NULL)
BEGIN
INSERT
INTO @data
([id],
[parent],
[foldername],
[foldericon],
[newfolder],
[deletefolder])
SELECT SRC.[id],
SRC.[parent],
SRC.[foldername],
SRC.[foldericon],
1,
0
FROM [dbo].[KAAS_TF_GetDocFolders3](@fromid, 1, 1) SRC
END
SELECT @MAX = ISNULL(MAX([DF].[id]), 0) FROM [dbo].[DocFolders] [DF]
DECLARE @new TABLE
([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[oldid] INT NOT NULL UNIQUE NONCLUSTERED,
[newid] INT NOT NULL)
INSERT
INTO @new
([oldid],
[newid])
SELECT [DT].[id],
0
FROM @data [DT]
WHERE [DT].[newfolder] = 1
UPDATE [nw]
SET [nw].[newid] = @MAX + [nw].[seq]
FROM @new [NW]
SET IDENTITY_INSERT [dbo].[DocFolders] ON
INSERT
INTO [dbo].[DocFolders]
([id],
[foldername],
[parent],
[foldericon])
SELECT [nw].[newid] AS [id],
[dt].[foldername] AS [foldername],
CASE ISNULL([pr].[newid], 0)
WHEN 0 THEN CASE ISNULL([dt].[parent], 0)
WHEN 0 THEN NULL
ELSE [dt].[parent] END
ELSE [pr].[newid] END AS [parent],
[dt].[foldericon] AS [foldericon]
FROM @data [dt]
INNER JOIN @new [nw]
ON [nw].[oldid] = [dt].[id]
LEFT OUTER JOIN @new [pr]
ON [pr].[oldid] = [dt].[parent]
SET IDENTITY_INSERT [dbo].[DocFolders] OFF
SELECT @MAX = ISNULL(MAX([DF].[id]), 0) + 1
FROM [dbo].[DocFolders] [DF]
DBCC CHECKIDENT('DocFolders', RESEED, @MAX)
DELETE [DF]
FROM @data [dt]
INNER JOIN [dbo].[DocFolders] [DF]
ON [DF].[id] = [dt].[id]
WHERE [dt].[deletefolder] = 1
UPDATE [DF]
SET [DF].[foldername] = [dt].[foldername],
[DF].[parent] = CASE ISNULL([dt].[parent], 0)
WHEN 0 THEN NULL
ELSE [dt].[parent] END,
[DF].[foldericon] = [dt].[foldericon]
FROM @data [dt]
INNER JOIN [dbo].[DocFolders] [DF]
ON [DF].[id] = [dt].[id]
WHERE [dt].[deletefolder] = 0
AND [dt].[newfolder] = 0
DECLARE @newid INT
SELECT TOP 1
@newid = ISNULL([nw].[newid], dt.[id])
FROM @data [dt]
LEFT OUTER JOIN @new [nw]
ON [nw].[oldid] = [dt].[id]
SELECT @newid [id]
RETURN @newid
END
GO
IF OBJECT_ID(N'KAAS_FetchAccountSetting',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchAccountSetting]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchAccountSetting]
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_FetchAccountSetting] *
* Copied from : NA *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT NAME AS [Name]
FROM [control]
END
GO
IF OBJECT_ID(N'KAAS_FetchActionworkType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchActionworkType]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchActionworkType] (@ActionCode VARCHAR(10))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_FetchActionworkType] *
* Copied from : NA *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT TOP 1 WORKTYPE AS [WorkType]
FROM ActionWorkTypes [AWT]
INNER JOIN TemplateActions [TA]
ON [AWT].[WORKTYPE] = [TA].[WKTCODE]
WHERE [TA].[ACTIONCODE] = @ActionCode
END
GO
IF OBJECT_ID(N'KAAS_FetchAllAssociateUDFs', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchAllAssociateUDFs]
END
GO
CREATE PROCEDURE [dbo].[KAAS_FetchAllAssociateUDFs]
AS
/*******************************************************************************************************
* Returns all UDFs for the "AUD:" prefix *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchAllAssociateUDFs] *
* Copied from : [dbo].[ky_NETFetchAllAssociateUDFs] *
* *
* Modification History: *
* 2019-06-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT ISNULL(UDFC.[UDFCategory], '') AS [Category],
SUDF.[PROMPT] AS [PROMPT],
SUDF.[FIELDNAME] AS [FIELDNAME]
FROM [dbo].[SystemUserDefinedFields] AS SUDF
LEFT OUTER JOIN [dbo].[UDFCategory] AS UDFC
ON SUDF.[UDFCategory] = UDFC.[ID]
WHERE SUDF.[FILEPREFIX] = 'AUD:'
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchAllClientChargeOutRates',N'P') IS NOT NULL
DROP PROCEDURE KAAS_FetchAllClientChargeOutRates
GO
CREATE PROCEDURE [dbo].[KAAS_FetchAllClientChargeOutRates] (
@ClientCode VARCHAR(20),
@HandlerType VARCHAR(20)
)
AS
/*******************************************************************************************************
* This stored procedure is used to insert all unretired handlers/charge groups into *
* the client charge out rate list. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchAllClientChargeOutRates] *
* Copied from : [dbo].[ky_NETCONFetchAllClientChargeOutRates] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF (@HandlerType = 'FeeEarners')
BEGIN
INSERT INTO [dbo].[ClientChargeOutRates] (
[ClientCode],
[FeCode],
[Rate],
[EffectiveDate],
[ModifyDate])
SELECT @ClientCode,
LTRIM(RTRIM(HAN.[CODE])),
ISNULL(HAN.[RATE], 0),
GETDATE(),
GETDATE()
FROM [dbo].[Handlers] AS HAN
LEFT OUTER JOIN [dbo].[ClientChargeOutRates] AS CCOR
ON CCOR.[ClientCode] = @ClientCode
AND LTRIM(RTRIM(CCOR.[FeCode])) = LTRIM(RTRIM(HAN.[CODE]))
WHERE ISNULL(HAN.[TEAMCODE], '') <> 'Y'
AND ISNULL(HAN.[RETIRED], '') <> 'Y'
AND CCOR.[FeCode] IS NULL
END
ELSE
BEGIN
INSERT INTO [dbo].[ClientChargeOutRates] (
[ClientCode],
[FeCode],
[Rate],
[EffectiveDate],
[ModifyDate])
SELECT @ClientCode,
LTRIM(RTRIM(HCG.[Code])),
ISNULL(HCG.[DefaultRate], 0),
GETDATE(),
GETDATE()
FROM [dbo].[HandlerChargeGroups] AS HCG
LEFT OUTER JOIN [dbo].[ClientChargeOutRates] AS CCOR
ON CCOR.[ClientCode] = @ClientCode
AND LTRIM(RTRIM(CCOR.[FeCode])) = LTRIM(RTRIM(HCG.[Code]))
WHERE ISNULL(HCG.[Retired], '') <> 'Y'
AND CCOR.[FeCode] IS NULL
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchAllDiary',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_FetchAllDiary]
GO
CREATE PROCEDURE [KAAS_FetchAllDiary] (@ACTIONID INT)
/*******************************************************************************************************
* This procedure is used to fetch diary item by actionid. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchAllDiary] *
* Copied from : NA *
* *
* Modification History : *
* 2019-04-16 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
SELECT
RTRIM(ISNULL(D.[CASECODE], '')) AS CASECODE,
CASE
WHEN D.[DATE] != NULL OR D.[DATE] != ''
THEN CONVERT(VARCHAR, D.[DATE], 20)
ELSE
CONVERT(VARCHAR, GETDATE(), 20)
END AS [DATE],
RTRIM(ISNULL(D.[STATUS], 0)) AS [STATUS],
RTRIM(ISNULL(D.[ACTIONCODE], '')) AS ACTIONCODE,
RTRIM(ISNULL(D.[ACTIONSTATUS], '')) AS ACTIONSTATUS,
RTRIM(ISNULL(D.[ACTIONTYPE], '')) AS ACTIONTYPE,
RTRIM(ISNULL(D.[PROCESSTYPE], '')) AS PROCESSTYPE,
RTRIM(ISNULL(D.[FNCODE], '')) AS FNCODE,
RTRIM(ISNULL(D.[TEAMCODE], '')) AS TEAMCODE,
CAST(RTRIM(LTRIM(CAST(D.[TEXT1] AS nVARCHAR(max)))) AS TEXT) as text3,
ISNULL(D.[TEXT1], '') AS TEXT1,
ISNULL(D.[TEXT2], '') AS TEXT2,
RTRIM(ISNULL(D.[DELEGATEDFNR], '')) AS DELEGATEDFNR,
RTRIM(ISNULL(D.[DELEGATEDDATE], '')) AS DELEGATEDDATE,
RTRIM(ISNULL(D.[DELEGATEDBACKDATE], '')) AS DELEGATEDBACKDATE,
RTRIM(ISNULL(D.[DEFERRED], '')) AS DEFERRED,
CASE
WHEN D.[DUEDATE] != NULL OR D.[DUEDATE] != ''
THEN CONVERT(VARCHAR, D.[DUEDATE], 20)
ELSE
NULL
END AS [DUEDATE],
RTRIM(ISNULL(D.[IMAGENO], '')) AS IMAGENO,
RTRIM(ISNULL(D.[PUBLISH], '')) AS PUBLISH,
CONVERT(VARCHAR, DATEADD(ms, 10 * (ISNULL(
CASE
WHEN ISNUMERIC(D.[DYSTARTTIME]) = 1
THEN D.[DYSTARTTIME]
ELSE
dbo.ky_ConvertTimeToClarion(D.[DYSTARTTIME])
END, 0) - 0),
CONVERT(VARCHAR, GETDATE(), 112)), 108) AS [DYSTARTTIME],
CONVERT(VARCHAR, DATEADD(ms, 10 * (ISNULL(
CASE
WHEN ISNUMERIC(D.[DYENDTIME]) = 1
THEN D.[DYENDTIME]
ELSE
dbo.ky_ConvertTimeToClarion(D.[DYENDTIME])
END, 0) - 0),
CONVERT(VARCHAR, GETDATE(), 112)), 108) AS [DYENDTIME],
RTRIM(D.[DYSTARTTIME]) AS [DYSTARTTIME1],
RTRIM(D.[DYENDTIME]) AS [DYENDTIME1],
--CONVERT(VARCHAR, DATEADD(ms, 10 * (ISNULL(D.DYSTARTTIME, 0) - 0), CONVERT(VARCHAR, GETDATE(), 112)), 108) AS DYSTARTTIME,
--CONVERT(VARCHAR, DATEADD(ms, 10 * (ISNULL(D.DYENDTIME, 0) - 0), CONVERT(VARCHAR, GETDATE(), 112)), 108) AS DYENDTIME,
--stuff( right(CONVERT(VARCHAR, DATEADD(ms, 10 * (DYSTARTTIME - 1), CONVERT(VARCHAR, GETDATE(), 108)), 109), 15 ), 7, 7, ' ' ) AS DYSTARTTIME,
--stuff( right(CONVERT(VARCHAR, DATEADD(ms, 10 * (DYENDTIME - 1), CONVERT(VARCHAR, getDate(), 108)), 109), 15 ), 7, 7, ' ' ) AS DYENDTIME,
RTRIM(ISNULL(D.[DURATION], 0)) AS DURATION,
RTRIM(ISNULL(D.[ACTIONID], 0)) AS ACTIONID,
RTRIM(ISNULL(D.[ORGINALACTIONID], 0)) AS ORGINALACTIONID,
RTRIM(ISNULL(D.[PRIORITY], '')) AS [PRIORITY],
RTRIM(ISNULL(D.[HIGHLIGHTED], '')) AS HIGHLIGHTED,
RTRIM(ISNULL(D.[MILESTEONETYPE], '')) AS MILESTONETYPE,
RTRIM(ISNULL(D.[ATTACHMENTS], '')) AS ATTACHMENTS,
RTRIM(ISNULL(D.[PROCESSSTATUS], 0)) AS PROCESSSTATUS,
RTRIM(ISNULL(D.[WORKPROCESS], 0)) AS WORKPROCESS,
RTRIM(ISNULL(D.[BILLABLE], 0)) AS BILLABLE,
RTRIM(ISNULL(D.[BILLDESCRIPTION], '')) AS BILLDESCRIPTION,
RTRIM(ISNULL(D.[EMAILADDRESS], '')) AS EMAILADDRESS,
ISNULL(D.[ADDRESSTO], '') AS ADDRESSTO,
ISNULL(D.[CCTo], '') AS CCTo,
ISNULL(D.[BCCTo], '') AS BCCTo,
RTRIM(ISNULL(D.[EMAIL], '')) AS EMAIL,
ISNULL(D.[SUBJECT], '') AS [SUBJECT],
RTRIM(ISNULL([DELEGATIONSTATUS], 0)) AS DELEGATIONSTATUS,
RTRIM(ISNULL([DRAFTBILLNO], 0)) AS DRAFTBILLNO,
RTRIM(ISNULL(D.[CHEQUEREQNO], 0)) AS CHEQUEREQNO,
RTRIM(ISNULL(D.[TxmSent], 0)) AS TxmSent,
RTRIM(ISNULL(D.[Location], '')) AS Location,
RTRIM(ISNULL(D.[HearingType], '')) AS HearingType,
RTRIM(ISNULL(D.[ForCopy], '')) AS ForCopy,
RTRIM(ISNULL(D.[TxmDate], '')) AS TxmDate,
RTRIM(ISNULL(D.[TxmSeqNo], 0)) AS TxmSeqNo,
RTRIM(ISNULL(D.[Flag],0)) AS Flag,
RTRIM(ISNULL(H.[RETIRED],'')) AS Retired,
RTRIM(ISNULL(H.[NAME],'')) AS [Name],
M.[Closed] AS [Closed],
ISNULL(D.[KYC],'N') AS KYC,
ISNULL(S.[Retired],'N') AS ActionRetired,
RTRIM(ISNULL(TA.[Arrangement],'')) AS [Arrangement],
RTRIM(ISNULL(M.[ChargeArrangement],'')) AS [ChargeArrangement]
FROM
[DIARY] D
LEFT JOIN [Handlers] H ON D.[FNCODE] = H.[CODE]
LEFT JOIN [matters] M ON D.[CASECODE] = M.[Code]
LEFT JOIN [StatusCodes] S ON D.[ACTIONSTATUS] = S.[CODE]
LEFT OUTER JOIN TemplateActions TA ON D.ACTIONCODE = TA.ACTIONCODE
LEFT OUTER JOIN Templates T ON T.[WKCODE] = TA.WKTCODE
WHERE
[ACTIONID] = @ACTIONID
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchAllFeeEarners',N'P')IS NOT NULL
DROP PROCEDURE KAAS_FetchAllFeeEarners
GO
CREATE PROCEDURE
KAAS_FetchAllFeeEarners
(@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This stored procedure is used to FETCH all active fee earners *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchAllFeeEarners] *
* Copied from : [dbo].[ky_NETCONFetchAllFeeEarners] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
RTRIM(Code) AS Code,
RTRIM(NAME) AS Handler
FROM
Handlers
WHERE
TEAMCODE <> 'Y'
AND (RETIRED<>'Y'
OR CODE = @Code)
UNION ALL
SELECT
RTRIM(CODE),
RTRIM(NAME)
FROM
HandlerChargeGroups
SELECT
CONVERT(VARCHAR(10),GETDATE(), 112) AS CurrentDate
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchAllRecentMatterList',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchAllRecentMatterList]
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchAllRecentMatterList]
(@Search NVARCHAR(MAX),
@PageNumber INT,
@PageSize INT)
AS
/*******************************************************************************************************
* Performs a matter search based on search criteria passed in in XML format through @Search. *
* *
* Stored Procedure Name : [dbo].KAAS_FetchAllRecentMatterList] *
* Copied from : [dbo].[ky_NETSPXMLMatterSearch2] *
* *
* Modification History: *
* 2019-05-02 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @closed NCHAR(1)
DECLARE @orderby NVARCHAR(50)
DECLARE @order NVARCHAR(4)
DECLARE @howmany INT
DECLARE @handler NVARCHAR(10)
DECLARE @which INT
DECLARE @BitWiseID BIGINT
DECLARE @searchtext VARCHAR(MAX)
DECLARE @searchonlycode VARCHAR(3)
DECLARE @departmentdesc VARCHAR(50)
DECLARE @department VARCHAR(5)
DECLARE @worktypedesc VARCHAR(50)
DECLARE @worktype VARCHAR(5)
DECLARE @filecolourdesc VARCHAR(20)
DECLARE @filecolour VARCHAR(3)
DECLARE @feecode VARCHAR(10)
DECLARE @includename BIT
DECLARE @includedescription BIT
DECLARE @includeaddress BIT
DECLARE @includeemail BIT
DECLARE @includecode BIT
DECLARE @includeoldref BIT
DECLARE @includeuser1 BIT
DECLARE @andorname VARCHAR(3)
DECLARE @andornamevalue VARCHAR(200)
DECLARE @andordescription VARCHAR(3)
DECLARE @andordescriptionvalue VARCHAR(200)
DECLARE @andoraddress VARCHAR(3)
DECLARE @andoraddressvalue VARCHAR(200)
DECLARE @andorcode VARCHAR(3)
DECLARE @andorcodevalue VARCHAR(200)
DECLARE @andorfeecode VARCHAR(3)
DECLARE @andorfeecodevalue VARCHAR(200)
DECLARE @andoroldref VARCHAR(3)
DECLARE @andoroldrefvalue VARCHAR(200)
DECLARE @andordept VARCHAR(3)
DECLARE @andordeptvalue VARCHAR(200)
DECLARE @andoruser1 VARCHAR(3)
DECLARE @andoruser1value VARCHAR(200)
DECLARE @andoruser2 VARCHAR(3)
DECLARE @andoruser2value VARCHAR(200)
DECLARE @andoruser3 VARCHAR(3)
DECLARE @andoruser3value VARCHAR(200)
DECLARE @andoryourref VARCHAR(3)
DECLARE @andoryourrefvalue VARCHAR(200)
DECLARE @andorwtype VARCHAR(3)
DECLARE @andorwtypevalue VARCHAR(200)
DECLARE @iSL INT
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @Search
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @closed = CASE ISNULL(SRC.[closed], N'N')
WHEN N'Y' THEN N'Y'
WHEN N'B' THEN N'B'
ELSE N'N' END,
@orderby = ISNULL(SRC.[orderby], N''),
@order = CASE ISNULL(SRC.[order], N'DESC')
WHEN N'DESC'
THEN N'DESC'
ELSE N'ASC' END,
@howmany = ISNULL(SRC.[howmany], 500),
@handler = ISNULL(SRC.[handler], N''),
@which = CASE ISNULL(SRC.[which], 0)
WHEN 1 THEN 1 --My Matters
WHEN 2 THEN 2 --Recent Matters
ELSE 0 END, --All Matters
@searchtext = ISNULL(SRC.[search], ''),
@searchonlycode = ISNULL(SRC.[searchonlycode], ''),
@departmentdesc = ISNULL(SRC.[dept], ''),
@worktypedesc = ISNULL(SRC.[wtype], ''),
@filecolourdesc = ISNULL(SRC.[colour], ''),
@feecode = ISNULL(SRC.[feecodefilter], ''),
@includeaddress = ISNULL(SRC.[includeaddress], 0),
@includeemail = ISNULL(SRC.[includeemail], 0),
@includecode = ISNULL(SRC.[includecode], 0),
@includedescription = ISNULL(SRC.[includedescription], 0),
@includename = ISNULL(SRC.[includename], 0),
@includeoldref = ISNULL(SRC.[includeoldref], 0),
@includeuser1 = ISNULL(SRC.[includeuser1], 0),
@andorname = ISNULL(SRC.[andorname], ''),
@andornamevalue = ISNULL(SRC.[andornamevalue], ''),
@andordescription = ISNULL(SRC.[andordescription], ''),
@andordescriptionvalue = ISNULL(SRC.[andordescriptionvalue], ''),
@andoraddress = ISNULL(SRC.[andoraddress], ''),
@andoraddressvalue = ISNULL(SRC.[andoraddressvalue], ''),
@andorcode = ISNULL(SRC.[andorcode], ''),
@andorcodevalue = ISNULL(SRC.[andorcodevalue], ''),
@andorfeecode = ISNULL(SRC.[andorfeecode], ''),
@andorfeecodevalue = ISNULL(SRC.[andorfeecodevalue], ''),
@andoroldref = ISNULL(SRC.[andoroldref], ''),
@andoroldrefvalue = ISNULL(SRC.[andoroldrefvalue], ''),
@andordept = ISNULL(SRC.[andordept], ''),
@andordeptvalue = ISNULL(SRC.[andordeptvalue], ''),
@andoruser1 = ISNULL(SRC.[andoruser1], ''),
@andoruser1value = ISNULL(SRC.[andoruser1value], ''),
@andoruser2 = ISNULL(SRC.[andoruser2], ''),
@andoruser2value = ISNULL(SRC.[andoruser2value], ''),
@andoruser3 = ISNULL(SRC.[andoruser3], ''),
@andoruser3value = ISNULL(SRC.[andoruser3value], ''),
@andoryourref = ISNULL(SRC.[andoryourref], ''),
@andoryourrefvalue = ISNULL(SRC.[andoryourrefvalue], ''),
@andorwtype = ISNULL(SRC.[andorwtype], ''),
@andorwtypevalue = ISNULL(SRC.[andorwtypevalue], '')
FROM OPENXML(@iSL, N'search')
WITH ([closed] NCHAR(1) '@closed',
[orderby] NVARCHAR(50) '@orderby',
[order] NVARCHAR(4) '@order',
[howmany] INT '@howmany',
[handler] NVARCHAR(10) '@handler',
[which] INT '@which',
[search] VARCHAR(MAX) '@search',
[searchonlycode] VARCHAR(3) '@searchonlycode',
[dept] VARCHAR(50) '@departmentfilter',
[wtype] VARCHAR(50) '@worktypefilter',
[colour] VARCHAR(20) '@filecolourfilter',
[feecodefilter] VARCHAR(10) '@feecodefilter',
[includeaddress] BIT 'include/includefield[@name="address"]',
[includecode] BIT 'include/includefield[@name="code"]',
[includedescription] BIT 'include/includefield[@name="description"]',
[includename] BIT 'include/includefield[@name="name"]',
[includeoldref] BIT 'include/includefield[@name="oldref"]',
[includeuser1] BIT 'include/includefield[@name="user1"]',
[includeemail] BIT 'include/includefield[@name="email"]',
[andorname] VARCHAR(3) 'andor/andorfield[@name="name"]/@andor',
[andornamevalue] VARCHAR(100) 'andor/andorfield[@name="name"]/@search',
[andordescription] VARCHAR(3) 'andor/andorfield[@name="description"]/@andor',
[andordescriptionvalue] VARCHAR(100) 'andor/andorfield[@name="description"]/@search',
[andoraddress] VARCHAR(3) 'andor/andorfield[@name="address"]/@andor',
[andoraddressvalue] VARCHAR(100) 'andor/andorfield[@name="address"]/@search',
[andorcode] VARCHAR(3) 'andor/andorfield[@name="code"]/@andor',
[andorcodevalue] VARCHAR(100) 'andor/andorfield[@name="code"]/@search',
[andorfeecode] VARCHAR(3) 'andor/andorfield[@name="feecode"]/@andor',
[andorfeecodevalue] VARCHAR(100) 'andor/andorfield[@name="feecode"]/@search',
[andoroldref] VARCHAR(3) 'andor/andorfield[@name="oldref"]/@andor',
[andoroldrefvalue] VARCHAR(100) 'andor/andorfield[@name="oldref"]/@search',
[andordept] VARCHAR(3) 'andor/andorfield[@name="dept"]/@andor',
[andordeptvalue] VARCHAR(100) 'andor/andorfield[@name="dept"]/@search',
[andoruser1] VARCHAR(3) 'andor/andorfield[@name="user1"]/@andor',
[andoruser1value] VARCHAR(100) 'andor/andorfield[@name="user1"]/@search',
[andoruser2] VARCHAR(3) 'andor/andorfield[@name="user2"]/@andor',
[andoruser2value] VARCHAR(100) 'andor/andorfield[@name="user2"]/@search',
[andoruser3] VARCHAR(3) 'andor/andorfield[@name="user3"]/@andor',
[andoruser3value] VARCHAR(100) 'andor/andorfield[@name="user3"]/@search',
[andoryourref] VARCHAR(3) 'andor/andorfield[@name="yourref"]/@andor',
[andoryourrefvalue] VARCHAR(100) 'andor/andorfield[@name="yourref"]/@search',
[andorwtype] VARCHAR(3) 'andor/andorfield[@name="wtype"]/@andor',
[andorwtypevalue] VARCHAR(100) 'andor/andorfield[@name="wtype"]/@search') SRC
IF @filecolourdesc <> ''
BEGIN
SELECT @filecolour = FC.[COLOURCODE]
FROM [dbo].[FileColours] FC WITH (NOLOCK)
WHERE FC.[COLOURDESC] = @filecolourdesc
END
SET @filecolour = ISNULL(@filecolour, '')
IF @departmentdesc <> ''
BEGIN
SELECT @department = DP.[CODE]
FROM [dbo].[Departments] DP WITH (NOLOCK)
WHERE DP.[DESCRIPTION] = @departmentdesc
END
SET @department = ISNULL(@department, '')
IF @worktypedesc <> ''
BEGIN
IF @worktypedesc LIKE 'Unknown Worktype: %'
BEGIN
SELECT @worktype = WT.[CODE]
FROM [dbo].[WorkTypes] WT WITH (NOLOCK)
WHERE 'Unknown Worktype: ' + WT.[CODE] = @worktypedesc
OR WT.[DESC] = @worktypedesc
END
ELSE
BEGIN
SELECT @worktype = WT.[CODE]
FROM [dbo].[WorkTypes] WT WITH (NOLOCK)
WHERE WT.[DESC] = @worktypedesc
END
END
SET @worktype = ISNULL(@worktype, '')
SET @feecode = ISNULL(@feecode, '')
EXEC sp_xml_removedocument @iSL
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @HasWhere BIT
SET @HasWhere = 0
SET @handler = CASE WHEN RTRIM(ISNULL(@handler, '')) = '' THEN 'ADM' ELSE RTRIM(@handler) END
SELECT @BitWiseID = HNG.[BitWiseID]
FROM HandlerNETGroupMembership HNG WITH (NOLOCK)
WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler)
SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@handler, ''))))
IF (@handler = 'ADM')
BEGIN
SET @BitWiseID = CONVERT(BIGINT, -1)
END
SET @NCOMMAND = N'
--SELECT ''How Many: '' + CONVERT(VARCHAR(10), @HowMany)
--SELECT ''Handler: '' + @Handler
--SELECT ''BitWise ID: '' + CONVERT(VARCHAR(10), @BitWiseID)
DECLARE @Result TABLE
([id] INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
[Code] VARCHAR(20) NOT NULL,
[Name] VARCHAR(256) NOT NULL,
[Description] VARCHAR(200) NOT NULL)
INSERT
INTO @Result
([Code],
[Name],
[Description])
SELECT
SM.[Code] AS [Code],
SM.[Name] AS [Name],
SM.[Description] AS [Description]
FROM [dbo].[SearchMatters] SM WITH (NOLOCK)
CROSS APPLY (SELECT SUBSTRING(CONVERT(VARCHAR, DATEADD(minute, ISNULL(SUM(ISNULL(TDB.[time], 0)), 0), ''19000101''), 108), 1, 5) AS [TOTALTIME]
FROM [dbo].[TimeDayBook] TDB WITH (NOLOCK)
WHERE TDB.[FeeEarn] = @Handler
AND TDB.[matter] = SM.[code]) TTT'
SET @NCOMMAND = @NCOMMAND + N'
LEFT OUTER JOIN [dbo].[RecentMatterList] RML WITH (NOLOCK)
ON RML.[FEE] = @handler
AND RML.[MATTER] = SM.[Code]'
IF (@BitWiseID = 0)
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
WHERE ( SM.[Privileges] = 0
OR SM.[Privileges] = -1)'
END
ELSE IF (@BitWiseID = -1)
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
WHERE 1 = 1'
END
ELSE
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
WHERE SM.[Privileges] & @BitWiseID <> 0'
END
IF (@which = 1)
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FECode] = @handler'
END
IF (@closed = 'N')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Closed] = 0'
END
IF (@closed = 'Y')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Closed] = 1'
END
IF (@worktype <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[WType] = @WorkType'
END
IF (@department <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Dept] = @department'
END
IF (@filecolour <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FileColour] = @filecolour'
END
IF (@feecode <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FECode] = @feecode'
END
DECLARE @SearchIncludes NVARCHAR(MAX)
SET @SearchIncludes = N''
IF (@searchtext <> '')
BEGIN
IF SUBSTRING(@searchtext, 1, 1) <> '%'
BEGIN
SET @searchtext = '%' + @searchtext
END
IF SUBSTRING(@searchtext, LEN(@searchtext), 1) <> '%'
BEGIN
SET @searchtext = @searchtext + '%'
END
SET @searchtext = @searchtext COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF (@includeaddress = 0)
AND (@includecode = 0)
AND (@includedescription = 0)
AND (@includename = 0)
AND (@includeoldref = 0)
AND (@includeuser1 = 0)
AND (@includeemail = 0)
BEGIN
-- This is the standard call - not from Advanced Matter Search, so we search in everything
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
IF @searchonlycode <> 'yes'
BEGIN
SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext
OR SM.[Code] LIKE @searchtext
OR SM.[User1] LIKE @searchtext
OR SM.[User2] LIKE @searchtext
OR SM.[User3] LIKE @searchtext
OR SM.[OldRef] LIKE @searchtext
OR SM.[YourRef] LIKE @searchtext
OR SM.[NCName] LIKE @searchtext
OR SM.[NCAddress] LIKE @searchtext
OR SM.[Email] LIKE @searchtext
OR SM.[NCHandlerName] LIKE @searchtext
OR SM.[NCPartnerName] LIKE @searchtext
OR SM.[DeptDescription] LIKE @searchtext
OR SM.[WTypeDescription] LIKE @searchtext
OR SM.[FileColourDescription] LIKE @searchtext
OR SM.[MatterStatusDescription] LIKE @searchtext'
END
ELSE
BEGIN
SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext'
END
END
ELSE
BEGIN
IF (@includeaddress = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @searchtext'
END
IF (@includecode = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext'
END
IF (@includedescription = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext'
END
IF (@includename = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @searchtext'
END
IF (@includeoldref = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @searchtext'
END
IF (@includeuser1 = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @searchtext'
END
IF (@includeemail = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Email] LIKE @searchtext'
END
END
END
IF @andoraddress = 'OR'
BEGIN
IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%'
BEGIN
SET @andoraddressvalue = '%' + @andoraddressvalue
END
IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%'
BEGIN
SET @andoraddressvalue = @andoraddressvalue + '%'
END
SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @andoraddressvalue'
END
IF @andorcode = 'OR'
BEGIN
IF CHARINDEX('%', @andorcodevalue, 1) = 0
BEGIN
IF SUBSTRING(@andorcodevalue, 1, 1) <> '%'
BEGIN
SET @andorcodevalue = '%' + @andorcodevalue
END
IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%'
BEGIN
SET @andorcodevalue = @andorcodevalue + '%'
END
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @andorcodevalue'
END
IF @andordept = 'OR'
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Dept]= @andordeptvalue'
END
IF @andordescription = 'OR'
BEGIN
IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%'
BEGIN
SET @andordescriptionvalue = '%' + @andordescriptionvalue
END
IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%'
BEGIN
SET @andordescriptionvalue = @andordescriptionvalue + '%'
END
SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @andordescriptionvalue'
END
IF @andorfeecode = 'OR'
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[FECode] = @andorfeecodevalue'
END
IF @andorname = 'OR'
BEGIN
IF SUBSTRING(@andornamevalue, 1, 1) <> '%'
BEGIN
SET @andornamevalue = '%' + @andornamevalue
END
IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%'
BEGIN
SET @andornamevalue = @andornamevalue + '%'
END
SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @andornamevalue'
END
IF @andoroldref = 'OR'
BEGIN
IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%'
BEGIN
SET @andoroldrefvalue = '%' + @andoroldrefvalue
END
IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%'
BEGIN
SET @andoroldrefvalue = @andoroldrefvalue + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @andoroldrefvalue'
END
IF @andoruser1 = 'OR'
BEGIN
IF SUBSTRING(@andoruser1value, 1, 1) <> '%'
BEGIN
SET @andoruser1value = '%' + @andoruser1value
END
IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%'
BEGIN
SET @andoruser1value = @andoruser1value + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @andoruser1value'
END
IF @andoruser2 = 'OR'
BEGIN
IF SUBSTRING(@andoruser2value, 1, 1) <> '%'
BEGIN
SET @andoruser2value = '%' + @andoruser2value
END
IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%'
BEGIN
SET @andoruser2value = @andoruser2value + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User2] LIKE @andoruser2value'
END
IF @andoruser3 = 'OR'
BEGIN
IF SUBSTRING(@andoruser3value, 1, 1) <> '%'
BEGIN
SET @andoruser3value = '%' + @andoruser3value
END
IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%'
BEGIN
SET @andoruser3value = @andoruser3value + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User3] LIKE @andoruser3value'
END
IF @andorwtype = 'OR'
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[WType] = @andorwtypevalue'
END
IF @andoryourref = 'OR'
BEGIN
IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%'
BEGIN
SET @andoryourrefvalue = '%' + @andoryourrefvalue
END
IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%'
BEGIN
SET @andoryourrefvalue = @andoryourrefvalue + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[YourRef] LIKE @andoryourrefvalue'
END
--SELECT @SearchIncludes
IF @SearchIncludes <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND ( ' + @SearchIncludes + N')'
END
IF @andoraddress = 'AND'
BEGIN
IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%'
BEGIN
SET @andoraddressvalue = '%' + @andoraddressvalue
END
IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%'
BEGIN
SET @andoraddressvalue = @andoraddressvalue + '%'
END
SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[NCAddress] LIKE @andoraddressvalue'
END
IF @andorcode = 'AND'
BEGIN
IF SUBSTRING(@andorcodevalue, 1, 1) <> '%'
BEGIN
SET @andorcodevalue = '%' + @andorcodevalue
END
IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%'
BEGIN
SET @andorcodevalue = @andorcodevalue + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Code] LIKE @andorcodevalue'
END
IF @andordept = 'AND'
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Dept] = @andordeptvalue'
END
IF @andordescription = 'AND'
BEGIN
IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%'
BEGIN
SET @andordescriptionvalue = '%' + @andordescriptionvalue
END
IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%'
BEGIN
SET @andordescriptionvalue = @andordescriptionvalue + '%'
END
SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[NCDescription] LIKE @andordescriptionvalue'
END
IF @andorfeecode = 'AND'
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FECode] = @andorfeecodevalue'
END
IF @andorname = 'AND'
BEGIN
IF SUBSTRING(@andornamevalue, 1, 1) <> '%'
BEGIN
SET @andornamevalue = '%' + @andornamevalue
END
IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%'
BEGIN
SET @andornamevalue = @andornamevalue + '%'
END
SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[NCName] LIKE @andornamevalue'
END
IF @andoroldref = 'AND'
BEGIN
IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%'
BEGIN
SET @andoroldrefvalue = '%' + @andoroldrefvalue
END
IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%'
BEGIN
SET @andoroldrefvalue = @andoroldrefvalue + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[OldRef] LIKE @andoroldrefvalue'
END
IF @andoruser1 = 'AND'
BEGIN
IF SUBSTRING(@andoruser1value, 1, 1) <> '%'
BEGIN
SET @andoruser1value = '%' + @andoruser1value
END
IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%'
BEGIN
SET @andoruser1value = @andoruser1value + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[User1] LIKE @andoruser1value'
END
IF @andoruser2 = 'AND'
BEGIN
IF SUBSTRING(@andoruser2value, 1, 1) <> '%'
BEGIN
SET @andoruser2value = '%' + @andoruser2value
END
IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%'
BEGIN
SET @andoruser2value = @andoruser2value + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[User2] LIKE @andoruser2value'
END
IF @andoruser3 = 'AND'
BEGIN
IF SUBSTRING(@andoruser3value, 1, 1) <> '%'
BEGIN
SET @andoruser3value = '%' + @andoruser3value
END
IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%'
BEGIN
SET @andoruser3value = @andoruser3value + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[User3] LIKE @andoruser3value'
END
IF @andorwtype = 'AND'
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[WType] = @andorwtypevalue'
END
IF @andoryourref = 'AND'
BEGIN
IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%'
BEGIN
SET @andoryourrefvalue = '%' + @andoryourrefvalue
END
IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%'
BEGIN
SET @andoryourrefvalue = @andoryourrefvalue + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[YourRef] LIKE @andoryourrefvalue'
END
--SELECT @orderby, @order
SET @NCOMMAND = @NCOMMAND + N'
ORDER BY ' + CASE @orderby
WHEN N'description'
THEN N'CASE WHEN SM.[Description] = ''''
THEN 1
ELSE 0 END,
SM.[Description] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Code'
THEN N'CASE WHEN SM.[Code] = ''''
THEN 1
ELSE 0 END,
SM.[Code] ' + @order
WHEN N'Name'
THEN N'CASE WHEN SM.[Name] = ''''
THEN 1
ELSE 0 END,
SM.[Name] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Address'
THEN N'CASE WHEN SM.[Address] = ''''
THEN 1
ELSE 0 END,
SM.[Address] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Email'
THEN N'CASE WHEN SM.[Email] = ''''
THEN 1
ELSE 0 END,
SM.[Email] ' + @order + N',
SM.[Code] ' + @order
WHEN N'PhoneNumber'
THEN N'CASE WHEN SM.[PhoneNumber] = ''''
THEN 1
ELSE 0 END,
SM.[PhoneNumber] ' + @order + N',
SM.[Code] ' + @order
WHEN N'user1'
THEN N'CASE WHEN SM.[User1] = ''''
THEN 1
ELSE 0 END,
SM.[User1] ' + @order + N',
SM.[Code] ' + @order
WHEN N'user2'
THEN N'CASE WHEN SM.[User2] = ''''
THEN 1
ELSE 0 END,
SM.[User2] ' + @order + N',
SM.[Code] ' + @order
WHEN N'user3'
THEN N'CASE WHEN SM.[User3] = ''''
THEN 1
ELSE 0 END,
SM.[User3] ' + @order + N',
SM.[Code] ' + @order
WHEN N'yourref'
THEN N'CASE WHEN SM.[YourRef] = ''''
THEN 1
ELSE 0 END,
SM.[YourRef] ' + @order + N',
SM.[Code] ' + @order
WHEN N'OldRef'
THEN N'CASE WHEN SM.[OldRef] = ''''
THEN 1
ELSE 0 END,
SM.[OldRef] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FileNum'
THEN N'CASE WHEN SM.[FileNum] = 0
THEN 1
ELSE 0 END,
SM.[FileNum] ' + @order + N',
SM.[Code] ' + @order
WHEN N'department'
THEN N'CASE WHEN SM.[DeptDescription] = ''''
THEN 1
ELSE 0 END,
SM.[DeptDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Dept'
THEN N'CASE WHEN SM.[DeptDescription] = ''''
THEN 1
ELSE 0 END,
SM.[DeptDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'worktype'
THEN N'CASE WHEN SM.[WTypeDescription] = ''''
THEN 1
ELSE 0 END,
SM.[WTypeDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FeeCode'
THEN N'CASE WHEN SM.[FECode] = ''''
THEN 2
WHEN SM.[FECode] = ''ADM''
THEN 1
ELSE 0 END,
SM.[FECode] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FeeEarner'
THEN N'CASE WHEN SM.[HandlerName] = '''' AND SM.[FECode] = ''''
THEN 3
WHEN SM.[HandlerName] = ''''
THEN 2
WHEN SM.[HandlerName] = ''Admin''
THEN 1
ELSE 0 END,
SM.[HandlerName] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FileColour_Fld'
THEN N'CASE WHEN SM.[FileColourDescription] = ''''
THEN 1
ELSE 0 END,
SM.[FileColourDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FileColour'
THEN N'CASE WHEN SM.[FileColourDescription] = ''''
THEN 1
ELSE 0 END,
SM.[FileColourDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'started'
THEN N'SM.[Started] ' + @order + N',
SM.[Code] ' + @order
WHEN N'LastAccessed'
THEN N'CASE WHEN RML.[DateField] IS NULL
THEN 1
ELSE 0 END,
RML.[DateField] ' + @order + N',
SM.[Code] ' + @order
WHEN N'closedate'
THEN N'CASE WHEN SM.[CloseDate] IS NULL
THEN 1
ELSE 0 END,
SM.[CloseDate] ' + @order + N',
SM.[Code] ' + @order
WHEN N'orgcloseddate'
THEN N'CASE WHEN SM.[orgcloseddate] IS NULL
THEN 1
ELSE 0 END,
SM.[orgcloseddate] ' + @order + N',
SM.[Code] ' + @order
WHEN N'casestatusdesc'
THEN N'CASE WHEN SM.[MatterStatusDescription] IS NULL
THEN 1
ELSE 0 END,
SM.[MatterStatusDescription] ' + @order + N',
SM.[Code] ' + @order
ELSE CASE WHEN @Which <> 2
THEN N'SM.[Code] ' + @order
ELSE N'CASE WHEN RML.[DateField] IS NULL
THEN 1
ELSE 0 END,
RML.[DateField] DESC,
SM.[Code] ' + @order END END
SET @NCOMMAND = @NCOMMAND + N'
SELECT * FROM(
SELECT ROW_NUMBER() OVER(ORDER BY [RES].[id]) AS [RowNumber],
[RES].[Code],
[RES].[Name],
[RES].[Description]
FROM
@Result [RES])AS MatterTable WHERE MatterTable.[RowNumber] BETWEEN @StartRow AND @EndRow ORDER BY MatterTable.[RowNumber] ASC
SELECT
COUNT([RES].[id]) AS [TotalRecord]
FROM
@Result [RES]'
--SELECT @NCOMMAND
EXECUTE sp_executesql @NCOMMAND,
N'@HowMany INT,
@BitWiseID BIGINT,
@Handler VARCHAR(10),
@WorkType VARCHAR(5),
@department VARCHAR(5),
@filecolour VARCHAR(3),
@feecode VARCHAR(10),
@searchtext VARCHAR(MAX),
@andoraddressvalue VARCHAR(200),
@andorcodevalue VARCHAR(200),
@andordeptvalue VARCHAR(200),
@andordescriptionvalue VARCHAR(200),
@andorfeecodevalue VARCHAR(200),
@andornamevalue VARCHAR(200),
@andoroldrefvalue VARCHAR(200),
@andoruser1value VARCHAR(200),
@andoruser2value VARCHAR(200),
@andoruser3value VARCHAR(200),
@andorwtypevalue VARCHAR(200),
@andoryourrefvalue VARCHAR(200),
@StartRow INT,
@EndRow INT',
@Howmany,
@BitWiseID,
@handler,
@worktype,
@department,
@filecolour,
@feecode,
@searchtext,
@andoraddressvalue,
@andorcodevalue,
@andordeptvalue,
@andordescriptionvalue,
@andorfeecodevalue,
@andornamevalue,
@andoroldrefvalue,
@andoruser1value,
@andoruser2value,
@andoruser3value,
@andorwtypevalue,
@andoryourrefvalue,
@StartRow,
@EndRow
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchAssociateUDFForEdit'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchAssociateUDFForEdit]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchAssociateUDFForEdit]
(@NAMECODE VARCHAR(20),
@FILEPREFIX VARCHAR(5),
@FIELDNAME VARCHAR(30),
@CASECODE VARCHAR(20) = '')
AS
/*******************************************************************************************************
* Fetches the details for a field to be edited *
* *
* NOTE: @CASECODE is used to determine the field's document code. The code is *
* usually [AUD:FieldName.AssociateType#01] but as associates can be more than *
* one type, it checks what type the associate is in the specified case. Otherwise *
* it will return the associate's primary type *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchAssociateUDFForEdit] *
* Copied from : [dbo].[ky_NETFetchAssociateUDFForEdit] *
* *
* Modification History : *
* 2019-06-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @INITIALVALUE VARCHAR(MAX)
DECLARE @INITIALFORMAT VARCHAR(50)
DECLARE @INITIALTYPE VARCHAR(11)
DECLARE @INITIALNUMERICVALUE DECIMAL(20, 2)
DECLARE @INITIALDATE DATETIME
SELECT @INITIALVALUE = [SUF].[INITIALVALUE],
@INITIALFORMAT = [SUF].[FORMAT],
@INITIALTYPE = [SUF].[TYPE]
FROM [dbo].[SystemUserDefinedFields] [SUF]
WHERE [SUF].[FILEPREFIX] = @FILEPREFIX
AND [SUF].[FIELDNAME] = @FIELDNAME
IF @INITIALVALUE IS NOT NULL
BEGIN
IF (@INITIALTYPE = 'Numeric') OR (@INITIALFORMAT LIKE '@n%')
BEGIN
BEGIN TRY
SET @INITIALNUMERICVALUE = CONVERT(DECIMAL(20, 2), CONVERT(MONEY, @INITIALVALUE))
END TRY
BEGIN CATCH
END CATCH
END
ELSE IF (@INITIALTYPE = 'Date') OR (@INITIALFORMAT LIKE '@d%') OR (@INITIALFORMAT LIKE '%DD%') OR (@INITIALFORMAT LIKE '%MM%') OR (@INITIALFORMAT LIKE '%YY%')
BEGIN
BEGIN TRY
SET @INITIALVALUE = [dbo].[ky_SUFFormat](@INITIALVALUE, @INITIALFORMAT)
IF RTRIM(ISNULL(@INITIALVALUE, '')) <> ''
BEGIN
SET @INITIALDATE = CONVERT(DATETIME, [dbo].[ky_SUFFormat](@INITIALVALUE, '@D8'))
END
END TRY
BEGIN CATCH
END CATCH
END
END
SELECT [SUF].[PROMPT] AS [Detail],
[SUF].[LENGTH] AS [Size],
[SUF].[FORMAT] AS [Format],
RTRIM([SUF].[FILEPREFIX])
+ RTRIM(ISNULL([SUF].[FIELDNAME], ''))
+ '.'
+ ISNULL(RTRIM([CC].[CONTYPE]),
RTRIM([CAN].[TYPE]))
+ '#'
+ RIGHT('00' + CONVERT(VARCHAR(2),
ISNULL([CC].[CONNUM], 1)),
2) AS [DocumentCode],
CASE WHEN [AUD].[NameCode] IS NULL
THEN CONVERT(VARCHAR(11),
@INITIALDATE,
106)
ELSE CONVERT(VARCHAR(11),
[AUD].[DateValue],
106) END AS [DateValue],
CASE WHEN [AUD].[NameCode] IS NULL
THEN CONVERT(DECIMAL(20, 2),
ISNULL(@INITIALNUMERICVALUE, 0))
ELSE [AUD].[NumberValue] END AS [NumberValue],
CASE WHEN [AUD].[NameCode] IS NULL
THEN ISNULL(@INITIALVALUE, '')
ELSE [AUD].[TextValue] END AS [TextValue],
[SUF].[TYPE] AS [TYPE],
[SUF].[FILEPREFIX] AS [FILEPREFIX],
[SUF].[FIELDNAME] AS [FIELDNAME],
RTRIM(ISNULL([SUF].[VALIDATION], '')) AS [VALIDATION],
ISNULL([SUF].[LENGTH], 0) AS [LENGTH],
ISNULL([SUF].[LOW], 0) AS [LOW],
ISNULL([SUF].[HIGH], 0) AS [HIGH],
ISNULL([SUF].[DECMIAL], 0) AS [DECIMAL]
FROM [dbo].[SystemUserDefinedFields] AS [SUF]
LEFT OUTER JOIN [dbo].[AssociateUDF] AS [AUD]
ON [AUD].[NameCode] = @NAMECODE
AND [AUD].[FilePrefix] = [SUF].[FILEPREFIX]
AND [AUD].[FieldName] = [SUF].[FIELDNAME]
LEFT OUTER JOIN [dbo].[CaseAssociatesNames] AS [CAN]
ON [CAN].[CODE] = [AUD].[NameCode]
LEFT OUTER JOIN [dbo].[CaseContacts] AS [CC]
ON [CC].[CASECODE] = @CASECODE
AND RTRIM(ISNULL([CC].[CASECODE], '')) <> ''
AND [CC].[NAMECODE] = @NAMECODE
WHERE [SUF].[FILEPREFIX] = @FILEPREFIX
AND [SUF].[FIELDNAME] = @FIELDNAME
/* KEYD-5690 - This fills in the details of the associate on the AUD prompt */
SELECT LTRIM(RTRIM([CAN].[CODE])) AS [Code],
ISNULL(LTRIM(RTRIM([CAN].[NAME])), '') AS [Name],
ISNULL([AST].[DESCRIPTION], ISNULL([CC].[CONTYPE], [CAN].[TYPE])) AS [Type],
ISNULL(@CASECODE, '') AS [CaseCode],
[CC].[CONNUM] AS [Sequence]
FROM [dbo].[CaseAssociatesNames] AS [CAN]
LEFT OUTER JOIN [dbo].[CaseContacts] AS [CC]
ON [CAN].[CODE] = [CC].[NAMECODE]
AND [CC].[CASECODE] = @CASECODE
LEFT OUTER JOIN [dbo].[AssociateTypes] AS [AST]
ON ISNULL([CC].[CONTYPE], [CAN].[TYPE]) = [AST].[CODE]
WHERE [CAN].[CODE] = @NAMECODE
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchAssociateUDFs', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchAssociateUDFs]
END
GO
CREATE PROCEDURE [dbo].[KAAS_FetchAssociateUDFs] (
@NAMECODE VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure is used load the data for Edit professional page. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchAssociateUDFs] *
* Copied from : [dbo].[ky_NETFetchAssociateUDFs] *
* *
* Modification History : *
* 2019-06-03 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
-- Add any missing UDFs to this associate from all of their types
;WITH CTE ([FILEPREFIX], [FIELDNAME]) AS (
SELECT LTRIM(RTRIM(ATU.[FILEPREFIX])),
LTRIM(RTRIM(ATU.[FIELDNAME]))
FROM [dbo].[AssociateTypeUDFs] AS ATU
INNER JOIN [dbo].[AssociateTypes] AS [AT]
ON ATU.[TypeCode] = [AT].[CODE]
INNER JOIN [dbo].[CaseAssoicatesTypes] AS CAT
ON [AT].[CODE] = CAT.[TYPECODE]
WHERE LTRIM(RTRIM(CAT.[NAMECODE])) = LTRIM(RTRIM(@NAMECODE))
GROUP BY LTRIM(RTRIM(ATU.[FILEPREFIX])),
LTRIM(RTRIM(ATU.[FIELDNAME])))
INSERT INTO [dbo].[AssociateUDF] (
[NameCode],
[FilePrefix],
[FieldName],
[TextValue],
[NumberValue],
[DateValue])
SELECT @NAMECODE,
SUDF.[FILEPREFIX],
SUDF.[FIELDNAME],
CASE WHEN SUDF.[TYPE] = 'Text'
THEN SUDF.[INITIALVALUE]
WHEN SUDF.[TYPE] = 'Numeric'
AND ISNULL(SUDF.[INITIALVALUE], '') <> ''
AND PATINDEX('%[^0-9.]%', SUDF.[INITIALVALUE]) <= 0
THEN SUDF.[INITIALVALUE]
ELSE '' END,
CASE WHEN SUDF.[TYPE] = 'Numeric'
AND ISNULL(SUDF.[INITIALVALUE], '') <> ''
AND PATINDEX('%[^0-9.]%', SUDF.[INITIALVALUE]) <= 0
THEN CONVERT(DECIMAL(19, 2), SUDF.[INITIALVALUE])
ELSE 0.00 END,
NULL
FROM [dbo].[SystemUserDefinedFields] AS SUDF
INNER JOIN CTE
ON CTE.[FILEPREFIX] = LTRIM(RTRIM(SUDF.[FILEPREFIX]))
AND CTE.[FIELDNAME] = LTRIM(RTRIM(SUDF.[FIELDNAME]))
LEFT OUTER JOIN [dbo].[AssociateUDF] AS AUD
ON AUD.[FilePrefix] = SUDF.[FILEPREFIX]
AND AUD.[FieldName] = SUDF.[FIELDNAME]
AND AUD.[NameCode] = @NAMECODE
WHERE AUD.[Id] IS NULL
SELECT AUD.[Id] AS [ID],
RTRIM(ISNULL(UDFC.[UDFCategory],'')) AS [GroupName],
RTRIM(SUDF.[PROMPT]) AS [Detail],
RTRIM(AUD.[DateValue]) AS [DateValue],
CASE RTRIM(SUDF.[VALIDATION])
WHEN 'L' THEN RTRIM(ISNULL(AUD.[TextValue],'')) + ' - ' + RTRIM(ISNULL(UDFL.[DESCRIPTION], ''))
WHEN 'R' THEN CONVERT(VARCHAR(200), RTRIM(ISNULL(AUD.[TextValue],'')))
WHEN 'T' THEN CONVERT(VARCHAR(200), RTRIM(ISNULL(AUD.[TextValue],'')))
ELSE CASE RTRIM(SUDF.[TYPE])
WHEN 'Text' THEN AUD.[TextValue]
WHEN 'Numeric' THEN CONVERT(VARCHAR(20), CAST(AUD.[NumberValue] AS MONEY ), 1)
WHEN 'Date' THEN CONVERT(VARCHAR(20), AUD.[DateValue], 106)
ELSE CONVERT(VARCHAR(200), RTRIM(ISNULL(AUD.[TextValue],'')))
END
END AS [Value],
RTRIM(ISNULL(AUD.[NumberValue], 0)) AS [NumberValue],
RTRIM(ISNULL(AUD.[TextValue], '')) AS [TextValue],
RTRIM(SUDF.[TYPE]) AS [TYPE],
RTRIM(SUDF.[FILEPREFIX]) AS [FILEPREFIX],
RTRIM(SUDF.[FIELDNAME]) AS [FIELDNAME],
RTRIM(ISNULL(SUDF.[UDFCategory], 0)) AS [UDFCategory],
ISNULL(RTRIM(LTRIM(UDFC.[UDFCategory])), '') AS [GroupName],
SUDF.[DECMIAL] AS [DECIMAL],
SUDF.[LENGTH] AS [LENGTH]
FROM [dbo].[AssociateUDF] AS AUD
INNER JOIN [dbo].[SystemUserDefinedFields] AS SUDF
ON AUD.[FilePrefix] = SUDF.[FILEPREFIX]
AND AUD.[FieldName] = SUDF.[FIELDNAME]
LEFT OUTER JOIN [dbo].[UDFCategory] AS UDFC
ON SUDF.[UDFCategory] = UDFC.[ID]
LEFT OUTER JOIN [dbo].[UDFLookups] AS UDFL
ON AUD.[FieldName] = UDFL.[FIELDNAME]
AND AUD.[TextValue] = UDFL.[CODE]
WHERE RTRIM(AUD.[NameCode]) = RTRIM(@NAMECODE)
ORDER BY AUD.[Id] ASC
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchCaseAssociateEditLoadData'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchCaseAssociateEditLoadData]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchCaseAssociateEditLoadData]
(@Code VARCHAR(20),
@CaseCode VARCHAR(50),
@ConType VARCHAR(15),
@ConNum INT)
AS
/****************************************************************************************************************************
*
* Description : This sp is used to Fetch Data for Case Associate popup window on Edit
*
* Stored Procedure Name : Description: This sp is used to Fetch Data for Case Associate popup window on Edit
* Copied From : ky_NETFetchCaseAssociateEditLoadData
*
* Modification History
* 2015-01-21 PINO Change NVARCHAR to VARCHAR
* various issues with incorrectly processed columns, e.g.
* formatting the [DECEASED] column as a DATETIME, and
* numeric columns as VARCHAR
* Alignment, aliasing and readability improvements
* 2015-01-21 ARUN Convert AssigendContact from decimal to nvarchar while fetch. and
* if its null then it return empty
* 2015-02-03 Praveen Added following field BankName,BankAddress,BankSortCode,BankAccNo,IBan,Bic
* 2015-10-01 Sridharan KEYD - 2584 Unable to delete or retire certain Codes and Narratives
* 2015-10-15 Sridharan RDJ - 156 -Adding same Associate twice
* 2015-11-09 Pino As per ky_NETCaseAssociateFetchAddProfessionalLoadData, we need to Uppercase the type
* 2016-03-09 Sridharan KEYD-3352-When you add an undertakings with “Add as Comment to Ledger” check box unticked,
* when you open that undertakings the check box ticked automatically.
* 2016-04-04 Pino KEYD-3483 - Should not be allowed to delete a type when it's been used for any
* case. Added a "UsedInCase" column in the second table returned by this SP.
* 2016-10-27 Sridharan KEYD-4197: EFT Bank Details Validation on Contact and Case Associate screens
* 2018-09-07 Pino KEYD-5401: The company reg no is saving just fine. It's just not retrieve here!
* 2019-01-24 Pino KEYD-5503: Add EFTEmailAddress
* 2019-02-07 Pino KEYD-5619: Add SOLISCAN and INSISCAN (SOLCODE c.q. INSCODE is a Case Associate Name code)
* 2019-07-30 Vindohan Created ky_NETFetchCaseAssociateEditLoadData
*
****************************************************************************************************************************/
BEGIN
DECLARE @AssCont VARCHAR(100)
SET NOCOUNT ON
SELECT RTRIM(ISNULL([CAN].[CODE],'')) AS [Code],
RTRIM(ISNULL(CONVERT(VARCHAR(18),[CC].[AssignedContact]),'')) AS [AssignedContact],
RTRIM(ISNULL([CC].[CASECODE],'')) AS [CaseCode],
UPPER(RTRIM(ISNULL([CC].[CONTYPE],''))) AS [Type],
RTRIM(ISNULL([CAN].[NAME],'')) AS [Name],
RTRIM(ISNULL([CAN].[SALUTATION],'')) AS [Salutation],
RTRIM(ISNULL([CAN].[TITLE],'')) AS [Title],
RTRIM(ISNULL([CAN].[COMPANY],'')) AS [Compnay],
RTRIM(ISNULL([CAN].[ADDRESS],'')) AS [Address],
RTRIM(ISNULL([CAN].[FORENAME],'')) AS [ForeName],
RTRIM(ISNULL([CAN].[SURNAME],'')) AS [SurName],
RTRIM(ISNULL([CAN].[PHONENO],'')) AS [PhoneNo],
RTRIM(ISNULL([CAN].[FAXNO],'')) AS [FaxNo],
RTRIM(ISNULL([CAN].[HOME],'')) AS [Home],
RTRIM(ISNULL([CAN].[MOBILENO],'')) AS [MobileNo],
RTRIM(ISNULL([CAN].[EMAIL],'')) AS [Email],
RTRIM(ISNULL([CAN].[WEBADDRESS],'')) AS [WebAddress],
RTRIM(ISNULL([CAN].[SSNUMBER],'')) AS [SSNumber],
RTRIM(ISNULL([CAN].[LEGALNAME],'')) AS [LegalName],
RTRIM(ISNULL([CAN].[LEGALADDRESS],'')) AS [LegalAddress],
ISNULL([CAN].[COURTNO],0) AS [CourtNo],
RTRIM(ISNULL([CAN].[COURTAREA],'')) AS [CourtArea],
RTRIM(ISNULL([CAN].[TAX],'')) AS [Tax],
RTRIM(ISNULL([CAN].[DXREF],'')) AS [DXRef],
CASE [CAN].[DOB]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CAN].[DOB],112) END AS [DOB],
RTRIM(ISNULL([CAN].[MARTIALSTATUS], '')) AS [MaritalStatus],
CASE [CAN].[MARRIAGEDATE]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CAN].[MARRIAGEDATE],112) END AS [MarriageDate],
RTRIM(ISNULL([CAN].[DECEASED], '')) AS [Deceased],
CASE [CAN].[DATESEPARATED]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CAN].[DATESEPARATED],112) END AS [DateSeparated],
CASE [CAN].[DECEASEDDATE]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CAN].[DECEASEDDATE],112) END AS [DeceasedDate],
RTRIM(ISNULL([CAN].[SEPARATED],'')) AS [Separated],
RTRIM(ISNULL([CAN].[HOWSEPARATED],'')) AS [HowSeparated],
RTRIM(ISNULL([CAN].[OCCUPATION],'')) AS [Occupation],
RTRIM(ISNULL([CAN].[SEARCH],'')) AS [Search],
ISNULL([CAN].[CONTACTNO],0) AS [ContactNo],
RTRIM(ISNULL([CAN].[NOTES],'')) AS [Notes],
RTRIM(ISNULL([CAN].[Area],'')) AS [Area],
RTRIM(ISNULL([CAN].[Town],'')) AS [Town],
RTRIM(ISNULL([CAN].[Gender],'')) AS [Gender],
RTRIM(ISNULL([CAN].[AddressType],'')) AS [AddressType],
RTRIM(ISNULL([CAN].[ServiceType],'')) AS [ServiceType],
RTRIM(ISNULL([CAN].[CRONumber],'')) AS [CRONumber],
RTRIM(ISNULL([CAN].[VATNumber],'')) AS [VATNumber],
RTRIM(ISNULL([CAN].[CompanyRegNo],'')) AS [CompanyRegNo],
ISNULL([CC].[CONNUM],0) AS [ConNum],
RTRIM(ISNULL([CC].[SOLCODE],'')) AS [SolCode],
RTRIM(ISNULL([CC].[SOLREF],'')) AS [SolRef],
RTRIM(ISNULL([CC].[INSCODE],'')) AS [INSCode],
RTRIM(ISNULL([CC].[INSREF],'')) AS [INSRef],
RTRIM(ISNULL([CC].[COURTRECORDNO],'')) AS [CourtRecordNo],
CASE [CC].[HEARINGDATE]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CC].[HEARINGDATE],112) END AS [HearingDate],
RTRIM(ISNULL([CC].[TIME],'')) AS [Time],
RTRIM(ISNULL([CC].[Relationship],'')) AS [Relationship],
RTRIM(ISNULL([CC].[Nominated],'')) AS [Nominated],
CASE [CC].[CivilSumSDate]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CC].[CivilSumSDate],112) END AS [CivilSumSDate],
CASE [CC].[CivilBillSDate]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CC].[CivilBillSDate],112) END AS [CivilBillSDate],
CASE [CC].[SSumSDate]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CC].[SSumSDate],112) END AS [SSumSDate],
CASE [CC].[InstOrdSDate]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CC].[InstOrdSDate],112) END AS [InstOrdSDate],
CASE [CC].[ComOrdSDate]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CC].[ComOrdSDate],112) END AS [ComOrdSDate],
CASE [CC].[WarrantIssDate]
WHEN NULL THEN ''
ELSE CONVERT(VARCHAR(20),[CC].[WarrantIssDate],112) END AS [WarrantIssDate],
RTRIM(ISNULL([CAN].[County], '')) AS [County],
RTRIM(ISNULL([CAN].[PostalCode], '')) AS [PostalCode] ,
RTRIM(ISNULL([CAN].[BankName], '')) AS [BankName] ,
RTRIM(ISNULL([CAN].[BankAddress], '')) AS [BankAddress] ,
RTRIM(ISNULL([CAN].[BankSortCode], '')) AS [BankSortCode] ,
RTRIM(ISNULL([CAN].[BankAccNo], '')) AS [BankAccNo] ,
RTRIM(ISNULL([CAN].[IBAN], '')) AS [IBAN] ,
RTRIM(ISNULL([CAN].[BIC], '')) AS [BIC],
[CC].[IsAssociateOtherSide] AS [IsAssociateOtherSide],
[CC].[PUBLISH] AS [Publish] ,
ISNULL([MC].[Retired], 'N') AS [Retired],
ISNULL([CC].[Retired], 'N') AS [CCRetired],
ISNULL([CAN].[BankType],'') AS [BankType],
RTRIM(ISNULL([CAN].[EFTEmailAddress], '')) AS [EFTEmailAddress],
[CC].[SOLISCAN] AS [SOLISCAN],
[CC].[INSISCAN] AS [INSISCAN],
RTRIM(ISNULL([SOLCAN].[name], '')) AS [SOLName],
RTRIM(ISNULL([INSCAN].[name], '')) AS [INSName]
FROM [dbo].[CaseContacts] [CC]
INNER JOIN [dbo].[CaseAssociatesNames] [CAN]
ON [CAN].[CODE] = [CC].[NAMECODE]
LEFT OUTER JOIN [dbo].[MiscCodes] [MC]
ON [MC].[CDECODE] = [CAN].[MARTIALSTATUS]
OUTER APPLY (SELECT TOP 1 [SCAN].[Name] + CASE WHEN RTRIM(ISNULL([SCAN].[Company], '')) = '' THEN '' ELSE ' (' + RTRIM(ISNULL([SCAN].[Company], '')) + ')' END AS [Name]
FROM [dbo].[CaseAssociatesNames] [SCAN]
WHERE [SCAN].[CODE] = [CC].[SOLCODE]) [SOLCAN]
OUTER APPLY (SELECT TOP 1 [ICAN].[Name] + CASE WHEN RTRIM(ISNULL([ICAN].[Company], '')) = '' THEN '' ELSE ' (' + RTRIM(ISNULL([ICAN].[Company], '')) + ')' END AS [Name]
FROM [dbo].[CaseAssociatesNames] [ICAN]
WHERE [ICAN].[CODE] = [CC].[INSCODE]) [INSCAN]
WHERE [CAN].[CODE] = @Code
AND [CC].[CASECODE] = @CaseCode
AND [CC].[CONTYPE] = @ConType
AND [CC].[CONNUM] = @ConNum
SELECT RTRIM(ISNULL([CAC].[NAMECODE], '')) AS [NameCode],
RTRIM(ISNULL(CAST([CAC].[KEYID] AS VARCHAR(20)), '')) AS [KeyId],
RTRIM(ISNULL([CAC].[NAME], '')) AS [Name],
RTRIM(ISNULL([CAC].[SALUTATION], '')) AS [Salutation],
RTRIM(ISNULL([CAC].[JOBTITLE], '')) AS [JobTitle],
RTRIM(ISNULL([CAC].[ADDRESS], '')) AS [Address],
RTRIM(ISNULL([CAC].[PHONE], '')) AS [Phone],
RTRIM(ISNULL([CAC].[FAX], '')) AS [Fax],
RTRIM(ISNULL([CAC].[MOBILE], '')) AS [Mobile],
RTRIM(ISNULL([CAC].[EMAIL], '')) AS [Email],
RTRIM(ISNULL([CAC].[RELATIONSHIP], '')) AS [Relationship],
RTRIM(ISNULL([CAC].[NOTES], '')) AS [Notes]
FROM [dbo].[CaseAssociatesContacts] [CAC]
WHERE [CAC].[NAMECODE] = @Code
SELECT @AssCont = ISNULL([CC].[AssignedContact], 0)
FROM [dbo].[CaseContacts] CC
WHERE [CC].[NAMECODE] = @Code
AND [CC].[CASECODE] = @CaseCode
SELECT RTRIM(ISNULL([CAC].[NAMECODE], '')) AS [NameCode],
RTRIM(ISNULL(CAST([CAC].[KEYID] AS VARCHAR(20)), '')) AS [KeyId],
RTRIM(ISNULL([CAC].[NAME], '')) AS [Name],
RTRIM(ISNULL([CAC].[SALUTATION], '')) AS [Salutation],
RTRIM(ISNULL([CAC].[JOBTITLE], '')) AS [JobTitle],
RTRIM(ISNULL([CAC].[ADDRESS], '')) AS [Address],
RTRIM(ISNULL([CAC].[PHONE], '')) AS [Phone],
RTRIM(ISNULL([CAC].[FAX], '')) AS [Fax],
RTRIM(ISNULL([CAC].[MOBILE], '')) AS [Mobile],
RTRIM(ISNULL([CAC].[EMAIL], '')) AS [Email],
RTRIM(ISNULL([CAC].[RELATIONSHIP], '')) AS [Relationship],
RTRIM(ISNULL([CAC].[NOTES], '')) AS [Notes]
FROM [dbo].[CaseAssociatesContacts] [CAC]
WHERE [CAC].[KEYID] = @AssCont
SELECT [CC].[CASECODE] AS [CASECODE],
[CC].[CONTYPE] AS [CONTYPE],
[CC].[CONNUM] AS [CONNUM],
[CC].[NAMECODE] AS [NAMECODE],
[CTC].[NAME] AS [NAME],
[MAT].[DESCRIPTION] AS [DESCRIPTION]
FROM [dbo].[CaseContacts] [CC]
LEFT OUTER JOIN [dbo].[matters] [MAT]
ON [MAT].[CODE] = [CC].[CASECODE]
LEFT OUTER JOIN [dbo].[Contacts] [CTC]
ON [CTC].[CODE] = [MAT].[CLIENTCODE]
WHERE [CC].[NAMECODE] = @Code
ORDER BY [CC].[NAMECODE] ASC,
[CC].[CONTYPE] ASC,
[CC].[CASECODE] ASC
SELECT RTRIM([CT].[NAMECODE]) AS [NAMECODE],
RTRIM([CT].[TYPECODE]) AS [BankTypeCode],
RTRIM([CT].[TYPECODE]) AS [TYPECODE],
RTRIM([CAT].[DESCRIPTION]) AS [SEARCHCODE],
CASE WHEN [UIC].[TOTAL] = 0 THEN 'N' ELSE 'Y' END AS [UsedInCase]
FROM [dbo].[CaseAssoicatesTypes] [CT]
INNER JOIN [dbo].[AssociateTypes] [CAT]
ON [CAT].[CODE] = [CT].[TYPECODE]
CROSS APPLY (SELECT COUNT(1) AS [TOTAL]
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[NAMECODE] = [CT].[NAMECODE]
AND [CC].[CONTYPE] = [CT].[TYPECODE]) [UIC]
WHERE [CT].[NAMECODE] = @Code
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_FetchCaseAssociateType]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_FetchCaseAssociateType]
GO
CREATE PROCEDURE [KAAS_FetchCaseAssociateType]
(
@NAMECODE VARCHAR(20) = '',
@Status INT = 0,
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SearchText VARCHAR(400) = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL
)
AS
/***************************************************************************
Stored Procedure Name : KAAS_FetchCaseAssociateType
Copied From : [ky_NETFetchCaseAssociateType]
Description: This procedure is used load the data for associate page Popup.
2019-29-07 Vinodhan K Created KAAS_FetchCaseAssociateType
***************************************************************************/
BEGIN
SET NOCOUNT ON
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'CODE'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@Status = 1)
BEGIN
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#AssociateTableWithCondition
FROM
(SELECT
AssociateTypes.CODE,
AssociateTypes.[DESCRIPTION]
FROM
CaseAssoicatesTypes
INNER JOIN
AssociateTypes ON CaseAssoicatesTypes.TYPECODE = AssociateTypes.CODE
WHERE
(
@SearchText IS NULL OR RTRIM(LTRIM(@SearchText)) = ''
OR
(
[AssociateTypes].[CODE] LIKE '%' + @SearchText + '%'
OR
[AssociateTypes].[DESCRIPTION] LIKE '%' + @SearchText + '%'
)
)
AND
(CaseAssoicatesTypes.NAMECODE = @NAMECODE)) AS FoundTable
ORDER BY
CASE
WHEN @SortDirection = 'ASC' THEN
CASE
WHEN @SortColumn ='CODE' THEN [CODE]
END
END,
CASE
WHEN @SortDirection = 'DESC' THEN
CASE
WHEN @SortColumn ='CODE' THEN [CODE]
END
END DESC,
CASE
WHEN @SortDirection = 'ASC' THEN
CASE
WHEN @SortColumn ='DESCRIPTION' THEN [DESCRIPTION]
END
END,
CASE
WHEN @SortDirection = 'DESC' THEN
CASE
WHEN @SortColumn ='DESCRIPTION' THEN [DESCRIPTION]
END
END DESC
SELECT
*
FROM
#AssociateTableWithCondition
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#AssociateTableWithCondition
END
ELSE
BEGIN
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#AssociateTable
FROM
(SELECT
AssociateTypes.CODE,
AssociateTypes.[DESCRIPTION]
FROM
AssociateTypes
WHERE
@SearchText IS NULL OR RTRIM(LTRIM(@SearchText)) = ''
OR
(
[AssociateTypes].[CODE] LIKE '%' + @SearchText + '%'
OR
[AssociateTypes].[DESCRIPTION] LIKE '%' + @SearchText + '%'
))AS FoundTable
ORDER BY
CASE
WHEN @SortDirection = 'ASC' THEN
CASE
WHEN @SortColumn ='CODE' THEN [CODE]
END
END,
CASE
WHEN @SortDirection = 'DESC' THEN
CASE
WHEN @SortColumn ='CODE' THEN [CODE]
END
END DESC,
CASE
WHEN @SortDirection = 'ASC' THEN
CASE
WHEN @SortColumn ='DESCRIPTION' THEN [DESCRIPTION]
END
END,
CASE
WHEN @SortDirection = 'DESC' THEN
CASE
WHEN @SortColumn ='DESCRIPTION' THEN [DESCRIPTION]
END
END DESC
SELECT
*
FROM
#AssociateTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#AssociateTable
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchCategory',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchCategory]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchCategory] (
@CatType VARCHAR(6),
@Code VARCHAR(10))
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_FetchCategory] *
* Copied from : NA *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
SELECT RTRIM(CategoryType) AS [CategoryType],
RTRIM([Description]) AS [Description]
FROM CategoryType
SELECT RTRIM(Code) AS [Code],
RTRIM(Desc$) AS [Description]
FROM Category
WHERE CatType = @CatType
SELECT RTRIM(Cattype) AS [CatType],
RTRIM(Code) AS [Code],
RTRIM(Desc$) AS [Description],
RTRIM(Prompt1) AS [Prompt1],
RTRIM(Prompt2) AS [Prompt2],
RTRIM(Prompt3) AS [Prompt3],
RTRIM(Prompt4) AS [Prompt4],
RTRIM(Prompt5) AS [Prompt5],
RTRIM(Prompt6) AS [Prompt6],
RTRIM(Prompt7) AS [Prompt7],
RTRIM(Prompt8) AS [Prompt8],
RTRIM(Prompt9) AS [Prompt9],
RTRIM(Prompt10) AS [Prompt10]
FROM Category
WHERE CatType = @CatType
AND
Code = @Code
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_FetchCategoryDetails]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_FetchCategoryDetails]
GO
CREATE PROCEDURE [KAAS_FetchCategoryDetails] (@ClientCode VARCHAR(10))
/*******************************************************************************************************
* This procedure is used load the Data in Client page Category Grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchCategoryDetails] *
* Copied from : [dbo].[ky_NETCONFetchCategoryDetails] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
SELECT
C.CONTACT,
C.CATEGORYTYPE Code,
C.CATEGORY CategoryType,
C.[DATE],
C.RECORDID,
D.Desc$ [CDescription],
A.[Description],
C.FIELDVALUE1,
C.FIELDVALUE2,
C.FIELDVALUE3,
C.FIELDVALUE3,
C.FIELDVALUE4 ,
C.FIELDVALUE5 ,
C.FIELDVALUE6,
C.FIELDVALUE7,
C.FIELDVALUE8,
C.FIELDVALUE9,
C.FIELDVALUE10
FROM
ContactCategories C
LEFT JOIN
Category D
ON D.CatType = C.CATEGORYTYPE
LEFT JOIN
CategoryType A
ON A.CategoryType = C.CATEGORYTYPE
WHERE
CONTACT = @ClientCode
AND
C.CATEGORYTYPE = D.CatType
AND
C.CATEGORY = D.Code
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_FetchChequeRequisitionLog'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchChequeRequisitionLog]
END
GO
CREATE PROCEDURE [dbo].[KAAS_FetchChequeRequisitionLog] (
@ID INT)
AS
/*************************************************************
*
* Fetches the log for a cheque requisition
*
* Stored Procedure Name : KAAS_FetchChequeRequisitionLog
* Copied From : ky_NETFetchChequeRequisitionLog
* Modification History
* 2017-07-13 John Created
* 2019-08-06 Vinodhan Created
*
*************************************************************/
BEGIN
SELECT [ID],
[User],
[ActionDate],
[Action],
[Date],
[Bank],
[Matter],
[ClientCode],
[Nominal],
[Value],
[Narrative],
[LedgerNarrative],
[Payee],
[Notes],
[FeeEarner],
[ThirdParty],
[Supplier],
[OutlayCode],
[PayClient],
[EFTYorN],
[OnceOffPayment],
[CaseAssociateCode]
FROM [dbo].[ChequeRequisitionLog] AS CRL
WHERE CRL.[ID] = @ID
END
GO
IF OBJECT_ID(N'[KAAS_FetchClientChargeOutRates]',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchClientChargeOutRates]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchClientChargeOutRates]
(@ClientCode VARCHAR(20),
@IncludeRetired CHAR(1) = 'Y'
)
AS
/*******************************************************************************************************
* This procedure is used to fetch Clinet Charge out Rates. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchClientChargeOutRates] *
* Copied from : [dbo].[ky_NETCONFetchClientChargeOutRates] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
--Client Charge out rate Indicator
SELECT
A.RECORDID,
A.CLIENTCODE,
A.FECODE,
A.RATE,
A.EFFECTIVEDATE,
COALESCE(H.Name, H.Name, A.fecode) AS FeeEarnerName,
(CASE WHEN ISNULL(H.Retired,'N') = 'Y' THEN ISNULL(H.Retired,'N') ELSE ISNULL(Hg.RETIRED,'N') END) AS IsRetired
FROM
ClientChargeOutRates A
LEFT JOIN Handlers H on H.Code = A.FeCode
LEFT JOIN HandlerChargeGroups Hg on Hg.Code = A.FeCode
WHERE
A.CLIENTCODE = @ClientCode and
(@IncludeRetired = 'Y' OR ISNULL(H.Retired, 'N') <> 'Y' or ISNULL(Hg.Retired, 'N') <> 'Y')
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchClientContactCategories',N'P')IS NOT NULL
DROP PROCEDURE KAAS_FetchClientContactCategories
GO
CREATE PROCEDURE KAAS_FetchClientContactCategories
(
@ClientCode VARCHAR(10),
@ContactNum INT
)
AS
/*******************************************************************************************************
* This procedure is used to fetch client contact categories. *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchClientContactCategories] *
* Copied from : [dbo].[ky_NETCONFetchClientContactCategories] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
CC.[CategoryType] as [CTCode],
CT.[Description] AS [CTDescription],
CC.[Category] as [CCode],
C.[Desc$] AS [CDescription],
CC.[Date] as [Date],
CC.[FieldValue1] As [Prompt1],
CC.[FieldValue2] AS [Prompt2],
CC.[FieldValue3] AS [Prompt3],
CC.[FieldValue4] AS [Prompt4],
CC.[FieldValue5] AS [Prompt5],
CC.[FieldValue6] AS [Prompt6],
CC.[FieldValue7] AS [Prompt7],
CC.[FieldValue8] AS [Prompt8],
CC.[FieldValue9] AS [Prompt9],
CC.[FieldValue10] AS [Prompt10],
Cc.ContactNum AS [ContactNum],
ROW_NUMBER() over (order by Cc.ContactNum ) AS RowNumber,
CC.CCCategoryId as [CatId]
FROM
ClientContactCategories CC
LEFT JOIN CategoryType CT on CT.CategoryType = CC.CategoryType
LEFT JOIN Category C on C.Code = CC.Category and CT.CategoryType = C.CatType
WHERE
ClientCode = @ClientCode AND
ContactNum = @ContactNum
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchConfigurationSettings',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchConfigurationSettings]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchConfigurationSettings]
AS
/*******************************************************************************************************
* This Stored procedure is used to fetch Configuration settings. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchConfigurationSettings] *
* Copied from : [dbo].[ky_NETSYSCONFetchConfigurationSettings7] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @PrecedentFolder VARCHAR(200)
declare @StorageMethod VARCHAR(10)
DECLARE @WpFolder VARCHAR(200)
DECLARE @EmailOn VARCHAR(2)
DECLARE @AllowMultipleDraftBills VARCHAR(2)
DECLARE @SolicitorCategoryType VARCHAR(10)
DECLARE @OtherPartyCategoryType VARCHAR(10)
DECLARE @SupplierCategoryType VARCHAR(10)
DECLARE @DefaultVATCode VARCHAR(3)
DECLARE @EstFeeRequiredAtMatterStartup bit
DECLARE @ExpInvoiceDateRequiredAtMatterStartup bit
DECLARE @BranchRequired BIT
DECLARE @WIPWarningLimit DECIMAL(18,2)
DECLARE @DebtorWarningDaysLimit INT
DECLARE @LastActionMonth INT
DECLARE @LockupValue DECIMAL(18,2)
DECLARE @ShowAlarm BIT
DECLARE @IsSplitCheque VARCHAR(1)
DECLARE @IsHideCheque VARCHAR(1)
DECLARE @IsHideClient VARCHAR(1)
DECLARE @IsNewDocSearch VARCHAR(1)
DECLARE @IsAdestLink VARCHAR(1)
DECLARE @IsPostReq VARCHAR(1)
DECLARE @IsCaseBooks VARCHAR(1)
DECLARE @IsAxxiaLinks VARCHAR(1)
DECLARE @IsEnquiry VARCHAR(1)
DECLARE @IsTimeCosting VARCHAR(1)
DECLARE @IsBilling VARCHAR(1)
DECLARE @IsChqueReq VARCHAR(1)
DECLARE @IsClientReq VARCHAR(1)
DECLARE @IsCaseMan VARCHAR(1)
DECLARE @MaxClientCode VARCHAR(2)
DECLARE @MaxMatterCode VARCHAR(2)
DECLARE @LKVALUE VARCHAR(30)
DECLARE @IsSAM4 BIT
DECLARE @TUTNUMVALUE DECIMAL(17, 2)
DECLARE @DELETEACTION BIT
DECLARE @DELETEOTHERACTION BIT
DECLARE @SDLTPath VARCHAR(500)
DECLARE @UseTeamLeader VARCHAR(10)
DECLARE @DocumentSyncVisible VARCHAR(10)
DECLARE @CompositeBilling VARCHAR(10)
DEClARE @EnableDictation VARCHAR(10)
DECLARE @ExportReportsToLegacyFormats VARCHAR(10)
DECLARE @TopBarMatterDetails VARCHAR(10)
DECLARE @TopBarRef1 VARCHAR(10)
DECLARE @TopBarRef2 VARCHAR(10)
DECLARE @TopBarRef3 VARCHAR(10)
DECLARE @TopBarYourRef VARCHAR(10)
DECLARE @TopBarOldRef VARCHAR(10)
DECLARE @TopBarRecordNo VARCHAR(10)
SET @IsSAM4 = [dbo].[ISSAM4]()
DECLARE @TimeDaybookLimit VARCHAR(100)
DECLARE @OSInvoiceLimit VARCHAR(100)
DECLARE @CurrentWIPLimit VARCHAR(100)
DECLARE @DraftInvoiceLimit VARCHAR(100)
DECLARE @RoundupUnits BIT
DECLARE @AllowAssignToClosed BIT
DECLARE @AllowAnimation BIT
DECLARE @EmailUserName VARCHAR(100)
DECLARE @EmailPassword VARCHAR(25)
DECLARE @EmailSMTP VARCHAR(25)
DECLARE @EmailPort VARCHAR(7)
DECLARE @EmailEnableSSL BIT
DECLARE @EmailUseDefaultCredentials BIT
DECLARE @StrongRoomAdminEmail VARCHAR(100)
DECLARE @StrongRoomAdmin VARCHAR(20)
DECLARE @FileNoLabelText VARCHAR(20)
DECLARE @DeleteAttachment BIT
DECLARE @ReadyonlyAttachment BIT
DECLARE @ShowAddAssociates BIT
DECLARE @AddAssociatesDefaultValue VARCHAR(50)
DECLARE @ChargeOutRateCheck BIT
DECLARE @NotAllowMultipleDraftBill BIT
DECLARE @EnablePaymentReceipt BIT
DECLARE @EnableDestroyMatter BIT
DECLARE @PrintLedgerVisibility BIT
DECLARE @EnableP4WLink BIT
DECLARE @P4WProgramPath VARCHAR(200)
DECLARE @P4WPattern VARCHAR(200)
DECLARE @PrintLedgerOutlayCode VARCHAR(5)
DECLARE @DefaultReceiptBank VARCHAR(20)
DECLARE @AMLRequiredForTime BIT
DECLARE @EnablePFChequeProcess BIT
DECLARE @DefaultChequeRequestActionAssignee VARCHAR(20)
SET @EmailEnableSSL = 0
SET @EmailUseDefaultCredentials = 0
-- Default Values
SET @WIPWarningLimit = 0
SET @DebtorWarningDaysLimit = 0
SET @LastActionMonth = 0
SET @DebtorWarningDaysLimit = '0'
SET @TimeDaybookLimit = '0'
SET @OSInvoiceLimit = '0'
SET @CurrentWIPLimit = '0'
SET @DraftInvoiceLimit = '0'
SET @RoundupUnits = 0
SET @AllowAssignToClosed = 0
IF @IsSAM4 = 0
BEGIN
SET @MaxClientCode = '6'
SET @MaxMatterCode = '4'
END
ELSE
BEGIN
SET @MaxClientCode = '8'
SET @MaxMatterCode = '8'
END
SET @LockupValue = 0
SET @ShowAlarm = 0
SET @EstFeeRequiredAtMatterStartup = 0
SET @ExpInvoiceDateRequiredAtMatterStartup = 0
SET @BranchRequired = 0
SET @DELETEACTION = 0
SET @DELETEOTHERACTION = 0
SET @DeleteAttachment = 1
SET @AllowAnimation = 'False'
SET @ReadyonlyAttachment = 0
SET @ShowAddAssociates = 0
SET @AddAssociatesDefaultValue = ''
SET @ChargeOutRateCheck = 0
SET @NotAllowMultipleDraftBill = 1
SET @UseTeamLeader = 'False'
SET @DocumentSyncVisible = 'False'
SET @CompositeBilling = 'N'
SET @EnableDictation = 'False'
SET @ExportReportsToLegacyFormats = 'False'
SET @EnablePaymentReceipt = 'False'
SET @EnableDestroyMatter = 'False'
SET @PrintLedgerVisibility = 'False'
SET @EnableP4WLink = 'False'
SET @P4WProgramPath = ''
SET @P4WPattern = '(?![\w\d]+)[\D\W\S]{1}(?=\d+)' -- This might be hard coded, but it's the initial format
SET @PrintLedgerOutlayCode = ''
SET @AMLRequiredForTime = 0
SET @TopBarMatterDetails = 'False'
SET @TopBarRef1 = 'False'
SET @TopBarRef2 = 'False'
SET @TopBarRef3 = 'False'
SET @TopBarYourRef = 'False'
SET @TopBarOldRef = 'False'
SET @TopBarRecordNo = 'False'
SET @DefaultReceiptBank = ''
SET @EnablePFChequeProcess = 'False'
SET @DefaultChequeRequestActionAssignee = ''
--And try get them from the database. If not present, default values will remain intact.
SELECT @WIPWarningLimit = CASE WHEN [SET].[KeyName] = 'EstFeeWarningLimit'
THEN [SET].[KeyValue]
ELSE @WIPWarningLimit END,
@DebtorWarningDaysLimit = CASE WHEN [SET].[KeyName] = 'DebtorWarningDaysLimit'
THEN [SET].[KeyValue]
ELSE @DebtorWarningDaysLimit END,
@MaxClientCode = CASE WHEN [SET].[KeyName] = 'MaxClCode'
THEN [SET].[KeyValue]
ELSE @MaxClientCode END,
@MaxMatterCode = CASE WHEN [SET].[KeyName] = 'MaxMatNum'
THEN [SET].[KeyValue]
ELSE @MaxMatterCode END,
@LockupValue = CASE WHEN [SET].[KeyName] = 'LockupUpValue'
THEN [SET].[KeyValue]
ELSE @LockupValue END,
@ShowAlarm = CASE WHEN [SET].[KeyName] = 'ShowAlarm'
THEN [SET].[KeyValue]
ELSE @ShowAlarm END,
@EstFeeRequiredAtMatterStartup = CASE WHEN [SET].[KeyName] = 'EstFeeRequiredatMatterSetup'
THEN [SET].[KeyValue]
ELSE @EstFeeRequiredAtMatterStartup END,
@ExpInvoiceDateRequiredAtMatterStartup = CASE WHEN [SET].[KeyName] = 'ExpInvoiceDateRequiredatMatterSetup'
THEN [SET].[KeyValue]
ELSE @ExpInvoiceDateRequiredAtMatterStartup END,
@LastActionMonth = CASE WHEN [SET].[KeyName] = 'LastActionMonth'
THEN [SET].[KeyValue]
ELSE @LastActionMonth END,
@TimeDaybookLimit = CASE WHEN [SET].[KeyName] = 'TimeDayBookLimit'
THEN [SET].[KeyValue]
ELSE @TimeDaybookLimit END,
@OSInvoiceLimit = CASE WHEN [SET].[KeyName] = 'OSInvoiceLimit'
THEN [SET].[KeyValue]
ELSE @OSInvoiceLimit END,
@CurrentWIPLimit = CASE WHEN [SET].[KeyName] = 'CurrentWIPLimit'
THEN [SET].[KeyValue]
ELSE @CurrentWIPLimit END,
@DraftInvoiceLimit = CASE WHEN [SET].[KeyName] = 'DraftInvoiceLimit'
THEN [SET].[KeyValue]
ELSE @DraftInvoiceLimit END,
@RoundupUnits = CASE WHEN [SET].[KeyName] = 'RoundupUnits'
THEN [SET].[KeyValue]
ELSE @RoundupUnits END,
@AllowAssignToClosed = CASE WHEN [SET].[KeyName] = 'AllowAssignToClosed'
THEN [SET].[KeyValue]
ELSE @AllowAssignToClosed END,
@DELETEACTION = CASE WHEN [SET].[KeyName] = 'AllowToDeleteAction'
THEN [SET].[KeyValue]
ELSE @DELETEACTION END,
@DELETEOTHERACTION = CASE WHEN [SET].[KeyName] = 'AllowToDeleteOtherAction'
THEN [SET].[KeyValue]
ELSE @DELETEOTHERACTION END,
@AllowAnimation = CASE WHEN [SET].[KeyName] = 'AllowAnimation'
THEN [SET].[KeyValue]
ELSE @AllowAnimation END,
@EmailUserName = CASE WHEN [SET].[KeyName] = 'EmailUserName'
THEN [SET].[KeyValue]
ELSE @EmailUserName END,
@EmailPassword = CASE WHEN [SET].[KeyName] = 'EmailPassword'
THEN [SET].[KeyValue]
ELSE @EmailPassword END,
@EmailSMTP = CASE WHEN [SET].[KeyName] = 'EMailSMTP'
THEN [SET].[KeyValue]
ELSE @EmailSMTP END,
@EmailPort = CASE WHEN [SET].[KeyName] = 'EmailPort'
THEN [SET].[KeyValue]
ELSE @EmailPort END,
@EmailEnableSSL = CASE WHEN [SET].[KeyName] = 'EmailEnableSSL'
THEN [SET].[KeyValue]
ELSE @EmailEnableSSL END,
@EmailUseDefaultCredentials = CASE WHEN [SET].[KeyName] = 'EmailUseDefaultCredentials'
THEN [SET].[KeyValue]
ELSE @EmailUseDefaultCredentials END,
@StrongRoomAdminEmail = CASE WHEN [SET].[KeyName] = 'StrongRoomAdminEmail'
THEN [SET].[KeyValue]
ELSE @StrongRoomAdminEmail END,
@StrongRoomAdmin = CASE WHEN [SET].[KeyName] = 'StrongRoomAdmin'
THEN [SET].[KeyValue]
ELSE @StrongRoomAdmin END,
@FileNoLabelText = CASE WHEN [SET].[KeyName] = 'FileNoLabelText'
THEN [SET].[KeyValue]
ELSE @FileNoLabelText END,
@DeleteAttachment =CASE WHEN [SET].[KeyName] = 'AllowToDeleteActionAttachment'
THEN [SET].[KeyValue]
ELSE @DeleteAttachment END,
@SDLTPath =CASE WHEN [SET].[KeyName] = 'SDLTGlobalPath'
THEN [SET].[KeyValue]
ELSE '' END,
@BranchRequired =CASE WHEN [set].[KeyName]='NewCaseWizardBranch'
THEN [SET].[KeyValue]
ELSE @BranchRequired END,
@ReadyonlyAttachment =CASE WHEN [set].[KeyName]='MakeFileReadonlyWhenComplete'
THEN [SET].[KeyValue]
ELSE @ReadyonlyAttachment END,
@ShowAddAssociates =CASE WHEN [set].[KeyName] = 'ShowAddAssociates'
THEN [SET].[KeyValue]
ELSE @ShowAddAssociates END,
@AddAssociatesDefaultValue =CASE WHEN [set].[KeyName] = 'AddAssociatesDefaultValue'
THEN [SET].[KeyValue]
ELSE @AddAssociatesDefaultValue END,
@ChargeOutRateCheck = CASE WHEN [SET].[KeyName] = 'ChargeOutRateCheck'
THEN [SET].[KeyValue]
ELSE @ChargeOutRateCheck END,
@NotAllowMultipleDraftBill = CASE WHEN [SET].[KeyName] = 'NotAllowMulipleDraftBill'
THEN [SET].[KeyValue]
ELSE @NotAllowMultipleDraftBill
END,
@UseTeamLeader = CASE WHEN [SET].[KeyName] = 'UseTeamLeader'
THEN [SET].[KeyValue]
ELSE @UseTeamLeader
END,
@DocumentSyncVisible = CASE WHEN [SET].[KeyName] = 'DocumentSyncVisible'
THEN [SET].[KeyValue]
ELSE @DocumentSyncVisible
END,
@CompositeBilling = CASE WHEN [SET].[KeyName] = 'CompositeBilling'
THEN [SET].[KeyValue]
ELSE @CompositeBilling
END,
@EnableDictation = CASE WHEN [SET].[KeyName] = 'EnableDictation'
THEN [SET].[KeyValue]
ELSE @EnableDictation
END,
@ExportReportsToLegacyFormats = CASE WHEN [SET].[KeyName] = 'ExportReportsToLegacyFormats'
THEN [SET].[KeyValue]
ELSE @ExportReportsToLegacyFormats
END,
@EnablePaymentReceipt = CASE WHEN [SET].[KeyName] = 'EnablePaymentReceipt'
THEN [SET].[KeyValue]
ELSE @EnablePaymentReceipt
END,
@EnableDestroyMatter = CASE WHEN [SET].[KeyName] = 'EnableDestroyMatter'
THEN [SET].[KeyValue]
ELSE @EnableDestroyMatter
END,
@PrintLedgerVisibility = CASE WHEN [SET].[KeyName] = 'PrintLedgerVisibility'
THEN [SET].[KeyValue]
ELSE @PrintLedgerVisibility
END,
@EnableP4WLink = CASE WHEN [SET].[KeyName] = 'EnableP4WLink'
THEN [SET].[KeyValue]
ELSE @EnableP4WLink
END,
@P4WProgramPath = CASE WHEN [SET].[KeyName] = 'P4WProgramPath'
THEN [SET].[KeyValue]
ELSE @P4WProgramPath
END,
@P4WPattern = CASE WHEN [SET].[KeyName] = 'P4WPattern'
THEN [SET].[KeyValue]
ELSE @P4WPattern
END,
@PrintLedgerOutlayCode = CASE WHEN [SET].[KeyName] = 'PrintLedgerOutlayCode'
THEN LEFT([SET].[KeyValue], 5)
ELSE @PrintLedgerOutlayCode
END,
@AMLRequiredForTime = CASE WHEN [SET].[KeyName] = 'AMLRequiredForTime'
THEN LEFT([SET].[KeyValue], 5)
ELSE @AMLRequiredForTime
END,
@TopBarMatterDetails = CASE WHEN [SET].[KeyName] = 'TopBarMatterDetails'
THEN [SET].[KeyValue]
ELSE @TopBarMatterDetails
END,
@TopBarRef1 = CASE WHEN [SET].[KeyName] = 'TopBarRef1'
THEN [SET].[KeyValue]
ELSE @TopBarRef1
END,
@TopBarRef2 = CASE WHEN [SET].[KeyName] = 'TopBarRef2'
THEN [SET].[KeyValue]
ELSE @TopBarRef2
END,
@TopBarRef3 = CASE WHEN [SET].[KeyName] = 'TopBarRef3'
THEN [SET].[KeyValue]
ELSE @TopBarRef3
END,
@TopBarYourRef = CASE WHEN [SET].[KeyName] = 'TopBarYourRef'
THEN [SET].[KeyValue]
ELSE @TopBarYourRef
END,
@TopBarOldRef = CASE WHEN [SET].[KeyName] = 'TopBarOldRef'
THEN [SET].[KeyValue]
ELSE @TopBarOldRef
END,
@TopBarRecordNo = CASE WHEN [SET].[KeyName] = 'TopBarRecordNo'
THEN [SET].[KeyValue]
ELSE @TopBarRecordNo
END,
@DefaultReceiptBank = CASE WHEN [SET].[KeyName] = 'DefaultPaymentReceiptBank'
THEN [SET].[KeyValue]
ELSE @DefaultReceiptBank
END,
@EnablePFChequeProcess = CASE WHEN [SET].[KeyName] = 'PFChequeProcess'
THEN [SET].[KeyValue]
ELSE @EnablePFChequeProcess
END,
@DefaultChequeRequestActionAssignee = CASE WHEN [SET].[KeyName] = 'DefaultChequeRequestActionAssignee'
THEN [SET].[KeyValue]
ELSE @DefaultChequeRequestActionAssignee
END
FROM [dbo].[Settings] [SET]
--IF @IsSAM4 = 1
-- BEGIN
SELECT @TUTNUMVALUE = CTN.[NumValue]
FROM [dbo].[CtrlNum] CTN
WHERE CTN.[Code] = 'TimeUnit'
-- END
SET @TUTNUMVALUE = CASE WHEN ISNULL(@TUTNUMVALUE, 0) = 0 THEN 6 ELSE @TUTNUMVALUE END
--PINO 2015-02-24 replaced 9 select statements with single one above.
--SET @WIPWarningLimit = (SELECT KeyValue FROM Settings WHERE KeyName='EstFeeWarningLimit')
--SET @DebtorWarningDaysLimit = (SELECT KeyValue FROM Settings WHERE KeyName='DebtorWarningDaysLimit')
--SET @LastActionMonth = (SELECT KeyValue FROM Settings WHERE KeyName='LastActionMonth')
--SET @MaxClientCode = (SELECT KeyValue FROM Settings WHERE KeyName='MaxClCode')
--SET @MaxMatterCode = (SELECT KeyValue FROM Settings WHERE KeyName='MaxMatNum')
--SET @LKVALUE = (SELECT KeyValue FROM Settings WHERE KeyName='LockupUpValue')
--SET @LockupValue = CONVERT(DECIMAL(18,2),@LKVALUE)
--SET @ShowAlarm = (SELECT KeyValue FROM Settings WHERE KeyName='ShowAlarm')
--SET @ShowAlarm = ISNULL(@ShowAlarm, 0)
--SET @EstFeeRequiredAtMatterStartup = (SELECT ISNULL(KeyValue, 'False') FROM Settings WHERE KeyName='EstFeeRequiredatMatterSetup')
--SET @EstFeeRequiredAtMatterStartup = ISNULL(@EstFeeRequiredAtMatterStartup, 0)
--SET @ExpInvoiceDateRequiredAtMatterStartup = (SELECT ISNULL(KeyValue, 'False') FROM Settings WHERE KeyName='ExpInvoiceDateRequiredatMatterSetup')
--SET @ExpInvoiceDateRequiredAtMatterStartup = ISNULL(@ExpInvoiceDateRequiredAtMatterStartup, 0)
SET @SolicitorCategoryType = (SELECT TOP 1 CatType FROM Category where Code = (select TOP 1 Solicitor from [control] ))
SET @OtherPartyCategoryType = (SELECT TOP 1 CatType FROM Category where Code = (select TOP 1 Othparty from [control] ))
SET @SupplierCategoryType = (SELECT TOP 1 CatType FROM Category where Code = (select TOP 1 SupplierCategory from [control] ))
SELECT
@PrecedentFolder= ScprecedentFolder, @StorageMethod= Storagemethod, @WpFolder=ScWpFolder, @EmailOn=EmailOn
FROM
systemConfig
--Allow Multiple Draft Bills
SELECT
@AllowMultipleDraftBills = Indicator5, @DefaultVATCode = REQUESTER
, @IsSplitCheque =SPLITCHEQUES
, @IsHideCheque = INDICATOR3
, @IsHideClient = INDICATOR4
, @IsNewDocSearch = INDICATOR6
, @IsAdestLink = INDICATOR7 , @IsPostReq = INDICATOR8
, @IsCaseBooks = INDICATOR9
, @IsAxxiaLinks = INDICATOR10
, @IsEnquiry = ENQUIRY
, @IsTimeCosting = TIMECOSTING
, @IsBilling = BILLING
, @IsChqueReq = CHEQUEREQ
, @IsClientReq = CLIENTREQ
, @IsCaseMan = CASEMAN
FROM
DEsktopControl
SELECT
Name,
Vatno,
Debtors,
Creditor,
Outlay,
VAT,
PL,
Client,
FeesWriteOff,
OutlayWriteOff,
BillsWriteOff,
DefaultOfficeAc,
DefaultClientAc,
DefaultClientDEP,
MiscOutlay,
PettyCash,
WithTax,
[YEAR],
[CurPer],
Outlaybudget,
LastBill,
VatExclude,
DefaultVAT,
FeeExclude,
MiscFe,
EnableFNL,
'VAT' as VAT,
AlarmStartupLaunch AS LaunchAlarmSystemAtStartup,
'ReserveLedger' as ReserveLedger,
UserPrompt1,
userPrompt2 AS UserPrompt2,
UserPrompt3,
Solicitor,
Othparty,
SupplierCategory,
DefaultCategory,
AutoNumber,
AutoAlphaClientNumbering,
ThirdPartyLimit,
DateFutValidation,
DatePastValidation,
NextFile,
ClosedFileNo,
ChequePrinting,
EnableCP,
EIConvert,
@PrecedentFolder as PrecedentFolder,
@StorageMethod as StorageMethod,
@WpFolder as WPFolder,
DocumentNamingMethod as DocumentNamingMethod,
@EmailOn as EmailOn,
@AllowMultipleDraftBills as AllowMultipleDraftBills,
@SolicitorCategoryType as SolicitorCategory,
@OtherPartyCategoryType as OtherPartyCategory,
@SupplierCategoryType as SupplierCategoryType,
@DefaultVATCode as DefaultVATCode,
@WIPWarningLimit AS WIPWarningLimit,
@DebtorWarningDaysLimit as DebtorWarningDaysLimit,
@LastActionMonth as LastActionMonth,
CONVERT(DECIMAL(18,2),@LockupValue) as LockupValue,
@ShowAlarm as ShowAlarm,
@EstFeeRequiredAtMatterStartup as EstFeeRequiredAtMatterStartup,
@ExpInvoiceDateRequiredAtMatterStartup as ExpInvoiceDateRequiredAtMatterStartup,
ENABLECDB,
ENABLEDW,
ENABLEFM,
RECINSTALLED,
NOBAR,
WORDPERFECT,
OPSISLINK,
TIMECOSTING,
FORCEFE,
UK,
USEOUTLAYTYPE,
PENDINGOUTLAY,
INDICATOR18,
INDICATOR19,
INDICATOR20,
DEMOEXPIRE,
MAXNUMBEROFMATTERS,
LABELPRINTER,
YEARENDCOMPLETED,
INDICATOR22,
INDICATOR23,
INDICATOR24,
INDICATOR25,
INDICATOR26,
INDICATOR27,
INDICATOR28,
INDICATOR29,
INDICATOR30,
FEESREPSEQ,
@IsSplitCheque AS [SplitCheque],
@IsHideCheque AS [HideCheque],
@IsHideClient AS [HideClient],
@IsNewDocSearch AS [NewDocSearch],
@IsAdestLink AS [AdestLink],
@IsPostReq AS [IsPostReq],
@IsCaseBooks AS [IsCaseBook],
@IsAxxiaLinks AS [AxxiaLinks],
@IsEnquiry AS [Enquiry],
@IsTimeCosting AS [DOTimeCosting],
@IsBilling AS [Billing],
@IsChqueReq AS [IsChequeReq],
@IsClientReq AS [IsClientReq],
@IsCaseMan AS [CaseMan],
AUTONUMBER AS [AutoNumber],
ISNULL(@MaxClientCode,6) AS [MaxClientCode],
ISNULL(@MaxMatterCode,4) AS [MaxMatterCode],
YourRef AS [YourRef],
@DELETEACTION AS [DeleteAction],
@DELETEOTHERACTION AS [DeleteOtherAction],
@AllowAnimation AS [AllowAnimation],
@EmailUserName AS [EmailUserName],
@EmailPassword AS [EmailPassword],
@EmailSMTP AS [EmailSMTP],
@EmailPort AS [EmailPort],
@EmailEnableSSL AS [EmailEnableSSL],
@EmailUseDefaultCredentials AS [UseDefaultCredentials],
@StrongRoomAdminEmail AS [StrongRoomAdminEmail],
@StrongRoomAdmin AS [StrongRoomAdmin],
ISNULL(@FileNoLabelText,'File No') AS [FileNoLabelText],
@DeleteAttachment AS [DeleteAttachement],
ISNULL(@SDLTPath,'') AS [SDLTPath],
@BranchRequired AS [BranchRequired],
@ReadyonlyAttachment AS [ReadyonlyAttachment],
@ShowAddAssociates AS [ShowAddAssociates],
@AddAssociatesDefaultValue AS [AddAssociatesDefaultValue],
@ChargeOutRateCheck AS [ChargeOutRateCheck],
@NotAllowMultipleDraftBill AS [NotAllowMutlipleDraftBill],
@UseTeamLeader AS [UseTeamLeader],
@DocumentSyncVisible AS [DocumentSyncVisible],
@CompositeBilling AS [CompositeBilling],
@EnableDictation AS [EnableDictation],
@ExportReportsToLegacyFormats AS [ExportReportsToLegacyFormats],
@EnablePaymentReceipt AS [EnablePaymentReceipt],
@EnableDestroyMatter AS [EnableDestroyMatter],
@PrintLedgerVisibility AS [PrintLedgerVisibility],
@EnableP4WLink AS [EnableP4WLink],
@P4WProgramPath AS [P4WProgramPath],
@P4WPattern AS [P4WPattern],
@PrintLedgerOutlayCode AS [PrintLedgerOutlayCode],
@AMLRequiredForTime AS [AMLRequiredForTime],
@TopBarMatterDetails AS TopBarMatterDetails,
@TopBarRef1 AS TopBarRef1,
@TopBarRef2 AS TopBarRef2,
@TopBarRef3 AS TopBarRef3,
@TopBarYourRef AS TopBarYourRef,
@TopBarOldRef AS TopBarOldRef,
@TopBarRecordNo AS TopBarRecordNo,
@DefaultReceiptBank AS [DefaultPaymentReceiptBank],
@EnablePFChequeProcess AS [EnablePFChequeProcess],
@DefaultChequeRequestActionAssignee AS [DefaultChequeRequestActionAssignee]
FROM
[dbo].[CONTROL]
SELECT @TimeDaybookLimit AS [TimeDayBookLimit],
@OSInvoiceLimit AS [OSInvoiceLimit],
@CurrentWIPLimit AS [CurrentWIPLimit],
@DraftInvoiceLimit AS [DraftInvoiceLimit],
@RoundupUnits AS [RoundupUnits],
@AllowAssignToClosed AS [AllowAssignToClosed],
@TUTNUMVALUE AS [MinutesPerUnit]
--fetch revenue details
--fetch revenue details
--KEYD-1166.... AGAIN....
DECLARE @CLIENTNO1 VARCHAR(20)
DECLARE @CLIENTNO2 VARCHAR(20)
DECLARE @CLIENTNO3 VARCHAR(20)
DECLARE @ClientGroup VARCHAR(10)
DECLARE @HoldDays VARCHAR(10)
DECLARE @Team VARCHAR(10)
DECLARE @FE VARCHAR(10)
DECLARE @Dept VARCHAR(10)
DECLARE @WorkType VARCHAR(10)
DECLARE @LastOutlay VARCHAR(50)
DECLARE @CasePlan VARCHAR(10)
DECLARE @NewReferral VARCHAR(50)
DECLARE @AmdReferral VARCHAR(50)
DECLARE @RejReferral VARCHAR(50)
DECLARE @MandateNo VARCHAR(50)
DECLARE @SolicitorNo VARCHAR(50)
DECLARE @BankAcc VARCHAR(50)
DECLARE @ClaimSystemEnabled VARCHAR(10)
DECLARE @EFTSheriffBankName VARCHAR(100)
DECLARE @EFTSheriffSortCode VARCHAR(100)
DECLARE @EFTSheriffAccountNumber VARCHAR(100)
DECLARE @EFTSheriffIBAN VARCHAR(100)
DECLARE @EFTSheriffBIC VARCHAR(100)
DECLARE @EFTSheriffOriginalIDNumber VARCHAR(100)
DECLARE @EFTPayeeBankName VARCHAR(100)
DECLARE @EFTPayeeSortCode VARCHAR(100)
DECLARE @EFTPayeeAccountNumber VARCHAR(100)
DECLARE @EFTPayeeIBAN VARCHAR(100)
DECLARE @EFTPayeeBIC VARCHAR(100)
--KEYD-1166.... AGAIN....
SELECT @CLIENTNO1 = '',
@CLIENTNO2 = '',
@CLIENTNO3 = '',
@ClientGroup = '',
@HoldDays = '',
@Team = '',
@FE = '',
@Dept = '',
@WorkType = '',
@LastOutlay = '',
@CasePlan = '',
@NewReferral = '',
@AmdReferral = '',
@RejReferral = '',
@MandateNo = '',
@SolicitorNo = '',
@BankAcc = '',
@ClaimSystemEnabled = 'False',
@EFTSheriffBankName = '',
@EFTSheriffSortCode = '',
@EFTSheriffAccountNumber = '',
@EFTSheriffIBAN = '',
@EFTSheriffBIC = '',
@EFTSheriffOriginalIDNumber = '',
@EFTPayeeBankName = '',
@EFTPayeeSortCode = '',
@EFTPayeeAccountNumber = '',
@EFTPayeeIBAN = '',
@EFTPayeeBIC = ''
SELECT
@CLIENTNO1 = CASE WHEN [SET].[KeyName] = 'ClientNo1'
THEN [SET].[KeyValue]
ELSE @CLIENTNO1 END,
@CLIENTNO2 = CASE WHEN [SET].[KeyName] = 'ClientNo2'
THEN [SET].[KeyValue]
ELSE @CLIENTNO2 END,
@CLIENTNO3 = CASE WHEN [SET].[KeyName] = 'ClientNo3'
THEN [SET].[KeyValue]
ELSE @CLIENTNO3 END,
@ClientGroup = CASE WHEN [SET].[KeyName] = 'ClientGroup'
THEN [SET].[KeyValue]
ELSE @ClientGroup END,
@HoldDays = CASE WHEN [SET].[KeyName] = 'HoldDays'
THEN [SET].[KeyValue]
ELSE @HoldDays END,
@Team = CASE WHEN [SET].[KeyName] = 'Team'
THEN [SET].[KeyValue]
ELSE @Team END,
@FE = CASE WHEN [SET].[KeyName] = 'FE'
THEN [SET].[KeyValue]
ELSE @FE END,
@Dept = CASE WHEN [SET].[KeyName] = 'Dept'
THEN [SET].[KeyValue]
ELSE @Dept END,
@WorkType = CASE WHEN [SET].[KeyName] = 'WorkType'
THEN [SET].[KeyValue]
ELSE @WorkType END,
@LastOutlay = CASE WHEN [SET].[KeyName] = 'LastOutlay'
THEN [SET].[KeyValue]
ELSE @LastOutlay END,
@CasePlan = CASE WHEN [SET].[KeyName] = 'CasePlan'
THEN [SET].[KeyValue]
ELSE @CasePlan END,
@NewReferral = CASE WHEN [SET].[KeyName] = 'NewReferral'
THEN [SET].[KeyValue]
ELSE @NewReferral END,
@AmdReferral = CASE WHEN [SET].[KeyName] = 'AmdReferral'
THEN [SET].[KeyValue]
ELSE @AmdReferral END,
@MandateNo = CASE WHEN [SET].[KeyName] = 'MandateNo'
THEN [SET].[KeyValue]
ELSE @MandateNo END,
@SolicitorNo = CASE WHEN [SET].[KeyName] = 'SolicitorNo'
THEN [SET].[KeyValue]
ELSE @SolicitorNo END,
@BankAcc = CASE WHEN [SET].[KeyName] = 'BankAcc'
THEN [SET].[KeyValue]
ELSE @BankAcc END,
@RejReferral = CASE WHEN [SET].[KeyName] = 'RejReferral'
THEN [SET].[KeyValue]
ELSE @RejReferral END,
@ClaimSystemEnabled = CASE WHEN [SET].[KeyName] = 'ClaimSystemEnabled'
THEN [SET].[KeyValue]
ELSE @ClaimSystemEnabled END,
@EFTSheriffBankName = CASE WHEN [SET].[KeyName] = 'EFTSheriffBankName'
THEN [SET].[KeyValue]
ELSE @EFTSheriffBankName END,
@EFTSheriffSortCode = CASE WHEN [SET].[KeyName] = 'EFTSheriffSortCode'
THEN [SET].[KeyValue]
ELSE @EFTSheriffSortCode END,
@EFTSheriffAccountNumber = CASE WHEN [SET].[KeyName] = 'EFTSheriffAccountNumber'
THEN [SET].[KeyValue]
ELSE @EFTSheriffAccountNumber END,
@EFTSheriffIBAN = CASE WHEN [SET].[KeyName] = 'EFTSheriffIBAN'
THEN [SET].[KeyValue]
ELSE @EFTSheriffIBAN END,
@EFTSheriffBIC = CASE WHEN [SET].[KeyName] = 'EFTSheriffBIC'
THEN [SET].[KeyValue]
ELSE @EFTSheriffBIC END,
@EFTSheriffOriginalIDNumber = CASE WHEN [SET].[KeyName] = 'EFTSheriffOriginalIDNumber'
THEN [SET].[KeyValue]
ELSE @EFTSheriffOriginalIDNumber END,
@EFTPayeeBankName = CASE WHEN [SET].[KeyName] = 'EFTPayeeBankName'
THEN [SET].[KeyValue]
ELSE @EFTPayeeBankName END,
@EFTPayeeSortCode = CASE WHEN [SET].[KeyName] = 'EFTPayeeSortCode'
THEN [SET].[KeyValue]
ELSE @EFTPayeeSortCode END,
@EFTPayeeAccountNumber = CASE WHEN [SET].[KeyName] = 'EFTPayeeAccountNumber'
THEN [SET].[KeyValue]
ELSE @EFTPayeeAccountNumber END,
@EFTPayeeIBAN = CASE WHEN [SET].[KeyName] = 'EFTPayeeIBAN'
THEN [SET].[KeyValue]
ELSE @EFTPayeeIBAN END,
@EFTPayeeBIC = CASE WHEN [SET].[KeyName] = 'EFTPayeeBIC'
THEN [SET].[KeyValue]
ELSE @EFTPayeeBIC END
FROM
[dbo].[RevenueSettings] AS [SET]
SELECT
@CLIENTNO1 AS [CLIENTNO1],
@CLIENTNO2 AS [CLIENTNO2],
@CLIENTNO3 AS [CLIENTNO3],
@ClientGroup AS [CLIENTGROUP],
@HoldDays AS [HOLDDAYS],
@Team AS [TEAM],
@FE AS [FE],
@Dept AS [DEPT],
@WorkType AS [WORKTYPE],
@LastOutlay AS [LASTOUTLAY],
@CasePlan AS [CASEPLAN],
@NewReferral AS [NEWREFERRAL],
@AmdReferral AS [AMDREFERRAL],
@RejReferral AS [REJREFERRAL],
@MandateNo AS [MANDATENO],
@SolicitorNo AS [SOLICITORNO],
@BankAcc AS [BANKACC],
@ClaimSystemEnabled AS [ClaimSystemEnabled],
@EFTSheriffBankName AS [EFTSheriffBankName],
@EFTSheriffSortCode AS [EFTSheriffSortCode],
@EFTSheriffAccountNumber AS [EFTSheriffAccountNumber],
@EFTSheriffIBAN AS [EFTSheriffIBAN],
@EFTSheriffBIC AS [EFTSheriffBIC],
@EFTSheriffOriginalIDNumber AS [EFTSheriffOriginalIDNumber],
@EFTPayeeBankName AS [EFTPayeeBankName],
@EFTPayeeSortCode AS [EFTPayeeSortCode],
@EFTPayeeAccountNumber AS [EFTPayeeAccountNumber],
@EFTPayeeIBAN AS [EFTPayeeIBAN],
@EFTPayeeBIC AS [EFTPayeeBIC]
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchContactCategory',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchContactCategory]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchContactCategory] (
@Contact VARCHAR(8),
@CategoryType VARCHAR(6),
@Category VARCHAR(10))
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_FetchContactCategory] *
* Copied from : [dbo].[ky_NETCONFetchContactCategory] *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
SELECT CC.CONTACT,
CC.categorytype AS [CategoryType],
CC.category AS [Category],
CC.[DATE],
CC.FIELDVALUE1,
CC.FIELDVALUE2,
CC.FIELDVALUE3,
CC.FIELDVALUE4,
CC.FIELDVALUE5,
CC.FIELDVALUE6,
CC.FIELDVALUE7,
CC.FIELDVALUE8,
CC.FIELDVALUE9,
CC.FIELDVALUE10,
C.[Description] AS [CDescription],
D.Desc$ AS [Description]
FROM ContactCategories CC
LEFT JOIN CategoryType C
ON CC.categorytype = C.CategoryType
LEFT JOIN Category D
ON D.CatType = CC.categorytype
AND D.Code = CC.category
WHERE CC.CONTACT = @Contact
AND CC.categorytype = @Categorytype
AND CC.category = @Category
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchContactCategoryForEdit',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchContactCategoryForEdit]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchContactCategoryForEdit] ( @Contact VARCHAR(8), @RecordId INT)
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_FetchContactCategoryForEdit] *
* Copied from : [dbo].[ky_NETCONFetchContactCategory] *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
SELECT CC.CONTACT,
CC.categorytype AS [CategoryType],
CC.category AS [Category],
CC.RECORDID,
CC.[DATE],
CC.FIELDVALUE1,
CC.FIELDVALUE2,
CC.FIELDVALUE3,
CC.FIELDVALUE4,
CC.FIELDVALUE5,
CC.FIELDVALUE6,
CC.FIELDVALUE7,
CC.FIELDVALUE8,
CC.FIELDVALUE9,
CC.FIELDVALUE10,
C.[Description] AS [CDescription],
D.Desc$ AS [Description]
FROM ContactCategories CC
LEFT JOIN CategoryType C
ON CC.categorytype = C.CategoryType
LEFT JOIN Category D
ON D.CatType = CC.categorytype
AND D.Code = CC.category
WHERE CC.CONTACT = @Contact
AND CC.RECORDID = @RecordId
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchContactForEdit'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchContactForEdit]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchContactForEdit]
(@Code VARCHAR(20),
@Handler VARCHAR(10))
AS
/*******************************************************************************************************
* This stored procedure is used to FETCH contact details by Contact Code for update details *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchContactForEdit] *
* Copied from : [dbo].[ky_NETCONFetchContactForEdit] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @BitWiseID BIGINT
SELECT @BitWiseID = HNG.[BitWiseID]
FROM HandlerNETGroupMembership HNG
WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @Handler)
SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@Handler, ''))))
IF (@Handler = 'ADM')
BEGIN
SET @BitWiseID = CONVERT(BIGINT, -1)
END
--Client Details
SELECT [CON].[Code],
[CON].[Name],
[CON].[Address],
[CON].[Salut],
[CON].[Tel],
[CON].[Fax],
[CON].[Email],
[CON].[Principal],
[CON].[FE],
[CON].[Nation],
[CON].[Spouse],
[CON].[DOB] AS [DOB],
[CON].[SpouseDOB] AS [SpouseDOB],
[CON].[Introducer],
[CON].[IntroFE],
[CON].[Comments],
CASE WHEN ISNULL([CON].[Corporate], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [Corporate],
[CON].[DateOfMarriage] AS [DateOfMarriage],
CASE WHEN ISNULL([CON].[SpouseDead], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [IsDead],
CASE WHEN ISNULL([CON].[Separated], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [IsSeparated],
[CON].[HowSeparated],
[CON].[Partner],
[CON].[PartnerSince] AS [PartnerSince],
[CON].[Occupation],
[CON].[OtherRef],
[CON].[ChargeArrangement],
[CON].[BillingMethod],
[CON].[Approved] AS Approved,
[CON].[SpousePPS],
[CON].[ClientGroup],
[CON].[ClientVATNo],
CASE WHEN ISNULL([CON].[ChargeOutRateInd], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [ChargeOutRateInd],
[CON].[TaxType],
[CLT].[CLGRP],
[CLT].[ClLegalName],
[CLT].[CllegalAddr],
[CLT].[CLTEL],
[CLT].[CLMobNo],
[CLT].[CLMartialCde],
[CLT].[CLOccupCDE],
[CLT].[CLEmployer],
[CLT].[CLContactCde],
[CLT].[DcoumentFolder],
[CON].[CompFrequency],
CASE WHEN ISNULL([CON].[InActive], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [IsDeceased],
[CON].DateInActive AS [DOD],
[CON].[RSINo] AS [PPSNo],
CASE WHEN ISNULL([CON].[Statements], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [IsStatement],
CASE WHEN ISNULL([CON].[Inactive], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [InActive],
[CON].[DateInactive] AS [Dateinactive],
[CON].[LastAR] AS [LastAr],
[CON].[CRONumber],
[CON].[CompanyWebSite],
[CON].[OtherAddress],
[CON].[County],
[CON].[PostalCode],
[CON].[CompMatter],
[CON].[BankName],
[CON].[BankAddress],
[CON].[BankSortCode],
[CON].[BankAccNo],
[CON].[IBan],
[CON].[Bic],
[CON].[EnvelopeName],
[CON].[ChargeLevel] AS [ChargeLevel],
[CON].[WarningMsg] AS [WarningMessage],
ISNULL([CON].[DisallowNewMatter], 0) AS [DisallowNewMatter],
ISNULL([MC].[Retired], 'N') AS [Retired],
[DXAddress] AS [DXAddress],
[SecondaryEmail] AS [SecondaryEmail],
REPLACE(ISNULL([FC].[Retired], 'N'),' ','N') AS [FeeEarnerRetired],
[CON].[Password],
CASE WHEN ISNULL([CON].[RemoteAccess], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [RemoteAccess],
ISNULL([CON].[BankType], '') AS [BankType],
RTRIM(ISNULL([CON].[EFTEmailAddress], '')) AS [EFTEmailAddress]
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[Contacts] [CON]
ON [CON].[Code] = [MAT].[ClientCode]
LEFT OUTER JOIN [dbo].[client] [CLT]
LEFT OUTER JOIN [dbo].[MiscCodes] [MC]
ON [MC].[CDECODE] = [CLT].[ClMartialCde]
ON [CLT].[CLCODE] = [MAT].[ClientCode]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] [FC]
ON [FC].[Code] = [CON].[FE]
WHERE [MAT].[Code] = @Code
--Cross References
DECLARE @ClientCode VARCHAR(20)
DECLARE @Matter VARCHAR(20)
SET @ClientCode = (SELECT TOP 1 [MAT].[ClientCode]
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @Code)
SET @Matter = (SELECT TOP 1 [MAT].[Matter]
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @Code)
SELECT [CL].[CONTACTB] AS [LinkTo],
[CON].[Name],
[CL].[RELATE] AS [Relationship]
FROM [dbo].[ContactLinks] [CL]
LEFT OUTER JOIN [dbo].[Contacts] [CON]
ON [CON].[Code] = [CL].[CONTACTB]
WHERE [CL].[CONTACTA] = @ClientCode
--Client Charge out rate Indicator
SELECT [CCR].[RECORDID],
[CCR].[CLIENTCODE],
[CCR].[FECODE],
[CCR].[RATE],
[CCR].[EFFECTIVEDATE],
COALESCE([HAN].[Name], [HAN].[Name], [CCR].[fecode]) AS [FeeEarnerName],
CASE WHEN ISNULL([HAN].[Retired], 'N') = 'Y'
THEN 'Y'
ELSE ISNULL([HCG].[RETIRED], 'N') END AS [IsRetired]
FROM [dbo].[ClientChargeOutRates] [CCR]
LEFT OUTER JOIN [dbo].[Handlers] [HAN]
ON [HAN].[CODE] = [CCR].[FeCode]
LEFT OUTER JOIN [dbo].[HandlerChargeGroups] [HCG]
ON [HCG].[Code] = [CCR].[FeCode]
WHERE [CCR].[ClientCode] = @ClientCode
AND ( ISNULL([HAN].[RETIRED], 'N') <> 'Y'
OR ISNULL([HCG].[Retired], 'N') <> 'Y')
--Client related matters
SELECT [MAT].[Matter] AS [Matter],
[MAT].[Description] AS [Description],
[MAT].[FECode] AS [FeeEarner],
[MAT].[Dept] AS [Department],
[MAT].[WType] AS [WorkType],
[MAT].[Started] AS [Started],
[MAT].[Code] AS [MatterCode]
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[MatterNETPrivileges] [MNP]
ON [MNP].[MATTER] = [MAT].[Code]
WHERE [MAT].[ClientCode] = @ClientCode
AND ( ISNULL([MNP].[Privileges], CONVERT(BIGINT, -1)) & @BitWiseID <> 0
OR [MNP].[Privileges] IS NULL)
--Other Contacts
EXEC [dbo].[ky_NETGetClientContacts] @ClientCode
--Category
SELECT [CCA].[CONTACT],
[CCA].[CATEGORYTYPE] AS [Code],
[CCA].[CATEGORY] AS [CategoryType],
[CCA].[DATE] AS [DATE],
[CCA].[RECORDID],
[CAT].[Desc$] AS [CDescription],
[CTP].[Description] AS [Description],
[CCA].[FIELDVALUE1] AS [FIELDVALUE1],
[CCA].[FIELDVALUE2] AS [FIELDVALUE2],
[CCA].[FIELDVALUE3] AS [FIELDVALUE3],
[CCA].[FIELDVALUE4] AS [FIELDVALUE4],
[CCA].[FIELDVALUE5] AS [FIELDVALUE5],
[CCA].[FIELDVALUE6] AS [FIELDVALUE6],
[CCA].[FIELDVALUE7] AS [FIELDVALUE7],
[CCA].[FIELDVALUE8] AS [FIELDVALUE8],
[CCA].[FIELDVALUE9] AS [FIELDVALUE9],
[CCA].[FIELDVALUE10] AS [FIELDVALUE10]
FROM [dbo].[ContactCategories] [CCA]
LEFT OUTER JOIN [dbo].[Category] [CAT]
ON [CAT].[CatType] = [CCA].[CATEGORYTYPE]
AND [CAT].[Code] = [CCA].[CATEGORY]
LEFT OUTER JOIN [dbo].[CategoryType] [CTP]
ON [CTP].[CategoryType] = [CCA].[CATEGORYTYPE]
WHERE [CCA].[CONTACT] = @ClientCode
SELECT [OFC].[CONTACTOFFICER],
[OFC].[NAME],
[OFC].[COSECRETARY],
[OFC].[DATEAPPOINTED],
[OFC].[DATERESIGNED],
[OFC].[RECORDID]
FROM [dbo].[Officers] [OFC]
WHERE [OFC].CONTACTCODE = @ClientCode
EXECUTE ky_NETGetContactPrivilegeGroups @ClientCode
EXECUTE KAAS_GetNotificationApprovalData @Matter, @ClientCode
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchContactForEdit_KEYHM',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchContactForEdit_KEYHM]
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchContactForEdit_KEYHM]
(@Code VARCHAR(20),
@Handler VARCHAR(10),
@SearchText VARCHAR(4000))
AS
/***************************************************************************************************************
* This stored procedure is used to FETCH CLIENT and OTHER details by Contact Code to update details *
* for Keyhouse Mobile App *
* *
* Stored Procedure Name: [dbo].[KAAS_FetchContactForEdit_KEYHM] *
* Copied from : [dbo].[ky_NETCONFetchContactForEdit] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
* 2019-07-01 Vinodhan K Full name will be filled with Firstname and Surname if its empty or null *
***************************************************************************************************************/
BEGIN
SET NOCOUNT ON
--Client Details
SELECT [CON].[Code],
[CON].[Name],
[CON].[Address],
[CON].[Salut],
[CON].[Tel],
[CON].[Fax],
[CON].[Email],
[CON].[Principal],
[CON].[FE],
[CON].[Nation],
[CON].[Spouse],
CONVERT(VARCHAR(10), [CON].[DOB], 112) AS [DOB],
CONVERT(VARCHAR(10), [CON].[SpouseDOB], 112) AS [SpouseDOB],
[CON].[Introducer],
[CON].[IntroFE],
[CON].[Comments],
CASE WHEN ISNULL([CON].[Corporate], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [Corporate],
CONVERT(VARCHAR(10),
[CON].[DateOfMarriage],
112) AS [DateOfMarriage],
CASE WHEN ISNULL([CON].[SpouseDead], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [IsDead],
CASE WHEN ISNULL([CON].[Separated], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [IsSeparated],
[CON].[HowSeparated],
[CON].[Partner],
CONVERT(VARCHAR(10), [CON].[PartnerSince], 112) AS [PartnerSince],
[CON].[Occupation],
[CON].[OtherRef],
[CON].[ChargeArrangement],
[CON].[BillingMethod],
[CON].[Approved] AS [Approved],
[CON].[SpousePPS],
[CON].[ClientGroup],
[CON].[ClientVATNo],
CASE WHEN ISNULL([CON].[ChargeOutRateInd], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [ChargeOutRateInd],
[CON].[TaxType],
[CLT].[CLGRP],
[CLT].[ClLegalName] AS [ClLegalName],
[CLT].[CllegalAddr] AS [CllegalAddr],
[CLT].[CLTEL] AS [CLTEL],
[CLT].[CLMobNo],
[CLT].[CLMartialCde],
[CLT].[CLOccupCDE],
[CLT].[CLEmployer],
[CLT].[CLContactCde],
[CLT].[DcoumentFolder] AS [DcoumentFolder],
[CON].[CompFrequency],
CASE WHEN ISNULL([CON].[InActive], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [IsDeceased],
CONVERT(VARCHAR(10), [CON].DateInActive, 112) AS [DOD],
[CON].[RSINo] AS [PPSNo],
CASE WHEN ISNULL([CON].[Statements], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [IsStatement],
CASE WHEN ISNULL([CON].[Inactive], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [InActive],
CONVERT(VARCHAR(10), [CON].[DateInactive], 112) AS [Dateinactive],
CONVERT(VARCHAR(10), [CON].[LastAR], 112) AS [LastAr],
[CON].[CRONumber],
[CON].[CompanyWebSite],
[CON].[OtherAddress],
[CON].[County],
[CON].[PostalCode],
[CON].[CompMatter],
[CON].[BankName],
[CON].[BankAddress],
[CON].[BankSortCode],
[CON].[BankAccNo],
[CON].[IBan],
[CON].[Bic],
[CON].[EnvelopeName],
[CON].[ChargeLevel] AS [ChargeLevel],
[CON].[WarningMsg] AS [WarningMessage],
ISNULL([CON].[DisallowNewMatter], 0) AS [DisallowNewMatter],
ISNULL([MC].[Retired], 'N') AS [Retired],
[DXAddress] AS [DXAddress],
[SecondaryEmail] AS [SecondaryEmail],
REPLACE(ISNULL([FC].[Retired], 'N'),' ','N') AS [FeeEarnerRetired],
[CON].[Password],
CASE WHEN ISNULL([CON].[RemoteAccess], 'N') = 'Y'
THEN '1'
ELSE '0' END AS [RemoteAccess],
ISNULL([CON].[BankType], '') AS [BankType]
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[Contacts] [CON]
ON [CON].[Code] = [MAT].[ClientCode]
LEFT OUTER JOIN [dbo].[client] [CLT]
LEFT OUTER JOIN [dbo].[MiscCodes] [MC]
ON [MC].[CDECODE] = [CLT].[ClMartialCde]
ON [CLT].[CLCODE] = [MAT].[ClientCode]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] [FC]
ON [FC].[Code] = [CON].[FE]
WHERE [MAT].[Code] = @Code
--Other Contacts
DECLARE @ClientCode VARCHAR(20)
SET @ClientCode = (SELECT TOP 1 [MAT].[ClientCode]
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @Code)
SELECT [CC].[CLINITS] AS [Initials],
CASE
WHEN
ISNULL(CC.[CLNAMECON], '') = '' OR CC.[CLNAMECON] = ''
THEN
[CC].[FIRSTNAME] + ' ' + [CC].[SURNAME]
ELSE
[CC].[CLNAMECON]
END AS [FullName],
[CC].[HomePhone] AS [HomePhone],
[CC].[WorkPhone] AS [WorkPhone],
[CC].[Mobile] AS [Mobile],
[CC].[FIRSTNAME] AS [FirstName],
[CC].[SURNAME] AS [Surname],
[CC].[CLSALUTE] AS [Salutation],
[CC].[PPSNo] AS [PPSNumber],
[CC].[CLTITLE] AS [Title],
[CC].[Address],
[CC].[EmailAddress],
CONVERT(VARCHAR(11), [CC].[DOB], 106) AS [DOB],
CONVERT(VARCHAR(11), [CC].[MarrigeDate], 106) AS [MarriageDate],
[CC].[Occupation],
[CC].[DateofDeath] AS [DateOfDeath],
[MC].[CDEDESC] AS [MaritalStatus],
[CC].[MartialStatus] AS [MStatus],
[CC].[FaxNumber],
[CC].[PostalCode],
[CC].[County],
[CC].[CLNUMCONTACT],
[CC].[DXREF]
FROM [dbo].[ClientContacts] [CC]
LEFT OUTER JOIN [dbo].[MiscCodes] [MC]
ON [MC].[CDECODE] = [CC].[MartialStatus]
AND [MC].[CDETYPE] = 'MRS'
WHERE [CC].[CLCODE] = @ClientCode
AND (
@SearchText = ''
OR
([CC].[CLNAMECON] LIKE '%' + @SearchText + '%')
)
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchContactPageLoad',N'P')IS NOT NULL
DROP PROCEDURE KAAS_FetchContactPageLoad
GO
CREATE PROCEDURE
KAAS_FetchContactPageLoad
(@ClientCode VARCHAR(30))
AS
/*******************************************************************************************************
* This stored procedure is used to FETCH contact window load data *
* 1. Tax Type Desc *
* 2. Nationality *
* 3. Fee Earner *
* 4. Maritial Status *
* 5. Charge Arrangement *
* 6. Client Group *
* 7. Contact type *
* 8. Occupation Type . *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchContactPageLoad] *
* Copied from : [dbo].[ky_NETCONFetchContactPageLoad] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @FEEEARNER AS VARCHAR(10)
DECLARE @MARITALSTATUS AS VARCHAR(10)
DECLARE @OCCTYPE AS VARCHAR(10)
DECLARE @CONTACTTYPE AS VARCHAR(10)
DECLARE @INTROFE AS VARCHAR(10)
SET @FEEEARNER = (SELECT
C.[FE]
FROM
[Contacts] C
LEFT JOIN [FeeEarnerCodes] FE
ON FE.[code] = C.[FE]
WHERE
C.[Code] = @ClientCode
AND FE.[Retired] = 'Y')
SET @MARITALSTATUS = (SELECT
CL.[ClMartialCde]
FROM
[CLIENT] CL
LEFT JOIN [MISCCODES] MC
ON MC.[CdeCode] = CL.[ClMartialCde]
WHERE
MC.[CDETYPE]='MRS'
AND CL.[CLCODE] = @ClientCode
AND MC.[Retired] = 'Y')
SET @OCCTYPE = (SELECT
CL.[CLOCCUPCDE]
FROM
[CLIENT] CL LEFT JOIN
[MISCCODES] MC
ON
MC.[CdeCode] = CL.[CLOCCUPCDE]
WHERE
MC.[CDETYPE]='OCC'
AND CL.[CLCODE] = @ClientCode
AND MC.[Retired] = 'Y')
SET @CONTACTTYPE = (SELECT
CL.[CLCONTACTCDE]
FROM
[CLIENT] CL LEFT JOIN
[MISCCODES] MC
ON
MC.[CdeCode] = CL.[CLOCCUPCDE]
WHERE
MC.[CDETYPE]='CCL'
AND CL.[CLCODE] = @ClientCode
AND MC.[Retired] = 'Y')
SET @INTROFE = (SELECT
C.[INTROFE]
FROM
[Contacts] C
LEFT JOIN [FeeEarnerCodes] FE
ON FE.[CODE] = C.[INTROFE]
WHERE
C.[Code] = @ClientCode
AND FE.[Retired] = 'Y')
SET NOCOUNT ON
--Tax Type
SELECT
RTRIM([TaxType]) AS Code,
RTRIM([TaxDesc]) AS TaxDesc
FROM
[TaxType]
--Nationality
SELECT
RTRIM([Nation]) AS Code,
RTRIM([Desc]) AS Nationality
FROM
NationCodes
--Fee Earner
SELECT
RTRIM([Code]) AS Code,
RTRIM(ISNULL([Name],'')) AS FeeEarners
FROM
[FeeEarnerCodes]
WHERE
ISNULL(Retired,'N') <> 'Y'
OR
[Code] = @FEEEARNER
--Mairitial Status
SELECT
RTRIM([CdeCode]) AS Code,
RTRIM(ISNULL([Cdedesc],'')) AS MaritialStatus
FROM
[MISCCODES]
WHERE
CDETYPE = 'MRS' AND
(ISNULL(Retired,'N') <> 'Y'
OR
[CDECODE]= @MARITALSTATUS)
--ChargeArrangements
SELECT
RTRIM(ISNULL([Code],'')) AS Code,
RTRIM(ISNULL([Description],'')) AS ChargeArrangement
FROM
ChargeArrangements
--ClientGroup
SELECT
RTRIM([GroupCode]) AS Code,
RTRIM(ISNULL([GroupName],'')) AS ClientGroup
FROM
Clientgroup
--ContactType
SELECT
RTRIM([CdeCode]) AS Code,
RTRIM(ISNULL([CdeDesc],'')) AS ContactType
FROM
[MISCCODES]
WHERE
[CDEType] = 'CCL' AND
(ISNULL(Retired,'N') <> 'Y' OR
[CDECODE]= @CONTACTTYPE)
--OccupationType
SELECT
RTRIM([CdeCode]) AS Code,
RTRIM(ISNULL([CdeDesc],'')) AS OccupationType
FROM
[MISCCODES]
WHERE
[CDETYPE] = 'OCC'
AND
(ISNULL(Retired,'N') <> 'Y'
OR
CDECODE= @OCCTYPE)
--Handler Charge Group
SELECT 'H' as Code,'Handlers' As ChargeGroup
UNION ALL
SELECT 'CG', 'Charge Groups'
-- Intro Fee Earner
SELECT
RTRIM([Code]) AS Code,
RTRIM(ISNULL([Name],'')) AS IntroFeeEarners
FROM
[FeeEarnerCodes]
WHERE
ISNULL(Retired,'N') <> 'Y'
OR
[Code] = @INTROFE
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_FetchCrossReference]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_FetchCrossReference]
GO
CREATE PROCEDURE [KAAS_FetchCrossReference]
(@ClientCode VARCHAR(20))
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchCrossReference] *
* Copied from : [dbo].[ky_NETCONFetchCrossReference] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
--Cross References
SELECT
CL.ContactB AS LinkTo,
C.Name,
CL.Relate AS Relationship
FROM
ContactLinks CL
LEFT JOIN
Contacts C
ON C.Code = CL.ContactB
WHERE
CL.ContactA = @ClientCode
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchDiaryAttachments'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchDiaryAttachments]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchDiaryAttachments]
(@DIARYID Integer)
/*******************************************************************************************************
* This procedure is used load the data for TaskAddAction page Attachment Grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchDiaryAttachments] *
* Copied from : [dbo].[ky_NETCCFetchDiaryAttachments] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
DECLARE @Handler VARCHAR(10)
SELECT @Handler = CONVERT(VARCHAR(10),
CASE WHEN CHARINDEX(CHAR(0),
CONVERT(VARCHAR(MAX),
[P].[context_info])) > 0
THEN SUBSTRING(CONVERT(VARCHAR(MAX),
[P].[context_info]),
1,
CHARINDEX(CHAR(0),
CONVERT(VARCHAR(MAX),
[P].[context_info])) - 1)
ELSE CONVERT(VARCHAR(MAX),
[P].[context_info]) END)
FROM [sysprocesses] [P]
WHERE [P].[spid] = @@SPID
SET @Handler = RTRIM(ISNULL(@Handler, 'ADM'))
INSERT
INTO [dbo].[DiaryAttachmentAccess]
([TrackReference],
[Handler],
[Comment])
SELECT [DAT].[TrackReference],
@Handler,
'Listed for Action'
FROM [dbo].[DiaryAttachments] [DAT]
WHERE [DAT].[DiaryID] = @DIARYID
SELECT [DAT].[DIARYID] AS [DIARYID],
[DAT].[TRACKREFERENCE] AS [TRACKREFERENCE],
RTRIM(ISNULL([DAT].[CASECODE], '')) AS [CASECODE],
RTRIM(ISNULL([DAT].[NAME], '')) AS [NAME],
RTRIM(ISNULL([DAT].[DOCUMENT], '')) AS [DOCUMENT],
CASE WHEN [UNC].[UNC] IS NULL
THEN RTRIM(ISNULL([DAT].[FILEPATH], ''))
ELSE [UNC].[UNC]
+ SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH],
'')),
3,
LEN(RTRIM(ISNULL([DAT].[FILEPATH],
'')))
- 2) END AS [FILEPATH],
CASE WHEN [UNC].[UNC] IS NULL
THEN RTRIM(ISNULL([DAT].[FILEPATH], ''))
ELSE [UNC].[UNC]
+ SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH],
'')),
3,
LEN(RTRIM(ISNULL([DAT].[FILEPATH],
'')))
- 2) END AS [LFILEPATH],
RTRIM(ISNULL([DAT].[TYPE], '')) AS [TYPE],
RTRIM(ISNULL([DCL].[CLASSCODE], '')) AS [DOCCLASS],
RTRIM(ISNULL([DCL].[CLASSDESCRIPTION], '')) AS [DOCCLASSDESC],
CONVERT(VARCHAR, [DAT].[DATEENTERED], 20) AS [DATEENTERED],
RTRIM(ISNULL([DAT].[SYSTEM], 'N')) AS [SYSTEM],
RTRIM(ISNULL([DAT].[DOCCLASS], '')) AS [DOCCLASS],
RTRIM(ISNULL([DAT].[ENTEREDBY], '')) AS [ENTEREDBY],
CONVERT(VARCHAR, [DAT].[LASTACCESSDATE], 20) AS [LASTACCESSDATE],
RTRIM(ISNULL([DAT].[LASTACCESSBY], '')) AS [LASTACCESSBY],
RTRIM(ISNULL([DAT].[DICTATIONFILE], '')) AS [DICTATIONFILE],
RTRIM(ISNULL([DAT].[SOURCE], '')) AS [Source],
RTRIM(ISNULL([DAT].[Fees], '')) AS [Fees],
RTRIM(ISNULL([DAT].[Outlay], '')) AS [Outlay],
[DV].[CurrentVersion] AS [CurrentVersion],
RTRIM(ISNULL([DX].[IMDocID], '')) AS [IMDocID],
[MAT].[uniqueid] AS [UniqueId]
FROM [dbo].[DiaryAttachments] [DAT]
INNER JOIN [dbo].[diary] [DIA]
INNER JOIN [dbo].[matters] [MAT]
ON [MAT].[Code] = [DIA].[CASECODE]
ON [DIA].[ActionID] = [DAT].[DiaryID]
CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion]
FROM [dbo].[DiaryAttachmentVersioning] [DAV]
WHERE [DAV].[TrackReference] = [DAT].[TRACKREFERENCE]) DV
LEFT OUTER JOIN [dbo].[DocumentClasses] [DCL]
ON [DCL].[CLASSCODE] = [DAT].[DOCCLASS]
LEFT OUTER JOIN [dbo].[UNCAlias] [UNC]
ON SUBSTRING([DAT].[FilePath], 2, 1) = ':'
AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1)
LEFT OUTER JOIN [dbo].[DAIMXRef] [DX]
ON [DX].[TrackReference] = [DAT].[TRACKREFERENCE]
WHERE [DAT].[DIARYID] = @DIARYID
ORDER BY [DAT].[TRACKREFERENCE] DESC
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchDiaryByMatterCode'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchDiaryByMatterCode]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchDiaryByMatterCode]
(@Matter VARCHAR(20),
@Search VARCHAR(200),
@PageNumber INT,
@PageSize INT,
@ActionTypeXML XML,
@PriorityXML XML,
@FlagXML XML,
@DateXML XML = NULL)
AS
/*************************************************************************************************************
* *
* [dbo].[KAAS_FetchDiaryByMatterCode] *
* *
* Fetch Diary Items by Matter Code, with support for pagination and for filtering on ActionType, *
* Priority and/or Flag. *
* *
* @Search can be any string. Wildcard % will be appended at start and finish *
* @ActionTypeXML: example - '' *
* @PriorityXML: example - '' *
* @DateXML: example - '' *
* @FlagXML: example- '' *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: [dbo].[ky_NETCASEDIARYFetchDiarybyMatterCode] * *
* * Original: [dbo].[ky_NETSPFetchDiaryByMatterCode] * *
* * First compatible version: 5.7.2.1 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2019-04-02 Pino Carafa Created *
* 2019-04-30 Pino Carafa Added Subject search and Date Range *
* 2019-05-21 Saravanan Performance tuning done *
* 2019-05-29 Arun KEYHM-402 - Sorting order was correct till @FOUND table *
variable(Line No: 232), after this, few column have joined for desired *
output, at that time, sorting order gets changed, so explicitily have *
soredted by id column after join operation completed(Line no: 380). * *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @ShowFromToSynopsis BIT
DECLARE @FromDate DATETIME
DECLARE @ToDate DATETIME
SET @ShowFromToSynopsis = CASE WHEN ISNULL((SELECT TOP 1
[SET].[KeyValue]
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'ShowFromToSynopsis'),
'True') = 'False'
THEN 0
ELSE 1 END
-- Convert @ActionTypesXML etc into Table Variables for easier reference in later scripts START
DECLARE @ACTIONTYPES TABLE
([ActionType] VARCHAR(1) PRIMARY KEY)
DECLARE @ACTIONTYPESFILTERED BIT
SET @ACTIONTYPESFILTERED = 0 --Squeeze the last little bit of performance out of this
DECLARE @PRIORITIES TABLE
([Priority] VARCHAR(1) PRIMARY KEY)
DECLARE @PRIORITIESFILTERED BIT
SET @PRIORITIESFILTERED = 0 --Squeeze the last little bit of performance out of this
DECLARE @Flags TABLE
([Flag] TINYINT PRIMARY KEY)
DECLARE @FLAGSFILTERED BIT
SET @FLAGSFILTERED = 0 --Squeeze the last little bit of performance out of this
IF NOT (@DateXML IS NULL)
IF NOT (CONVERT(VARCHAR(MAX), @DateXML) = '')
BEGIN
SELECT [FromDate], [ToDate]
FROM (SELECT [DT].[COL].value('@FromDate', 'DATETIME') AS [FromDate], -- Use >= for comparison
DATEADD(DAY, 1, [DT].[COL].value('@ToDate', 'DATETIME')) AS [ToDate] -- Add 1 Day to ToDate so that we can use < for comparison
FROM @DateXML.nodes('/Dates') AS [DT]([COL])) [DTP]
END
IF NOT (@ActionTypeXML IS NULL)
IF NOT (CONVERT(VARCHAR(MAX), @ActionTypeXML) = '')
BEGIN
INSERT
INTO @ACTIONTYPES
([ActionType])
SELECT [ActionType]
FROM (SELECT [AT].[COL].value('@Value', 'VARCHAR(10)') AS [ActionType]
FROM @ActionTypeXML.nodes('/ActionType') AS [AT]([COL])) [ATP]
SELECT @ACTIONTYPESFILTERED = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM @ACTIONTYPES
END
--Select * from @ActionTypes
IF NOT (@PriorityXML IS NULL)
IF NOT (CONVERT(VARCHAR(MAX), @PriorityXML) = '')
BEGIN
INSERT
INTO @PRIORITIES
([Priority])
SELECT [Priority]
FROM (SELECT [PT].[COL].value('@Value', 'VARCHAR(10)') AS [Priority]
FROM @PriorityXML.nodes('/Priority') AS [PT]([COL])) [PTY]
SELECT @PRIORITIESFILTERED = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM @PRIORITIES
END
IF NOT (@FlagXML IS NULL)
IF NOT (CONVERT(VARCHAR(MAX), @FlagXML) = '')
BEGIN
INSERT
INTO @Flags
([Flag])
SELECT [Flag]
FROM (SELECT [FG].[COL].value('@Value', 'INT') AS [Flag]
FROM @FlagXML.nodes('/Flag') AS [FG]([COL])) [FLG]
SELECT @FLAGSFILTERED = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END FROM @Flags
END
-- Convert @ActionTypesXML etc into Table Variables for easier reference in later scripts END
-- Set @SearchText to NULL if nothing entered, otherwise ensure search starts and ends with
-- a wildcard character % - START
DECLARE @SEARCHTEXT VARCHAR(202)
SET @SearchText = CASE WHEN RTRIM(ISNULL(@Search, '')) = '' THEN NULL ELSE RTRIM(ISNULL(@Search, '')) END
IF @SearchText IS NOT NULL
BEGIN
IF SUBSTRING(@SearchText, 1, 1) <> '%'
BEGIN
SET @SearchText = '%' + @SearchText
END
IF SUBSTRING(@SearchText, LEN(@SearchText), 1) <> '%'
BEGIN
SET @SearchText = @SearchText + '%'
END
END
-- Set @SearchText to NULL if nothing entered, otherwise ensure search starts and ends with
-- a wildcard character % - END
-- Avoid Unnecessary Join START
DECLARE @ChargeArrangement VARCHAR(3)
SELECT @ChargeArrangement = RTRIM(ISNULL([MAT].[ChargeArrangement], '')) FROM [dbo].[matters] [MAT] WHERE [MAT].[Code] = @Matter
-- Avoid Unnecessary Join END
--SELECT ActionType FROM #ACTIONTYPES
-- Table to contain all matching ActionIDs in the desired order
DECLARE @FOUND TABLE
([id] INT IDENTITY(1, 1) PRIMARY KEY,
[ActionID] INT)
-- Insert ONLY the Primary Keys into the @FOUND Table so that it's much faster to retrieve only the requested page - Performance!
INSERT
INTO @FOUND
([ActionID])
SELECT [DIA].[ActionID]
FROM [dbo].[diary] [DIA]
LEFT OUTER JOIN [dbo].[Handlers] [FN]
ON [FN].[CODE] = [DIA].[FNCODE]
WHERE [DIA].[CASECODE] = @Matter
-- -- Use the CASE Construct to ensure it doesn't perform the PATINDEX unless it's actually necessary - Performance!
AND CASE WHEN @SEARCHTEXT IS NULL
THEN 0
WHEN PATINDEX(@SEARCHTEXT, [DIA].[TEXT1]) > 0
THEN 0
WHEN PATINDEX(@SEARCHTEXT, [DIA].[SUBJECT]) > 0
THEN 0
WHEN [FN].[NAME] IS NULL
THEN 1
WHEN PATINDEX(@SEARCHTEXT, [FN].[NAME]) > 0
THEN 0
ELSE 1 END = 0
-- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance!
AND CASE WHEN @FromDate IS NULL
THEN 0
WHEN [DIA].[DATE] >= @FromDate
THEN 0
ELSE 1 END = 0
-- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance!
AND CASE WHEN @ToDate IS NULL
THEN 0
WHEN [DIA].[DATE] < @ToDate
THEN 0
ELSE 1 END = 0
-- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance!
AND (@ACTIONTYPESFILTERED = 0 Or ([DIA].[ActionType] in (SELECT * FROM @ACTIONTYPES)))
-- -- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance!
AND (@PRIORITIESFILTERED = 0 OR ([DIA].[Priority] IN (SELECT * FROM @Priorities)))
-- -- Use the CASE Construct to ensure it doesn't perform SELECT until an actual filter is specified - Performance!
AND (@FLAGSFILTERED = 0 OR ([DIA].[Flag] 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]
-- 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],
RTRIM(ISNULL([DIA].[STATUS], 0)) AS [DStatus],
RTRIM(ISNULL([DIA].[ACTIONCODE], '')) AS [ACTIONCODE],
RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE],
RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE],
RTRIM(ISNULL([DIA].[FNCODE], '')) AS [FNCODE],
RTRIM(ISNULL([FN].[NAME], '')) AS [FNNAME],
RTRIM(ISNULL([DIA].[TEAMCODE], '')) AS [TEAMCODE],
RTRIM(ISNULL([DIA].[DisplayText], '')) AS [TEXT1],
ISNULL(CASE WHEN ISNUMERIC([DIA].[DYSTARTTIME]) = 1
THEN [DIA].[DYSTARTTIME]
ELSE [dbo].[ky_ConvertTimeToClarion]([DIA].[DYSTARTTIME]) END,
0) AS [DYSTARTTIME],
ISNULL(CASE WHEN ISNUMERIC([DIA].[DYENDTIME]) = 1
THEN [DIA].[DYENDTIME]
ELSE [dbo].[ky_ConvertTimeToClarion]([DIA].[DYENDTIME]) END,
0) AS [DYENDTIME],
ISNULL([DIA].[ACTIONID],0) AS [ACTIONID],
ISNULL([DIA].[ORGINALACTIONID],0) AS [ORGINALACTIONID],
RTRIM(ISNULL([DIA].[PRIORITY], '')) AS [PRIORITY],
RTRIM(ISNULL([DIA].[HIGHLIGHTED], 'N')) AS [HIGHLIGHTED],
[HAT].[HasAttachments] AS [ATTACHMENTS],
ISNULL([DIA].[PROCESSSTATUS], 0) AS [PROCESSSTATUS],
ISNULL([DIA].[WORKPROCESS], 0) AS [WORKPROCESS],
ISNULL([DIA].[BILLABLE], 0) AS [BILLABLE],
RTRIM(ISNULL([DIA].[EMAILADDRESS], '')) AS [EMAILADDRESS],
RTRIM(ISNULL(CONVERT(VARCHAR(200), [DIA].[ADDRESSTO]), '')) AS [ADDRESSTO],
RTRIM(ISNULL([DIA].[EMAIL], 'N')) AS [EMAIL],
RTRIM(ISNULL(CONVERT(VARCHAR(200), [DIA].[SUBJECT]), '')) AS [SUBJECT],
ISNULL([DIA].[DELEGATIONSTATUS], 0) AS [DELEGATIONSTATUS],
ISNULL([DIA].[DRAFTBILLNO], 0) AS [DRAFTBILLNO],
ISNULL([DIA].[CHEQUEREQNO], 0) AS [CHEQUEREQNO],
CAST(CASE WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE],'')) ='E'
AND @ShowFromToSynopsis = 1
THEN CASE WHEN ISNULL([DIA].[PROCESSTYPE],'O')='I'
THEN 'Email From:'
+ (RTRIM(ISNULL(CAST([DIA].[EMAILADDRESS] AS VARCHAR(300)),
'')))
+ ' - '
+ ISNULL(CAST ([DIA].[Subject] AS VARCHAR(300)),'')
ELSE 'Email To:'
+ RTRIM(CAST(ISNULL([DIA].[AddressTo],
'') AS VARCHAR(300)))
+ ' - '
+ ISNULL(CAST([DIA].[Subject] AS VARCHAR(300)), '') END
ELSE CASE WHEN DATALENGTH([DIA].[SUBJECT]) = 0
THEN CASE WHEN SUBSTRING([DIA].[DisplayText],
0,
CHARINDEX(CHAR(13),
[DIA].[DisplayText])) = ''
THEN ISNULL([DIA].[TEXT1], '')
ELSE SUBSTRING([DIA].[DisplayText],
0,
CHARINDEX(CHAR(13),
[DIA].[DisplayText])) END
WHEN RTRIM(CAST([DIA].[SUBJECT] AS VARCHAR(300))) = ''
THEN CASE WHEN SUBSTRING([DIA].[DisplayText],
0,
CHARINDEX(CHAR(13),
[DIA].[DisplayText])) = ''
THEN ISNULL([DIA].[TEXT1], '')
ELSE SUBSTRING([DIA].[DisplayText],
0,
CHARINDEX(CHAR(13),
[DIA].[DisplayText])) END
WHEN [DIA].[SUBJECT] IS NULL
THEN CASE WHEN SUBSTRING([DIA].[DisplayText],
0,
CHARINDEX(CHAR(13),
[DIA].[DisplayText])) = ''
THEN ISNULL([DIA].[TEXT1], '')
ELSE SUBSTRING([DIA].[DisplayText],
0,
CHARINDEX(CHAR(13),
[DIA].[DisplayText])) END
ELSE [DIA].[SUBJECT] END END AS VARCHAR(300)) AS [Synopsis],
ISNULL([DIA].[Flag],0) AS [Flag],
CASE WHEN RTRIM(ISNULL([DIA].[ForCopy], 0)) = '1'
THEN 'True'
ELSE 'False' END AS [ForCopy],
CASE WHEN ISNULL([DIA].[WORKPROCESS], 0) = 1
AND ISNULL([DIA].[STATUS], 0) <> 1
THEN 'G'
WHEN ISNULL([DIA].[STATUS], 0) = 1
THEN 'C'
ELSE '' END AS [COMPELETEORGENERATE],
CASE WHEN ISNULL([DIA].[WORKPROCESS], 0) = 1
AND ISNULL([DIA].[STATUS], 0) <> 1
THEN 'G'
WHEN ISNULL([DIA].[STATUS], 0) = 1
THEN 'C'
ELSE '' END AS [COMPELETEORGENERATEDD],
ISNULL([TAC].[DESC], '') AS [ActionTitle],
ISNULL([TMP].[WKDESC], '') AS [WorkFlow],
CASE WHEN ISNULL([UND].[NeedsAttention], 0) = 1
THEN 'Yes'
ELSE 'No' END AS [Needs Attention],
CASE WHEN ISNULL([UND].[NeedsAttention], 0) = 1
THEN 'Visible'
ELSE 'Collapsed' END AS [NeedsAttentionIcon],
CASE WHEN @SearchText IS NULL
THEN ''
WHEN PATINDEX(@SearchText, [DIA].[TEXT1]) > 0
THEN @Search
ELSE '' END AS [SearchMatch],
ISNULL([DIA].[CreationDate], CONVERT(DATETIME, [DIA].[DATE])) AS [CreationDate],
CASE
WHEN [DIA].[DUEDATE] != NULL OR [DIA].[DUEDATE] != ''
THEN CONVERT(VARCHAR, [DIA].[DUEDATE], 20)
ELSE
CONVERT(VARCHAR, [DIA].[DATE], 20)
END AS [DUEDATE],
RTRIM(ISNULL([DIA].[DELEGATEDFNR], '')) AS [DelegatedFE],
RTRIM(ISNULL([TAC].[Arrangement], '')) AS [Arrangement],
@ChargeArrangement AS [ChargeArrangement]
FROM @FOUND [FND]
INNER JOIN [dbo].[diary] [DIA]
LEFT OUTER JOIN [dbo].[Handlers] [FN]
ON [FN].[CODE] = [DIA].[FNCODE]
ON [DIA].[ActionID] = [FND].[ActionID]
LEFT OUTER JOIN [dbo].[TemplateActions] [TAC]
LEFT OUTER JOIN [dbo].[Templates] [TMP]
ON [TMP].[WKCODE] = [TAC].[WKTCODE]
ON [TAC].[ACTIONCODE] = [DIA].[ACTIONCODE]
LEFT OUTER JOIN [dbo].[Undertakings] [UND]
ON [UND].[ActionID] = [DIA].[ACTIONID]
AND [UND].[ActionID] <> 0
AND [UND].[ActionID] IS NOT NULL
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN 'N'
ELSE 'Y' END AS [HasAttachments]
FROM [dbo].[DiaryAttachments] [DAT]
WHERE [DAT].[DiaryID] = [DIA].[ACTIONID]) [HAT]
WHERE CASE WHEN @PageNumber = 0
THEN 0
WHEN [FND].[ID] <= (@PageNumber - 1) * @PageSize
THEN 1
WHEN [FND].[ID] > @PageNumber * @PageSize
THEN 1
ELSE 0 END = 0
ORDER BY [FND].[id]
End
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchDiaryDelegations'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchDiaryDelegations]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchDiaryDelegations]
(@ACTIONID INT,
@ASSIGNNO INT,
@STATUS INT)
/*******************************************************************************************************
* This procedure is used load the data for TaskAddAction page Delegation Grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchDiaryDelegations] *
* Copied from : [dbo].[ky_NETCCFetchDiaryDelegations] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
DECLARE @BY VARCHAR(100)
DECLARE @FOR VARCHAR(100)
IF(@STATUS = 2)
BEGIN
SELECT D.[ACTIONID] AS [ACTIONID],
RTRIM(ISNULL(D.[HANDLER], '')) AS [HANDLER],
RTRIM(ISNULL(D.[TEAM], '')) AS [TEAM],
D.[DATE] AS [DATE],
CONVERT(VARCHAR(5),
[dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[TIME]),
108) AS [TIME],
D.[DATER] AS [DATER],
CASE WHEN D.[TIMER] IS NULL
THEN ''
ELSE CONVERT(VARCHAR(5),
[dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[TIMER]),
108) END AS [TIMER],
D.[DUEDATE] AS [DUEDATE],
CONVERT(VARCHAR(5),
[dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[DUETIME]),
108) AS [DUETIME],
RTRIM(ISNULL(D.[REVIEW], '')) AS [REVIEW],
RTRIM(ISNULL(D.[STATUS], 0)) AS [STATUS],
RTRIM(ISNULL(D.[OWNER], 'N')) AS [OWNER],
RTRIM(ISNULL(D.[DELEGATE], '')) AS [DELEGATE],
RTRIM(ISNULL(D.[DELEGATESTATUS], 0)) AS [DELEGATESTATUS],
RTRIM(ISNULL(D.[ACTIONTYPE], '')) AS [ACTIONTYPE],
RTRIM(ISNULL(D.[ASSIGNNO], 0)) AS [ASSIGNNO],
RTRIM(ISNULL(D.[FROMHANDLER], '')) AS [FROMHANDLER],
RTRIM(ISNULL(D.[RETURNEDBY], '')) AS [RETURNEDBY],
RTRIM(ISNULL(D.[DELTYPE], '')) AS [DELTYPE],
CASE WHEN ISNULL(D.[DelType], '') = 'Created'
THEN RTRIM(H.[NAME]) + '(' + RTRIM(ISNULL(D.[HANDLER], '')) + ')'
WHEN ISNULL(D.[ReturnedBy], '') = ''
THEN RTRIM(GH.[NAME]) + '(' + RTRIM(ISNULL(D.[FromHandler], '')) + ')'
ELSE RTRIM(FH.[NAME]) + '(' + RTRIM(ISNULL(D.[ReturnedBy], '')) + ')' END AS [BY],
RTRIM(ISNULL(H.[NAME], '')) + '(' + RTRIM(D.[HANDLER]) + ')' AS [FOR]
FROM dbo.[DiaryDelegations] D
LEFT OUTER JOIN [dbo].[Handlers] H
ON H.[CODE] = D.[HANDLER]
LEFT OUTER JOIN [dbo].[Handlers] FH
ON FH.[CODE] = D.[ReturnedBy]
LEFT OUTER JOIN [dbo].[Handlers] GH
ON GH.[CODE] = D.[FromHandler]
WHERE D.[ACTIONID] = @ACTIONID
ORDER BY D.[AssignNo] DESC
END
ELSE
BEGIN
SELECT D.[ACTIONID] AS [ACTIONID],
RTRIM(ISNULL(D.[HANDLER], '')) AS [HANDLER],
RTRIM(ISNULL(D.[TEAM], '')) AS [TEAM],
D.[DATE] AS [DATE],
CONVERT(VARCHAR(5),
[dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[TIME]),
108) AS [TIME],
D.[DATER] AS [DATER],
CASE WHEN D.[TIMER] IS NULL
THEN ''
ELSE CONVERT(VARCHAR(5),
[dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[TIMER]),
108) END AS [TIMER],
D.[DUEDATE] AS [DUEDATE],
CONVERT(VARCHAR(5),
[dbo].[ky_ConvertDateAndClarionTimeToDateTime]('19000101', D.[DUETIME]),
108) AS [DUETIME],
RTRIM(ISNULL(D.[REVIEW], '')) AS [REVIEW],
RTRIM(ISNULL(D.[STATUS], 0)) AS [STATUS],
RTRIM(ISNULL(D.[OWNER], 'N')) AS [OWNER],
RTRIM(ISNULL(D.[DELEGATE], '')) AS [DELEGATE],
RTRIM(ISNULL(D.[DELEGATESTATUS], 0)) AS [DELEGATESTATUS],
RTRIM(ISNULL(D.[ACTIONTYPE], '')) AS [ACTIONTYPE],
RTRIM(ISNULL(D.[ASSIGNNO], 0)) AS [ASSIGNNO],
RTRIM(ISNULL(D.[FROMHANDLER], '')) AS [FROMHANDLER],
RTRIM(ISNULL(D.[RETURNEDBY], '')) AS [RETURNEDBY],
RTRIM(ISNULL(D.[DELTYPE], '')) AS [DELTYPE],
CASE WHEN ISNULL(D.[DelType], '') = 'Created'
THEN RTRIM(H.[NAME]) + '(' + RTRIM(ISNULL(D.[HANDLER], '')) + ')'
WHEN ISNULL(D.[ReturnedBy], '') = ''
THEN RTRIM(GH.[NAME]) + '(' + RTRIM(ISNULL(D.[FromHandler], '')) + ')'
ELSE RTRIM(FH.[NAME]) + '(' + RTRIM(ISNULL(D.[ReturnedBy], '')) + ')' END AS [BY],
RTRIM(ISNULL(H.[NAME], '')) + '(' + RTRIM(D.[HANDLER]) + ')' AS [FOR]
FROM dbo.[DiaryDelegations] D
LEFT OUTER JOIN [dbo].[Handlers] H
ON H.[CODE] = D.[HANDLER]
LEFT OUTER JOIN [dbo].[Handlers] FH
ON FH.[CODE] = D.[ReturnedBy]
LEFT OUTER JOIN [dbo].[Handlers] GH
ON GH.[CODE] = D.[FromHandler]
WHERE D.[AssignNo] = @ASSIGNNO
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchDocumentPropertiesForEdit',N'P')IS NOT NULL
DROP PROCEDURE KAAS_FetchDocumentPropertiesForEdit
GO
CREATE PROCEDURE [dbo].[KAAS_FetchDocumentPropertiesForEdit]
(
@TRV VARCHAR(10)
)
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [KAAS_FetchDocumentPropertiesForEdit] *
* Copied from : [ky_NETSPListDocumentClasses], [ky_NETSPGetDocProperties] *
* *
* Modification History: *
* 2019-05-15 Arun Created, merged from two stored procedure to fetch document classes and*
* document properties *
*******************************************************************************************************/
BEGIN
--To List Document Class
SELECT RTRIM(ISNULL(DCL.[CLASSCODE], '')) AS [CLASSCODE],
RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) AS [CLASSDESCRIPTION],
CASE WHEN RTRIM(ISNULL(DCL.[RETIRED], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired]
FROM [dbo].[DocumentClasses] DCL
ORDER BY RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], ''))
--To List the File information based on Track Reference Number
DECLARE @TR INT
BEGIN TRY
SET @TR = CONVERT(INT, @TRV)
END TRY
BEGIN CATCH
SET @TR = 0
END CATCH
SELECT [DAT].[DATEENTERED] AS [DateEntered],
RTRIM(ISNULL(HANE.[NAME], '')) AS [EnteredBy],
[DAT].[LASTACCESSDATE] AS [LastAccessedDate],
RTRIM(ISNULL([HANA].[NAME], '')) AS [LastAccessedBy],
CASE WHEN [UNC].[UNC] IS NULL
THEN RTRIM(ISNULL([DAT].[FILEPATH], ''))
ELSE [UNC].[UNC]
+ SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')),
3,
LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [FILEPATH],
RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE]
FROM [dbo].[DiaryAttachments] [DAT]
LEFT OUTER JOIN [dbo].[Handlers] [HANE]
ON HANE.[CODE] = [DAT].[ENTEREDBY]
LEFT OUTER JOIN [dbo].[Handlers] [HANA]
ON [HANA].[CODE] = [DAT].[LASTACCESSBY]
LEFT OUTER JOIN [dbo].[UNCAlias] [UNC]
ON SUBSTRING([DAT].[FilePath], 2, 1) = ':'
AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1)
LEFT OUTER JOIN [dbo].[diary] [DIA]
ON [DIA].[ACTIONID] = [DAT].[DiaryID]
WHERE [DAT].[TRACKREFERENCE] = @TR
AND [DAT].[TrackReference] <> 0
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchEditDataUndertakings'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchEditDataUndertakings]
END
GO
CREATE PROCEDURE
[KAAS_FetchEditDataUndertakings]
(@CaseCode VARCHAR(20),
@RecordId INT)
AS
/*******************************************************************************************************
* This procedure is used to get the values for editing the Undertakings. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchEditDataUndertakings] *
* Copied from : [dbo].[ky_NETFetchEditDataUndertakings] *
* *
* Modification History : *
* 2019-06-24 Vinodhan K Created *
* 2019-08-19 Dheepin Vijith K Modified - [TYPE] & [CommercialOrNon] are retrieved directly *
* unlike using case previously . *
********************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT RTRIM(ISNULL(UND.[MATTER], '')) AS [MATTER],
UND.[SEQ] AS [SEQ],
CONVERT(NVARCHAR(20), UND.[DATE], 112) AS [DATE],
CASE WHEN UND.[DISCHARGEDATE] IS NULL
THEN ''
ELSE CONVERT(VARCHAR(20),
UND.[DISCHARGEDATE],
112) END AS [DISCHARGEDATE],
RTRIM(ISNULL(UND.[TYPE], '')) AS [TYPE],
RTRIM(ISNULL(UND.[CommercialOrNon], '')) AS [CommercialOrNon],
RTRIM(ISNULL(UND.[GivenOrReceived], '')) AS [GivenOrReceived],
RTRIM(ISNULL(UND.[DESCRIPTION], '')) AS [DESCRIPTION],
RTRIM(ISNULL(UND.[DischargeDescription], '')) AS [DisDescription],
RTRIM(ISNULL(UND.[WHO], '')) AS [WHO],
UND.[VALUE] AS [VALUE],
UND.[RECORDID] AS [RECORDID],
ISNULL(UND.[ACTIONID], 0) AS [ACTIONID],
RTRIM(ISNULL(UND.[AUTHORISEDBYFE], '')) AS [AUTHORISEDBYFE],
RTRIM(ISNULL(UNS.[StatusDesc], '')) AS [STATUS],
RTRIM(ISNULL(UND.[UndertakingTo], '')) AS [UndertakingTo],
RTRIM(ISNULL(UND.[DealingNumber], '')) AS [DealingNumber],
RTRIM(ISNULL(UND.[Notes], '')) AS [Notes],
UNS.[RecordID] AS StatusID,
RTRIM(ISNULL(UND.[Category], '')) AS [Category],
ISNULL(UND.[IsConditional], CONVERT(BIT, 0)) AS [IsConditional],
RTRIM(ISNULL(UND.[Condition], '')) AS [Condition],
ISNULL(UNS.Retired,'N') AS [Retired],
UND.[NeedsAttention] AS [NeedsAttention],
ISNULL(UND.[AddCommentLedger],1) AS [AddCommentLedger]
FROM [dbo].[Undertakings] UND
LEFT OUTER JOIN [dbo].[UndertakingStatus] UNS
ON UNS.[RecordID] = UND.[STATUS]
WHERE UND.[MATTER] = @CaseCode
AND UND.[RECORDID] = @RecordId
ORDER BY UND.[MATTER] DESC,
UND.[SEQ] DESC,
UND.[DATE] DESC,
UND.[RECORDID] DESC
DECLARE @ACTIONIDORG BIGINT
SELECT @ACTIONIDORG = UND.[ActionID]
FROM [dbo].[Undertakings] UND
WHERE UND.[RECORDID] = @RecordId
SELECT TOP 1
CONVERT(VARCHAR(20),DEL.[DATE],112) AS [Date]
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ActionID] = @ACTIONIDORG
ORDER BY DEL.[AssignNo] DESC
SELECT UNL.[UndertakingLogID],
UNL.[UndertakingID],
UNL.[FieldChanges],
UNL.[FromValue],
UNL.[ToValue],
UNL.[ByWho],
UNL.[ModifiedDate]
FROM [dbo].[UndertakingLog] UNL
WHERE UNL.[UndertakingID] = @ACTIONIDORG
ORDER BY UNL.[ModifiedDate] DESC
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_FetchEFTDetails]',N'P')IS NOT NULL
BEGIN
DROP PROCEDURE [KAAS_FetchEFTDetails]
END
GO
CREATE PROCEDURE [KAAS_FetchEFTDetails]
/*********************************************************************************************
*
* Description: This procedure is used to FETCH EFT details
*
* Stored Procedure Name : KAAS_FetchEFTDetails
* Copied From : ky_NETFetchEFTDetails2
*
* Modification History:
* 2017-10-03 John Created v2, added EFT Generator Location
* 2019-08-06 Vinodhan Created KAAS_FetchEFTDetails
*
*********************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
SELECT ISNULL(EFT.[EFTYN], 'N') AS [EFTYN],
ISNULL(EFT.[EFTLimit], '0.00') AS [EFTLimit],
ISNULL(EFT.[EFTTransactionLimit], '0') AS [EFTTransactionLimit],
ISNULL(EFT.[BankFileName], '') AS [BankFileName],
ISNULL(EFT.[Location], '') AS [Location],
ISNULL(EFT.[FileNumber], '0') AS [FileNumber],
EFT.[RecordID] AS [RecordID],
ISNULL(EFTGL.[KeyValue], '') AS [EFTGeneratorLocation]
FROM [dbo].[EFTDetails] AS EFT
OUTER APPLY (SELECT TOP 1 [SET].[KeyValue]
FROM [dbo].[Settings] AS [SET]
WHERE [SET].[KeyName] = 'EFTGeneratorLocation') AS EFTGL
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchHandler'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchHandler]
END
GO
CREATE PROCEDURE
[KAAS_FetchHandler]
(@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This procedure used to fetch only active handler with out team and retired handler. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchHandler] *
* Copied from : [dbo].[ky_NETFetchHandler] *
* *
* Modification History: *
* 2019-07-05 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT RTRIM([HAN].[TEAMCODE]) AS [TEAMCODE],
RTRIM([HAN].[CODE]) AS [Code],
RTRIM([HAN].[NAME]) AS [Name],
RTRIM(ISNULL([HAN].[TEAM], '')) AS [Team],
[HAN].[RATE] AS [Rate],
CASE WHEN ISNULL([HAN].[RETIRED], 'N') = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired],
RTRIM(ISNULL([HAN].[EMAIL], '')) AS [Email],
RTRIM(ISNULL([HAN].[SIGNATURE], '')) AS [Signature]
FROM [dbo].[Handlers] [HAN]
WHERE ( ISNULL([HAN].[Retired], 'N') <> 'Y'
OR [HAN].[CODE] = @Code)
AND ISNULL([HAN].[TEAMCODE], 'N') <> 'Y'
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_FetchIntellisense]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_FetchIntellisense]
GO
CREATE PROCEDURE [KAAS_FetchIntellisense]
(
@Handler VARCHAR(6)
)
AS
/*******************************************************************************************************
* This procedure is used To fetch the Intellisense. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchIntellisense] *
* Copied from : [dbo].[ky_NETFetchIntellisense] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
RTRIM(Id) AS Id,
RTRIM(Handler) AS Handler,
RTRIM(Narrative) AS Narrative
FROM
Intellisense
WHERE
Handler = @Handler
ORDER by Narrative
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchLinkedMatters',N'P')IS NOT NULL
DROP PROCEDURE KAAS_FetchLinkedMatters
GO
CREATE PROCEDURE KAAS_FetchLinkedMatters
(
@MatterCode NVARCHAR(20)--@MatterCode MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters]
)
AS
/*
Created By : Arun V
Date : 29Oct2014
Description : This procedure is used to FETCH links cases based on matter code
Modification History
-----------------------------------------------------
Date | Modified By | Description
-----------------------------------------------------
2019-05-23 Arun V Copied from ky_NETFetchLinkedMatters
*/
BEGIN
SET NOCOUNT ON
SELECT l.RecordId, m.Code AS CaseCode, m.FECode AS FeeEarner,c.Name AS Name, m.[Description], l.Relationship
FROM LinkedMatters L
LEFT JOIN matters M ON m.Code = L.LinkedMatter
LEFT JOIN Contacts C ON c.Code = m.ClientCode
WHERE l.PrimeMatter = @MatterCode
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_FetchLoadUndertakings]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_FetchLoadUndertakings]
GO
CREATE PROCEDURE
[KAAS_FetchLoadUndertakings]
(@CaseCode VARCHAR(20),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
*This procedure is used load the data for add Undertakings page. *
* 1. Fee Earner. *
* 2. Case Associate type list box *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchLoadUndertakings] *
* Copied from : [dbo].[ky_NETFetchLoadUndertakings] *
* *
* Modification History : *
* 2019-06-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @FeeEarner VARCHAR(10)
DECLARE @UndertakingTo VARCHAR(10)
SET @FeeEarner = (SELECT
U.AuthorisedByFE
FROM
Undertakings U
LEFT JOIN FeeEarnerCodes F
ON U.AuthorisedByFE = F.Code
WHERE
U.RECORDID = CONVERT(INT,@Code))
SET @UndertakingTo = (SELECT
ISNULL(U.UndertakingTo,'')
FROM
Undertakings U
WHERE
U.RECORDID = CONVERT(INT,@Code))
SELECT
RTRIM(Code) AS Code,
RTRIM(Name) AS FeeEarners
FROM
FeeEarnerCodes
WHERE
REPLACE(ISNULL(Retired,'N'),' ','N') <> 'Y'
OR Code = @FeeEarner
SELECT
RTRIM(D.CODE) AS CODE,
RTRIM(C.[DESCRIPTION]) AS [DESCRIPTION],
CASE
WHEN RTRIM(D.COMPANY) <> ''
THEN RTRIM(D.Name) + ' ('+ RTRIM(D.COMPANY) +')'
ELSE RTRIM(D.Name)
END AS NMCMP
FROM
CaseContacts A
LEFT OUTER JOIN CaseAssociatesContacts B
ON A.ASSIGNEDCONTACT= B.KEYID
LEFT OUTER JOIN AssociateTypes C
ON A.CONTYPE= C.CODE
LEFT OUTER JOIN CaseAssociatesNames D
ON A.NAMECODE= D.CODE
WHERE
UPPER(A.CASECODE) = UPPER(RTRIM(@CaseCode))
AND A.NAMECODE <> ''
AND (ISNULL(A.Retired,'') <> 'Y'
OR A.NAMECODE = CASE @UndertakingTo WHEN '' THEN A.NAMECODE ELSE @UndertakingTo END)
ORDER BY A.CASECODE,
A.CONTYPE,
A.CONNUM
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchMaritalStatus',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchMaritalStatus]
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchMaritalStatus]
(@AssciateCode VARCHAR(10) = '' )
AS
/*******************************************************************************************************
* This procedure is used to FETCH marital status *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchMaritalStatus] *
* Copied from : [dbo].[ky_NETCONFetchMaritalStatus] *
* *
* Modification History : *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
RTRIM([CDECODE]) AS Code,
RTRIM(ISNULL([CDEDESC],'')) AS [MaritialStatus]
FROM
[MiscCodes]
WHERE
[CDETYPE] = 'MRS'
AND [CDECODE] <> ''
AND (ISNULL([Retired],'N') = 'N'
OR [CDECODE] = @AssciateCode)
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_FetchMatterChargeOutRates]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_FetchMatterChargeOutRates]
GO
CREATE PROCEDURE [KAAS_FetchMatterChargeOutRates]
(
@MatterCode VARCHAR(20),
@IncludeRetired CHAR(1) = 'Y'
)
AS
/*******************************************************************************************************
* This procedure is used FETCH matter charge out rates. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchMatterChargeOutRates] *
* Copied from : [dbo].[ky_NETMATFetchMatterChargeOutRates] *
* *
* Modification History : *
* 2019-05-23 Vinodhan K Created *
* 2019-07-11 Vinodhan K Modified - Added [OldRate] field *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
M.RECORDID AS RECORDID,
RTRIM(M.FECODE) AS FECODE,
ISNULL(M.RATE,0) AS RATE,
ISNULL(M.LastRate,'0.0') AS OldRate,
M.EffectiveDate AS EFFECTIVEDATE,
COALESCE(H.Name, Hg.Name,m.fecode) AS FeeEarnerName,
(CASE
WHEN ISNULL(H.Retired,'N') = 'Y'
THEN ISNULL(H.Retired,'N')
ELSE ISNULL(Hg.RETIRED,'N')
END) AS IsRetired
FROM
MatterChargeOutRates M
LEFT JOIN Handlers H on H.Code = m.FeCode
LEFT JOIN HandlerChargeGroups Hg on Hg.Code = m.FeCode
WHERE
M.MatterCode = @MatterCode AND
(@IncludeRetired = 'Y' OR ISNULL(H.Retired, 'N') <> 'Y' or ISNULL(Hg.Retired, 'N') <> 'Y')
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchMatterEstimateFeeLogs',N'P')IS NOT NULL
DROP PROCEDURE KAAS_FetchMatterEstimateFeeLogs
GO
CREATE PROCEDURE KAAS_FetchMatterEstimateFeeLogs
(
@MatterCode VARCHAR(20)
)
AS
/*******************************************************************************************************
* This procedure is used to fetch the matter estimate fees logs based on matters *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchMatterEstimateFeeLogs] *
* Copied from : [dbo].[Ky_NETFetchMatterEstimateFeeLogs] *
* *
* Modification History : *
* 2019-05-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
ML.[Log],
ML.[MatterCode],
ML.[Date],
ML.[Who],
ML.[EstimateFee],
M.[Description]
FROM
MatterEstimateFeeLogs ML
LEFT JOIN matters M ON M.Code = ML.MatterCode
WHERE
ML.[MatterCode] = (CASE WHEN @MatterCode<>'' THEN @MatterCode ELSE ML.[MatterCode] END)
ORDER BY ML.[Date]
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchMattersEstimatedFee'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchMattersEstimatedFee]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchMattersEstimatedFee]
(
@MatterCode VARCHAR(20))
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM Matters Estimated Fees table *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchMattersEstimatedFee] *
* Copied from : [dbo].[ky_NETFetchMattersEstimatedFee] *
* *
* Modification History : *
* 2019-05-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT
RTRIM(ISNULL(ME.RecordID , 0)) AS ID,
RTRIM(ISNULL(ME.MatterCode , '')) AS [MatterCode],
ME.EstimatedBillDate AS EstimatedBillDate,
ISNULL(ME.EstimatedFeesAmt,0) AS EstimatedFeesAmt
FROM
MattersEstimatedFees ME
WHERE
RTRIM(ME.MatterCode) = RTRIM(@MatterCode)
END
GO
IF OBJECT_ID(N'KAAS_FetchMinutesPerUnit',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchMinutesPerUnit]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchMinutesPerUnit]
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchMinutesPerUnit] *
* Copied from : [dbo].[ky_NETDashboardCaseAlert] *
* *
* Modification History: *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @TUTNUMVALUE DECIMAL(17, 2)
SELECT @TUTNUMVALUE = CTN.[NumValue]
FROM [dbo].[CtrlNum] CTN
WHERE CTN.[Code] = 'TimeUnit'
SET @TUTNUMVALUE = CASE
WHEN ISNULL(@TUTNUMVALUE, 0) = 0
THEN 6
ELSE @TUTNUMVALUE
END
SELECT @TUTNUMVALUE AS [MinutesPerUnit]
END
GO
IF OBJECT_ID(N'KAAS_FetchOfficersList',N'P')IS NOT NULL
DROP PROCEDURE KAAS_FetchOfficersList
GO
CREATE PROCEDURE KAAS_FetchOfficersList
(
@ClientCode VARCHAR(15)
)
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_FetchOfficersList] *
* Copied from : [dbo].[ky_NETFetchOfficersList] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT CONTACTOFFICER, NAME, COSECRETARY, DATEAPPOINTED, DATERESIGNED, RECORDID
FROM Officers
WHERE CONTACTCODE = @ClientCode
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchOpenedMatterList', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchOpenedMatterList]
END
GO
CREATE PROCEDURE [dbo].[KAAS_FetchOpenedMatterList]
(@Search NVARCHAR(MAX))
AS
/*******************************************************************************************************
* *
* Stored Procedure Name: [dbo].[KAAS_FetchOpenedMatterList] *
* Copied from : [dbo].[ky_NETSPXMLMatterSearch2] *
* *
* Modification History: *
* 2019-04-01 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @closed NCHAR(1)
DECLARE @orderby NVARCHAR(50)
DECLARE @order NVARCHAR(4)
DECLARE @howmany INT
DECLARE @handler NVARCHAR(10)
DECLARE @which INT
DECLARE @BitWiseID BIGINT
DECLARE @searchtext VARCHAR(MAX)
DECLARE @searchonlycode VARCHAR(3)
DECLARE @departmentdesc VARCHAR(50)
DECLARE @department VARCHAR(5)
DECLARE @worktypedesc VARCHAR(50)
DECLARE @worktype VARCHAR(5)
DECLARE @filecolourdesc VARCHAR(20)
DECLARE @filecolour VARCHAR(3)
DECLARE @feecode VARCHAR(10)
DECLARE @includename BIT
DECLARE @includedescription BIT
DECLARE @includeaddress BIT
DECLARE @includeemail BIT
DECLARE @includecode BIT
DECLARE @includeoldref BIT
DECLARE @includeuser1 BIT
DECLARE @andorname VARCHAR(3)
DECLARE @andornamevalue VARCHAR(200)
DECLARE @andordescription VARCHAR(3)
DECLARE @andordescriptionvalue VARCHAR(200)
DECLARE @andoraddress VARCHAR(3)
DECLARE @andoraddressvalue VARCHAR(200)
DECLARE @andorcode VARCHAR(3)
DECLARE @andorcodevalue VARCHAR(200)
DECLARE @andorfeecode VARCHAR(3)
DECLARE @andorfeecodevalue VARCHAR(200)
DECLARE @andoroldref VARCHAR(3)
DECLARE @andoroldrefvalue VARCHAR(200)
DECLARE @andordept VARCHAR(3)
DECLARE @andordeptvalue VARCHAR(200)
DECLARE @andoruser1 VARCHAR(3)
DECLARE @andoruser1value VARCHAR(200)
DECLARE @andoruser2 VARCHAR(3)
DECLARE @andoruser2value VARCHAR(200)
DECLARE @andoruser3 VARCHAR(3)
DECLARE @andoruser3value VARCHAR(200)
DECLARE @andoryourref VARCHAR(3)
DECLARE @andoryourrefvalue VARCHAR(200)
DECLARE @andorwtype VARCHAR(3)
DECLARE @andorwtypevalue VARCHAR(200)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @Search
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @closed = CASE ISNULL(SRC.[closed], N'N')
WHEN N'Y' THEN N'Y'
WHEN N'B' THEN N'B'
ELSE N'N' END,
@orderby = ISNULL(SRC.[orderby], N''),
@order = CASE ISNULL(SRC.[order], N'DESC') WHEN N'DESC'
THEN N'DESC'
ELSE N'ASC' END,
@howmany = ISNULL(SRC.[howmany], 500),
@handler = ISNULL(SRC.[handler], N''),
@which = CASE ISNULL(SRC.[which], 0)
WHEN 1 THEN 1 --My Matters
WHEN 2 THEN 2 --Recent Matters
ELSE 0 END, --All Matters
@searchtext = ISNULL(SRC.[search], ''),
@searchonlycode = ISNULL(SRC.[searchonlycode], ''),
@departmentdesc = ISNULL(SRC.[dept], ''),
@worktypedesc = ISNULL(SRC.[wtype], ''),
@filecolourdesc = ISNULL(SRC.[colour], ''),
@feecode = ISNULL(SRC.[feecodefilter], ''),
@includeaddress = ISNULL(SRC.[includeaddress], 0),
@includeemail = ISNULL(SRC.[includeemail], 0),
@includecode = ISNULL(SRC.[includecode], 0),
@includedescription = ISNULL(SRC.[includedescription], 0),
@includename = ISNULL(SRC.[includename], 0),
@includeoldref = ISNULL(SRC.[includeoldref], 0),
@includeuser1 = ISNULL(SRC.[includeuser1], 0),
@andorname = ISNULL(SRC.[andorname], ''),
@andornamevalue = ISNULL(SRC.[andornamevalue], ''),
@andordescription = ISNULL(SRC.[andordescription], ''),
@andordescriptionvalue = ISNULL(SRC.[andordescriptionvalue], ''),
@andoraddress = ISNULL(SRC.[andoraddress], ''),
@andoraddressvalue = ISNULL(SRC.[andoraddressvalue], ''),
@andorcode = ISNULL(SRC.[andorcode], ''),
@andorcodevalue = ISNULL(SRC.[andorcodevalue], ''),
@andorfeecode = ISNULL(SRC.[andorfeecode], ''),
@andorfeecodevalue = ISNULL(SRC.[andorfeecodevalue], ''),
@andoroldref = ISNULL(SRC.[andoroldref], ''),
@andoroldrefvalue = ISNULL(SRC.[andoroldrefvalue], ''),
@andordept = ISNULL(SRC.[andordept], ''),
@andordeptvalue = ISNULL(SRC.[andordeptvalue], ''),
@andoruser1 = ISNULL(SRC.[andoruser1], ''),
@andoruser1value = ISNULL(SRC.[andoruser1value], ''),
@andoruser2 = ISNULL(SRC.[andoruser2], ''),
@andoruser2value = ISNULL(SRC.[andoruser2value], ''),
@andoruser3 = ISNULL(SRC.[andoruser3], ''),
@andoruser3value = ISNULL(SRC.[andoruser3value], ''),
@andoryourref = ISNULL(SRC.[andoryourref], ''),
@andoryourrefvalue = ISNULL(SRC.[andoryourrefvalue], ''),
@andorwtype = ISNULL(SRC.[andorwtype], ''),
@andorwtypevalue = ISNULL(SRC.[andorwtypevalue], '')
FROM OPENXML(@iSL, N'search')
WITH ([closed] NCHAR(1) '@closed',
[orderby] NVARCHAR(50) '@orderby',
[order] NVARCHAR(4) '@order',
[howmany] INT '@howmany',
[handler] NVARCHAR(10) '@handler',
[which] INT '@which',
[search] VARCHAR(MAX) '@search',
[searchonlycode] VARCHAR(3) '@searchonlycode',
[dept] VARCHAR(50) '@departmentfilter',
[wtype] VARCHAR(50) '@worktypefilter',
[colour] VARCHAR(20) '@filecolourfilter',
[feecodefilter] VARCHAR(10) '@feecodefilter',
[includeaddress] BIT 'include/includefield[@name="address"]',
[includecode] BIT 'include/includefield[@name="code"]',
[includedescription] BIT 'include/includefield[@name="description"]',
[includename] BIT 'include/includefield[@name="name"]',
[includeoldref] BIT 'include/includefield[@name="oldref"]',
[includeuser1] BIT 'include/includefield[@name="user1"]',
[includeemail] BIT 'include/includefield[@name="email"]',
[andorname] VARCHAR(3) 'andor/andorfield[@name="name"]/@andor',
[andornamevalue] VARCHAR(100) 'andor/andorfield[@name="name"]/@search',
[andordescription] VARCHAR(3) 'andor/andorfield[@name="description"]/@andor',
[andordescriptionvalue] VARCHAR(100) 'andor/andorfield[@name="description"]/@search',
[andoraddress] VARCHAR(3) 'andor/andorfield[@name="address"]/@andor',
[andoraddressvalue] VARCHAR(100) 'andor/andorfield[@name="address"]/@search',
[andorcode] VARCHAR(3) 'andor/andorfield[@name="code"]/@andor',
[andorcodevalue] VARCHAR(100) 'andor/andorfield[@name="code"]/@search',
[andorfeecode] VARCHAR(3) 'andor/andorfield[@name="feecode"]/@andor',
[andorfeecodevalue] VARCHAR(100) 'andor/andorfield[@name="feecode"]/@search',
[andoroldref] VARCHAR(3) 'andor/andorfield[@name="oldref"]/@andor',
[andoroldrefvalue] VARCHAR(100) 'andor/andorfield[@name="oldref"]/@search',
[andordept] VARCHAR(3) 'andor/andorfield[@name="dept"]/@andor',
[andordeptvalue] VARCHAR(100) 'andor/andorfield[@name="dept"]/@search',
[andoruser1] VARCHAR(3) 'andor/andorfield[@name="user1"]/@andor',
[andoruser1value] VARCHAR(100) 'andor/andorfield[@name="user1"]/@search',
[andoruser2] VARCHAR(3) 'andor/andorfield[@name="user2"]/@andor',
[andoruser2value] VARCHAR(100) 'andor/andorfield[@name="user2"]/@search',
[andoruser3] VARCHAR(3) 'andor/andorfield[@name="user3"]/@andor',
[andoruser3value] VARCHAR(100) 'andor/andorfield[@name="user3"]/@search',
[andoryourref] VARCHAR(3) 'andor/andorfield[@name="yourref"]/@andor',
[andoryourrefvalue] VARCHAR(100) 'andor/andorfield[@name="yourref"]/@search',
[andorwtype] VARCHAR(3) 'andor/andorfield[@name="wtype"]/@andor',
[andorwtypevalue] VARCHAR(100) 'andor/andorfield[@name="wtype"]/@search') SRC
IF @filecolourdesc <> ''
BEGIN
SELECT @filecolour = FC.[COLOURCODE]
FROM [dbo].[FileColours] FC WITH (NOLOCK)
WHERE FC.[COLOURDESC] = @filecolourdesc
END
SET @filecolour = ISNULL(@filecolour, '')
IF @departmentdesc <> ''
BEGIN
SELECT @department = DP.[CODE]
FROM [dbo].[Departments] DP WITH (NOLOCK)
WHERE DP.[DESCRIPTION] = @departmentdesc
END
SET @department = ISNULL(@department, '')
IF @worktypedesc <> ''
BEGIN
IF @worktypedesc LIKE 'Unknown Worktype: %'
BEGIN
SELECT @worktype = WT.[CODE]
FROM [dbo].[WorkTypes] WT WITH (NOLOCK)
WHERE 'Unknown Worktype: ' + WT.[CODE] = @worktypedesc
OR WT.[DESC] = @worktypedesc
END
ELSE
BEGIN
SELECT @worktype = WT.[CODE]
FROM [dbo].[WorkTypes] WT WITH (NOLOCK)
WHERE WT.[DESC] = @worktypedesc
END
END
SET @worktype = ISNULL(@worktype, '')
SET @feecode = ISNULL(@feecode, '')
EXEC sp_xml_removedocument @iSL
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @HasWhere BIT
SET @HasWhere = 0
SET @handler = CASE WHEN RTRIM(ISNULL(@handler, '')) = '' THEN 'ADM' ELSE RTRIM(@handler) END
SELECT @BitWiseID = HNG.[BitWiseID]
FROM HandlerNETGroupMembership HNG WITH (NOLOCK)
WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler)
SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@handler, ''))))
IF (@handler = 'ADM')
BEGIN
SET @BitWiseID = CONVERT(BIGINT, -1)
END
SET @NCOMMAND = N'
--SELECT ''How Many: '' + CONVERT(VARCHAR(10), @HowMany)
--SELECT ''Handler: '' + @Handler
--SELECT ''BitWise ID: '' + CONVERT(VARCHAR(10), @BitWiseID)
DECLARE @Result TABLE
([id] INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
[Code] VARCHAR(20) NOT NULL,
[Name] VARCHAR(256) NOT NULL,
[Description] VARCHAR(200) NOT NULL)
INSERT
INTO @Result
([Code],
[Name],
[Description])
SELECT
SM.[Code] AS [Code],
SM.[Name] AS [Name],
SM.[Description] AS [Description]
FROM [dbo].[SearchMatters] SM WITH (NOLOCK)
CROSS APPLY (SELECT SUBSTRING(CONVERT(VARCHAR, DATEADD(minute, ISNULL(SUM(ISNULL(TDB.[time], 0)), 0), ''19000101''), 108), 1, 5) AS [TOTALTIME]
FROM [dbo].[TimeDayBook] TDB WITH (NOLOCK)
WHERE TDB.[FeeEarn] = @Handler
AND TDB.[matter] = SM.[code]) TTT'
SET @NCOMMAND = @NCOMMAND + N'
LEFT OUTER JOIN [dbo].[RecentMatterList] RML WITH (NOLOCK)
ON RML.[FEE] = @handler
AND RML.[MATTER] = SM.[Code]'
IF (@BitWiseID = 0)
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
WHERE ( SM.[Privileges] = 0
OR SM.[Privileges] = -1)'
END
ELSE IF (@BitWiseID = -1)
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
WHERE 1 = 1'
END
ELSE
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
WHERE SM.[Privileges] & @BitWiseID <> 0'
END
IF (@which = 1)
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FECode] = @handler'
END
IF (@closed = 'N')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Closed] = 0'
END
IF (@closed = 'Y')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Closed] = 1'
END
IF (@worktype <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[WType] = @WorkType'
END
IF (@department <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Dept] = @department'
END
IF (@filecolour <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FileColour] = @filecolour'
END
IF (@feecode <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FECode] = @feecode'
END
DECLARE @SearchIncludes NVARCHAR(MAX)
SET @SearchIncludes = N''
IF (@searchtext <> '')
BEGIN
IF SUBSTRING(@searchtext, 1, 1) <> '%'
BEGIN
SET @searchtext = '%' + @searchtext
END
IF SUBSTRING(@searchtext, LEN(@searchtext), 1) <> '%'
BEGIN
SET @searchtext = @searchtext + '%'
END
SET @searchtext = @searchtext COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF (@includeaddress = 0)
AND (@includecode = 0)
AND (@includedescription = 0)
AND (@includename = 0)
AND (@includeoldref = 0)
AND (@includeuser1 = 0)
AND (@includeemail = 0)
BEGIN
-- This is the standard call - not from Advanced Matter Search, so we search in everything
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
IF @searchonlycode <> 'yes'
BEGIN
SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext
OR SM.[Code] LIKE @searchtext
OR SM.[User1] LIKE @searchtext
OR SM.[User2] LIKE @searchtext
OR SM.[User3] LIKE @searchtext
OR SM.[OldRef] LIKE @searchtext
OR SM.[YourRef] LIKE @searchtext
OR SM.[NCName] LIKE @searchtext
OR SM.[NCAddress] LIKE @searchtext
OR SM.[Email] LIKE @searchtext
OR SM.[NCHandlerName] LIKE @searchtext
OR SM.[NCPartnerName] LIKE @searchtext
OR SM.[DeptDescription] LIKE @searchtext
OR SM.[WTypeDescription] LIKE @searchtext
OR SM.[FileColourDescription] LIKE @searchtext
OR SM.[MatterStatusDescription] LIKE @searchtext'
END
ELSE
BEGIN
SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext'
END
END
ELSE
BEGIN
IF (@includeaddress = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @searchtext'
END
IF (@includecode = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext'
END
IF (@includedescription = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext'
END
IF (@includename = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @searchtext'
END
IF (@includeoldref = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @searchtext'
END
IF (@includeuser1 = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @searchtext'
END
IF (@includeemail = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Email] LIKE @searchtext'
END
END
END
IF @andoraddress = 'OR'
BEGIN
IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%'
BEGIN
SET @andoraddressvalue = '%' + @andoraddressvalue
END
IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%'
BEGIN
SET @andoraddressvalue = @andoraddressvalue + '%'
END
SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @andoraddressvalue'
END
IF @andorcode = 'OR'
BEGIN
IF CHARINDEX('%', @andorcodevalue, 1) = 0
BEGIN
IF SUBSTRING(@andorcodevalue, 1, 1) <> '%'
BEGIN
SET @andorcodevalue = '%' + @andorcodevalue
END
IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%'
BEGIN
SET @andorcodevalue = @andorcodevalue + '%'
END
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @andorcodevalue'
END
IF @andordept = 'OR'
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Dept] = @andordeptvalue'
END
IF @andordescription = 'OR'
BEGIN
IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%'
BEGIN
SET @andordescriptionvalue = '%' + @andordescriptionvalue
END
IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%'
BEGIN
SET @andordescriptionvalue = @andordescriptionvalue + '%'
END
SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @andordescriptionvalue'
END
IF @andorfeecode = 'OR'
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[FECode] = @andorfeecodevalue'
END
IF @andorname = 'OR'
BEGIN
IF SUBSTRING(@andornamevalue, 1, 1) <> '%'
BEGIN
SET @andornamevalue = '%' + @andornamevalue
END
IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%'
BEGIN
SET @andornamevalue = @andornamevalue + '%'
END
SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @andornamevalue'
END
IF @andoroldref = 'OR'
BEGIN
IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%'
BEGIN
SET @andoroldrefvalue = '%' + @andoroldrefvalue
END
IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%'
BEGIN
SET @andoroldrefvalue = @andoroldrefvalue + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @andoroldrefvalue'
END
IF @andoruser1 = 'OR'
BEGIN
IF SUBSTRING(@andoruser1value, 1, 1) <> '%'
BEGIN
SET @andoruser1value = '%' + @andoruser1value
END
IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%'
BEGIN
SET @andoruser1value = @andoruser1value + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @andoruser1value'
END
IF @andoruser2 = 'OR'
BEGIN
IF SUBSTRING(@andoruser2value, 1, 1) <> '%'
BEGIN
SET @andoruser2value = '%' + @andoruser2value
END
IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%'
BEGIN
SET @andoruser2value = @andoruser2value + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User2] LIKE @andoruser2value'
END
IF @andoruser3 = 'OR'
BEGIN
IF SUBSTRING(@andoruser3value, 1, 1) <> '%'
BEGIN
SET @andoruser3value = '%' + @andoruser3value
END
IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%'
BEGIN
SET @andoruser3value = @andoruser3value + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User3] LIKE @andoruser3value'
END
IF @andorwtype = 'OR'
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[WType] = @andorwtypevalue'
END
IF @andoryourref = 'OR'
BEGIN
IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%'
BEGIN
SET @andoryourrefvalue = '%' + @andoryourrefvalue
END
IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%'
BEGIN
SET @andoryourrefvalue = @andoryourrefvalue + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[YourRef] LIKE @andoryourrefvalue'
END
--SELECT @SearchIncludes
IF @SearchIncludes <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND ( ' + @SearchIncludes + N')'
END
IF @andoraddress = 'AND'
BEGIN
IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%'
BEGIN
SET @andoraddressvalue = '%' + @andoraddressvalue
END
IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%'
BEGIN
SET @andoraddressvalue = @andoraddressvalue + '%'
END
SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[NCAddress] LIKE @andoraddressvalue'
END
IF @andorcode = 'AND'
BEGIN
IF SUBSTRING(@andorcodevalue, 1, 1) <> '%'
BEGIN
SET @andorcodevalue = '%' + @andorcodevalue
END
IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%'
BEGIN
SET @andorcodevalue = @andorcodevalue + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Code] LIKE @andorcodevalue'
END
IF @andordept = 'AND'
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Dept] = @andordeptvalue'
END
IF @andordescription = 'AND'
BEGIN
IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%'
BEGIN
SET @andordescriptionvalue = '%' + @andordescriptionvalue
END
IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%'
BEGIN
SET @andordescriptionvalue = @andordescriptionvalue + '%'
END
SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[NCDescription] LIKE @andordescriptionvalue'
END
IF @andorfeecode = 'AND'
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FECode] = @andorfeecodevalue'
END
IF @andorname = 'AND'
BEGIN
IF SUBSTRING(@andornamevalue, 1, 1) <> '%'
BEGIN
SET @andornamevalue = '%' + @andornamevalue
END
IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%'
BEGIN
SET @andornamevalue = @andornamevalue + '%'
END
SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[NCName] LIKE @andornamevalue'
END
IF @andoroldref = 'AND'
BEGIN
IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%'
BEGIN
SET @andoroldrefvalue = '%' + @andoroldrefvalue
END
IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%'
BEGIN
SET @andoroldrefvalue = @andoroldrefvalue + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[OldRef] LIKE @andoroldrefvalue'
END
IF @andoruser1 = 'AND'
BEGIN
IF SUBSTRING(@andoruser1value, 1, 1) <> '%'
BEGIN
SET @andoruser1value = '%' + @andoruser1value
END
IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%'
BEGIN
SET @andoruser1value = @andoruser1value + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[User1] LIKE @andoruser1value'
END
IF @andoruser2 = 'AND'
BEGIN
IF SUBSTRING(@andoruser2value, 1, 1) <> '%'
BEGIN
SET @andoruser2value = '%' + @andoruser2value
END
IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%'
BEGIN
SET @andoruser2value = @andoruser2value + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[User2] LIKE @andoruser2value'
END
IF @andoruser3 = 'AND'
BEGIN
IF SUBSTRING(@andoruser3value, 1, 1) <> '%'
BEGIN
SET @andoruser3value = '%' + @andoruser3value
END
IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%'
BEGIN
SET @andoruser3value = @andoruser3value + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[User3] LIKE @andoruser3value'
END
IF @andorwtype = 'AND'
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[WType] = @andorwtypevalue'
END
IF @andoryourref = 'AND'
BEGIN
IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%'
BEGIN
SET @andoryourrefvalue = '%' + @andoryourrefvalue
END
IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%'
BEGIN
SET @andoryourrefvalue = @andoryourrefvalue + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[YourRef] LIKE @andoryourrefvalue'
END
--SELECT @orderby, @order
SET @NCOMMAND = @NCOMMAND + N'
ORDER BY ' + CASE @orderby
WHEN N'description'
THEN N'CASE WHEN SM.[Description] = ''''
THEN 1
ELSE 0 END,
SM.[Description] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Code'
THEN N'CASE WHEN SM.[Code] = ''''
THEN 1
ELSE 0 END,
SM.[Code] ' + @order
WHEN N'Name'
THEN N'CASE WHEN SM.[Name] = ''''
THEN 1
ELSE 0 END,
SM.[Name] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Address'
THEN N'CASE WHEN SM.[Address] = ''''
THEN 1
ELSE 0 END,
SM.[Address] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Email'
THEN N'CASE WHEN SM.[Email] = ''''
THEN 1
ELSE 0 END,
SM.[Email] ' + @order + N',
SM.[Code] ' + @order
WHEN N'PhoneNumber'
THEN N'CASE WHEN SM.[PhoneNumber] = ''''
THEN 1
ELSE 0 END,
SM.[PhoneNumber] ' + @order + N',
SM.[Code] ' + @order
WHEN N'user1'
THEN N'CASE WHEN SM.[User1] = ''''
THEN 1
ELSE 0 END,
SM.[User1] ' + @order + N',
SM.[Code] ' + @order
WHEN N'user2'
THEN N'CASE WHEN SM.[User2] = ''''
THEN 1
ELSE 0 END,
SM.[User2] ' + @order + N',
SM.[Code] ' + @order
WHEN N'user3'
THEN N'CASE WHEN SM.[User3] = ''''
THEN 1
ELSE 0 END,
SM.[User3] ' + @order + N',
SM.[Code] ' + @order
WHEN N'yourref'
THEN N'CASE WHEN SM.[YourRef] = ''''
THEN 1
ELSE 0 END,
SM.[YourRef] ' + @order + N',
SM.[Code] ' + @order
WHEN N'OldRef'
THEN N'CASE WHEN SM.[OldRef] = ''''
THEN 1
ELSE 0 END,
SM.[OldRef] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FileNum'
THEN N'CASE WHEN SM.[FileNum] = 0
THEN 1
ELSE 0 END,
SM.[FileNum] ' + @order + N',
SM.[Code] ' + @order
WHEN N'department'
THEN N'CASE WHEN SM.[DeptDescription] = ''''
THEN 1
ELSE 0 END,
SM.[DeptDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Dept'
THEN N'CASE WHEN SM.[DeptDescription] = ''''
THEN 1
ELSE 0 END,
SM.[DeptDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'worktype'
THEN N'CASE WHEN SM.[WTypeDescription] = ''''
THEN 1
ELSE 0 END,
SM.[WTypeDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FeeCode'
THEN N'CASE WHEN SM.[FECode] = ''''
THEN 2
WHEN SM.[FECode] = ''ADM''
THEN 1
ELSE 0 END,
SM.[FECode] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FeeEarner'
THEN N'CASE WHEN SM.[HandlerName] = '''' AND SM.[FECode] = ''''
THEN 3
WHEN SM.[HandlerName] = ''''
THEN 2
WHEN SM.[HandlerName] = ''Admin''
THEN 1
ELSE 0 END,
SM.[HandlerName] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FileColour_Fld'
THEN N'CASE WHEN SM.[FileColourDescription] = ''''
THEN 1
ELSE 0 END,
SM.[FileColourDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FileColour'
THEN N'CASE WHEN SM.[FileColourDescription] = ''''
THEN 1
ELSE 0 END,
SM.[FileColourDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'started'
THEN N'SM.[Started] ' + @order + N',
SM.[Code] ' + @order
WHEN N'LastAccessed'
THEN N'CASE WHEN RML.[DateField] IS NULL
THEN 1
ELSE 0 END,
RML.[DateField] ' + @order + N',
SM.[Code] ' + @order
WHEN N'closedate'
THEN N'CASE WHEN SM.[CloseDate] IS NULL
THEN 1
ELSE 0 END,
SM.[CloseDate] ' + @order + N',
SM.[Code] ' + @order
WHEN N'orgcloseddate'
THEN N'CASE WHEN SM.[orgcloseddate] IS NULL
THEN 1
ELSE 0 END,
SM.[orgcloseddate] ' + @order + N',
SM.[Code] ' + @order
WHEN N'casestatusdesc'
THEN N'CASE WHEN SM.[MatterStatusDescription] IS NULL
THEN 1
ELSE 0 END,
SM.[MatterStatusDescription] ' + @order + N',
SM.[Code] ' + @order
ELSE CASE WHEN @Which <> 2
THEN N'SM.[Code] ' + @order
ELSE N'CASE WHEN RML.[DateField] IS NULL
THEN 1
ELSE 0 END,
RML.[DateField] DESC,
SM.[Code] ' + @order END END
SET @NCOMMAND = @NCOMMAND + N'
DECLARE @MatterCode AS VARCHAR(20);
SET @MatterCode = (SELECT TOP 1 MATTER FROM [RecentMatterList]);
SELECT
[RES].[Code],
[RES].[Name],
[RES].[Description]
FROM
@Result [RES]
WHERE
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[RES].[Code] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%''
OR [RES].[Name] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%''
OR [RES].[Description] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%''
)
ORDER BY(
CASE WHEN [RES].[Code] = @MatterCode THEN 0 ELSE 1 END), [Code]
SELECT
COUNT([RES].[id]) AS [TotalRecord]
FROM
@Result [RES]
WHERE
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[RES].[Code] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%''
OR [RES].[Name] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%''
OR [RES].[Description] LIKE ''%'' + RTRIM(LTRIM(@SearchText)) + ''%''
)'
--SELECT @NCOMMAND
EXECUTE sp_executesql @NCOMMAND,
N'@HowMany INT,
@BitWiseID BIGINT,
@Handler VARCHAR(10),
@WorkType VARCHAR(5),
@department VARCHAR(5),
@filecolour VARCHAR(3),
@feecode VARCHAR(10),
@searchtext VARCHAR(MAX),
@andoraddressvalue VARCHAR(200),
@andorcodevalue VARCHAR(200),
@andordeptvalue VARCHAR(200),
@andordescriptionvalue VARCHAR(200),
@andorfeecodevalue VARCHAR(200),
@andornamevalue VARCHAR(200),
@andoroldrefvalue VARCHAR(200),
@andoruser1value VARCHAR(200),
@andoruser2value VARCHAR(200),
@andoruser3value VARCHAR(200),
@andorwtypevalue VARCHAR(200),
@andoryourrefvalue VARCHAR(200)',
@Howmany,
@BitWiseID,
@handler,
@worktype,
@department,
@filecolour,
@feecode,
@searchtext,
@andoraddressvalue,
@andorcodevalue,
@andordeptvalue,
@andordescriptionvalue,
@andorfeecodevalue,
@andornamevalue,
@andoroldrefvalue,
@andoruser1value,
@andoruser2value,
@andoruser3value,
@andorwtypevalue,
@andoryourrefvalue
END
GO
IF OBJECT_ID(N'KAAS_FetchOptionstoAssignEmailToCase', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchOptionstoAssignEmailToCase]
END
GO
CREATE PROCEDURE [dbo].[KAAS_FetchOptionstoAssignEmailToCase] (
@CaseCodeToFetchDocumentClasses VARCHAR(20),
@MatterCode VARCHAR(20),
@WKCode VARCHAR(20),
@ActionCategory VARCHAR(1)
)
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchOptionstoAssignEmailToCase] *
* Copied from : NA *
* *
* Modification History: *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
--To fetch the document classes
EXECUTE KAAS_ListDocumentClassesForCase @CaseCodeToFetchDocumentClasses
--To fetch the matter details
SELECT RTRIM(ISNULL([MAT].[Code], '')) AS [CaseRef],
RTRIM(ISNULL([MAT].[ClientCode], '')) AS [ClientCode],
RTRIM(ISNULL([CL].[CLNAME], '')) AS [CLNAME],
RTRIM(ISNULL([MAT].[Description], '')) AS [Description]
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[client] [CL]
ON [CL].[CLCODE] = [MAT].[ClientCode]
WHERE [MAT].[Code] = @MatterCode
--To fetch list of work type
SELECT RTRIM(ISNULL(TMP.[WKCODE], '')) AS [WKCODE],
RTRIM(ISNULL(TMP.[WKDESC], '')) AS [WKDESC]
FROM [dbo].[Templates] TMP
ORDER BY
CASE
WHEN RTRIM(ISNULL(TMP.[WKCODE], '')) = 'SYS'
THEN '1'
WHEN RTRIM(ISNULL(TMP.[WKCODE], '')) = ''
THEN '2'
WHEN RTRIM(ISNULL(TMP.[WKCODE], '')) = ''
THEN '3'
ELSE '4'
END,
TMP.[WKDESC]
--To fetch list of actions
SELECT AC.[ACTIONCODE], AC.[DESC]
FROM [dbo].[ky_WDGetTAList2](@MatterCode, @WKCode, @ActionCategory) AC
END
GO
IF OBJECT_ID(N'KAAS_FetchOtherContactDetails', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchOtherContactDetails]
END
GO
CREATE PROCEDURE [dbo].[KAAS_FetchOtherContactDetails]
(@ClientCode VARCHAR(10),
@CLNUMCONTACT INT)
AS
/*******************************************************************************************************
* List Client Contacts *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchOtherContactDetails] *
* Copied from : [dbo].[ky_NETCONFetchOtherContactDetails2] *
* *
* Modification History: *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
--Other Contacts
SELECT [CLC].[CLINITS] AS [Initials],
[CLC].[CLNAMECON] AS [FullName],
[CLC].[HomePhone] AS [HomePhone],
[CLC].[WorkPhone] AS [WorkPhone],
[CLC].[Mobile] AS [Mobile],
[CLC].[FIRSTNAME] AS [FirstName],
[CLC].[SURNAME] AS [Surname],
[CLC].[CLSALUTE] AS [Salutation],
[CLC].[PPSNo] AS [PPSNumber],
[CLC].[CLTitle] AS [Title],
[CLC].[Address] AS [Address],
[CLC].[EmailAddress] AS [EmailAddress],
[CLC].[DOB] AS [DOB],
[CLC].[MarrigeDate] AS [MarriageDate],
[CLC].[MartialStatus] AS [MStatus],
[CLC].[Occupation] AS [Occupation],
[CLC].[DateofDeath] AS [DateOfDeath],
[MIC].[CDEDESC] AS [MartialStatus],
[CLC].[FaxNumber] AS [FaxNumber],
[CLC].[PostalCode] AS [PostalCode],
[CLC].[County] AS [County],
[CLC].[CLNUMCONTACT] AS [CLNUMCONTACT],
[CLC].[DXREF] AS [DXREF],
[CLC].[BankName] AS [BankName],
[CLC].[BankAddress] AS [BankAddress],
[CLC].[BankSortCode] AS [BankSortCode],
[CLC].[BankAccNo] AS [BankAccNo],
[CLC].[IBAN] AS [IBAN],
[CLC].[BIC] AS [BIC],
[CLC].[BankType] AS [BankType]
FROM [dbo].[ClientContacts] [CLC]
LEFT OUTER JOIN [dbo].[MiscCodes] [MIC]
ON [CLC].[MartialStatus] = [MIC].[CDECODE]
AND [MIC].[CDETYPE] = 'MRS'
WHERE [CLC].[ClCode] = @ClientCode
AND CASE WHEN ISNULL(@CLNUMCONTACT, 0) = 0
THEN 1
WHEN [CLC].[CLNUMCONTACT] = @CLNUMCONTACT
THEN 1
ELSE 0 END = 1
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchSameEmailAssociates'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchSameEmailAssociates]
END
GO
CREATE PROCEDURE KAAS_FetchSameEmailAssociates
(
@Email VARCHAR(100),
@SearchText VARCHAR(4000) = '',
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL
)
AS
/*******************************************************************************************************
Stored Procedure Name : KAAS_FetchSameEmailAssociates
Copied From : Ky_NETFetchSameEmailAssociates
This procedure is used to fetch the case associate where same email addres.
Last Updated:
23 MAY 2016 Suriya M KEYD-3384-Case Associate check for Duplication on insert (email address)
04 Jun 2019 Vinodhan K Created KAAS_FetchSameEmailAssociates
********************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FoundTable
FROM
(SELECT
ASY.CODE AS [Code],
ISNULL(ASY.[Description],'') AS [Description],
CASE WHEN RTRIM(ISNULL([CAN].[COMPANY], '')) = ''
THEN RTRIM(ISNULL([CAN].[NAME], ''))
ELSE LTRIM(RTRIM(ISNULL([CAN].[NAME], '')) + ' (' +
RTRIM(ISNULL([CAN].[COMPANY], '')) + ')') END AS [NMCMP],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CAN].[ADDRESS], '')), 200) AS [Address],
RTRIM(ISNULL([CAN].[PHONENO], '')) AS [PhoneNo],
RTRIM(ISNULL([CAN].[EMAIL], '')) AS [Email],
RTRIM(ISNULL([CAN].[COMPANY], '')) AS [Company],
RTRIM(ISNULL([CAN].[MOBILENO], '')) AS [MobileNo],
RTRIM(ISNULL([CAN].[NAME], '')) AS [Name],
RTRIM(CAN.CODE) AS [NameCode]
FROM
[CaseAssociatesNames] [CAN]
INNER JOIN [dbo].[CaseAssoicatesTypes] CAT
INNER JOIN [dbo].[AssociateTypes] ASY
ON ASY.[CODE] = CAT.[TYPECODE]
ON CAT.[NAMECODE] = CAN.[CODE]
WHERE
UPPER(RTRIM(EMAIL)) = UPPER(RTRIM(@Email))
AND
(
[ASY].[CODE] LIKE '%' + @SearchText + '%'
OR
ISNULL(ASY.[Description],'') LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([CAN].[COMPANY], '')) LIKE '%' + @SearchText + '%'
OR
LTRIM(RTRIM(ISNULL([CAN].[NAME], ''))) LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([CAN].[COMPANY], '')) LIKE '%' + @SearchText + '%'
OR
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CAN].[ADDRESS], '')), 200) LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([CAN].[PHONENO], '')) LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([CAN].[EMAIL], '')) LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([CAN].[COMPANY], '')) LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([CAN].[MOBILENO], '')) LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([CAN].[NAME], '')) LIKE '%' + @SearchText + '%'
OR
RTRIM(CAN.CODE) LIKE '%' + @SearchText + '%'
)) AS FoundTable
SELECT
*
FROM
#FoundTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Row_Number' THEN [Row_Number]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Row_Number' THEN [Row_Number]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'NMCMP' THEN [NMCMP]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'NMCMP' THEN [NMCMP]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Address' THEN [Address]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Address' THEN [Address]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'PhoneNo' THEN [PhoneNo]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'PhoneNo' THEN [PhoneNo]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Email' THEN [Email]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Email' THEN [Email]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Company' THEN [Company]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Company' THEN [Company]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'MobileNo' THEN [MobileNo]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'MobileNo' THEN [MobileNo]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'NameCode' THEN [NameCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'NameCode' THEN [NameCode]
END
END DESC
SELECT
(COUNT([Row_Number]))
FROM
#FoundTable
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchTasksAction',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_FetchTasksAction]
GO
CREATE PROCEDURE
[dbo].[KAAS_FetchTasksAction]
(@ActionID INT)
AS
/*******************************************************************************************************
* To load the data in Add Action for Client Case Page. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchTasksAction] *
* Copied from : [dbo].[ky_NETFetchTasksAction] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Status AS VARCHAR(10)
DECLARE @Team AS VARCHAR(10)
SET @Status = (SELECT
[ACTIONSTATUS]
FROM
[diary]
WHERE
[ACTIONID] = @ActionID)
SET @Team = (SELECT
[TEAMCODE]
FROM
[diary]
WHERE
[ACTIONID] = @ActionID)
--Fee Earner
SELECT
RTRIM(ISNULL(UPPER(HAN.[CODE]), '')) AS [CODE],
RTRIM(ISNULL(HAN.[NAME], '')) AS [NAME],
RTRIM(ISNULL(HAN.[TEAM], '')) AS [TEAM]
FROM
[Handlers] HAN
WHERE
ISNULL(HAN.[RETIRED], 'N') <> 'Y' --AND ISNULL(TEAMCODE,'N') <> 'Y'
ORDER BY
RTRIM(ISNULL(HAN.[CODE], ''))
--Team
SELECT
RTRIM(ISNULL(HAN.[CODE], '')) AS [CODE],
RTRIM(ISNULL(HAN.[NAME], '')) AS [NAME]
FROM
[Handlers] HAN
WHERE
ISNULL(HAN.[TEAMCODE], '') <> ''
AND [TEAMCODE] != 'N'
AND (ISNULL(HAN.[RETIRED],'N') <> 'Y'
OR HAN.[CODE] = @Team)
ORDER BY
RTRIM(ISNULL(HAN.[CODE], ''))
--Status Code
SELECT
RTRIM(ISNULL(S.[CODE], '')) AS [CODE],
RTRIM(ISNULL(S.[DESCRIPTION], '')) AS [DESCRIPTION]
FROM
[StatusCodes] S
WHERE
ISNULL([Retired],'N') = 'N'
OR [CODE] = @Status
--Flag
SELECT
[ActionFlagID],
RTRIM(ISNULL([Description],'')) AS [Description]
FROM
[ActionFlag]
WHERE
[IsActive] = 1
ORDER BY
[ActionFlagID]
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchTimeEntry',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchTimeEntry]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchTimeEntry]
(@CaseCode VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure is used to get net Action Code based on the given Action ID. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchTimeEntry] *
* Copied from : [dbo].[ky_NETTLFetchTimeEntry3] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
* 2019-04-24 Vinodhan K TimeInHours Format modified to be dispalyed as '00:00' format *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @IsSAM4 bit
DECLARE @TimeEntryTotalCharge DECIMAL(19, 2)
DECLARE @TimeEntryTotalTime INT
DECLARE @TotalCharge Decimal(19, 2)
DECLARE @TotalTime INT
DECLARE @TimeBal INT
DECLARE @ChargeBal DECIMAL(19, 2)
DECLARE @ChargeableBal DECIMAL(19, 2)
DECLARE @NonChargeableBal DECIMAL(19, 2)
DECLARE @NonChargeableTimeBal INT
DECLARE @ChargeableTimeBal INT
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @TotalFeesIssued DECIMAL(19, 2)
SET @IsSAM4 = [dbo].[ISSAM4]()
SELECT TIE.[RecordID] AS [RecordID],
RTRIM(ISNULL(HAN.[CODE], '')) AS [HandlerCode],
RTRIM(ISNULL(HAN.[NAME], '')) AS [FEEEARN],
TIE.[DATE] AS [DATE],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](TIE.[COMMENT], 200) AS [COMMENT],
CASE TIE.[TimeOrCharge]
WHEN 'T' THEN 'Time'
WHEN 'B' THEN 'Bill'
WHEN 'C' THEN 'Charge' END AS [TIMEORCHARGE],
TIE.[TIME] AS [TIME],
CASE
WHEN ([TIME] = 0) THEN ('00:00')
WHEN ([Time] > 0) THEN
CASE
WHEN
LEN([TIME] / 60) < 2
THEN
'0' + CAST([TIME] / 60 AS VARCHAR)
ELSE
CAST([TIME] / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(5), [TIME] - (60 * ([TIME] / 60))))), 2, 2)
WHEN ([TIME] < 0) THEN
'-'
+
CASE
WHEN
LEN([TIME] / 60) < 2
THEN
'0' + CAST([TIME] / 60 AS VARCHAR)
ELSE
CAST([TIME] / 60 AS VARCHAR)
END
+ ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(5), -[TIME] - (60 * (-[TIME] / 60))))), 2, 2)
END AS [TimeInHours],
CASE TIE.[Rec_Irr]
WHEN 'C' THEN 'Chargeable'
WHEN 'N' THEN 'Non-Chargeable'
WHEN '' THEN 'Chargeable' END AS [REC_IRR],
ISNULL(TIE.[CHARGE], 0.00) AS [CHARGE],
ISNULL(TIE.[BILLEDAMOUNT], 0.00) AS [BILLEDAMOUNT],
ISNULL(TIE.[INVOICENO], 0) AS [INVOICENO],
CASE WHEN TC.[DESC] IS NULL
THEN TIE.[TASK]
WHEN TC.[DESC] IS NOT NULL
THEN TC.[DESC]
ELSE '' END AS [TASK],
CASE WHEN ISNULL(TIE.[WriteOffID], 0) = 0
THEN ''
ELSE CONVERT(VARCHAR(MAX), ISNULL(TIE.[WriteOffID], 0)) END AS [WriteOffID],
TIE.[WriteOffDT] AS [WriteOffDT],
ISNULL(TIE.[Rate], 0) AS [Rate],
ISNULL(TIE.[IncludeInBill], 0) AS [IncludeInBill],
CASE WHEN TIE.[TIMEORCHARGE] = 'B'
OR TIE.[IncludeInBill] = 2
OR TIE.[Rec_Irr] <> 'C'
THEN 0
WHEN @IsSAM4 = 1 AND ISNULL(TIE.[INVOICENO], 0) <> 0
THEN 0
WHEN @IsSAM4 <> 1
THEN ISNULL(TIE.[CHARGE], 0) - ISNULL(TIE.[BILLEDAMOUNT], 0)
ELSE ISNULL(TIE.[CHARGE], 0) END AS [WIP],
TIE.[Task] AS [TaskCode]
FROM [dbo].[TimeEntry] TIE
LEFT OUTER JOIN [dbo].[Matters] MAT
ON MAT.[Code] = TIE.[Matter]
LEFT OUTER JOIN [dbo].[TasksCodes] TC
ON TC.[CODE] = TIE.[Task]
LEFT OUTER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = TIE.[FeeEarn]
WHERE TIE.[Matter] = @CaseCode
-- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_CaseSummaryPageLoad. If you change any of these calculations,
-- ensure the ones in there are changed as well.
SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0),
@TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0),
@TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Charge], 0) END), 0),
@ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 1
THEN ISNULL(TIE.[Charge], 0)
ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0),
@NonChargeableBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
AND ISNULL(TIE.[Task], '') <> 'WRI'
THEN ISNULL(TIE.[Charge], 0)
ELSE 0 END), 0),
@ChargeableBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') <> 'N'
AND ISNULL(TIE.[Task], '') <> 'WRI'
THEN ISNULL(TIE.[Charge], 0)
ELSE 0 END), 0),
@TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN CASE WHEN TIE.[Charge] = 0
THEN 0
ELSE CONVERT(INT,FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME])
* ((TIE.[Charge] - TIE.[BilledAmount])
/ TIE.[Charge]))) END
ELSE ISNULL(TIE.[Time], 0) END), 0),
@NonChargeableTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
AND ISNULL(TIE.[Task], '') <> 'WRI'
THEN ISNULL(TIE.[TIME], 0)
ELSE 0 END), 0),
@ChargeableTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
OR ISNULL(TIE.[Task], '') = 'WRI'
THEN 0
ELSE ISNULL(TIE.[TIME], 0) END), 0),
@TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
OR ISNULL(TIE.[Task], '') = 'WRI'
THEN 0
ELSE ISNULL(TIE.[Time], 0) END), 0)
FROM
[dbo].[TimeEntry] TIE
WHERE
TIE.[Matter] = @CaseCode
AND ((TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
-- PLEASE NOTE THAT THIS MUST BE IDENTICAL TO RESULT SET 10 IN KAAS_CaseSummaryPageLoad. Please
-- modify both procedures if this needs to be changed.
-- Result Set 10
-- The fees issued to date
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT @TotalFeesIssued = ISNULL(SUM((CASE WHEN HED.[INVCR] = ''I''
THEN TRN.[VALUE]
ELSE TRN.[VALUE] * - 1 END)), 0)
FROM [dbo].[BatchH] HED
INNER JOIN [dbo].[BatchDetails] TRN
ON TRN.[BATCHNO] = HED.[BATCHNO]
WHERE HED.[MATTER] = @CaseCode
AND HED.[POSTED] = ''Y''
AND TRN.[TYPE] = ''I''
AND TRN.[OUTLAY] = ''F'''
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @TotalFeesIssued = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[TransactionsHeaders] HED
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
WHERE HED.[MatterCode] = @CaseCode
--values imported from Axxia
SELECT @TotalFeesIssued = @TotalFeesIssued + ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[Transactions] TRN
LEFT OUTER JOIN [dbo].[TransactionsHeaders] HED
ON HED.[BatchNo] = TRN.[BatchNo]
WHERE TRN.[MatterCode] = @CaseCode
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
AND HED.[BatchNo] IS NULL'
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TotalFeesIssued DECIMAL(19, 2) OUTPUT', @CaseCode = @CaseCode, @TotalFeesIssued = @TotalFeesIssued OUTPUT
/*WIP Calculations*/
SELECT
CASE
WHEN
LEN(@TimeBal / 60) < 2
THEN
'0' + CAST(@TimeBal / 60 AS VARCHAR)
ELSE
CAST(@TimeBal / 60 AS VARCHAR)
END AS [WIPHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeBal - (60 * (@TimeBal / 60))), 2, 2) AS [WIPMins],
@ChargeBal AS [WIPAmt]
/*Total Record Calculations*/
SELECT
CASE
WHEN
LEN(@TimeEntryTotalTime / 60) < 2
THEN
'0' + CAST(@TimeEntryTotalTime / 60 AS VARCHAR)
ELSE
CAST(@TimeEntryTotalTime / 60 AS VARCHAR)
END AS [TotalHours],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeEntryTotalTime - (60 * (@TimeEntryTotalTime / 60))), 2, 2) AS [TotalMins],
@TimeEntryTotalCharge AS [TotalAmt],
CASE
WHEN
LEN(@NonChargeableTimeBal / 60) < 2
THEN
'0' + CAST(@NonChargeableTimeBal / 60 AS VARCHAR)
ELSE
CAST(@NonChargeableTimeBal / 60 AS VARCHAR)
END AS [RecNonChargeableHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @NonChargeableTimeBal - (60 * (@NonChargeableTimeBal / 60))), 2, 2) AS [RecNonChargeableMins],
@NonChargeableBal AS [RecNonChargeableAmt],
CASE
WHEN
LEN(@ChargeableTimeBal / 60) < 2
THEN
'0' + CAST(@ChargeableTimeBal / 60 AS VARCHAR)
ELSE
CAST(@ChargeableTimeBal / 60 AS VARCHAR)
END AS [RecChargeableHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @ChargeableTimeBal - (60 * (@ChargeableTimeBal / 60))), 2, 2) AS [RecChargeableMins],
@ChargeableBal AS [RecChargeableAmt],
CASE
WHEN
LEN((@ChargeableTimeBal + @NonChargeableTimeBal) / 60) < 2
THEN
'0' + CAST((@ChargeableTimeBal + @NonChargeableTimeBal) / 60 AS VARCHAR)
ELSE
CAST((@ChargeableTimeBal + @NonChargeableTimeBal) / 60 AS VARCHAR)
END AS [RecTotalHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + (@ChargeableTimeBal + @NonChargeableTimeBal) - (60 * ((@ChargeableTimeBal + @NonChargeableTimeBal) / 60))), 2, 2) AS [RecTotalMins],
@ChargeableBal + @NonChargeableBal AS [RecTotalAmt],
@TotalFeesIssued AS [TotalBilled],
@TotalFeesIssued - (@ChargeableBal + @NonChargeableBal) AS [ProfitLoss] -- Current Profit/Loss = TotalBilled - RecTotalAmt;
/*Write Off Calculations*/
SELECT
CASE
WHEN TIES.[WriteOffTime] > 0
THEN '-'
ELSE ''
END
+
CASE
WHEN
LEN(TIES.[WriteOffTime] / 60) < 2
THEN
'0' + CAST(TIES.[WriteOffTime] / 60 AS VARCHAR)
ELSE
CAST(TIES.[WriteOffTime] / 60 AS VARCHAR)
END AS [WOHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[WriteOffTime] % 60)), 2, 2) AS [WOMins],
---TIES.[WriteOffTime] / 60 AS [WOHrs],
---TIES.[WriteOffTime] % 60 AS [WOMins],
TIES.[WriteOffValue] As [WOAmt]
FROM (SELECT ISNULL(SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))), 0) AS [WriteOffValue],
ISNULL(SUM(ISNULL(TIE.[Time], 0)), 0) AS [WriteOffTime]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[MATTER] = MAT.[Code]
WHERE TIE.[MATTER] = @CaseCode
AND ((TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C'))
AND TIE.[Task] = 'WRI') TIES
/*Total Billed Amount Calculations */ ------ Commented out as reversed KEYD-3657
--IF @IsSAM4 = 0
-- SELECT ISNULL(SUM(ISNULL([TIE].[BilledAmount], 0)), 0) AS [TotalBill]
-- FROM [dbo].[TimeEntry] [TIE]
-- WHERE [TIE].[Matter] = @CaseCode
--ELSE
-- SELECT @TotalFeesIssued AS [TotalBill]
-- FROM [dbo].[TimeEntry] [TIE]
-- WHERE [TIE].[Matter] = @CaseCode
DECLARE @DraftBillValue DECIMAL(18, 2)
SET @IsSAM4 = [dbo].[ISSAM4]()
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0)
FROM [dbo].[BillHeader] HED
INNER JOIN [dbo].[BillDetails] BD
ON BD.[DRAFTNO] = HED.[DRAFTNO]
WHERE HED.[MATTER] = @CaseCode
AND HED.[BILLNO] = 0'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0)
FROM [dbo].[BillHead] HED
INNER JOIN [dbo].[BillDetail] BD
ON BD.[BillID] = HED.[BillingID]
WHERE HED.[MatterCode] = @CaseCode
AND HED.[BillStatus] <> ''Approved''
AND ISNULL(HED.[ProForma], '''') = ''Y'''
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @CaseCode = @CaseCode, @DraftBillValue=@DraftBillValue OUTPUT
DECLARE @Section68 VARCHAR(10)
DECLARE @IsApproved VARCHAR(10)
DECLARE @CSTimeBal INT
DECLARE @CSChargeBal DECIMAL(19, 2)
DECLARE @CSTotalCharge Decimal(19, 2)
DECLARE @CSTotalTime INT
--Matter values that are re-used elsewhere in this procedure.
SELECT @Section68 = ISNULL(MAT.[Section68],''),
@IsApproved = ISNULL(CON.[Approved],'')
FROM [dbo].[matters] MAT
LEFT OUTER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
WHERE MAT.[Code] = @CaseCode
DECLARE @LDIADATE DATETIME
DECLARE @LDIAACTIONTYPE VARCHAR(1)
DECLARE @LDIATEXT1 VARCHAR(MAX)
DECLARE @LDIAFNCODE VARCHAR(10)
DECLARE @LDIAFNNAME VARCHAR(50)
SELECT TOP 1
@LDIADATE = LDIA.[DATE],
@LDIAACTIONTYPE = LDIA.[ACTIONTYPE],
@LDIATEXT1 = LDIA.[TEXT1],
@LDIAFNCODE = LDIA.[FNCODE],
@LDIAFNNAME = [FEC].[Name]
FROM [dbo].[diary] LDIA
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON LDIA.FNCODE = [FEC].[CODE]
WHERE LDIA.[CASECODE] = @CaseCode
ORDER BY LDIA.[DATE] DESC
DECLARE @MDIADATE DATETIME
DECLARE @MDIAACTIONTYPE VARCHAR(1)
DECLARE @MDIATEXT1 VARCHAR(MAX)
DECLARE @MDIAFNCODE VARCHAR(10)
DECLARE @MDIAFNNAME VARCHAR(50)
SELECT TOP 1
@MDIADATE= MDIA.[DATE],
@MDIAACTIONTYPE = MDIA.[ACTIONTYPE],
@MDIATEXT1 = MDIA.[TEXT1],
@MDIAFNCODE = MDIA.[FNCODE],
@MDIAFNNAME = [FEC].[Name]
FROM [dbo].[diary] MDIA
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON MDIA.FNCODE = [FEC].[CODE]
WHERE MDIA.[CASECODE] = @CaseCode
AND MDIA.[HIGHLIGHTED] = 'Y'
ORDER BY MDIA.[DATE] DESC
DECLARE @NDIADATE DATETIME
DECLARE @NDIAACTIONTYPE VARCHAR(1)
DECLARE @NDIATEXT1 VARCHAR(MAX)
DECLARE @NDIAFNCODE VARCHAR(10)
DECLARE @NDIAFNNAME VARCHAR(50)
SELECT TOP 1
@NDIADATE = NDIA.[DATE],
@NDIAACTIONTYPE = NDIA.[ACTIONTYPE],
@NDIATEXT1 = NDIA.[TEXT1],
@NDIAFNCODE = NDIA.[FNCODE],
@NDIAFNNAME = [FEC].[Name]
FROM dbo.[diary] NDIA
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON NDIA.FNCODE = [FEC].[CODE]
WHERE NDIA.[CASECODE] = @CaseCode
AND NDIA.[STATUS] = 0
ORDER BY NDIA.[DATE] ASC
DECLARE @TIEDATE DATETIME
--Pino 2015-05-27 Start
--SELECT @TIEDATE = (MAX(TIE.[DATE]))
-- FROM [dbo].[TimeEntry] TIE
-- WHERE TIE.[Matter] = @CaseCode
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN DLG.[DATE] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE DLG.[DATE] END)
FROM [dbo].[DebtorsLedger] DLG
WHERE DLG.[MATTER] = @CaseCode'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN TRN.[TransDate] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE TRN.[TransDate] END)
FROM [dbo].[Transactions] TRN
WHERE TRN.[Posted] = ''Y''
AND TRN.[MatterCode] = @CaseCode
AND TRN.[DebtorsValue] <> 0
AND TRN.[CorrectionInd] = ''L''
AND ( ( TRN.[XnType] = ''I''
AND TRN.[RecType] = ''H'')
OR ( TRN.[XnType] = ''J''
AND TRN.[RecType] = ''D''))'
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @CaseCode = @CaseCode, @TIEDATE = @TIEDATE OUTPUT
--Pino 2015-05-27 End
DECLARE @LastTimeEntryDate DATETIME
DECLARE @LastTimeEntryTime INT
DECLARE @LastTimeEntryRate DECIMAL(10, 2)
DECLARE @LastTimeEntryCharge DECIMAL(10, 2)
DECLARE @LastTimeEntryTask VARCHAR(6)
DECLARE @LastTimeEntryComment VARCHAR(1000)
DECLARE @LastTimeEntryFE VARCHAR(10)
DECLARE @LastTimeEntryFEName VARCHAR(50)
DECLARE @CSTimeEntryTotalCharge DECIMAL(19, 2)
DECLARE @CSTimeEntryTotalTime INT
SELECT TOP (1)
@LastTimeEntryDate = TIE.[DATE],
@LastTimeEntryTime = TIE.[Time],
@LastTimeEntryRate = TIE.[Rate],
@LastTimeEntryCharge = TIE.[Charge],
@LastTimeEntryTask = TIE.[Task],
@LastTimeEntryComment = TIE.[Comment],
@LastTimeEntryFE = TIE.[FeeEarn],
@LastTimeEntryFEName = [FEC].[Name]
FROM [dbo].[TimeEntry] TIE
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON [TIE].[FeeEarn] = [FEC].[CODE]
WHERE TIE.[Matter] = @CaseCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
ORDER BY TIE.[Date] DESC,
TIE.[Time] DESC
SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0)
SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0)
-- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
SELECT @CSTimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0),
@CSTimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0),
@CSTotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Charge], 0) END), 0),
@CSChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 1
THEN ISNULL(TIE.[Charge], 0)
ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0),
@CSTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN CASE WHEN TIE.[Charge] = 0
THEN 0
ELSE CONVERT(INT,
FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME])
* ( (TIE.[Charge] - TIE.[BilledAmount])
/
TIE.[Charge]))) END
ELSE ISNULL(TIE.[Time], 0) END), 0),
@CSTotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Time], 0) END), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[Matter] = @CaseCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
DECLARE @DebtBal DECIMAL(19, 2)
DECLARE @OutlayBal DECIMAL(19, 2)
DECLARE @DebtBalDate DATETIME
DECLARE @OutlayBalDate DATETIME
DECLARE @ClientCurrent DECIMAL(19, 2)
DECLARE @ClientDeposit DECIMAL(19, 2)
-- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
--
-- To ensure SAM3 will retrieve these from [dbo].[matters]
SET @DebtBal = 0
SET @OutlayBal = 0
SET @ClientCurrent = 0
SET @ClientDeposit = 0
IF @IsSAM4 = 1
BEGIN
SET @NCOMMAND = N'
SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)),
@DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)),
@OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)),
@ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0))
FROM [dbo].[Transactions] TRN
WHERE TRN.[MatterCode] = @CaseCode
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND TRN.[CorrectionInd] = ''L'''
EXECUTE sp_executesql @NCOMMAND,
N'@CaseCode VARCHAR(20),
@DebtBal DECIMAL(19, 2) OUTPUT,
@DebtBalDate DATETIME OUTPUT,
@OutlayBal DECIMAL(19, 2) OUTPUT,
@OutlayBalDate DATETIME OUTPUT,
@ClientCurrent DECIMAL(19, 2) OUTPUT,
@ClientDeposit DECIMAL(19, 2) OUTPUT',
@CaseCode = @CaseCode,
@DebtBal = @DebtBal OUTPUT,
@DebtBalDate = @DebtBalDate OUTPUT,
@OutlayBal = @OutlayBal OUTPUT,
@OutlayBalDate = @OutlayBalDate OUTPUT,
@ClientCurrent = @ClientCurrent OUTPUT,
@ClientDeposit = @ClientDeposit OUTPUT
END
--Result Set 1
--WIP
SELECT TIES.[FeeEarn] AS [FeeEarn],
TIES.[NAME] AS [Name],
CASE
WHEN
LEN(TIES.[TOTALTIME] / 60) < 2
THEN
'0' + CAST(TIES.[TOTALTIME] / 60 AS VARCHAR)
ELSE
CAST(TIES.[TOTALTIME] / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [FETotalHours],
TIES.[Charge] AS [FECharge],
TIES.[ChargeBal] AS [FEChargeBal],
CASE
WHEN
LEN(TIES.[WIPTOTALTIME] / 60) < 2
THEN
'0' + CAST(TIES.[WIPTOTALTIME] / 60 AS VARCHAR)
ELSE
CAST(TIES.[WIPTOTALTIME] / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[WIPTOTALTIME] % 60)), 2, 2) AS [FEWIPHours]
FROM ( SELECT TIE.[FeeEarn] AS [FeeEarn],
HAN.[NAME] AS [NAME],
ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME],
SUM(CONVERT(DECIMAL(18, 2),
ISNULL(TIE.[Charge],
0))) AS [Charge],
SUM(CONVERT(DECIMAL(18, 2),
CASE WHEN @IsSAM4 = 1
AND TIE.[InvoiceNo] <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN ISNULL(TIE.[Charge],
0)
- ISNULL(TIE.[BilledAmount],
0)
ELSE ISNULL(TIE.[Charge],
0) END)) AS [ChargeBal],
CONVERT(INT,
FLOOR(CONVERT(DECIMAL(18, 2), ISNULL(SUM(CASE WHEN @IsSAM4 = 1
AND [TIE].[InvoiceNo] <> 0
THEN 0
WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0
THEN 0
ELSE TIE.[TIME]
END)
, 0))
*
CASE WHEN SUM(CONVERT(DECIMAL(18, 2),
CASE WHEN @IsSAM4 = 1
AND [TIE].[InvoiceNo] <> 0
THEN 0
WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0
THEN 0
ELSE TIE.[Charge] END)) = 0
THEN 0
ELSE SUM(CONVERT(DECIMAL(18, 2),
CASE WHEN @IsSAM4 = 1
AND TIE.[InvoiceNo] <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN ISNULL(TIE.[Charge],
0)
- ISNULL(TIE.[BilledAmount],
0)
ELSE ISNULL(TIE.[Charge],
0)
END))
/
SUM(CONVERT(DECIMAL(18, 2),
CASE WHEN @IsSAM4 = 1
AND [TIE].[InvoiceNo] <> 0
THEN 0
WHEN [TIE].[Charge] - [TIE].[BilledAmount] = 0
THEN 0
ELSE TIE.[Charge]
END))
END)) AS [WIPTOTALTIME]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[MATTER] = MAT.[Code]
INNER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = TIE.[FeeEarn]
WHERE TIE.[MATTER] = @CaseCode
AND TIE.[DATE] < GETDATE()
AND ((TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
AND TIE.[REC_IRR] <> 'N'
GROUP BY TIE.[FEEEARN],
HAN.[NAME]) TIES
ORDER BY TIES.[ChargeBal] DESC,
TIES.[TOTALTIME] DESC
--Result Set 4
--Activity to Date
SELECT TIES.[Activity],
CASE WHEN TIES.[TOTALTIME] < 0
THEN '-'
ELSE '' END
+
CASE
WHEN
LEN(TIES.[TOTALTIME] / 60) < 2
THEN
'0' + CAST(TIES.[TOTALTIME] / 60 AS VARCHAR)
ELSE
CAST(TIES.[TOTALTIME] / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (ABS(TIES.[TOTALTIME]) % 60)), 2, 2) AS [ActivityToDateTime],
TIES.[Value] AS [ActivityToDateValue]
FROM ( SELECT TIE.[TASK] AS [Task],
CASE WHEN TSC.[DESC] IS NULL
THEN 'Task Code: ' + ISNULL(TIE.[TASK], '')
ELSE RTRIM(ISNULL(TSC.[DESC],'')) END AS [Activity],
ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME],
SUM( CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
LEFT OUTER JOIN [dbo].[TasksCodes] TSC
ON TSC.[CODE] = TIE.[Task]
ON TIE.[MATTER] = MAT.[Code]
WHERE TIE.[MATTER] = @CaseCode
AND TIE.[DATE] < GETDATE()
AND ((TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
AND TIE.[REC_IRR] <> 'N'
AND TIE.[Task] <> 'WRI'
GROUP BY TIE.[TASK],
CASE WHEN TSC.[DESC] IS NULL
THEN 'Task Code: ' + ISNULL(TIE.[TASK], '')
ELSE RTRIM(ISNULL(TSC.[DESC],'')) END) TIES
ORDER BY TIES.[Value] DESC,
TIES.[TOTALTIME] DESC
--Result Set 6
--Total Time [Activity]
SELECT
CASE
WHEN
LEN(TIES.[TOTALTIME] / 60) < 2
THEN
'0' + CAST(TIES.[TOTALTIME] / 60 AS VARCHAR)
ELSE
CAST(TIES.[TOTALTIME] / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [ActivityTotalTime],
TIES.[Value] AS [ActivityTotalValue]
FROM ( SELECT ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME],
SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[MATTER] = MAT.[Code]
WHERE TIE.[MATTER] = @CaseCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C'))
AND TIE.[TASK] <> 'WRI') TIES
--Result Set 0
--Matter Data
SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description],
RTRIM(ISNULL(MAT.[ClientCode], '')) AS [ClientCode],
RTRIM(ISNULL(CLT.[CLNAME], '')) AS [CLName],
RTRIM(ISNULL(CLT.[CLADDR], '')) AS [CLAddr],
RTRIM(ISNULL(MAT.[FECode], '')) AS [FECode],
RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName],
RTRIM(ISNULL(MAT.[Dept], '')) AS [Dept],
RTRIM(ISNULL(DPT.[DESC], '')) AS [Desc],
RTRIM(MAT.WType) AS [WType],
RTRIM(ISNULL(WKT.[DESC], '')) AS [WorkType],
MAT.[Started] AS [Started],
MAT.[EstFee] AS [EstFee],
MAT.[ExpBillD] AS [ExpBillD],
CONVERT(DECIMAL(19, 2), CASE WHEN @DebtBal <> 0
THEN @DebtBal
ELSE ISNULL(MAT.[DebtBal], 0) END) AS [DebtBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @OutlayBal <> 0
THEN @OutlayBal
ELSE ISNULL(MAT.[OutlayBal], 0) END) AS [OutlayBal],
MAT.[OutlayBud] AS [OutlayBud],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0
THEN @ClientCurrent + @ClientDeposit
WHEN @ClientDeposit <> 0
THEN @ClientCurrent + @ClientDeposit
ELSE ISNULL(MAT.[ClientBal], 0) END) AS [ClientBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0
THEN @ClientCurrent
ELSE ISNULL(MAT.[ClientCurBal], 0) END) AS [ClientCurBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientDeposit <> 0
THEN @ClientDeposit
ELSE ISNULL(MAT.[ClientDepBal], 0) END) AS [ClientDepBal],
MAT.[StatuteLimits] AS [StatuteLimits],
RTRIM(ISNULL(MAT.[User1], '')) AS [User1],
RTRIM(ISNULL(MAT.[User2], '')) AS [User2],
RTRIM(ISNULL(MAT.[User3], '')) AS [User3],
MAT.[Value] AS [Value],
@CSTimeBal AS [TimeBal],
CASE
WHEN
LEN(@CSTimeBal / 60) < 2
THEN
'0' + CAST(@CSTimeBal / 60 AS VARCHAR)
ELSE
CAST(@CSTimeBal / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @CSTimeBal) % 60), 2, 2) AS [TimeBalHours],
@CSChargeBal AS [ChargeBal],
CASE
WHEN
LEN(@CSTotalTime / 60) < 2
THEN
'0' + CAST(@CSTotalTime / 60 AS VARCHAR)
ELSE
CAST(@CSTotalTime / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @CSTotalTime) % 60), 2, 2) AS [TotalHours],
@CSTotalCharge AS [TotalCharge],
MAT.[FileColour] AS [FileColour],
RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef],
RTRIM(ISNULL(MAT.[Status], '')) AS [Status],
MAT.[StatuteLimits] AS [StatuteLims],
RTRIM(ISNULL(MAT.[Comment], '')) AS [Comment],
@DraftBillValue AS [DraftBillTotal],
@TIEDATE AS [LastBillDate],
@LDIADATE AS [LastActionDate],
RTRIM(ISNULL(@LDIAActionType, '')) AS [LastActionType],
RTRIM(ISNULL(@LDIATEXT1, '')) AS [LastActionText],
RTRIM(ISNULL(@LDIAFNCODE, '')) AS [LastActionFE],
RTRIM(ISNULL(@LDIAFNNAME, '')) AS [LastActionFEName],
@MDIADATE AS [LastMilestoneDate],
RTRIM(ISNULL(@MDIAActionType, '')) AS [LastMilestoneType],
RTRIM(ISNULL(@MDIATEXT1, '')) AS [LastMilestoneText],
RTRIM(ISNULL(@MDIAFNCODE, '')) AS [LastMilestoneFE],
RTRIM(ISNULL(@MDIAFNNAME, '')) AS [LastMilestoneFEName],
@NDIADATE AS [NextActionDate],
RTRIM(ISNULL(@NDIAActionType, '')) AS [NextActionType],
RTRIM(ISNULL(@NDIATEXT1, '')) AS [NextActionText],
RTRIM(ISNULL(@NDIAFNCODE, '')) AS [NextActionFE],
RTRIM(ISNULL(@NDIAFNNAME, '')) AS [NextActionFEName],
@LastTimeEntryDate AS [LastTimeEntryDate],
@LastTimeEntryTime AS [LastTimeEntryTime],
@LastTimeEntryRate AS [LastTimeEntryRate],
@LastTimeEntryCharge AS [LastTimeEntryCharge],
@LastTimeEntryTask AS [LastTimeEntrytask],
@LastTimeEntryComment AS [LastTimeEntryComment],
@LastTimeEntryFE AS [LastTimeEntryFE],
@LastTimeEntryFEName AS [LastTimeEntryFEName],
@CSTimeEntryTotalCharge AS [TimeEntryTotalCharge],
@CSTimeEntryTotalTime AS [TotalTime],
STC.[DESCRIPTION] AS [StatusCodeDescription],
CSM.[CSWKTCODE] AS [CSWKTCode],
TMP.[WKDESC] AS [WKDesc],
CASE WHEN MAT.[ShowCommentInAlarm] = 'Y'
THEN 'True'
ELSE 'False' END AS [ShowCommentInAlarm],
RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [FileColourDescription],
ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB],
@Section68 AS [Section68],
@IsApproved AS [IsApproved]
FROM dbo.[matters] MAT
LEFT JOIN dbo.[WorkTypes] WKT
ON WKT.[CODE] = MAT.[WType]
LEFT OUTER JOIN dbo.[Departments] DPT
ON DPT.[CODE] = MAT.[Dept]
LEFT OUTER JOIN dbo.[Handlers] HAN
ON HAN.[CODE] = MAT.[FECode]
LEFT OUTER JOIN dbo.[client] CLT
ON CLT.[CLCODE] = MAT.[ClientCode]
LEFT OUTER JOIN dbo.[StatusCodes] STC
ON STC.[CODE] = MAT.[Status]
LEFT OUTER JOIN dbo.[CaseMaster] CSM
LEFT OUTER JOIN dbo.[Templates] TMP
ON TMP.[WKCODE] = CSM.[CSWKTCODE]
ON CSM.[CSCODE] = MAT.[Code]
LEFT OUTER JOIN [dbo].[FileColours] FCL
ON FCL.[COLOURCODE] = MAT.[FileColour]
WHERE MAT.[Code] = @CaseCode
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FetchTimeEntry_Log'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FetchTimeEntry_Log]
END
GO
CREATE PROCEDURE [dbo].[KAAS_FetchTimeEntry_Log] (@MATTER VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure is used show the data for TimeEntry_Log Details. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchTimeEntry_Log] ` *
* Copied from : [dbo].[ky_NETFetchTimeEntry_Log] *
* *
* Modification History: *
* 2015-11-12 Pino Carafa Imported into Release 2 of Framework *
* Include new columns *
* 2019-07-25 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT [HAN].[NAME] AS [FEEEARN],
--[TEL].[DATE] AS [DATE],
CONVERT(VARCHAR, [TEL].[DATE], 23) AS [DATE],
[TEL].[COMMENT] AS [COMMENT],
CASE [TEL].[TIMEORCHARGE]
WHEN 'T' THEN 'Time'
WHEN 'B' THEN 'Bill'
WHEN 'C' THEN 'Charge' END AS [TIMEORCHARGE],
[TEL].[TIME] AS [TIME],
CASE [TEL].[REC_IRR]
WHEN 'C' THEN 'Chargeable'
WHEN 'N' THEN 'Non Chargeable'
WHEN '' THEN 'Chargeable' END AS [REC_IRR],
ISNULL([TEL].[CHARGE], 0.00) AS [CHARGE],
ISNULL([TEL].[BILLEDAMOUNT], 0.00) AS [BILLEDAMOUNT],
ISNULL([TEL].[INVOICENO], 0) AS [INVOICENO],
CASE WHEN [TAC].[DESC] IS NULL
THEN RTRIM(ISNULL([TEL].[TASK], ''))
ELSE RTRIM(ISNULL([TAC].[DESC], '')) END AS [TASK],
CASE [TEL].[LogFor]
WHEN 'C' THEN 'Updated'
WHEN 'D' THEN 'Deleted'
WHEN 'B' THEN 'Marked As Billed'
WHEN 'U' THEN 'Marked As Un-Billed'
WHEN 'M' THEN 'Moved' END AS [LogType],
[TEL].[HandlerLogFor] AS [ByHandler],
RTRIM(ISNULL([BHA].[NAME], '')) AS [ByHandlerName],
[TEL].[LoginLogFor] AS [ByUser],
[TEL].[WhenLogFor] AS [ByDateTime]
FROM [dbo].[TimeEntryLogNew] [TEL]
INNER JOIN [dbo].[matters] [MAT]
ON [MAT].[CODE] = [TEL].[MATTER]
INNER JOIN [dbo].[TasksCodes] [TAC]
ON [TAC].[CODE] = [TEL].[TASK]
INNER JOIN [dbo].[Handlers] [HAN]
ON [HAN].[CODE] = [TEL].[FEEEARN]
LEFT OUTER JOIN [dbo].[Handlers] [BHA]
ON BHA.[CODE] = [TEL].[HandlerLogFor]
WHERE [TEL].[MATTER] = @MATTER
ORDER BY [TEL].[MATTER] ASC,
[TEL].[DATE] ASC,
[TEL].[TimeEntryLogID] DESC
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FetchTimeEntry_Web',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FetchTimeEntry_Web]
GO
CREATE PROCEDURE [dbo].[KAAS_FetchTimeEntry_Web]
(@CaseCode VARCHAR(20),
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SearchText VARCHAR(400) = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL)
AS
/*******************************************************************************************************
* This procedure is used to get net Action Code based on the given Action ID. *
* *
* Stored Procedure Name : [dbo].[KAAS_FetchTimeEntry_Web] *
* Copied from : [dbo].[ky_NETTLFetchTimeEntry3] *
* *
* Modification History: *
* 2019-06-05 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @IsSAM4 bit
DECLARE @TimeEntryTotalCharge DECIMAL(19, 2)
DECLARE @TimeEntryTotalTime INT
DECLARE @TotalCharge Decimal(19, 2)
DECLARE @TotalTime INT
DECLARE @TimeBal INT
DECLARE @ChargeBal DECIMAL(19, 2)
DECLARE @ChargeableBal DECIMAL(19, 2)
DECLARE @NonChargeableBal DECIMAL(19, 2)
DECLARE @NonChargeableTimeBal INT
DECLARE @ChargeableTimeBal INT
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @TotalFeesIssued DECIMAL(19, 2)
SET @IsSAM4 = [dbo].[ISSAM4]()
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(RTRIM(ISNULL(@SearchText, '')) = '' OR RTRIM(@SearchText) = '')
BEGIN
SET @SearchText = ''
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#TimeLedgerTable
FROM
(SELECT TIE.[RecordID] AS [RecordID],
RTRIM(ISNULL(HAN.[CODE], '')) AS [HandlerCode],
RTRIM(ISNULL(HAN.[NAME], '')) AS [FEEEARN],
TIE.[DATE] AS [DATE],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](TIE.[COMMENT], 200) AS [COMMENT],
CASE TIE.[TimeOrCharge]
WHEN 'T' THEN 'Time'
WHEN 'B' THEN 'Bill'
WHEN 'C' THEN 'Charge' END AS [TIMEORCHARGE],
TIE.[TIME] AS [TIME],
CASE
WHEN ([TIME] = 0) THEN ('00:00')
WHEN ([Time] > 0) THEN SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(5), [TIME] / 60))), 2, 2) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(5), [TIME] - (60 * ([TIME] / 60))))), 2, 2)
WHEN ([TIME] < 0) THEN '-' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(5), -[TIME] / 60))), 2, 2) + ':' + SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(NVARCHAR(10), CONVERT(NVARCHAR(5), -[TIME] - (60 * (-[TIME] / 60))))), 2, 2)
END AS [TimeInHours],
CASE TIE.[Rec_Irr]
WHEN 'C' THEN 'Chargeable'
WHEN 'N' THEN 'Non-Chargeable'
WHEN '' THEN 'Chargeable' END AS [REC_IRR],
ISNULL(TIE.[CHARGE], 0.00) AS [CHARGE],
ISNULL(TIE.[BILLEDAMOUNT], 0.00) AS [BILLEDAMOUNT],
ISNULL(TIE.[INVOICENO], 0) AS [INVOICENO],
CASE WHEN TC.[DESC] IS NULL
THEN TIE.[TASK]
WHEN TC.[DESC] IS NOT NULL
THEN TC.[DESC]
ELSE '' END AS [TASK],
CASE WHEN ISNULL(TIE.[WriteOffID], 0) = 0
THEN ''
ELSE CONVERT(VARCHAR(MAX), ISNULL(TIE.[WriteOffID], 0)) END AS [WriteOffID],
TIE.[WriteOffDT] AS [WriteOffDT],
ISNULL(TIE.[Rate], 0) AS [Rate],
ISNULL(TIE.[IncludeInBill], 0) AS [IncludeInBill],
CASE WHEN TIE.[TIMEORCHARGE] = 'B'
OR TIE.[IncludeInBill] = 2
OR TIE.[Rec_Irr] <> 'C'
THEN 0
WHEN @IsSAM4 = 1 AND ISNULL(TIE.[INVOICENO], 0) <> 0
THEN 0
WHEN @IsSAM4 <> 1
THEN ISNULL(TIE.[CHARGE], 0) - ISNULL(TIE.[BILLEDAMOUNT], 0)
ELSE ISNULL(TIE.[CHARGE], 0) END AS [WIP],
TIE.[Task] AS [TaskCode]
FROM [dbo].[TimeEntry] TIE
LEFT OUTER JOIN [dbo].[Matters] MAT
ON MAT.[Code] = TIE.[Matter]
LEFT OUTER JOIN [dbo].[TasksCodes] TC
ON TC.[CODE] = TIE.[Task]
LEFT OUTER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = TIE.[FeeEarn]
WHERE
(
[TIE].[RecordID] LIKE '%' + @SearchText + '%'
OR
[HAN].[CODE] LIKE '%' + @SearchText + '%'
OR
[HAN].[NAME] LIKE '%' + @SearchText + '%'
OR
[TIE].[DATE] LIKE '%' + @SearchText + '%'
OR
[TIE].[COMMENT] LIKE '%' + @SearchText + '%'
OR
[TIE].[TimeOrCharge] LIKE '%' + @SearchText + '%'
OR
[TIE].[Rec_Irr] LIKE '%' + @SearchText + '%'
OR
[TIE].[CHARGE] LIKE '%' + @SearchText + '%'
OR
[TIE].[BILLEDAMOUNT] LIKE '%' + @SearchText + '%'
OR
[TIE].[INVOICENO] LIKE '%' + @SearchText + '%'
OR
[TC].[DESC] LIKE '%' + @SearchText + '%'
OR
[TIE].[TASK] LIKE '%' + @SearchText + '%'
OR
[TIE].[WriteOffID] LIKE '%' + @SearchText + '%'
OR
[TIE].[WriteOffDT] LIKE '%' + @SearchText + '%'
OR
[TIE].[Rate] LIKE '%' + @SearchText + '%'
OR
[TIE].[IncludeInBill] LIKE '%' + @SearchText + '%'
OR
[TIE].[TIMEORCHARGE] LIKE '%' + @SearchText + '%'
)
AND
TIE.[Matter] = @CaseCode) AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'RecordID' THEN [RecordID]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'RecordID' THEN [RecordID]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'HandlerCode' THEN [HandlerCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'HandlerCode' THEN [HandlerCode]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'FEEEARN' THEN [FEEEARN]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'FEEEARN' THEN [FEEEARN]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'DATE' THEN [DATE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'DATE' THEN [DATE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'COMMENT' THEN [COMMENT]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'COMMENT' THEN [COMMENT]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'TIMEORCHARGE' THEN [TIMEORCHARGE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'TIMEORCHARGE' THEN [TIMEORCHARGE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'TIME' THEN [TIME]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'TIME' THEN [TIME]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'TimeInHours' THEN [TimeInHours]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'TimeInHours' THEN [TimeInHours]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'REC_IRR' THEN [REC_IRR]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'REC_IRR' THEN [REC_IRR]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'CHARGE' THEN [CHARGE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'CHARGE' THEN [CHARGE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'BILLEDAMOUNT' THEN [BILLEDAMOUNT]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'BILLEDAMOUNT' THEN [BILLEDAMOUNT]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'INVOICENO' THEN [INVOICENO]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'INVOICENO' THEN [INVOICENO]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'TASK' THEN [TASK]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'TASK' THEN [TASK]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'WriteOffID' THEN [WriteOffID]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'WriteOffID' THEN [WriteOffID]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'WriteOffDT' THEN [WriteOffDT]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'WriteOffDT' THEN [WriteOffDT]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Rate' THEN [Rate]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Rate' THEN [Rate]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'IncludeInBill]' THEN [IncludeInBill]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'IncludeInBill]' THEN [IncludeInBill]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'WIP' THEN [WIP]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'TaskCode' THEN [TaskCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'TaskCode' THEN [TaskCode]
END
END DESC
SELECT
*
FROM
#TimeLedgerTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#TimeLedgerTable
-- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_CaseSummaryPageLoad. If you change any of these calculations,
-- ensure the ones in there are changed as well.
SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0),
@TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0),
@TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Charge], 0) END), 0),
@ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 1
THEN ISNULL(TIE.[Charge], 0)
ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0),
@NonChargeableBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
AND ISNULL(TIE.[Task], '') <> 'WRI'
THEN ISNULL(TIE.[Charge], 0)
ELSE 0 END), 0),
@ChargeableBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') <> 'N'
AND ISNULL(TIE.[Task], '') <> 'WRI'
THEN ISNULL(TIE.[Charge], 0)
ELSE 0 END), 0),
@TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN CASE WHEN TIE.[Charge] = 0
THEN 0
ELSE CONVERT(INT,FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME])
* ((TIE.[Charge] - TIE.[BilledAmount])
/ TIE.[Charge]))) END
ELSE ISNULL(TIE.[Time], 0) END), 0),
@NonChargeableTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
AND ISNULL(TIE.[Task], '') <> 'WRI'
THEN ISNULL(TIE.[TIME], 0)
ELSE 0 END), 0),
@ChargeableTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
OR ISNULL(TIE.[Task], '') = 'WRI'
THEN 0
ELSE ISNULL(TIE.[TIME], 0) END), 0),
@TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
OR ISNULL(TIE.[Task], '') = 'WRI'
THEN 0
ELSE ISNULL(TIE.[Time], 0) END), 0)
FROM
[dbo].[TimeEntry] TIE
WHERE
TIE.[Matter] = @CaseCode
AND ((TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
-- PLEASE NOTE THAT THIS MUST BE IDENTICAL TO RESULT SET 10 IN KAAS_CaseSummaryPageLoad. Please
-- modify both procedures if this needs to be changed.
-- Result Set 10
-- The fees issued to date
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT @TotalFeesIssued = ISNULL(SUM((CASE WHEN HED.[INVCR] = ''I''
THEN TRN.[VALUE]
ELSE TRN.[VALUE] * - 1 END)), 0)
FROM [dbo].[BatchH] HED
INNER JOIN [dbo].[BatchDetails] TRN
ON TRN.[BATCHNO] = HED.[BATCHNO]
WHERE HED.[MATTER] = @CaseCode
AND HED.[POSTED] = ''Y''
AND TRN.[TYPE] = ''I''
AND TRN.[OUTLAY] = ''F'''
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @TotalFeesIssued = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[TransactionsHeaders] HED
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
WHERE HED.[MatterCode] = @CaseCode
--values imported from Axxia
SELECT @TotalFeesIssued = @TotalFeesIssued + ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[Transactions] TRN
LEFT OUTER JOIN [dbo].[TransactionsHeaders] HED
ON HED.[BatchNo] = TRN.[BatchNo]
WHERE TRN.[MatterCode] = @CaseCode
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
AND HED.[BatchNo] IS NULL'
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TotalFeesIssued DECIMAL(19, 2) OUTPUT', @CaseCode = @CaseCode, @TotalFeesIssued = @TotalFeesIssued OUTPUT
/*WIP Calculations*/
SELECT SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeBal / 60), 2, 2) AS [WIPHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeBal - (60 * (@TimeBal / 60))), 2, 2) AS [WIPMins],
@ChargeBal AS [WIPAmt]
/*Total Record Calculations*/
SELECT SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeEntryTotalTime / 60), 2, 2) AS [TotalHours],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @TimeEntryTotalTime - (60 * (@TimeEntryTotalTime / 60))), 2, 2) AS [TotalMins],
@TimeEntryTotalCharge AS [TotalAmt],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @NonChargeableTimeBal / 60), 2, 2) AS [RecNonChargeableHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @NonChargeableTimeBal - (60 * (@NonChargeableTimeBal / 60))), 2, 2) AS [RecNonChargeableMins],
@NonChargeableBal AS [RecNonChargeableAmt],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @ChargeableTimeBal / 60), 2, 2) AS [RecChargeableHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + @ChargeableTimeBal - (60 * (@ChargeableTimeBal / 60))), 2, 2) AS [RecChargeableMins],
@ChargeableBal AS [RecChargeableAmt],
SUBSTRING(CONVERT(VARCHAR(3), 100 + (@ChargeableTimeBal + @NonChargeableTimeBal) / 60), 2, 2) AS [RecTotalHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + (@ChargeableTimeBal + @NonChargeableTimeBal) - (60 * ((@ChargeableTimeBal + @NonChargeableTimeBal) / 60))), 2, 2) AS [RecTotalMins],
@ChargeableBal + @NonChargeableBal AS [RecTotalAmt],
@TotalFeesIssued AS [TotalBilled],
@TotalFeesIssued - (@ChargeableBal + @NonChargeableBal) AS [ProfitLoss] -- Current Profit/Loss = TotalBilled - RecTotalAmt;
/*Write Off Calculations*/
SELECT
CASE
WHEN TIES.[WriteOffTime] > 0
THEN '-'
ELSE ''
END
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[WriteOffTime] / 60)), 2, 2) AS [WOHrs],
SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[WriteOffTime] % 60)), 2, 2) AS [WOMins],
---TIES.[WriteOffTime] / 60 AS [WOHrs],
---TIES.[WriteOffTime] % 60 AS [WOMins],
TIES.[WriteOffValue] As [WOAmt]
FROM (SELECT ISNULL(SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))), 0) AS [WriteOffValue],
ISNULL(SUM(ISNULL(TIE.[Time], 0)), 0) AS [WriteOffTime]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[MATTER] = MAT.[Code]
WHERE TIE.[MATTER] = @CaseCode
AND ((TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C'))
AND TIE.[Task] = 'WRI') TIES
/*Total Billed Amount Calculations */ ------ Commented out as reversed KEYD-3657
--IF @IsSAM4 = 0
-- SELECT ISNULL(SUM(ISNULL([TIE].[BilledAmount], 0)), 0) AS [TotalBill]
-- FROM [dbo].[TimeEntry] [TIE]
-- WHERE [TIE].[Matter] = @CaseCode
--ELSE
-- SELECT @TotalFeesIssued AS [TotalBill]
-- FROM [dbo].[TimeEntry] [TIE]
-- WHERE [TIE].[Matter] = @CaseCode
DECLARE @DraftBillValue DECIMAL(18, 2)
SET @IsSAM4 = [dbo].[ISSAM4]()
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0)
FROM [dbo].[BillHeader] HED
INNER JOIN [dbo].[BillDetails] BD
ON BD.[DRAFTNO] = HED.[DRAFTNO]
WHERE HED.[MATTER] = @CaseCode
AND HED.[BILLNO] = 0'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0)
FROM [dbo].[BillHead] HED
INNER JOIN [dbo].[BillDetail] BD
ON BD.[BillID] = HED.[BillingID]
WHERE HED.[MatterCode] = @CaseCode
AND HED.[BillStatus] <> ''Approved''
AND ISNULL(HED.[ProForma], '''') = ''Y'''
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @CaseCode = @CaseCode, @DraftBillValue=@DraftBillValue OUTPUT
DECLARE @Section68 VARCHAR(10)
DECLARE @IsApproved VARCHAR(10)
DECLARE @CSTimeBal INT
DECLARE @CSChargeBal DECIMAL(19, 2)
DECLARE @CSTotalCharge Decimal(19, 2)
DECLARE @CSTotalTime INT
--Matter values that are re-used elsewhere in this procedure.
SELECT @Section68 = ISNULL(MAT.[Section68],''),
@IsApproved = ISNULL(CON.[Approved],'')
FROM [dbo].[matters] MAT
LEFT OUTER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
WHERE MAT.[Code] = @CaseCode
DECLARE @LDIADATE DATETIME
DECLARE @LDIAACTIONTYPE VARCHAR(1)
DECLARE @LDIATEXT1 VARCHAR(MAX)
DECLARE @LDIAFNCODE VARCHAR(10)
DECLARE @LDIAFNNAME VARCHAR(50)
SELECT TOP 1
@LDIADATE = LDIA.[DATE],
@LDIAACTIONTYPE = LDIA.[ACTIONTYPE],
@LDIATEXT1 = LDIA.[TEXT1],
@LDIAFNCODE = LDIA.[FNCODE],
@LDIAFNNAME = [FEC].[Name]
FROM [dbo].[diary] LDIA
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON LDIA.FNCODE = [FEC].[CODE]
WHERE LDIA.[CASECODE] = @CaseCode
ORDER BY LDIA.[DATE] DESC
DECLARE @MDIADATE DATETIME
DECLARE @MDIAACTIONTYPE VARCHAR(1)
DECLARE @MDIATEXT1 VARCHAR(MAX)
DECLARE @MDIAFNCODE VARCHAR(10)
DECLARE @MDIAFNNAME VARCHAR(50)
SELECT TOP 1
@MDIADATE= MDIA.[DATE],
@MDIAACTIONTYPE = MDIA.[ACTIONTYPE],
@MDIATEXT1 = MDIA.[TEXT1],
@MDIAFNCODE = MDIA.[FNCODE],
@MDIAFNNAME = [FEC].[Name]
FROM [dbo].[diary] MDIA
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON MDIA.FNCODE = [FEC].[CODE]
WHERE MDIA.[CASECODE] = @CaseCode
AND MDIA.[HIGHLIGHTED] = 'Y'
ORDER BY MDIA.[DATE] DESC
DECLARE @NDIADATE DATETIME
DECLARE @NDIAACTIONTYPE VARCHAR(1)
DECLARE @NDIATEXT1 VARCHAR(MAX)
DECLARE @NDIAFNCODE VARCHAR(10)
DECLARE @NDIAFNNAME VARCHAR(50)
SELECT TOP 1
@NDIADATE = NDIA.[DATE],
@NDIAACTIONTYPE = NDIA.[ACTIONTYPE],
@NDIATEXT1 = NDIA.[TEXT1],
@NDIAFNCODE = NDIA.[FNCODE],
@NDIAFNNAME = [FEC].[Name]
FROM dbo.[diary] NDIA
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON NDIA.FNCODE = [FEC].[CODE]
WHERE NDIA.[CASECODE] = @CaseCode
AND NDIA.[STATUS] = 0
ORDER BY NDIA.[DATE] ASC
DECLARE @TIEDATE DATETIME
--Pino 2015-05-27 Start
--SELECT @TIEDATE = (MAX(TIE.[DATE]))
-- FROM [dbo].[TimeEntry] TIE
-- WHERE TIE.[Matter] = @CaseCode
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN DLG.[DATE] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE DLG.[DATE] END)
FROM [dbo].[DebtorsLedger] DLG
WHERE DLG.[MATTER] = @CaseCode'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN TRN.[TransDate] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE TRN.[TransDate] END)
FROM [dbo].[Transactions] TRN
WHERE TRN.[Posted] = ''Y''
AND TRN.[MatterCode] = @CaseCode
AND TRN.[DebtorsValue] <> 0
AND TRN.[CorrectionInd] = ''L''
AND ( ( TRN.[XnType] = ''I''
AND TRN.[RecType] = ''H'')
OR ( TRN.[XnType] = ''J''
AND TRN.[RecType] = ''D''))'
END
EXECUTE sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @CaseCode = @CaseCode, @TIEDATE = @TIEDATE OUTPUT
--Pino 2015-05-27 End
DECLARE @LastTimeEntryDate DATETIME
DECLARE @LastTimeEntryTime INT
DECLARE @LastTimeEntryRate DECIMAL(10, 2)
DECLARE @LastTimeEntryCharge DECIMAL(10, 2)
DECLARE @LastTimeEntryTask VARCHAR(6)
DECLARE @LastTimeEntryComment VARCHAR(1000)
DECLARE @LastTimeEntryFE VARCHAR(10)
DECLARE @LastTimeEntryFEName VARCHAR(50)
DECLARE @CSTimeEntryTotalCharge DECIMAL(19, 2)
DECLARE @CSTimeEntryTotalTime INT
SELECT TOP (1)
@LastTimeEntryDate = TIE.[DATE],
@LastTimeEntryTime = TIE.[Time],
@LastTimeEntryRate = TIE.[Rate],
@LastTimeEntryCharge = TIE.[Charge],
@LastTimeEntryTask = TIE.[Task],
@LastTimeEntryComment = TIE.[Comment],
@LastTimeEntryFE = TIE.[FeeEarn],
@LastTimeEntryFEName = [FEC].[Name]
FROM [dbo].[TimeEntry] TIE
INNER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON [TIE].[FeeEarn] = [FEC].[CODE]
WHERE TIE.[Matter] = @CaseCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
ORDER BY TIE.[Date] DESC,
TIE.[Time] DESC
SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0)
SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0)
-- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
SELECT @CSTimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0),
@CSTimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0),
@CSTotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Charge], 0) END), 0),
@CSChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 1
THEN ISNULL(TIE.[Charge], 0)
ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0),
@CSTimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN CASE WHEN TIE.[Charge] = 0
THEN 0
ELSE CONVERT(INT,
FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME])
* ( (TIE.[Charge] - TIE.[BilledAmount])
/
TIE.[Charge]))) END
ELSE ISNULL(TIE.[Time], 0) END), 0),
@CSTotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Time], 0) END), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[Matter] = @CaseCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
DECLARE @DebtBal DECIMAL(19, 2)
DECLARE @OutlayBal DECIMAL(19, 2)
DECLARE @DebtBalDate DATETIME
DECLARE @OutlayBalDate DATETIME
DECLARE @ClientCurrent DECIMAL(19, 2)
DECLARE @ClientDeposit DECIMAL(19, 2)
-- Please see also: KAAS_FN_MatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
--
-- To ensure SAM3 will retrieve these from [dbo].[matters]
SET @DebtBal = 0
SET @OutlayBal = 0
SET @ClientCurrent = 0
SET @ClientDeposit = 0
IF @IsSAM4 = 1
BEGIN
SET @NCOMMAND = N'
SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)),
@DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)),
@OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)),
@ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0))
FROM [dbo].[Transactions] TRN
WHERE TRN.[MatterCode] = @CaseCode
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND TRN.[CorrectionInd] = ''L'''
EXECUTE sp_executesql @NCOMMAND,
N'@CaseCode VARCHAR(20),
@DebtBal DECIMAL(19, 2) OUTPUT,
@DebtBalDate DATETIME OUTPUT,
@OutlayBal DECIMAL(19, 2) OUTPUT,
@OutlayBalDate DATETIME OUTPUT,
@ClientCurrent DECIMAL(19, 2) OUTPUT,
@ClientDeposit DECIMAL(19, 2) OUTPUT',
@CaseCode = @CaseCode,
@DebtBal = @DebtBal OUTPUT,
@DebtBalDate = @DebtBalDate OUTPUT,
@OutlayBal = @OutlayBal OUTPUT,
@OutlayBalDate = @OutlayBalDate OUTPUT,
@ClientCurrent = @ClientCurrent OUTPUT,
@ClientDeposit = @ClientDeposit OUTPUT
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_FetchUserVariables]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_FetchUserVariables]
GO
CREATE PROCEDURE [KAAS_FetchUserVariables]
(
@CaseCode VARCHAR(20),
@CasePlan VARCHAR(5)
)
AS
/*
[KAAS_FetchUserVariables]
This procedure is used to update user variables based on case plan
Modification History
---------------------------------------------------------------------------------
Date Name Description
---------------------------------------------------------------------------------
2015FEB12 Arun Change NVARCHAR to VARCHAR
2015JUN23 Sridharan KEYD - 2332 - Use of LTRIM(RTRIM(
2019JUL01 Arun Copied from ky_NETMATFetchUserVariables
NOTE: CASE UDF field have removed, hence it not used in UI
-----------------------------------------------------------------------------------
*/
BEGIN
SET NOCOUNT ON
--SELECT
-- U.UDFCATEGORY,
-- RTRIM(S.PROMPT) AS PROMPT,
-- Case RTRIM(s.[TYPE]) WHEN 'Text' THEN CONVERT(NVARCHAR(200),CA.TEXT1)
-- WHEN 'Numeric' THEN CONVERT(NVARCHAR(50),CA.NumberValue)
-- WHEN 'Date' THEN CONVERT(NVARCHAR(20), CA.DateValue, 106)
-- ELSE CONVERT(NVARCHAR(200),CA.TEXT1)
-- END AS [Value],
-- CA.CASECODE,
-- CA.UDFFile,
-- CA.UDFNAME,
-- CA.SEQNO,
-- ISNULL(CA.TEXT1,'-') AS [Text1],
-- S.FILEPREFIX,
-- S.FIELDNAME,
-- S.[FORMAT],
-- S.ACTUALNAME
--FROM
-- CaseUDFAnswers CA
--LEFT OUTER JOIN
-- SystemUserDefinedFields S ON S.FILEPREFIX = CA.UDFFile AND S.FIELDNAME = CA.UDFNAME
--LEFT OUTER JOIN
-- UDFCategory U ON U.ID = s.UDFCategory
--WHERE
-- CA.CASECODE = @CaseCode
--ORDER BY
-- CA.SEQNO
SELECT
WKACCSRN,
WKSRNLIT,
WKSRNCON,
WKSRNPRB,
WKSRNDRC,
WKSRNGEN,*
FROM
Templates
WHERE
WKCODE=@CasePlan
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FileSharingHandlerConnections'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_FileSharingHandlerConnections]
END
GO
CREATE PROCEDURE
[KAAS_FileSharingHandlerConnections]
(@HandlerCode VARCHAR(10),
@DocFolderID INT)
AS
/*************************************************************************************************************
* Stored Procedure Name : KAAS_FileSharingHandlerConnections *
* Copied From : [dbo].[ky_NETSPFileSharingHandlerConnections] *
* *
* List a handler's connection details for all File Sharing servers *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * First compatible version: 5.5.1.2 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2017-06-22 Pino Carafa Created *
* 2017-08-03 Pino Carafa Added Client ID and Client Secret *
* 2017-08-04 Pino Carafa Added Site ID *
* 2017-08-24 Pino Carafa Added Domain and Proxy Settings KEYD-4750 and KEYD-4751 *
* 2017-12-05 Pino Carafa No need to check for Personal Credentials for a Collab server *
* 2019-11-06 Vinodhan Created KAAS_FileSharingHandlerConnections *
* *
*************************************************************************************************************/
BEGIN
SELECT [FSS].[id] AS [ServerID],
[FSS].[Name] AS [ServerName],
[FSS].[Server] AS [Server],
CONVERT(BIT,
CASE WHEN [FSH].[id] IS NULL
AND RTRIM(ISNULL([FSS].[CollabMatter], '')) = '' --2017-12-05
THEN 0
ELSE 1 END) AS [PersonalCredentials],
[FSS].[TypeId] AS [ServerTypeID],
[FSST].[TypeName] AS [ServerType],
ISNULL([FSH].[UserId],
[FSS].[AdminUserId]) AS [UserID],
ISNULL([FSH].[Password],
[FSS].[AdminPassword]) AS [Password],
ISNULL([FSS].[CollabMatter], '') AS [CollabMatter],
ISNULL([FSS].[CollabFolder], '') AS [CollabFolder],
[FSS].[ClientID] AS [ClientID],
[FSS].[ClientSecret] AS [ClientSecret],
[FSS].[SiteID] AS [SiteID],
[FSS].[Domain] AS [Domain],
[FSS].[ProxyType] AS [ProxyType],
[FSS].[ProxyServer] AS [ProxyServer],
[FSS].[ProxyPort] AS [ProxyPort]
FROM [dbo].[FileSharingServers] [FSS]
INNER JOIN [dbo].[FileSharingServerTypes] [FSST]
ON [FSST].[id] = [FSS].[TypeId]
LEFT OUTER JOIN [dbo].[FileSharingHandlers] [FSH]
ON [FSH].[FileSharingHandlerCode] = @HandlerCode
AND [FSH].[FileSharingServersID] = [FSS].[id]
WHERE [FSS].[Retired] = 0
AND ISNULL(@DocFolderID, 0) = ISNULL([FSS].[CollabDocFolderID], 0)
ORDER BY [FSS].[Name]
END
GO
IF OBJECT_ID(N'KAAS_FindKeyId',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_FindKeyId]
GO
CREATE PROCEDURE KAAS_FindKeyId
(
@Result INT OUTPUT
)
AS
/******************************************************************************************************
Stored Procedure Name : KAAS_FindKeyId
Copied From : ky_NETFindKeyId
Description: To find the KeyId for case contact window, when the data is Stored temporary in the grid.
11 JUL 2019 Vinodhan K Created
******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
@Result = IDENT_CURRENT( 'CaseAssociatesContacts' )
SET
@Result = @Result + 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_FlagGetDetails', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_FlagGetDetails]
END
GO
CREATE PROCEDURE [dbo].[KAAS_FlagGetDetails]
(
@CalledFrom INT=0
)
AS
/*******************************************************************************************************
* This Procedure is used to Action Flag Details *
* *
* Stored Procedure Name : [dbo].[KAAS_FlagGetDetails] *
* Copied from : [dbo].[Ky_NETFlagGetDetails] *
* *
* Modification History: *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF (@CalledFrom =1)
SELECT [ActionFlagID],
RTRIM(ISNULL([Description],'')) as [Description],
[IsActive]
FROM [dbo].[ActionFlag]
ORDER BY [ActionFlagID]
ELSE
SELECT [ActionFlagID],
RTRIM(ISNULL([Description],'')) as [Description]
FROM [dbo].[ActionFlag]
WHERE [IsActive] = 1
ORDER BY [ActionFlagID]
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FNConvertUTCDateToTargetTimeZone'
AND SO.[type] = 'FN')
BEGIN
DROP FUNCTION [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]
END
GO
DECLARE @Compatible BIT
SET @Compatible = CASE WHEN ServerProperty('EngineEdition') = 5
THEN 1
WHEN @@VERSION LIKE '%2008%'
THEN 0
WHEN @@VERSION LIKE '%2012%'
THEN 0
WHEN @@VERSION LIKE '%2014%'
THEN 0
ELSE 1 END
IF @Compatible = 1
BEGIN
EXEC ('CREATE FUNCTION
[dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]
(
@Date DATETIME
)
RETURNS DATETIME
AS
/*******************************************************************************************************
* This function is used to convert local time to specified zone time. default is GMT *
* *
* Function : KAAS_FNGetDateForTimeZone *
* *
* Modification History : *
* 2019-07-03 Rajesh P Created *
*******************************************************************************************************/
BEGIN
RETURN
(
SELECT CONVERT(DATETIME,CONVERT(DATETIMEOFFSET, @Date) AT TIME ZONE (SELECT dbo.KAAS_FNGetHandlerTimeZone()))
)
End')
END
ELSE
BEGIN
EXEC ('CREATE FUNCTION [dbo].[KAAS_FNConvertUTCDateToTargetTimeZone]
(
@Date DATETIME
)
RETURNS DATETIME
AS
/*******************************************************************************************************
* This function is used to convert local time to specified zone time. default is GMT *
* *
* Function : KAAS_FNGetDateForTimeZone *
* *
* Modification History : *
* 2019-07-03 Rajesh P Created *
*******************************************************************************************************/
BEGIN
RETURN
(
SELECT @Date
)
End')
END
GO
IF OBJECT_ID('KAAS_FNGetHandlerTimeZone',N'FN') IS NOT NULL
DROP FUNCTION KAAS_FNGetHandlerTimeZone
GO
CREATE FUNCTION [dbo].[KAAS_FNGetHandlerTimeZone]()
RETURNS NVARCHAR(50)
AS
/*******************************************************************************************************
* This function is used to get the handler time zone, for now its default to GMT standard Time *
* *
* Function : KAAS_FNGetDateForTimeZone *
* *
* Modification History : *
* 2019-07-03 Rajesh P Created *
*******************************************************************************************************/
BEGIN
RETURN 'GMT Standard Time'
End
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_FN_ConvertDateToClarion'
AND SO.[type] = 'FN')
BEGIN
DROP FUNCTION [dbo].[KAAS_FN_ConvertDateToClarion]
END
GO
CREATE FUNCTION
[dbo].[KAAS_FN_ConvertDateToClarion]
(@datetime DATETIME)
RETURNS INT
AS
/*****************************************************************************
Converts a date/time value to a Clarion number.
Stored Procedure name : KAAS_FN_ConvertDateToClarion
Copy From : ky_NETFNConvertDateToClarion
2019-07-30 Vinodhan K Created KAAS_FN_ConvertDateToClarion
*****************************************************************************/
BEGIN
DECLARE @notime DATETIME
SET @notime = CONVERT(VARCHAR(8), @datetime, 112)
RETURN DATEDIFF(dd, '18001228', @datetime)
END
GO
/****** Object: StoredProcedure [dbo].[KAAS_GenerateCaseAssociateCode] Script Date: 21/01/2015 12:44:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID(N'KAAS_GenerateCaseAssociateCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GenerateCaseAssociateCode]
GO
CREATE PROCEDURE
[dbo].[KAAS_GenerateCaseAssociateCode]
(@code VARCHAR(100),
@result VARCHAR(100) OUTPUT)
AS
/*******************************************************************************************************
* This procedure is used to Generate Case Associate code. *
* *
* Stored Procedure Name : [dbo].[KAAS_GenerateCaseAssociateCode] *
* Copied from : [dbo].[ky_NETGenerateCaseAssociateCode] *
* *
* Modification History : *
* 2019-05-31 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @var VARCHAR(100)
DECLARE @var1 VARCHAR(100)
DECLARE @zero VARCHAR(100)
DECLARE @len INT
DECLARE @i INT
DECLARE @k VARCHAR(100)
SET @k='0'
SET @i = 0
SET @zero = '';
IF(@code <> '')
BEGIN
SELECT
@var = MAX(SUBSTRING(CODE,LEN(@code)+1,6-LEN(@code)))+1
FROM
CaseAssociatesNames
WHERE
CODE
LIKE
@Code+'[0-9]%'
END
ELSE
BEGIN
SELECT
@var = MAX(SUBSTRING(CODE,LEN(@code)+1,6-LEN(@code)))+1
FROM
CaseAssociatesNames
WHERE
CODE
NOT LIKE
@Code+'%[^0-9]%'
END
--PRINT @var;
IF @var <> ''
BEGIN
SET @var1 = (@code+@var);
SET @len = LEN(@var1);
--PRINT @var;
--PRINT @len;
WHILE @i < (6-@len)
BEGIN
SET @i = @i + 1
SET @zero = (@k+@zero);
END
SET @result = (@code+@zero+@var);
END
ELSE
BEGIN
--PRINT @code;
SET @len = LEN(@code);
--PRINT @code;
WHILE @i < (5-@len)
BEGIN
SET @i = @i + 1
SET @zero = (@k+@zero);
END
SET @result = (@code+@zero+'1');
IF(@len = 6) BEGIN
SET @result = @code;
END
--PRINT @result;
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_GetActionCode]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_GetActionCode]
GO
CREATE PROCEDURE [KAAS_GetActionCode]
(
@CSCODE VARCHAR(15)
)
/*******************************************************************************************************
* This procedure is used to get the Action code. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetActionCode] *
* Copied from : [dbo].[ky_NETGetActionCode] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
SELECT
RTRIM(CSWKTCODE)
FROM
CaseMaster
WHERE
RTRIM(CSCODE) = RTRIM(@CSCODE)
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetActionFlagIDs', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetActionFlagIDs]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetActionFlagIDs]
AS
/*******************************************************************************************************
* This Procedure is used to select Action Flag Details *
* *
* Stored Procedure Name : [dbo].[KAAS_GetActionFlagIDs] *
* Copied from : [dbo].[Ky_NETGetActionFlagIDs] *
* *
* Modification History: *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT ActionFlagID
FROM ActionFlag
WHERE IsActive =1
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetAdestRate'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetAdestRate]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetAdestRate]
(@MatterCode VARCHAR(20),
@ChargeCode VARCHAR(3))
AS
/*******************************************************************************************************
* This procedure is used to get default value from charging matrix for SAM4 *
* *
* Stored Procedure Name : [dbo].[KAAS_GetAdestRate] *
* Copied from : [dbo].[ky_NETGetAdestRate] *
* *
* Modification History : *
* 2019-05-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @ChargeArrangement VARCHAR(3)
DECLARE @MatDebt DECIMAL(18, 2)
DECLARE @MatRate DECIMAL(13, 2)
SELECT @ChargeArrangement = RTRIM(ISNULL([MAT].[ChargeArrangement], ISNULL([CNT].[ChargeArrangement], ''))),
@MatDebt = ISNULL([MAT].[OriginalDebt], 0) + ISNULL([MAT].[DebtInterest], 0) - ISNULL([MAT].[DebtCollected], 0)
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[Contacts] [CNT]
ON [CNT].[Code] = [MAT].[ClientCode]
WHERE [MAT].[Code] = @MatterCode
SELECT @MatRate = CASE WHEN [CMX].[BAND1LIMIT] >= @MatDebt
THEN [CMX].[BAND1RATE]
WHEN [CMX].[BAND2LIMIT] >= @MatDebt
THEN [CMX].[BAND2RATE]
WHEN [CMX].[BAND3LIMIT] >= @MatDebt
THEN [CMX].[BAND3RATE]
WHEN [CMX].[BAND4LIMIT] >= @MatDebt
THEN [CMX].[BAND4RATE]
WHEN [CMX].[BAND5LIMIT] >= @MatDebt
THEN [CMX].[BAND5RATE]
WHEN [CMX].[BAND6LIMIT] >= @MatDebt
THEN [CMX].[BAND6RATE]
WHEN [CMX].[BAND7LIMIT] >= @MatDebt
THEN [CMX].[BAND7RATE]
ELSE [CMX].[BAND8RATE] END
FROM [dbo].[ChargingMatrix] [CMX]
WHERE [CMX].[ARRANGEMENTCODE] = @ChargeArrangement
AND [CMX].[CHARGECODE] = @ChargeCode
SELECT ISNULL(@MatRate, CONVERT(DECIMAL(13, 2), 0)) AS Rate
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetAllHandlersLookupList'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetAllHandlersLookupList]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetAllHandlersLookupList]
AS
/************************************************************************************************************
*
* Return all handlers in alphabetical order by name
*
* Stored Procedure Name : KAAS_GetAllHandlersLookupList
* Copied From : ky_NETSPGetAllHandlersLookupList
*
* Modification History
* 2015-09-17 PINO - Found that the Left Outer Join to FeeEarnerCodes had been
* replaced with an inner join. Reverted back to a left outer join
* However, the BRANCH and NOMINAL need to be retrieved from the fee
* earner, so for those handlers who don't have an associated Fee Earner
* record with the same code, try to link by the [MAILADDRESS] column
* instead.
* 2016-01-29 PINO - Added "IsPartner"
* 2016-02-01 PINO - The Fee Earner row could be Retired while the Handler is active
* 2017-08-06 Vinodhan Created KAAS_GetAllHandlersLookupList
*
************************************************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [CODE],
RTRIM(ISNULL(HAN.[NAME], '')) AS [NAME],
RTRIM(ISNULL(HAN.[TEAM], '')) AS [TEAM],
RTRIM(ISNULL(HAN.[EXCHANGEALIAS], '')) AS [EXCHANGEALIAS],
CASE WHEN RTRIM(ISNULL(HAN.[Retired], 'Y')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired],
RTRIM(ISNULL(FEC.[BRANCH], ISNULL(FEC2.[BRANCH], ''))) AS [BRANCH],
RTRIM(ISNULL(FEC.[NOMINAL], ISNULL(FEC2.[NOMINAL], ''))) AS [NOMINAL],
RTRIM(ISNULL(HAN.[EMAIL], '')) AS [EMAIL],
RTRIM(ISNULL(TEA.[NAME], '')) AS [TeamName],
CASE WHEN ISNULL(FEC.[CODE], FEC2.[CODE]) IS NULL
THEN CONVERT(BIT, 0)
WHEN RTRIM(ISNULL(FEC.[Retired], ISNULL(FEC2.[Retired], 'Y'))) = 'Y'
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1) END AS [IsFeeEarner],
CASE WHEN RTRIM(ISNULL(HAN.[TYPE], '')) = 'P'
THEN CONVERT(BIT, 1)
ELSE CONVERT(BIT, 0) END AS [IsPartner]
FROM [dbo].[Handlers] HAN
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC
ON FEC.[CODE] = HAN.[CODE]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC2
ON FEC2.[CODE] = HAN.[MAILADDRESS]
LEFT OUTER JOIN [dbo].[Handlers] TEA
ON TEA.[CODE] = HAN.[TEAM]
WHERE RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) <> 'Y'
ORDER BY RTRIM(ISNULL(HAN.[NAME], ''))
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetAllSettings'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetAllSettings]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetAllSettings]
AS
/*******************************************************************************************************
* Get system configuration settings *
* *
* Stored Procedure Name : [dbo].[KAAS_GetAllSettings] *
* Copied from : [dbo].[spGetSettings] *
* *
* Modification History : *
* 2019-04-10 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @SETTINGS TABLE
([KeyName] VARCHAR(50),
[KeyValue] VARCHAR(100))
DECLARE @NCOMMAND NVARCHAR(MAX)
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = '
SELECT [SET].[KeyName],
[SET].[KeyValue]
FROM [dbo].[Settings] [SET]'
END
ELSE
BEGIN
SET @NCOMMAND = '
SELECT [SET].[KeyName],
ISNULL(RTRIM(CONVERT(VARCHAR(100), [CTS].[strValue])), [SET].[Keyvalue]) AS [KeyValue]
FROM [dbo].[Settings] [SET]
LEFT OUTER JOIN [dbo].[CtrlStr] [CTS]
ON [CTS].[Code] = [SET].[KeyName]'
END
INSERT
INTO @SETTINGS
([KeyName],
[KeyValue])
EXEC sp_executesql @NCOMMAND
-- Default settings START
IF [dbo].[ISSAM4]() = 0
BEGIN
INSERT
INTO @SETTINGS
([KeyName],
[KeyValue])
SELECT DEF.[KeyName],
DEF.[KeyValue]
FROM (SELECT 'MaxClCode' AS [KeyName],
'6' AS [KeyValue]) DEF
LEFT OUTER JOIN [dbo].[Settings] [SET]
ON [SET].[KeyName] = DEF.[KeyName]
WHERE [SET].[SettingID] IS NULL
END
ELSE
BEGIN
INSERT
INTO @SETTINGS
([KeyName],
[KeyValue])
SELECT DEF.[KeyName],
DEF.[KeyValue]
FROM (SELECT 'MaxClCode' AS [KeyName],
'8' AS [KeyValue]) DEF
LEFT OUTER JOIN [dbo].[Settings] [SET]
ON [SET].[KeyName] = DEF.[KeyName]
WHERE [SET].[SettingID] IS NULL
END
IF [dbo].[ISSAM4]() = 0
BEGIN
INSERT
INTO @SETTINGS
([KeyName],
[KeyValue])
SELECT DEF.[KeyName],
DEF.[KeyValue]
FROM (SELECT 'MaxMatNum' AS [KeyName],
'4' AS [KeyValue]) DEF
LEFT OUTER JOIN [dbo].[Settings] [SET]
ON [SET].[KeyName] = DEF.[KeyName]
WHERE [SET].[SettingID] IS NULL
END
ELSE
BEGIN
INSERT
INTO @SETTINGS
([KeyName],
[KeyValue])
SELECT DEF.[KeyName],
DEF.[KeyValue]
FROM (SELECT 'MaxMatNum' AS [KeyName],
'8' AS [KeyValue]) DEF
LEFT OUTER JOIN [dbo].[Settings] [SET]
ON [SET].[KeyName] = DEF.[KeyName]
WHERE [SET].[SettingID] IS NULL
END
SELECT [SET].[KeyName],
[SET].[KeyValue]
FROM @SETTINGS [SET]
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetAPIVersion',N'P')IS NOT NULL
DROP PROCEDURE KAAS_GetAPIVersion
GO
CREATE PROCEDURE KAAS_GetAPIVersion
AS
/**********************************************************
KAAS_GetAPIVersion
This procedure is used to fetch the latest version of the script
Modification History:
---------------------
DATE NAME DESCRIPTION
--------------------------------------------------------------
2019AUG22 ARUN Created
***********************************************************/
BEGIN
SELECT TOP 1
[Version] as DBVersion, [ReleaseDate]
FROM
[Common].[Release]
ORDER BY
ReleaseID DESC
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetAzureDATInfo'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetAzureDATInfo]
END
GO
Create Procedure
[dbo].[KAAS_GetAzureDATInfo]
(@TrackReference INT,
@Version INT)
AS
/*******************************************************************************************************
* Gets the information Azure needs to retrieve a Diary Attachment *
* *
* Stored Procedure Name : [dbo].[KAAS_GetAzureDATInfo] *
* Copied from : [dbo].[ky_NETSPGetAzureDATInfo] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @FilePath VARCHAR(500)
DECLARE @Document VARCHAR(100)
DECLARE @DotPos INT
DECLARE @SlashPos INT
DECLARE @FileExtension VARCHAR(10)
DECLARE @MatterUniqueID INT
DECLARE @IsCurrent BIT
DECLARE @Type VARCHAR(10)
SELECT @TrackReference = [DAT].[TrackReference],
@Document = RTRIM(ISNULL([DAT].[DOCUMENT], '')),
@FilePath = REVERSE(RTRIM(ISNULL([DAV].[Filepath], ISNULL([DAT].[FILEPATH], '')))),
@MatterUniqueID = [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]
FROM [dbo].[DiaryAttachments] [DAT]
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
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
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]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetCaseAction'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetCaseAction]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetCaseAction]
(@ActionID INT)
/*******************************************************************************************************
* This procedure is used to check the condition for case code enable or disabled *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCaseAction] *
* Copied from : [dbo].[Ky_NETGetCaseAction] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONID] = @ActionID
AND DIA.[STATUS] = 0)
BEGIN
DECLARE @COMMAND VARCHAR(MAX)
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @COMMAND = ' IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[BillHeader] BH
WHERE BH.[ACTIONID] = ' + CONVERT(VARCHAR(10), @ActionID) + ')
BEGIN
SELECT ''True''
END
ELSE
BEGIN
SELECT ''False''
END'
END
ELSE
BEGIN
SET @COMMAND = 'SELECT ''True'''
END
EXEC (@COMMAND)
END
ELSE
BEGIN
SELECT 'False'
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetCaseActionsForCaseType', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetCaseActionsForCaseType]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetCaseActionsForCaseType]
(@CaseType VARCHAR(4))
/*******************************************************************************************************
* This Procedure has been checked for SQL statement general standards/optimization *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCaseActionsForCaseType] *
* Copied from : [dbo].[spGetCaseActionsForCaseType] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SELECT RTRIM(A.WORKTYPE) AS WorkType,
RTRIM(A.ACTIONCODE) AS ActionCode,
CONVERT(INT, A.SEQ) AS Seq,
RTRIM(B.[DESC]) AS [Desc],
RTRIM(B.WKTCODE) AS WKTCode,
RTRIM(B.ACTTYPE) AS ActType,
RTRIM(B.[STATUS]) AS [Status],
RTRIM(B.PROCESSTYPE) AS ProcessType,
RTRIM(B.MILESTONETYPE) AS MileStoneType,
RTRIM(ISNULL(B.[Arrangement],'')) AS [Arrangement]
FROM ActionWorkTypes A
LEFT OUTER JOIN TemplateActions B
ON A.ACTIONCODE= B.ACTIONCODE
WHERE UPPER(A.WORKTYPE)= UPPER(@CaseType)
ORDER BY WORKTYPE,SEQ
END
GO
IF OBJECT_ID(N'KAAS_GetCaseAssociateContacts', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetCaseAssociateContacts]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetCaseAssociateContacts]
(
@NameCode VARCHAR(20)
)
AS
/*******************************************************************************************************
* This sp is used to Fetch Data for Case Associate Contacts WebApi *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCaseAssociateContacts] *
* Copied from : [dbo].[ky_NETFetchCaseAssociateEditLoadData] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @AssCont VARCHAR(100)
SET NOCOUNT ON
SELECT RTRIM(ISNULL(CAC.[NAMECODE], '')) AS [NameCode],
RTRIM(ISNULL(CAST(CAC.[KEYID] AS VARCHAR(20)), '')) AS [KeyId],
RTRIM(ISNULL(CAC.[NAME], '')) AS [Name],
RTRIM(ISNULL(CAC.[SALUTATION], '')) AS [Salutation],
RTRIM(ISNULL(CAC.[JOBTITLE], '')) AS [JobTitle],
RTRIM(ISNULL(CAC.[ADDRESS], '')) AS [Address],
RTRIM(ISNULL(CAC.[PHONE], '')) AS [Phone],
RTRIM(ISNULL(CAC.[FAX], '')) AS [Fax],
RTRIM(ISNULL(CAC.[MOBILE], '')) AS [Mobile],
RTRIM(ISNULL(CAC.[EMAIL], '')) AS [Email],
RTRIM(ISNULL(CAC.[RELATIONSHIP], '')) AS [Relationship],
RTRIM(ISNULL(CAC.[NOTES], '')) AS [Notes]
FROM [dbo].[CaseAssociatesContacts] CAC
WHERE CAC.[NAMECODE] = @NameCode
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetCaseAssociates', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetCaseAssociates]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetCaseAssociates]
(
@CaseCode VARCHAR(20),
@Retired VARCHAR(1) = 'N',
@EmailSearch NVARCHAR(500) = NULL
)
AS
/*******************************************************************************************************
* This procedure is used to return Case Associate from WebApi *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCaseAssociates] *
* Copied from : [dbo].[ky_NETCaseAssociateLoadMainGrid] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
* 2019-07-12 Ramesh K Modified to implement the email search for OWA *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SET @EmailSearch = LTRIM(RTRIM(@EmailSearch));
IF @EmailSearch = ''
BEGIN
SET @EmailSearch = NULL;
END
SELECT CCN.[CASECODE] AS [CaseCode],
RTRIM(CCN.[CONTYPE]) AS [ConType],
CCN.[CONNUM] AS [ConNum],
CCN.[NAMECODE] AS [CaseContactsNameCode],
CCN.[SOLCODE] AS [CaseContactsSolCode],
CCN.[SOLREF] AS [CaseContactsSolRef],
CCN.[INSCODE] AS [CaseContactsInsCode],
CCN.[ASSIGNEDCONTACT] AS [AssignedContact],
CCN.[CONNUM] AS [CaseContactsSeq],
CASE WHEN (RTRIM(ISNULL(CCN.[ForCopy],'0')) = '1' OR RTRIM(ISNULL(CCN.[ForCopy],'0')) = 'Y' )
THEN 'True'
ELSE 'False'
END AS [CaseContactsForCopy],
ISNULL(CCN.[IsAssociateOtherSide],'False') AS [CaseContactsIsAssociateOtherSide],
ISNULL(CCN.Retired,'N') AS [CaseContactsRetired],
CAC.[NAMECODE] AS [CaseAssociatesContactsNameCode],
CAC.[KEYID] AS [CaseAssociatesContactsKeyId],
CAC.[NAME] AS [CaseAssociatesContactsName],
CAC.[PHONE] AS [CaseAssociatesContactsPhone],
CAC.[EMAIL] AS [CaseAssociatesContactsEmail1],
CAC.[NAME] AS [AssignedContactName],
CAC.[PHONE] AS [AssignedContactPhone],
AST.[CODE] AS [AssociateTypeCode],
AST.[DESCRIPTION] AS [AssociateTypeDescription],
CAN.[CODE] AS [CaseAssociateCode],
CAN.[TYPE] AS [CaseAssociateType],
CAN.[NAME] AS [CaseAssociateName],
CAN.[COMPANY] AS [CaseAssociateCompany],
CAN.[ADDRESS] AS [CaseAssociateAddress],
CAN.[PHONENO] AS [CaseAssociatePhoneNo],
CAN.[MOBILENO] AS [CaseAssociateMonileNo],
CAN.[EMAIL] AS [CaseAssociateEmail],
CAN.[SEARCH] AS [CaseAssociateSearch],
CAN.[CONTACTNO] AS [CaseAssociateContactNo],
CAN.[SALUTATION],
CASE WHEN RTRIM(ISNULL(CAN.[COMPANY],'')) <> ''
THEN RTRIM(CAN.[Name]) + ' ('+ RTRIM(CAN.[COMPANY]) +')'
ELSE RTRIM(CAN.[Name])
END AS [CaseAssociateNameNCompany]
FROM [dbo].[CaseContacts] CCN
LEFT OUTER JOIN [dbo].[CaseAssociatesContacts] CAC
ON CAC.[KEYID] = CCN.[ASSIGNEDCONTACT]
LEFT OUTER JOIN [dbo].[AssociateTypes] AST
ON AST.[CODE] = CCN.[CONTYPE]
LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CAN
ON CAN.[CODE] = CCN.[NAMECODE]
WHERE UPPER(CCN.[CASECODE]) = UPPER(@CaseCode)
AND LEN(ISNULL(CCN.[NAMECODE],'')) >0
AND CCN.[NAMECODE] <> 'N/A'
AND LEN(ISNULL(CAN.[NAME],''))>0
AND CAN.[NAME] <> 'N/A'
AND (@RETIRED = 'Y'
OR ISNULL(CCN.Retired, 'N') <> 'Y')
AND
(
@EmailSearch IS NULL
OR
CAN.[EMAIL] LIKE '%' + @EmailSearch + '%'
)
ORDER BY CCN.[CASECODE],
CCN.[CONTYPE],
CCN.[CONNUM]
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetCaseFolders'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetCaseFolders]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetCaseFolders]
(@matter VARCHAR(20),
@documentnamingmethod VARCHAR(1))
AS
BEGIN
/*******************************************************************************************************
* Returns the default location for any documents stored against a case/matter *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCaseFolders] *
* Copied from : [dbo].[ky_NETGetCaseFolders] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
DECLARE @continue INT
DECLARE @strDefaultFolder VARCHAR(255)
DECLARE @error VARCHAR(1000)
DECLARE @strFileName VARCHAR(255)
DECLARE @strClientCode VARCHAR(20)
DECLARE @strMatterNumber VARCHAR(20)
DECLARE @storagemethod VARCHAR(1)
DECLARE @docFolder VARCHAR(255)
SET @continue = 0
SELECT @storagemethod = SCF.[StorageMethod]
FROM [dbo].[SystemConfig] SCF
SET @storagemethod = ISNULL(@storagemethod, 'C')
SELECT @strClientCode = MAT.[ClientCode],
@strMatterNumber = MAT.[Matter]
FROM [dbo].[matters] MAT
WHERE MAT.[Code] = @matter
IF (@continue = 0)
BEGIN
BEGIN TRY
SELECT @strDefaultFolder = (SELECT RTRIM(ISNULL(SC.[SCWPFOLDER], ''))
FROM [dbo].[SystemConfig] SC)
SET @strDefaultFolder = ISNULL(@strDefaultFolder, '')
IF (@strDefaultFolder = '')
BEGIN
SET @continue = 4
SET @error = 'SCWPFOLDER not SET in System Config'
END
END TRY
BEGIN CATCH
SET @continue = 5
SET @error = 'Error retrieving SCWPFOLDER: ' + Error_Message()
END CATCH
END
IF (@continue = 0)
BEGIN
BEGIN TRY
SELECT @strFileName = RTRIM(ISNULL(CLT.[DCOUMENTFOLDER], ''))
FROM [dbo].[client] CLT
WHERE CLT.[CLCODE] = @strClientCode
SET @strFileName = RTRIM(ISNULL(@strFileName, ''))
IF (@strFileName = '')
BEGIN
SET @strFileName = @strDefaultFolder + '\' + @strClientCode
UPDATE CLT
SET CLT.[DCOUMENTFOLDER] = @strFileName
FROM [dbo].[client] CLT
WHERE CLT.[CLCODE] = @strClientCode
END
END TRY
BEGIN CATCH
SET @continue = 1
SET @error = 'Failed to establish Client Document Folder'
END CATCH
END
IF (@storagemethod = 'D')
BEGIN
SET @docFolder = @strDefaultFolder + '\' +
SUBSTRING(CONVERT(VARCHAR(5), 10000 + YEAR(GETDATE())), 2, 4) +
SUBSTRING(CONVERT(VARCHAR(3), 100 + MONTH(GETDATE())), 2, 4)
END
IF (@storagemethod = 'C')
BEGIN
SET @docFolder = @strFileName + '\' + @strMatterNumber
END
SET @docFolder = ISNULL(@docFolder, '')
SELECT RSL.[Continue],
RSL.[Error],
@strDefaultFolder AS [SCWPFolder],
CASE WHEN UNCS.[Drive] IS NULL
THEN @strDefaultFolder
ELSE UNCS.[UNC] + SUBSTRING(@strDefaultFolder, 3, LEN(@strDefaultFolder) - 2) END AS [UNCSCWPFolder],
RSL.[ClientFolder],
CASE WHEN UNC.[Drive] IS NULL
THEN RSL.[ClientFolder]
ELSE UNC.[UNC] + SUBSTRING(RSL.[ClientFolder], 3, LEN(RSL.[ClientFolder]) - 2) END AS [UNCClientFolder],
@docFolder As [DocumentFolder],
CASE WHEN UNCD.[Drive] IS NULL
THEN @docFolder
ELSE UNCD.[UNC] + SUBSTRING(@docFolder, 3, LEN(@docFolder) - 2) END AS [UNCDocumentFolder],
@storagemethod AS [StorageMethod],
@documentnamingmethod AS [DocumentNamingMethod]
FROM (SELECT @continue AS [Continue],
RTRIM(ISNULL(@strFileName, '')) AS [ClientFolder],
RTRIM(ISNULL(@error, '')) AS [Error]) RSL
LEFT OUTER JOIN [dbo].[UNCAlias] UNC
ON UNC.[Drive] = CASE WHEN SUBSTRING(RSL.[ClientFolder], 2, 1) = ':'
THEN LEFT(RSL.[ClientFolder], 1)
ELSE '' END
LEFT OUTER JOIN [dbo].[UNCAlias] UNCS
ON UNCS.[Drive] = CASE WHEN SUBSTRING(@strDefaultFolder, 2, 1) = ':'
THEN LEFT(@strDefaultFolder, 1)
ELSE '' END
LEFT OUTER JOIN [dbo].[UNCAlias] UNCD
ON UNCD.[Drive] = CASE WHEN SUBSTRING(@docFolder, 2, 1) = ':'
THEN LEFT(@docFolder, 1)
ELSE '' END
END
GO
IF OBJECT_ID(N'KAAS_GetCaseTypeLookupList',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GetCaseTypeLookupList]
GO
CREATE PROCEDURE
[dbo].[KAAS_GetCaseTypeLookupList]
(@Retired VARCHAR(1) = 'N',
@CasePlan VARCHAR(20) = '')
/*******************************************************************************************************
* To fetch case plan *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCaseTypeLookupList] *
* Copied from : [dbo].[spGetCaseTypeLookupList] *
* *
* Modification History : *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SELECT RTRIM(WKCODE) AS Code,
RTRIM(WKDESC) AS [Description],
RTRIM(WKPATH) AS CTPath
FROM Templates
WHERE ISNULL(Retired,'N') in (@Retired, 'N' )
OR WKCODE=@CasePlan
ORDER BY WKCODE
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetCaseUDFsForSearch'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetCaseUDFsForSearch]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetCaseUDFsForSearch]
(@matter VARCHAR(20))
AS
/*******************************************************************************************************
* Lists the Case UDF Fields at the bottom of the Matter selection pages *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCaseUDFsForSearch] *
* Copied from : [dbo].[ky_NETSPGetCaseUDFsForSearch] *
* *
* Modification History : *
* 2019-05-08 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(SUF.[PROMPT], '')) AS [Prompt],
CASE WHEN ISNULL(SUF.[Type], '') = 'Numeric'
THEN CASE WHEN CUF.[NumberValue] IS NULL
THEN RTRIM(ISNULL(CONVERT(VARCHAR(MAX), CUF.[TEXT1]), ''))
ELSE CONVERT(VARCHAR(20), ISNULL(CUF.[NumberValue], 0)) END --2017-03-24
WHEN ISNULL(SUF.[Type], '') <> 'Date'
THEN RTRIM(ISNULL(LUP.[Description], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), CUF.[TEXT1]), ''))))
WHEN NOT CONVERT(VARCHAR(20),ISNULL(CUF.[NumberValue],0)) = '0.00'
THEN CONVERT(VARCHAR, DATEADD(dd, ISNULL(CUF.[NumberValue], 0), '18001228'), 106)
ELSE RTRIM(ISNULL(CONVERT(VARCHAR(MAX), CUF.[TEXT1]), '')) END AS [Value],
RTRIM(ISNULL(CONVERT(VARCHAR(MAX), CUF.[TEXT1]), '')) AS [Text]
FROM [dbo].[CaseUDFAnswers] CUF
LEFT OUTER JOIN [dbo].[SystemUserDefinedFields] SUF
ON SUF.[FILEPREFIX] = CUF.[UDFFILE]
AND SUF.[FIELDNAME] = CUF.[UDFNAME]
LEFT OUTER JOIN [dbo].[UDFLookups] LUP
ON LUP.[FieldName] = CONVERT(VARCHAR(30), CUF.[UDFNAME])
AND LUP.[CODE] = CONVERT(VARCHAR(3), CUF.[Text1])
WHERE CUF.[CASECODE] = @matter
AND SUF.[COMMON] = 1
ORDER BY CUF.[SEQNO]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetCaseWorkType'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetCaseWorkType]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetCaseWorkType]
(@MatterCode VARCHAR(20))
AS
/*******************************************************************************************************
* Gets the Work Type to default to in the Case Diary for this matter *
* - will get CSWKTCODE if this refers to an existing Work Type *
* - if that fails it will get the GEN code if it exists and it isn't retired *
* - finally, as a last resort, if both the above fail it will get the first available non-retired one *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCaseWorkType] *
* Copied from : [dbo].[ky_NETSPGetCaseWorkType] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @WKCODE VARCHAR(4)
DECLARE @Retired CHAR(1)
SELECT @WKCODE = RTRIM(ISNULL([TMP].[WKCODE], '')),
@Retired = CASE WHEN ISNULL([TMP].[Retired], 'N') = 'Y'
THEN 'Y'
ELSE 'N' END
FROM [dbo].[CaseMaster] [CSM]
INNER JOIN [dbo].[Templates] [TMP]
ON [TMP].[WKCODE] = [CSM].[CSWKTCODE]
WHERE [CSM].[CSCODE] = @MatterCode
IF NOT @WKCODE IS NULL
BEGIN
SELECT @WKCODE AS [CsWktCode],
@Retired AS [Retired]
RETURN
END
SELECT @WKCODE = RTRIM(ISNULL([TMP].[WKCODE], '')),
@Retired = CASE WHEN ISNULL([TMP].[Retired], 'N') = 'Y'
THEN 'Y'
ELSE 'N' END
FROM [dbo].[Templates] [TMP]
WHERE [TMP].[WKCODE] = 'GEN'
AND ISNULL([TMP].[Retired], 'N') <> 'Y'
IF NOT @WKCODE IS NULL
BEGIN
SELECT @WKCODE AS [CsWktCode],
@Retired AS [Retired]
RETURN
END
SELECT TOP 1
@WKCODE = RTRIM(ISNULL([TMP].[WKCODE], '')),
@Retired = CASE WHEN ISNULL([TMP].[Retired], 'N') = 'Y'
THEN 'Y'
ELSE 'N' END
FROM [dbo].[Templates] [TMP]
WHERE [TMP].[WKCODE] = 'GEN'
AND ISNULL([TMP].[Retired], 'N') <> 'Y'
ORDER BY [TMP].[WKCODE]
IF NOT @WKCODE IS NULL
BEGIN
SELECT @WKCODE AS [CsWktCode],
@Retired AS [Retired]
RETURN
END
SELECT CONVERT(VARCHAR(4), '') AS [CsWktCode],
CONVERT(CHAR(1), 'Y') AS [Retired]
END
GO
IF OBJECT_ID(N'KAAS_GETChargeRate',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GETChargeRate]
GO
CREATE PROCEDURE [dbo].[KAAS_GETChargeRate]
(@HandlerCode VARCHAR(10),
@Matter VARCHAR(20),
@TaskCode VARCHAR(6) = '')
AS
/*******************************************************************************************************
* Get rate for posting time based on Handler, Matter and Task Code. *
* *
* Stored Procedure Name : [dbo].[KAAS_GETChargeRate] *
* Copied from : NA *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @TimeorCharge VARCHAR(1)
SET @TimeorCharge = (
SELECT
TOP 1 TimeOrCharge
FROM
TimeDayBook
WHERE
Matter = @Matter or
FeeEarn = @HandlerCode
ORDER BY 1 DESC
)
SELECT CASE WHEN ISNULL(MAT.[ChargeOutRateInd], 'N') = 'Y'
THEN CASE WHEN MHCG.[Rate] IS NULL
THEN ISNULL(MCR.[Rate], 0)
WHEN MHCG.[Rate] IS NOT NULL
AND MCR.[Rate] IS NOT NULL
THEN ISNULL(MCR.[Rate], 0)
ELSE MHCG.[Rate] END
WHEN ISNULL(CON.[ChargeOutRateInd], 'N') = 'Y'
THEN CASE WHEN CHCG.[Rate] IS NULL
THEN ISNULL(CCR.[Rate], 0)
WHEN CHCG.[Rate] IS NOT NULL
AND CCR.[Rate] IS NOT NULL
THEN ISNULL(CCR.[Rate], 0)
ELSE CHCG.[Rate] END
ELSE ISNULL(FEP.[ChargeFct], 1.00) * (CASE WHEN FER.[RATE] = 0 THEN ISNULL(H.[RATE], 0) ELSE FER.[RATE] END) END AS [Rate],
ISNULL(@TimeorCharge,'T') AS [TimeorCharge]
FROM [dbo].[Matters] MAT
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
OUTER APPLY (SELECT MCOR.[Rate]
FROM [dbo].[Handlers] HS
INNER JOIN [dbo].[HandlerChargeGroups] HCG
ON HS.[ChargeGroup] = HCG.[Code]
INNER JOIN [dbo].[MatterChargeOutRates] MCOR
ON MCOR.[FeCode] = HCG.[Code]
AND MCOR.[MatterCode] = @Matter
WHERE HS.[CODE] = @HandlerCode) MHCG
OUTER APPLY (SELECT MCOR.[Rate]
FROM [dbo].[Handlers] HS
INNER JOIN [dbo].[HandlerChargeGroups] HCG
ON HS.[ChargeGroup] = HCG.[Code]
INNER JOIN [dbo].[ClientChargeOutRates] MCOR
ON MCOR.[FeCode] = HCG.[Code]
AND MCOR.[ClientCode] = MAT.[ClientCode]
WHERE HS.[CODE] = @HandlerCode) CHCG
OUTER APPLY (SELECT MCOR.[Rate]
FROM [dbo].[MatterChargeOutRates] MCOR
WHERE MCOR.[FeCode] = @HandlerCode
AND MCOR.[MatterCode] = @Matter) MCR
OUTER APPLY (SELECT CCOR.[Rate]
FROM [dbo].[ClientChargeOutRates] CCOR
WHERE CCOR.[FeCode] = @HandlerCode
AND CCOR.[ClientCode] = MAT.[CLIENTCODE]) CCR
CROSS APPLY (SELECT CASE ISNULL(MAT.[ChargeLevel], 3)
WHEN 1 THEN ISNULL(HDL.[RATE1], 0)
WHEN 2 THEN ISNULL(HDL.[RATE2], 0)
WHEN 3 THEN ISNULL(HDL.[RATE3], 0)
WHEN 4 THEN ISNULL(HDL.[RATE4], 0)
WHEN 5 THEN ISNULL(HDL.[RATE5], 0)
ELSE ISNULL(HDL.[RATE], 0) END AS [RATE]
FROM [dbo].[Handlers] HDL
WHERE HDL.[CODE] = @HandlerCode) FER
OUTER APPLY (SELECT CASE ISNULL(TAC.[ChargeLevel], 'C')
WHEN 'A' THEN 0.33
WHEN 'B' THEN 0.67
WHEN 'C' THEN 1.00
WHEN 'D' THEN 1.33
WHEN 'E' THEN 1.67
ELSE 1.00 END AS [ChargeFct]
FROM [dbo].[TasksCodes] TAC
WHERE TAC.[CODE] = @TaskCode) FEP
LEFT OUTER JOIN [dbo].[Handlers] H
ON H.[CODE] = @HandlerCode
WHERE MAT.[Code] = @Matter
END
GO
IF OBJECT_ID(N'KAAS_GetChequeColumns', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetChequeColumns]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetChequeColumns]
AS
/*******************************************************************
*
* Gets the sizes of the columns in Cheque related tables
*
* Stored Procedure Name : KAAS_GetChequeColumns
* Copied From : ky_NETSPGetChequeColumns
*
* Modify History:
* ????-??-?? ??? Created
* 2019-08-06 John Ginnane Added to SVN
* 2019-08-06 Vinodhan Created KAAS_GetChequeColumns
*******************************************************************/
BEGIN
DECLARE @ChequeTables VARCHAR(MAX)
SET @ChequeTables = '**ChequeRequisitionHeader**ChequeRequisitionDetail**ChequeRequisitions**'
SELECT DISTINCT
LOWER(SC.[name]) AS [ColumnName],
ST.[name] As [TypeName],
[dbo].[KAAS_FN_GetColumnSize](SO.[object_id], SC.[column_id]) AS [MaxLength]
FROM [sys].[objects] SO
INNER JOIN [sys].[columns] SC
INNER JOIN [sys].[types] ST
ON ST.[system_type_id] = SC.[system_type_id]
ON SC.[object_id] = SO.[object_id]
WHERE PATINDEX('%**' + SO.[name] + '**%', @ChequeTables) > 0
AND SO.[type] = 'U'
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetClientContact'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetClientContact]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetClientContact]
(@CLCODE VARCHAR(8),
@CLNUMCONTACT INT)
AS
/*******************************************************************************************************
* Gets the details for a Client Contact. *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_GetClientContact] *
* Copied from : [dbo].[ky_NETSPGetClientContact] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM([CC].[CLCODE]) AS [CLCODE],
[CC].[CLNUMCONTACT] AS [CLNUMCONTACT],
RTRIM(ISNULL([CC].[CLTITLE], '')) AS [CLTITLE],
RTRIM(ISNULL([CC].[CLINITS], '')) AS [CLINITS],
RTRIM(ISNULL([CC].[CLNAMECON], '')) AS [CLNAMECON],
RTRIM(ISNULL([CC].[CLSALUTE], '')) AS [CLSALUTE],
RTRIM(ISNULL([CC].[CLSSNUMBER], '')) AS [CLSSNUMBER],
RTRIM(ISNULL([CC].[FIRSTNAME], '')) AS [FIRSTNAME],
RTRIM(ISNULL([CC].[SURNAME], '')) AS [SURNAME],
RTRIM(ISNULL([CC].[Address], '')) AS [Address],
RTRIM(ISNULL([CC].[HomePhone], '')) AS [HomePhone],
RTRIM(ISNULL([CC].[WorkPhone], '')) AS [WorkPhone],
RTRIM(ISNULL([CC].[Mobile], '')) AS [Mobile],
RTRIM(ISNULL([CC].[EmailAddress], '')) AS [EmailAddress],
RTRIM(ISNULL([CC].[PPSNo], '')) AS [PPSNo],
RTRIM(ISNULL([CC].[BankSortCode], '')) AS [BankSortCode],
CONVERT(NVARCHAR(11),RTRIM([CC].[Dob]),121) AS [Dob],
CONVERT(NVARCHAR(11),RTRIM([CC].[MarrigeDate]),121) AS [MarrigeDate],
CONVERT(NVARCHAR(11),RTRIM([CC].[DateofDeath]),121) AS [DateofDeath],
RTRIM(ISNULL([CC].[Occupation], '')) AS [Occupation],
RTRIM(ISNULL([CC].[Marketing], '')) AS [Marketing],
RTRIM(ISNULL([CC].[MartialStatus], '')) AS [MartialStatus],
RTRIM(ISNULL([CC].[County], '')) AS [County],
RTRIM(ISNULL([CC].[PostalCode], '')) AS [PostalCode],
RTRIM(ISNULL([CC].[FaxNumber], '')) AS [FaxNumber],
RTRIM(ISNULL([CC].[BankName], '')) AS [BankName],
RTRIM(ISNULL([CC].[BankAddress], '')) AS [BankAddress],
RTRIM(ISNULL([CC].[BankSortCode], '')) AS [BankSortCode],
RTRIM(ISNULL([CC].[BankAccNo], '')) AS [BankAccNo],
RTRIM(ISNULL([CC].[IBAN], '')) AS [IBAN],
RTRIM(ISNULL([CC].[BIC], '')) AS [BIC],
RTRIM(ISNULL([CC].[EFTEmailAddress], '')) AS [EFTEmailAddress],
RTRIM(ISNULL([CC].[BankType], '')) AS [BankType],
[CC].[id] AS [id],
RTRIM(ISNULL([CC].[DXREF], '')) AS [DXREF]
FROM [dbo].[ClientContacts] [CC]
WHERE [CC].[CLCODE] = @CLCODE
AND [CC].[CLNUMCONTACT] = @CLNUMCONTACT
END
GO
IF OBJECT_ID(N'KAAS_GetClientContacts', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetClientContacts]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetClientContacts] (
@CLIENTCODE VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure returns the specified client's contacts *
* *
* Stored Procedure Name : [dbo].[KAAS_GetClientContacts] *
* Copied from : [dbo].[ky_NETGetClientContacts] *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT [CC].[CLINITS] AS [Initials],
[CC].[CLNAMECON] AS [FullName],
[CC].[HomePhone] AS [HomePhone],
[CC].[WorkPhone] AS [WorkPhone],
[CC].[Mobile] AS [Mobile],
[CC].[FIRSTNAME] AS [FirstName],
[CC].[SURNAME] AS [Surname],
[CC].[CLSALUTE] AS [Salutation],
[CC].[PPSNo] AS [PPSNumber],
[CC].[CLTITLE] AS [Title],
[CC].[Address],
[CC].[EmailAddress],
CONVERT(VARCHAR(11), [CC].[DOB], 106) AS [DOB],
CONVERT(VARCHAR(11), [CC].[MarrigeDate], 106) AS [MarriageDate],
[CC].[Occupation],
[CC].[DateofDeath],
[MC].[CDEDESC] AS [MartialStatus],
[CC].[MartialStatus] AS [MStatus],
[CC].[FaxNumber],
[CC].[PostalCode],
[CC].[County],
[CC].[CLNUMCONTACT],
[CC].[DXREF]
FROM [dbo].[ClientContacts] [CC]
LEFT OUTER JOIN [dbo].[MiscCodes] [MC]
ON [MC].[CDECODE] = [CC].[MartialStatus]
AND [MC].[CDETYPE] = 'MRS'
WHERE [CC].[CLCODE] = @CLIENTCODE
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetContactPrivilegeGroups'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetContactPrivilegeGroups]
END
GO
CREATE PROCEDURE
[KAAS_GetContactPrivilegeGroups]
(@ContactCode VARCHAR(20))
AS
/*******************************************************************************************************
* Lists the privilege groups in the system, AND whether the matter passed in *
* through @matter is part of these groups. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetContactPrivilegeGroups] *
* Copied from : [dbo].[ky_NETGetContactPrivilegeGroups] *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT CONVERT(VARCHAR(20), RTRIM(ISNULL(MAT.[Code], ''))) AS [MATTER],
SNG.[GroupID],
SNG.[BitWiseID],
SNG.[GroupName],
CASE WHEN MNP.[ContactCode] IS NULL
THEN 'NOT SET'
WHEN MNP.[Previleges] & SNG.[BitWiseID] <> 0
THEN 'YES'
ELSE 'NO' END AS [IsInGroup],
ApplyToNewMatters
FROM [Contacts] MAT
CROSS APPLY [SecurityNetGroups] SNG
LEFT OUTER JOIN [ContactNETPrivileges] MNP
ON MNP.[ContactCode] = MAT.[Code]
WHERE MAT.[Code] = @ContactCode
END
GO
IF OBJECT_ID(N'KAAS_GetContactsByHandlerPrivilege',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GetContactsByHandlerPrivilege]
GO
CREATE PROCEDURE
[dbo].[KAAS_GetContactsByHandlerPrivilege]
(@Handler VARCHAR(10),
@SearchText VARCHAR(4000) = '',
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL)
AS
/*******************************************************************************************************
* This stored procedure is used to fetch SecurityNETGroups details. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetContactsByHandlerPrivilege] *
* Copied from : [dbo].[ky_NetGetContactsByHandlerPrivilege] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
* 2019-07-29 Vinodhan K Searching, Sorting, Pagination added. *
*******************************************************************************************************/
BEGIN
DECLARE @BitWiseID BIGINT
SELECT @BitWiseID = HGM.[BitWiseID]
FROM [dbo].[HandlerNETGroupMembership] HGM
WHERE HGM.[HANDLER] = @Handler
SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@HANDLER, ''))))
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
SET @PageSize = ISNULL(@PageSize, 0) ;
DECLARE @StartRow INT = NULL;
DECLARE @EndRow INT = NULL;
IF(@PageNumber > -1 AND @PageSize > 0)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF (@HANDLER = 'ADM')
BEGIN
SET @BitWiseID = CONVERT(BIGINT, -1)
END
SELECT
IDENTITY(int, 1,1) AS [Row_Number],
*
INTO
#FoundTable
FROM
(
SELECT RTRIM(ISNULL(CON.[Code], '')) AS [Code],
RTRIM(ISNULL(CON.[Name], '')) AS [Name],
RTRIM(ISNULL(CON.[Address], '')) AS [Address],
RTRIM(ISNULL(CON.[Tel], '')) AS [Tel],
RTRIM(ISNULL(CON.[email], '')) AS [Email],
RTRIM(ISNULL(CON.[FE], '')) AS [Fe],
RTRIM(ISNULL(CON.[CompMatter], '')) AS [BillingMatter],
RTRIM(ISNULL(FEC.[Name],'')) AS FeeName
FROM [dbo].[Contacts] CON
LEFT OUTER JOIN [dbo].[ContactNETPrivileges] CNP
ON CNP.[ContactCode] = CON.[Code]
LEFT OUTER JOIN [dbo].FeeEarnerCodes FEC on FEC.Code = CON.FE
WHERE ( CNP.[Previleges] IS NULL
OR ISNULL(CNP.[Previleges], CONVERT(BIGINT, -1)) & @BitWiseID <> 0)
AND
(CON.[Code] LIKE '%' + @SearchText + '%'
OR
CON.[Name] LIKE '%' + @SearchText + '%'
OR
CON.[Address] LIKE '%' + @SearchText + '%'
OR
CON.[Tel] LIKE '%' + @SearchText + '%'
OR
CON.[email] LIKE '%' + @SearchText + '%'
OR
CON.[CompMatter] LIKE '%' + @SearchText + '%'
OR
CON.[Name] LIKE '%' + @SearchText + '%')
)AS Conditions
--ORDER BY [CON].[Code]
ORDER BY CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Code' THEN [Code]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Address' THEN [Address]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Address' THEN [Address]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Tel' THEN [Tel]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Tel' THEN [Tel]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'email' THEN [email]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'email' THEN [email]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'BillingMatter' THEN [BillingMatter]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'BillingMatter' THEN [BillingMatter]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'FeName' THEN FeeName
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'FeName' THEN FeeName
END
END DESC
SELECT *
FROM #FoundTable
WHERE (
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT (COUNT([Row_Number]) )
FROM #FoundTable
END
GO
IF OBJECT_ID('KAAS_GetControlSettings','P')IS NOT NULL
DROP PROCEDURE KAAS_GetControlSettings
GO
CREATE PROCEDURE [dbo].[KAAS_GetControlSettings] (
@Handler VARCHAR(10))
AS
/*****************************************************************************
[KaaS_GetControlSettings]
2019-05-08 Arun Vasu Modified to compatable with Keyhouse SaaS
*****************************************************************************/
BEGIN
SET @Handler = ISNULL(@Handler, '')
SELECT CTM.ComponentName,
CTM.[ControlName],
CTM.IsVisible
FROM [dbo].[KHCtlGroups] CTG
INNER JOIN (SELECT DISTINCT
[groupid]
FROM [dbo].[KHCtlHandlers] CTH
WHERE ( CTH.[Handler] = @Handler
AND CTH.[AllHandlers] = 0)
OR ( CTH.[Handler] = ''
AND CTH.[AllHandlers] = 1)) INC
ON INC.[groupid] = CTG.[id]
INNER JOIN [dbo].[KaaSCtlGroupControls] CTC
INNER JOIN [dbo].[KaaSCtlMaster] CTM
ON CTM.[ParentId] = CTC.[masterid]
AND CTM.[Deleted] = 0
ON CTC.[groupid] = CTG.[id]
WHERE CTG.[Deleted] = 0
END
GO
IF OBJECT_ID(N'KAAS_GetCurrentCaseDetailsData',N'P')IS NOT NULL
DROP PROCEDURE KAAS_GetCurrentCaseDetailsData
GO
CREATE PROCEDURE
KAAS_GetCurrentCaseDetailsData
(@MatterCode VARCHAR(30))
AS
/*******************************************************************************************************
* This stored procedure is used to Get Current Case Details data associated with all the tabs in it. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCurrentCaseDetailsData] *
* *
* Modification History : *
* 2019-05-21 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
--Matter Details
SELECT
RTRIM(ISNULL(MAT.[ClientCode], '')) AS [ClientCode],
RTRIM(ISNULL(MAT.[Matter], '')) AS [Matter],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description] ,
RTRIM(ISNULL(MAT.[FECode], '')) AS [FeeEarner],
RTRIM(ISNULL(MAT.[Partner], '')) AS [Partner],
RTRIM(ISNULL(MAT.[Secretary], '')) AS [Secretary],
RTRIM(ISNULL(MAT.[Dept], '')) AS [Dept] ,
RTRIM(ISNULL(MAT.[WType], '')) AS [WType] ,
RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef] ,
RTRIM(ISNULL(MAT.[User1], '')) AS [User1],
RTRIM(ISNULL(MAT.[User2], '')) AS [User2],
RTRIM(ISNULL(MAT.[User3], '')) AS [User3],
RTRIM(ISNULL(MAT.[YourRef], '')) AS [YourRef],
CASE WHEN RTRIM(ISNULL(MAT.[Statements], '')) = 'Y'
THEN 'True'
ELSE 'False' END AS [Statements],
ISNULL(MAT.[Importance], 0) AS [Importance],
RTRIM(ISNULL(MAT.[Status], '')) AS [Status],
RTRIM(ISNULL(MAT.[FileColour], '')) AS [FileColour],
ISNULL(MAT.[Value], 0) AS [ValueToClient],
ISNULL(MAT.[Started],'') AS [Started],
ISNULL(MAT.[StatuteLimits],'') AS [StatuteLimits],
RTRIM(ISNULL(MAT.[DepositName], '')) AS [DepositName],
ISNULL(MAT.[EstFee], 0) AS [EstFee],
ISNULL(MAT.[ExpBillD],'') AS [ExpBillD],
CASE WHEN RTRIM(ISNULL(MAT.[Section68], '')) = 'Y'
THEN 'True'
ELSE 'False' END AS [EstimateGiven],
CASE WHEN RTRIM(ISNULL(MAT.[S13], '')) = 'Y'
THEN 'True'
ELSE 'False' END AS [S13],
ISNULL(MAT.[OutlayBud], 0) AS [OutlayBud],
RTRIM(ISNULL(MAT.[DepositType], '')) AS [DepositType],
RTRIM(ISNULL(MAT.[Comment], '')) AS [Comment],
ISNULL(MAT.[ChargeLevel], 0) AS [ChargeLevel],
ISNULL(MAT.[DebtCollected], 0) AS [DebtCollected],
RTRIM(ISNULL(MAT.[ClientName], '')) AS [ClientName],
RTRIM(ISNULL(MAT.[ClientAddress], '')) AS [ClientAddress],
RTRIM(ISNULL(MAT.[ClientSalutation], '')) AS [ClientSalutation],
RTRIM(ISNULL(MAT.[ChargeArrangement], '')) AS [ChargeArrangement],
CASE WHEN RTRIM(ISNULL(MAT.[ChargeOutRateInd], '')) = 'Y'
THEN 'True'
ELSE 'False' END AS [ChargeOutRateInd],
RTRIM(ISNULL(MAT.[CompFrequency], '')) AS [BillingType],
RTRIM(ISNULL(MAT.[BillingMethod], '')) AS [BillingMethod],
CASE WHEN RTRIM(ISNULL(MAT.[Publish], '')) = 'P'
THEN 'True'
ELSE 'False' END AS [Publish],
RTRIM(ISNULL(CSM.[CSPREMISES], '')) AS [Premises],
RTRIM(ISNULL(CSM.[CSWKTCODE], '')) AS [CasePlanType],
ISNULL(MAT.[CollectingBalance], 0) AS [CollectingBalance],
RTRIM(ISNULL(MAT.[PCode], '')) AS [PCode],
RTRIM(ISNULL(MAT.[PFECode], '')) AS [PFECode],
RTRIM(ISNULL(CSM.[CSCLBENYN], '')) AS [CSCLBENYN],
RTRIM(ISNULL(CSM.[CSCLEXEYN], '')) AS [CSCLEXEYN],
ISNULL(CSM.[CSDATEACCEPT_DATE],'') AS [CSDATEACCEPT_DATE],
ISNULL(MAT.[OriginalDebt], 0) AS [CSORGDEBT], -- John 2015-11-12 This field is used more often (e.g. reports, case import)
ISNULL(CSM.[CSBALDEBT], 0) AS [CSBALDEBT],
RTRIM(ISNULL(CSM.[CSIRTCODE], '')) AS [InterestCode],
RTRIM(ISNULL(CSM.[CSPLAINTNO], '')) AS [RecordNo],
RTRIM(ISNULL(MAT.[FixedFee], '')) AS [FixedFee],
RTRIM(ISNULL(MAT.[ShowCommentInAlarm], '')) AS [ShowCommentInAlarm],
RTRIM(ISNULL(MAT.[Closed], '')) AS [Closed],
ISNULL(MAT.[OrgClosedDate],'') AS [OrgClosedDate],
ISNULL(MAT.[CloseDate],'') AS [CloseDate],
RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [FileColourDescription],
ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB],
RTRIM(ISNULL(MAT.[CompBillingMatter], '')) AS [CompBillingMatter],
RTRIM(ISNULL(MAT.[Branch], '')) AS [Branch],
ISNULL(MAT.[FileNum], 0) AS [FileNum],
ISNULL(MAT.[ClosingDate],'') AS [ClosingDate],
RTRIM(ISNULL(MAT.[Location], '')) AS [Location],
RTRIM(ISNULL(MAT.[ArchiveLocation], '')) AS [ArchiveLocation],
RTRIM(ISNULL(MAT.[FileBarCodeNo], '')) AS [FileBarCodeNo],
RTRIM(ISNULL(MAT.[BoxBarCodeNo], '')) AS [BoxBarCodeNo],
RTRIM(ISNULL(MAT.[BoxNumber], '')) AS [BoxNumber],
ISNULL(MAT.[DestroyDate],'') AS [DestroyDate],
ISNULL([ActualDestroyDate],'') AS [ActualDestroyDate],
RTRIM(ISNULL(MAT.[DestroyedBy], '')) AS [DestroyedBy],
REPLACE(ISNULL(S.Retired,'N'),' ','N') AS [Retired],
REPLACE(ISNULL(FCL.Retired,'N'),' ','N') AS [FileColourRetired],
REPLACE(ISNULL(FE.Retired,'N'),' ','N') AS [FeeEarnerRetired],
REPLACE(ISNULL(D.RETIRED,'N'),' ','N') AS [DepartmentRetired],
REPLACE(ISNULL(W.RETIRED,'N'),' ','N') AS [WorkTypeRetired],
REPLACE(ISNULL(P.RETIRED,'N'),' ','N') AS [PartnerRetired],
REPLACE(ISNULL(T.RETIRED,'N'),' ','N') AS [CasePlanRetired],
RTRIM(ISNULL(MAT.[BillingFE], '')) AS [BillingFeeEarner],
ISNULL(MAT.[Started],'') AS [Started1],
CASE WHEN
ISNULL(MAT.NoWinNoFee,'N') = 'Y'
THEN 'True'
ELSE 'False'
END AS [NoWinNoFee]
FROM
[dbo].[matters] MAT
LEFT JOIN [dbo].[CaseMaster] CSM ON CSM.[CSCODE] = MAT.[Code]
LEFT OUTER JOIN [dbo].[FileColours] FCL ON FCL.[COLOURCODE] = MAT.[FileColour]
LEFT JOIN StatusCodes S ON MAT.[Status] = S.CODE
LEFT JOIN FeeEarnerCodes FE ON RTRIM(MAT.FECode) = RTRIM(FE.Code)
LEFT JOIN Departments D ON RTRIM(MAT.Dept) = RTRIM(D.CODE)
LEFT JOIN WorkTypes W ON RTRIM(MAT.WType) = RTRIM(W.CODE)
LEFT JOIN Partners P ON RTRIM(MAT.[Partner]) = RTRIM(P.CODE)
LEFT JOIN Templates T ON RTRIM(CSM.CSWKTCODE) = RTRIM(T.WKCODE)
WHERE
MAT.[Code] = @MatterCode
--Privileges
EXEC KAAS_GetMatterPrivilegeGroups @MatterCode
--Udf Fields
SELECT
RTRIM(ISNULL(UFC.[UDFCategory], '')) AS [UDFCategory],
RTRIM(ISNULL(SUF.[PROMPT], '')) AS [Prompt],
CASE RTRIM(ISNULL(SUF.[TYPE], ''))
WHEN 'Text'
THEN CONVERT(VARCHAR(200), CUF.[TEXT1])
WHEN 'Numeric'
THEN CONVERT(VARCHAR(50), CUF.[NumberValue])
WHEN 'Date'
THEN CONVERT(VARCHAR, CUF.[DateValue], 106)
ELSE CONVERT(VARCHAR(200), CUF.[TEXT1]) END AS [Value],
RTRIM(ISNULL(CUF.[CASECODE], '')) AS [CaseCode],
RTRIM(ISNULL(CUF.[UDFFile], '')) AS [UDFFile],
RTRIM(ISNULL(CUF.[UDFNAME], '')) AS [UDFName],
ISNULL(CUF.[SEQNO], 0) AS [SeqNo],
RTRIM(ISNULL(CUF.[TEXT1], '-')) AS [Text1],
RTRIM(ISNULL(SUF.[FILEPREFIX], '')) AS [FilePrefix],
RTRIM(ISNULL(SUF.[FIELDNAME], '')) AS [FieldName],
RTRIM(ISNULL(SUF.[FORMAT], '')) AS [Format],
RTRIM(ISNULL(SUF.[ACTUALNAME], '')) AS [ActualName],
ISNULL(CUF.[NumberValue], 0) AS [NumberValue],
CUF.[DateValue] AS [DateValue]
FROM
[dbo].[CaseUDFAnswers] CUF
INNER JOIN [dbo].[SystemUserDefinedFields] SUF
ON SUF.[FILEPREFIX] = CUF.[UDFFile]
AND SUF.[FIELDNAME] = CUF.[UDFNAME]
INNER JOIN [dbo].[UDFCategory] UFC
ON UFC.[ID] = SUF.[UDFCategory]
WHERE
CUF.[CASECODE] = @MatterCode
ORDER BY ISNULL(CUF.[SEQNO], 0)
--Case Associates
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FoundTable
FROM
(SELECT
RTRIM(ISNULL(CSC.[CASECODE], '')) AS [CaseCode],
RTRIM(CSC.[CONTYPE]) AS [ConType],
ISNULL(CSC.[CONNUM], 0) AS [ConNum],
RTRIM(ISNULL(CSC.[NAMECODE], '')) AS [ConNameCode],
RTRIM(ISNULL(CSC.[SOLCODE], '')) AS [SolCode],
RTRIM(ISNULL(CSC.[SOLREF], '')) AS [SolRef],
RTRIM(ISNULL(CSC.[INSCODE], '')) AS [InsCode],
ISNULL(CSC.[ASSIGNEDCONTACT], 0) AS [AssignedContact],
RTRIM(ISNULL(CAC.[NAMECODE], '')) AS [AssociateNameCode],
ISNULL(CAC.[KEYID], 0) AS [KeyId],
RTRIM(ISNULL(CAC.[NAME], '')) AS [ConName],
RTRIM(ISNULL(CAC.[PHONE], '')) AS [Phone],
RTRIM(ISNULL(CAC.[EMAIL], '')) AS [ConEmail],
RTRIM(ISNULL(AST.[CODE], '')) AS [Code],
RTRIM(ISNULL(AST.[DESCRIPTION], '')) AS [Description],
RTRIM(ISNULL(CAN.[CODE], '')) AS [ConCode],
RTRIM(ISNULL(CAN.[TYPE], '')) AS [Type],
RTRIM(ISNULL(CAN.[NAME], '')) AS [AssociateName],
RTRIM(ISNULL(CAN.[COMPANY], '')) AS [Company],
RTRIM(ISNULL(CAN.[ADDRESS], '')) AS [Address],
RTRIM(ISNULL(CAN.[PHONENO], '')) AS [PhoneNo],
RTRIM(ISNULL(CAN.[MOBILENO], '')) AS [MobileNo],
RTRIM(ISNULL(CAN.[EMAIL], '')) AS [AssociateEmail],
RTRIM(ISNULL(CAN.[SEARCH], '')) AS [Search],
ISNULL(CAN.[CONTACTNO], 0) AS [ContactNo],
RTRIM(ISNULL(CAN.[SALUTATION], '')) AS [Salutation],
ISNULL(CSC.[CONNUM], 0) AS [Seq],
CASE WHEN RTRIM(ISNULL(CAN.[COMPANY], '')) <> ''
THEN LTRIM( RTRIM(ISNULL(CAN.[NAME], ''))
+ ' ('
+ RTRIM(ISNULL(CAN.[COMPANY], ''))
+ ')')
ELSE RTRIM(ISNULL(CAN.[NAME], '')) END AS [NameCompany],
ISNULL(CSC.Retired,'N') AS [Retired]
FROM [dbo].[CaseContacts] CSC
LEFT JOIN [dbo].[CaseAssociatesContacts] CAC
ON CAC.[KEYID] = CSC.[AssignedContact]
LEFT JOIN [dbo].[AssociateTypes] AST
ON AST.[CODE] = CSC.[CONTYPE]
LEFT JOIN [dbo].[CaseAssociatesNames] CAN
ON CAN.[CODE] = CSC.[NAMECODE]
AND CAN.[NAME] <> ''
AND CAN.[NAME] <> 'N/A'
AND CAN.[NAME] IS NOT NULL
WHERE CSC.[CASECODE] = @MatterCode
AND CSC.[NAMECODE] <> ''
AND CSC.[NAMECODE] <> 'N/A'
AND CSC.[NAMECODE] IS NOT NULL) AS FoundTable
ORDER BY [CASECODE],
[CONTYPE],
[CONNUM]
SELECT
*
FROM
#FoundTable
--ChargeOut Rate Indicator
SELECT MCOR.[RecordID] AS [RecordId],
RTRIM(MCOR.[FeCode]) AS [FeCode],
ISNULL(MCOR.[Rate], 0) AS [Rate],
MCOR.[EffectiveDate] AS [EffectiveDate],
COALESCE(HAN.[Name], HCG.[Name], MCOR.[FeCode]) AS [FeeEarnerName],
CASE WHEN ISNULL(HAN.[Retired], 'N') = 'Y'
THEN ISNULL(HAN.[Retired], 'N')
ELSE ISNULL(HCG.[Retired], 'N') END AS [IsRetired]
FROM [dbo].[MatterChargeOutRates] AS MCOR
LEFT OUTER JOIN [dbo].[Handlers] AS HAN
ON HAN.[Code] = MCOR.[FeCode]
LEFT OUTER JOIN [dbo].[HandlerChargeGroups] AS HCG
ON HCG.[Code] = MCOR.[FeCode]
WHERE MCOR.[MatterCode] = @MatterCode
AND (ISNULL(HAN.[Retired], 'N') <> 'Y'
OR ISNULL(HCG.[Retired], 'N') <> 'Y')
--Linked Cases List
SELECT
LMT.[RecordId] AS [RecordId],
MAT.[Code] AS [CaseCode],
MAT.[FECode] AS [FeeEarner],
CNT.[Name] AS [Name],
MAT.[Description] AS [Description],
LMT.[RelationShip] AS [Relationship]
FROM [dbo].[LinkedMatters] LMT
INNER JOIN [dbo].[matters] MAT
ON MAT.[Code] = LMT.[LinkedMatter]
INNER JOIN [dbo].[Contacts] CNT
ON CNT.[Code] = MAT.[ClientCode]
WHERE LMT.[PrimeMatter] = @MatterCode
--Revenue Module
SELECT RTRIM(LTRIM(ISNULL(MCC.[CheckCharacter], '') )) AS [CheckCharacter],
RTRIM(LTRIM(ISNULL(MCC.[AddCheckCharacter], ''))) AS [AddCheckCharacter]
FROM [dbo].[MatterCheckChars] AS MCC
WHERE MCC.[MatterCode] = @MatterCode
--Locations
EXECUTE KAAS_ListItemLocations
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetCurrentCaseDetailsPageLoad',N'P')IS NOT NULL
DROP PROCEDURE KAAS_GetCurrentCaseDetailsPageLoad
GO
CREATE PROCEDURE
KAAS_GetCurrentCaseDetailsPageLoad
(@MatterCode VARCHAR(30))
AS
/*******************************************************************************************************
* This stored procedure is used to Get Current Case Details on Page Load. *
* 1. Fee Earner *
* 2. Secretary *
* 3. Partner *
* 4. Department *
* 5. Work Type *
* 6. File Colour *
* 7. Case plan / Type *
* 8. Case Status *
* 9. Deposit Types *
* 10. Charge Arrangement *
* 11. User Prompt *
* 12. Interest Code *
* 13. Handler Charge Group *
* 14. Branch *
* *
* Stored Procedure Name : [dbo].[KAAS_GetCurrentCaseDetailsPageLoad] *
* *
* Modification History : *
* 2019-05-21 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @FEARNER VARCHAR(10)
DECLARE @Handler VARCHAR(10)
DECLARE @Partner VARCHAR(10)
DECLARE @Department VARCHAR(10)
DECLARE @WorkType VARCHAR(10)
DECLARE @FileColor VARCHAR(10)
DECLARE @CasePlan VARCHAR(10)
DECLARE @Status VARCHAR(10)
DECLARE @Interest VARCHAR(10)
SELECT @FEARNER = ISNULL([MAT].[FECode], ''),
@Handler = ISNULL([MAT].[Secretary], ''),
@Partner = ISNULL([MAT].[Partner], ''),
@Department = ISNULL([MAT].[Dept], ''),
@WorkType = ISNULL([MAT].[WType], ''),
@FileColor = ISNULL([MAT].[FileColour], ''),
@CasePlan = ISNULL([CSM].[CSWKTCODE], ''),
@Status = ISNULL([MAT].[Status], ''),
@Interest = ISNULL([CSM].[CSIRTCODE], '')
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[CaseMaster] [CSM]
ON [CSM].[CSCODE] = [MAT].[Code]
WHERE [MAT].[Code] = @MatterCode
--Fee Earner
SELECT RTRIM([Code]) AS [Code],
RTRIM(ISNULL([FEC].[Name], '')) AS [FeeEarners]
FROM [dbo].[FeeEarnerCodes] [FEC]
WHERE ISNULL([FEC].[Retired], 'N') <> 'Y'
OR [FEC].[Code] = @FEARNER
--Secretary
SELECT RTRIM([HAN].[CODE]) AS [Code],
RTRIM(ISNULL([HAN].[NAME], '')) AS [Secretary]
FROM [dbo].[Handlers] [HAN]
WHERE ( [HAN].[Type] ='S'
AND ISNULL([HAN].[RETIRED], 'N') <> 'Y')
OR [HAN].[CODE] = @Handler
--[Partner]
SELECT RTRIM([HAN].[CODE]) AS [Code],
RTRIM(ISNULL([HAN].[NAME], '')) AS [Partners]
FROM [dbo].[Handlers] [HAN]
WHERE ( [HAN].[Type] ='P'
AND ISNULL([HAN].[RETIRED], 'N') <> 'Y')
OR [HAN].[CODE] = @Partner
--Department
SELECT
RTRIM([Code]) AS Code,
RTRIM([Desc]) AS Department
FROM
Departments
WHERE
RETIRED <> 'Y'
OR [CODE] = @Department
--Work Types
SELECT
RTRIM([Code]) AS WKCODE,
RTRIM(ISNULL([DESC],'')) AS WKDESC
FROM
WorkTypes
WHERE
RETIRED <> 'Y'
OR CODE = @WorkType
--File Colour
SELECT
RTRIM(ISNULL([ColourCode],'')) AS Code,
RTRIM(ISNULL([ColourDesc],'')) AS FileDescription,
[RGBColour]
FROM
FileColours
WHERE
ISNULL(Retired,'N') <> 'Y'
OR COLOURCODE = @FileColor
--CasePlan
SELECT
RTRIM([Wkcode]) AS Code,
RTRIM(ISNULL([Wkdesc],'')) AS [CasePlan]
FROM
Templates
WHERE
Retired <> 'Y'
OR WKCODE = @CasePlan
--StatusCodes
SELECT
RTRIM([Code]) AS Code,
RTRIM([Description]) AS CaseStatus
FROM
StatusCodes
WHERE
ISNULL(Retired,'N') <> 'Y'
OR CODE = @Status
--Deposit Types
SELECT
RTRIM([Code]) AS Code,
RTRIM(ISNULL([Description],'')) AS DepositType
FROM
DepositType
--Charge Arrangement
SELECT
RTRIM(ISNULL(Code,'')) AS Code,
RTRIM(ISNULL([Description],'')) AS ChargeArrangement
FROM
ChargeArrangements
--User Prompt
SELECT
UserPrompt1,
UserPrompt2,
UserPrompt3,
YourRef
FROM
[CONTROL]
--Interest Code
SELECT
RTRIM(A.CDETYPE) AS CDETYPE,
RTRIM(A.CDECODE) AS CDECODE,
RTRIM(ISNULL(A.CDEDESC,'')) AS CDEDESC
FROM
dbo.MiscCodes A
WHERE
A.CDETYPE = 'IRT'
AND RETIRED <> 'Y'
OR CDECODE = CASE @Interest WHEN '' THEN '' ELSE @Interest END
ORDER BY
A.CDETYPE DESC, A.CDECODE DESC
--Handler Charge Group
SELECT
'H' as Code,
'Handlers' As ChargeGroup
UNION ALL
SELECT
'CG',
'Charge Groups'
--Branch
SELECT
RTRIM([BranchCode]) as [Code],
RTRIM(ISNULL([Description],'')) as [Branch]
FROM Branch
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetDocumentsIM'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetDocumentsIM]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetDocumentsIM]
(@matter VARCHAR(20),
@ActionID INT,
@DocFolderID INT,
@IMDocs VARCHAR(MAX),
@PageNo INT,
@PageSize INT,
@SearchText VARCHAR(4000),
@FileType VARCHAR(4000),
@SortColumn VARCHAR(50) = '',
@SortDirection VARCHAR(10) = '')
AS
/*************************************************************************************************************
* *
* [dbo].[KAAS_GetDocumentsIM] *
* *
* Get list of Documents for the Document Manager *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * Original: [ky_NETSPGetDocumentsIM] * *
* * First compatible version: 5.7.2.1 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2019-04-23 Vinodhan K Created *
* 2019-05-24 Pino Carafa Performance improvements *
* 2019-05-24 Vinodhan Search field have changed as document instead of filepath *
* 2019-05-24 Arun Performance improvements, *
*************************************************************************************************************/
BEGIN
DECLARE @res TABLE
([id] INT identity(1, 1) PRIMARY KEY,
[ActionId] INT,
[TrackReference] INT,
[IMDocID] VARCHAR(500),
[IMClass] VARCHAR(20),
[DocClass] VARCHAR(10),
[Document] VARCHAR(2000),
[DiaryDate] DATETIME,
[DocumentDate] DATETIME,
[TYPE] VARCHAR(20),
[Attachments] CHAR(1),
[EMAIL] VARCHAR(1),
[EMAILFROM] VARCHAR(200),
[EMAILSENT] DATETIME,
[EMAILTO] VARCHAR(1000),
[CurrentVersion] INT,
[IsInDocFolder] BIT,
[IsShared] BIT,
[UniqueId] INT)
DECLARE @classes TABLE
([KeyhouseClass] INT,
[IMClass] INT,
[ClassCode] VARCHAR(20),
[ClassDescription] VARCHAR(100))
DECLARE @IMDocTable TABLE
([IMDocID] VARCHAR(500) PRIMARY KEY,
[Description] VARCHAR(2000),
[IMClass] VARCHAR(20),
[IMType] VARCHAR(20),
[EmailFrom] VARCHAR(200),
[EmailTo] VARCHAR(1000),
[EmailSent] DATETIME,
[DocumentDate] DATETIME)
DECLARE @Diary TABLE
([ActionID] INT PRIMARY KEY)
DECLARE @FileTypeList TABLE
([FileType] VARCHAR(20) PRIMARY KEY)
INSERT INTO @FileTypeList
SELECT
RTRIM(LTRIM([Item]))
FROM
KAAS_FN_SplitString(@FileType, ',')
DECLARE @idoc INT
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNo = ISNULL(@PageNo, 0) - 1; -- 0 BASED INDEX
IF(@PageNo > -1)
BEGIN
SET @StartRow = ((@PageNo) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'RowNumber'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF (ISNULL(@DocFolderID, 0) = 0) AND (ISNULL(@ActionID, 0) = 0)
BEGIN
SET @IMDocs = ISNULL(@IMDocs, '' + CHAR(13) + CHAR(10) + '')
IF (ISNULL(PATINDEX('%' + CHAR(13) + CHAR(10) + @IMDocs
END
BEGIN TRY
EXEC sp_xml_preparedocument @idoc OUTPUT, @IMDocs
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @idoc OUTPUT, ''
END CATCH
INSERT
INTO @IMDocTable
([IMDocID],
[Description],
[IMClass],
[IMType],
[EmailFrom],
[EmailTo],
[EmailSent],
[DocumentDate])
SELECT [DAL].[IMDocID],
[DAL].[Description],
[DAL].[IMClass],
[DAL].[IMType],
[DAL].[EmailFrom],
[DAL].[EmailTo],
[DAL].[EmailSent],
[DAL].[DocumentDate]
FROM OPENXML(@idoc, 'IMDocs/Doc', 2)
WITH([IMDocID] VARCHAR(500) '@DocId',
[Description] VARCHAR(2000) '@Description',
[IMClass] VARCHAR(20) '@ClassId',
[IMType] VARCHAR(20) '@TypeId',
[EmailFrom] VARCHAR(200) '@EmailFrom',
[EmailTo] VARCHAR(1000) '@EmailTo',
[EmailSent] DATETIME '@EmailSent',
[DocumentDate] DATETIME '@DocumentDate') [DAL]
EXEC sp_xml_removedocument @idoc
INSERT
INTO @res
([ActionId],
[TrackReference],
[IMDocID],
[IMClass],
[DocClass],
[Document],
[DiaryDate],
[DocumentDate],
[EmailSent],
[TYPE],
[Attachments],
[EMAIL],
[EmailFrom],
[EmailTo],
[CurrentVersion],
[IsInDocFolder],
[IsShared])
SELECT CONVERT(INT, NULL) AS [ActionID],
CONVERT(INT, NULL) AS [TrackReference],
[DAL].[IMDocID] AS [IMDocID],
[DAL].[IMClass] AS [IMClass],
CONVERT(VARCHAR(10), NULL) AS [DocClass],
[DAL].[Description] AS [Document],
CONVERT(DATETIME,
ISNULL([DAL].[DocumentDate],
[DAL].[EmailSent])) AS [DiaryDate],
CONVERT(DATETIME,
ISNULL([DAL].[DocumentDate],
[DAL].[EmailSent])) AS [DocumentDate],
CONVERT(DATETIME,
[DAL].[EmailSent]) AS [EMAILSENT],
CASE CONVERT(VARCHAR(20),[DAL].[IMTYPE])
WHEN 'WORD' THEN 'DOC'
WHEN 'WORDX' THEN 'DOC'
WHEN 'WPF' THEN 'DOC'
WHEN 'ANSI' THEN 'DOC'
WHEN 'ACROBAT' THEN 'PDF'
WHEN 'EXCEL' THEN 'XLS'
WHEN 'EXCELX' THEN 'XLS'
WHEN 'MIME' THEN CASE WHEN [DAL].[IMClass] = 'E-Mail'
THEN 'MSG'
ELSE 'MIME' END
ELSE [DAL].[IMTYPE] END AS [TYPE],
CONVERT(CHAR(1),'N') AS [Attachments],
CONVERT(CHAR(1), CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail'
THEN 'Y'
ELSE 'N' END) AS [EMAIL],
CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail'
THEN [DAL].[EMAILFROM]
ELSE CONVERT(VARCHAR(200), NULL) END AS [EmailFrom],
CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail'
THEN [DAL].[EMAILTO]
ELSE CONVERT(VARCHAR(1000), NULL) END AS [EmailTo],
CONVERT(INT, 1) AS [CurrentVersion],
0 AS [IsInDocFolder],
0 AS [IsShared]
FROM @IMDocTable [DAL]
LEFT OUTER JOIN [dbo].[DAIMXref] [DX]
ON [DX].[IMDocID] = [DAL].[IMDocID]
WHERE
(
(
@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 ))
)
)
AND
[DX].[TrackReference] IS NULL
INSERT
INTO @Diary
([ActionID])
SELECT [DIA].[ActionID]
FROM [dbo].[diary] [DIA]
WHERE [DIA].[CASECODE] = @matter
INSERT
INTO @res
([ActionId],
[TrackReference])
SELECT [DIA].[ActionID],
[DAT].[TrackReference]
FROM @Diary [DIA]
INNER JOIN [dbo].[DiaryAttachments] [DAT]
ON [DAT].[DiaryID] = [DIA].[ActionID]
ORDER BY [DAT].[TrackReference] DESC
UPDATE [RES]
SET [RES].[IMDocID] = CONVERT(VARCHAR(500), ISNULL([DX].[IMDocID], '')),
[RES].[IMClass] = CONVERT(VARCHAR(20), ISNULL([DL].[IMClass], '')),
[RES].[DocClass] = CONVERT(VARCHAR(10), ISNULL([DA].[DocClass], '')),
[RES].[Document] = RTRIM(CONVERT(VARCHAR(2000), ISNULL([DA].[Document], ''))),
[RES].[DiaryDate] = CONVERT(DATETIME, [DIA].[DATE]),
[RES].[DocumentDate] = CONVERT(DATETIME, [DA].[DATEENTERED]),
[RES].[EMAILSENT] = CONVERT(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])),
[RES].[TYPE] = CONVERT(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))),
[RES].[Attachments] = CONVERT(CHAR(1), 'Y'),
[RES].[EMAIL] = CONVERT(VARCHAR(1),
CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END),
[RES].[EMAILFROM] = CONVERT(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))),
[RES].[EMAILTO] = RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')),
[RES].[CurrentVersion] = [DV].[CurrentVersion],
[RES].[IsInDocFolder] = [IND].[InDocFolder],
[RES].[IsShared] = [SHD].[IsShared],
[RES].[uniqueid] = [MAT].[uniqueid]
FROM @res [RES]
CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion]
FROM [dbo].[DiaryAttachmentVersioning] [DAV]
WHERE TRACKREFERENCE = [RES].[TRACKREFERENCE]) [DV]
LEFT OUTER JOIN [dbo].[DAIMXRef] [DX]
INNER JOIN @IMDocTable [DL]
ON [DL].[IMDocID] = [DX].[IMDocID]
ON [DX].[TrackReference] = [RES].[TrackReference]
LEFT OUTER JOIN [dbo].[DiaryAttachments] [DA]
INNER JOIN [dbo].[diary] [DIA]
INNER JOIN [dbo].[matters] [MAT]
ON [MAT].[CODE] = [DIA].[CASECODE]
ON [DIA].[ActionID] = [DA].[DiaryID]
ON [DA].[TrackReference] = [RES].[TrackReference]
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1) END AS [InDocFolder]
FROM [dbo].[DocFolderDocuments] [DFD]
WHERE [DFD].[TrackReference] = [DA].[TrackReference]) [IND]
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1) END AS [IsShared]
FROM [dbo].[FileSharingDocuments] [FSD]
INNER JOIN [dbo].[FileSharingMapping] [FSM]
INNER JOIN [dbo].[FileSharingDocFolders] [FSDF]
ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID]
AND [FSDF].[Shared] = 1
ON [FSM].[id] = [FSD].[FileSharingMappingID]
WHERE [FSD].[TrackReference] = [DA].[TrackReference]) [SHD]
WHERE
[RES].[id] >= @StartRow AND
[RES].[id] <= @EndRow
END
ELSE IF ISNULL(@DocFolderID, 0) <> 0
BEGIN
INSERT
INTO @res
([ActionId],
[TrackReference],
[IMDocID],
[IMClass],
[DocClass],
[Document],
[DiaryDate],
[DocumentDate],
[EmailSent],
[TYPE],
[Attachments],
[EMAIL],
[EmailFrom],
[EmailTo],
[CurrentVersion],
[IsInDocfolder],
[IsShared],
[UniqueId])
SELECT CONVERT(INT, [DA].[DIARYID]) AS [ActionID],
CONVERT(INT, [DA].[TrackReference]) AS [TrackReference],
CONVERT(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID],
CONVERT(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass],
CONVERT(VARCHAR(10), ISNULL([DA].[DocClass], '')) AS [DocClass],
RTRIM(CONVERT(VARCHAR(2000), ISNULL([DA].[Document], ''))) AS [Document],
CONVERT(DATETIME, [DIA].[DATE]) AS [DiaryDate],
CONVERT(DATETIME, [DA].[DATEENTERED]) AS [DocumentDate],
CONVERT(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) AS [EMAILSENT],
CONVERT(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) AS [TYPE],
CASE
WHEN [DIA].[ATTACHMENTS] = 'Y'
THEN 'Y'
ELSE 'N'
END AS [Attachments],
CONVERT(VARCHAR(1), CASE
WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y'
THEN 'Y'
ELSE 'N'
END) AS [EMAIL],
CONVERT(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO],
[DV].[CurrentVersion],
CONVERT(BIT, 1),[SHD].[IsShared],[MAT].[uniqueid]
FROM [dbo].[DocFolderDocuments] [DDC]
INNER JOIN [dbo].[DiaryAttachments] [DA]
INNER JOIN [dbo].[matters] [MAT]
ON [DA].CASECODE = [MAT].Code
INNER JOIN [dbo].[diary] [DIA]
ON [DIA].[ACTIONID] = [DA].[DiaryID]
ON [DA].[TrackReference] = [DDC].[TrackReference]
CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion]
FROM [dbo].[DiaryAttachmentVersioning] [DAV]
WHERE TRACKREFERENCE = [DA].[TRACKREFERENCE]) [DV]
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1)
END AS [IsShared]
FROM [dbo].[FileSharingDocuments] [FSD]
INNER JOIN [dbo].[FileSharingMapping] [FSM]
INNER JOIN [dbo].[FileSharingDocFolders] [FSDF]
ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID]
AND [FSDF].[Shared] = 1
ON [FSM].[id] = [FSD].[FileSharingMappingID]
AND [FSM].[FileSharingDocFoldersID] = @DocFolderID
WHERE [FSD].[TrackReference] = [DA].[TrackReference]) [SHD]
LEFT OUTER JOIN [dbo].[DAIMXRef] [DX]
LEFT OUTER JOIN @IMDocTable [DL]
ON [DL].[IMDocID] = [DX].[IMDocID]
ON [DX].[TrackReference] = [DA].[TrackReference]
WHERE [DDC].[DocFolderID] = @DocFolderID AND
(
(
@SearchText = ''
OR
([DA].FILEPATH LIKE '%' + @SearchText + '%')
OR
([DA].[DATEENTERED] LIKE '%' + @SearchText + '%')
OR
([DA].[TYPE] LIKE '%' + @SearchText + '%')
OR
([DA].[DocClass] LIKE '%' + @SearchText + '%')
)
AND
(
ISNULL(@FileType, '') = ''
OR ([DA].[TYPE] IN (select FileType from @FileTypeList ))
)
)
ORDER BY
[TrackReference] DESC
END
ELSE
BEGIN
INSERT
INTO @res
([ActionId],
[TrackReference],
[IMDocID],
[IMClass],
[DocClass],
[Document],
[DiaryDate],
[DocumentDate],
[EmailSent],
[TYPE],
[Attachments],
[EMAIL],
[EmailFrom],
[EmailTo],
[CurrentVersion],
[IsInDocFolder],
[IsShared],
[UniqueId])
SELECT CONVERT(INT, [DA].[DIARYID]) AS [ActionID],
CONVERT(INT, [DA].[TrackReference]) AS [TrackReference],
CONVERT(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID],
CONVERT(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass],
CONVERT(VARCHAR(10), ISNULL([DA].[DocClass], '')) AS [DocClass],
RTRIM(CONVERT(VARCHAR(2000), ISNULL([DA].[Document], ''))) AS [Document],
CONVERT(DATETIME, [DIA].[DATE]) AS [DiaryDate],
CONVERT(DATETIME, [DA].[DATEENTERED]) AS [DocumentDate],
CONVERT(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) AS [EMAILSENT],
CONVERT(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) AS [TYPE],
CASE
WHEN [DIA].[ATTACHMENTS] = 'Y'
THEN 'Y'
ELSE 'N'
END AS [Attachments],
CONVERT(VARCHAR(1), CASE
WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y'
THEN 'Y'
ELSE 'N'
END) AS [EMAIL],
CONVERT(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO],
[DV].[CurrentVersion],
[IND].[InDocFolder],
[SHD].[IsShared],
[MAT].[uniqueid]
FROM [dbo].[diary] [DIA]
INNER JOIN [dbo].[DiaryAttachments] [DA]
INNER JOIN [dbo].[matters] [MAT]
ON [DA].CASECODE = [MAT].Code
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1) END AS [InDocFolder]
FROM [dbo].[DocFolderDocuments] [DFD]
WHERE [DFD].[TrackReference] = [DA].[TrackReference]) [IND]
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1) END AS [IsShared]
FROM [dbo].[FileSharingDocuments] [FSD]
INNER JOIN [dbo].[FileSharingMapping] [FSM]
INNER JOIN [dbo].[FileSharingDocFolders] [FSDF]
ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID]
AND [FSDF].[Shared] = 1
ON [FSM].[id] = [FSD].[FileSharingMappingID]
WHERE [FSD].[TrackReference] = [DA].[TrackReference]) [SHD]
ON [DA].[DiaryID] = [DIA].[ActionID]
CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion]
FROM [dbo].[DiaryAttachmentVersioning] [DAV]
WHERE TRACKREFERENCE = [DA].[TRACKREFERENCE]) [DV]
LEFT OUTER JOIN [dbo].[DAIMXRef] [DX]
LEFT OUTER JOIN @IMDocTable [DL]
ON [DL].[IMDocID] = [DX].[IMDocID]
ON [DX].[TrackReference] = [DA].[TrackReference]
WHERE [DIA].[ACTIONID] = @ActionID AND
(
(
@SearchText = ''
OR
([DA].FILEPATH LIKE '%' + @SearchText + '%')
OR
([DA].[DATEENTERED] LIKE '%' + @SearchText + '%')
OR
([DA].[TYPE] LIKE '%' + @SearchText + '%')
OR
([DA].[DocClass] LIKE '%' + @SearchText + '%')
OR
([DA].FILEPATH LIKE '%' + @SearchText + '%')
)
AND
(
ISNULL(@FileType, '') = ''
OR ([DA].[TYPE] IN (select FileType from @FileTypeList ))
)
)
ORDER BY [TrackReference] DESC
END
INSERT
INTO @classes
([KeyhouseClass],
[IMClass],
[ClassCode],
[ClassDescription])
SELECT [CLS].[KeyhouseClass],
[CLS].[IMClass],
[CLS].[ClassCode],
CASE WHEN [CLS].[KeyhouseClass] = 1
THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], ''))
ELSE CASE WHEN [CLS].[ClassCode] = 'ATTNOTES'
THEN 'Attendance Notes'
WHEN [CLS].[ClassCode] = 'BILL'
THEN 'Bill'
WHEN [CLS].[ClassCode] = 'FAX'
THEN 'Fax'
WHEN [CLS].[ClassCode] = 'LEGAL'
THEN 'Legal'
WHEN [CLS].[ClassCode] = 'SCAN'
THEN 'Scan'
WHEN [CLS].[ClassCode] = 'COMPARE'
THEN 'Compare Document'
WHEN [CLS].[ClassCode] = 'DISCUSSION'
THEN 'Discussion'
WHEN [CLS].[ClassCode] = 'DOC'
THEN 'Document'
WHEN [CLS].[ClassCode] = 'E-MAIL'
THEN 'E-Mail'
WHEN [CLS].[ClassCode] = 'EVENT'
THEN 'Event'
WHEN [CLS].[ClassCode] = 'LETTER'
THEN 'Letter'
WHEN [CLS].[ClassCode] = 'MEMO'
THEN 'Memo'
WHEN [CLS].[ClassCode] = 'PAGE_ICON'
THEN 'Page Icon'
WHEN [CLS].[ClassCode] = 'TASK'
THEN 'Task'
WHEN [CLS].[ClassCode] = 'TEXT'
THEN 'Text File'
WHEN [CLS].[ClassCode] = 'WEBDOC'
THEN 'InfoLink Web Page'
ELSE ISNULL([CLS].[CLASSCODE], '') END END AS [ClassDescription]
FROM (SELECT DISTINCT
1 AS [KeyhouseClass],
0 AS [IMClass],
CONVERT(VARCHAR(20), [RES].[DocClass]) AS [ClassCode]
FROM @res [RES]
WHERE ISNULL([RES].[DocClass], '') <> ''
UNION
SELECT DISTINCT
0 AS [KeyhouseClass],
1 AS [IMClass],
CONVERT(VARCHAR(20), [RES].[IMClass]) AS [ClassCode]
FROM @res [RES]
WHERE ISNULL([RES].[IMClass], '') <> '') [CLS]
LEFT OUTER JOIN [dbo].[DocumentClasses] DCL
ON [CLS].[KeyhouseClass] = 1
AND DCL.[CLASSCODE] = [CLS].[ClassCode]
UPDATE [RES]
SET [RES].[EMAIL] = CASE WHEN (ISNULL([RES].[EMAIL], '') = 'Y'
AND [RES].[TrackReference] = [OMS].[TrackReference])
THEN 'Y'
WHEN (ISNULL([RES].[TYPE], '') = 'MSG'
AND [RES].[TrackReference] = [OMS].[TrackReference])
THEN 'Y'
ELSE 'N' END,
[RES].[Attachments] = CASE WHEN (ISNULL([RES].[EMAIL], '') = 'Y'
AND [RES].[TrackReference] = [OMS].[TrackReference])
THEN [RES].[Attachments]
WHEN (ISNULL([RES].[TYPE], '') = 'MSG'
AND [RES].[TrackReference] = [OMS].[TrackReference])
THEN [RES].[Attachments]
ELSE 'N' END
FROM @res [RES]
OUTER APPLY (SELECT TOP 1
[MST].[TrackReference] AS [TrackReference],
[MST].[Type] AS [Type]
FROM [dbo].[diaryattachments] [MST]
WHERE [MST].[diaryid] = [RES].[ActionID]
ORDER BY CASE WHEN [MST].TYPE = 'MSG'
THEN 0
ELSE 1
END,
[MST].[TrackReference]) [OMS]
WHERE
[RES].[id] >= @StartRow AND
[RES].[id] <= @EndRow AND
[RES].[ACTIONID] IS NOT NULL
;WITH DocumentTable AS(
SELECT
ROW_NUMBER() OVER(ORDER BY [id]) AS [RowNumber],
[RES].[id],
[RES].[DiaryDate],
ISNULL([RES].[ActionID], 0) AS [ACTIONID],
[RES].[DocumentDate],
[RES].[IMDocID],
[RES].[IMClass],
[CLS].[ClassDescription] AS [DocumentClassDescription],
[RES].[DocClass],
[RES].[Document],
ISNULL([RES].[TrackReference], 0) AS [TRACKREFERENCE],
[RES].[TYPE] AS [TYPE],
[RES].[Attachments] AS [Attachments],
[RES].[EMAIL],
RTRIM(ISNULL(CONVERT(VARCHAR(200), SUBSTRING(ISNULL([DIA].[EMAILADDRESS], [RES].[EMAILFROM]), 1, 200)), '')) AS [EMAILADDRESS],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(ISNULL([DIA].[ADDRESSTO], [RES].[EMAILTO]), 1, 1000)), '')) AS [ADDRESSTO],
[RES].[EMAILSENT],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(2000),[DIA].[SUBJECT]),'')), 1,1000)),'')) AS [SUBJECT],
RTRIM(ISNULL(CONVERT(VARCHAR(120), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(120), [DIA].[DisplayText]),'')),1,120)),'')) AS [ShortText],
RTRIM(ISNULL([DAT].[NAME], '')) AS [NAME],
CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], ''))
ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [FILEPATH],
RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE],
RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE],
CASE WHEN [DIA].[ACTIONTYPE] = 'A'
THEN 'Action'
WHEN [DIA].[ACTIONTYPE] = 'N'
THEN 'Note'
WHEN [DIA].[ACTIONTYPE] = 'P'
THEN 'Appointment'
WHEN [DIA].[ACTIONTYPE] = 'R'
THEN 'Reminder'
WHEN [DIA].[ACTIONTYPE] = 'E'
THEN 'Email'
WHEN [DIA].[ACTIONTYPE] = 'T'
THEN 'Phone Message'
WHEN [DIA].[ACTIONTYPE] = 'D'
THEN 'Dictation'
WHEN [DIA].[ACTIONTYPE] = 'U'
THEN 'Undertaking'
WHEN [DIA].[ACTIONTYPE] = 'S'
THEN 'Statute Date'
WHEN [DIA].[ACTIONTYPE] = 'C'
THEN 'Critical Date'
WHEN [DIA].[ACTIONTYPE] = 'O'
THEN 'Court Date'
WHEN [DIA].[ACTIONTYPE] = 'M'
THEN 'Scanned Post/Mail'
WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = ''
THEN CASE WHEN [RES].[EMAIL] = 'Y'
THEN 'Email'
WHEN [RES].[IMDocID] <> ''
THEN 'IManage document'
ELSE 'Unknown' END
ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription],
RTRIM(ISNULL([DAT].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END)) AS [DOCUMENTSOURCE],
[RES].[CurrentVersion],
[RES].[IsInDocFolder],
[RES].[IsShared],
[RES].[UniqueId]
FROM @res [RES]
LEFT OUTER JOIN [dbo].[DiaryAttachments] [DAT]
INNER JOIN [dbo].[diary] [DIA]
ON [DIA].[ACTIONID] = [DAT].[DIARYID]
LEFT OUTER JOIN [dbo].[UNCAlias] [UNC]
ON SUBSTRING([DAT].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1)
ON [DAT].[TRACKREFERENCE] = [RES].[TrackReference]
LEFT OUTER JOIN @classes [CLS]
ON [CLS].[KeyhouseClass] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN 0 ELSE 1 END
AND [CLS].[IMClass] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN 1 ELSE 0 END
AND [CLS].[ClassCode] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN [RES].[IMClass] ELSE [RES].[DocClass] END
WHERE
(
(
@SearchText = ''
OR
(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 LIKE '%' + @SearchText + '%')
OR
([RES].[DocClass] LIKE '%' + @SearchText + '%')
OR
([DIA].[SUBJECT] LIKE '%' + @SearchText + '%')
OR
([RES].[Document] LIKE '%' + @SearchText + '%')
OR
([RES].[DocumentDate] LIKE '%' + @SearchText + '%')
)
AND
(
ISNULL(@FileType, '') = ''
OR ([RES].[TYPE] IN (select FileType from @FileTypeList ))
)
)
)
SELECT
*
FROM
DocumentTable
WHERE
[RowNumber] BETWEEN @StartRow AND @EndRow
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Type' THEN [TYPE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Type' THEN [TYPE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Document' THEN [Document]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Document' THEN [Document]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'DocumentClassDescription' THEN [DocumentClassDescription]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'DocumentClassDescription' THEN [DocumentClassDescription]
END
END DESC
OPTION (KEEPFIXED PLAN)
--2018-02-26 END
SELECT COUNT(*) AS [TotalRecord]
FROM @res [RES]
--bit confused, what the below commented statement do? no harm, since its commented. :-)
--BEGIN
-- DECLARE @WKCODE CHAR(4)
-- DECLARE @MatterCode VARCHAR(20)
-- DECLARE @folderid INT
-- DECLARE @UseDocFolders VARCHAR(10)
-- SELECT TOP 1
-- @UseDocFolders = CONVERT(VARCHAR(10), [KeyValue])
-- FROM [dbo].[Settings] [SET]
-- WHERE [SET].[KeyName] = 'UseDocFolders'
-- SET @UseDocFolders = CASE WHEN ISNULL(@UseDocFolders, '') = 'True' THEN 'True' ELSE 'False' END
-- IF @UseDocFolders = 'False'
-- BEGIN
-- -- Dummy statement
-- SELECT TOP 0
-- CONVERT(INT, 0) AS [id],
-- CONVERT(INT, 0) AS [parent],
-- CONVERT(VARCHAR(500), '') AS [foldername],
-- CONVERT(INT, 0) AS [foldericon]
-- RETURN
-- END
-- SELECT TOP 1
-- @MatterCode = [SM].[CODE],
-- @WKCODE = [TMP].[WKCODE]
-- FROM [dbo].[SearchMatters] SM
-- INNER JOIN [dbo].[CaseMaster] CSM
-- ON [CSM].[CSCODE] = SM.[Code]
-- LEFT OUTER JOIN [dbo].[Templates] [TMP]
-- ON [TMP].[WKCODE] = [CSM].[CSWKTCODE]
-- WHERE [CSM].[CSCODE] = @matter
-- IF @MatterCode IS NULL
-- BEGIN
-- -- Dummy statement
-- SELECT TOP 0
-- CONVERT(INT, 0) AS [id],
-- CONVERT(INT, 0) AS [parent],
-- CONVERT(VARCHAR(500), '') AS [foldername],
-- CONVERT(INT, 0) AS [foldericon]
-- RETURN
-- END
-- SELECT TOP 1
-- @folderid = MDF.[DocFolderID]
-- FROM [dbo].[MatterDocFolders] MDF
-- WHERE [MDF].[MatterCode] = @MatterCode
-- IF @folderid IS NULL
-- BEGIN
-- DECLARE @DefaultRootFolderName VARCHAR(500)
-- SELECT @DefaultRootFolderName = CONVERT(VARCHAR(500), [SET].[KeyValue])
-- FROM [dbo].[Settings] [SET]
-- WHERE [SET].[KeyName] = 'DocFolderDefaultRootName'
-- SET @DefaultRootFolderName = RTRIM(ISNULL(@DefaultRootFolderName, 'Documents'))
-- IF @WKCODE IS NULL
-- BEGIN
-- EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] ''
-- UPDATE [DF]
-- SET [DF].[foldername] = @DefaultRootFolderName
-- FROM [dbo].[DocFolders] [DF]
-- WHERE [DF].[id] = @folderid
-- END
-- ELSE
-- BEGIN
-- SELECT TOP 1
-- @folderid = CDF.[DocFolderID]
-- FROM [dbo].[CasePlanDocFolders] CDF
-- WHERE [CDF].[WKCode] = @WKCODE
-- IF @folderid IS NULL
-- BEGIN
-- EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] ''
--UPDATE [DF]
-- SET [DF].[foldername] = @DefaultRootFolderName
-- FROM [dbo].[DocFolders] [DF]
-- WHERE [DF].[id] = @folderid
-- INSERT
-- INTO [dbo].[CasePlanDocFolders]
-- ([WKCode],
-- [DocFolderID])
-- SELECT @WKCODE,
-- @folderid
-- END
-- DECLARE @DUP TABLE
-- ([id] INT)
-- INSERT INTO @DUP
-- EXEC @folderid = [dbo].[KAAS_DuplicateDocFolderTree] @folderid
-- END
-- INSERT
-- INTO [dbo].[MatterDocFolders]
-- ([MatterCode],
-- [DocFolderID])
-- SELECT @MatterCode,
-- @folderid
-- END
IF ISNULL(@DocFolderID, 0) <> 0
BEGIN
SELECT * FROM [dbo].[KAAS_FN_GetDocFolders](@matter, @DocFolderID, 1, 1) WHERE parent <> -1
END
ELSE
BEGIN
SELECT TOP 0
CONVERT(INT, 0) AS [seq],
CONVERT(INT, 0) AS [id],
CONVERT(INT, 0) AS [parent],
CONVERT(VARCHAR(500), '') AS [foldername],
CONVERT(INT, 0) AS [foldericon],
CONVERT(VARBINARY(MAX), NULL) AS [folderimage],
CONVERT(BIT, 0) AS [foldershared],
CONVERT(BIT, 0) AS [folderisours],
CONVERT(INT, 0) AS [documentcount]
END
END
GO
IF OBJECT_ID(N'KAAS_GetDocumentVersioning',N'P')IS NOT NULL
DROP PROCEDURE KAAS_GetDocumentVersioning
GO
CREATE PROCEDURE
[dbo].[KAAS_GetDocumentVersioning]
(@TrackReference INT,
@IMDocID VARCHAR(500))
AS
/*****************************************************************************************
*
* Gets the list of previous versions of a particular document and a comment to indicate
* why the next version of that document was created.
*
* While it is easiest to create the records that way - A document with only ONE version
* will only contain a record in DiaryAttachments and nothing in the DiaryAttachmentVersions
* table - the end user would expect to see the reason for the creation of Version 2 displayed
* next to Version 2, not Version 1, so in this SP all comments are shifted by one
* version number.
*
* Date Modified by Description
* 20May2019 Arun Copied from ky_NETSPGetDocumentVersioning
*****************************************************************************************/
BEGIN
DECLARE @CurVer INT
DECLARE @DAV TABLE
([id] int identity(1, 1),
[DAVID] int,
[TrackReference] int,
[IMDocID] VARCHAR(500),
[Version] int,
[FilePath] VARCHAR(255),
[ShortComments] VARCHAR(200),
[Comments] VARCHAR(MAX),
[Timestamp] datetime,
[Handler] VARCHAR(10),
[HandlerName] VARCHAR(100))
SET @IMDocID = ISNULL(@IMDocID, '')
SET @TrackReference = ISNULL(@Trackreference, 0)
IF (@IMDocID <> '')
BEGIN
SELECT @CurVer = ISNULL(MAX(DAV.[Version]), 0)
FROM [dbo].[DiaryAttachmentVersioning] DAV
WHERE DAV.[TrackReference] = 0
AND DAV.[IMDocID] = @IMDocID
END
ELSE
BEGIN
SELECT @CurVer = ISNULL(MAX(DAV.[Version]), 0)
FROM [dbo].[DiaryAttachmentVersioning] DAV
WHERE DAV.[TrackReference] = @TrackReference
AND DAV.[TrackReference] <> 0
END
INSERT
INTO @DAV
([DAVID],
[TrackReference],
[IMDocID],
[Version],
[FilePath],
[ShortComments],
[Comments],
[Timestamp],
[Handler],
[HandlerName])
SELECT 0 AS [DAVID],
DAT.[TRACKREFERENCE],
'' AS [IMDocID],
@CurVer + 1 AS [Version],
CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FILEPATH], ''))
ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2) END AS [FILEPATH],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](DAV.[Comments], 200) AS [ShortComments],
DAV.[Comments] AS [Comments],
DAT.[DATEENTERED] AS [Timestamp],
RTRIM(ISNULL(HAN.[CODE], RTRIM(ISNULL(HAN2.[CODE], RTRIM(ISNULL(HAN3.[CODE], '')))))) AS [Handler],
RTRIM(ISNULL(HAN.[NAME],
RTRIM(ISNULL(HAN2.[NAME],
RTRIM(ISNULL(HAN3.[NAME],
CASE WHEN RTRIM(ISNULL(DAT.[ENTEREDBY], '')) = ''
THEN ''
ELSE UPPER(SUBSTRING(RTRIM(ISNULL(DAT.[ENTEREDBY], '')), 1, 1)) END +
CASE WHEN LEN(RTRIM(ISNULL(DAT.[ENTEREDBY], ''))) < 2
THEN ''
ELSE LOWER(SUBSTRING(RTRIM(ISNULL(DAT.[ENTEREDBY], '')), 2, LEN(RTRIM(ISNULL(DAT.[ENTEREDBY], ''))) - 1)) END )))))) AS [HandlerName]
FROM [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)
LEFT OUTER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = DAT.[ENTEREDBY]
LEFT OUTER JOIN [dbo].[Handlers] HAN2
ON HAN2.[LOGON] = DAT.[ENTEREDBY]
LEFT OUTER JOIN [dbo].[Handlers] HAN3
ON HAN3.[CODE] = DIA.[FNCODE]
LEFT OUTER JOIN [dbo].[DiaryAttachmentVersioning] DAV
ON DAV.[TrackReference] = @TrackReference
AND DAV.[IMDocID] = @IMDocID
AND DAV.[Version] = @CurVer
WHERE DAT.[TRACKREFERENCE] = @TrackReference
AND DAT.[TRACKREFERENCE] <> 0
IF (@IMDocID <> '')
BEGIN
INSERT
INTO @DAV
([DAVID],
[TrackReference],
[IMDocID],
[Version],
[FilePath],
[ShortComments],
[Comments],
[Timestamp],
[Handler],
[HandlerName])
SELECT DAV.[id],
DAV.[TrackReference],
DAV.[IMDOCID],
DAV.[Version],
DAV.[FilePath],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL(DAV2.[Comments], '')), 200) AS [ShortComments],
RTRIM(ISNULL(DAV2.[Comments], '')),
DAV.[Timestamp],
DAV.[Handler],
RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName]
FROM [dbo].[DiaryAttachmentVersioning] DAV
LEFT OUTER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = DAV.[Handler]
LEFT OUTER JOIN [dbo].[DiaryAttachmentVersioning] DAV2
ON DAV2.[TrackReference] = DAV.[TrackReference]
AND DAV2.[IMDocID] = DAV.[IMDocID]
AND DAV2.[Version] = DAV.[Version] - 1
WHERE DAV.[TrackReference] = 0
AND DAV.[IMDocID] = @IMDocID
ORDER BY DAV.[Version] DESC
END
ELSE
BEGIN
INSERT
INTO @DAV
([DAVID],
[TrackReference],
[IMDocID],
[Version],
[FilePath],
[ShortComments],
[Comments],
[Timestamp],
[Handler],
[HandlerName])
SELECT DAV.[id],
DAV.[TrackReference],
DAV.[IMDOCID],
DAV.[Version],
DAV.[FilePath],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL(DAV2.[Comments], '')), 200) AS [ShortComments],
RTRIM(ISNULL(DAV2.[Comments], '')),
DAV.[Timestamp],
DAV.[Handler],
RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName]
FROM [dbo].[DiaryAttachmentVersioning] DAV
LEFT OUTER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = DAV.[Handler]
LEFT OUTER JOIN [dbo].[DiaryAttachmentVersioning] DAV2
ON DAV2.[TrackReference] = DAV.[TrackReference]
AND DAV2.[IMDocID] = DAV.[IMDocID]
AND DAV2.[Version] = DAV.[Version] - 1
WHERE DAV.[TrackReference] = @TrackReference
AND DAV.[TrackReference] <> 0
ORDER BY DAV.[Version] DESC
END
SELECT [DAVID],
[TrackReference],
[IMDocID],
[Version],
[FilePath],
[ShortComments],
[Comments],
[TimeStamp],
[Handler],
[HandlerName] FROM @DAV
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetDormantMatters'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetDormantMatters]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetDormantMatters] (
@FECODE VARCHAR(20))
AS
/*******************************************************************************************************
* Gets a list of dormant matters. Return value is set to the number of matters. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetDormantMatters] *
* Copied from : [dbo].[ky_NETGetDormantMatters] *
* *
* Modification History : *
* 2019-04-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = N'
DECLARE @LastActionMonth INT
DECLARE @GETDATE DATETIME
SELECT @LastActionMonth = [KeyValue]
FROM [dbo].[Settings]
WHERE [KeyName] = ''LastActionMonth''
SET @LastActionMonth = ISNULL(@LastActionMonth, 6)
SET @GETDATE = GETDATE()
SELECT MAT.[Code],
MAX(ISNULL(LST.[Date], MAT.[Started])) AS [LastActivity]
FROM [dbo].[matters] AS MAT
LEFT OUTER JOIN (SELECT TIE.[Matter],
MAX(TIE.[DATE]) AS [Date]
FROM [dbo].[TimeEntry] AS TIE
GROUP BY TIE.[Matter]
UNION
SELECT DIA.[CASECODE],
MAX(DIA.[DATE])
FROM [dbo].[diary] AS DIA
GROUP BY DIA.[CASECODE]
UNION
SELECT UND.[MATTER],
MAX(CASE WHEN UND.[DISCHARGEDATE] > UND.[UNDDATE]
AND UND.[DISCHARGEDATE] > UND.[DATE]
THEN UND.[DISCHARGEDATE]
WHEN UND.[UNDDATE] > UND.[DISCHARGEDATE]
AND UND.[UNDDATE] > UND.[DATE]
THEN UND.[UNDDATE]
ELSE UND.[DATE] END)
FROM [dbo].Undertakings AS UND
GROUP BY UND.[MATTER]'
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @SQL = @SQL + N'
UNION
SELECT MTL.[MATTER],
MAX(MTL.[DATE])
FROM [dbo].[MatterLedger] AS MTL
GROUP BY MTL.[MATTER]'
END
ELSE
BEGIN
SET @SQL = @SQL + N'
UNION
SELECT TRN.[MatterCode],
MAX(TRN.[TransDate])
FROM [dbo].[Transactions] AS TRN
GROUP BY TRN.[MatterCode]'
END
SET @SQL = @SQL + N') AS LST
ON LST.[Matter] = MAT.[Code]
WHERE MAT.[Closed] <> ''Y''
AND (@FECODE IS NULL
OR MAT.[FECode] = @FECODE)
GROUP BY MAT.[Code],
MAT.[Started]
HAVING DATEDIFF(MONTH, MAX(ISNULL(LST.[Date], MAT.[Started])), @GETDATE) > @LastActionMonth'
EXEC sp_executesql @SQL, N'@FECODE VARCHAR(20)', @FECODE = @FECODE
RETURN @@ROWCOUNT
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetFileData', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetFileData]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetFileData] (@FilePath NVARCHAR(MAX))
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_GetFileData] *
* Copied from : NA *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @result INT
SET @FilePath = REPLACE(@FilePath, '''', '''''');
SET @NCOMMAND = 'EXEC Master.dbo.xp_fileexist ''' + @FilePath + ''', @result OUTPUT PRINT @result'
EXECUTE sp_executesql @NCOMMAND, N'@result INT OUTPUT', @result = @result OUTPUT
IF (@result = 1)
BEGIN
SET @NCOMMAND = 'DECLARE @file AS VARBINARY(MAX);
SELECT @file = CAST(bulkcolumn AS VARBINARY(MAX))
FROM OPENROWSET (BULK ''' + @FilePath + ''', SINGLE_BLOB) AS x;
SELECT @file AS FileData'
EXECUTE sp_executesql @NCOMMAND
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetFileSharingTrackReferenceDocuments'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetFileSharingTrackReferenceDocuments]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetFileSharingTrackReferenceDocuments]
(@TrackReference INT)
AS
/*************************************************************************************************************
* Stored Procedure Name : KAAS_GetFileSharingTrackReferenceDocuments *
* Copied From : [dbo].[ky_NETSPGetFileSharingTrackReferenceDocuments] *
* *
* List the File Sharing IDs for the document with this Track Reference *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * First compatible version: 5.5.1.2 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2017-07-21 Pino Carafa Created *
* 2019-06-11 Vinodhan K Created *
*************************************************************************************************************/
BEGIN
SELECT [FSM].[FileSharingServersID],
[FSD].[FileSharingDocumentID],
[FSM].[FileSharingDocFoldersID],
[FSD].[TrackReference]
FROM [dbo].[DiaryAttachments] [DAT]
INNER JOIN [dbo].[FileSharingDocuments] [FSD]
INNER JOIN [dbo].[FileSharingMapping] [FSM]
ON [FSM].[id] = [FSD].[FileSharingMappingID]
ON [FSD].[TrackReference] = [DAT].[TrackReference]
WHERE [DAT].[TrackReference] = @TrackReference
END
GO
IF OBJECT_ID(N'[KAAS_GetFNLClientDetails]',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GetFNLClientDetails]
GO
CREATE PROCEDURE KAAS_GetFNLClientDetails
(
@Code NVARCHAR(20)
)
AS
/******************************************************************************************************************
* To Fetch the FNL Client detail from matters and Client. *
* *
* Stored Procedure Name: [dbo].[KAAS_GetFNLClientDetails] *
* *
* Modification History: *
* 2019-07-23 Vinodhan K Created *
******************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @ClientCode NVARCHAR(20)
SET @ClientCode= SUBSTRING(RTRIM(ISNULL(@Code,'')), 1,CHARINDEX('/', @Code)-1)
SELECT * INTO #TABLE1 FROM(
SELECT [CL].CLCODE AS ClientCode,
[CL].CLNAME AS ClientName,
[CL].CLADDR AS Address
FROM Client [CL]
WHERE [CL].CLCODE= @ClientCode
)AS TBL
SELECT * INTO #TABLE2 FROM(
SELECT [MAT].Matter,
[MAT].Description,
[MAT].FECode
FROM Matters[MAT]
WHERE [MAT].Code=@Code
) AS TBL
SELECT * FROM #TABLE1,#TABLE2
DROP TABLE #TABLE1,#TABLE2
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_GetFNLMatters]',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GetFNLMatters]
GO
CREATE PROCEDURE KAAS_GetFNLMatters
(
@Code NVARCHAR(20)
)
AS
/******************************************************************************************************************
* To Fetch the FNL detail from matters. *
* *
* Stored Procedure Name: [dbo].[KAAS_GetFNLMatters] *
* Copied from : [dbo].[ky_NETGetFNLMatters] *
* *
* Modification History: *
* 2019-07-19 Vinodhan K Created *
******************************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
RTRIM(FNL_Name) AS 'FNLName',
RTRIM(FNL_Address) AS 'FNLAddress',
RTRIM(FNL_Date) AS 'Date',
RTRIM(FNL_Fees) AS 'FNLFees',
RTRIM(FNL_Outlay) AS 'FNLOutlay',
RTRIM(FNL_VAT) AS 'FNLVat',
RTRIM(FNL_Total) AS 'FNLTotal'
FROM
matters
WHERE
Code = @Code
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetFollowOnActions'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetFollowOnActions]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetFollowOnActions]
(
@ACTIONCODE varchar(15)
)
AS
/*******************************************************************************************************
*To get any follow on actions available for given ActionCode *
* Used in OWA *
* *
* Params: *
* @ACTIONCODE *
* *
* Stored Procedure Name : [dbo].[KAAS_GetFollowOnActions] *
* *
* Modification History : *
* 2019-05-07 Ramesh K Created *
*******************************************************************************************************/
BEGIN
SELECT
RTRIM(ISNULL([TNA].[DECISION], '')) AS [Decision],
RTRIM(ISNULL([TNA].[NEXTACTION], '')) AS [NextAction],
[TNAC].[DESC] AS [NextActionDescription],
[TAC].[NEXTACTIONOPTIONAL] AS [NEXTACTIONOPTIONAL]
FROM
[TemplateActions] [TAC]
INNER JOIN [TemplateNextActions] [TNA]
INNER JOIN [dbo].[TemplateActions] [TNAC]
ON [TNAC].[ACTIONCODE] = [TNA].[NEXTACTION]
ON [TNA].[ACTION] = [TAC].[ACTIONCODE]
WHERE [TAC].[ACTIONCODE] = @ACTIONCODE
END
GO
IF OBJECT_ID(N'KAAS_GetHandlerDefaultTask', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetHandlerDefaultTask]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetHandlerDefaultTask] (@Code VARCHAR(15))
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_GetHandlerDefaultTask] *
* Copied from : NA *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(DEFAULTTASK) AS [DefaultTask]
FROM Handlers
WHERE RETIRED <> 'Y'
AND CODE = @Code
END
GO
IF OBJECT_ID(N'KAAS_GetHandlerLogon', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetHandlerLogon]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetHandlerLogon]
(@HandlerCode VARCHAR(10))
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_GetHandlerLogon] *
* Copied from : [dbo].[ky_NETGetHandlerLogon] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @PasswordExpiryDate INT
SET @PasswordExpiryDate = (
SELECT ISNULL(KeyValue,60)
FROM Settings
WHERE [KeyName] = 'PasswordExpiryDays')
DECLARE @COMMAND VARCHAR(MAX)
SET @COMMAND = 'SELECT HLO.[HANDLER] AS [Handler],
RTRIM(ISNULL(HAN.[NAME], '''')) AS [Name],
RTRIM(ISNULL(HAN.[Email], '''')) AS [Email],
REPLACE(ISNULL(RETIRED,''N''),'' '',''N'') AS [Retired],
CASE
WHEN RTRIM(ISNULL(HAN.[TYPE], '''')) = ''P''
THEN CONVERT(BIT, 1)
WHEN RTRIM(ISNULL(HAN.[CODE], '''')) = ''ADM''
THEN CONVERT(BIT, 1)
ELSE CONVERT(BIT, 0)
END AS [IsPartner],
ISNULL(GM.[BitWiseID], [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(HAN.[CODE], '''')))) AS [BitWiseId],
UPPER(ISNULL(HAN.AutoLaunchTimer, ''N'')) AS [AutoLaunchTimer]'
SET @COMMAND = @COMMAND + ',
HLO.[Date] + '+ CONVERT(VARCHAR(5),ISNULL(@PasswordExpiryDate,'60')) +' AS [Date],
ISNULL(HAN.[TYPE], '''') AS [Type]
FROM [dbo].[Handlers] HAN
LEFT OUTER JOIN [dbo].[HandlerNETLogons] HLO
ON HLO.[HANDLER] = HAN.[CODE]
LEFT OUTER JOIN [dbo].[HandlerNETGroupMembership] GM
ON GM.[HANDLER] = HAN.[CODE]
WHERE HAN.[CODE] = ''' + Replace(@HandlerCode, '''', '''''') + ''''
EXEC (@COMMAND)
END
GO
IF OBJECT_ID(N'[KAAS_GETHandlerRate]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_GETHandlerRate]
GO
CREATE PROC [KAAS_GETHandlerRate] (@HandlerCode VARCHAR(10) )
AS
/*******************************************************************************************************
* Used to Get new Handler Rate. *
* *
* Stored Procedure Name : [dbo].[KAAS_GETHandlerRate] *
* Copied from : [dbo].[ky_NETGETHandlerRate] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT
ISNULL(RATE,0) AS Rate
FROM
Handlers
WHERE
CODE=@HandlerCode
END
GO
IF OBJECT_ID(N'KAAS_GetHandlerSettings', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetHandlerSettings]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetHandlerSettings]
(
@HandlerCode VARCHAR(10)
)
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_GetHandlerSettings] *
* Copied from : NA *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
[Team],
[TeamCode],
[Dept],
[Type],
[Name],
[DefaultTask],
[Email]
FROM Handlers
WHERE
[CODE] = @HandlerCode
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_GetHandlersLookupList'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetHandlersLookupList]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetHandlersLookupList]
AS
/*******************************************************************************************************
* This sp is used to get handlers list for task page. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetHandlersLookupList] *
* Copied from : [dbo].[ky_NETGetHandlersLookupList] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT
RTRIM(ISNULL(HAN.[CODE], '')) AS [CODE],
RTRIM(ISNULL(HAN.[NAME], '')) AS [NAME],
RTRIM(ISNULL(HAN.[TEAM], '')) AS [TEAM],
RTRIM(ISNULL(HAN.[LOGON], '')) AS [LOGON],
RTRIM(ISNULL(HAN.[EXCHANGEALIAS], '')) AS [EXCHANGEALIAS],
RTRIM(ISNULL(HAN.[RETIRED], '')) AS [RETIRED] ,
RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) AS [TEAMCODE]
FROM
[dbo].[Handlers] HAN
WHERE
ISNULL(HAN.[RETIRED], 'N') <> 'Y'
--AND ISNULL(TEAMCODE,'N') = 'N' 2016-10-13 do not reinstate
ORDER BY
RTRIM(ISNULL(HAN.[CODE], ''))
END
GO
IF OBJECT_ID(N'KAAS_GetHandlersResource', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetHandlersResource]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetHandlersResource] (
@CODE VARCHAR(15),
@SearchText VARCHAR(4000) = '',
@PageNumber INT = NULL,
@PageSize INt = NULL)
AS
/*************************************************************************************************************************
* To fetch the handler resource list available from the database excluding the currently logged in user *
* *
* Stored Procedure Name : [dbo].[KAAS_GetHandlersResource] *
* Copied from : [dbo].[ky_NETGetHandlersResource] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
* 2019-08-05 Vinodhan K Modifed to list the handler list by recently selected handlers by the logged in user *
*************************************************************************************************************************/
BEGIN
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1;
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FoundTable
FROM
(SELECT
RTRIM(A.CODE) AS CODE,
RTRIM(A.TEAM) AS TEAM,
RTRIM(A.TEAMCODE) AS TEAMCODE,
RTRIM(A.[NAME]) AS [NAME],
RTRIM(A.LOGON) AS LOGON,
RTRIM(A.EXCHANGEALIAS) AS EXCHANGEALIAS,
RTRIM(A.RETIRED) AS RETIRED,
RTRIM(B.HANDLER) AS HANDLER,
RTRIM(B.NOOUTSTANDACTIONS) AS NOOUTSTANDACTIONS,
RTRIM(A.DEFAULTTASK) AS DEFAULTTASK,
C.AccessedTime AS AccessedTime
FROM
Handlers A
LEFT JOIN
NoOverDueTasks B
ON
A.CODE = B.HANDLER
LEFT JOIN
RecentHandlerList C
ON
C.Code = A.CODE AND C.AccessedBy = @CODE
WHERE
(
A.CODE LIKE '%' + @SearchText + '%'
OR
A.[NAME] LIKE '%' + @SearchText + '%'
)
AND
A.RETIRED <> 'Y'
AND
A.CODE <> @CODE) AS FoundTable
ORDER BY
FoundTable.AccessedTime DESC,
CODE ASC
SELECT
*
FROM
#FoundTable A
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#FoundTable
END
GO
IF OBJECT_ID(N'KAAS_GetMatterDocFolderTree', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetMatterDocFolderTree]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetMatterDocFolderTree]
(
@matter VARCHAR(20)
)
AS
/********************************************************************************************************
* Gets the folder structure for a Matter. Creates it if it doesn't exist, use the CasePlan folder *
* structure as a template. Create it too, if it doesn't exist. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetMatterDocFolderTree] *
* Copied from : [dbo].[ky_NETSPGetMatterDocFolderTree] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
* 2019-06-19 Vinodhan K Removed the condition to check whether UseDocFolders is set as True *
* or False. For now it wil return the data even when it is set as False *
*******************************************************************************************************/
BEGIN
DECLARE @WKCODE CHAR(4)
DECLARE @MatterCode VARCHAR(20)
DECLARE @folderid INT
SELECT TOP 1
@MatterCode = [SM].[CODE],
@WKCODE = [TMP].[WKCODE]
FROM [dbo].[SearchMatters] SM
INNER JOIN [dbo].[CaseMaster] CSM
ON [CSM].[CSCODE] = SM.[Code]
LEFT OUTER JOIN [dbo].[Templates] [TMP]
ON [TMP].[WKCODE] = [CSM].[CSWKTCODE]
WHERE [CSM].[CSCODE] = @matter
IF @MatterCode IS NULL
BEGIN
-- Dummy statement
SELECT TOP 0
CONVERT(INT, 0) AS [id],
CONVERT(INT, 0) AS [parent],
CONVERT(VARCHAR(500), '') AS [foldername],
CONVERT(INT, 0) AS [foldericon]
RETURN
END
SELECT TOP 1
@folderid = MDF.[DocFolderID]
FROM [dbo].[MatterDocFolders] MDF
WHERE [MDF].[MatterCode] = @MatterCode
IF @folderid IS NULL
BEGIN
DECLARE @DefaultRootFolderName VARCHAR(500)
SELECT @DefaultRootFolderName = CONVERT(VARCHAR(500), [SET].[KeyValue])
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'DocFolderDefaultRootName'
SET @DefaultRootFolderName = RTRIM(ISNULL(@DefaultRootFolderName, 'Documents'))
IF @WKCODE IS NULL
BEGIN
EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] ''
UPDATE [DF]
SET [DF].[foldername] = @DefaultRootFolderName
FROM [dbo].[DocFolders] [DF]
WHERE [DF].[id] = @folderid
END
ELSE
BEGIN
SELECT TOP 1
@folderid = CDF.[DocFolderID]
FROM [dbo].[CasePlanDocFolders] CDF
WHERE [CDF].[WKCode] = @WKCODE
IF @folderid IS NULL
BEGIN
EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] ''
UPDATE [DF]
SET [DF].[foldername] = @DefaultRootFolderName
FROM [dbo].[DocFolders] [DF]
WHERE [DF].[id] = @folderid
INSERT
INTO [dbo].[CasePlanDocFolders]
([WKCode],
[DocFolderID])
SELECT @WKCODE,
@folderid
END
DECLARE @DUP TABLE
([id] INT)
INSERT INTO @DUP
EXEC @folderid = [dbo].[KAAS_DuplicateDocFolderTree] @folderid
END
INSERT
INTO [dbo].[MatterDocFolders]
([MatterCode],
[DocFolderID])
SELECT @MatterCode,
@folderid
END
SELECT
*
FROM [dbo].[KAAS_FN_GetDocFolders](@matter, @folderid, 1, 1)
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetMatterLedger'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetMatterLedger]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetMatterLedger]
(
@MatterCode VARCHAR(20),
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SearchText VARCHAR(400) = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL
)
AS
/*******************************************************************************************************
* *
*Used to list the matter ledger *
* *
* Stored Procedure Name: [dbo].[KAAS_WebApi_DeleteOtherContacts] *
* Copied From: [dbo].[ky_NETGetMatterLedger] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @SQL NVARCHAR(MAX)
DECLARE @ISSAM4 BIT
SELECT @ISSAM4 = [dbo].[ISSAM4]()
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF(RTRIM(ISNULL(@SearchText, '')) = '' OR RTRIM(@SearchText) = '')
BEGIN
SET @SearchText = ''
END
IF @ISSAM4 = 0
BEGIN
SET @SQL = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#MatterLedgerTable
FROM
(SELECT
[MTL].[MATTER] AS [Matter],
ISNULL([MTL].[BATCHNO], 0) AS [BATCHNO],
ISNULL([MTL].[PREF], 0) AS [Pref],
[MTL].[DATE] AS [Date],
ISNULL([MTL].[REF], '''') AS [Reference],
ISNULL([MTL].[NARR], '''') AS [Narrative],
ISNULL([MTL].[VALUED], 0) AS [Billing],
ISNULL([MTL].[VALUEO], 0) AS [OutLay],
ISNULL([MTL].[VALUECC], 0) AS [ClientCurrent],
ISNULL([MTL].[VALUECD], 0) AS [Deposit],
ISNULL([MTL].[FEE], '''') AS [Fee],
[MTL].[EntryDate] AS [EntryDate],
ISNULL([MTL].[CLIENT], '''') AS [Client],
ISNULL([MTL].[LREF], 0) AS [LRef],
ISNULL([MTL].[BILLED], 0) AS [Billed],
CASE WHEN CHARINDEX(''undertaking'', ISNULL([MTL].[NARR], '''')) > 0
THEN 1
WHEN ISNULL([MTL].[PREF], 0) = 0
THEN 0
ELSE 2 END AS [RowHighlight],
ISNULL([BAH].[TYPE], '''') AS [Type],
ISNULL([BAD].[OUTLAYCODE],'''') AS [OutlayCode],
RTRIM(ISNULL([BAD].[OUTLAYDESC], '''')) AS [OutlayDesc],
0 AS [Unbilled] /* Not used in SAM3 */
FROM [dbo].[MatterLedger] AS [MTL]
LEFT OUTER JOIN [dbo].[BatchH] AS [BAH]
ON [BAH].[BATCHNO] = [MTL].[BATCHNO]
AND [BAH].[BATCHNO] <> 0
OUTER APPLY (SELECT TOP 1
[BDL].[OUTLAYCODE],
[OLC].[DESCRIPTION] AS [OUTLAYDESC]
FROM [dbo].[BatchDetails] [BDL]
LEFT OUTER JOIN [dbo].[OutlayCode] [OLC]
ON [OLC].[CODE] = [BDL].[OUTLAYCODE]
WHERE [BDL].[BATCHNO] = [MTL].[BATCHNO]
AND [BDL].[PREF] = [MTL].[PREF]
AND [BDL].[BATCHNO] <> 0) [BAD]
WHERE
(
@SearchText = ''''
OR
(
[MTL].[MATTER] LIKE ''%' + @SearchText + '%''
OR
[MTL].[BATCHNO] LIKE ''%' + @SearchText + '%''
OR
[MTL].[PREF] LIKE ''%' + @SearchText + '%''
OR
[MTL].[DATE] LIKE ''%' + @SearchText + '%''
OR
[MTL].[REF] LIKE ''%' + @SearchText + '%''
OR
[MTL].[NARR] LIKE ''%' + @SearchText + '%''
OR
[MTL].[VALUED] LIKE ''%' + @SearchText + '%''
OR
[MTL].[VALUEO] LIKE ''%' + @SearchText + '%''
OR
[MTL].[VALUECC] LIKE ''%' + @SearchText + '%''
OR
[MTL].[VALUECD] LIKE ''%' + @SearchText + '%''
OR
[MTL].[FEE] LIKE ''%' + @SearchText + '%''
OR
[MTL].[EntryDate] LIKE ''%' + @SearchText + '%''
OR
[MTL].[CLIENT] LIKE ''%' + @SearchText + '%''
OR
[MTL].[LREF] LIKE ''%' + @SearchText + '%''
OR
[MTL].[BILLED] LIKE ''%' + @SearchText + '%''
OR
[BAH].[TYPE] LIKE ''%' + @SearchText + '%''
OR
[BAD].[OUTLAYCODE] LIKE ''%' + @SearchText + '%''
OR
[BAD].[OUTLAYDESC] LIKE ''%' + @SearchText + '%''
)
)
AND
[MTL].[MATTER] = @MatterCode) AS FoundTable'
IF((@SortColumn IS NULL) AND (RTRIM(@SortColumn) = ''))
BEGIN
SET @SQL = @SQL + ' ORDER BY
[Matter] ASC,
[Date] ASC,
[LRef] ASC'
END
IF((@SortColumn IS NOT NULL) AND (RTRIM(@SortColumn) != ''))
BEGIN
SET @SQL = @SQL + '
ORDER BY ' + @SortColumn + ' ' + @SortDirection
END
SET @SQL = @SQL +' SELECT
*
FROM
#MatterLedgerTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#MatterLedgerTable'
SET @SQL = @SQL +' SELECT TOP 1
ISNULL([MAT].[ClientMin], 0) AS [ClientMin],
ISNULL([MTL].[BillingSum], 0) AS [BillingSum],
ISNULL([MTL].[OutlaySum], 0) AS [OutlaySum],
ISNULL([MTL].[CurrentSum], 0) AS [CurrentSum],
ISNULL([MTL].[DepositSum], 0) AS [DepositSum],
ISNULL([UND].[Undertakings], 0) AS [Undertakings],
0 AS [WIP]
FROM [dbo].[matters] AS [MAT]
OUTER APPLY (SELECT SUM(ISNULL(MTL.[VALUED], 0)) AS [BillingSum],
SUM(ISNULL(MTL.[VALUEO], 0)) AS [OutlaySum],
SUM(ISNULL(MTL.[VALUECC], 0)) AS [CurrentSum],
SUM(ISNULL(MTL.[VALUECD], 0)) AS [DepositSum]
FROM [dbo].[MatterLedger] AS MTL
WHERE MTL.[MATTER] = @MatterCode) AS MTL
OUTER APPLY (SELECT COUNT(1) AS [Undertakings]
FROM [dbo].[Undertakings] AS UND
WHERE UND.[MATTER] = @MatterCode
AND UND.[DISCHARGEDATE] IS NULL) AS UND
WHERE MAT.[Code] = @MatterCode'
END
ELSE
BEGIN
SET @SQL = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#MatterLedgerTable
FROM
(SELECT TRN.[MatterCode] AS [Matter],
ISNULL(TRN.[BatchNo], 0) AS [BATCHNO],
ISNULL(TRN.[PostRef], 0) AS [Pref],
TRN.[TransDate] AS [Date],
ISNULL(TRN.[TransRef], '''') AS [Reference],
ISNULL(TRN.[Narrative], '''') AS [Narrative],
ISNULL(TRN.[DebtorsValue], 0) AS [Billing],
ISNULL(TRN.[OutlayValue], 0) AS [OutLay],
ISNULL(TRN.[ClientCurrent], 0) AS [ClientCurrent],
ISNULL(TRN.[ClientDeposit], 0) AS [Deposit],
ISNULL(TRN.[FeeEarner], '''') AS [Fee],
TRN.[EntryDate] AS [EntryDate],
ISNULL(MAT.[ClientCode], '''') AS [Client],
ISNULL(TRN.[XnID], 0) AS [LRef],
'''' AS [Billed], /* Not used in SAM4 */
CASE WHEN CHARINDEX(''undertaking'', ISNULL(TRN.[Narrative], '''')) > 0
THEN 1
WHEN ISNULL(TRN.[PostRef], 0) = 0
THEN 0
ELSE 2 END AS [RowHighlight],
ISNULL(TRN.[XnType], '''') AS [Type],
ISNULL(TRN.[OutlayCode], '''') AS [OutlayCode],
[TRN].[Seq] AS [Seq],
RTRIM(ISNULL([OLC].[DESCRIPTION], '''')) AS [OutlayDesc],
CASE WHEN TRN.[XnType] IN (''P'', ''B'', ''J'')
AND ISNULL(TRN.[OutlayValue], 0) <> 0
AND ISNULL(TRN.[BilledOutlay], 0) = 0
THEN 1
WHEN TRN.[XnType] IN (''P'', ''B'', ''J'')
AND ISNULL(TRN.[OutlayValue], 0) <> 0
AND ISNULL(TRN.[BilledOutlay], 0) <> ISNULL(TRN.[OutlayValue], 0)
THEN 2
ELSE 0 END AS [Unbilled]
FROM [dbo].[matters] AS MAT
INNER JOIN [dbo].[Transactions] AS TRN
LEFT OUTER JOIN [dbo].[OutlayCode] [OLC]
ON [OLC].[OutlayCode] = [TRN].[OutlayCode]
ON MAT.[Code] = TRN.[MatterCode]
WHERE
(
@SearchText = ''''
OR
(
[TRN].[MatterCode] LIKE ''%' + @SearchText + '%''
OR
[TRN].[BatchNo] LIKE ''%' + @SearchText + '%''
OR
[TRN].[PostRef] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransDate] LIKE ''%' + @SearchText + '%''
OR
[TRN].[TransRef] LIKE ''%' + @SearchText + '%''
OR
[TRN].[Narrative] LIKE ''%' + @SearchText + '%''
OR
[TRN].[DebtorsValue] LIKE ''%' + @SearchText + '%''
OR
[TRN].[OutlayValue] LIKE ''%' + @SearchText + '%''
OR
[TRN].[ClientCurrent] LIKE ''%' + @SearchText + '%''
OR
[TRN].[ClientDeposit] LIKE ''%' + @SearchText + '%''
OR
[TRN].[FeeEarner] LIKE ''%' + @SearchText + '%''
OR
[TRN].[EntryDate] LIKE ''%' + @SearchText + '%''
OR
[MAT].[ClientCode] LIKE ''%' + @SearchText + '%''
OR
[TRN].[XnID] LIKE ''%' + @SearchText + '%''
OR
[TRN].[XnType] LIKE ''%' + @SearchText + '%''
OR
[TRN].[OutlayCode] LIKE ''%' + @SearchText + '%''
OR
[TRN].[BilledOutlay] LIKE ''%' + @SearchText + '%''
OR
[OLC].[DESCRIPTION] LIKE ''%' + @SearchText + '%''
)
)
AND
MAT.[Code] = @MatterCode
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND TRN.[CorrectionInd] IN (''L'', ''C'')) AS FoundTable'
IF((@SortColumn IS NULL) AND (RTRIM(@SortColumn) = ''))
BEGIN
SET @SQL = @SQL + ' ORDER BY
[Matter] ASC,
[Date] ASC,
[Seq] ASC,
[LRef] ASC'
END
IF((@SortColumn IS NOT NULL) AND (RTRIM(@SortColumn) != ''))
BEGIN
SET @SQL = @SQL + '
ORDER BY ' + @SortColumn + ' ' + @SortDirection
END
SET @SQL = @SQL + ' SELECT
*
FROM
#MatterLedgerTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS [TotalRecords]
FROM
#MatterLedgerTable'
SET @SQL = @SQL +
' SELECT ISNULL(MAT.[ClientMin], 0) AS [ClientMin],
0.00 AS [BillingSum], /* These balances aren''t used in SAM4. They are calculated on the client machine */
0.00 AS [OutlaySum],
0.00 AS [CurrentSum],
0.00 AS [DepositSum],
ISNULL(UND.[Count], 0) AS [Undertakings],
ISNULL(TIE.[WIP], 0) AS [WIP]
FROM [dbo].[matters] AS MAT
OUTER APPLY (SELECT COUNT(1) AS [Count]
FROM [dbo].[Undertakings] AS UND
WHERE UND.[MATTER] = @MatterCode
AND UND.[DISCHARGEDATE] IS NULL) AS UND
OUTER APPLY (SELECT SUM(ISNULL(TIE.[Charge], 0)) AS [WIP]
FROM [dbo].[TimeEntry] AS TIE
WHERE TIE.[Matter] = @MatterCode
AND TIE.[InvoiceNo] = 0
AND TIE.[Rec_Irr] = ''C''
AND TIE.[IncludeInBill] <> 2
AND TIE.[TimeOrCharge] IN (''T'', ''C'')) AS TIE
WHERE MAT.[Code] = @MatterCode'
END
IF ISNULL(@SQL, '') <> ''
BEGIN
EXEC sp_executesql @SQL, N'@MatterCode VARCHAR(20), @SearchText VARCHAR(400), @SortColumn VARCHAR(50), @SortDirection VARCHAR(10), @StartRow INT, @EndRow INT', @MatterCode = @matterCode, @SearchText = @searchText, @SortColumn = @sortColumn, @SortDirection = @sortDirection, @StartRow = @startRow, @EndRow = @endRow
END
END
GO
IF OBJECT_ID(N'KAAS_GetMatterLedgerDetail', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetMatterLedgerDetail]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetMatterLedgerDetail] (@MatterCode VARCHAR(20))
AS
/******************************************************************************************************************
* *
* Used to fetch matter ledger and account summary details *
* *
* Stored Procedure Name: [dbo].[KAAS_GetMatterLedgerDetail] *
* Copied from : [dbo].[ky_NETGetMatterLedger] *
* [dbo].[ky_NETGetMatterLedgerSAM4] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
******************************************************************************************************************/
BEGIN
DECLARE @IsSAM4 bit
DECLARE @Query NVARCHAR(200)
SET @IsSAM4 = [dbo].[ISSAM4]()
EXECUTE KAAS_GetMatterLedger @MatterCode
/*Account Summary*/
DECLARE @NCOMMAND nvarchar(MAX)
DECLARE @DraftBillValue DECIMAL(18, 2)
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0)
FROM [dbo].[BillHeader] HED
INNER JOIN [dbo].[BillDetails] BD
ON BD.[DRAFTNO] = HED.[DRAFTNO]
WHERE HED.[MATTER] = @MatterCode
AND HED.[BILLNO] = 0'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0)
FROM [dbo].[BillHead] HED
INNER JOIN [dbo].[BillDetail] BD
ON BD.[BillID] = HED.[BillingID]
WHERE HED.[MatterCode] = @MatterCode
AND HED.[BillStatus] <> ''Approved''
AND ISNULL(HED.[ProForma], '''') = ''Y'''
END
EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @MatterCode = @MatterCode, @DraftBillValue=@DraftBillValue OUTPUT
DECLARE @Section68 VARCHAR(10)
DECLARE @IsApproved VARCHAR(10)
DECLARE @TimeBal INT
DECLARE @ChargeBal DECIMAL(19, 2)
DECLARE @TotalCharge Decimal(19, 2)
DECLARE @TotalTime INT
--Matter values that are re-used elsewhere in this procedure.
SELECT @Section68 = ISNULL(MAT.[Section68],''),
@IsApproved = ISNULL(CON.[Approved],'')
FROM [dbo].[matters] MAT
LEFT OUTER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
WHERE MAT.[Code] = @MatterCode
DECLARE @LDIADATE DATETIME
DECLARE @LDIAACTIONTYPE VARCHAR(1)
DECLARE @LDIATEXT1 VARCHAR(MAX)
DECLARE @LDIAFNCODE VARCHAR(10)
SELECT TOP 1
@LDIADATE = LDIA.[DATE],
@LDIAACTIONTYPE = LDIA.[ACTIONTYPE],
@LDIATEXT1 = LDIA.[TEXT1],
@LDIAFNCODE = LDIA.[FNCODE]
FROM [dbo].[diary] LDIA
WHERE LDIA.[CASECODE] = @MatterCode
ORDER BY LDIA.[DATE] DESC
DECLARE @MDIADATE DATETIME
DECLARE @MDIAACTIONTYPE VARCHAR(1)
DECLARE @MDIATEXT1 VARCHAR(MAX)
DECLARE @MDIAFNCODE VARCHAR(10)
SELECT TOP 1
@MDIADATE= MDIA.[DATE],
@MDIAACTIONTYPE = MDIA.[ACTIONTYPE],
@MDIATEXT1 = MDIA.[TEXT1],
@MDIAFNCODE = MDIA.[FNCODE]
FROM [dbo].[diary] MDIA
WHERE MDIA.[CASECODE] = @MatterCode
AND MDIA.[HIGHLIGHTED] = 'Y'
ORDER BY MDIA.[DATE] DESC
DECLARE @NDIADATE DATETIME
DECLARE @NDIAACTIONTYPE VARCHAR(1)
DECLARE @NDIATEXT1 VARCHAR(MAX)
DECLARE @NDIAFNCODE VARCHAR(10)
SELECT TOP 1
@NDIADATE = NDIA.[DATE],
@NDIAACTIONTYPE = NDIA.[ACTIONTYPE],
@NDIATEXT1 = NDIA.[TEXT1],
@NDIAFNCODE = NDIA.[FNCODE]
FROM dbo.[diary] NDIA
WHERE NDIA.[CASECODE] = @MatterCode
AND NDIA.[STATUS] = 0
ORDER BY NDIA.[DATE] ASC
DECLARE @TIEDATE DATETIME
--Pino 2015-05-27 Start
--SELECT @TIEDATE = (MAX(TIE.[DATE]))
-- FROM [dbo].[TimeEntry] TIE
-- WHERE TIE.[Matter] = @MatterCode
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN DLG.[DATE] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE DLG.[DATE] END)
FROM [dbo].[DebtorsLedger] DLG
WHERE DLG.[MATTER] = @MatterCode'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN TRN.[TransDate] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE TRN.[TransDate] END)
FROM [dbo].[Transactions] TRN
WHERE TRN.[Posted] = ''Y''
AND TRN.[MatterCode] = @MatterCode
AND TRN.[DebtorsValue] <> 0
AND TRN.[CorrectionInd] = ''L''
AND ( ( TRN.[XnType] = ''I''
AND TRN.[RecType] = ''H'')
OR ( TRN.[XnType] = ''J''
AND TRN.[RecType] = ''D''))'
END
EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @MatterCode = @MatterCode, @TIEDATE = @TIEDATE OUTPUT
--Pino 2015-05-27 End
DECLARE @LastTimeEntryDate DATETIME
DECLARE @LastTimeEntryTime INT
DECLARE @LastTimeEntryRate DECIMAL(10, 2)
DECLARE @LastTimeEntryCharge DECIMAL(10, 2)
DECLARE @LastTimeEntryTask VARCHAR(6)
DECLARE @LastTimeEntryComment VARCHAR(1000)
DECLARE @LastTimeEntryFE VARCHAR(10)
DECLARE @TimeEntryTotalCharge DECIMAL(19, 2)
DECLARE @TimeEntryTotalTime INT
SELECT TOP (1)
@LastTimeEntryDate = TIE.[DATE],
@LastTimeEntryTime = TIE.[Time],
@LastTimeEntryRate = TIE.[Rate],
@LastTimeEntryCharge = TIE.[Charge],
@LastTimeEntryTask = TIE.[Task],
@LastTimeEntryComment = TIE.[Comment],
@LastTimeEntryFE = TIE.[FeeEarn]
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[Matter] = @MatterCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
ORDER BY TIE.[Date] DESC,
TIE.[Time] DESC
SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0)
SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0)
-- Please see also: ky_NETFNMatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- ky_NETPMatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- ky_NETTLFetchTimeEntry. If you change any of these calculations,
-- ensure the ones in there are changed as well.
SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0),
@TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0),
@TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Charge], 0) END), 0),
@ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 1
THEN ISNULL(TIE.[Charge], 0)
ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0),
@TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN CASE WHEN TIE.[Charge] = 0
THEN 0
ELSE CONVERT(INT,
FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME])
* ( (TIE.[Charge] - TIE.[BilledAmount])
/
TIE.[Charge]))) END
ELSE ISNULL(TIE.[Time], 0) END), 0),
@TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Time], 0) END), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[Matter] = @MatterCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
DECLARE @DebtBal DECIMAL(19, 2)
DECLARE @OutlayBal DECIMAL(19, 2)
DECLARE @DebtBalDate DATETIME
DECLARE @OutlayBalDate DATETIME
DECLARE @ClientCurrent DECIMAL(19, 2)
DECLARE @ClientDeposit DECIMAL(19, 2)
-- Please see also: ky_NETFNMatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- ky_NETTLFetchTimeEntry. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- To ensure SAM3 will retrieve these from [dbo].[matters]
SET @DebtBal = 0
SET @OutlayBal = 0
SET @ClientCurrent = 0
SET @ClientDeposit = 0
IF @IsSAM4 = 1
BEGIN
SET @NCOMMAND = N'
SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)),
@DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)),
@OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)),
@ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0))
FROM [dbo].[Transactions] TRN
WHERE TRN.[MatterCode] = @MatterCode
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND TRN.[CorrectionInd] = ''L'''
EXECUTE sp_executesql @NCOMMAND,
N'@MatterCode VARCHAR(20),
@DebtBal DECIMAL(19, 2) OUTPUT,
@DebtBalDate DATETIME OUTPUT,
@OutlayBal DECIMAL(19, 2) OUTPUT,
@OutlayBalDate DATETIME OUTPUT,
@ClientCurrent DECIMAL(19, 2) OUTPUT,
@ClientDeposit DECIMAL(19, 2) OUTPUT',
@MatterCode = @MatterCode,
@DebtBal = @DebtBal OUTPUT,
@DebtBalDate = @DebtBalDate OUTPUT,
@OutlayBal = @OutlayBal OUTPUT,
@OutlayBalDate = @OutlayBalDate OUTPUT,
@ClientCurrent = @ClientCurrent OUTPUT,
@ClientDeposit = @ClientDeposit OUTPUT
END
--Result Set 0
--Matter Data
SELECT RTRIM(ISNULL(MAT.[Code], '')) AS [Code],
RTRIM(ISNULL(MAT.[Description], '')) AS [Description],
RTRIM(ISNULL(MAT.[ClientCode], '')) AS [ClientCode],
RTRIM(ISNULL(CLT.[CLNAME], '')) AS [CLName],
RTRIM(ISNULL(CLT.[CLADDR], '')) AS [CLAddr],
RTRIM(ISNULL(MAT.[FECode], '')) AS [FECode],
RTRIM(ISNULL(HAN.[NAME], '')) AS [HandlerName],
RTRIM(ISNULL(MAT.[Dept], '')) AS [Dept],
RTRIM(ISNULL(DPT.[DESC], '')) AS [Desc],
RTRIM(MAT.WType) AS [WType],
RTRIM(ISNULL(WKT.[DESC], '')) AS [WorkType],
MAT.[Started] AS [Started],
MAT.[EstFee] AS [EstFee],
MAT.[ExpBillD] AS [ExpBillD],
CONVERT(DECIMAL(19, 2), CASE WHEN @DebtBal <> 0
THEN @DebtBal
ELSE ISNULL(MAT.[DebtBal], 0) END) AS [DebtBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @OutlayBal <> 0
THEN @OutlayBal
ELSE ISNULL(MAT.[OutlayBal], 0) END) AS [OutlayBal],
MAT.[OutlayBud] AS [OutlayBud],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0
THEN @ClientCurrent + @ClientDeposit
WHEN @ClientDeposit <> 0
THEN @ClientCurrent + @ClientDeposit
ELSE ISNULL(MAT.[ClientBal], 0) END) AS [ClientBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientCurrent <> 0
THEN @ClientCurrent
ELSE ISNULL(MAT.[ClientCurBal], 0) END) AS [ClientCurBal],
CONVERT(DECIMAL(19, 2), CASE WHEN @ClientDeposit <> 0
THEN @ClientDeposit
ELSE ISNULL(MAT.[ClientDepBal], 0) END) AS [ClientDepBal],
MAT.[StatuteLimits] AS [StatuteLimits],
RTRIM(ISNULL(MAT.[User1], '')) AS [User1],
RTRIM(ISNULL(MAT.[User2], '')) AS [User2],
RTRIM(ISNULL(MAT.[User3], '')) AS [User3],
MAT.[Value] AS [Value],
@TimeBal AS [TimeBal],
CASE
WHEN
LEN(@TimeBal / 60) < 2
THEN
'0' + CAST(@TimeBal / 60 AS VARCHAR)
ELSE
CAST(@TimeBal / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @TimeBal) % 60), 2, 2) AS [TimeBalHours],
@ChargeBal AS [ChargeBal],
CASE
WHEN
LEN(@TotalTime / 60) < 2
THEN
'0' + CAST(@TotalTime / 60 AS VARCHAR)
ELSE
CAST(@TotalTime / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + CONVERT(INT, @TotalTime) % 60), 2, 2) AS [TotalHours],
@TotalCharge AS [TotalCharge],
MAT.[FileColour] AS [FileColour],
RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef],
RTRIM(ISNULL(MAT.[Status], '')) AS [Status],
MAT.[StatuteLimits] AS [StatuteLims],
RTRIM(ISNULL(MAT.[Comment], '')) AS [Comment],
@DraftBillValue AS [DraftBillTotal],
@TIEDATE AS [LastBillDate],
@LDIADATE AS [LastActionDate],
RTRIM(ISNULL(@LDIAActionType, '')) AS [LastActionType],
RTRIM(ISNULL(@LDIATEXT1, '')) AS [LastActionText],
RTRIM(ISNULL(@LDIAFNCODE, '')) AS [LastActionFE],
@MDIADATE AS [LastMilestoneDate],
RTRIM(ISNULL(@MDIAActionType, '')) AS [LastMilestoneType],
RTRIM(ISNULL(@MDIATEXT1, '')) AS [LastMilestoneText],
RTRIM(ISNULL(@MDIAFNCODE, '')) AS [LastMilestoneFE],
@NDIADATE AS [NextActionDate],
RTRIM(ISNULL(@NDIAActionType, '')) AS [NextActionType],
RTRIM(ISNULL(@NDIATEXT1, '')) AS [NextActionText],
RTRIM(ISNULL(@NDIAFNCODE, '')) AS [NextActionFE],
@LastTimeEntryDate AS [LastTimeEntryDate],
@LastTimeEntryTime AS [LastTimeEntryTime],
@LastTimeEntryRate AS [LastTimeEntryRate],
@LastTimeEntryCharge AS [LastTimeEntryCharge],
@LastTimeEntryTask AS [LastTimeEntrytask],
@LastTimeEntryComment AS [LastTimeEntryComment],
@LastTimeEntryFE AS [LastTimeEntryFE],
@TimeEntryTotalCharge AS [TimeEntryTotalCharge],
@TimeEntryTotalTime AS [TotalTime],
STC.[DESCRIPTION] AS [StatusCodeDescription],
CSM.[CSWKTCODE] AS [CSWKTCode],
TMP.[WKDESC] AS [WKDesc],
CASE WHEN MAT.[ShowCommentInAlarm] = 'Y'
THEN 'True'
ELSE 'False' END AS [ShowCommentInAlarm],
RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [FileColourDescription],
ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB],
@Section68 AS [Section68],
@IsApproved AS [IsApproved]
FROM dbo.[matters] MAT
LEFT JOIN dbo.[WorkTypes] WKT
ON WKT.[CODE] = MAT.[WType]
LEFT OUTER JOIN dbo.[Departments] DPT
ON DPT.[CODE] = MAT.[Dept]
LEFT OUTER JOIN dbo.[Handlers] HAN
ON HAN.[CODE] = MAT.[FECode]
LEFT OUTER JOIN dbo.[client] CLT
ON CLT.[CLCODE] = MAT.[ClientCode]
LEFT OUTER JOIN dbo.[StatusCodes] STC
ON STC.[CODE] = MAT.[Status]
LEFT OUTER JOIN dbo.[CaseMaster] CSM
LEFT OUTER JOIN dbo.[Templates] TMP
ON TMP.[WKCODE] = CSM.[CSWKTCODE]
ON CSM.[CSCODE] = MAT.[Code]
LEFT OUTER JOIN [dbo].[FileColours] FCL
ON FCL.[COLOURCODE] = MAT.[FileColour]
WHERE MAT.[Code] = @MatterCode
--Result Set 6
--Total Time [Activity]
SELECT
CASE
WHEN
LEN(TIES.[TOTALTIME] / 60) < 2
THEN
'0' + CAST(TIES.[TOTALTIME] / 60 AS VARCHAR)
ELSE
CAST(TIES.[TOTALTIME] / 60 AS VARCHAR)
END
+ ':'
+ SUBSTRING(CONVERT(VARCHAR(3), 100 + (TIES.[TOTALTIME] % 60)), 2, 2) AS [ActivityTotalTime],
TIES.[Value] AS [ActivityTotalValue]
FROM ( SELECT ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) AS [TOTALTIME],
SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [Value]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[MATTER] = MAT.[Code]
WHERE TIE.[MATTER] = @MatterCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C'))
AND TIE.[TASK] <> 'WRI') TIES
--Result Set 7
--Write off time
SELECT TIES.[WriteOffValue] As [WriteOffValue]
FROM ( SELECT SUM(CONVERT(DECIMAL(18, 2), ISNULL(TIE.[Charge], 0))) AS [WriteOffValue]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[MATTER] = MAT.[Code]
WHERE TIE.[MATTER] = @MatterCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C'))
AND TIE.[Task] = 'WRI') TIES
-- PLEASE NOTE THAT THE CALCULATION BELOW IS ALSO USED IN ky_NETTLFetchTimeEntry, so
-- please modify both procedures if this needs to be changed.
-- Result Set 10
-- The fees issued to date
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT ISNULL(SUM((CASE WHEN HED.[INVCR] = ''I''
THEN TRN.[VALUE]
ELSE TRN.[VALUE] * - 1 END)), 0) AS [FeesIssued]
FROM [dbo].[BatchH] HED
INNER JOIN [dbo].[BatchDetails] TRN
ON TRN.[BATCHNO] = HED.[BATCHNO]
WHERE HED.[MATTER] = @MatterCode
AND HED.[POSTED] = ''Y''
AND TRN.[TYPE] = ''I''
AND TRN.[OUTLAY] = ''F'''
END
ELSE
BEGIN
SET @NCOMMAND = N'
DECLARE @TotalFeesBilled DECIMAL(22, 2)
SELECT @TotalFeesBilled = ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[TransactionsHeaders] HED
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[BatchNo] = HED.[BatchNo]
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
WHERE HED.[MatterCode] = @MatterCode
--values imported from Axxia
SELECT @TotalFeesBilled = @TotalFeesBilled + ISNULL(SUM(ISNULL(TRN.[FeesBilled], 0) * ISNULL(TRN.[DrCr], 1) * (-1)), 0)
FROM [dbo].[Transactions] TRN
LEFT OUTER JOIN [dbo].[TransactionsHeaders] HED
ON HED.[BatchNo] = TRN.[BatchNo]
WHERE TRN.[MatterCode] = @MatterCode
AND TRN.[RecType] = ''D''
AND TRN.[LineType] = ''F''
AND TRN.[XnType] = ''I''
AND TRN.[Posted] = ''Y''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''X'')
AND HED.[BatchNo] IS NULL
SELECT @TotalFeesBilled AS [FeesIssued]'
END
EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20)', @MatterCode = @MatterCode
-- Result Set 11
-- Current outstanding fees
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(DTL.[OSFees], 0)), 0)) AS [OSFees]
FROM [dbo].[DebtorsLedger] DTL
WHERE DTL.[matter] = @MatterCode'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[FeesOS], 0)), 0)) AS [OSFees]
FROM [dbo].[Transactions] TRN
WHERE TRN.[MatterCode] = @MatterCode
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND TRN.[CorrectionInd] = ''L'''
END
EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20)', @MatterCode = @MatterCode
SELECT @IsSAM4 AS [IsSAM4]
END
GO
IF OBJECT_ID(N'KAAS_GetMatterLedgerDetail_Web', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetMatterLedgerDetail_Web]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetMatterLedgerDetail_Web]
(
@MatterCode VARCHAR(20),
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SearchText VARCHAR(400) = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL
)
AS
/******************************************************************************************************************
* *
* Used to fetch matter ledger and account summary details *
* *
* Stored Procedure Name: [dbo].[KAAS_GetMatterLedgerDetail_Web] *
* Copied from : [dbo].[ky_NETGetMatterLedger] *
* [dbo].[ky_NETGetMatterLedgerSAM4] *
* *
* Modification History: *
* 2019-06-05 Vinodhan K Created *
******************************************************************************************************************/
BEGIN
DECLARE @IsSAM4 bit
DECLARE @Query NVARCHAR(200)
SET @IsSAM4 = [dbo].[ISSAM4]()
EXECUTE KAAS_GetMatterLedger @MatterCode, @PageNumber, @PageSize, @SearchText, @SortColumn, @SortDirection
/*Account Summary*/
DECLARE @NCOMMAND nvarchar(MAX)
DECLARE @DraftBillValue DECIMAL(18, 2)
IF @IsSAM4 = 0
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NET], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VATVALUE], 0)), 0)
FROM [dbo].[BillHeader] HED
INNER JOIN [dbo].[BillDetails] BD
ON BD.[DRAFTNO] = HED.[DRAFTNO]
WHERE HED.[MATTER] = @MatterCode
AND HED.[BILLNO] = 0'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @DraftBillValue = ISNULL(SUM(ISNULL(BD.[NetValue], 0)), 0) + ISNULL(SUM(ISNULL(BD.[VatValue], 0)), 0)
FROM [dbo].[BillHead] HED
INNER JOIN [dbo].[BillDetail] BD
ON BD.[BillID] = HED.[BillingID]
WHERE HED.[MatterCode] = @MatterCode
AND HED.[BillStatus] <> ''Approved''
AND ISNULL(HED.[ProForma], '''') = ''Y'''
END
EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20),@DraftBillValue DECIMAL(18, 2) OUTPUT', @MatterCode = @MatterCode, @DraftBillValue=@DraftBillValue OUTPUT
DECLARE @Section68 VARCHAR(10)
DECLARE @IsApproved VARCHAR(10)
DECLARE @TimeBal INT
DECLARE @ChargeBal DECIMAL(19, 2)
DECLARE @TotalCharge Decimal(19, 2)
DECLARE @TotalTime INT
--Matter values that are re-used elsewhere in this procedure.
SELECT @Section68 = ISNULL(MAT.[Section68],''),
@IsApproved = ISNULL(CON.[Approved],'')
FROM [dbo].[matters] MAT
LEFT OUTER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
WHERE MAT.[Code] = @MatterCode
DECLARE @LDIADATE DATETIME
DECLARE @LDIAACTIONTYPE VARCHAR(1)
DECLARE @LDIATEXT1 VARCHAR(MAX)
DECLARE @LDIAFNCODE VARCHAR(10)
SELECT TOP 1
@LDIADATE = LDIA.[DATE],
@LDIAACTIONTYPE = LDIA.[ACTIONTYPE],
@LDIATEXT1 = LDIA.[TEXT1],
@LDIAFNCODE = LDIA.[FNCODE]
FROM [dbo].[diary] LDIA
WHERE LDIA.[CASECODE] = @MatterCode
ORDER BY LDIA.[DATE] DESC
DECLARE @MDIADATE DATETIME
DECLARE @MDIAACTIONTYPE VARCHAR(1)
DECLARE @MDIATEXT1 VARCHAR(MAX)
DECLARE @MDIAFNCODE VARCHAR(10)
SELECT TOP 1
@MDIADATE= MDIA.[DATE],
@MDIAACTIONTYPE = MDIA.[ACTIONTYPE],
@MDIATEXT1 = MDIA.[TEXT1],
@MDIAFNCODE = MDIA.[FNCODE]
FROM [dbo].[diary] MDIA
WHERE MDIA.[CASECODE] = @MatterCode
AND MDIA.[HIGHLIGHTED] = 'Y'
ORDER BY MDIA.[DATE] DESC
DECLARE @NDIADATE DATETIME
DECLARE @NDIAACTIONTYPE VARCHAR(1)
DECLARE @NDIATEXT1 VARCHAR(MAX)
DECLARE @NDIAFNCODE VARCHAR(10)
SELECT TOP 1
@NDIADATE = NDIA.[DATE],
@NDIAACTIONTYPE = NDIA.[ACTIONTYPE],
@NDIATEXT1 = NDIA.[TEXT1],
@NDIAFNCODE = NDIA.[FNCODE]
FROM dbo.[diary] NDIA
WHERE NDIA.[CASECODE] = @MatterCode
AND NDIA.[STATUS] = 0
ORDER BY NDIA.[DATE] ASC
DECLARE @TIEDATE DATETIME
--Pino 2015-05-27 Start
--SELECT @TIEDATE = (MAX(TIE.[DATE]))
-- FROM [dbo].[TimeEntry] TIE
-- WHERE TIE.[Matter] = @MatterCode
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN DLG.[DATE] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN DLG.[DATE] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE DLG.[DATE] END)
FROM [dbo].[DebtorsLedger] DLG
WHERE DLG.[MATTER] = @MatterCode'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT @TIEDATE = MAX(CASE WHEN TRN.[TransDate] IS NULL
THEN CONVERT(DATETIME, NULL)
WHEN TRN.[TransDate] > GETDATE()
THEN CONVERT(DATETIME, NULL)
ELSE TRN.[TransDate] END)
FROM [dbo].[Transactions] TRN
WHERE TRN.[Posted] = ''Y''
AND TRN.[MatterCode] = @MatterCode
AND TRN.[DebtorsValue] <> 0
AND TRN.[CorrectionInd] = ''L''
AND ( ( TRN.[XnType] = ''I''
AND TRN.[RecType] = ''H'')
OR ( TRN.[XnType] = ''J''
AND TRN.[RecType] = ''D''))'
END
EXECUTE sp_executesql @NCOMMAND, N'@MatterCode VARCHAR(20), @TIEDATE DATETIME OUTPUT', @MatterCode = @MatterCode, @TIEDATE = @TIEDATE OUTPUT
--Pino 2015-05-27 End
DECLARE @LastTimeEntryDate DATETIME
DECLARE @LastTimeEntryTime INT
DECLARE @LastTimeEntryRate DECIMAL(10, 2)
DECLARE @LastTimeEntryCharge DECIMAL(10, 2)
DECLARE @LastTimeEntryTask VARCHAR(6)
DECLARE @LastTimeEntryComment VARCHAR(1000)
DECLARE @LastTimeEntryFE VARCHAR(10)
DECLARE @TimeEntryTotalCharge DECIMAL(19, 2)
DECLARE @TimeEntryTotalTime INT
SELECT TOP (1)
@LastTimeEntryDate = TIE.[DATE],
@LastTimeEntryTime = TIE.[Time],
@LastTimeEntryRate = TIE.[Rate],
@LastTimeEntryCharge = TIE.[Charge],
@LastTimeEntryTask = TIE.[Task],
@LastTimeEntryComment = TIE.[Comment],
@LastTimeEntryFE = TIE.[FeeEarn]
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[Matter] = @MatterCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
ORDER BY TIE.[Date] DESC,
TIE.[Time] DESC
SET @LastTimeEntryRate = ISNULL(@LastTimeEntryRate, 0)
SET @LastTimeEntryCharge = ISNULL(@LastTimeEntryCharge, 0)
-- Please see also: ky_NETFNMatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- ky_NETPMatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- ky_NETTLFetchTimeEntry. If you change any of these calculations,
-- ensure the ones in there are changed as well.
SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0),
@TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0),
@TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Charge], 0) END), 0),
@ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 1
THEN ISNULL(TIE.[Charge], 0)
ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0) END), 0),
@TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN CASE WHEN TIE.[Charge] = 0
THEN 0
ELSE CONVERT(INT,
FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME])
* ( (TIE.[Charge] - TIE.[BilledAmount])
/
TIE.[Charge]))) END
ELSE ISNULL(TIE.[Time], 0) END), 0),
@TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Time], 0) END), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[Matter] = @MatterCode
AND ( (TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
DECLARE @DebtBal DECIMAL(19, 2)
DECLARE @OutlayBal DECIMAL(19, 2)
DECLARE @DebtBalDate DATETIME
DECLARE @OutlayBalDate DATETIME
DECLARE @ClientCurrent DECIMAL(19, 2)
DECLARE @ClientDeposit DECIMAL(19, 2)
-- Please see also: ky_NETFNMatterClosable. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- ky_NETTLFetchTimeEntry. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- To ensure SAM3 will retrieve these from [dbo].[matters]
SET @DebtBal = 0
SET @OutlayBal = 0
SET @ClientCurrent = 0
SET @ClientDeposit = 0
IF @IsSAM4 = 1
BEGIN
SET @NCOMMAND = N'
SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)),
@DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)),
@OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)),
@ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0))
FROM [dbo].[Transactions] TRN
WHERE TRN.[MatterCode] = @MatterCode
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND TRN.[CorrectionInd] = ''L'''
EXECUTE sp_executesql @NCOMMAND,
N'@MatterCode VARCHAR(20),
@DebtBal DECIMAL(19, 2) OUTPUT,
@DebtBalDate DATETIME OUTPUT,
@OutlayBal DECIMAL(19, 2) OUTPUT,
@OutlayBalDate DATETIME OUTPUT,
@ClientCurrent DECIMAL(19, 2) OUTPUT,
@ClientDeposit DECIMAL(19, 2) OUTPUT',
@MatterCode = @MatterCode,
@DebtBal = @DebtBal OUTPUT,
@DebtBalDate = @DebtBalDate OUTPUT,
@OutlayBal = @OutlayBal OUTPUT,
@OutlayBalDate = @OutlayBalDate OUTPUT,
@ClientCurrent = @ClientCurrent OUTPUT,
@ClientDeposit = @ClientDeposit OUTPUT
END
SELECT @IsSAM4 AS [IsSAM4]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetMatterPrivilegeGroups'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetMatterPrivilegeGroups]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetMatterPrivilegeGroups]
(@matter VARCHAR(20))
AS
/*******************************************************************************************************
* Lists the privilege groups in the system, AND whether the matter passed in through @matter is *
* part of these groups. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetMatterPrivilegeGroups] *
* Copied from : [dbo].[ky_NETSPGetMatterPrivilegeGroups] *
* *
* Modification History : *
* 2019-05-21 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT CONVERT(VARCHAR(20), RTRIM(ISNULL(MAT.[Code], ''))) AS [MATTER],
SNG.[GroupID],
SNG.[BitWiseID],
SNG.[GroupName],
CASE WHEN MNP.[MATTER] IS NULL
THEN 'NOT SET'
WHEN MNP.[Privileges] IS NULL
THEN 'NOT SET'
WHEN MNP.[Privileges] = 0
THEN 'NOT SET'
WHEN MNP.[Privileges] & SNG.[BitWiseID] <> 0
THEN 'YES'
ELSE 'NO' END AS [IsInGroup]
FROM [dbo].[matters] MAT
CROSS APPLY [dbo].[SecurityNetGroups] SNG
LEFT OUTER JOIN [dbo].[MatterNETPrivileges] MNP
ON MNP.[MATTER] = MAT.[Code]
WHERE MAT.[Code] = @matter
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetMostRecentMatterHeader'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetMostRecentMatterHeader]
END
GO
CREATE PROCEDURE [KAAS_GetMostRecentMatterHeader]
(@handler VARCHAR(10))
AS
/*******************************************************************************************************
* Get the Header details for the Most Recent Matter for a handler *
* *
* Stored Procedure Name : [dbo].[KAAS_GetMostRecentMatterHeader] *
* Copied from : [dbo].[ky_NETPGetMostRecentMatterHeader] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT TOP 1
[KHD].[CODE],
[KHD].[ClientCode],
[KHD].[MatterNo],
[KHD].[YourRef],
[KHD].[DESCRIPTION],
[KHD].[FECode],
[KHD].[FEName],
[KHD].[Name],
[KHD].[TelNo],
[KHD].[Address],
[KHD].[Closed],
[KHD].[TOOLTIP],
[KHD].[IsChildcare],
[KHD].[User1],
[KHD].[User2],
[KHD].[User3],
[KHD].[Partner],
[KHD].[PartnerName],
[KHD].[CompBillingMatter],
[KHD].[MatterUniqueID]
FROM [dbo].[RecentMatterList] [RML]
CROSS APPLY [dbo].[KAAS_FN_MatterHeaderDetails]([RML].[MATTER]) [KHD]
WHERE [RML].[FEE] = @handler
ORDER BY [RML].[DateField] DESC
END
GO
IF OBJECT_ID(N'KAAS_GetMyDayBook', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetMyDayBook]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetMyDayBook]
(@FECode VARCHAR(10),
@Post CHAR(1) = 'N',
@Handler NVARCHAR(10),
@Key NVARCHAR(100),
@SearchText VARCHAR(4000) = '',
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL)
AS
/*******************************************************************************************************
* Gets the Day Book *
* *
* Stored Procedure Name : [dbo].[KAAS_GetMyDayBook] *
* Copied from : [dbo].[ky_NETGetMyDayBook] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
* 2019-07-02 Vinodhan K Case Time format has been modifed to "00:00" *
*******************************************************************************************************/
BEGIN
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
DECLARE @DayBookValue INT
SELECT
@DayBookValue = ISNULL(SUM([TDB].[Time]), 0)
FROM
[dbo].[Timedaybook] [TDB] WITH (NOLOCK)
WHERE
[TDB].[FeeEarn] = @FECode
IF(@DayBookValue = 0)
BEGIN
SET @DayBookValue=1
END
DECLARE @DAYBOOK TABLE
([Row_Number] INT IDENTITY(1, 1) NOT NULL,
[Time] INT NOT NULL,
[CaseTime] VARCHAR(60) NOT NULL,
[MatterDetails] VARCHAR(500) NOT NULL,
[Progress] INT NOT NULL,
[StopwatchStatus] INT NOT NULL,
[RecordID] INT NOT NULL PRIMARY KEY,
[DATE] DATETIME NOT NULL,
[MATTER] VARCHAR(20) NOT NULL,
[DisplayMatter] VARCHAR(20) NOT NULL,
[Name] VARCHAR(256) NOT NULL,
[COMMENT] VARCHAR(1000) NOT NULL,
[CHARGE] DECIMAL(10, 2) NOT NULL,
[TimeOrCharge] VARCHAR(1) NOT NULL,
[Post] VARCHAR(1) NOT NULL)
DECLARE @DAYBOOKSUM TABLE
([id] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[RecordID] INT NOT NULL,
[Time] INT NOT NULL,
[OriginalTime] INT NOT NULL,
[TotalTimeMinusOne] INT NOT NULL)
INSERT
INTO @DAYBOOK
([Time],
[CaseTime],
[MatterDetails],
[Progress],
[StopwatchStatus],
[RecordID],
[DATE],
[MATTER],
[DisplayMatter],
[Name],
[COMMENT],
[CHARGE],
[TimeOrCharge],
[Post])
SELECT
[TDB].[Time],
CASE
WHEN
[TDB].[Time] < 0
THEN
'-'
ELSE
''
END
+
--RIGHT('00' + CAST(FLOOR(ABS([TDB].[Time]) / 60) AS VARCHAR), 3)
--SUBSTRING(CONVERT(VARCHAR, FLOOR(ABS([TDB].[Time]) / 60)), LEN(CONVERT(VARCHAR, FLOOR(ABS([TDB].[Time]) / 60))) - 1, 2)
CASE
WHEN
LEN(FLOOR(ABS([TDB].[Time]) / 60)) < 2
THEN
'0' + CAST(FLOOR(ABS([TDB].[Time])) / 60 AS VARCHAR)
ELSE
CAST(FLOOR(ABS([TDB].[Time])) / 60 AS VARCHAR)
END
+
':'
+
SUBSTRING
(
CONVERT(VARCHAR, 100 + ABS([TDB].[Time]) % 60),
LEN(CONVERT(VARCHAR, 100 + ABS([TDB].[Time]) % 60)) - 1,
2
) AS [CaseTime],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace] --2018-03-12
(
RTRIM(ISNULL([CON].[Name], ''))
+
' '
+
RTRIM(ISNULL([MAT].[Description], '')),
500
) AS [MatterDetails],
0 AS [Progress],
ISNULL([TDB].[StopwatchStatus], 0) AS [StopwatchStatus],
[TDB].[RecordID] AS [RecordID],
[TDB].[Date] AS [DATE],
[TDB].[Matter] AS [Matter],
CASE
WHEN
[TDB].[Matter] = '~'
THEN
'Admin Time'
ELSE
[TDB].[Matter]
END AS [DisplayMatter],
RTRIM(ISNULL([CON].[Name],'')) AS [Name],
RTRIM(ISNULL([TDB].[Comment], '')) AS [COMMENT],
[TDB].[Charge] AS [CHARGE],
UPPER([TDB].[TimeOrCharge]) AS [TimeorCharge],
CASE
WHEN
RTRIM(UPPER(ISNULL([TDB].[Post], ''))) = 'N'
THEN
'N'
ELSE
'Y'
END AS [Post]
FROM
[dbo].[TimeDayBook] [TDB] WITH (NOLOCK)
LEFT OUTER JOIN
[dbo].[matters] [MAT] WITH (NOLOCK)
ON
[MAT].[Code] = [TDB].[Matter]
LEFT OUTER JOIN
[dbo].[Contacts] [CON] WITH (NOLOCK)
ON
[CON].[Code] = [MAT].[ClientCode]
WHERE
(
RTRIM(ISNULL([CON].[Name],'')) LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([MAT].[Description],'')) LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([TDB].[Matter],'')) LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([TDB].[Comment],'')) LIKE '%' + @SearchText + '%'
)
AND
[TDB].[FeeEarn] = @FECode
AND
ISNULL([TDB].[Post], 'Y') IN ('Y', @Post)
ORDER BY
[TDB].[RecordID]
INSERT INTO @DAYBOOKSUM
([RecordID],
[Time],
[OriginalTime],
[TotalTimeMinusOne])
SELECT [TDB].[RecordID],
0,
ISNULL([TDB].[Time], 0),
0
FROM
@DAYBOOK [TDB]
ORDER BY
[TDB].[RecordID]
DECLARE @TOTALTIME INT
SET @TOTALTIME = 0
UPDATE [DBS]
SET @TOTALTIME = @TOTALTIME + ISNULL([DBSPREV].[OriginalTime], 0),
[DBS].[TotalTimeMinusOne] = @TOTALTIME
FROM @DAYBOOKSUM [DBS]
LEFT OUTER JOIN @DAYBOOKSUM [DBSPREV]
ON [DBSPREV].[id] = [DBS].[id] - 1
UPDATE [DBS]
SET [DBS].[Time] = [DBS].[OriginalTime] + [DBS].[TotalTimeMinusOne]
FROM @DAYBOOKSUM [DBS]
-- This will guarantee that the percentages in [Progress] will always add up to exactly 100
UPDATE [TDB]
SET [TDB].[Progress]
= CONVERT(INT, ROUND((CONVERT(FLOAT, [TDBS].[Time]) / CONVERT(FLOAT, @DayBookValue)) * CONVERT(FLOAT, 100), 0)) --The current cumulative percentage
- CONVERT(INT, ROUND((CONVERT(FLOAT, [TDBS].[Time] - [TDB].[Time]) / CONVERT(FLOAT, @DayBookValue)) * CONVERT(FLOAT, 100), 0)) -- minus the last cumulative percentage
FROM @DAYBOOKSUM [TDBS]
INNER JOIN @DAYBOOK [TDB]
ON [TDB].[RecordID] = [TDBS].[RecordID]
--CROSS APPLY (SELECT ISNULL(SUM([TDBP].[Time]), 0) AS [Time]
-- FROM @DAYBOOK [TDBP]
-- WHERE [TDBP].[RecordID] <= [TDB].[RecordID]) [TDBS]
SELECT
[TDB].[Row_Number],
[TDB].[Time],
[TDB].[CaseTime],
[TDB].[MatterDetails],
[TDB].[Progress],
[TDB].[StopwatchStatus],
[TDB].[RecordID],
[TDB].[DATE],
[TDB].[MATTER],
[TDB].[DisplayMatter],
[TDB].[Name],
[TDB].[COMMENT],
[TDB].[CHARGE],
[TDB].[TimeOrCharge],
[TDB].[Post]
FROM
@DAYBOOK [TDB]
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Row_Number' THEN [Row_Number]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Row_Number' THEN [Row_Number]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date' THEN [DATE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date' THEN [DATE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'DisplayMatter' THEN [DisplayMatter]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'DisplayMatter' THEN [DisplayMatter]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Name' THEN [Name]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'MatterDetails' THEN [MatterDetails]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'MatterDetails' THEN [MatterDetails]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Comment' THEN [Comment]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Charge' THEN [Charge]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'CaseTime' THEN [CaseTime]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'CaseTime' THEN [CaseTime]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Progress' THEN [Progress]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Progress' THEN [Progress]
END
END DESC
SELECT
[TDB].[Rec_Irr] AS [ChargeType],
CASE WHEN SUM([TDB].[Time]) < 0 THEN '-' ELSE '' END
+ CASE WHEN ABS(FLOOR(SUM([TDB].[Time]) / 60.0)) < 10 THEN '0' ELSE '' END
+ CONVERT(VARCHAR, ABS(FLOOR(SUM([TDB].[Time]) / 60)))
+ ':'
+ RIGHT('00' + CONVERT(VARCHAR, ABS(FLOOR(SUM([TDB].[Time]))) % 60), 2) AS [CaseTime]
FROM
[dbo].[TimeDayBook] [TDB] WITH (NOLOCK)
WHERE
[TDB].[FeeEarn] = @FECode
AND
ISNULL([TDB].[Post], 'Y') IN ('Y', @Post)
GROUP BY
[TDB].[Rec_Irr]
ORDER BY
[TDB].[Rec_Irr]
SELECT @DayBookValue AS DayBookValue
EXECUTE [dbo].[KAAS_GetUserSettings] @Handler, @Key
SELECT
COUNT([Row_Number])
FROM
@DAYBOOK
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_GetNextActionID'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetNextActionID]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetNextActionID]
AS
/*******************************************************************************************************
* Dummy Procedure in preparation for the use of the DiarySeed table *
* *
* Stored Procedure Name : [dbo].[KAAS_GetNextActionID] *
* Copied from : [dbo].[ky_NETGetNextActionID] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
--Old code START
--DECLARE @nextVAL INT
--DECLARE @delVAL INT
--SELECT @nextVAL = ISNULL(MAX(DIA.[ActionID]), 0) + 1
-- FROM [dbo].[diary] DIA
--SELECT @delVAL = ISNULL(MAX(DIA.[ActionID]), 0) + 1
-- FROM [dbo].[DiaryDeletionLog] DIA
--IF (@delVAL > @nextVAL)
-- BEGIN
-- SET @nextVAL = @delVAL
-- END
--RETURN @nextVAL
--Old code END
DECLARE @MaxActionID INT
DECLARE @bsuccess BIT
SET @bsuccess = 0
WHILE (@bsuccess = 0)
BEGIN
BEGIN TRY
INSERT
INTO [dbo].[diaryids] DEFAULT VALUES
SET @MaxActionID = SCOPE_IDENTITY()
SET @bsuccess = 1
END TRY
BEGIN CATCH
SET @bsuccess = 0
END CATCH
END
-- This while loop handles the possibility that a piece of legacy code uses the OLD mechanism
WHILE EXISTS
(SELECT TOP 1 1
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @MaxActionID)
BEGIN
SET @bsuccess = 0
WHILE (@bsuccess = 0)
BEGIN
BEGIN TRY
INSERT
INTO [dbo].[diaryids] DEFAULT VALUES
SET @MaxActionID = SCOPE_IDENTITY()
SET @bsuccess = 1
END TRY
BEGIN CATCH
SET @bsuccess = 0
END CATCH
END
END
DELETE [dbo].[diaryids]
RETURN @MaxActionID
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_GetNextTrackReference'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetNextTrackReference]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetNextTrackReference]
AS
/*******************************************************************************************************
* Dummy Procedure in preparation for the use of the DiaryAttachmentsSeed table. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetNextTrackReference] *
* Copied from : [dbo].[ky_NETGetNextTrackReference] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
--old code START
--DECLARE @nextVAL INT
--DECLARE @delVAL INT
--SELECT @nextVAL = ISNULL(MAX(DAT.[TrackReference]), 0) + 1
-- FROM [dbo].[DiaryAttachments] DAT
--SELECT @delVAL = ISNULL(MAX(DAT.[TrackReference]), 0) + 1
-- FROM [dbo].[DiaryAttachmentDeletionLog] DAT
--IF (@delVAL > @nextVAL)
-- BEGIN
-- SET @nextVAL = @delVAL
-- END
--RETURN @nextVAL
--old code END
DECLARE @MaxTrackReference INT
DECLARE @bsuccess BIT
SET @bsuccess = 0
WHILE (@bsuccess = 0)
BEGIN
BEGIN TRY
INSERT
INTO [dbo].[trackreferences] DEFAULT VALUES
SET @MaxTrackReference = SCOPE_IDENTITY()
SET @bsuccess = 1
END TRY
BEGIN CATCH
SET @bsuccess = 0
END CATCH
END
-- This while loop handles the possibility that a piece of legacy code uses the OLD mechanism
WHILE EXISTS
(SELECT TOP 1 1
FROM [dbo].[DiaryAttachments] [DAT]
WHERE [DAT].[TrackReference] = @MaxTrackReference)
BEGIN
SET @bsuccess = 0
WHILE (@bsuccess = 0)
BEGIN
BEGIN TRY
INSERT
INTO [dbo].[trackreferences] DEFAULT VALUES
SET @MaxTrackReference = SCOPE_IDENTITY()
SET @bsuccess = 1
END TRY
BEGIN CATCH
SET @bsuccess = 0
END CATCH
END
END
DELETE [dbo].[trackreferences]
RETURN @MaxTrackReference
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetNextTrackReferenceInDiaryAttachments'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetNextTrackReferenceInDiaryAttachments]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetNextTrackReferenceInDiaryAttachments]
AS
/*******************************************************************************************************
* Gets next available track referene number *
* *
* Stored Procedure Name : [dbo].[KAAS_GetNextTrackReferenceInDiaryAttachments] *
* Copied from : [dbo].[spGetNextTrackReferenceInDiaryAttachments] *
* *
* Modification History : *
* 2019-04-10 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @TrackReference INT
EXEC @TrackReference = [dbo].[ky_NETGetNextTrackReference]
SELECT @TrackReference AS [TRACKREFERENCE]
--SELECT
-- ISNULL(MAX(TRACKREFERENCE), 0)+1 AS TRACKREFERENCE
--FROM
-- dbo.DiaryAttachments --ORDER BY TRACKREFERENCE DESC
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetNotificationApprovalData'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetNotificationApprovalData]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetNotificationApprovalData]
(@mattercode VARCHAR(20),
@clientcode VARCHAR(10))
AS
/*************************************************************************************************************
* *
* Stored Procedure Name : [dbo].[ky_NETSPGetNotficationApprovalData] *
* Copied From : KAAS_GetNotificationApprovalData *
* *
* Retrieve Notification Approval Data *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * First compatible version: 5.5.4.3 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2018-06-07 Pino Carafa Created *
* 2019-07-16 Vinodhan K Created KAAS_GetNotificationApprovalData *
*************************************************************************************************************/
BEGIN
SET @mattercode = RTRIM(ISNULL(@mattercode, ''))
IF @mattercode <> ''
BEGIN
SELECT @clientcode = [MAT].[ClientCode]
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @mattercode
END
DECLARE @ApprovedDate DATETIME
SET @ApprovedDate = (SELECT Top 1 [Started] FROM [Matters] WHERE [ClientCode] = @CLIENTCODE ORDER BY [Started],[Matter] ASC)
SELECT ISNULL([CON].[TYPE], 0) AS [Type],
ISNULL([CON].[Status], '') AS [Status],
ISNULL([CON].[ClientType], 0) AS [ClientType],
ISNULL([CON].[IntroBy], 0) AS [IntroBy],
ISNULL([CON].[SCDD_Category], '') AS [SCDD],
CONVERT(VARCHAR(11), [CON].[LastInstructionRecieved], 23) AS [LastInstructionRecieved],
ISNULL([CON].[Approved], 0) AS [Approved],
Case WHEN [ApprovedDate] is null
THEN CONVERT(VARCHAR(11), @ApprovedDate, 23)
ELSE CONVERT(VARCHAR(11), [CON].[ApprovedDate], 23) END AS [ApprovedDate],
ISNULL([HAN].[NAME], '') AS [ApprovedByUser]
FROM [dbo].[Contacts] [CON]
LEFT OUTER JOIN [dbo].[Handlers] [HAN]
ON [HAN].[CODE] = [CON].[ApprovedByUSER]
WHERE [CON].[Code] = @clientcode
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetOWAUserSettings'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetOWAUserSettings]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetOWAUserSettings]
(
@Handler NVARCHAR(10) --DO NOT CHANGE, table contains NVARCHAR columns
)
As
/*******************************************************************************************************
* This Procedure is used to Get User Settings for OWA *
* *
* Stored Procedure Name : [dbo].[KAAS_GetOWAUserSettings] *
* *
* Modification History : *
* 2019-07-11 RAMESH K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
USS.[Key],
USS.[Value]
FROM
[dbo].[UserSettings] USS
WHERE
USS.[Handler] = @Handler
AND
USS.[Key] LIKE 'KAAS_OWA_%'
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetSettings',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GetSettings]
GO
CREATE PROCEDURE [dbo].[KAAS_GetSettings]
(
@keyname VARCHAR(50)
)
AS
/*******************************************************************************************************
* This sp is used to store the scancapture setting *
* *
* Stored Procedure Name : [dbo].[KAAS_GetSettings] *
* Copied from : [dbo].[ky_NETGetSettings] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON;
DECLARE @value VARCHAR(100)
SELECT @value = [SET].[KeyValue]
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = @keyname
SET @value = ISNULL(@value, '')
SELECT @value AS [KeyValue]
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetTaskList',N'P')IS NOT NULL
DROP PROCEDURE KAAS_GetTaskList
GO
CREATE PROCEDURE [dbo].[KAAS_GetTaskList]
(@HandlerID VARCHAR(10) = NULL,
@FromDate DATETIME = NULL,
@ToDate DATETIME = NULL,
@TaskListMode BIT,
@TeamID VARCHAR(10) = NULL,
@IsOutstandingOnly BIT = 1,
@BitWiseID BIGINT,
@From INT = 0,
@To INT = 5000,
@TaskType VARCHAR(20) = '',
@PageNumber INT,
@PageSize INT,
@SearchText VARCHAR(4000),
@ActionType VARCHAR(4000),
@Priority VARCHAR(4000),
@Flag VARCHAR(4000),
@SortColumn VARCHAR(50),
@SortDirection VARCHAR(10),
@TotalRecords INT = 1 OUT,
@userprompt1 VARCHAR(MAX) = 'USERPROMPT1' OUT,
@userprompt2 VARCHAR(MAX) = 'USERPROMPT2' OUT,
@userprompt3 VARCHAR(MAX) = 'USERPROMPT3' OUT)
AS
/************************************************************************************************************
* *
* Get the task list for the framework's main Task screen *
* *
* Stored Procedure Name : [dbo].[KAAS_GetTaskList] *
* Copied from : [dbo].[ky_NETGetTaskList] *
* *
* Modification History: *
* 2018-12-03 Vinodhan K Created *
* 2019-01-29 Vinodhan K Paging added *
* 2019-04-09 Vinodhan K Sorting of few columns have been implemeneted *
* 2019-04-30 Arun V KEYHM-402 Issue corrected. If SortColumn and SortDirection not *
specified then make these column as empty string, so sorting will not *
perform. default sorting condition will apply. *
ORDER BY DEL.[HANDLER] DESC, *
DEL.[DATE] DESC, *
DEL.[TIME] DESC, *
DEL.[AssignNo] DESC *
*
*************************************************************************************************************/
BEGIN
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = ''
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = ''
END
SET NOCOUNT ON
DECLARE @ShowFromToSynopsis BIT
SET @ShowFromToSynopsis = CASE WHEN ISNULL((SELECT TOP 1
[SET].[KeyValue]
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'ShowFromToSynopsis'),
'True') = 'False'
THEN 0
ELSE 1 END
SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0))
DECLARE @Comment NVARCHAR(MAX)
DECLARE @DELS TABLE
([ID] INT IDENTITY(1, 1) NOT NULL,
[DATE] DATETIME NOT NULL,
[TIME] VARCHAR(10) NOT NULL,
[ASSIGNNO] INT NOT NULL,
[ACTIONID] INT NOT NULL,
[STATUS] INT NOT NULL)
SET @Comment = N'
SELECT ISNULL(DEL.[DATE], ''18000101''),
ISNULL(DEL.[TIME], ''''),
DEL.[AssignNo],
DEL.[ACTIONID],
ISNULL(DEL.[STATUS], 0)
FROM [dbo].[DiaryDelegations] DEL
INNER JOIN [dbo].[diary] DIA
INNER JOIN [dbo].[matters] MAT
LEFT OUTER JOIN [dbo].[MatterNETPrivileges] MNP
ON MNP.[MATTER] = MAT.[Code]
ON MAT.[Code] = DIA.[CASECODE]
AND MAT.[Closed] = ''N''
ON DIA.[ACTIONID] = DEL.[ACTIONID]
WHERE '
IF ISNULL(@TaskListMode, 0) = 1
BEGIN
SET @Comment = @Comment + N'DEL.[HANDLER] = @HandlerID
AND '
END
ELSE
BEGIN
SET @Comment = @Comment + N'DEL.[TEAM] = @TeamID
AND '
END
SET @Comment = @Comment + N'DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')
AND DEL.[DATE] >= CONVERT(DATETIME, @FromDate)'
IF(@TaskType = 'OVERDUE')
BEGIN
SET @Comment = @Comment + N'
AND DEL.[DATE] < DATEADD(DAY, 1, CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112)))
AND '
END
ELSE IF (@TaskType != 'OUTSTANDING')
BEGIN
SET @Comment = @Comment + N'
AND DEL.[DATE] < DATEADD(DAY, 1, CONVERT(DATETIME, @ToDate))
AND '
END
ELSE
BEGIN
SET @Comment = @Comment + N'
AND '
END
IF NOT ISNULL(@IsOutstandingOnly, 1) = 0
BEGIN
SET @Comment = @Comment + N'DEL.[STATUS] = 0
AND '
END
SET @Comment = @Comment +
N'( ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, @BitWiseID)<> 0
OR ISNULL(MNP.[Privileges], CONVERT(BIGINT, 0)) = 0)
ORDER BY DEL.[HANDLER] DESC,
DEL.[DATE] DESC,
DEL.[TIME] DESC,
DEL.[AssignNo] DESC'
--If you want to test this procedure, uncomment the line below before calling it from SQL Server Management Studio
--don't forget to comment it again when you're finished!
-- SELECT @Comment
INSERT INTO @DELS
(
[DATE],
[TIME],
[ASSIGNNO],
[ACTIONID],
[STATUS]
)
EXECUTE sp_executesql
@Comment,
N'@HandlerID VARCHAR(20), @ToDate DATETIME, @FromDate DATETIME, @BitWiseID BIGINT, @TeamID VARCHAR(10), @TaskListMode BIT, @IsOutstandingOnly BIT, @TaskType VARCHAR(20)',
@HandlerID = @HandlerID,
@ToDate=@ToDate,
@FromDate=@FromDate,
@BitWiseID = @BitWiseID,
@TeamID = @TeamID,
@TaskListMode=@TaskListMode,
@IsOutstandingOnly = @IsOutstandingOnly,
@TaskType=@TaskType
SELECT
IDENTITY(int, 1,1) AS [Row_Number],
*
INTO #FoundTable
FROM (
SELECT
--ROW_NUMBER() OVER(ORDER BY DEL.[ID]) AS [Row_Number],
DEL.[ID],
DEL.[STATUS] AS [DDStatus],
CASE
WHEN RTRIM(ISNULL(DIA.[PRIORITY], '')) IN ('H', 'L', 'N')
THEN UPPER(RTRIM(ISNULL(DIA.[PRIORITY], '')))
ELSE 'N'
END AS [Priority],
CONVERT(DATETIME, CONVERT(VARCHAR, DEL.[DATE], 112) + ' ' + CONVERT(VARCHAR, DIA.[DATE], 108)) AS [DelDate],
CONVERT(VARCHAR(5), DIA.[DATE], 108) AS [Time],
RTRIM(ISNULL(DIA.[CASECODE],'')) AS [CaseCode],
RTRIM(ISNULL(DDL.[HANDLER],'')) AS [Handler],
RTRIM(ISNULL(DDL.[TEAM],'')) AS [Team],
RTRIM(ISNULL(DDL.[FromHandler],'')) AS [From],
RTRIM(ISNULL(CON.[Name],'')) + CHAR(13) + RTRIM(ISNULL(MAT.[Description],'')) AS [ClientCase],
RTRIM(ISNULL(CON.[Name],'')) AS [ClientName],
RTRIM(ISNULL(DIA.[DisplayText], '')) as [Action],
CASE
WHEN DIA.[DATE] != NULL OR DIA.[DATE] != ''
THEN CONVERT(VARCHAR, DIA.[DATE], 20)
ELSE
'1900-01-01'
END AS Date1,
ISNULL(DIA.[STATUS], 0) as DStatus,
RTRIM(ISNULL(DDL.[DelType], '')) AS [DelType],
RTRIM(ISNULL(DIA.[ACTIONTYPE],'')) as [ActionType],
RTRIM(ISNULL(DIA.[HIGHLIGHTED], '')) as [Highlighted],
ISNULL(DIA.[ACTIONID],0) AS [ActionId],
RTRIM(ISNULL(DIA.[FNCODE],'')) AS [FNCode],
RTRIM(ISNULL([FEC].[Name], '')) AS [FNName],
RTRIM(ISNULL(MAT.[FECode],'')) AS [CaseFe],
RTRIM(ISNULL(DIA.[PROCESSTYPE],'')) as [ProcessType],
CASE
WHEN RTRIM(ISNULL(DDL.[OWNER], 'N')) = 'Y'
THEN 'Y'
ELSE 'N'
END AS [Owner],
ISNULL(DDL.[DELEGATESTATUS],0) as [DelegateStatus],
ISNULL(DIA.[PROCESSSTATUS],0) as [ProcessStatus],
ISNULL(DIA.[WORKPROCESS],0) as [WorkProcess],
ISNULL(DIA.[DELEGATIONSTATUS],0) as [DelegationStatus],
ISNULL(DEL.[ASSIGNNO], 0) AS [AssignNo],
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 [CompleteOrGenerate],
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 [CompleteOrGeneratedD],
CONVERT(VARCHAR, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](CONVERT(DATETIME, '19000101'), DIA.[IMAGENO]), 108) AS [Duration],
ISNULL(DIA.[Flag],0) AS [Flag],
CASE
WHEN RTRIM(ISNULL(DIA.[ACTIONTYPE], '')) = 'E' AND @ShowFromToSynopsis = 1
THEN
CASE
WHEN ISNULL(DIA.[PROCESSTYPE], 'O') = 'I'
THEN 'Email From:' + (RTRIM(ISNULL(CAST(DIA.[EMAILADDRESS] AS VARCHAR(50)),''))) + ' - ' + ISNULL(CAST (DIA.[Subject] AS VARCHAR(MAX)),'')
ELSE 'Email To:' + RTRIM(CAST(ISNULL(DIA.[AddressTo],'') AS VARCHAR(50))) + ' - ' + ISNULL(CAST (DIA.[Subject] AS VARCHAR(MAX)),'')
END
ELSE
CASE
WHEN DIA.[SUBJECT] IS NULL OR RTRIM(CAST(DIA.[SUBJECT] AS VARCHAR(max))) = '' OR DATALENGTH(DIA.[SUBJECT]) = 0
THEN
CASE
WHEN SUBSTRING(DIA.[DisplayText],0,CHARINDEX (CHAR(13),DIA.[DisplayText])) = ''
THEN ISNULL(DIA.[TEXT1],'')
ELSE SUBSTRING(DIA.[DisplayText],0,CHARINDEX (CHAR(13),DIA.[DisplayText]))
END
ELSE DIA.[SUBJECT]
END
END AS [Synopsis],
ISNULL(RTRIM(MAT.[User1]),'') AS [User1],
ISNULL(RTRIM(MAT.[User2]),'') AS [User2],
ISNULL(RTRIM(MAT.[User3]),'') AS [User3],
ISNULL(RTRIM(MAT.[YourRef]),'') AS [YourRef],
CASE
WHEN DIA.[DUEDATE] != NULL OR DIA.[DUEDATE] != ''
THEN CONVERT(VARCHAR, DIA.[DUEDATE], 20)
ELSE
'1900-01-01'
END AS [DueDate],
CONVERT(VARCHAR(5), DIA.[DUEDATE], 108) AS [DueTime],
ISNULL(RTRIM(MAT.[OldRef]),'') AS [OldRef],
ISNULL(RTRIM(DIA.[ACTIONCODE]),'') AS [ActionCode],
CASE
WHEN SSC.[CODE] IS NULL
THEN ''
ELSE RTRIM(SSC.[CODE]) + ' - ' + RTRIM(ISNULL(SSC.[DESCRIPTION], ''))
END AS [ActionStatus],
RTRIM(ISNULL(FC.[COLOURDESC], '')) AS [FileColour],
CASE
WHEN FC.[RGBColour] = -1
THEN 'Transparent'
ELSE RTRIM(ISNULL(FC.[ForegroundColour], 'Transparent'))
END AS [BackgroundColour],
ISNULL(DIA.[DRAFTBILLNO],0) AS [DraftBillNo],
ISNULL(TA.[DESC],'') AS [ActionTitle],
ISNULL(T.[WKDESC],'') AS [WorkFlow],
CASE
WHEN ISNUMERIC(DIA.[DYStartTime]) = 0
THEN 0
ELSE ISNULL(CONVERT(INT, CONVERT(DECIMAL, DIA.[DYSTARTTIME])), 0)
END AS [DYStartTime],
CASE
WHEN ISNUMERIC(DIA.[DYEndTime]) = 0
THEN 0
ELSE ISNULL(CONVERT(INT, CONVERT(DECIMAL, DIA.[DYENDTIME])), 0)
END AS [DYEndTime],
RTRIM(ISNULL(FEE.[NAME], '')) AS [FeeEarner],
RTRIM(ISNULL(SEC.[NAME], '')) AS [Secretary],
RTRIM(ISNULL(PAR.[NAME], '')) AS [Partner],
RTRIM(ISNULL(MAT.[Description], '')) AS [MatterDescription],
ISNULL(DIA.[CreationDate],CONVERT(DATETIME, DIA.[DATE])) AS [CreationDate],
--ISNULL(DIA.[DUEDATE],CONVERT(DATETIME, DIA.[DATE])) AS [DUEDATE],
ISNULL(DIA.[Delegatedfnr],'') as DelegatedFE,
RTRIM(ISNULL(TA.[Arrangement],'')) AS [Arrangement],
RTRIM(ISNULL(MAT.[ChargeArrangement],'')) AS [ChargeArrangement]
FROM @DELS DEL
INNER JOIN [dbo].[DiaryDelegations] DDL
ON DDL.[AssignNo] = DEL.[ASSIGNNO]
INNER JOIN [dbo].[diary] DIA
INNER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
LEFT OUTER JOIN [dbo].[FileColours] FC
ON FC.[COLOURCODE] = MAT.[FileColour]
LEFT OUTER JOIN [dbo].[MatterNETPrivileges] MNP
ON MNP.[MATTER] = MAT.[Code]
LEFT OUTER JOIN [dbo].[Handlers] FEE
ON FEE.[CODE] = MAT.[FECode]
LEFT OUTER JOIN [dbo].[Handlers] SEC
ON SEC.[CODE] = MAT.[Secretary]
LEFT OUTER JOIN [dbo].[Handlers] PAR
ON PAR.[CODE] = MAT.[Partner]
ON MAT.[Code] = DIA.[CASECODE]
AND MAT.[Closed] = 'N'
LEFT OUTER JOIN [dbo].[StatusCodes] SSC
ON SSC.[CODE] = DIA.[ACTIONSTATUS]
ON DIA.[ACTIONID] = DEL.[ACTIONID]
LEFT OUTER JOIN [TemplateActions] TA ON DIA.[ACTIONCODE] = TA.[ACTIONCODE]
LEFT OUTER JOIN [Templates] T ON T.[WKCODE] = TA.[WKTCODE]
LEFT OUTER JOIN [dbo].[FeeEarnerCodes] [FEC]
ON [DIA].[FNCODE] = [FEC].[CODE]
) TotalRecordsTable
WHERE
-- Search filters
(
RTRIM(LTRIM(@SearchText)) = ''
OR
(
[Synopsis] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%'
OR [Action] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%'
OR [DUEDATE] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%'
OR [FNName] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%'
OR [CaseCode] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%'
OR [Handler] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%'
OR [Team] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%'
OR [ClientCase] LIKE '%' + RTRIM(LTRIM(@SearchText)) + '%'
)
)
AND
(
ISNULL(@ActionType, '') = ''
OR
(
(
CASE WHEN ISNULL(LTRIM(RTRIM([ACTIONTYPE])), '') = '' THEN 'A'
ELSE [ACTIONTYPE]
END
) IN (SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@ActionType, ','))
)
)
AND
(
ISNULL(@Priority, '') = ''
OR
(
[PRIORITY] IN (SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@Priority, ','))
)
)
AND
(
ISNULL(@Flag, '') = ''
OR
(
[Flag] IN (SELECT RTRIM(LTRIM([Item])) FROM KAAS_FN_SplitString(@Flag, ','))
)
)
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'CompleteOrGeneratedD' THEN [CompleteOrGeneratedD]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'CompleteOrGeneratedD' THEN [CompleteOrGeneratedD]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ActionType' THEN [ActionType]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ActionType' THEN [ActionType]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'DelegationStatus' THEN [DelegationStatus]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'DelegationStatus' THEN [DelegationStatus]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Priority' THEN [Priority]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Priority' THEN [Priority]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date1' THEN [Date1]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date1' THEN [Date1]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Time' THEN [Time]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'CaseCode' THEN [CaseCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'CaseCode' THEN [CaseCode]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Handler' THEN [Handler]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Handler' THEN [Handler]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Team' THEN [Team]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Team' THEN [Team]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientCase' THEN [ClientCase]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientCase' THEN [ClientCase]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Synopsis' THEN [Synopsis]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Synopsis' THEN [Synopsis]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'FileColour' THEN [FileColour]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'FileColour' THEN [FileColour]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'DelDate' THEN [DelDate]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'DelDate' THEN [DelDate]
END
END DESC
,[ID]
SELECT @TotalRecords = COUNT(*) FROM #FoundTable;
SELECT
*
FROM
#FoundTable
WHERE
[Row_Number] BETWEEN @StartRow AND @EndRow
SELECT
@userprompt1 = ISNULL(RTRIM([USERPROMPT1]),'USERPROMPT1'),
@userprompt2 = ISNULL(RTRIM([USERPROMPT2]),'USERPROMPT2'),
@userprompt3 = ISNULL(RTRIM([USERPROMPT3]),'USERPROMPT3')
FROM [dbo].[CONTROL] CTL
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_GetTaskPushDate]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_GetTaskPushDate]
GO
CREATE PROCEDURE [dbo].[KAAS_GetTaskPushDate]
(
@ActionID INT,
@Date DATETIME,
@Status INT,
@Result VARCHAR(50) OUTPUT
)
AS
/*******************************************************************************************************
* This sp used to fetch the action count in pushed date. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetTaskPushDate] *
* Copied from : [dbo].[Ky_NETGetTaskPushDate] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @ActionDate DATETIME
SET @ActionDate = (SELECT DATE FROM diary WHERE ACTIONID = @ActionID)
DECLARE @FNCode VARCHAR(5)
SET @FNCode = (SELECT FNCODE FROM diary WHERE ACTIONID = @ActionID)
DECLARE @Value VARCHAR(50)
IF (@Status = 0)
BEGIN
SET @Value = CONVERT(VARCHAR(5),(SELECT
COUNT(*)
FROM
diary
WHERE
CONVERT(VARCHAR, [DATE], 112) = CONVERT(VARCHAR, DATEADD(DAY,7,@ActionDate), 112) AND FNCODE = @FNCode AND [STATUS] = 0))
SET @Value = @Value + ',' + CONVERT(VARCHAR(5),(SELECT
COUNT(*)
FROM
diary
WHERE
CONVERT(VARCHAR, [DATE], 112) = CONVERT(VARCHAR, DATEADD(DAY,14,@ActionDate), 112) AND FNCODE = @FNCode AND [STATUS] = 0))
SET @Value = @Value + ',' + CONVERT(VARCHAR(5),(SELECT
COUNT(*)
FROM
diary
WHERE
CONVERT(VARCHAR, [DATE], 112) = CONVERT(VARCHAR, DATEADD(DAY,30,@ActionDate), 112) AND FNCODE = @FNCode AND [STATUS] = 0))
SET @Result = @Value
END
ELSE
BEGIN
SET @Result = CONVERT(VARCHAR(5),(SELECT
COUNT(*)
FROM
diary
WHERE
CONVERT(VARCHAR, [DATE], 112) = CONVERT(VARCHAR, @Date, 112) AND FNCODE = @FNCode AND [STATUS] = 0))
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetTaskRate'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetTaskRate]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetTaskRate]
(@TaskCode VARCHAR(6))
AS
/*******************************************************************************************************
* This procedure is used to get default value from TaskCodes *
* *
* Stored Procedure Name : [dbo].[KAAS_GetTaskRate] *
* Copied from : [dbo].[ky_NETGetTaskRate] *
* *
* Modification History : *
* 2019-05-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT [TCD].[Default]
FROM [TasksCodes] [TCD]
WHERE [TCD].[CODE] = @TaskCode
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetTasksCodes'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetTasksCodes]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetTasksCodes]
(@PostDay BIT,
@Code VARCHAR(20),
@HandlerCode VARCHAR(10))
AS
/*******************************************************************************************************
* Used to list the Tasks Codes. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetTasksCodes] *
* Copied from : [dbo].[ky_NETGetTasksCodes2] in ky_NETGetTasksCodes *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET @PostDay = ISNULL(@PostDay, 1)
SET @Code = ISNULL(@Code, '')
SET @HandlerCode = ISNULL(@HandlerCode, '')
IF(@PostDay = 1)
BEGIN
IF @HandlerCode = ''
BEGIN
SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType],
RTRIM(ISNULL([TAC].[DESC], '')) AS [Description]
FROM [dbo].[TasksCodes] [TAC]
WHERE ISNULL([TAC].[Retired], 0) <> 1
END
ELSE
BEGIN
SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType],
RTRIM(ISNULL([TAC].[DESC], '')) AS [Description]
FROM [dbo].[TasksCodes] [TAC]
WHERE ISNULL([TAC].[Retired], 0) <> 1
OR [TAC].[CODE] = @HandlerCode
END
END
ELSE
BEGIN
IF(@Code = '')
BEGIN
IF @HandlerCode = ''
BEGIN
SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType],
RTRIM(ISNULL([TAC].[DESC], '')) AS [Description]
FROM [dbo].[TasksCodes] [TAC]
WHERE RTRIM(ISNULL([TAC].[Department], '')) = ''
AND ISNULL([TAC].[Retired], 0) <> 1
END
ELSE
BEGIN
SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType],
RTRIM(ISNULL([TAC].[DESC], '')) AS [Description]
FROM [dbo].[TasksCodes] [TAC]
WHERE RTRIM(ISNULL([TAC].[Department], '')) = ''
AND ( ISNULL([TAC].[Retired], 0) <> 1
OR [TAC].[CODE] = @HandlerCode)
END
END
ELSE
BEGIN
SELECT RTRIM(ISNULL([TAC].[CODE], '')) AS [TaskType],
RTRIM(ISNULL([TAC].[DESC], '')) AS [Description]
FROM [dbo].[matters] [MAT]
LEFT OUTER JOIN [dbo].[WorkTypes] [WKT]
ON [WKT].[CODE] = [MAT].[WType]
INNER JOIN [dbo].[TasksCodes] [TAC]
ON ( [TAC].[Department] = [MAT].[Dept]
OR RTRIM(ISNULL([TAC].[Department], '')) = '')
AND ( ( ISNULL([WKT].[ChildCare], 'N') <> 'Y'
AND ISNULL([TAC].[AxleTask], 'N') <> 'Y'
AND ( ISNULL([TAC].Retired, 0) <> 1
OR [TAC].[CODE] = @HandlerCode))
OR ( ISNULL([WKT].[ChildCare], 'N') = 'Y'
AND ISNULL([TAC].[AxleTask], 'N') = 'Y'))
WHERE [MAT].[Code] = @Code
END
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetTeamLookupList'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetTeamLookupList]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetTeamLookupList]
AS
/*******************************************************************************************************
* *
* Stored Procedure Name : [dbo].[KAAS_GetTeamLookupList] *
* Copied from : [dbo].[ky_NETGetTeamLookupList] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(HAN.[CODE], '')) AS [CODE],
RTRIM(ISNULL(HAN.[NAME], '')) AS [NAME],
RTRIM(ISNULL(HAN.[DEPT], '')) AS [DEPT],
CASE
WHEN RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) = 'Y'
THEN 'Y'
ELSE 'N'
END AS [TEAMCODE]
FROM [Handlers] HAN
WHERE RTRIM(ISNULL(HAN.[TEAMCODE], 'N')) = 'Y'
ORDER BY RTRIM(ISNULL(HAN.[NAME], ''))
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetTemplateActions'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetTemplateActions]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetTemplateActions]
(
@ACTIONCODE varchar(15)
)
AS
/*******************************************************************************************************
* To get Action details *
* Used in OWA *
* *
* Params: *
* @ACTIONCODE *
* *
* Stored Procedure Name : [dbo].[KAAS_GetFollowOnActions] *
* *
* Modification History : *
* 2019-05-07 Ramesh K Created *
*******************************************************************************************************/
BEGIN
SELECT
RTRIM(ISNULL(TA.[ACTIONCODE], '')) AS [ACTIONCODE],
RTRIM(ISNULL(TA.[DESC], '')) AS [DESC],
RTRIM(ISNULL(TA.[WKTCODE], '')) AS [WKTCODE],
RTRIM(ISNULL(TA.[ACTTYPE], '')) AS [ACTTYPE],
RTRIM(ISNULL(TA.[ACTIONCATEGORY], '')) AS [ACTIONCATEGORY],
RTRIM(ISNULL(TA.[STATUS], '')) AS [STATUS],
RTRIM(ISNULL(TA.[PROCESSTYPE], '')) AS [PROCESSTYPE],
RTRIM(ISNULL(TA.[PUBLISHER], '')) AS [PUBLISHER],
RTRIM(ISNULL(TA.[HIGHLIGHTED], '')) AS [HIGHLIGHTED],
RTRIM(ISNULL(TA.[MILESTONETYPE], '')) AS [MILESTONETYPE],
RTRIM(ISNULL(TA.[PRIORITY], '')) AS [PRIORITY],
RTRIM(ISNULL(TA.[NEXTACTIONOPTIONAL], '')) AS [NEXTACTIONOPTIONAL],
RTRIM(ISNULL(TA.[BILLABLE], '')) AS [BILLABLE],
RTRIM(ISNULL(TA.[EMAIL], '')) AS [EMAIL],
RTRIM(ISNULL(TA.[BILLDESCRIPTION], '')) AS [BILLDESCRIPTION],
RTRIM(ISNULL(TA.[AssignActionTo], '')) AS [AssignActionTo],
RTRIM(ISNULL(TA.[ASSIGNHANDLER], '')) AS [ASSIGNHANDLER],
RTRIM(ISNULL(TA.[Description], '')) AS [Description]
FROM [dbo].[TemplateActions] TA
WHERE TA.[ActionCode] = @ACTIONCODE
END
GO
IF OBJECT_ID(N'KAAS_GetTimeAdminCodes',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_GetTimeAdminCodes]
GO
CREATE PROCEDURE
[KAAS_GetTimeAdminCodes]
(@Code VARCHAR(10))
AS
/*******************************************************************************************************
* This stored procedure is used to FETCH the Time Admin codes for post day book. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetTimeAdminCodes] *
* Copied from : [dbo].[Ky_NETGetTimeAdminCodes] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
RTRIM(NCCODE) AS [NCCODE],
RTRIM(ISNULL([DESCRIPTION],'')) AS [DESCRIPTION]
FROM
[TimeAdminCodes]
WHERE
ISNULL([Retired],'N') = 'N'
OR NCCODE = @Code
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_GetTimeDayBookDetails]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_GetTimeDayBookDetails]
GO
/*******************************************************************************************************
* Used to list the Tasks Codes *
* *
* Stored Procedure Name : [dbo].[KAAS_GetTimeDayBookDetails] *
* Copied from : [dbo].[ky_NETGetTimeDayBookDetails] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
CREATE PROC [KAAS_GetTimeDayBookDetails]
@RecordID DECIMAL(17,0)
AS
BEGIN
SELECT
TDB.MATTER
,RTRIM(ISNULL(M.[Description],'')) AS [Description]
,FEEEARN
,[DATE]
,[TIME]
,CASE
WHEN [TIME]>59 THEN
CAST(FLOOR(([TIME] / 60)) AS VARCHAR(8)) + ':' +
RIGHT('0' + CAST(([TIME] % 60) AS VARCHAR(2)), 2)
ELSE
'00:' + CAST([TIME] AS VARCHAR(30)) END AS CaseTime
,ISNULL(RATE,0) RATE
,ISNULL(CHARGE,0) AS Charge
,ISNULL(Task,'') AS Task
,TimeOrCharge
,RTRIM(ISNULL(TDB.Comment,'')) AS Comment
,RTRIM(Name) AS Name
,RTRIM(ISNULL(M.[Description],'')) AS MatterDecription
,ISNULL(REC_IRR,'C') AS IsChargeable
,ISNULL(NCCCODE,'') AS AdminCode
,ISNULL(TAC.Retired,'N') AS Retired
FROM
[dbo].TimeDayBook TDB
LEFT OUTER JOIN
Matters M
ON
TDB.MATTER=M.Code
LEFT OUTER JOIN
Contacts C
ON
SUBSTRING(TDB.MATTER,0,CHARINDEX('/',TDB.MATTER)) =C.Code
LEFT OUTER JOIN TimeAdminCodes TAC on TAC.NCCODE = TDB.NCCCode
WHERE
RECORDID = @RecordID
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetTimeEntry'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetTimeEntry]
END
GO
CREATE PROCEDURE KAAS_GetTimeEntry
(@RecordID INT)
AS
/*******************************************************************************************************
* Get the data of a TimeEntry record page. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetTimeEntry] *
* Copied from : [dbo].[Ky_NetGetTimeEntry] *
* *
* Modification History: *
* 2019-07-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT
DATE
,ISNULL(TIME,0)TIME
,ISNULL(RATE,0) Rate
,ISNULL(CHARGE,0) CHARGE
,ISNULL(COMMENT ,'') COMMENT
,ISNULL(TASK ,'') AS TASK
,ISNULL(REC_IRR,'N') AS REC_IRR
,ISNULL(TimeorCharge,'T') TIMEORCHARGE
FROM
TimeEntry
WHERE
RecordID=@RecordID
END
GO
IF OBJECT_ID(N'KAAS_GetUDFDetailsForPage',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GetUDFDetailsForPage]
GO
CREATE PROCEDURE [dbo].[KAAS_GetUDFDetailsForPage]
(@FORMID INT,
@CASECODE VARCHAR(20),
@PageNumber INT,
@PageSize INT,
@SearchText VARCHAR(100) = '',
@SortColumn VARCHAR(20) = '',
@SortDirection VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This procedure is used to get UDF's from for the case code. *
* *
* Stored Procedure Name : [dbo].[KAAS_GetUDFDetailsForPage] *
* Copied from : [dbo].[KY_NETGetUDFDetailsForPage] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
* 2019-08-19 Vinodhan K Added Search, Paging and Sorting functionlaity *
* *
*******************************************************************************************************/
BEGIN
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'SeqNo'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FoundTable
FROM
(SELECT RTRIM(SUDF.[PROMPT]) AS [Detail],
SUDF.[LENGTH] AS [Size],
RTRIM(SUDF.[FORMAT]) AS [Format],
RTRIM(SUDF.[TYPE]) AS [Type],
RTRIM(SUDF.[FILEPREFIX]) AS [FilePrefix],
RTRIM(SUDF.[FIELDNAME]) AS [FieldName],
RTRIM(ISNULL(SUDF.[UDFCategory], '')) AS [UDFCategory],
RTRIM(SUDF.[VALIDATION]) AS [Validation],
SUDF.[LENGTH] AS [Length],
SUDF.[LOW] AS [Low],
SUDF.[HIGH] AS [High],
SUDF.[DECMIAL] AS [Decimal],
CASE WHEN UDFA.[DateValue] IS NULL
THEN ''
WHEN CONVERT(VARCHAR, UDFA.[DateValue], 112) = '19000101'
THEN ''
ELSE CONVERT(VARCHAR, UDFA.[DateValue], 106) END AS [DateValue],
ISNULL(UDFA.[NumberValue], 0) AS [NumberValue],
RTRIM(ISNULL(UDFA.[TEXT1],'')) AS [Text1],
[UFP].[seqno] AS [SeqNo]
FROM [dbo].[SystemUserDefinedFields] SUDF
INNER JOIN [dbo].[UDFFormParameters] UFP
ON SUDF.[FILEPREFIX] = UFP.[UDFPrefix]
AND SUDF.[FIELDNAME] = UFP.[UDFName]
LEFT OUTER JOIN [dbo].[CaseUDFAnswers] UDFA
ON UDFA.[UDFFILE] = SUDF.[FILEPREFIX]
AND UDFA.[UDFNAME] = SUDF.[FIELDNAME]
AND UDFA.[CASECODE] = @CASECODE
WHERE
(
[SUDF].[PROMPT] LIKE '%' + @SearchText + '%'
OR
[SUDF].[LENGTH] LIKE '%' + @SearchText + '%'
OR
[SUDF].[FORMAT] LIKE '%' + @SearchText + '%'
OR
[SUDF].[TYPE] LIKE '%' + @SearchText + '%'
OR
[SUDF].[FILEPREFIX] LIKE '%' + @SearchText + '%'
OR
[SUDF].[FIELDNAME] LIKE '%' + @SearchText + '%'
OR
[SUDF].[UDFCategory] LIKE '%' + @SearchText + '%'
OR
[SUDF].[VALIDATION] LIKE '%' + @SearchText + '%'
OR
[SUDF].[LENGTH] LIKE '%' + @SearchText + '%'
OR
[SUDF].[LOW] LIKE '%' + @SearchText + '%'
OR
[SUDF].[HIGH] LIKE '%' + @SearchText + '%'
OR
[SUDF].[DECMIAL] LIKE '%' + @SearchText + '%'
OR
[UDFA].[DateValue] LIKE '%' + @SearchText + '%'
OR
[UDFA].[NumberValue] LIKE '%' + @SearchText + '%'
OR
[UDFA].[TEXT1] LIKE '%' + @SearchText + '%'
)
AND UFP.[UDFFormID] = @FORMID) AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'SeqNo' THEN [SeqNo]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'SeqNo' THEN [SeqNo]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Size' THEN [Size]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Size' THEN [Size]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Format' THEN [Format]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Format' THEN [Format]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Type' THEN [Type]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Type' THEN [Type]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'FilePrefix' THEN [FilePrefix]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'FilePrefix' THEN [FilePrefix]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'FieldName' THEN [FieldName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'FieldName' THEN [FieldName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'UDFCategory' THEN [UDFCategory]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'UDFCategory' THEN [UDFCategory]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Validation' THEN [Validation]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Validation' THEN [Validation]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Length' THEN [Length]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Length' THEN [Length]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Low' THEN [Low]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Low' THEN [Low]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'High' THEN [High]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'High' THEN [High]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Decimal' THEN [Decimal]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Decimal' THEN [Decimal]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'DateValue' THEN [DateValue]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'DateValue' THEN [DateValue]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'NumberValue' THEN [NumberValue]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'NumberValue' THEN [NumberValue]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Text1' THEN [Text1]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Text1' THEN [Text1]
END
END DESC
SELECT
*
FROM
#FoundTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) As [TotalRecords]
FROM
#FoundTable
END
GO
IF OBJECT_ID (N'KAAS_GetUDFFormforHandler',N'P') IS NOT NULL
DROP PROCEDURE KAAS_GetUDFFormforHandler
GO
CREATE PROCEDURE KAAS_GetUDFFormforHandler
@HANLDER VARCHAR(10),
@CASECODE VARCHAR(20)
AS
/*******************************************************************************************************
* This procedure is used to get UDF's form details based on Handler for the particular case code. *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_GetUDFFormforHandler] *
* Copied from : [dbo].[KY_NETGetUDFFormforHandler] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT
ISNULL(FORMID,0) AS FORMID
FROM
UDFFormCaseRelation
WHERE
Handler=@HANLDER
AND
casecode=@CASECODE
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_GetUDFFormsByCasePlan'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetUDFFormsByCasePlan]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_GetUDFFormsByCasePlan]
(@WKTCODE VARCHAR(10)='',
@CaseCode VARCHAR(20)='')
AS
/*******************************************************************************************************
* Retrieves list of UDF Forms for a Case Plan, including all Global ones. *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_GetUDFFormsByCasePlan] *
* Copied from : [dbo].[ky_NETGetUDFFormsByCasePlan] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF RTRIM(ISNULL(@WKTCODE, '')) = ''
BEGIN
SELECT TOP 1 @WKTCODE = RTRIM([CSM].[CSWKTCODE])
FROM [dbo].[CaseMaster] [CSM]
WHERE [CSM].[CSCODE] = @CaseCode
END
IF RTRIM(ISNULL(@WKTCODE, '')) = ''
BEGIN
SELECT [UF].[FormID],
[UF].[FormName]
FROM [dbo].[UDFForms] UF
WHERE [UF].[IsGlobal] = 1
END
ELSE
BEGIN
SELECT [UF].[FormID],
[UF].[FormName]
FROM [dbo].[UDFForms] [UF]
CROSS APPLY (SELECT COUNT(1) AS [Total]
FROM [dbo].[CasePlanUDFForms] [CPUF]
WHERE [CPUF].[FormID] = [UF].[FormID]
AND [CPUF].[CasePlan] = @WKTCODE) [CPYF]
WHERE [CPYF].[Total] > 0
OR [UF].[IsGlobal] = 1
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetUserSettings',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_GetUserSettings]
GO
CREATE PROCEDURE
[dbo].[KAAS_GetUserSettings]
(@Handler NVARCHAR(10), --DO NOT CHANGE, table contains NVARCHAR columns
@Key NVARCHAR(100)) --DO NOT CHANGE, table contains NVARCHAR columns
As
/*******************************************************************************************************
* This Procedure is used to Get User Settings value *
* *
* Stored Procedure Name : [dbo].[KAAS_GetUserSettings] *
* Copied from : [dbo].[Ky_NETGetUserSettings] *
* *
* Modification History : *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT USS.[Value]
FROM [dbo].[UserSettings] USS
WHERE USS.[Handler] = @Handler
AND USS.[Key] = @Key
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_GetUTEDayBook', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_GetUTEDayBook]
END
GO
CREATE PROCEDURE [dbo].[KAAS_GetUTEDayBook]
(@FECode VARCHAR(10),
@Post CHAR(1) = 'N',
@Handler NVARCHAR(10),
@RecordId INT)
AS
/*******************************************************************************************************
* Gets the Day Book for a Record Id *
* *
* Stored Procedure Name : [dbo].[KAAS_GetUTEDayBook] *
* Copied from : [dbo].[ky_NETGetMyDayBook] *
* *
* Modification History: *
* 2019-05-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @DayBookValue INT
SELECT @DayBookValue = ISNULL(SUM([TDB].[Time]), 0)
FROM [dbo].[Timedaybook] [TDB] WITH (NOLOCK)
WHERE [TDB].[FeeEarn] = @FECode
IF(@DayBookValue = 0)
BEGIN
SET @DayBookValue=1
END
DECLARE @DAYBOOK TABLE
([Time] INT NOT NULL,
[CaseTime] VARCHAR(60) NOT NULL,
[MatterDetails] VARCHAR(500) NOT NULL,
[Progress] INT NOT NULL,
[StopwatchStatus] INT NOT NULL,
[RecordID] INT NOT NULL PRIMARY KEY,
[DATE] DATETIME NOT NULL,
[MATTER] VARCHAR(20) NOT NULL,
[DisplayMatter] VARCHAR(20) NOT NULL,
[Name] VARCHAR(256) NOT NULL,
[COMMENT] VARCHAR(1000) NOT NULL,
[CHARGE] DECIMAL(10, 2) NOT NULL,
[TimeOrCharge] VARCHAR(1) NOT NULL,
[Post] VARCHAR(1) NOT NULL)
DECLARE @DAYBOOKSUM TABLE
([id] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[RecordID] INT NOT NULL,
[Time] INT NOT NULL,
[OriginalTime] INT NOT NULL,
[TotalTimeMinusOne] INT NOT NULL)
INSERT
INTO @DAYBOOK
([Time],
[CaseTime],
[MatterDetails],
[Progress],
[StopwatchStatus],
[RecordID],
[DATE],
[MATTER],
[DisplayMatter],
[Name],
[COMMENT],
[CHARGE],
[TimeOrCharge],
[Post])
SELECT [TDB].[Time],
CASE WHEN [TDB].[Time] < 0
THEN '-'
ELSE '' END
+
SUBSTRING(CONVERT(VARCHAR, FLOOR(ABS([TDB].[Time]) / 60)),
LEN(CONVERT(VARCHAR, FLOOR(ABS([TDB].[Time]) / 60))) - 2,
3)
+ ':'
+ SUBSTRING(CONVERT(VARCHAR, 100 + ABS([TDB].[Time]) % 60),
LEN(CONVERT(VARCHAR, 100 + ABS([TDB].[Time]) % 60)) - 1,
2) AS [CaseTime],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace] --2018-03-12
( RTRIM(ISNULL([CON].[Name], ''))
+ ' '
+ RTRIM(ISNULL([MAT].[Description], '')), 500) AS [MatterDetails],
0 AS [Progress],
ISNULL([TDB].[StopwatchStatus], 0) AS [StopwatchStatus],
[TDB].[RecordID] AS [RecordID],
[TDB].[Date] AS [DATE],
[TDB].[Matter] AS [Matter],
CASE WHEN [TDB].[Matter] = '~'
THEN 'Admin Time'
ELSE [TDB].[Matter] END AS [DisplayMatter],
RTRIM(ISNULL([CON].[Name],'')) AS [Name],
RTRIM(ISNULL([TDB].[Comment], '')) AS [COMMENT],
[TDB].[Charge] AS [CHARGE],
UPPER([TDB].[TimeOrCharge]) AS [TimeorCharge],
CASE WHEN RTRIM(UPPER(ISNULL([TDB].[Post], ''))) = 'N'
THEN 'N'
ELSE 'Y' END AS [Post]
FROM [dbo].[TimeDayBook] [TDB] WITH (NOLOCK)
LEFT OUTER JOIN [dbo].[matters] [MAT] WITH (NOLOCK)
ON [MAT].[Code] = [TDB].[Matter]
LEFT OUTER JOIN [dbo].[Contacts] [CON] WITH (NOLOCK)
ON [CON].[Code] = [MAT].[ClientCode]
WHERE [TDB].[RecordID] = @RecordId
AND [TDB].[FeeEarn] = @FECode
AND ISNULL([TDB].[Post], 'Y') IN ('Y', @Post)
INSERT
INTO @DAYBOOKSUM
([RecordID],
[Time],
[OriginalTime],
[TotalTimeMinusOne])
SELECT [TDB].[RecordID],
0,
ISNULL([TDB].[Time], 0),
0
FROM @DAYBOOK [TDB]
ORDER BY [TDB].[RecordID]
DECLARE @TOTALTIME INT
SET @TOTALTIME = 0
UPDATE [DBS]
SET @TOTALTIME = @TOTALTIME + ISNULL([DBSPREV].[OriginalTime], 0),
[DBS].[TotalTimeMinusOne] = @TOTALTIME
FROM @DAYBOOKSUM [DBS]
LEFT OUTER JOIN @DAYBOOKSUM [DBSPREV]
ON [DBSPREV].[id] = [DBS].[id] - 1
UPDATE [DBS]
SET [DBS].[Time] = [DBS].[OriginalTime] + [DBS].[TotalTimeMinusOne]
FROM @DAYBOOKSUM [DBS]
-- This will guarantee that the percentages in [Progress] will always add up to exactly 100
UPDATE [TDB]
SET [TDB].[Progress]
= CONVERT(INT, ROUND((CONVERT(FLOAT, [TDBS].[Time]) / CONVERT(FLOAT, @DayBookValue)) * CONVERT(FLOAT, 100), 0)) --The current cumulative percentage
- CONVERT(INT, ROUND((CONVERT(FLOAT, [TDBS].[Time] - [TDB].[Time]) / CONVERT(FLOAT, @DayBookValue)) * CONVERT(FLOAT, 100), 0)) -- minus the last cumulative percentage
FROM @DAYBOOKSUM [TDBS]
INNER JOIN @DAYBOOK [TDB]
ON [TDB].[RecordID] = [TDBS].[RecordID]
--CROSS APPLY (SELECT ISNULL(SUM([TDBP].[Time]), 0) AS [Time]
-- FROM @DAYBOOK [TDBP]
-- WHERE [TDBP].[RecordID] <= [TDB].[RecordID]) [TDBS]
SELECT [TDB].[Time],
[TDB].[CaseTime],
[TDB].[MatterDetails],
[TDB].[Progress],
[TDB].[StopwatchStatus],
[TDB].[RecordID],
[TDB].[DATE],
[TDB].[MATTER],
[TDB].[DisplayMatter],
[TDB].[Name],
[TDB].[COMMENT],
[TDB].[CHARGE],
[TDB].[TimeOrCharge],
[TDB].[Post]
FROM @DAYBOOK [TDB]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_HandlerIsAuthorisedToControlGroup'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_HandlerIsAuthorisedToControlGroup]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_HandlerIsAuthorisedToControlGroup]
(@Handler VARCHAR(10),
@GroupName VARCHAR(100))
AS
/*******************************************************************************************************
* Procedure checks whether a particular handler is authorised to use a piece of Framework *
* functionality. This can be useful in external components from which the same functionality *
* needs to be restricted. *
* *
* Stored Procedure Name : [dbo].[KAAS_HandlerIsAuthorisedToControlGroup] *
* Copied from : [dbo].[ky_NETSPHandlerIsAuthorisedToControlGroup] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @IsAuthorised INT
SELECT @IsAuthorised = CASE WHEN COUNT(1) = 0 THEN 1 ELSE 0 END
FROM [dbo].[KHCtlGroups] [KCG]
LEFT OUTER JOIN [dbo].[KHCtlHandlers] [ALL]
ON [ALL].[Handler] = ''
AND [ALL].[groupid] = [KCG].[id]
LEFT OUTER JOIN [dbo].[KHCtlHandlers] [KHH]
ON [KHH].[Handler] = @Handler
AND [KHH].[groupid] = [KCG].[id]
WHERE [KCG].[GroupName] = @GroupName
AND ( [ALL].[id] IS NOT NULL
OR [KHH].[id] IS NOT NULL)
SELECT CONVERT(BIT, @IsAuthorised) AS [IsAuthorised]
RETURN @IsAuthorised
END
GO
IF OBJECT_ID(N'[KAAS_InsertAllMatterChargeOutRates]',N'P') IS NOT NULL
DROP PROCEDURE [KAAS_InsertAllMatterChargeOutRates]
GO
CREATE PROCEDURE [KAAS_InsertAllMatterChargeOutRates] (
@ClientCode VARCHAR(20),
@MatterCode VARCHAR(20),
@HandlerType VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure is used to insert all unretired handlers/charge groups into *
* the matter charge out rate list. *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertAllMatterChargeOutRates] *
* Copied from : [dbo].[ky_NETMATInsertAllHandlers] *
* *
* Modification History : *
* 2019-05-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF (@HandlerType = 'FeeEarners')
BEGIN
INSERT INTO [dbo].[MatterChargeOutRates] (
[ClientCode],
[MatterCode],
[FeCode],
[Rate],
[ModifyDate],
[EffectiveDate])
SELECT @ClientCode,
@MatterCode,
LTRIM(RTRIM(HAN.[CODE])),
ISNULL(HAN.[RATE], 0),
GETUTCDATE(),
GETUTCDATE()
FROM [dbo].[Handlers] AS HAN
LEFT OUTER JOIN [dbo].[MatterChargeOutRates] AS MCOR
ON MCOR.[ClientCode] = @ClientCode
AND MCOR.[MatterCode] = @MatterCode
AND LTRIM(RTRIM(MCOR.[FeCode])) = LTRIM(RTRIM(HAN.[CODE]))
WHERE ISNULL(HAN.[TEAMCODE], '') <> 'Y'
AND ISNULL(HAN.[RETIRED], '') <> 'Y'
AND MCOR.[FeCode] IS NULL
END
ELSE
BEGIN
INSERT INTO [dbo].[MatterChargeOutRates] (
[ClientCode],
[MatterCode],
[FeCode],
[Rate],
[ModifyDate],
[EffectiveDate])
SELECT @ClientCode,
@MatterCode,
LTRIM(RTRIM(HCG.[Code])),
ISNULL(HCG.[DefaultRate], 0),
GETUTCDATE(),
GETUTCDATE()
FROM [dbo].[HandlerChargeGroups] AS HCG
LEFT OUTER JOIN [dbo].[MatterChargeOutRates] AS MCOR
ON MCOR.[ClientCode] = @ClientCode
AND MCOR.[MatterCode] = @MatterCode
AND LTRIM(RTRIM(MCOR.[FeCode])) = LTRIM(RTRIM(HCG.[Code]))
WHERE ISNULL(HCG.[Retired], '') <> 'Y'
AND MCOR.[FeCode] IS NULL
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_InsertCaseAssociate'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertCaseAssociate]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_InsertCaseAssociate]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*************************************************************************************************************
* Description: This procedure is used To insert "Add Case Associate Details" in *
* CaseAssociatesNames, CaseContacts AND CaseAssociateTypes *
* *
* Stored Procedure Name : KAAS_InsertCaseAssociate *
* Copied From : [dbo].[ky_NETXMLInsertCaseAssociate] *
* *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ********************************************************************************************************* *
* * * *
* * Supersedes: [dbo].[ky_NETInsertCaseAssociate] * *
* * First compatible version: 5.6.4.1 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ********************************************************************************************************* *
* *
* Modification History *
* 2019-01-24 Pino Carafa Created *
* *
* ORIGINAL code for [dbo].[ky_NETInsertCaseAssociate] *
* 2014-08-20 PINO allow for 20 characters in CaseCode as this field will *
* be extended at a future date. *
* *
* 2015-01-21 PINO change NVARCHAR to VARCHAR *
* 2015-02-03 Praveen Added following field BankName,BankAddress,BankSortCode,BankAccNo,IBan,Bic *
* 2015-06-23 Sridharan KEYD-2332 - Use of LTRIM(RTRIM( *
* 2015-10-15 Sridharan RDJ-156 -Adding same Associate twice *
* 2015-11-27 John KEYD-2968 - Fixed @CivilBillSerDate and @CivilSumSerDate not saving *
* 2015-12-14 Sridharan RDJ-163 - Changing Sequence Number in Case Associates *
* 2016-01-13 Sridharan KEYD-3114 - Resequence Case Associates after sequence number changes *
* 2016-03-09 Sridharan KEYD-3352 - When you add an undertakings with “Add as Comment to Ledger” *
* check box unticked, when you open that undertakings *
* the check box ticked automatically. *
* 2016-03-11 Sridharan KEYD-3294 - Adding a name to a deceased but I think it only *
* allows 15 characters can this be rectified in order that *
* I can put “aka” name *
* 2016-04-20 Suriya M KEYD-3487 - When you retire a Case associate, all other types are *
* displayed as retired in the Client/Case associate. *
* 2016-10-27 Sridharan KEYD-4197 - EFT Bank Details Validation on Contact and *
* Case Associate screens *
* 2018-03-22 Pino Carafa KEYD-4489 - Standardised all Address fields to 500 characters *
* *
* 2019-01-24 Pino Carafa KEYD-5503 - In preparation of adding EFTEmailAddress, re-created procedure *
* with XML parameter *
* 2019-01-24 Pino Carafa KEYD-5503 - Added EFTEmailAddress *
* 2019-02-07 Pino Carafa KEYD-5619 - Added SOLISCAN and INSISCAN *
* 2019-07-30 Vinodhan K Created KAAS_InsertCaseAssociate *
* *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
--CaseAssociateNames
DECLARE @Code VARCHAR(6)
DECLARE @Fullname VARCHAR(100)
DECLARE @Salutation VARCHAR(30)
DECLARE @JobTitle VARCHAR(50)
DECLARE @Address VARCHAR(500)
DECLARE @Area VARCHAR(15)
DECLARE @Company VARCHAR(80)
DECLARE @DXRel VARCHAR(30)
DECLARE @Email VARCHAR(100)
DECLARE @FaxNo VARCHAR(20)
DECLARE @Home VARCHAR(20)
DECLARE @MobileNo VARCHAR(20)
DECLARE @Note VARCHAR(MAX)
DECLARE @Occupation VARCHAR(100)
DECLARE @PhoneNo VARCHAR(20)
DECLARE @PPSNo VARCHAR(20)
DECLARE @Town VARCHAR(20)
DECLARE @WebAddress VARCHAR(150)
DECLARE @LegalName VARCHAR(150)
DECLARE @LegalAddress VARCHAR(500)
DECLARE @DateOFBirth DATETIME
DECLARE @DateSeparated DATETIME
DECLARE @DeceasedDate DATETIME
DECLARE @MarriageDate DATETIME
DECLARE @Type VARCHAR(12)
DECLARE @Gender VARCHAR(20)
DECLARE @MaritalStatus VARCHAR(20)
DECLARE @Tax VARCHAR(1)
DECLARE @Deceased VARCHAR(1)
DECLARE @Edit INT
DECLARE @AddressType VARCHAR(1)
DECLARE @ServiceType VARCHAR(1)
DECLARE @CompanyRegNo VARCHAR(20)
DECLARE @VATno VARCHAR(20)
-- CaseContacts
DECLARE @CaseCode VARCHAR(20)
DECLARE @OurCode VARCHAR(6)
DECLARE @SOLISCAN BIT
DECLARE @OtherReference VARCHAR(50)
DECLARE @OurCodeIn VARCHAR(6)
DECLARE @INSISCAN BIT
DECLARE @InsRef VARCHAR(20)
DECLARE @RecNo VARCHAR(20)
DECLARE @HearingDate DATETIME
DECLARE @Time VARCHAR(20)
DECLARE @Relationship VARCHAR(50)
DECLARE @Nominated BIT
DECLARE @AssignedContact INT
DECLARE @CivilSumSerDate DATETIME
DECLARE @CivilBillSerDate DATETIME
DECLARE @SummarySumSerDate DATETIME
DECLARE @InstOrdSerDate DATETIME
DECLARE @ComOrdSerDate DATETIME
DECLARE @WarrantIssDate DATETIME
DECLARE @Seq SMALLINT
DECLARE @hdnSeq SMALLINT
DECLARE @FirstName VARCHAR(50)
DECLARE @SurName VARCHAR(50)
DECLARE @County VARCHAR(100)
DECLARE @PostalCode VARCHAR(100)
DECLARE @BankName VARCHAR(60)
DECLARE @BankAddress VARCHAR(500)
DECLARE @BankSortCode VARCHAR(20)
DECLARE @BankAccNo VARCHAR(20)
DECLARE @IBan VARCHAR(34)
DECLARE @Bic VARCHAR(20)
DECLARE @EFTEmailAddress VARCHAR(150)
DECLARE @AssociateForOtherSide BIT
DECLARE @Publish CHAR(1)
DECLARE @Retired VARCHAR(1)
DECLARE @BankType VARCHAR(1)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT
--CaseAssociateNames
@Code = [CAN].[Code],
@Fullname = [CAN].[Fullname],
@Salutation = [CAN].[Salutation],
@JobTitle = [CAN].[JobTitle],
@Address = [CAN].[Address],
@Area = [CAN].[Area],
@Company = [CAN].[Company],
@DXRel = [CAN].[DXRel],
@Email = [CAN].[Email],
@FaxNo = [CAN].[FaxNo],
@Home = [CAN].[Home],
@MobileNo = [CAN].[MobileNo],
@Note = [CAN].[Note],
@Occupation = [CAN].[Occupation],
@PhoneNo = [CAN].[PhoneNo],
@PPSNo = [CAN].[PPSNo],
@Town = [CAN].[Town],
@WebAddress = [CAN].[WebAddress],
@LegalName = [CAN].[LegalName],
@LegalAddress = [CAN].[LegalAddress],
@DateOFBirth = [CAN].[DateOFBirth],
@DateSeparated = [CAN].[DateSeparated],
@DeceasedDate = [CAN].[DeceasedDate],
@MarriageDate = [CAN].[MarriageDate],
@Type = [CAN].[Type],
@Gender = [CAN].[Gender],
@MaritalStatus = [CAN].[MaritalStatus],
@Tax = [CAN].[Tax],
@Deceased = [CAN].[Deceased],
@Edit = [CAN].[Edit],
@AddressType = [CAN].[AddressType],
@ServiceType = [CAN].[ServiceType],
@CompanyRegNo = [CAN].[CompanyRegNo],
@VATno = [CAN].[VATno],
-- CaseContacts
@CaseCode = [CAN].[CaseCode],
@SOLISCAN = [CAN].[SOLISCAN],
@OurCode = [CAN].[OurCode],
@OtherReference = [CAN].[OtherReference],
@INSISCAN = [CAN].[INSISCAN],
@OurCodeIn = [CAN].[OurCodeIn],
@InsRef = [CAN].[InsRef],
@RecNo = [CAN].[RecNo],
@HearingDate = [CAN].[HearingDate],
@Time = [CAN].[Time],
@Relationship = [CAN].[Relationship],
@Nominated = [CAN].[Nominated],
@AssignedContact = [CAN].[AssignedContact],
@CivilSumSerDate = [CAN].[CivilSumSerDate],
@CivilBillSerDate = [CAN].[CivilBillSerDate],
@SummarySumSerDate = [CAN].[SummarySumSerDate],
@InstOrdSerDate = [CAN].[InstOrdSerDate],
@ComOrdSerDate = [CAN].[ComOrdSerDate],
@WarrantIssDate = [CAN].[WarrantIssDate],
@Seq = [CAN].[Seq],
@hdnSeq = [CAN].[hdnSeq],
@FirstName = [CAN].[FirstName],
@SurName = [CAN].[SurName],
@County = [CAN].[County],
@PostalCode = [CAN].[PostalCode],
@BankName = [CAN].[BankName],
@BankAddress = [CAN].[BankAddress],
@BankSortCode = [CAN].[BankSortCode],
@BankAccNo = [CAN].[BankAccNo],
@IBan = [CAN].[IBan],
@Bic = [CAN].[Bic],
@EFTEmailAddress = [CAN].[EFTEmailAddress],
@AssociateForOtherSide = [CAN].[AssociateForOtherSide],
@Publish = [CAN].[Publish],
@Retired = [CAN].[Retired],
@BankType = [CAN].[BankType]
FROM OPENXML(@iSL, N'CAN')
WITH ([Code] VARCHAR(6) 'Code',
[Fullname] VARCHAR(100) 'Fullname',
[Salutation] VARCHAR(30) 'Salutation',
[JobTitle] VARCHAR(50) 'JobTitle',
[Address] VARCHAR(500) 'Address',
[Area] VARCHAR(15) 'Area',
[Company] VARCHAR(80) 'Company',
[DXRel] VARCHAR(30) 'DXRel',
[Email] VARCHAR(100) 'Email',
[FaxNo] VARCHAR(20) 'FaxNo',
[Home] VARCHAR(20) 'Home',
[MobileNo] VARCHAR(20) 'MobileNo',
[Note] VARCHAR(MAX) 'Note',
[Occupation] VARCHAR(100) 'Occupation',
[PhoneNo] VARCHAR(20) 'PhoneNo',
[PPSNo] VARCHAR(20) 'PPSNo',
[Town] VARCHAR(20) 'Town',
[WebAddress] VARCHAR(150) 'WebAddress',
[LegalName] VARCHAR(150) 'LegalName',
[LegalAddress] VARCHAR(500) 'LegalAddress',
[DateOFBirth] DATETIME 'DateOFBirth',
[DateSeparated] DATETIME 'DateSeparated',
[DeceasedDate] DATETIME 'DeceasedDate',
[MarriageDate] DATETIME 'MarriageDate',
[Type] VARCHAR(12) 'Type',
[Gender] VARCHAR(20) 'Gender',
[MaritalStatus] VARCHAR(20) 'MaritalStatus',
[Tax] VARCHAR(1) 'Tax',
[Deceased] VARCHAR(1) 'Deceased',
[Edit] INT 'Edit',
[AddressType] VARCHAR(1) 'AddressType',
[ServiceType] VARCHAR(1) 'ServiceType',
[CompanyRegNo] VARCHAR(20) 'CompanyRegNo',
[VATno] VARCHAR(20) 'VATno',
-- CaseContacts
[CaseCode] VARCHAR(20) 'CaseCode',
[SOLISCAN] Bit 'SOLISCAN',
[OurCode] VARCHAR(6) 'OurCode',
[OtherReference] VARCHAR(50) 'OtherReference',
[INSISCAN] Bit 'INSISCAN',
[OurCodeIn] VARCHAR(6) 'OurCodeIn',
[InsRef] VARCHAR(20) 'InsRef',
[RecNo] VARCHAR(20) 'RecNo',
[HearingDate] DATETIME 'HearingDate',
[Time] VARCHAR(20) 'Time',
[Relationship] VARCHAR(50) 'Relationship',
[Nominated] BIT 'Nominated',
[AssignedContact] INT 'AssignedContact',
[CivilSumSerDate] DATETIME 'CivilSumSerDate',
[CivilBillSerDate] DATETIME 'CivilBillSerDate',
[SummarySumSerDate] DATETIME 'SummarySumSerDate',
[InstOrdSerDate] DATETIME 'InstOrdSerDate',
[ComOrdSerDate] DATETIME 'ComOrdSerDate',
[WarrantIssDate] DATETIME 'WarrantIssDate',
[Seq] SMALLINT 'Seq',
[hdnSeq] SMALLINT 'hdnSeq',
[FirstName] VARCHAR(50) 'FirstName',
[SurName] VARCHAR(50) 'SurName',
[County] VARCHAR(100) 'County',
[PostalCode] VARCHAR(100) 'PostalCode',
[BankName] VARCHAR(60) 'BankName',
[BankAddress] VARCHAR(500) 'BankAddress',
[BankSortCode] VARCHAR(20) 'BankSortCode',
[BankAccNo] VARCHAR(20) 'BankAccNo',
[IBan] VARCHAR(34) 'IBan',
[Bic] VARCHAR(20) 'Bic',
[EFTEmailAddress] VARCHAR(150) 'EFTEmailAddress',
[AssociateForOtherSide] BIT 'AssociateForOtherSide',
[Publish] CHAR(1) 'Publish',
[Retired] VARCHAR(1) 'Retired',
[BankType] VARCHAR(1) 'BankType') [CAN]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
DECLARE @Connum INT
SET @Connum = 0
IF @Seq = -1
BEGIN
SELECT Top 1
@Connum = [CC].[CONNUM]
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[CASECODE] = @CaseCode
AND [CC].[CONTYPE] = @Type
ORDER BY [CC].[CONNUM] DESC
SET @Connum = ISNULL(@Connum, 0) + 1
END
ELSE
BEGIN
SET @Connum = ISNULL(@Seq, 1)
END
IF @Edit = 0
BEGIN
IF (SELECT TOP 1 1
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[CASECODE] = @CaseCode
AND [CC].[CONTYPE] = @Type
AND [CC].[CONNUM] = @Seq) IS NULL
BEGIN
INSERT
INTO [dbo].[CaseContacts]
([CASECODE],
[CONTYPE],
[CONNUM],
[NAMECODE],
[SOLCODE],
[SOLISCAN],
[SOLREF],
[INSCODE],
[INSISCAN],
[INSREF],
[COURTRECORDNO],
[HEARINGDATE],
[TIME],
[Relationship],
[Nominated],
[AssignedContact],
[CivilSumSDate],
[CivilBillSDate],
[SSumSDate],
[InstOrdSDate],
[ComOrdSDate],
[WarrantIssDate],
[IsAssociateOtherSide],
[PUBLISH],
[Retired])
VALUES(@CaseCode,
ISNULL(@Type,''),
@Connum,
@Code,
@OurCode,
ISNULL(@SOLISCAN, 0),
@OtherReference,
@OurCodeIn,
ISNULL(@INSISCAN, 0),
@InsRef,
@RecNo,
CASE @HearingDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @HearingDate, 112) END,
@Time,
@Relationship,
@Nominated,
@AssignedContact,
CASE @CivilSumSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @CivilSumSerDate, 112) END,
CASE @CivilBillSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @CivilBillSerDate, 112) END,
CASE @SummarySumSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @SummarySumSerDate, 112) END,
CASE @InstOrdSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @InstOrdSerDate, 112) END,
CASE @ComOrdSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @ComOrdSerDate, 112) END,
CASE @WarrantIssDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME,@WarrantIssDate,112) END,
@AssociateForOtherSide,
@Publish,
@Retired)
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseAssoicatesTypes] [CAT]
WHERE [CAT].[NAMECODE] = @code
AND [CAT].[TYPECODE] = @Type)
BEGIN
INSERT
INTO [dbo].[CaseAssoicatesTypes]
([NAMECODE],
[TYPECODE],
[SEARCHCODE])
VALUES(@Code,
@Type,
'')
END
IF (SELECT TOP 1 1
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code) IS NULL
BEGIN
INSERT
INTO [dbo].[CaseAssociatesNames]
([CODE],
[TYPE],
[NAME],
[SALUTATION],
[TITLE],
[COMPANY],
[ADDRESS],
[PHONENO],
[FAXNO],
[HOME],
[MOBILENO],
[EMAIL],
[WEBADDRESS],
[LEGALNAME],
[LEGALADDRESS],
[DXREF],
[DOB],
[MARTIALSTATUS],
[MARRIAGEDATE],
[DATESEPARATED],
[DECEASEDDATE],
[OCCUPATION],
[NOTES],
[Area],
[Town],
[Gender],
[SSNUMBER],
[COURTNO],
[COURTAREA],
[TAX],
[DECEASED],
[AddressType],
[ServiceType],
[CRONUMBER],
[VATNUMBER],
[FORENAME],
[SURNAME],
[County],
[PostalCode],
[BankName],
[BankAddress],
[BankSortCode],
[BankAccNo],
[IBAN],
[BIC],
[EFTEmailAddress],
[BankType])
VALUES(@Code,
ISNULL(@Type,''),
@Fullname,
@Salutation,
@JobTitle,
@Company,
@Address,
@PhoneNo,
@FaxNo,
@Home,
@MobileNo,
@Email,
@WebAddress,
@LegalName,
@LegalAddress,
@DXRel,
CASE @DateOFBirth
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DateOFBirth, 112) END,
ISNULL(@MaritalStatus,''),
CASE @MarriageDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @MarriageDate, 112) END,
CASE @DateSeparated
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DateSeparated, 112) END,
CASE @DeceasedDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME,@DeceasedDate,112) END,
@Occupation,
@Note,
@Area,
@Town,
ISNULL(@Gender,''),
@PPSNo,
0,
'',
@Tax,
@Deceased,
@AddressType,
@ServiceType,
@CompanyRegNo,
@VATno,
@FirstName,
@SurName,
@County,
@PostalCode,
@BankName,
@BankAddress,
@BankSortCode,
@BankAccNo,
@IBan,
@Bic,
@EFTEmailAddress,
@BankType)
END
EXEC [dbo].[KAAS_ReorderCaseContact] @CaseCode, @Type, @Seq, @Seq
SET @Result = 1
END
ELSE
BEGIN
IF ((SELECT ISNULL(UPPER(RTRIM([CC].[NAMECODE])), '')
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[CASECODE] = @CaseCode
AND [CC].[CONTYPE] = @Type
AND [CC].[CONNUM] = @Seq) = 'N/A')
BEGIN
DELETE [CC]
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[CASECODE] = @CaseCode
AND [CC].[CONTYPE] = @Type
AND [CC].[CONNUM] = @Seq
IF (SELECT TOP 1 1
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code) IS NULL
BEGIN
INSERT
INTO [dbo].[CaseAssociatesNames]
([CODE],
[TYPE],
[NAME],
[SALUTATION],
[TITLE],
[COMPANY],
[ADDRESS],
[PHONENO],
[FAXNO],
[HOME],
[MOBILENO],
[EMAIL],
[WEBADDRESS],
[LEGALNAME],
[LEGALADDRESS],
[DXREF],
[DOB],
[MARTIALSTATUS],
[MARRIAGEDATE],
[DATESEPARATED],
[DECEASEDDATE],
[OCCUPATION],
[NOTES],
[Area],
[Town],
[Gender],
[SSNUMBER],
[COURTNO],
[COURTAREA],
[TAX],
[DECEASED],
[AddressType],
[ServiceType],
[CRONUMBER],
[VATNUMBER],
[FORENAME],
[SURNAME],
[County],
[PostalCode],
[BankName],
[BankAddress],
[BankSortCode],
[BankAccNo],
[IBAN],
[BIC],
[EFTEmailAddress],
[BankType])
VALUES(@Code,
ISNULL(@Type,''),
@Fullname,
@Salutation,
@JobTitle,
@Company,
@Address,
@PhoneNo,
@FaxNo,
@Home,
@MobileNo,
@Email,
@WebAddress,
@LegalName,
@LegalAddress,
@DXRel,
CASE @DateOFBirth
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DateOFBirth, 112) END,
ISNULL(@MaritalStatus,''),
CASE @MarriageDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @MarriageDate, 112) END,
CASE @DateSeparated
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DateSeparated, 112) END,
CASE @DeceasedDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME,@DeceasedDate,112) END,
@Occupation,
@Note,
@Area,
@Town,
ISNULL(@Gender,''),
@PPSNo,
0,
'',
@Tax,
@Deceased,
@AddressType,
@ServiceType,
@CompanyRegNo,
@VATno,
@FirstName,
@SurName,
@County,
@PostalCode,
@BankName,
@BankAddress,
@BankSortCode,
@BankAccNo,
@IBan,
@Bic,
@EFTEmailAddress,
@BankType)
INSERT
INTO [dbo].[CaseContacts]
([CASECODE],
[CONTYPE],
[CONNUM],
[NAMECODE],
[SOLCODE],
[SOLISCAN],
[SOLREF],
[INSCODE],
[INSISCAN],
[INSREF],
[COURTRECORDNO],
[HEARINGDATE],
[TIME],
[Relationship],
[Nominated],
[AssignedContact],
[CivilSumSDate],
[CivilBillSDate],
[SSumSDate],
[InstOrdSDate],
[ComOrdSDate],
[WarrantIssDate],
[IsAssociateOtherSide],
[PUBLISH],
[Retired])
VALUES(@CaseCode,
ISNULL(@Type,''),
@Connum,
@Code,
@OurCode,
ISNULL(@SOLISCAN, 0),
@OtherReference,
@OurCodeIn,
ISNULL(@INSISCAN, 0),
@InsRef,
@RecNo,
CASE @HearingDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @HearingDate, 112) END,
@Time,
@Relationship,
@Nominated,
@AssignedContact,
CASE @CivilSumSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @CivilSumSerDate, 112) END,
CASE @CivilBillSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @CivilBillSerDate, 112) END,
CASE @SummarySumSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @SummarySumSerDate, 112) END,
CASE @InstOrdSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @InstOrdSerDate, 112) END,
CASE @ComOrdSerDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @ComOrdSerDate, 112) END,
CASE @WarrantIssDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME,@WarrantIssDate,112) END,
@AssociateForOtherSide,
@Publish,
@Retired)
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseAssoicatesTypes] [CAT]
WHERE [CAT].[NAMECODE] = @code
AND [CAT].[TYPECODE] = @Type)
BEGIN
INSERT
INTO [dbo].[CaseAssoicatesTypes]
([NAMECODE],
[TYPECODE],
[SEARCHCODE])
VALUES(@Code,
@Type,
'')
END
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
END
ELSE
SET @Result = 5
END
END
ELSE
BEGIN
IF EXISTS(SELECT TOP 1 1
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[CASECODE] = @CaseCode
AND [CC].[CONTYPE] = @Type
AND [CC].[CONNUM] = @hdnSeq)
BEGIN
--Case Associate Names
UPDATE [CAN]
SET [CAN].[CODE] = @Code,
[CAN].[TYPE] = ISNULL(@Type,''),
[CAN].[NAME] = @Fullname,
[CAN].[SALUTATION] = @Salutation,
[CAN].[TITLE] = @JobTitle,
[CAN].[COMPANY] = @Company,
[CAN].[ADDRESS] = @Address,
[CAN].[PHONENO] = @PhoneNo,
[CAN].[FAXNO] = @FaxNo,
[CAN].[HOME] = @Home,
[CAN].[MOBILENO] = @MobileNo,
[CAN].[EMAIL] = @Email,
[CAN].[WEBADDRESS] = @WebAddress,
[CAN].[LEGALNAME] = @LegalName,
[CAN].[LEGALADDRESS] = @LegalAddress,
[CAN].[DXREF] = @DXRel,
[CAN].[DOB] = CASE @DateOFBirth
WHEN NULL
THEN @DateOFBirth
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @DateOFBirth), 112)) END,
[CAN].[MARTIALSTATUS] = ISNULL(@MaritalStatus, ''),
[CAN].[MARRIAGEDATE] = CASE @MarriageDate
WHEN NULL
THEN @MarriageDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @MarriageDate), 112)) END,
[CAN].[DATESEPARATED] = CASE @DateSeparated
WHEN NULL
THEN @DateSeparated
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @DateSeparated), 112)) END,
[CAN].[DECEASEDDATE] = CASE @DeceasedDate
WHEN NULL
THEN @DeceasedDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @DeceasedDate), 112)) END,
[CAN].[OCCUPATION] = @Occupation,
[CAN].[NOTES] = @Note,
[CAN].[AREA] = @Area,
[CAN].[TOWN] = @Town,
[CAN].[GENDER] = ISNULL(@Gender, ''),
[CAN].[SSNUMBER] = @PPSNo,
[CAN].[TAX] = @Tax,
[CAN].[DECEASED] = @Deceased,
[CAN].[AddressType] = @AddressType,
[CAN].[ServiceType] = @ServiceType,
[CAN].[CRONUMBER] = @CompanyRegNo,
[CAN].[VATNUMBER] = @VATno,
[CAN].[FORENAME] = @FirstName,
[CAN].[SURNAME] = @SurName,
[CAN].[County] = @County,
[CAN].[PostalCode] = @PostalCode,
[CAN].[BankName] = @BankName,
[CAN].[BankAddress] = @BankAddress,
[CAN].[BankSortCode] = @BankSortCode,
[CAN].[BankAccNo] = @BankAccNo,
[CAN].[IBAN] = @IBan,
[CAN].[BIC] = @Bic,
[CAN].[EFTEmailAddress] = @EFTEmailAddress,
[CAN].[BankType] = @BankType
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code
--Case Contacts
UPDATE [CC]
SET [CC].[CONNUM] = @Seq,
[CC].[SOLCODE] = @OurCode,
[CC].[SOLISCAN] = ISNULL(@SOLISCAN, 0),
[CC].[SOLREF] = @OtherReference,
[CC].[INSCODE] = @OurCodeIn,
[CC].[INSISCAN] = ISNULL(@INSISCAN, 0),
[CC].[INSREF] = @InsRef,
[CC].[COURTRECORDNO] = @RecNo,
[CC].[HEARINGDATE] = CASE @HearingDate
WHEN NULL
THEN @HearingDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @HearingDate), 112)) END,
[CC].[TIME] = @Time,
[CC].[Relationship] = @Relationship,
[CC].[Nominated] = @Nominated,
[CC].[AssignedContact] = @AssignedContact,
[CC].[CivilSumSDate] = CASE @CivilSumSerDate
WHEN NULL
THEN @CivilSumSerDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @CivilSumSerDate), 112)) END,
[CC].[CivilBillSDate] = CASE @CivilBillSerDate
WHEN NULL
THEN @CivilBillSerDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @CivilBillSerDate), 112)) END,
[CC].[SSumSDate] = CASE @SummarySumSerDate
WHEN NULL
THEN @SummarySumSerDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @SummarySumSerDate), 112)) END,
[CC].[InstOrdSDate] = CASE @InstOrdSerDate
WHEN NULL
THEN @InstOrdSerDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @InstOrdSerDate), 112)) END,
[CC].[ComOrdSDate] = CASE @ComOrdSerDate
WHEN NULL
THEN @ComOrdSerDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @ComOrdSerDate), 112)) END,
[CC].[WarrantIssDate] = CASE @WarrantIssDate
WHEN NULL
THEN @WarrantIssDate
ELSE CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME, @WarrantIssDate), 112)) END,
[CC].[IsAssociateOtherSide] = @AssociateForOtherSide,
[CC].[PUBLISH] = @Publish,
[CC].[Retired] = @Retired
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[CASECODE] = @CaseCode
AND [CC].[CONTYPE] = @Type
AND [CC].[NAMECODE] = @Code
AND [CC].[CONNUM] = @hdnSeq
UPDATE [CC]
SET [CC].[Retired] = @Retired
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[NAMECODE] = @Code
UPDATE [CAN]
SET [CAN].[Retired] = @Retired
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code
UPDATE [CAT]
SET [CAT].[Retired] = @Retired
FROM [dbo].[CaseAssoicatesTypes] [CAT]
WHERE [CAT].[NAMECODE] = @Code
EXEC KAAS_ReorderCaseContact @CaseCode,@Type,@hdnSeq,@Seq
SET @Result = 2
END
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_InsertCaseAssociateType]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_InsertCaseAssociateType]
GO
CREATE PROCEDURE [KAAS_InsertCaseAssociateType]
(
@Code VARCHAR(12)
,@BckCode VARCHAR(12)
,@Description VARCHAR(50)
,@Edit INT
,@Result INT OUTPUT
)
AS
/*******************************************************************************************************
* This procedure is used To insert "Add Case Associate Details" in CaseAssociatesContacts, *
* CaseContacts AND CaseAssociateTypes . *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertCaseAssociateType] *
* Copied from : [dbo].[ky_NETInsertCaseAssociateType] *
* *
* Modification History : *
* 2019-05-30 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SET @Result = 0
IF (@Edit = 0)
BEGIN
IF (SELECT TOP 1 1 FROM AssociateTypes WHERE RTRIM(UPPER(CODE)) = UPPER(@Code))IS NULL
BEGIN
INSERT INTO
AssociateTypes ( CODE ,DESCRIPTION )
VALUES
(@Code, @Description)
SET @Result = 1
END
END
ELSE
BEGIN
UPDATE
AssociateTypes
SET
CODE = UPPER(@Code)
,[DESCRIPTION] = @Description
WHERE
CODE = @BckCode
SET @Result = 2
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_InsertCaseContact',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_InsertCaseContact]
GO
CREATE PROCEDURE
[dbo].[KAAS_InsertCaseContact]
(@CaseContactXML XML,
@Result INT OUTPUT)
AS
/*****************************************************************************
Stored Procedure Name : KAAS_InsertCaseContact
Copied From : ky_NETInsertCaseContact
Description: This procedure is used To insert "Add Case Associate Details" in
CaseAssociatesContacts, CaseContacts AND CaseAssociateTypes
23JUN2015 Sridharen KEYD - 2332 - Use of LTRIM(RTRIM(
08AUG2015 sridharan KEYD - IF-171 - Adding case associates
13SEP2016 Arun.V Added condition to check existing records
06JUN2019 Vinodhan k Created KAAS_InsertCaseContact
*****************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @CaseContact TABLE
([AssCode] VARCHAR(6),
[Id] INT,
[Name] VARCHAR(100),
[Address] VARCHAR(200),
[Salutation] VARCHAR(200),
[JobTitle] VARCHAR(100),
[Email] VARCHAR(100),
[Relationship] VARCHAR(50),
[Phone] VARCHAR(30),
[Fax] VARCHAR(30),
[Mobile] VARCHAR(30),
[Note] VARCHAR(200),
[TxtAssContact] VARCHAR(200),
[TxtAssName] VARCHAR(200),
[TxtAssJobTitle] VARCHAR(200),
[TxtAssFax] VARCHAR(200),
[TxtAssEmail] VARCHAR(200),
[TxtAssPhone] VARCHAR(200),
[TxtAssMobile] VARCHAR(200),
[Edit] INT,
[County] VARCHAR(100),
[PostalCode] VARCHAR(30)
)
IF NOT (@CaseContactXML IS NULL)
IF NOT (CONVERT(VARCHAR(MAX), @CaseContactXML) = '')
BEGIN
INSERT
INTO @CaseContact
([AssCode],
[Id],
[Name],
[Address],
[Salutation],
[JobTitle],
[Email],
[Relationship],
[Phone],
[Fax],
[Mobile],
[Note],
[TxtAssContact],
[TxtAssName],
[TxtAssJobTitle],
[TxtAssFax],
[TxtAssEmail],
[TxtAssPhone],
[TxtAssMobile],
[Edit],
[County],
[PostalCode])
SELECT
[AssCode],
[Id],
[Name],
[Address],
[Salutation],
[JobTitle],
[Email],
[Relationship],
[Phone],
[Fax],
[Mobile],
[Note],
[TxtAssContact],
[TxtAssName],
[TxtAssJobTitle],
[TxtAssFax],
[TxtAssEmail],
[TxtAssPhone],
[TxtAssMobile],
[Edit],
[County],
[PostalCode]
FROM
(
SELECT
[CCXML].[COL].value('@AssCode', 'VARCHAR(6)') AS [AssCode],
CASE
WHEN ISNULL([CCXML].[COL].value('@Id', 'INT'), CONVERT(INT, 0)) = 0
THEN IDENT_CURRENT('CaseAssociatesContacts') + 1
WHEN [CCXML].[COL].value('@Id', 'INT') = ''
THEN IDENT_CURRENT('CaseAssociatesContacts') + 1
ELSE
[CCXML].[COL].value('@Id', 'INT')
END AS [Id],
[CCXML].[COL].value('@Name', 'VARCHAR(100)') AS [Name],
[CCXML].[COL].value('@Address', 'VARCHAR(200)') AS [Address],
[CCXML].[COL].value('@Salutation', 'VARCHAR(200)') AS [Salutation],
[CCXML].[COL].value('@JobTitle', 'VARCHAR(100)') AS [JobTitle],
[CCXML].[COL].value('@Email', 'VARCHAR(100)') AS [Email],
[CCXML].[COL].value('@Relationship', 'VARCHAR(50)') AS [Relationship],
[CCXML].[COL].value('@Phone', 'VARCHAR(30)') AS [Phone],
[CCXML].[COL].value('@Fax', 'VARCHAR(30)') AS [Fax],
[CCXML].[COL].value('@Mobile', 'VARCHAR(30)') AS [Mobile],
[CCXML].[COL].value('@Note', 'VARCHAR(200)') AS [Note],
[CCXML].[COL].value('@TxtAssContact', 'VARCHAR(200)') AS [TxtAssContact],
[CCXML].[COL].value('@TxtAssName', 'VARCHAR(200)') AS [TxtAssName],
[CCXML].[COL].value('@TxtAssJobTitle', 'VARCHAR(200)') AS [TxtAssJobTitle],
[CCXML].[COL].value('@TxtAssFax', 'VARCHAR(200)') AS [TxtAssFax],
[CCXML].[COL].value('@TxtAssEmail', 'VARCHAR(200)') AS [TxtAssEmail],
[CCXML].[COL].value('@TxtAssPhone', 'VARCHAR(200)') AS [TxtAssPhone],
[CCXML].[COL].value('@TxtAssMobile', 'VARCHAR(200)') AS [TxtAssMobile],
[CCXML].[COL].value('@Edit', 'INT') AS [Edit],
[CCXML].[COL].value('@County', 'VARCHAR(100)') AS [County],
[CCXML].[COL].value('@PostalCode', 'VARCHAR(30)') AS [PostalCode]
FROM
@CaseContactXML.nodes('/CaseContacts/CaseContact') AS [CCXML]([COL])
) [CC]
END
SELECT Id FROM @CaseContact
SELECT
[CaC].[KEYID],
[CaC].[NAMECODE],
[CaC].[NAME]
FROM
CaseAssociatesContacts [CaC]
INNER JOIN
@CaseContact [CC]
ON
[CaC].[KEYID] = [CC].[Id]
WHERE
RTRIM([CaC].[KEYID]) = [CC].[Id]
AND
RTRIM([CaC].[NAMECODE]) = [CC].[AssCode]
AND
RTRIM([CaC].[NAME]) = [CC].[Name]
UPDATE
[CAC]
SET
[CAC].[NAMECODE] = [CC].[AssCode],
[CAC].[NAME] = [CC].[Name],
[CAC].[ADDRESS] = [CC].[Address],
[CAC].[SALUTATION] = [CC].[Salutation],
[CAC].[JOBTITLE] = [CC].[JobTitle],
[CAC].[PHONE] = [CC].[Phone],
[CAC].[FAX] = [CC].[Fax],
[CAC].[MOBILE] = [CC].[Mobile],
[CAC].[EMAIL] = [CC].[Email],
[CAC].[RELATIONSHIP] = [CC].[Relationship],
[CAC].[NOTES] = [CC].[Note],
[CAC].[COUNTY] = [CC].[County],
[CAC].[POSTALCODE] = [CC].[PostalCode]
FROM
[CaseAssociatesContacts] [CAC]
INNER JOIN
@CaseContact [CC]
ON
[CC].[Id] = [CAC].[KEYID]
INSERT INTO
[CaseAssociatesContacts]
([NAMECODE],
[NAME],
[ADDRESS],
[SALUTATION],
[JOBTITLE],
[PHONE],
[FAX],
[MOBILE],
[EMAIL],
[RELATIONSHIP],
[NOTES],
[County],
[PostalCode],
[Retired])
SELECT
[CC].[AssCode],
[CC].[Name],
[CC].[Address],
[CC].[Salutation],
[CC].[JobTitle],
[CC].[Phone],
[CC].[Fax],
[CC].[Mobile],
[CC].[Email],
[CC].[Relationship],
[CC].[Note],
[CC].[County],
[CC].[PostalCode],
''
FROM
@CaseContact [CC]
WHERE
(SELECT TOP 1 1 FROM CaseAssociatesContacts WHERE RTRIM(KEYID) = [CC].[Id] AND RTRIM(NAMECODE) = [CC].[AssCode] AND RTRIM(NAME) = [CC].[Name]) IS NULL
UPDATE
[CaC]
SET
[CaC].[AssignedContact] = [CC].[TxtAssContact]
FROM
[CaseContacts] [CaC]
INNER JOIN
@CaseContact [CC]
ON
[CaC].[NAMECODE] = [CC].[Id]
WHERE
(SELECT TOP 1 1 FROM CaseAssociatesContacts WHERE RTRIM(KEYID) = [CC].[Id] AND RTRIM(NAMECODE) = [CC].[AssCode] AND RTRIM(NAME) = [CC].[Name]) IS NULL
AND
[CC].[Id] = [CC].[TxtAssContact]
AND
[CC].[TxtAssContact] <> '0'
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_InsertCaseContactForProfessional'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertCaseContactForProfessional]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_InsertCaseContactForProfessional]
(@CASECODE VARCHAR(20),
@CONTYPE VARCHAR(20),
@NAMECODE VARCHAR(20),
@FORCECONNUM INT = 0,
@Status INT = 0 OUTPUT)
AS
/***********************************************************************************************************************
*
* Description: To Insert Case Contact for add professional page
*
* Stored Procedure Name : KAAS_InsertCaseContactForProfessional
* Copied From : ky_NETInsertCaseContactForProfessional
*
* Modification History:
* 2015-01-13 PINO Use VARCHAR instead of VARCHAR in parameters and variables,
* (except where the Table Columns themselves are Unicode)
* 2015-10-15 Sridharan RDJ - 156 -Adding same Associate twice
* 2016-03-08 John Now getting the max [CONNUM] for given type but excluding "N/A"
* associates so these blank records are replaced
* 2016-04-08 John Make changes to how the "N/A" associates are handled. They will
* be overwritten in numerical order instead of only getting the
* most recent one.
* 2016-04-19 Suriya M KEYD-3521 - "When the user tries to add a new associate type with the existing
* same Type & Code 2 records are getting added in the grid.
* 2016-10-27 Pino Carafa Get the first available rather than the largest CONNUM + 1
* 2016-10-27 Pino Carafa Allow for the forced insertion of a specified CONNUM (for Doc Gen)
* 2017-01-03 Suriya M KEYD-4345-When you add a new associate type to an associate while adding a new Undertakings
* its not updating in the Add Professional.
* 2019-07-27 Vinodhan K Created KAAS_InsertCaseContactForProfessional
***********************************************************************************************************************/
BEGIN
IF(@Status = 0)
BEGIN
DECLARE @CHKCONNUM INT
DECLARE @NEWCONNUM INT
IF @FORCECONNUM <> 0
BEGIN
SET @NEWCONNUM = @FORCECONNUM
END
ELSE
BEGIN
SET @CHKCONNUM = 1
WHILE @NEWCONNUM IS NULL
BEGIN
SET @NEWCONNUM = NULL
SELECT @NEWCONNUM = [NEW].[NEWCONNUM]
FROM (SELECT @CHKCONNUM AS [NEWCONNUM]) [NEW]
LEFT OUTER JOIN [dbo].[CaseContacts] [CAC]
ON [CAC].[CASECODE] = @CASECODE
AND [CAC].[CONTYPE] = @CONTYPE
AND [CAC].[CONNUM] = @CHKCONNUM
AND [CAC].[NAMECODE] <> 'N/A'
WHERE [CAC].[CONNUM] IS NULL
SET @CHKCONNUM = @CHKCONNUM + 1
END
END
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseContacts] [CAC]
WHERE [CAC].[CASECODE] = @CASECODE
AND [CAC].[CONTYPE] = @CONTYPE
AND [CAC].[CONNUM] = @NEWCONNUM
AND [CAC].[NAMECODE] = 'N/A')
BEGIN
DELETE [CAC]
FROM [dbo].[CaseContacts] [CAC]
WHERE [CAC].[CASECODE] = @CASECODE
AND [CAC].[CONTYPE] = @CONTYPE
AND [CAC].[NAMECODE] = 'N/A'
AND [CAC].[CONNUM] = @NEWCONNUM
END
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseContacts] [CAC]
WHERE [CAC].[CASECODE] = @CASECODE
AND [CAC].[CONTYPE] = @CONTYPE
AND [CAC].[CONNUM] = @NEWCONNUM
AND [CAC].[NAMECODE] = 'N/A')
BEGIN
INSERT INTO [dbo].[CaseContacts]
([NAMECODE],
[CASECODE],
[CONTYPE],
[CONNUM])
VALUES(@NAMECODE,
@CASECODE,
@CONTYPE,
@NEWCONNUM)
END
IF NOT EXISTS
(SELECT TOP 1 1
FROM CaseAssoicatesTypes [CAT]
WHERE [CAT].NAMECODE = @NAMECODE
AND [CAT].TYPECODE = @CONTYPE)
BEGIN
INSERT INTO CaseAssoicatesTypes
(NAMECODE,
TYPECODE,
SEARCHCODE,
Retired)
VALUES(@NAMECODE ,
@CONTYPE,
'',
'N')
END
SET @Status = 0
END
ELSE
BEGIN
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseContacts] [CAC]
WHERE RTRIM([CAC].[NAMECODE]) = @NAMECODE
AND [CAC].[CASECODE] = @CASECODE
AND [CAC].[CONTYPE] = @CONTYPE)
BEGIN
SET @Status = 1
END
ELSE
BEGIN
SET @Status = 2
END
END
END
GO
IF OBJECT_ID(N'KAAS_InsertCaseType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_InsertCaseType]
GO
CREATE PROCEDURE
[dbo].[KAAS_InsertCaseType]
(@CaseTypeXML XML,
@Result INT OUTPUT)
AS
/*****************************************************************************
Stored Procedure Name : KAAS_InsertCaseType
Copied From : ky_NETInsertCaseType
Description: This procedure is used To insert "Add Case Associate Type" in
CaseAssoicatesTypes
Modifications: 2015-01-21 PINO change NVARCHAR to VARCHAR
2019-06-05 Vinodhan K Created KAAS_InsertCaseType
*****************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @CaseType TABLE
([NameCode] VARCHAR(100),
[TypeCode] VARCHAR(100),
[BankTypeCode] VARCHAR(100),
[SearchCode] VARCHAR(400))
IF NOT (@CaseTypeXML IS NULL)
IF NOT (CONVERT(VARCHAR(MAX), @CaseTypeXML) = '')
BEGIN
INSERT
INTO @CaseType
([NameCode],
[TypeCode],
[BankTypeCode],
[SearchCode])
SELECT
[NameCode],
[TypeCode],
[BankTypeCode],
[SearchCode]
FROM
(
SELECT
[CT].[COL].value('@NameCode', 'VARCHAR(100)') AS [NameCode],
[CT].[COL].value('@TypeCode', 'VARCHAR(100)') AS [TypeCode],
[CT].[COL].value('@BankTypeCode', 'VARCHAR(100)') AS [BankTypeCode],
[CT].[COL].value('@SearchCode', 'VARCHAR(400)') AS [SearchCode]
FROM
@CaseTypeXML.nodes('/CaseAssociateType/CaseType') AS [CT]([COL])
) [CTP]
END
UPDATE
[CAT]
SET
[CAT].NAMECODE = [CT].[NameCode],
[CAT].TYPECODE = [CT].[TypeCode],
[CAT].SEARCHCODE = [CT].[SearchCode]
FROM
[CaseAssoicatesTypes] [CAT]
INNER JOIN
@CaseType [CT]
ON
[CT].NameCode = [CAT].NAMECODE
AND
[CT].TypeCode = [CAT].TYPECODE
WHERE
[CT].BankTypeCode = [CT].TypeCode
OR
[CT].BankTypeCode IS NULL
OR
[CT].BankTypeCode = ''
INSERT INTO
[CaseAssoicatesTypes]
([NAMECODE],
[TYPECODE],
[SEARCHCODE])
SELECT
[CT].[NameCode],
[CT].[TypeCode],
[CT].[SearchCode]
FROM
@CaseType [CT]
WHERE
(
[CT].BankTypeCode = [CT].TypeCode
OR
[CT].BankTypeCode IS NULL
OR
[CT].BankTypeCode = ''
)
AND
(
(SELECT TOP 1 1 FROM CaseAssoicatesTypes WHERE RTRIM(NAMECODE) = [CT].[NameCode] AND RTRIM(TYPECODE) = [CT].[TypeCode])IS NULL
)
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_InsertCategory]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_InsertCategory]
GO
CREATE PROCEDURE [KAAS_InsertCategory] (
@CONTACT VARCHAR(8)
,@categorytype VARCHAR(6)
,@category VARCHAR(10)
,@DATE DATETIME
,@FIELDVALUE1 VARCHAR(60)
,@FIELDVALUE2 VARCHAR(60)
,@FIELDVALUE3 VARCHAR(60)
,@FIELDVALUE4 VARCHAR(60)
,@FIELDVALUE5 VARCHAR(60)
,@FIELDVALUE6 VARCHAR(60)
,@FIELDVALUE7 VARCHAR(60)
,@FIELDVALUE8 VARCHAR(60)
,@FIELDVALUE9 VARCHAR(60)
,@FIELDVALUE10 VARCHAR(60)
,@RecordID INT
)
/*******************************************************************************************************
* This stored procedure is used to insert or update the ReserveLedger information. *
* IF ID is already exist then it will update that record. otherwise new record will insert. *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertCategory] *
* Copied from : [dbo].[ky_NETCONInsertCategory] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
--IF NOT EXISTS (SELECT
-- 1
--FROM ContactCategories
--WHERE CONTACT = @CONTACT
--AND categorytype = @categorytype
--AND category = @category)
IF (@RecordID = 0)
BEGIN
INSERT INTO
ContactCategories (CONTACT
, categorytype
, category
, [DATE]
, FIELDVALUE1
, FIELDVALUE2
, FIELDVALUE3
, FIELDVALUE4
, FIELDVALUE5
, FIELDVALUE6
, FIELDVALUE7
, FIELDVALUE8
, FIELDVALUE9
, FIELDVALUE10)
VALUES
(@CONTACT, @categorytype, @category, @DATE, @FIELDVALUE1, @FIELDVALUE2, @FIELDVALUE3, @FIELDVALUE4, @FIELDVALUE5, @FIELDVALUE6, @FIELDVALUE7, @FIELDVALUE8, @FIELDVALUE9, @FIELDVALUE10)
END ELSE BEGIN
UPDATE
ContactCategories
SET
[DATE] = @DATE,
CATEGORY = @category,
FIELDVALUE1 = @FIELDVALUE1,
FIELDVALUE2 = @FIELDVALUE2,
FIELDVALUE3 = @FIELDVALUE3,
FIELDVALUE4 = @FIELDVALUE4,
FIELDVALUE5 = @FIELDVALUE5,
FIELDVALUE6 = @FIELDVALUE6,
FIELDVALUE7 = @FIELDVALUE7,
FIELDVALUE8 = @FIELDVALUE8,
FIELDVALUE9 = @FIELDVALUE9,
FIELDVALUE10 = @FIELDVALUE10
WHERE
RECORDID = @RecordID
-- CONTACT = @CONTACT
--AND
-- categorytype = @categorytype
--AND
-- category = @category
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_InsertClientChargeOutRates'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertClientChargeOutRates]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_InsertClientChargeOutRates]
(@ClientCode VARCHAR(10),
@FeCode VARCHAR(10),
@Rate VARCHAR(18),
@EffectiveDate DATETIME,
@ModifyBy VARCHAR(10),
@LastRate VARCHAR(18),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert client charge out rates. *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertClientChargeOutRates] *
* Copied from : [dbo].[ky_NETCONInsertClientChargeOutRates] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[ClientChargeOutRates] [CCOR]
WHERE [CCOR].[ClientCode] = @ClientCode
AND [CCOR].[FeCode] = @FeCode)
BEGIN
INSERT
INTO [dbo].[ClientChargeOutRates]
([ClientCode],
[FeCode],
[Rate],
[ModifyDate],
[ModifyBy],
[LastRate],
[EffectiveDate])
VALUES(@ClientCode,
@FeCode,
@Rate,
GETDATE(),
@ModifyBy,
@LastRate,
@EffectiveDate )
UPDATE [CON]
SET [CON].[ChargeOutRateInd] = 'Y'
FROM [dbo].[Contacts] [CON]
WHERE [CON].[Code] = @ClientCode
--UPDATE TIME ENTRY BASED ON NEW ENTRY
UPDATE [TIE]
SET [TIE].[RATE] = @Rate,
[TIE].[CHARGE] = ([TIE].[TIME] / 60.00) * @Rate
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[TimeEntry] [TIE]
INNER JOIN [dbo].[Handlers] [HAN]
ON [HAN].[CODE] = [TIE].[FEEEARN]
AND ( [HAN].[CODE] = @FeCode
OR [HAN].[ChargeGroup] = @FeCode)
ON [TIE].[Matter] = [MAT].[Code]
AND ISNULL([TIE].[BILLED], 0) = 0
AND [TIE].[TimeOrCharge] = 'T'
AND [TIE].[Date] >= @EffectiveDate
AND ISNULL([TIE].[InvoiceNo], 0) = 0
WHERE [MAT].[ClientCode] = @ClientCode
AND ISNULL([MAT].[ChargeOutRateInd], 'N') <> 'Y'
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 3
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_InsertCrossRef]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_InsertCrossRef]
GO
CREATE PROCEDURE
[KAAS_InsertCrossRef]
(@Code VARCHAR(10),
@LinkToCode VARCHAR(10),
@Relationship VARCHAR(50),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to Insert cross reference, this procedure will return result "1" IF *
* successful insert, otherwise return its default value "0". *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertCrossRef] *
* Copied from : [dbo].[ky_NETCONInsertCrossRef] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[ContactLinks] CL
WHERE CL.[CONTACTA] = @Code
AND CL.[CONTACTB] = @LinkToCode)
BEGIN
INSERT
INTO [dbo].[ContactLinks]
([CONTACTA],
[CONTACTB],
[RELATE])
VALUES(@Code,
@LinkToCode,
@Relationship)
INSERT
INTO [dbo].[ContactLinks]
([CONTACTA],
[CONTACTB],
[RELATE])
VALUES(@LinkToCode,
@Code,
@Relationship)
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 2
END
SET NOCOUNT OFF
END
GO
IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = 'KAAS_InsertDiaryAttachment' AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertDiaryAttachment]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_InsertDiaryAttachment]
(@DIARYID INT,
@TRACKREFERENCE INT,
@CASECODE VARCHAR(20),
@NAME VARCHAR(10),
@DOCUMENT VARCHAR(100),
@FILEPATH VARCHAR(255),
@TYPE VARCHAR(3),
@DOCCLASS VARCHAR(3),
@DATEENTERED DATETIME,
@ENTEREDBY VARCHAR(8),
@LASTACCESSDATE DATETIME,
@LASTACCESSBY VARCHAR(8),
@SYSTEM VARCHAR(1),
@DICTATIONFILE VARCHAR(255),
@Source VARCHAR(20),
@Fees INT,
@Outlay INT,
@Result VARCHAR(255) OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the Client Case Action *
* Attachment information.IF ID is already exist then it will update that record. otherwise *
* new record will insert. *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertDiaryAttachment] *
* Copied from : [dbo].[ky_NETAAInsertDiaryAttchement] *
* *
* Modification History : *
* 2019-04-10 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT OFF
IF NOT EXISTS
(SELECT 1
FROM [dbo].[DiaryAttachments] DAT
WHERE DAT.[TRACKREFERENCE] = @TRACKREFERENCE)
BEGIN
SET @FILEPATH = dbo.KAAS_FN_GETFILEPATH (SUBSTRING(@FILEPATH,LEN(@FILEPATH)-CHARINDEX ('\',REVERSE(@FILEPATH))+2,LEN(@FILEPATH)) ,@FILEPATH )
IF NOT(@FILEPATH = 'NOCHANGE')
BEGIN
INSERT
INTO [dbo].[DiaryAttachments]
([DIARYID],
[TRACKREFERENCE],
[CASECODE],
[NAME],
[DOCUMENT],
[FILEPATH],
[TYPE],
[DOCCLASS],
[DATEENTERED],
[ENTEREDBY],
[LASTACCESSDATE],
[LASTACCESSBY],
[SYSTEM],
[DICTATIONFILE],
[Source],
[Fees],
[Outlay])
VALUES(@DIARYID,
@TRACKREFERENCE,
@CASECODE,
@NAME,
@DOCUMENT,
@FILEPATH,
@TYPE,
@DOCCLASS,
@DATEENTERED,
@ENTEREDBY,
@LASTACCESSDATE,
@LASTACCESSBY,
@SYSTEM,
@DICTATIONFILE,
@Source,
@Fees,
@Outlay)
IF EXISTS(SELECT * FROM diary WHERE ACTIONID = @DIARYID AND ACTIONTYPE = 'U')
BEGIN
DECLARE @UserName VARCHAR(20)
DECLARE @Description VARCHAR(500)
SET @UserName = (SELECT NAME FROM Handlers WHERE Code = @ENTEREDBY)
SET @Description = 'Attachment Added: ' + CHAR(13) + CHAR(10)
+ 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME,@DATEENTERED),106) + CHAR(13) + CHAR(10)
+ 'Document Name: ' + @DOCUMENT +CHAR(13) + CHAR(10)
+ 'Document Class: ' + @DOCCLASS + CHAR(13) + CHAR(10)
INSERT INTO
[dbo].[UndertakingLog]
([UndertakingID],
[FieldChanges],
[FromValue],
[ToValue],
[ByWho],
[ModifiedDate])
VALUES(@DIARYID,
'New Documents Added',
@Description,
' - NIL - ',
@UserName,
CONVERT(DATETIME,GETDATE(),112))
END
SET @Result = @FILEPATH
END
ELSE
BEGIN
SET @Result = 'NOCHANGE'
END
END
--ELSE
-- BEGIN
-- UPDATE DAT
-- SET DAT.[TRACKREFERENCE] = @TRACKREFERENCE,
-- DAT.[CASECODE] = @CASECODE,
-- DAT.[NAME] = @NAME,
-- DAT.[DOCUMENT] = @DOCUMENT,
-- DAT.[FILEPATH] = @FILEPATH,
-- DAT.[TYPE] = @TYPE,
-- DAT.[DOCCLASS] = @DOCCLASS,
-- DAT.[DATEENTERED] = @DATEENTERED,
-- DAT.[ENTEREDBY] = @ENTEREDBY,
-- DAT.[LASTACCESSDATE] = @LASTACCESSDATE,
-- DAT.[LASTACCESSBY] = @LASTACCESSBY,
-- DAT.[SYSTEM] = @SYSTEM,
-- DAT.[DICTATIONFILE] = @DICTATIONFILE,
-- DAT.[Source] = @Source,
-- DAT.[Fees] = @Fees,
-- DAT.[Outlay] = @Outlay
-- FROM [dbo].[DiaryAttachments] DAT
-- WHERE DAT.[TRACKREFERENCE] = @TRACKREFERENCE
-- END
END
GO
IF OBJECT_ID(N'[KAAS_InsertIntellisense]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_InsertIntellisense]
GO
CREATE PROCEDURE [KAAS_InsertIntellisense]
(
@Handler VARCHAR(6),
@Narrative VARCHAR(100)
)
AS
/*******************************************************************************************************
* This procedure is used To insert & update the Intellisense. *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertIntellisense] *
* Copied from : [dbo].[ky_NETInsertIntellisense] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS(SELECT TOP 1 * FROM Intellisense WHERE Handler = @Handler AND Narrative = @Narrative )
BEGIN
INSERT INTO
Intellisense
([Handler]
,[Narrative])
VALUES
(@Handler,
@Narrative )
SELECT
RTRIM(Id) AS Id,
RTRIM(Handler) AS Handler,
RTRIM(Narrative) AS Narrative
FROM
Intellisense
WHERE
Handler = @Handler
ORDER by Narrative
END
ELSE
BEGIN
SELECT
RTRIM(Id) AS Id,
RTRIM(Handler) AS Handler,
RTRIM(Narrative) AS Narrative
FROM
Intellisense
WHERE
Handler = @Handler
ORDER by Narrative
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_InsertMatterChargeOutRates'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertMatterChargeOutRates]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_InsertMatterChargeOutRates]
(@MatterCode VARCHAR(20),
@ClientCode VARCHAR(20),
@FeCode VARCHAR(10),
@Rate DECIMAL(18, 2),
@EffectiveDate DATETIME,
@ModifyBy VARCHAR(10),
@LastRate DECIMAL(18, 2),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert matter charge out rates. *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertMatterChargeOutRates] *
* Copied from : [dbo].[ky_NETMATInsertMatterChargeOutRates] *
* *
* Modification History : *
* 2019-05-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[MatterChargeOutRates] MCOR
WHERE [MCOR].[ClientCode] = @ClientCode
AND [MCOR].[MatterCode] = @MatterCode
AND [MCOR].[FeCode] = @FeCode)
BEGIN
INSERT
INTO [dbo].[MatterChargeOutRates]
([ClientCode],
[MatterCode],
[FeCode],
[Rate],
[EffectiveDate],
[ModifyBy],
[LastRate],
[ModifyDate])
VALUES(@ClientCode,
@MatterCode,
@FeCode,
@Rate,
@EffectiveDate,
@ModifyBy,
@LastRate,
GETUTCDATE())
UPDATE [MAT]
SET [MAT].[ChargeOutRateInd] = 'Y'
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @MatterCode
--UPDATE TIME ENTRY BASED ON NEW ENTRY
UPDATE [TIE]
SET [TIE].[RATE] = @Rate,
[TIE].[CHARGE] = ([TIE].[TIME] / 60.00) * @Rate
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[TimeEntry] [TIE]
INNER JOIN [dbo].[Handlers] [HAN]
ON [HAN].[CODE] = [TIE].[FEEEARN]
AND ( [HAN].[CODE] = @FeCode
OR [HAN].[ChargeGroup] = @FeCode)
ON [TIE].[Matter] = [MAT].[Code]
AND ISNULL([TIE].[BILLED], 0) = 0
AND [TIE].[TimeOrCharge] = 'T'
AND [TIE].[Date] >= @EffectiveDate
AND ISNULL([TIE].[InvoiceNo], 0) = 0
WHERE [MAT].[Code] = @MatterCode
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 2
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_InsertMattersEstimatedFee'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertMattersEstimatedFee]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_InsertMattersEstimatedFee]
(
@RecordID INT,
@MatterCode VARCHAR(20),
@EstimatedDate DATETIME,
@EstimatedFee DECIMAL(18,2))
AS
/*******************************************************************************************************
* This SP used to Insert or update the matters Estimated fee details *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertMattersEstimatedFee] *
* Copied from : [dbo].[ky_NETInsertMattersEstimatedFee] *
* *
* Modification History : *
* 2019-05-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
IF(@RecordID = 0)
BEGIN
INSERT INTO MattersEstimatedFees(MatterCode, EstimatedBillDate, EstimatedFeesamt)
VALUES
(@MatterCode , @EstimatedDate, @EstimatedFee )
END
ELSE
BEGIN
UPDATE
MattersEstimatedFees
SET
MatterCode = @MatterCode,
EstimatedBillDate = @EstimatedDate,
EstimatedFeesamt = @EstimatedFee
WHERE
RecordID = @RecordID
END
END
GO
IF OBJECT_ID(N'KAAS_InsertOfficers',N'P')IS NOT NULL
DROP PROCEDURE KAAS_InsertOfficers
GO
CREATE PROCEDURE
KAAS_InsertOfficers
(@Contactcode VARCHAR(8),
@OfficerCode VARCHAR(8),
@Name VARCHAR(30),
@CoSecretary BIT,
@Appointed DATETIME,
@Resigned DATETIME,
@Result BIT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to Insert Officers details. *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertOfficers] *
* Copied from : [dbo].[ky_NETInsertOfficers] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS(SELECT TOP 1 1
FROM
Officers
WHERE
CONTACTCODE=@Contactcode
AND CONTACTOFFICER = @OfficerCode
AND NAME = @Name
AND COSECRETARY = (CASE WHEN @CoSecretary = 'True' THEN 'Y' ELSE 'N' END)
AND DATEAPPOINTED = @Appointed
AND DATERESIGNED = @Resigned)
BEGIN
INSERT INTO
Officers
(CONTACTCODE,
CONTACTOFFICER,
NAME,
COSECRETARY,
DATEAPPOINTED,
DATERESIGNED)
VALUES
(@Contactcode,
@OfficerCode,
@Name,
(CASE WHEN @CoSecretary = 'True' THEN 'Y' ELSE 'N' END),
@Appointed,
@Resigned)
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_InsertOrUpdateAssociateUDF', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertOrUpdateAssociateUDF]
END
GO
CREATE PROCEDURE [dbo].[KAAS_InsertOrUpdateAssociateUDF] (
@NAMECODE VARCHAR(200),
@FILEPREFIX VARCHAR(200),
@FIELDNAME VARCHAR(200),
@Text VARCHAR(MAX),
@Number DECIMAL(18,2),
@Date DATETIME,
@ADDIFMISSING BIT = 0)
AS
/*******************************************************************************************************
* Updates an associate UDF (or inserts if specified). *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertOrUpdateAssociateUDF] *
* Copied from : [dbo].[ky_NETInsertOrUpdateAssociateUDF] *
* *
* Modification History : *
* 2019-06-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF @Date = CONVERT(DATETIME, '')
BEGIN
SET @Date = NULL
END
ELSE IF YEAR(@Date) < 1901
BEGIN
SET @Date = NULL
END
ELSE
BEGIN
SET @DATE = CONVERT(DATETIME, CONVERT(VARCHAR, @Date, 112))
END
IF RTRIM(ISNULL(@Text, '')) = ''
BEGIN
/*
@ADDIFMISSING is used to determine if the UDF was just added (and so 0-valued numerics should have blank text) or we're updating an existing field
This means rather than have two procs (InsertOrUpdate and Update) we can have the one
The two procedures in question are:
ky_NETOtherCaseDetailsUpdate AND
ky_NETUDFAnswerInsertorUpdate
The first is used when users set UDF values in the framework.
The second is used by the doc gen to set UDF values
*/
IF @Date IS NULL AND @Number IS NULL AND @ADDIFMISSING = 1
BEGIN
SET @Text = ''
END
ELSE IF @Number = 0.00 AND @Date IS NULL AND @ADDIFMISSING = 0
BEGIN
SET @Text = ''
END
ELSE IF @Date IS NULL AND @Number = 0 AND @ADDIFMISSING = 1
BEGIN
SET @Text = CASE (SELECT [SUF].[TYPE]
FROM [dbo].[SystemUserDefinedFields] AS [SUF]
WHERE [SUF].[FILEPREFIX] = @FILEPREFIX
AND [SUF].[FIELDNAME] = @FIELDNAME)
WHEN 'Date'
THEN ''
WHEN 'Text'
THEN @Text
ELSE CONVERT(VARCHAR(30), @Number) END
END
ELSE IF @Date IS NULL
BEGIN
IF (SELECT [SUF].[TYPE]
FROM [dbo].[SystemUserDefinedFields] [SUF]
WHERE [SUF].[FILEPREFIX] = @FILEPREFIX
AND [SUF].[FIELDNAME] = @FIELDNAME) <> 'Text'
BEGIN
SET @Text = CONVERT(VARCHAR(30), @Number)
END
END
ELSE
BEGIN
SET @Number = [dbo].[KAAS_FN_ConvertDateToClarion](@Date)
SET @Text = CONVERT(VARCHAR(30), @Number)
END
END
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[AssociateUDF] AS AUD
WHERE AUD.[NameCode] = @NAMECODE
AND AUD.[FilePrefix] = @FILEPREFIX
AND AUD.[FieldName] = @FIELDNAME)
BEGIN
UPDATE AUD
SET AUD.[TextValue] = @Text,
AUD.[NumberValue] = @Number,
AUD.[DateValue] = @Date
FROM [dbo].[AssociateUDF] AS AUD
WHERE AUD.[NameCode] = @NAMECODE
AND AUD.[FilePrefix] = @FILEPREFIX
AND AUD.[FieldName] = @FIELDNAME
END
ELSE
BEGIN
IF @ADDIFMISSING = 1
BEGIN
INSERT INTO [dbo].[AssociateUDF] (
[NameCode],
[FilePrefix],
[FieldName],
[TextValue],
[NumberValue],
[DateValue])
SELECT @NAMECODE,
@FILEPREFIX,
@FIELDNAME,
@Text,
@Number,
@Date
END
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID (N'KAAS_InsertORUpdateUDFDetails',N'P') IS NOT NULL
DROP PROCEDURE KAAS_InsertORUpdateUDFDetails
GO
CREATE PROCEDURE KAAS_InsertORUpdateUDFDetails
@FORMID INT,
@HANDLER VARCHAR(10),
@CASECODE VARCHAR(20)
AS
/*******************************************************************************************************
* This procedure is used to insert or update relation between UDF's form and case code. *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertORUpdateUDFDetails] *
* Copied from : [dbo].[KY_NETInsertORUpdateUDFDetails] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS (SELECT TOP 1 1 FROM UDFFormCaseRelation WHERE HANDLER=@HANDLER AND casecode=@CASECODE )
BEGIN
UPDATE
UDFFormCaseRelation
SET
Formid =@FORMID
WHERE
HANDLER=@HANDLER
AND
casecode=@CASECODE
END
ELSE
BEGIN
INSERT INTO
UDFFormCaseRelation
(Formid
,handler
,casecode )
VALUES
(@FORMID
,@HANDLER
,@CASECODE )
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_InsertTasksAction'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertTasksAction]
END
GO
CREATE PROCEDURE [KAAS_InsertTasksAction]
(
@CASECODE VARCHAR(20),
@FNCODE VARCHAR(10),
@TEAMCODE VARCHAR(10),
@Result INT OUTPUT
)
/*******************************************************************************************************
* This sp used to insert blank action. *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertTasksAction] *
* Copied from : [dbo].[ky_NETInsertTasksAction] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
--Diary
DECLARE @TIMECONVERT INT
SET @TIMECONVERT = dbo.ky_ConvertTimeToClarion(GETDATE())
DECLARE @ACTIONID INT
--Pino 2015-09-30 Start
EXEC @ACTIONID = [dbo].[KAAS_GetNextActionID]
--SET @ACTIONID = (SELECT ISNULL(MAX(ACTIONID + 1), 1) FROM [dbo].[diary])
--Pino 2015-09-30 End
INSERT
INTO [dbo].[diary]
([CASECODE],
[DATE],
[STATUS],
[ACTIONCODE],
[ACTIONSTATUS],
[ACTIONTYPE],
[PROCESSTYPE],
[FNCODE],
[TEAMCODE],
[TEXT1],
[TEXT2],
[DELEGATEDFNR],
[DELEGATEDDATE],
[DELEGATEDBACKDATE],
[DEFERRED],
[DUEDATE],
[PUBLISH],
[DYSTARTTIME],
[DYENDTIME],
[DURATION],
[ACTIONID],
[ORGINALACTIONID],
[PRIORITY],
[HIGHLIGHTED],
[MILESTEONETYPE],
[ATTACHMENTS],
[PROCESSSTATUS],
[WORKPROCESS],
[BILLABLE],
[BILLDESCRIPTION],
[EMAILADDRESS],
[ADDRESSTO],
[CCTo],
[BCCTo],
[EMAIL],
[SUBJECT],
[DELEGATIONSTATUS],
[DRAFTBILLNO],
[CHEQUEREQNO],
[TxmSent],
[Location],
[HearingType],
[ForCopy],
[TxmDate],
[TxmSeqNo],
[DisplayText],
[Flag])
VALUES(@CASECODE,
GETDATE(),
0,
null,
null,
null,
null,
@FNCODE,
@TEAMCODE,
null,
null,
null,
null,
null,
null,
null,
null,
@TIMECONVERT,
@TIMECONVERT,
0,
@ACTIONID,
0,
null,
null,
null,
null,
0,
0,
0,
null,
null,
null,
null,
null,
null,
null,
0,
0,
0,
0,
null,
'Not Applicable',
null,
null,
0,
null,
0)
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[DATE],
[TIME],
[DATER],
[TIMER],
[DUEDATE],
[DUETIME],
[REVIEW],
[STATUS],
[OWNER],
[DELEGATE],
[DELEGATESTATUS],
[ActionType],
[FromHandler],
[ReturnedBy],
[DelType])
VALUES(@ACTIONID,
@FNCODE,
@TEAMCODE,
GETDATE(),
@TIMECONVERT,
null,
@TIMECONVERT,
GETDATE(),
@TIMECONVERT,
null,
0,
'Y',
@FNCODE,
0,
null,
@FNCODE,
null,
'Created')
SET @Result = @ACTIONID
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_InsertUndertakings'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_InsertUndertakings]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_InsertUndertakings]
(@CaseCode VARCHAR(20),
@UserCode VARCHAR(10),
@UndertakingsDate DATETIME,
@DischargeDate DATETIME,
@DischargeDescription VARCHAR(100),
@DiaryWarningDate DATETIME,
@Type VARCHAR(1),
@GivenReceived VARCHAR(1),
@CommercialOrNon VARCHAR(1),
@FeeEarner VARCHAR(10),
@UndertakingTo VARCHAR(20),
@UndertakingToName VARCHAR(100),
@Who VARCHAR(200),
@Details VARCHAR(500),
@Notes VARCHAR(3000),
@Value DECIMAL(13, 2),
@DealingNo VARCHAR(40),
@Status VARCHAR(30),
@Edit INT,
@RecordId INT,
@Ledger BIT,
@UserName VARCHAR(200),
@Category VARCHAR(3),
@IsConditional BIT,
@Condition VARCHAR(100),
@NeedsAttention BIT,
@Result INT OUTPUT,
@UndertakingID INT OUTPUT)
AS
/*******************************************************************************************************
* To insert value into the undertaking table for undertaking window. *
* *
* Stored Procedure Name : [dbo].[KAAS_InsertUndertakings] *
* Copied from : [dbo].[ky_NETInsertUndertakings] *
* *
* Modification History : *
* 2019-06-17 Vinodhan K Created *
* 2019-08-19 Dheepin Vijith K Modified - Conversion size for the field "@Value" is changed to 20 *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @SEQ SMALLINT
DECLARE @TEAM VARCHAR(20)
DECLARE @TypeFull VARCHAR(20)
DECLARE @GivenReceivedFull VARCHAR(20)
DECLARE @GivenReceivedFullOld VARCHAR(20)
DECLARE @CommercialFull VARCHAR(25)
DECLARE @CommercialOLD VARCHAR(25)
DECLARE @FeeName VARCHAR(200)
DECLARE @Description VARCHAR(MAX)
DECLARE @FullDesc VARCHAR(MAX)
DECLARE @FullDescOld VARCHAR(MAX)
DECLARE @StatusID INT
DECLARE @ClarionNOW INT
SET @ClarionNOW = dbo.ky_ConvertTimeToClarion(GETUTCDATE())
SET @Details = RTRIM(ISNULL(@Details, ''))
SET @FeeEarner = RTRIM(ISNULL(@FeeEarner, ''))
SET @Type = RTRIM(ISNULL(@Type, ''))
SET @GivenReceived = RTRIM(ISNULL(@GivenReceived, ''))
SET @UndertakingTo = RTRIM(ISNULL(@UndertakingTo, ''))
SET @Who = RTRIM(ISNULL(@Who, ''))
SET @Status = RTRIM(ISNULL(@Status, ''))
SET @DealingNo = RTRIM(ISNULL(@DealingNo, ''))
SET @CaseCode = RTRIM(ISNULL(@CaseCode, ''))
SET @UserCode = RTRIM(ISNULL(@UserCode, ''))
SET @UserName = RTRIM(ISNULL(@UserName, ''))
SET @Value = ISNULL(@Value, 0)
SET @NeedsAttention = ISNULL(@NeedsAttention, 0)
DECLARE @Status1 INT
SET @Status1 = 0
IF (@Ledger = 1)
BEGIN
IF(@Edit = 1)
BEGIN
DECLARE @UndertakingDATE1 DATETIME
DECLARE @WarningDATE1 DATETIME
DECLARE @TYPE1 VARCHAR(1)
DECLARE @GivenorReceived1 VARCHAR(1)
DECLARE @CommercialNon1 VARCHAR(1)
DECLARE @Value1 DECIMAL(13, 2)
DECLARE @UStatus1 VARCHAR(30)
DECLARE @DeelingNo1 VARCHAR(40)
DECLARE @DESC1 VARCHAR(500)
DECLARE @AuthorisedByFE VARCHAR(10)
DECLARE @ActionID1 INT
SELECT @DESC1 = RTRIM(ISNULL([DESCRIPTION],'')), @UndertakingDATE1 = [DATE],@TYPE1 = [TYPE], @GivenorReceived1 = [GivenOrReceived], @CommercialNon1 = [CommercialorNon], @Value1 = VALUE, @UStatus1 = [Status], @DeelingNo1 = DealingNumber, @AuthorisedByFE = RTRIM(AuthorisedByFE) FROM Undertakings WHERE matter = @CaseCode AND RECORDID = @RecordId
SELECT @StatusID = recordid from UndertakingStatus where RTRIM(StatusDesc) = @Status
SELECT @ActionID1 = ActionID FROM Undertakings WHERE RECORDID = @RecordId
SET @WarningDATE1 = (SELECT TOP 1 CONVERT(VARCHAR(11),DEL.[DATE]) AS [DATE] FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ActionID] = @ActionID1 ORDER BY DEL.[AssignNo] DESC)
--IF NOT(RTRIM(@DESC1) = RTRIM(@Details) AND @Value = @Value1 AND @FeeEarner = @AuthorisedByFE AND CONVERT(VARCHAR(25),@UndertakingsDate) = CONVERT(VARCHAR(25),@UndertakingDATE1) AND @GivenorReceived1 = @GivenReceived AND @CommercialOrNon = @CommercialNon1 AND @Type = @TYPE1 AND @DealingNo = @DeelingNo1 AND @UStatus1 = @StatusID AND @WarningDATE1 = CONVERT(VARCHAR(20),@DiaryWarningDate))
IF NOT(RTRIM(@DESC1) = RTRIM(@Details) AND @Value = @Value1 AND @FeeEarner = @AuthorisedByFE AND CONVERT(VARCHAR(11),@UndertakingsDate) = CONVERT(VARCHAR(11),@UndertakingDATE1) AND @GivenorReceived1 = @GivenReceived AND @CommercialOrNon = @CommercialNon1 AND @Type = @TYPE1 AND @DealingNo = @DeelingNo1 AND @UStatus1 = @StatusID AND CONVERT(VARCHAR(11),@WarningDATE1) = CONVERT(VARCHAR(11),@DiaryWarningDate))
BEGIN
SET @Status1 = 1
END
END
ELSE
BEGIN
SET @Status1 = 1
END
END
SELECT @StatusID = UNS.[RecordID]
FROM [dbo].[UndertakingStatus] UNS
WHERE RTRIM(UNS.[StatusDesc]) = RTRIM(@Status)
SET @SEQ = 0
SELECT @TEAM = HAN.[TEAM],
@FeeName = HAN.[NAME]
FROM [dbo].[Handlers] HAN
WHERE HAN.[CODE] = @FeeEarner
SET @TEAM = RTRIM(ISNULL(@TEAM, ''))
SET @FeeName = RTRIM(ISNULL(@FeeName, ''))
SET @TypeFull = CASE WHEN @Type = 'F'
THEN 'Financial'
ELSE 'Documents' END
SET @GivenReceivedFull = CASE WHEN @GivenReceived = 'G'
THEN 'Given'
ELSE 'Received' END
SET @CommercialFull = CASE WHEN @CommercialOrNon = 'N'
THEN 'Non Commercial'
ELSE 'Commercial' END
DECLARE @ACTIONID2 INT
-- Pino 2015-09-30 Start
EXEC @ACTIONID2 = [dbo].[KAAS_GetNextActionID]
--SELECT @ACTIONID2 = ISNULL(MAX([DIA].[ACTIONID]), 0) + 1
-- FROM [dbo].[diary] DIA
-- Pino 2015-09-30 End
SET @FullDesc = 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME,@UndertakingsDate),106) + CHAR(13) + CHAR(10)
+ 'Type: ' + @TypeFull + ' ' + @GivenReceivedFull + ' ' + @CommercialFull + CHAR(13) + CHAR(10)
+ 'Authorised By: ' + @FeeEarner + ' ' + @FeeName + CHAR(13) + CHAR(10)
+ 'Undertaking to: ' + @UndertakingTo + '(' + @UndertakingToName + ')' + CHAR(13) + CHAR(10)
+ 'Details: ' + @Details + CHAR(13) + CHAR(10)
+ 'Who: ' + @Who + CHAR(13) + CHAR(10)
+ 'Value: ' + CONVERT(VARCHAR(20),@Value) + CHAR(13) + CHAR(10)
+ 'Status: '+ @Status + CHAR(13) + CHAR(10)
+ 'Dealing Number: ' + @DealingNo + CHAR(13) + CHAR(10)
SET @Description = 'Undertaking Created: ' + CHAR(13) + CHAR(10)
+ @FullDesc
IF (@Edit = 0)
BEGIN
INSERT
INTO [dbo].[diary]
([CASECODE],
[DATE],
[STATUS],
[ACTIONCODE],
[ACTIONSTATUS],
[ACTIONTYPE],
[PROCESSTYPE],
[FNCODE],
[TEAMCODE],
[TEXT1],
[DisplayText],
[TEXT2],
[DELEGATEDFNR],
[DELEGATEDDATE],
[DELEGATEDBACKDATE],
[DEFERRED],
[DUEDATE],
[IMAGENO],
[PUBLISH],
[DYSTARTTIME],
[DYENDTIME],
[DURATION],
[ACTIONID],
[ORGINALACTIONID],
[PRIORITY],
[HIGHLIGHTED],
[MILESTEONETYPE],
[ATTACHMENTS],
[PROCESSSTATUS],
[WORKPROCESS],
[BILLABLE],
[BILLDESCRIPTION],
[EMAILADDRESS],
[ADDRESSTO],
[CCTo],
[BCCTo],
[EMAIL],
[SUBJECT],
[DELEGATIONSTATUS],
[DRAFTBILLNO],
[CHEQUEREQNO],
[TxmSent],
[Location],
[HearingType],
[ForCopy],
[TxmDate],
[TxmSeqNo])
VALUES(@CaseCode,
CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME,@DiaryWarningDate), 112) + ' ' + CONVERT(VARCHAR, GETUTCDATE(), 108)),
0,
'ADMUD',
'NA',
'U',
'I',
@FeeEarner,
@TEAM,
@Description,
[dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @Description), ''), 200),
NULL,
'',
NULL,
NULL,
'',
CASE @UndertakingsDate WHEN '' THEN NULL ELSE CONVERT(DATETIME, @UndertakingsDate,112) END,
0,
'N',
@ClarionNOW,
@ClarionNOW,
0,
@ACTIONID2,
@ACTIONID2,
CASE @NeedsAttention WHEN 1 THEN 'H' ELSE 'N' END,
'',
@UserCode,
'',
0,
0,
0,
'',
'',
'',
'',
'',
'',
@Details,
0,
0,
0,
0,
NULL,
'',
'',
NULL,
0)
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[DATE],
[TIME],
[DATER],
[TIMER],
[DUEDATE],
[DUETIME],
[REVIEW],
[STATUS],
[OWNER],
[DELEGATE],
[DELEGATESTATUS],
[ActionType],
[FromHandler],
[ReturnedBy],
[DelType])
VALUES(@ACTIONID2,
@FeeEarner,
@TEAM,
CONVERT(DATETIME, CONVERT(VARCHAR, CONVERT(DATETIME,@DiaryWarningDate), 112) + ' ' + CONVERT(VARCHAR, GETUTCDATE(), 108)),
@ClarionNOW,
NULL,
'',
CONVERT(DATETIME, @UndertakingsDate ,112),
@ClarionNOW,
'',
0,
'Y',
@UserCode,
0,
'U',
@UserCode,
'',
'Created')
INSERT INTO
[dbo].[UndertakingLog]
([UndertakingID],
[FieldChanges],
[FromValue],
[ToValue],
[ByWho],
[ModifiedDate])
VALUES(@ACTIONID2,
'New Undertakings Created',
@Description,
' - NIL - ',
@UserName,
CONVERT(DATETIME,GETUTCDATE(),112))
END -- IF (@Edit = 0)
IF (@Edit = 1 OR @Edit = 2)
BEGIN
DECLARE @ACTIONIDORG INT
DECLARE @GetAction INT
DECLARE @EditText VARCHAR(MAX)
SELECT @ACTIONIDORG = UND.[ActionID]
FROM [dbo].[Undertakings] UND
WHERE UND.[RECORDID] = @RecordId
SELECT @EditText = DIA.[TEXT1]
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONID] = @ACTIONIDORG
DECLARE @TypeFullOLD VARCHAR(20)
DECLARE @GivenReceivedOLD VARCHAR(20)
DECLARE @FeeEarnerOLD VARCHAR(20)
DECLARE @FeeNameOLD VARCHAR(200)
DECLARE @UndertakingToOLD VARCHAR(20)
DECLARE @DetailsOLD VARCHAR(100)
DECLARE @UndertakingToNameOLD VARCHAR(100)
DECLARE @WhoOLD VARCHAR(200)
DECLARE @ValueOLD DECIMAL(13, 2)
DECLARE @StatusOLD VARCHAR(30)
DECLARE @DealingNoOLD VARCHAR(40)
DECLARE @UndertakingsDateOLD VARCHAR(11)
DECLARE @DiaryWarningDateOLD VARCHAR(11)
SELECT @TypeFullOLD = CASE WHEN RTRIM(ISNULL(UND.[TYPE], '')) = 'F'
THEN 'Financial'
ELSE 'Documents' END,
@GivenReceivedOLD = CASE WHEN RTRIM(ISNULL(UND.[GivenOrReceived], '')) = 'G'
THEN 'Given'
ELSE 'Received' END,
@CommercialOLD = CASE WHEN RTRIM(ISNULL(UND.[CommercialOrNon],'C')) = 'N'
THEN 'Non Commercial'
ELSE 'Commercial' END,
@FeeEarnerOld = RTRIM(ISNULL(UND.[AuthorisedByFE], '')),
@FeeNameOLD = RTRIM(ISNULL(HAN.[NAME], '')),
@UndertakingToOLD = RTRIM(ISNULL(UND.[UndertakingTo], '')),
@DetailsOLD = RTRIM(ISNULL(UND.[DESCRIPTION], '')),
@WhoOLD = RTRIM(ISNULL(UND.[WHO], '')),
@ValueOLD = ISNULL(UND.[VALUE], 0),
@StatusOLD = RTRIM(ISNULL(UNS.[StatusDesc], '')),
@DealingNoOLD = ISNULL(UND.[DealingNumber], 0),
@UndertakingToNameOLD = RTRIM(ISNULL(CAN.[NAME], '')),
@UndertakingsDateOLD = CONVERT(VARCHAR(11),UDEL.[DUEDATE],106),
@DiaryWarningDateOLD = CONVERT(VARCHAR(11),UDEL.[DATE],106)
FROM [dbo].[Undertakings] UND
LEFT OUTER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = UND.[AuthorisedByFE]
LEFT OUTER JOIN [dbo].[UndertakingStatus] UNS
ON UNS.[RecordID] = UND.[Status]
LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CAN
ON CAN.[CODE] = UND.[UndertakingTo]
CROSS APPLY ( SELECT TOP 1
DEL.[DUEDATE],
DEL.[DATE]
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = UND.[ActionID]
ORDER BY DEL.[DUEDATE] DESC) UDEL
WHERE UND.[ActionID] = @ACTIONIDORG
IF (@Edit = 1)
BEGIN
SELECT @GetAction = UND.[ActionID]
FROM [dbo].[Undertakings] UND
WHERE UND.[RECORDID] = @RecordId
SET @EditText = 'Undertaking changed by ' + @UserName + CHAR(13) + CHAR(10)
+ @FullDesc + CHAR(13) + CHAR(10)
+ '--------------------------------------------------' + CHAR(13) + CHAR(10)
+ @EditText
SET @GivenReceivedFullOld = CASE WHEN @GivenReceivedOLD = 'G'
THEN 'Given'
ELSE 'Received' END
SET @FullDescOld = 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME,@UndertakingsDateOld),106) + CHAR(13) + CHAR(10)
+ 'Type: ' + @TypeFullOld + ' ' + @GivenReceivedFullOld + ' ' + @CommercialFull + CHAR(13) + CHAR(10)
+ 'Authorised By: ' + @FeeEarnerOLD + ' ' + RTRIM(ISNULL(@FeeNameOld, '')) + CHAR(13) + CHAR(10)
+ 'Undertaking to: ' + @UndertakingToOld + '(' + @UndertakingToNameOld + ')' + CHAR(13) + CHAR(10)
+ 'Details: ' + @DetailsOld + CHAR(13) + CHAR(10)
+ 'Who: ' + @WhoOld + CHAR(13) + CHAR(10)
+ 'Value: ' + Convert(VARCHAR(20), @ValueOld) + CHAR(13) + CHAR(10)
+ 'Status: '+ @StatusOld + CHAR(13) + CHAR(10)
+ 'Dealing Number: ' + @DealingNoOLD + CHAR(13) + CHAR(10)
IF (@TypeFullOLD <> @TypeFull
OR @GivenReceivedOLD <> @GivenReceivedFull
OR @CommercialFull <> @CommercialOLD
OR @FeeEarnerOLD <> @FeeEarner
OR @FeeNameOLD <> @FeeName
OR @UndertakingToOLD <> @UndertakingTo
OR @DetailsOLD <> @Details
OR @WhoOld <> @Who
OR Convert(VARCHAR(20), @ValueOld) <> CONVERT(VARCHAR(20),@Value)
OR @StatusOld <> @Status
OR @UndertakingsDateOLD <> CONVERT(VARCHAR(11),CONVERT(DATETIME,@UndertakingsDate),106)
OR @DiaryWarningDateOLD <> CONVERT(VARCHAR(11),CONVERT(DATETIME,@DiaryWarningDate),106)
OR @DealingNoOLD <> @DealingNo) -- Compare OLD values to NEW values
BEGIN
IF ISNULL(@GetAction, 0) <> 0
BEGIN
INSERT INTO
[dbo].[UndertakingLog]
([UndertakingID],
[FieldChanges],
[FromValue],
[ToValue],
[ByWho],
[ModifiedDate])
VALUES(@GetAction,
'Undertakings for ' + CHAR(13) + CHAR(10) + @CaseCode + CHAR(13) + CHAR(10) + ' has been changed',
'Undertaking changed From '+ CHAR(13) + CHAR(10) + @FullDescOld,
'Undertaking changed To ' + CHAR(13) + CHAR(10) + @FullDesc,
@UserName,
CONVERT(DATETIME,GETUTCDATE(),112))
END
UPDATE DIA
SET DIA.[TEXT1] = @EditText,
DIA.[SUBJECT] = @Details
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONID] = @ACTIONIDORG
END -- Compare OLD values to NEW values
END --IF (@Edit = 1)
ELSE --NOT: IF (@Edit = 1)
BEGIN
SELECT @GetAction = UND.[ActionID]
FROM [dbo].[Undertakings] UND
WHERE UND.[RECORDID] = @RecordId
SET @EditText = 'Undertaking Discharged by ' + @UserName + CHAR(13) + CHAR(10)
+ 'Date: ' + CONVERT(VARCHAR(11), @DischargeDate, 106) + CHAR(13) + CHAR(10)
+ 'Description : ' + @DischargeDescription + CHAR(13) + CHAR(10)
+ '--------------------------------------------------' + CHAR(13) + CHAR(10)
+ @EditText
UPDATE DIA
SET DIA.[STATUS] = 1
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONID] = @ACTIONIDORG
IF ISNULL(@GetAction, 0) <> 0
BEGIN
INSERT INTO
[dbo].[UndertakingLog]
([UndertakingID],
[FieldChanges],
[FromValue],
[ToValue],
[ByWho],
[ModifiedDate])
VALUES(@GetAction,
'Undertakings for ' + CHAR(13) + @CaseCode + CHAR(13) + ' has been Discharged',
'Undertaking changed From '+ CHAR(13) + CHAR(10) + @FullDescOld,
'Undertaking changed To ' + CHAR(13) + CHAR(10) + @FullDesc,
@UserName,
CONVERT(DATETIME,GETUTCDATE(),112))
END
UPDATE DIA
SET DIA.[TEXT1] = @EditText
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONID] = @ACTIONIDORG
END --NOT: IF (@Edit = 1)
UPDATE DIA
SET DIA.[DATE] = CASE ISNULL(@DischargeDate, CONVERT(DATETIME, ''))
WHEN CONVERT(DATETIME, '')
THEN CONVERT(DATETIME,
CONVERT(VARCHAR,
CONVERT(DATETIME,
@DiaryWarningDate),
112)
+ ' ' --PINO observation 2014-11-07
+ CONVERT(VARCHAR, --Why are we adding the current time
GETUTCDATE(), --to this date?
108))
ELSE CONVERT(DATETIME,
CONVERT(VARCHAR,
CONVERT(DATETIME,
@DischargeDate),
112)
+ ' ' --PINO observation 2014-11-07
+ CONVERT(VARCHAR, --Why are we adding the current time
GETUTCDATE(), --to this date?
108)) END,
DIA.[FNCODE] = @FeeEarner,
DIA.[TEAMCODE] = @TEAM,
DIA.[DUEDATE] = CASE @UndertakingsDate
WHEN '' THEN NULL
ELSE CONVERT(DATETIME,
@UndertakingsDate,
112) END,
DIA.[ACTIONCODE] = 'ADMUD',
DIA.[DYSTARTTIME] = @ClarionNOW,
DIA.[DYENDTIME] = @ClarionNOW,
DIA.[MILESTEONETYPE] = @UserCode,
DIA.[STATUS] = CASE @Edit
WHEN 2 THEN 1
ELSE 0 END,
DIA.[PRIORITY] = CASE @NeedsAttention WHEN 1 THEN 'H' ELSE 'N' END
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONID] = @ACTIONIDORG
UPDATE DEL
SET DEL.[HANDLER] = @FeeEarner,
DEL.[TEAM] = @TEAM,
DEL.[DATE] = CASE ISNULL(@DischargeDate, '')
WHEN '' THEN CONVERT(DATETIME,
CONVERT(VARCHAR,
CONVERT(DATETIME,
@DiaryWarningDate),
112)
+ ' ' --PINO observation 2014-11-07
+ CONVERT(VARCHAR, --Why are we adding the current time
GETUTCDATE(), --to this date?
108))
ELSE CONVERT(DATETIME,
CONVERT(VARCHAR,
CONVERT(DATETIME,
@DischargeDate),
112)
+ ' ' --PINO observation 2014-11-07
+ CONVERT(VARCHAR, --Why are we adding the current time
GETUTCDATE(), --to this date?
108)) END,
DEL.[TIME] = @ClarionNOW,
DEL.[DATER] = NULL,
DEL.[TIMER] = '',
DEL.[DUEDATE] = CASE @UndertakingsDate
WHEN '' THEN NULL
ELSE CONVERT(DATETIME,
@UndertakingsDate,
112) END,
DEL.[DUETIME] = @ClarionNOW,
DEL.[REVIEW] = '',
DEL.[OWNER] = 'Y',
DEL.[DELEGATE] = @UserCode,
DEL.[DELEGATESTATUS] = 0,
DEL.[ActionType] = 'U',
DEL.[FromHandler] = @UserCode,
DEL.[ReturnedBy] = '',
DEL.[DelType] = 'Created',
DEL.[STATUS] = CASE @Edit
WHEN 2 THEN 1
ELSE 0 END
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ACTIONIDORG
END -- IF (@Edit = 1 OR @Edit = 2)
IF (@Edit = 0)
BEGIN
SELECT @SEQ = ISNULL(MAX(UND.[SEQ]), 0) + 1
FROM [dbo].[Undertakings] UND
WHERE UND.[MATTER] = @CaseCode
INSERT INTO
[dbo].[Undertakings]
([SEQ],
[MATTER],
[DATE],
[DISCHARGEDATE],
[DischargeDescription],
[DischargedBy],
[TYPE],
[DESCRIPTION],
[WHO],
[VALUE],
[ActionID],
[GivenOrReceived],
[CommercialOrNon],
[AuthorisedByFE],
[UndertakingTo],
[Status],
[DealingNumber],
[Notes],
[Category],
[IsConditional],
[Condition],
[NeedsAttention],
[AddCommentLedger])
VALUES(@SEQ,
@CaseCode,
CONVERT(DATETIME,
@UndertakingsDate,
112),
CASE WHEN ISNULL(@DischargeDate, CONVERT(DATETIME, '')) = CONVERT(DATETIME, '')
THEN NULL
ELSE @Dischargedate END,
@DischargeDescription,
CASE WHEN ISNULL(@DischargeDate, CONVERT(DATETIME, '')) = CONVERT(DATETIME, '')
THEN NULL
ELSE @UserCode END,
@Type,
@Details,
@Who,
@Value,
@ACTIONID2,
@GivenReceived,
@CommercialOrNon,
@FeeEarner,
@UndertakingTo,
@StatusID,
@DealingNo,
@Notes,
@Category,
@IsConditional,
@Condition,
@NeedsAttention,
@Ledger)
SET @Result = 1
END -- IF (@Edit = 0)
ELSE -- NOT IF (@Edit = 0)
BEGIN
UPDATE UND
SET UND.[MATTER] = @CaseCode,
UND.[DATE] = CONVERT(DATETIME,
@UndertakingsDate,
112),
UND.[DISCHARGEDATE] = CASE WHEN ISNULL(@DischargeDate, CONVERT(DATETIME, '')) = CONVERT(DATETIME, '')
THEN NULL
ELSE @Dischargedate END,
UND.[TYPE] = @Type,
UND.[DESCRIPTION] = @Details,
UND.[WHO] = @Who,
UND.[VALUE] = @Value,
UND.[DischargeDescription] = @DischargeDescription,
UND.[GivenOrReceived] = @GivenReceived,
UND.[CommercialOrNon] = @CommercialOrNon,
UND.[AuthorisedByFE] = @FeeEarner,
UND.[UndertakingTo] = @UndertakingTo,
UND.[Status] = @StatusID,
UND.[DealingNumber] = @DealingNo,
UND.[Notes] = @Notes,
UND.[Category] = @Category,
UND.[IsConditional] = @IsConditional,
UND.[Condition] = @Condition,
UND.[NeedsAttention] = @NeedsAttention,
UND.[AddCommentLedger] = @Ledger
FROM [dbo].[Undertakings] UND
WHERE UND.[RECORDID] = @RecordId
SET @Result = 2
SELECT @SEQ = UND.[SEQ]
FROM [dbo].[Undertakings] UND
WHERE UND.[RECORDID] = @RecordId
END -- NOT IF (@Edit = 0)
IF(@Status1 = 1)
BEGIN
BEGIN
DECLARE @Narratives VARCHAR(80)
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @YEAR INT
DECLARE @PERIOD INT
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N' SELECT @YEAR = [CTL].[YEAR],
@PERIOD = [CTL].[CURPER]
FROM [dbo].[control] [CTL]'
END
ELSE
BEGIN
SET @NCOMMAND = N' SELECT @YEAR = [CTL].[NumValue]
FROM [dbo].[CtrlNum] [CTL]
WHERE [CTL].[Code] = ''CurYear''
SELECT @PERIOD = [CTL].[NumValue]
FROM [dbo].[CtrlNum] [CTL]
WHERE [CTL].[Code] = ''CurPeriod'''
END
EXEC sp_executesql @NCOMMAND, N'@YEAR INT OUTPUT, @PERIOD INT OUTPUT', @YEAR OUTPUT, @PERIOD OUTPUT
SET @YEAR = ISNULL(@YEAR, DATEPART(YEAR, GETUTCDATE()))
SET @PERIOD = ISNULL(@PERIOD, DATEPART(YEAR, GETUTCDATE()))
IF (@Edit = 2)
BEGIN
SET @Narratives = 'Undertaking No:'+ CAST(@SEQ AS VARCHAR(10)) +' DISCHARGED: '+ CAST (@Details AS VARCHAR(40))
END
ELSE
BEGIN
SET @Narratives = 'Undertaking No:'+ CAST(@SEQ AS VARCHAR(10)) +' : ('+ CAST(@Value AS VARCHAR(20)) +') '+ CAST (@Details AS VARCHAR(40))
END
IF dbo.[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
INSERT
INTO [dbo].[MatterLedger]
([MATTER],
[DATE],
[REF],
[NARR],
[VALUED],
[VALUEO],
[VALUEC],
[FEE],
[PER],
[YEAR],
[CLIENT],
[VALUECC],
[VALUECD],
[DEPOSITTYPE],
[CURVALUED],
[CURVALUEO],
[CURVALUEC],
[CURVALUECC],
[CURVALUECD],
[BILLED],
[BILLINGYEAR],
[BILLINGPERIOD],
[BILLEDOUTLAYVALUE],
[INVOICENO],
[INCLUDEINBILL])
VALUES(@CaseCode,
CASE WHEN @Edit = 2 THEN @DischargeDate ELSE @UndertakingsDate END,
@UserCode,
@Narratives,
0.00, --[VALUED]
0.00, --[VALUEO]
0.00, --[VALUEC]
@CurrentFee, --[Fee]
@PERIOD, --[Per]
@YEAR, --[Year]
'''', --[Client]
0.00, --[VALUECC]
0.00, --[VALUECD]
'''', --[DepositType]
0.00, --[CURVALUED]
0.00, --[CURVALUEO]
0.00, --[CURVALUEC]
0.00, --[CURVALUECC]
0.00, --[CURVALUECD]
'''', --[Billed]
0, --[BILLINGYEAR]
0, --[BILLINGPERIOD]
0.00, --[BILLEDOUTLAYVALUE]
0, --[INVOICENO]
0) --[INCLUDEINBILL]'
END --SAM3
ELSE
BEGIN
SET @NCOMMAND = N'
INSERT
INTO [dbo].[Transactions]
([BatchNo],
[XnType],
[RecType],
[LineType],
[PostRef],
[ParentRef],
[TransDate],
[MatterCode],
[Narrative],
[PostingPeriod],
[PostingYear],
[EntryDate],
[UpdateDate],
[EnteredBy],
[UpdateBy],
[Posted],
[CorrectionInd])
VALUES(0,
''U'',
''U'',
''U'',
0,
0,
CASE WHEN @Edit = 2 THEN @DischargeDate ELSE @UndertakingsDate END,
@CaseCode,
@Narratives,
@PERIOD,
@YEAR,
GETUTCDATE(),
GETUTCDATE(),
@CurrentFee,
@CurrentFee,
''Y'',
''L'')'
END
EXEC sp_executesql @NCOMMAND, N'@CaseCode VARCHAR(20), @Edit INT, @DischargeDate DATETIME, @UndertakingsDate DATETIME, @UserCode VARCHAR(10), @Narratives VARCHAR(80), @CurrentFee VARCHAR(10), @YEAR INT, @PERIOD INT', @CaseCode, @Edit, @DischargeDate, @UndertakingsDate, @UserCode, @Narratives, @FeeEarner, @YEAR, @PERIOD
END -- NOT IF (@Edit = 0)
END
SET @UndertakingID = (SELECT MAX(RECORDID) FROM Undertakings)
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_LinkMatterInsert',N'P')IS NOT NULL
DROP PROCEDURE KAAS_LinkMatterInsert
GO
CREATE PROCEDURE KAAS_LinkMatterInsert
(
@PrimeMatter NVARCHAR(20),--@PrimeMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters]
@LinkedMatter NVARCHAR(20),--@LinkedMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters]
@RelationShip NVARCHAR(100),--@RelationShip MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters]
@Result TINYINT OUTPUT
)
AS
/*
Created By : Arun V
Date : 29Oct2014
Description : This procedure is used to Insert matter links
Modification History
-----------------------------------------------------
Date | Modified By | Description
-----------------------------------------------------
22 May 2019 Arun Copied from ky_NETLinkMatterInsert
*/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS(SELECT TOP 1 1 FROM LinkedMatters WHERE PrimeMatter = @PrimeMatter AND LinkedMatter = @LinkedMatter )
BEGIN
--Insert Link A
INSERT INTO LinkedMatters(PrimeMatter, LinkedMatter, Relationship)
VALUES(@PrimeMatter, @LinkedMatter, @RelationShip )
--Insert Link B
INSERT INTO LinkedMatters(PrimeMatter, LinkedMatter, Relationship)
VALUES(@LinkedMatter,@PrimeMatter, @RelationShip )
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 2
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_LinkMatterUpdate',N'P')IS NOT NULL
DROP PROCEDURE KAAS_LinkMatterUpdate
GO
CREATE PROCEDURE KAAS_LinkMatterUpdate
(
@RecordId INT,
@PrimeMatter NVARCHAR(20),--@PrimeMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters]
@OldLinkedMatter NVARCHAR(20),--@OldLinkedMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters]
@LinkedMatter NVARCHAR(20),--@LinkedMatter MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters]
@RelationShip NVARCHAR(100),--@RelationShip MUST be NVARCHAR as it's defined as such in [dbo].[LinkedMatters]
@Result INT OUTPUT
)
AS
/*
Created By : Arun V
Date : 29Oct2014
Description : This procedure is used to update the matter link
Modification History
-----------------------------------------------------
Date | Modified By | Description
-----------------------------------------------------
22 May 2019 Arun V Copied from ky_NETLinkMatterUpdate
*/
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT TOP 1 1 FROM LinkedMatters WHERE RecordId = @RecordId )
BEGIN
--Insert Link A
UPDATE LinkedMatters SET LinkedMatter = @LinkedMatter, Relationship = @RelationShip
WHERE RecordId = @RecordId AND PrimeMatter = @PrimeMatter
----Insert Link B
UPDATE LinkedMatters SET PrimeMatter = @LinkedMatter, Relationship = @RelationShip
WHERE LinkedMatter = @PrimeMatter and PrimeMatter = @OldLinkedMatter
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_ListCaseAssociateCases'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ListCaseAssociateCases]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ListCaseAssociateCases]
(@NameCode VARCHAR(6),
@SearchText VARCHAR(4000) = '',
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL)
AS
/*************************************************************************************************************
* *
* Stored Procedure Name : KAAS_ListCaseAssociateCases *
* Copied From : [dbo].[ky_NETSPListCaseAssociateCases] *
* *
* Lists the cases to which this Associate is linked *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * First compatible version: 5.6.4.1 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2018-11-30 Pino Carafa Created *
* 2019-06-04 Vinodhan K Created KAAS_ListCaseAssociateCases *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#FoundTable
FROM
(SELECT
[CC].[CASECODE] AS [CaseCode],
[MAT].[ClientCode] AS [ClientCode],
RTRIM(ISNULL([CON].[Name], '')) AS [ClientName],
RTRIM(ISNULL([MAT].[Description], '')) AS [MatterDescription],
CASE
WHEN ISNULL([MAT].[Closed], '') = 'Y'
THEN 'Y'
ELSE 'N'
END AS [Closed]
FROM
[dbo].[CaseContacts] [CC]
INNER JOIN
[dbo].[matters] [MAT]
INNER JOIN
[dbo].[Contacts] [CON]
ON
[CON].[Code] = [MAT].[ClientCode]
ON
[MAT].[Code] = [CC].[CASECODE]
WHERE
[CC].[NAMECODE] = @NameCode
AND
(
[CC].[CASECODE] LIKE '%' + @SearchText + '%'
OR
[MAT].[ClientCode] LIKE '%' + @SearchText + '%'
OR
RTRIM(ISNULL([CON].[Name], '')) LIKE '%' + @SearchText + '%'
OR
ISNULL([MAT].[Closed], '') LIKE '%' + @SearchText + '%'
)) AS FoundTable
SELECT
*
FROM
#FoundTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Row_Number' THEN [Row_Number]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Row_Number' THEN [Row_Number]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'CaseCode' THEN [CaseCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'CaseCode' THEN [CaseCode]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientCode' THEN [ClientCode]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientCode' THEN [ClientCode]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ClientName' THEN [ClientName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'MatterDescription' THEN [MatterDescription]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'MatterDescription' THEN [MatterDescription]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Closed' THEN [Closed]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Closed' THEN [Closed]
END
END DESC
SELECT
COUNT([Row_Number]) AS TotalRecords
FROM
#FoundTable
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_ListCaseContacts'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ListCaseContacts]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ListCaseContacts]
(@CaseCode VARCHAR(20),
@ForEmail BIT = 1,
@Number INT = 0,
@Status VARCHAR(1) = '')
AS
/*************************************************************************************************************
* *
* [dbo].[KAAS_ListCaseContacts] *
* *
* List Case Contacts for OWA Add-in *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * Original: [dbo].[ky_NETSPListCaseContacts] * *
* * First compatible version: 5.7.2.1 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2019-04-02 Pino Carafa Created *
* 2019-04-30 Pino Carafa Added Subject search and Date Range *
* 2015-12-03 Pino Carafa Make it usable for Framework, too *
* 2016-07-21 Suriya M KEYD-3783 - When you add a new strong room Deed file to a case, *
* the Retired Associates are showing in the *
* "From Whom" & "To Whom" fields of "DEED" tab. *
* 2016-07-22 Pino Carafa Set default value for Status to ensure Outlook Add-in remains unaffected *
* 2018-05-01 Pino Carafa KEYD-4573 Add Secondary Email *
* 2018-05-01 Pino Carafa Copied to KAAS SPs *
* *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @FromWhom VARCHAR(10)
IF(@Status = 'T')
BEGIN
SET @FromWhom = RTRIM(ISNULL((SELECT [FMI].[TOWHOCODE]
FROM [dbo].[FileManagerItems] [FMI]
WHERE [FMI].[NUMBER] = @Number), ''))
END
ELSE
BEGIN
SET @FromWhom = RTRIM(ISNULL((SELECT [FMI].[FROMWHOCODE]
FROM [dbo].[FileManagerItems] [FMI]
WHERE [FMI].[NUMBER] = @Number), ''))
END
SELECT [RES].[CODE],
CASE WHEN [RES].[NAME] = ''
THEN [RES].[COMPANY]
ELSE [RES].[NAME] END AS [NAME],
[RES].[COMPANY],
[RES].[EMAIL],
[RES].[NAMECODE],
[RES].[CASECODE],
[RES].[TYPE],
CASE WHEN RTRIM(ISNULL([AST].[DESCRIPTION], '')) = ''
THEN [RES].[TYPE]
ELSE RTRIM(ISNULL([AST].[DESCRIPTION], '')) END AS [TYPEDESC],
LTRIM( CASE WHEN [RES].[NAME] = ''
THEN ''
WHEN [RES].[NAME] = [RES].[COMPANY]
THEN ''
ELSE [RES].[NAME] END
+ CASE WHEN [RES].[COMPANY] = ''
THEN ''
ELSE ' (' + [RES].[COMPANY] + ')' END) AS [NAMECOMP]
FROM (SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CAN].[CODE], ''))) AS [CODE],
CONVERT(VARCHAR(300), RTRIM(ISNULL([CAN].[NAME], ''))) AS [NAME],
CONVERT(VARCHAR(50), RTRIM(ISNULL([CAN].[COMPANY], ''))) AS [COMPANY],
CONVERT(VARCHAR(100), RTRIM(ISNULL([CAN].[EMAIL], ''))) AS [EMAIL],
CONVERT(VARCHAR(10), RTRIM(ISNULL([CC].[NAMECODE], ''))) AS [NAMECODE],
CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CASECODE], ''))) AS [CASECODE],
CONVERT(VARCHAR(20), RTRIM(ISNULL([CAN].[TYPE], ''))) AS [TYPE]
FROM [dbo].[CaseContacts] [CC]
INNER JOIN [dbo].[CaseAssociatesNames] [CAN]
ON [CAN].[CODE] = [CC].[NameCODE]
AND ( @ForEmail = 0
OR RTRIM(ISNULL([CAN].[EMAIL], '')) <> '')
WHERE [CC].[CASECODE] = @CaseCode
AND ( ISNULL([CC].Retired,'N') <> 'Y'
OR [CC].NAMECODE = CASE @Number
WHEN 0 THEN ''
ELSE @FromWhom END)
UNION
SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CLCODE], ''))) AS CODE,
CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[FIRSTNAME], ''))
+ ' '
+ RTRIM(ISNULL([CTC].[SURNAME], ''))) AS [NAME],
CONVERT(VARCHAR(50), RTRIM(ISNULL([CTC].[CLNAMECON], ''))) AS [COMPANY],
CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[EmailAddress], ''))) AS [EMAIL],
CONVERT(VARCHAR(10), '') AS [NAMECODE],
CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE],
CONVERT(VARCHAR(20), 'Client Contact') AS [TYPE]
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[ClientContacts] [CTC]
ON [CTC].[CLCODE] = [MAT].[ClientCode]
AND ( @ForEmail = 0
OR RTRIM(ISNULL([CTC].[EmailAddress], '')) <> '')
WHERE [MAT].[CODE] = @CaseCode
UNION
SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CAN].[CODE], ''))) AS [CODE],
CONVERT(VARCHAR(300), RTRIM(ISNULL([CAC].[NAME], ''))) AS [NAME],
CONVERT(VARCHAR(50), RTRIM(ISNULL([CAN].[COMPANY], ''))) AS [COMPANY],
CONVERT(VARCHAR(100), RTRIM(ISNULL([CAC].[EMAIL], ''))) AS [EMAIL],
CONVERT(VARCHAR(10), RTRIM(ISNULL([CC].[NAMECODE], ''))) AS [NAMECODE],
CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CASECODE], ''))) AS [CASECODE],
CONVERT(VARCHAR(20), RTRIM(ISNULL([CC].[CONTYPE], ''))) AS [TYPE]
FROM [dbo].[CaseContacts] [CC]
INNER JOIN [dbo].[CaseAssociatesNames] [CAN]
INNER JOIN [dbo].[CaseAssociatesContacts] [CAC]
ON [CAC].[NAMECODE] = [CAN].[CODE]
AND ( @ForEmail = 0
OR RTRIM(ISNULL([CAC].[EMAIL], '')) <> '')
ON [CAN].[CODE] = [CC].[NameCODE]
WHERE [CC].[CASECODE] = @CaseCode
UNION
SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CODE], ''))) AS CODE,
CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[Name], ''))) AS [NAME],
CONVERT(VARCHAR(50), '') AS [COMPANY],
CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[email], ''))) AS [EMAIL],
CONVERT(VARCHAR(10), '') AS [NAMECODE],
CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE],
CONVERT(VARCHAR(20), 'Client') AS [TYPE]
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[Contacts] CTC
ON [CTC].[CODE] = [MAT].[ClientCode]
AND ( @ForEmail = 0
OR RTRIM(ISNULL([CTC].[email], '')) <> '')
WHERE [MAT].[CODE] = @CaseCode
UNION
SELECT CONVERT(VARCHAR(10), RTRIM(ISNULL([CTC].[CODE], ''))) AS CODE,
CONVERT(VARCHAR(300), RTRIM(ISNULL([CTC].[Name], ''))) AS [NAME],
CONVERT(VARCHAR(50), '') AS [COMPANY],
CONVERT(VARCHAR(100), RTRIM(ISNULL([CTC].[SecondaryEmail],
''))) AS [EMAIL],
CONVERT(VARCHAR(10), '') AS [NAMECODE],
CONVERT(VARCHAR(20), @CaseCode) AS [CASECODE],
CONVERT(VARCHAR(20), 'Client') AS [TYPE]
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[Contacts] CTC
ON [CTC].[CODE] = [MAT].[ClientCode]
AND ( @ForEmail = 0
OR RTRIM(ISNULL([CTC].[SecondaryEmail], '')) <> '')
WHERE [MAT].[CODE] = @CaseCode) [RES]
LEFT OUTER JOIN [dbo].[AssociateTypes] [AST]
ON [AST].[CODE] = [RES].[TYPE]
ORDER BY CASE WHEN [RES].[NAME] = ''
THEN [RES].[COMPANY]
ELSE [RES].[NAME] END,
[RES].[TYPE]
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_ListDocumentClasses',N'P')IS NOT NULL
DROP PROCEDURE KAAS_ListDocumentClasses
GO
CREATE PROCEDURE
[dbo].[KAAS_ListDocumentClasses]
AS
/*****************************************************************************
*
* ky_NETSPListDocumentClasses
*
* Lists the available Keyhouse Document Classes.
*
* Modification History
* 2016-10-19 Pino Carafa Imported into Framework
* 2016-10-19 Pino Carafa Removed dynamic code to deal with SAM4
* SAM4 now also has a Retired column
* 2019-05-20 Arun Copied from ky_NETSPListDocumentClasses
*****************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(DCL.[CLASSCODE], '')) AS [CLASSCODE],
RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')) AS [CLASSDESCRIPTION],
CASE WHEN RTRIM(ISNULL(DCL.[RETIRED], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired]
FROM [dbo].[DocumentClasses] DCL
ORDER BY RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], ''))
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_ListDocumentClassesForCase'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ListDocumentClassesForCase]
END
GO
CREATE PROCEDURE [dbo].[KAAS_ListDocumentClassesForCase] (@CASECODE VARCHAR(20))
AS
/*******************************************************************************************************
* Lists only the document classes and descriptions that are actually present in the Case *
* that was passed in. *
* *
* Stored Procedure Name : [dbo].[KAAS_ListDocumentClassesForCase] *
* Copied from : [dbo].[ky_NETSPListDocumentClassesForCase] *
* *
* Modification History: *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @classes TABLE
([id] INT IDENTITY(1, 1),
[CLASSCODE] VARCHAR(3),
[CLASSDESCRIPTION] VARCHAR(40),
[Retired] CHAR(1))
INSERT INTO @classes
([CLASSCODE],
[CLASSDESCRIPTION],
[Retired])
VALUES ('',
'',
'N')
IF RTRIM(ISNULL(@CASECODE, '')) = ''
BEGIN
INSERT INTO @classes
([CLASSCODE])
SELECT DCL.[CLASSCODE]
FROM [dbo].[DocumentClasses] DCL
WHERE RTRIM(ISNULL(DCL.[CLASSCODE], '')) <> ''
ORDER BY RTRIM(ISNULL(DCL.[CLASSCODE], ''))
END
ELSE
BEGIN
INSERT INTO @classes
([CLASSCODE])
SELECT DISTINCT
RTRIM(ISNULL(DAT.[DOCCLASS], '')) AS [DOCCLASS]
FROM [dbo].[Diary] DIA
INNER JOIN [dbo].[DiaryAttachments] DAT
ON DAT.[DiaryID] = DIA.[ActionID]
AND RTRIM(ISNULL(DAT.[DOCCLASS], '')) <> ''
WHERE DIA.[CASECODE] = @CASECODE
ORDER BY RTRIM(ISNULL(DAT.[DOCCLASS], ''))
END
UPDATE CL
SET CL.[CLASSDESCRIPTION] = RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '')),
CL.[Retired] = Case WHEN RTRIM(ISNULL(DCL.[Retired], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END
FROM @classes CL
INNER JOIN [dbo].[DocumentClasses] DCL
ON DCL.[CLASSCODE] = CL.[CLASSCODE]
AND RTRIM(DCL.[CLASSCODE]) <> ''
DELETE CL
FROM @classes CL
WHERE CL.[Retired] = 'Y'
SELECT [CLASSCODE],
RTRIM(ISNULL([CLASSDESCRIPTION], '*MISSING DOCUMENT CLASS*')) AS [CLASSDESCRIPTION]
FROM @classes
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_ListItemLocations'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ListItemLocations]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ListItemLocations]
AS
/******************************************************************************
*
* Stored Procedure Name : KAAS_ListItemLocations
* Copied from : ky_NETSPListItemLocations
* Lists all matter locations (for archive tab)
*
* Modification History
* 2015-06-25 Pino Carafa Created
* 2015-06-25 Pino Carafa Different Item Locations can have the
* same name. Add code between brackets
* after locations that have duplicates.
* 2016-02-04 Arun Added Retired filter in where condition
* 2019-07-16 Vinodhan K Created KAAS_ListItemLocations
******************************************************************************/
BEGIN
SELECT ITL.[CODE] AS [Code],
CASE WHEN RTRIM(ITL.[DESCRIPTION]) = ''
THEN RTRIM('Unknown, code: ' + ITL.[CODE])
ELSE RTRIM(ITL.[DESCRIPTION]) END
+ CASE WHEN DUPS.[TOTAL] = 1
THEN ''
ELSE ' (' + RTRIM(ITL.[CODE]) + ')' END AS [Description],
ITL.[FULLYN] AS [FullYN]
FROM [dbo].[ItemLocations] ITL
CROSS APPLY (SELECT COUNT(1) AS [TOTAL]
FROM [dbo].[ItemLocations] ITLD
WHERE ITLD.[DESCRIPTION] = ITL.[DESCRIPTION]) DUPS
WHERE ISNULL(ITL.Retired,'N') <> 'Y'
ORDER BY CASE WHEN RTRIM(ITL.[DESCRIPTION]) = ''
THEN RTRIM('Unknown, code: ' + ITL.[CODE])
ELSE RTRIM(ITL.[DESCRIPTION]) END
+ CASE WHEN DUPS.[TOTAL] = 1
THEN ''
ELSE ' (' + RTRIM(ITL.[CODE]) + ')' END
END
GO
IF OBJECT_ID(N'KAAS_ListNarratives', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_ListNarratives]
END
GO
CREATE PROCEDURE [dbo].[KAAS_ListNarratives]
AS
/*****************************************************************************
* List cheque/ledger narratives
*
* Stored Procedure Name : KAAS_ListNarratives
* Copied From : ky_NETSPListNarratives
*
* Modification history:
* ????-??-?? ??? Created
* 2019-08-06 John Ginnane Added to SVN
* 2019-08-06 Vinodhan Created KAAS_ListNarratives
*****************************************************************************/
BEGIN
SELECT RTRIM(ISNULL([NAR].[CODE], '')) AS [Code],
RTRIM(ISNULL([NAR].[NARRATIVE], '')) AS [Narrative]
FROM [dbo].[Narratives] AS [NAR]
ORDER BY RTRIM(ISNULL([NAR].[NARRATIVE], '')) ASC
END
GO
IF OBJECT_ID(N'KAAS_ListSuppliers', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_ListSuppliers]
END
GO
CREATE PROCEDURE [dbo].[KAAS_ListSuppliers]
AS
/*********************************************************
* List suppliers
*
* Stored Procedure Name : KAAS_ListSuppliers
* Copied From : ky_NETSPListSuppliers
* Modification history:
* ????-??-?? ??? Created
* 2019-08-06 John Ginnane Added to SVN
* 2019-08-06 Vinodhan Created KAAS_ListSuppliers
********************************************************/
BEGIN
DECLARE @COMMAND VARCHAR(MAX)
IF EXISTS(SELECT TOP 1 1
FROM [sys].[objects] SO
INNER JOIN [sys].[columns] SC
ON SC.[object_id] = SO.[object_id]
AND SC.[name] = 'Retired'
WHERE SO.[name] = 'Suppliers'
AND SO.[type] = 'U')
BEGIN
SET @COMMAND = '
SELECT RTRIM(ISNULL(SUP.[CODE], '''')) As [Code],
RTRIM(ISNULL(SUP.[NAME], '''')) AS [Name],
RTRIM(ISNULL(SUP.[Address], '''')) AS [Address],
RTRIM(ISNULL(SUP.[NOMINAL], '''')) AS [Nominal],
CASE WHEN RTRIM(ISNULL(SUP.[Retired], '''')) = ''Y''
THEN ''Y''
ELSE ''N'' END AS [Retired],
CASE WHEN RTRIM(ISNULL(SUP.[DEFTPSTATUS], '''')) = ''Y''
THEN ''Y''
ELSE ''N'' END AS [ThirdParty]
FROM [dbo].[Suppliers] SUP'
END
ELSE
BEGIN
SET @COMMAND = '
SELECT RTRIM(ISNULL(SUP.[CODE], '''')) As [Code],
RTRIM(ISNULL(SUP.[NAME], '''')) AS [Name],
RTRIM(ISNULL(SUP.[Address], '''')) AS [Address],
RTRIM(ISNULL(SUP.[NOMINAL], '''')) AS [Nominal],
''N'' AS [Retired],
CASE WHEN RTRIM(ISNULL(SUP.[DEFTPSTATUS], '''')) = ''Y''
THEN ''Y''
ELSE ''N'' END AS [ThirdParty]
FROM [dbo].[Suppliers] SUP'
END
EXEC (@COMMAND)
END
GO
--Delete obsolete procedure
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'ky_NETFetchLoadgvAssociateParties'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[ky_NETFetchLoadgvAssociateParties]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_LoadAssociateParties'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_LoadAssociateParties]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_LoadAssociateParties]
(@query VARCHAR(MAX),
@PageNumber int,
@PageSize int)
AS
/*******************************************************************************************************
* This procedure is used load the data for add professional page. *
* 1. CaseAssociate grid. *
* 2. Case Associate type list box. *
* *
* Stored Procedure Name : [dbo].[KAAS_LoadAssociateParties] *
* Copied from : [dbo].[ky_NETSPLoadAssociateParties] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
* 2019-06-10 Vinodhan K Searching, Paging and Sorting functionality added *
*******************************************************************************************************/
BEGIN
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
SET @PageSize = ISNULL(@PageSize, 0) ; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
SET @query = CASE WHEN ISNULL(@query, '') = '' THEN '' ELSE @query END
SET NOCOUNT ON
DECLARE @lstAssociateTypeCode VARCHAR(20)
DECLARE @orderby VARCHAR(20)
DECLARE @order NVARCHAR(5)
DECLARE @return INT
DECLARE @search VARCHAR(202)
DECLARE @Retired VARCHAR(1)
DECLARE @MustInclude VARCHAR(6)
DECLARE @iSearch INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSearch OUTPUT, @query
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSearch OUTPUT, ''
END CATCH
BEGIN TRY
SELECT @lstAssociateTypeCode = SRC.[AssociateTypeCode],
@orderby = SRC.[OrderBy],
@order = SRC.[Order],
@return = SRC.[return],
@search = SRC.[search],
@Retired = SRC.[Retired],
@MustInclude = SRC.[MustInclude]
FROM OPENXML(@iSearch, 'search')
WITH ([AssociateTypeCode] VARCHAR(20) '@associatetype',
[OrderBy] VARCHAR(20) '@orderby',
[Order] NVARCHAR(4) '@order',
[return] INT '@return',
[search] VARCHAR(200) '@search',
[Retired] VARCHAR(1) '@Retired',
[MustInclude] VARCHAR(6) '@MustInclude') SRC
END TRY
BEGIN CATCH
END CATCH
EXEC sp_xml_removedocument @iSearch
SET @lstAssociateTypeCode = ISNULL(@lstAssociateTypeCode, '')
SET @orderby = ISNULL(@orderby, 'CODE')
SET @order = ISNULL(@order, N' ASC')
SET @search = ISNULL(@search, '')
SET @Retired = CASE WHEN ISNULL(@Retired, 'N') = 'Y' THEN 'Y' ELSE 'N' END
SET @MustInclude = ISNULL(@MustInclude, '')
IF (@order = N'DESC')
BEGIN
SET @order = N' DESC'
END
ELSE
BEGIN
SET @order = N' ASC'
END
SET @return = ISNULL(@return, 500)
DECLARE @NCOMMAND NVARCHAR(MAX)
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO #FoundTable
FROM
(
SELECT TOP (@return)
RTRIM(ISNULL([CAN].[CODE], '''')) AS [NAMECODE],
UPPER(RTRIM(ISNULL([CAT].[TYPECODE], ''''))) AS [TYPECODE],
RTRIM(ISNULL([TYP].[Category], '''')) AS [Category],
CASE WHEN RTRIM(ISNULL([CAN].[COMPANY], '''')) = ''''
THEN RTRIM(ISNULL([CAN].[NAME], ''''))
ELSE LTRIM(RTRIM(ISNULL([CAN].[NAME], '''')) + '' ('' +
RTRIM(ISNULL([CAN].[COMPANY], '''')) + '')'') END AS [NAMECOMP],
RTRIM(ISNULL([CAT].[SEARCHCODE], '''')) AS [SEARCHCODE],
RTRIM(ISNULL([CAN].[CODE], '''')) AS [CODE],
ISNULL([TYP].[Description],'''') AS [TYPE],
RTRIM(ISNULL([CAN].[NAME], '''')) AS [NAME],
RTRIM(ISNULL([CAN].[SALUTATION], '''')) AS [SALUTATION],
RTRIM(ISNULL([CAN].[TITLE], '''')) AS [TITLE],
RTRIM(ISNULL([CAN].[COMPANY], '''')) AS [COMPANY],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CAN].[ADDRESS], '''')), 200) AS [ADDRESS],
RTRIM(ISNULL([CAN].[FORENAME], '''')) AS [FORENAME],
RTRIM(ISNULL([CAN].[SURNAME], '''')) AS [SURNAME],
RTRIM(ISNULL([CAN].[PHONENO], '''')) AS [PHONENO],
RTRIM(ISNULL([CAN].[FAXNO], '''')) AS [FAXNO],
RTRIM(ISNULL([CAN].[HOME], '''')) AS [HOME],
RTRIM(ISNULL([CAN].[MOBILENO], '''')) AS [MOBILENO],
RTRIM(ISNULL([CAN].[EMAIL], '''')) AS [EMAIL],
RTRIM(ISNULL([CAN].[WEBADDRESS], '''')) AS [WEBADDRESS],
RTRIM(ISNULL([CAN].[SSNUMBER], '''')) AS [SSNUMBER],
RTRIM(ISNULL([CAN].[LEGALNAME], '''')) AS [LEGALNAME],
RTRIM(ISNULL([CAN].[LEGALADDRESS], '''')) AS [LEGALADDRESS],
RTRIM(ISNULL([CAN].[COURTNO], '''')) AS [COURTNO],
RTRIM(ISNULL([CAN].[COURTAREA], '''')) AS [COURTAREA],
RTRIM(ISNULL([CAN].[TAX], '''')) AS [TAX],
RTRIM(ISNULL([CAN].[DXREF], '''')) AS [DXREF],
CONVERT(VARCHAR(10), [CAN].DOB, 112) AS [DOB],
RTRIM(ISNULL([CAN].[MARTIALSTATUS],'''')) AS [MARTIALSTATUS],
ISNULL(CONVERT(VARCHAR(10), [CAN].[MARRIAGEDATE], 112), '''') AS [MARRIAGEDATE],
ISNULL(CONVERT(VARCHAR(10), [CAN].[DECEASED] ,112), '''') AS [DECEASED],
ISNULL(CONVERT(VARCHAR(10), [CAN].[SEPARATED] ,112), '''') AS [SEPARATED],
RTRIM(ISNULL([CAN].[HOWSEPARATED], '''')) AS [HOWSEPARATED],
ISNULL(CONVERT(VARCHAR(10), [CAN].[DATESEPARATED] ,112), '''') AS [DATESEPARATED],
ISNULL(CONVERT(VARCHAR(10), [CAN].[DECEASEDDATE] ,112), '''') AS [DECEASEDDATE],
RTRIM(ISNULL([CAN].[OCCUPATION], '''')) AS [OCCUPATION],
RTRIM(ISNULL([CAN].[SEARCH], '''')) AS [SEARCH],
ISNULL([CAN].[CONTACTNO], 0) AS [CONTACTNO],
RTRIM(ISNULL([CAN].[NOTES], '''')) AS [NOTES],
RTRIM(ISNULL([CAN].[AREA], '''')) AS [AREA],
RTRIM(ISNULL([CAN].[TOWN], '''')) AS [TOWN],
RTRIM(ISNULL([CAN].[GENDER],'''')) AS [GENDER],
RTRIM(ISNULL([CAN].[ADDRESSTYPE], '''')) AS [ADDRESSTYPE],
RTRIM(ISNULL([CAN].[SERVICETYPE], '''')) AS [SERVICETYPE],
RTRIM(ISNULL([CAN].[CRONUMBER], '''')) AS [CRONUMBER],
RTRIM(ISNULL([CAN].[VATNUMBER], '''')) AS [VATNUMBER],
ISNULL(CAT.Retired,''N'') AS [Retired]
FROM [dbo].[CaseAssociatesNames] [CAN]
INNER JOIN [dbo].[CaseAssoicatesTypes] CAT
INNER JOIN [dbo].[AssociateTypes] TYP
ON TYP.[CODE] = CAT.[TYPECODE]
ON CAT.[NAMECODE] = CAN.[CODE]
WHERE RTRIM(ISNULL([CAN].[CODE], '''')) <> ''''
AND RTRIM(ISNULL([CAN].[NAME], '''')) <> ''''
AND ISNULL(CAT.Retired,''N'') IN (''N'',''' + @Retired + ''')'
IF (RTRIM(ISNULL(@lstAssociateTypeCode, '')) <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND [CAT].[TYPECODE] = @lstAssociateTypeCode'
END
IF @search <> ''
BEGIN
IF (CHARINDEX('%', @search) <> 1)
BEGIN
SET @search = '%' + @search
END
IF (SUBSTRING(@search, LEN(@search), 1) <> '%')
BEGIN
SET @search = @search + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND ( CAN.[NAME] LIKE @search
OR CAN.[CODE] LIKE @search
OR CAN.[COMPANY] LIKE @search
OR CAN.[SALUTATION] LIKE @search
OR CAN.[ADDRESS] LIKE @search
OR CAN.[LEGALNAME] LIKE @search
OR CAN.[LEGALADDRESS] LIKE @search
OR CAN.[FORENAME] LIKE @search
OR CAN.[SURNAME] LIKE @search
OR CAN.[PHONENO] LIKE @search
OR CAN.[FAXNO] LIKE @search
OR CAN.[HOME] LIKE @search
OR CAN.[MOBILENO] LIKE @search
OR CAN.[EMAIL] LIKE @search
OR CAT.[SEARCHCODE] LIKE @search
OR CAN.[SEARCH] LIKE @search
OR CAN.[TITLE] LIKE @search
OR CAN.[WEBADDRESS] LIKE @search
OR CAN.[NOTES] LIKE @search
OR CASE WHEN @MustInclude = ''''
THEN 0
WHEN @MustInclude = CAN.[CODE]
THEN 1
ELSE 0 END = 1) '
END
SET @NCOMMAND = @NCOMMAND + N'
ORDER BY CASE WHEN @MustInclude = ''''
THEN 1
WHEN @MustInclude = CAN.[CODE]
THEN 0
ELSE 1 END'
IF (ISNULL(@orderby, '') = '' OR RTRIM(LTRIM(@orderby)) = '')
BEGIN
SET @orderby = 'CODE';
END
IF (ISNULL(@order, '') = '' OR RTRIM(LTRIM(@order)) = '')
BEGIN
SET @order = 'ASC';
END
SET @NCOMMAND = @NCOMMAND + ') AS FoundTable
SELECT *
FROM #FoundTable
WHERE (@StartRow IS NULL
OR
([Row_Number] BETWEEN @StartRow AND @EndRow))
ORDER BY ' + @orderby + ' ' + @order +
' SELECT (COUNT([Row_Number]))
FROM #FoundTable'
EXECUTE sp_executesql @NCOMMAND,
N'@lstAssociateTypecode VARCHAR(20), @return INT, @search VARCHAR(202), @MustInclude VARCHAR(6) , @StartRow INT, @EndRow INT',
@lstAssociateTypecode = @lstAssociateTypecode,
@return = @return,
@search = @search,
@MustInclude = @MustInclude,
@StartRow=@StartRow,
@EndRow=@EndRow
--SELECT @NCOMMAND
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_MaintainInsertMarital',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainInsertMarital]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainInsertMarital] (
@Code VARCHAR(100),
@Description VARCHAR(MAX),
@Retired VARCHAR(2))
AS
/*******************************************************************************************************
* This procedure is used to Check maintain details. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainInsertMarital] *
* Copied from : [dbo].[ky_NETMaintainCheckMaster] *
* [dbo].[Ky_NETMaintainInsertMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
IF EXISTS (SELECT * FROM dbo.MiscCodes WHERE CDETYPE = 'MRS' AND RTRIM(CDECODE)=@code)
BEGIN
SELECT 'Marital Status code already exist. Please enter a new Marital Status code.'
END
ELSE
BEGIN
IF EXISTS(SELECT TOP 1 1 FROM dbo.MiscCodes WHERE RTRIM(CDECODE)=@code AND CDETYPE='MRS')
BEGIN
UPDATE
dbo.MiscCodes
SET
CDECODE = @code,
CDEDESC = @description,
Retired = @retired
WHERE
RTRIM(CDECODE)=@code AND CDETYPE='MRS'
END
ELSE
BEGIN
INSERT INTO
dbo.MiscCodes (CDETYPE,CDECODE,CDEDESC,Retired)
VALUES
('MRS',@code,@description,@retired)
END
END
END
GO
IF OBJECT_ID(N'KAAS_MaintainInsertOccupation',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainInsertOccupation]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainInsertOccupation] (
@Code VARCHAR(100),
@Description VARCHAR(MAX))
AS
/*******************************************************************************************************
* This procedure is used to check maintain details. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainInsertOccupation] *
* Copied from : [dbo].[ky_NETMaintainCheckMaster] *
* [dbo].[Ky_NETMaintainInsertMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
IF EXISTS(SELECT TOP 1 1 FROM MiscCodes WHERE RTRIM(CDECODE ) = RTRIM(@Code) AND RTRIM(CDETYPE) = 'OCC')
BEGIN
SELECT 'Occupation code already exist. Please enter a new Occupation code.'
END
ELSE
BEGIN
IF EXISTS(SELECT TOP 1 1 FROM MiscCodes WHERE RTRIM(CDECODE) = RTRIM(@Code) AND RTRIM(CDETYPE) = 'OCC')
BEGIN
UPDATE
MiscCodes
SET
CDEDESC = @Description
WHERE
RTRIM(CDECODE) = @Code
END
ELSE
BEGIN
INSERT INTO
misccodes(CDETYPE, CDECODE, CDEDESC, CDETEAM )
VALUES
('OCC',@Code,@Description,'')
END
END
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadAdminCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadAdminCode]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadAdminCode]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details TimeAdminCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadAdminCode] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT
NCCODE 'Code',
[DESCRIPTION] 'Description',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM
TimeAdminCodes
WHERE
REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR [NCCODE] = @code
ORDER BY
NCCODE
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadBilling',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadBilling]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadBilling]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM BillDescriptions table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadBilling] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT Number AS 'BillNumber',
BILLDESCRIPTIONS 'Description',
SEARCHFIELD 'Search',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM BillDescriptions
WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR NUMBER = CONVERT(INT, ISNULL(@Code,0))
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadBranchCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadBranchCode]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadBranchCode]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM Branch table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadBranchCode] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT
BRANCHCODE 'BranchCode',
[Description]
FROM
Branch
ORDER BY
BRANCHCODE
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadCasePlan',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadCasePlan]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadCasePlan]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM TEMPLATES table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadCasePlan] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM([WKCODE]) AS [Code],
RTRIM(ISNULL([WKDESC],'')) AS [Description]
FROM TEMPLATES
WHERE ISNULL([Retired],'N') = 'N'
OR [WKCODE] = @Code
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadCategoryType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadCategoryType]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadCategoryType]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM CategoryType table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadCategoryType] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT
RTRIM(CategoryType) AS CategoryType,
[Description]
FROM
CategoryType
ORDER BY
CategoryType
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadChargeType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadChargeType]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadChargeType] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM ChargeType table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadChargeType] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT TaxHead,
ChargeType,
[Description]
FROM ChargeType
WHERE RTRIM(TAXHEAD)=@Retired
ORDER BY ChargeType
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadClientGroup',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadClientGroup]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadClientGroup]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM ClientGroup table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadClientGroup] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(GroupCode) AS [Code],
RTRIM(GroupName) AS [Name]
FROM ClientGroup
ORDER BY GroupCode
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadClientType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadClientType]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadClientType]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM ClientType table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadClientType] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(PK_ClientType, 0)) AS Code,
RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description],
Editable AS Editable
FROM ClientType
ORDER BY [Description]
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadContact',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadContact]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadContact]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM MiscCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadContact] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM([CDETYPE]) AS [Type],
RTRIM([CDECODE]) AS [Code] ,
RTRIM([CDEDESC]) AS [Description],
RTRIM(CDETEAM) AS [Team]
FROM MiscCodes
WHERE CDETYPE = @Retired
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadContactCategory',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadContactCategory]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadContactCategory]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM Category table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadContactCategory] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT B.CATEGORYTYPE 'Type',
B.[Description] 'CategoryDescription',
A.Code,
A.DESC$ 'Description'
FROM Category A
LEFT OUTER JOIN Categorytype B
ON A.CATTYPE= B.CATEGORYTYPE
ORDER BY A.CODE
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadCourtFees',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadCourtFees]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadCourtFees] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM CourtFees table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadCourtFees] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT
CODE 'Code',
DESCRIPTION 'Description',
ISNULL(CHARGECLIENT,0) AS ChargeClient,
[VALUE] 'Value',
[CLIENTVALUE] 'ClientValue'
FROM
CourtFees
ORDER BY
CODE
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadDepartment',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadDepartment]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadDepartment]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM Departments table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadDepartment] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT DEPT.[CODE] AS [Code],
DEPT.[DESC] AS [Description],
CASE WHEN RTRIM(ISNULL(DEPT.[Retired], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired]
FROM [dbo].[Departments] DEPT
WHERE ISNULL(@Retired, 'N') = 'Y'
OR ISNULL(DEPT.[Retired], 'N') <> 'Y'
OR DEPT.[CODE] = @code
ORDER BY DEPT.[CODE]
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadFeeEarner',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadFeeEarner]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadFeeEarner]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM FeeEarnerCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadFeeEarner] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT FEC.[Code] AS [Code],
FEC.[Name] AS [Name],
CASE WHEN RTRIM(ISNULL(FEC.[Retired], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired]
FROM [dbo].[FeeEarnerCodes] FEC
WHERE ISNULL(@Retired, 'N') = 'Y'
OR ISNULL(FEC.[Retired], 'N') <> 'Y'
OR FEC.[Code] = @code
ORDER BY FEC.[CODE]
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadFileColour',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadFileColour]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadFileColour]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM FileColours table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadFileColour] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(FCL.[ColourCode], '')) AS [FileColour],
RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [ColourDescription],
ISNULL(FCL.[RGBColour], -1) AS [RGBValue],
RTRIM(ISNULL(FCL.[BackgroundColour], 'Transparent')) AS [BackgroundColour],
RTRIM(ISNULL(FCL.[ForegroundColour], 'Black')) AS [ForegroundColour],
FCL.Retired AS [Retired]
FROM [dbo].[FileColours] FCL
WHERE ISNULL(@Retired, 'N') = 'Y'
OR ISNULL(FCL.[Retired], 'N') <> 'Y'
OR FCL.[COLOURCODE] = @code
ORDER BY RTRIM(ISNULL(FCL.[COLOURDESC], ''))
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadGroupModule',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadGroupModule]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadGroupModule] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM ModuleGroup table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadGroupModule] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT GroupID AS [GroupId],
RTRIM(GroupName) AS [GroupName],
RTRIM(ISNULL([Description],'')) AS [Description]
FROM ModuleGroup
WHERE GroupName <>'All Handler'
ORDER BY GroupName
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadHandlerChargeGroup',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadHandlerChargeGroup]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadHandlerChargeGroup] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM HandlerChargeGroups table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadHandlerChargeGroup] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT id AS [Id],
RTRIM(Code) AS [Code],
RTRIM(Name) AS [Name],
ISNULL(DefaultRate,0) AS DefaultRate
FROM HandlerChargeGroups
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadHandlers',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadHandlers]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadHandlers] (
@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM Handlers table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadHandlers] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(TEAMCODE) AS TEAMCODE,
RTRIM(Code) AS Code,
RTRIM(Name) AS Name,
RTRIM(Team) AS Team,
RTRIM(Rate) AS Rate,
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired,
RTRIM(EMAIL) AS Email,
RTRIM(CONVERT(VARCHAR(MAX),
[SIGNATURE])) AS [Signature]
FROM Handlers
WHERE REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired)
OR CODE = @Code
--OR
--REPLACE(Retired,' ','N')='N'
ORDER BY CODE
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadIDCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadIDCode]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadIDCode]
(@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM IDCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadIDCode] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT [Id],
RTRIM(ISNULL(IdCode, 0)) AS Code,
RTRIM(ISNULL([Description] , '')) AS [Description],
Category
FROM IDCodes
ORDER BY [Id]
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadInterest',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadInterest]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadInterest] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM MiscCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadInterest] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT CDECODE 'Code',
CDEDESC 'Description',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM MiscCodes
WHERE CDETYPE = 'IRT'
AND (REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired)
OR CDECODE = @code)
ORDER BY CDECODE
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadIntroBy',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadIntroBy]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadIntroBy] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM IntroductionBy table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadIntroBy] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(PK_intro, 0)) AS Code,
RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description]
FROM IntroductionBy
ORDER BY [Description]
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadItemType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadItemType]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadItemType] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM ItemTypes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadItemType] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT ITP.[TypeCode],
RTRIM(ISNULL(ITP.[TYPEDESCRIPTION], '')) AS [TypeDescription],
ITP.[DeedType],
ITP.[WillType]
FROM [dbo].[ItemTypes] ITP
ORDER BY ITP.[TypeCode]
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadKPIParameters',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadKPIParameters]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadKPIParameters] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM KPIParameters table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadKPIParameters] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT Id,
StartOfYear,
FromDate,
ToDate,
Period,
[Year]
FROM KPIParameters
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadKYCType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadKYCType]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadKYCType] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM KYCType table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadKYCType] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(PK_Type, 0)) AS Code,
RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description],
Editable AS Editable
FROM KYCType
ORDER BY [Description]
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadLocation',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadLocation]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadLocation] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM ItemLocations table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadLocation] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM([CODE]) AS [Code],
RTRIM([DESCRIPTION]) AS [Description],
CASE RTRIM([FULLYN])
WHEN 'Y'
THEN 'True'
ELSE 'False'
END AS [Full],
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM ItemLocations
WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR CODE = @Code
ORDER BY [CODE]
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadMarital',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadMarital]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadMarital] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM MiscCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadMarital] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT CDECODE 'Code',
CDEDESC 'Description',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM MiscCodes
WHERE CDETYPE = 'MRS' AND (REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired)
OR CDECODE = @code)
ORDER BY CDECODE
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_MaintainLoadMaster'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_MaintainLoadMaster]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_MaintainLoadMaster]
(@MasterName VARCHAR(50),
@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
*This procedure is used to Fetch details FROM the below listed Masters table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadMaster] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History : *
* 2019-06-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
IF (@MasterName='Departments')
BEGIN
SELECT DEPT.[CODE] AS [CODE],
DEPT.[DESC] AS [Description],
CASE WHEN RTRIM(ISNULL(DEPT.[Retired], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired]
FROM [dbo].[Departments] DEPT
WHERE ISNULL(@Retired, 'N') = 'Y'
OR ISNULL(DEPT.[Retired], 'N') <> 'Y'
OR DEPT.[CODE] = @code
ORDER BY DEPT.[CODE]
END
ELSE IF (@MasterName='Worktypes')
BEGIN
SELECT WKT.[CODE] AS [CODE],
WKT.[DESC] AS [Description],
CASE WHEN RTRIM(ISNULL(WKT.[Retired], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired],
CASE WHEN RTRIM(ISNULL(WKT.[ChildCare], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [ChildCare]
FROM [dbo].[WorkTypes] WKT
WHERE ISNULL(@Retired, 'N') = 'Y'
OR ISNULL(WKT.[Retired], 'N') <> 'Y'
OR WKT.[CODE] = @code
ORDER BY WKT.[CODE]
END
ELSE IF (@MasterName='FeeEarners')
BEGIN
SELECT FEC.[Code] AS [Code],
FEC.[Name] AS [Name],
CASE WHEN RTRIM(ISNULL(FEC.[Retired], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired]
FROM [dbo].[FeeEarnerCodes] FEC
WHERE ISNULL(@Retired, 'N') = 'Y'
OR ISNULL(FEC.[Retired], 'N') <> 'Y'
OR FEC.[Code] = @code
ORDER BY FEC.[CODE]
END
ELSE IF (@MasterName='FileColour')
BEGIN
SELECT RTRIM(ISNULL(FCL.[ColourCode], '')) AS [File Colour],
RTRIM(ISNULL(FCL.[COLOURDESC], '')) AS [Colour Description],
ISNULL(FCL.[RGBColour], -1) AS [RGB Value],
RTRIM(ISNULL(FCL.[BackgroundColour], 'Transparent')) AS [BackgroundColour],
RTRIM(ISNULL(FCL.[ForegroundColour], 'Black')) AS [ForegroundColour],
FCL.Retired AS [Retired]
FROM [dbo].[FileColours] FCL
WHERE ISNULL(@Retired, 'N') = 'Y'
OR ISNULL(FCL.[Retired], 'N') <> 'Y'
OR FCL.[COLOURCODE] = @code
ORDER BY RTRIM(ISNULL(FCL.[COLOURDESC], ''))
END
ELSE IF (@MasterName='Maritals')
BEGIN
SELECT
CDECODE 'Code',
CDEDESC 'Description',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM
MiscCodes
WHERE
CDETYPE = 'MRS' AND (REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired)
OR CDECODE = @code)
ORDER BY
CDECODE
END
ELSE IF (@MasterName='National')
BEGIN
SELECT
NATION 'Code',
[DESC] 'Description'
FROM
NationCodes
ORDER BY
NATION
END
ELSE IF (@MasterName='TaxType')
BEGIN
SELECT
TaxType 'Tax Type',
TaxDesc 'Tax Description'
FROM
TaxType
ORDER BY
TaxType
END
ELSE IF (@MasterName='Standard Narratives')
BEGIN
SELECT
Code,
Narrative,
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM
DesktopNarr
WHERE
REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR [Code] = @code
ORDER BY
CODE
END
ELSE IF (@MasterName='Admin Codes')
BEGIN
SELECT
NCCODE 'Code',
[DESCRIPTION] 'Description',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM
TimeAdminCodes
WHERE
REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR [NCCODE] = @code
ORDER BY
NCCODE
END
ELSE IF (@MasterName='Billing')
BEGIN
SELECT
Number AS 'BillNumber',
BILLDESCRIPTIONS 'Description',
SEARCHFIELD 'Search',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM
BillDescriptions
WHERE
REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR NUMBER = CONVERT(INT, ISNULL(@Code,0))
END
ELSE IF (@MasterName='Undertaking')
BEGIN
SELECT
RTRIM(RecordID) AS RecordId,
RTRIM(StatusDesc) AS 'Status',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM
UndertakingStatus
WHERE
REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N', @Retired)
OR RecordID = CONVERT(INT, ISNULL(@Code,0))
END
ELSE IF (@MasterName='Tasks')
BEGIN
SELECT
Code,
[DESC] 'Description',
[Default],
CASE WHEN Retired = 1 THEN 'Y' ELSE 'N' END AS Retired
FROM
TasksCodes
WHERE
REPLACE(ISNULL(Retired,'0'),' ','0') = 0
OR
REPLACE(ISNULL(Retired,'0'),' ','0') = @Retired
OR CODE = @Code
ORDER BY
CODE
END
ELSE IF (@MasterName='Category Type')
BEGIN
SELECT
RTRIM(CategoryType) AS CategoryType,
[Description]
FROM
CategoryType
ORDER BY
CategoryType
END
ELSE IF (@MasterName='Contact Category')
BEGIN
SELECT
B.CATEGORYTYPE 'Type',
B.[Description] 'Category Description',
A.Code,
A.DESC$ 'Description'
FROM
Category A
LEFT OUTER JOIN
Categorytype B
ON
A.CATTYPE= B.CATEGORYTYPE
ORDER BY
A.CODE
END
ELSE IF (@MasterName='Branch Code')
BEGIN
SELECT
BRANCHCODE 'Branch Code',
[Description]
FROM
Branch
ORDER BY
BRANCHCODE
END
ELSE IF (@MasterName='Handlers')
BEGIN
SELECT
RTRIM(TEAMCODE) AS TEAMCODE,
RTRIM(Code) AS Code,
RTRIM(Name) AS Name,
RTRIM(Team) AS Team,
RTRIM(Rate) AS Rate,
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired,
RTRIM(EMAIL) AS Email,
RTRIM(CONVERT(VARCHAR(MAX),
[SIGNATURE])) AS [Signature]
FROM
Handlers
WHERE
REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired)
OR CODE = @Code
--OR
--REPLACE(Retired,' ','N')='N'
ORDER BY
CODE
END
ELSE IF (@MasterName='Tax Head')
BEGIN
SELECT
TAXHEAD 'Tax Head',
[Description]
FROM
TaxHead
ORDER BY
TAXHEAD
END
ELSE IF (@MasterName='Salutation')
BEGIN
SELECT
RTRIM(Code) AS Code,
RTRIM(ISNULL([Description],'')) AS [Description]
FROM
SalutationCodes
ORDER BY
Code
END
ELSE IF (@MasterName='Charge Type')
BEGIN
SELECT
TaxHead,
ChargeType,
[Description]
FROM
ChargeType
WHERE
RTRIM(TAXHEAD)=@Retired
ORDER BY
ChargeType
END
ELSE IF(@MasterName = 'Item Types')
BEGIN
SELECT ITP.[TYPECODE],
RTRIM(ISNULL(ITP.[TYPEDESCRIPTION], '')) AS [TYPEDESCRIPTION],
ITP.[DeedType],
ITP.[WillType]
FROM [dbo].[ItemTypes] ITP
ORDER BY ITP.[TYPECODE]
END
ELSE IF (@MasterName='Location')
BEGIN
SELECT
RTRIM([CODE]) AS [Code],
RTRIM([DESCRIPTION]) AS [Description],
CASE RTRIM([FULLYN])
WHEN 'Y'
THEN 'True'
ELSE 'False'
END AS [Full],
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM
ItemLocations
WHERE
REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR CODE = @Code
ORDER BY
[CODE]
END
ELSE IF (@MasterName='GroupModule')
BEGIN
SELECT
GroupID,
RTRIM(GroupName) AS GroupName,
RTRIM(ISNULL([Description],'')) AS [Description]
FROM
ModuleGroup
WHERE
GroupName <>'All Handler'
ORDER BY
GroupName
END
ELSE IF (@MasterName='Contacts')
BEGIN
SELECT
RTRIM([CDETYPE]) AS [Type],
RTRIM([CDECODE]) AS [Code] ,
RTRIM([CDEDESC]) AS [Description],
RTRIM(CDETEAM) AS [Team]
FROM
MiscCodes
WHERE
CDETYPE = @Retired
END
ELSE IF (@MasterName='ClientGroup')
BEGIN
SELECT
RTRIM(GroupCode) AS [Code],
RTRIM(GroupName) AS [Name]
FROM
ClientGroup
ORDER BY
GroupCode
END
ELSE IF (@mastername='HandlerChargeGroup')
BEGIN
SELECT
id AS [id],
RTRIM(Code) AS [Code],
RTRIM(Name) AS [Name],
ISNULL(DefaultRate,0) AS DefaultRate
FROM
HandlerChargeGroups
END
ELSE IF (@mastername='StatusCodes')
BEGIN
SELECT
RTRIM(Code) AS [Code],
RTRIM([Description]) AS [Description],
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM
StatusCodes
WHERE
RTRIM(CODE) != '' AND REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR CODE = @Code
END
ELSE IF (@MasterName = 'UDFCategory')
BEGIN
SELECT
RTRIM(ISNULL(A.id , '')) AS [ID],
RTRIM(ISNULL(A.UDFCategory , '')) AS [UDFCategory]
FROM
UDFCategory A
ORDER BY A.id
END
ELSE IF (@MasterName = 'SDLTForm')
BEGIN
SELECT
A.FormID AS [FormID],
RTRIM(ISNULL(A.FormName , '')) AS [FormName],
RTRIM(ISNULL(A.[Description] , '')) AS [Description]
FROM
SDLTForm A
ORDER BY
A.FormID
END
ELSE IF (@MasterName = 'SDLTFormParameter')
BEGIN
SELECT
A.FormID AS [FormID],
RTRIM(ISNULL(A.FieldName , '')) AS [FieldName],
RTRIM(ISNULL(A.[Value] , '')) AS [Value],
A.isText As [Text]
FROM
SDLTFormParameters A
WHERE
A.FormID = @Retired
ORDER BY A.FormID
END
ELSE IF (@MasterName = 'Undertaking Category')
BEGIN
SELECT
RTRIM(ISNULL(U.CODE , '')) AS CODE,
RTRIM(ISNULL(U.[DESCRIPTION] , '')) AS [DESCRIPTION]
FROM
UndertakingsCategory U
ORDER BY CODE
END
ELSE IF (@MasterName = 'KYCType')
BEGIN
SELECT
RTRIM(ISNULL(PK_Type, 0)) AS Code,
RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description],
Editable as Editable
FROM
KYCType
ORDER BY [Description]
END
ELSE IF (@MasterName = 'IntroBy')
BEGIN
SELECT
RTRIM(ISNULL(PK_intro, 0)) AS Code,
RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description]
FROM
IntroductionBy
ORDER BY [Description]
END
ELSE IF (@MasterName = 'ClientType')
BEGIN
SELECT
RTRIM(ISNULL(PK_ClientType, 0)) AS Code,
RTRIM(ISNULL([DESCRIPTION] , '')) AS [Description],
Editable as Editable
FROM
ClientType
ORDER BY [Description]
END
ELSE IF (@MasterName = 'ID Code')
BEGIN
SELECT
[Id],
RTRIM(ISNULL(IdCode, 0)) AS Code,
RTRIM(ISNULL([Description] , '')) AS [Description],
Category
FROM
IDCodes
ORDER BY [Id]
END
ELSE IF (@MasterName = 'Outlay Code')
BEGIN
IF [dbo].[ISSAM4]() = 0
BEGIN
EXEC ('
SELECT RTRIM(ISNULL(OLC.[Code], '''')) AS [Code],
RTRIM(ISNULL(OLC.[Description], '''')) AS [Description]
FROM [dbo].[OutlayCode] OLC
ORDER BY OLC.[Code]')
END
ELSE
BEGIN
EXEC ('
SELECT RTRIM(ISNULL(OLC.[OutlayCode], '''')) AS [Code],
RTRIM(ISNULL(OLC.[Description], '''')) AS [Description]
FROM [dbo].[OutlayCode] OLC
ORDER BY OLC.[OutlayCode]')
END
END
ELSE IF (@MasterName = 'KPI Parameters')
BEGIN
SELECT
Id,
StartOfYear,
FromDate,
ToDate,
Period,
[Year]
FROM KPIParameters
END
ELSE IF (@MasterName = 'Case Plan')
BEGIN
SELECT
RTRIM([WKCODE]) AS [Code],
RTRIM(ISNULL([WKDESC],'')) AS [Desc]
FROM
TEMPLATES
WHERE
ISNULL([Retired],'N') = 'N'
OR [WKCODE] = @Code
END
ELSE IF (@MasterName='Interest')
BEGIN
SELECT
CDECODE 'Code',
CDEDESC 'Description',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM
MiscCodes
WHERE
CDETYPE = 'IRT' AND (REPLACE(ISNULL(Retired,'N'),' ','N') in ('N',@Retired)
OR CDECODE = @code)
ORDER BY
CDECODE
END
ELSE IF (@MasterName='CourtFees')
BEGIN
SELECT
CODE 'Code',
DESCRIPTION 'Description',
ISNULL(CHARGECLIENT,0) AS ChargeClient,
[VALUE] 'Value',
[CLIENTVALUE] 'ClientValue'
FROM
CourtFees
ORDER BY
CODE
END
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadNational',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadNational]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadNational] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM NationCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadNational] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT NATION 'Code',
[DESC] 'Description'
FROM NationCodes
ORDER BY NATION
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadOutlayCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadOutlayCode]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadOutlayCode] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM OutlayCode table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadOutlayCode] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
IF [dbo].[ISSAM4]() = 0
BEGIN
EXEC ('
SELECT RTRIM(ISNULL(OLC.[Code], '''')) AS [Code],
RTRIM(ISNULL(OLC.[Description], '''')) AS [Description]
FROM [dbo].[OutlayCode] OLC
ORDER BY OLC.[Code]')
END
ELSE
BEGIN
EXEC ('
SELECT RTRIM(ISNULL(OLC.[OutlayCode], '''')) AS [Code],
RTRIM(ISNULL(OLC.[Description], '''')) AS [Description]
FROM [dbo].[OutlayCode] OLC
ORDER BY OLC.[OutlayCode]')
END
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadSalutation',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadSalutation]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadSalutation] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM SalutationCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadSalutation] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(Code) AS Code,
RTRIM(ISNULL([Description],'')) AS [Description]
FROM SalutationCodes
ORDER BY Code
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadSDLTForm',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadSDLTForm]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadSDLTForm] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM SDLTForm table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadSDLTForm] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT A.FormID AS [FormId],
RTRIM(ISNULL(A.FormName , '')) AS [FormName],
RTRIM(ISNULL(A.[Description] , '')) AS [Description]
FROM SDLTForm A
ORDER BY A.FormID
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadSDLTFormParameter',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadSDLTFormParameter]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadSDLTFormParameter] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM SDLTFormParameters table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadSDLTFormParameter] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT A.FormID AS [FormID],
RTRIM(ISNULL(A.FieldName , '')) AS [FieldName],
RTRIM(ISNULL(A.[Value] , '')) AS [Value],
A.isText As [Text]
FROM SDLTFormParameters A
WHERE A.FormID = @Retired
ORDER BY A.FormID
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadStandardNarrative',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadStandardNarrative]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadStandardNarrative] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM DesktopNarr table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadStandardNarrative] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT Code,
Narrative,
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM DesktopNarr
WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR [Code] = @code
ORDER BY CODE
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadStatusCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadStatusCode]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadStatusCode] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM StatusCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadStatusCode] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(Code) AS [Code],
RTRIM([Description]) AS [Description],
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM StatusCodes
WHERE RTRIM(CODE) != '' AND REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N',@Retired)
OR CODE = @Code
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadTask',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadTask]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadTask] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM TasksCodes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadTask] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT Code,
[DESC] 'Description',
[Default],
CASE
WHEN Retired = 1
THEN 'Y'
ELSE 'N'
END AS Retired
FROM TasksCodes
WHERE REPLACE(ISNULL(Retired,'0'),' ','0') = 0
OR
REPLACE(ISNULL(Retired,'0'),' ','0') = @Retired
OR CODE = @Code
ORDER BY CODE
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadTaxHead',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadTaxHead]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadTaxHead] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM TaxHead table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadTaxHead] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT TAXHEAD 'TaxHead',
[Description]
FROM TaxHead
ORDER BY TAXHEAD
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadTaxType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadTaxType]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadTaxType] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM TaxType table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadTaxType] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT
TaxType 'TaxType',
TaxDesc 'TaxDescription'
FROM
TaxType
ORDER BY
TaxType
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadUDFCategory',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadUDFCategory]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadUDFCategory] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM UDFCategory table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadUDFCategory] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(A.id , '')) AS [Id],
RTRIM(ISNULL(A.UDFCategory , '')) AS [UDFCategory]
FROM UDFCategory A
ORDER BY A.id
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadUndertaking',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadUndertaking]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadUndertaking] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM UndertakingStatus table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadUndertaking] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(RecordID) AS RecordId,
RTRIM(StatusDesc) AS 'Status',
REPLACE(ISNULL(Retired,'N'),' ','N') AS Retired
FROM UndertakingStatus
WHERE REPLACE(ISNULL(Retired,'N'),' ','N') IN ('N', @Retired)
OR RecordID = CONVERT(INT, ISNULL(@Code,0))
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadUndertakingCategory',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadUndertakingCategory]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadUndertakingCategory] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM UndertakingsCategory table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadUndertakingCategory] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT RTRIM(ISNULL(U.CODE , '')) AS [Code],
RTRIM(ISNULL(U.[DESCRIPTION] , '')) AS [Description]
FROM UndertakingsCategory U
ORDER BY CODE
END
GO
IF OBJECT_ID(N'KAAS_MaintainLoadWorkType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainLoadWorkType]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainLoadWorkType] (@Retired VARCHAR(4),
@Code VARCHAR(10) = '')
AS
/*******************************************************************************************************
* This SP used to Fetch details FROM WorkTypes table. *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainLoadWorkType] *
* Copied from : [dbo].[ky_NETMaintainLoadMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SELECT WKT.[CODE] AS [Code],
WKT.[DESC] AS [Description],
CASE WHEN RTRIM(ISNULL(WKT.[Retired], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [Retired],
CASE WHEN RTRIM(ISNULL(WKT.[ChildCare], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END AS [ChildCare]
FROM [dbo].[WorkTypes] WKT
WHERE ISNULL(@Retired, 'N') = 'Y'
OR ISNULL(WKT.[Retired], 'N') <> 'Y'
OR WKT.[CODE] = @code
ORDER BY WKT.[CODE]
END
GO
IF OBJECT_ID(N'KAAS_MaintainMiscCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MaintainMiscCode]
GO
CREATE PROCEDURE [dbo].[KAAS_MaintainMiscCode] (
@CodeType VARCHAR(20),
@Code VARCHAR(100),
@Description VARCHAR(MAX),
@Retired VARCHAR(2),
@ActionType VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure is used to insert/update/check weather misc code is already exist or not *
* if @ActionType is Insert then it will check for its existence, if the ActionType is Update *
* then, it will update *
* *
* Stored Procedure Name : [dbo].[KAAS_MaintainMiscCode] *
* Copied from : [dbo].[ky_NETMaintainCheckMaster] *
* [dbo].[Ky_NETMaintainInsertMaster] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
* 2019-07-19 Arun make this procedure as generic to insert Misc codes *
*******************************************************************************************************/
BEGIN
IF (@ActionType = 'Insert')
BEGIN
IF EXISTS (SELECT TOP 1 1 FROM dbo.MiscCodes WHERE CDETYPE = @CodeType AND RTRIM(CDECODE)=@code)
BEGIN
SELECT 'Marital Status code already exist. Please enter a new Marital Status code.'
END
ELSE
BEGIN
INSERT
INTO
dbo.MiscCodes
(
CDETYPE,
CDECODE,
CDEDESC,
Retired
)
VALUES
(
@CodeType,
@code,
@description,
@retired
)
END
END
ELSE
BEGIN
UPDATE
dbo.MiscCodes
SET
CDECODE = @code,
CDEDESC = @description,
Retired = @retired
WHERE
RTRIM(CDECODE)=@code AND CDETYPE=@CodeType
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_MarkTimeEntryStatus'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_MarkTimeEntryStatus]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_MarkTimeEntryStatus]
(@RecordID INT,
@Status BIT,
@InvoiceNo INT,
@Handler VARCHAR(10),
@User NVARCHAR(128))
AS
/*******************************************************************************************************
* Mark the time entry as billed in Time Ledger. *
* *
* Stored Procedure Name : [dbo].[KAAS_MarkTimeEntryStatus] ` *
* Copied from : [dbo].[ky_NETMarkTimeEntryStatus] *
* *
* Modification History: *
* 2015-11-12 Pino Carafa Imported into Framework Release 2 *
* KEYD - 2894 - Log user data and timestamp *
* 2016-01-04 John Ginnane KEYD-3097 - Added @Status variable to @NCOMMAND dynamic SQL *
* No longer setting [BilledAmount] for SAM4 systems *
* 2019-07-25 Vinodhan K Procedure name changed as KAAS_MarkTimeEntryStatus *
*******************************************************************************************************/
BEGIN
SET @Handler = RTRIM(ISNULL(@Handler, ''))
SET @User = RTRIM(ISNULL(@User, N''))
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @ISSAM4 BIT
SET @ISSAM4 = [dbo].[ISSAM4]()
SET @NCOMMAND = N'INSERT
INTO [dbo].[TimeEntryLogNew]
([MATTER],
[FEEEARN],
[DATE],
[TIME],
[RATE],
[CHARGE],
[TASK],
[TIMEORCHARGE],
[COMMENT],
[BILLED],
[NCCODE],
[DOCKET],
[TEAM],
[TRACKREF],
[REC_IRR],
[SHOULDHAVE],
[INVOICENO],
[PERIOD],
[YEAR],
[BILLINGPERIOD],
[BILLINGYEAR],
[OPENINV],
[RECORDID],
[ActionId],
[StageCode],
[Leave],
[BilledAmount],
[IncludeInBill],
[BILLINGDATE],
[AxleNumber],
[WriteOffDT],
[WriteOffID],
[LogFor]'
IF @Handler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[HandlerLogFor]'
END
IF @User <> N''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[LoginLogFor]'
END
SET @NCOMMAND = @NCOMMAND + N')
SELECT [TIE].[MATTER],
[TIE].[FEEEARN],
[TIE].[DATE],
[TIE].[TIME],
[TIE].[RATE],
[TIE].[CHARGE],
[TIE].[TASK],
[TIE].[TIMEORCHARGE],
[TIE].[COMMENT],
[TIE].[BILLED],
[TIE].[NCCODE],
[TIE].[DOCKET],
[TIE].[TEAM],
[TIE].[TRACKREF],
[TIE].[REC_IRR],
[TIE].[SHOULDHAVE],
[TIE].[INVOICENO],
[TIE].[PERIOD],
[TIE].[YEAR],
[TIE].[BILLINGPERIOD],
[TIE].[BILLINGYEAR],
[TIE].[OPENINV],
[TIE].[RECORDID],
[TIE].[ActionId],
[TIE].[StageCode],
[TIE].[Leave],
[TIE].[BilledAmount],
[TIE].[IncludeInBill],
[TIE].[BILLINGDATE],
[TIE].[AxleNumber],
[TIE].[WriteOffDT],
[TIE].[WriteOffID],
CASE WHEN ISNULL(@Status, 0) = 0
THEN ''U''
ELSE ''B'' END'
IF @Handler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@Handler'
END
IF @User <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@User'
END
SET @NCOMMAND = @NCOMMAND + N'
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @RecordID'
EXEC sp_executesql @NCOMMAND, N'@RecordID INT, @Handler VARCHAR(10), @User NVARCHAR(128), @Status BIT', @RecordID, @Handler, @User, @Status
DECLARE @MatterCode VARCHAR(20)
IF ISNULL(@Status, 0) = 0 --Unbilled
BEGIN
UPDATE [TIE]
SET [TIE].[INVOICENO] = 0,
[TIE].[BilledAmount] = 0,
@MatterCode = [TIE].[Matter]
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @RecordID
END
ELSE -- Billed
BEGIN
UPDATE [TIE]
SET [TIE].[INVOICENO] = ISNULL(@InvoiceNo, 0),
[TIE].[BilledAmount] = (CASE WHEN @ISSAM4 = 1
THEN [BilledAmount]
ELSE ISNULL([TIE].[Charge], 0)
END),
@MatterCode = [TIE].[Matter]
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @RecordID
END
EXEC [dbo].[KAAS_UpdateMatterTimeBalance] @MatterCode
END
GO
IF OBJECT_ID(N'[KAAS_MATFetchOldChargeRates]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_MATFetchOldChargeRates]
GO
CREATE PROCEDURE [KAAS_MATFetchOldChargeRates]
(
@MatterCode VARCHAR(20),
@FeCode VARCHAR(20),
@OldRates VARCHAR(20) OUTPUT
)
AS
/*******************************************************************************************************
* This procedrue is used to FETCH Matter charge rate old rates. *
* *
* Stored Procedure Name : [dbo].[KAAS_MATFetchOldChargeRates] *
* Copied from : [dbo].[ky_NETMATFetchOldChargeRates] *
* *
* Modification History : *
* 2019-04-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SET @OldRates = (SELECT ISNULL(LastRate,'0.0') FROM MatterChargeOutRates
WHERE
MatterCode=@MatterCode
AND
FeCode = @FeCode)
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_MatterClosable'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_MatterClosable]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_MatterClosable]
(@MATTER VARCHAR(20))
AS
/*******************************************************************************************************
* Get the parameters to establish whether a matter can be closed at this point. *
* Please note that Bal, Rec, Diary and Undertakings should prevent a matter from closing, while *
* Time and Charge should lead to a warning and the user can decide to close the matter anyway. *
* *
* Stored Procedure Name : [dbo].[KAAS_MatterClosable] *
* Copied from : [dbo].[ky_NETPMatterClosable] *
* *
* Modification History : *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @AlreadyClosed INT
DECLARE @HasOutstandingRec INT
DECLARE @HasOutstandingBal INT
DECLARE @HasOutstandingTimeBal INT
DECLARE @HasOutstandingChargeBal INT
DECLARE @HasOutstandingDiary INT
DECLARE @HasOutstandingUndertakings INT
DECLARE @IsSAM4 bit
SET @IsSAM4 = [dbo].[ISSAM4]()
-- Please see also: KAAS_CaseSummaryPageLoad. If you change any of these calculations,
-- ensure the ones in there are changed as well.
-- KAAS_FetchTimeEntry. If you change any of these calculations,
-- ensure the ones in there are changed as well.
DECLARE @TimeBal INT
DECLARE @ChargeBal DECIMAL(19, 2)
DECLARE @TotalCharge Decimal(19, 2)
DECLARE @TotalTime INT
DECLARE @TimeEntryTotalCharge DECIMAL(19, 2)
DECLARE @TimeEntryTotalTime INT
SELECT @TimeEntryTotalCharge = ISNULL(SUM(ISNULL(TIE.[Charge], 0)), 0),
@TimeEntryTotalTime = ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0),
@TotalCharge = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Charge], 0)
END), 0),
@ChargeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 1
THEN ISNULL(TIE.[Charge], 0)
ELSE ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0)
END), 0),
@TimeBal = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
WHEN @IsSAM4 = 1
AND ISNULL(TIE.[InvoiceNo], 0) <> 0
THEN 0
WHEN @IsSAM4 = 0
THEN CASE WHEN TIE.[Charge] = 0
THEN 0
ELSE CONVERT(INT,
FLOOR(CONVERT(DECIMAL(18, 2), TIE.[TIME])
* ( (TIE.[Charge] - TIE.[BilledAmount])
/
TIE.[Charge])))
END
ELSE ISNULL(TIE.[Time], 0)
END), 0),
@TotalTime = ISNULL(SUM(CASE WHEN ISNULL(TIE.[Rec_Irr], '') = 'N'
THEN 0
ELSE ISNULL(TIE.[Time], 0)
END), 0)
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[Matter] = @MATTER
AND ((TIE.[TimeOrCharge] = 'T')
OR (TIE.[TimeOrCharge] = 'C')) --**Changed fetch condition JIRA 1081 - arun
DECLARE @DebtBal DECIMAL(19, 2)
DECLARE @OutlayBal DECIMAL(19, 2)
DECLARE @DebtBalDate DATETIME
DECLARE @OutlayBalDate DATETIME
DECLARE @ClientCurrent DECIMAL(19, 2)
DECLARE @ClientDeposit DECIMAL(19, 2)
DECLARE @NCOMMAND NVARCHAR(MAX)
-- To ensure SAM3 will retrieve these from [dbo].[matters]
SET @DebtBal = 0
SET @OutlayBal = 0
SET @ClientCurrent = 0
SET @ClientDeposit = 0
IF @IsSAM4 = 1
BEGIN
SET @NCOMMAND = N'
SELECT @DebtBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[DebtorsValue], 0)), 0)),
@DebtBalDate = MAX(CASE WHEN ISNULL(TRN.[DebtorsValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@OutlayBal = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0)),
@OutlayBalDate = MAX(CASE WHEN ISNULL(TRN.[OutlayValue], 0) = 0 THEN NULL ELSE TRN.[TransDate] END),
@ClientCurrent = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0)), 0)),
@ClientDeposit = CONVERT(DECIMAL(19, 2), ISNULL(SUM(ISNULL(TRN.[ClientDeposit], 0)), 0))
FROM [dbo].[Transactions] TRN
WHERE TRN.[MatterCode] = @MATTER
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND TRN.[CorrectionInd] = ''L'''
EXECUTE sp_executesql @NCOMMAND,
N'@MATTER VARCHAR(20),
@DebtBal DECIMAL(19, 2) OUTPUT,
@DebtBalDate DATETIME OUTPUT,
@OutlayBal DECIMAL(19, 2) OUTPUT,
@OutlayBalDate DATETIME OUTPUT,
@ClientCurrent DECIMAL(19, 2) OUTPUT,
@ClientDeposit DECIMAL(19, 2) OUTPUT',
@MATTER = @MATTER,
@DebtBal = @DebtBal OUTPUT,
@DebtBalDate = @DebtBalDate OUTPUT,
@OutlayBal = @OutlayBal OUTPUT,
@OutlayBalDate = @OutlayBalDate OUTPUT,
@ClientCurrent = @ClientCurrent OUTPUT,
@ClientDeposit = @ClientDeposit OUTPUT
END
SELECT @AlreadyClosed = CASE WHEN MAT.[Closed] = 'Y' THEN 1 ELSE 0 END,
@HasOutstandingBal = CASE WHEN @DebtBal <> 0
THEN 1
WHEN ISNULL(MAT.[DebtBal], 0) <> 0
THEN 1
WHEN @OutlayBal <> 0
THEN 1
WHEN ISNULL(MAT.[OutlayBal], 0) <> 0
THEN 1
WHEN ISNULL(MAT.[ClientBal], 0) <> 0 --No need to check @ClientCurBal + @ClientDepBal
THEN 1
WHEN @ClientCurrent <> 0
THEN 1
WHEN ISNULL(MAT.[ClientCurBal], 0) <> 0
THEN 1
WHEN @ClientDeposit <> 0
THEN 1
WHEN ISNULL(MAT.[ClientDepBal], 0) <> 0
THEN 1
ELSE 0 END,
@HasOutstandingTimeBal = CASE WHEN @TimeBal <> 0 THEN 1 ELSE 0 END,
@HasOutstandingChargeBal = CASE WHEN @ChargeBal <> 0 THEN 1 ELSE 0 END
FROM [dbo].[matters] MAT
WHERE MAT.[Code] = @MATTER
SET @AlreadyClosed = ISNULL(@AlreadyClosed, 0)
SET @HasOutstandingBal = ISNULL(@HasOutstandingBal, 0)
SET @HasOutstandingTimeBal = ISNULL(@HasOutstandingTimeBal, 0)
SET @HasOutstandingChargeBal = ISNULL(@HasOutstandingChargeBal, 0)
DECLARE @YEAR INT
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'SELECT @YEAR = ISNULL(CTL.[YEAR], DATEPART(YEAR, GetDate()))
FROM [dbo].[Control] CTL
IF (@YEAR IS NULL)
BEGIN
SET @YEAR = DATEPART(YEAR, GetDate())
END'
END
ELSE
BEGIN
SET @NCOMMAND = N'SELECT @YEAR = ISNULL(CONVERT(INT, CTL.[NumValue]), DATEPART(YEAR, GetDate()))
FROM [dbo].[CtrlNum] CTL
WHERE CTL.[Code] = ''CurYear''
IF (@YEAR IS NULL)
BEGIN
SET @YEAR = DATEPART(YEAR, GetDate())
END'
END
EXEC sp_executesql @NCOMMAND, N'@YEAR INT OUTPUT', @YEAR OUTPUT
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'SELECT @HasOutstandingRec = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END
FROM [dbo].[MatterLedger] MAL
INNER JOIN [dbo].[BatchH] BH
INNER JOIN [dbo].[BankRecHistory] BHS
ON BHS.[BANKAC] = BH.[CODE]
ON BH.[BATCHNO] = MAL.[BATCHNO]
AND BH.[RECNO] <= 0
AND BH.[TYPE] IN (''P'', ''R'', ''T'')
WHERE MAL.[MATTER] = @MATTER
AND MAL.[YEAR] = @YEAR
AND MAL.[REF] <> ''EUROADJ''
SET @HasOutstandingRec = ISNULL(@HasOutstandingRec, 0)'
END
ELSE
BEGIN
SET @NCOMMAND = N'SELECT @HasOutstandingRec = CASE COUNT(1) WHEN 0 THEN 0 ELSE 1 END
FROM [dbo].[Transactions] TRN
WHERE TRN.[MatterCode] = @MATTER
AND TRN.[Posted] = ''Y''
AND TRN.[RecType] <> ''V''
AND ( TRN.[CorrectionInd] = ''L''
OR TRN.[CorrectionInd] = ''C'')
AND TRN.[PostingYear] = @YEAR
AND TRN.[Reconciliation] <= 0
SET @HasOutstandingRec = ISNULL(@HasOutstandingRec, 0)'
END
EXEC sp_executesql @NCOMMAND, N'@MATTER VARCHAR(20), @YEAR INT, @HasOutstandingRec INT OUTPUT', @MATTER, @YEAR, @HasOutstandingRec OUTPUT
SELECT @HasOutstandingDiary = CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END
FROM [dbo].[diary] DIA
WHERE DIA.[CASECODE] = @MATTER
AND DIA.[STATUS] <> 1
SELECT @HasOutstandingUndertakings = CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END
FROM [dbo].[Undertakings] UND
WHERE UND.[MATTER] = @MATTER
AND UND.[DISCHARGEDATE] IS NULL
SELECT @AlreadyClosed AS [AlreadyClosed],
@HasOutstandingBal AS [HasOutstandingBal],
@HasOutstandingTimeBal AS [HasOutstandingTimeBal],
@HasOutstandingChargeBal AS [HasOutstandingChargeBal],
@HasOutstandingRec AS [HasOutstandingRec],
@HasOutstandingDiary AS [HasOutstandingDiary],
@HasOutstandingUndertakings AS [HasOutstandingUndertakings]
END
GO
IF OBJECT_ID(N'KAAS_MileStoneAction',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_MileStoneAction]
GO
CREATE PROCEDURE [dbo].[KAAS_MileStoneAction]
(
@ACTIONID INT
)
/*******************************************************************************************************
* This procedure is used Update the diary highlighted value. *
* *
* Stored Procedure Name : [dbo].[KAAS_MileStoneAction] *
* Copied from : [dbo].[ky_NETMileStoneAction] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
UPDATE diary
SET HIGHLIGHTED = 'Y'
WHERE ACTIONID = @ACTIONID
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_ModifyDiaryDetails'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ModifyDiaryDetails]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ModifyDiaryDetails]
(@CASECODE VARCHAR(20),
@DATE DATETIME,
@STATUS SMALLINT,
@ACTIONCODE VARCHAR(15),
@ACTIONSTATUS VARCHAR(3),
@ACTIONTYPE VARCHAR(1),
@PROCESSTYPE VARCHAR(1),
@FNCODE VARCHAR(10),
@TEAMCODE VARCHAR(10),
@TEXT1 VARCHAR(MAX),
@TEXT2 VARCHAR(MAX),
@DELEGATEDFNR VARCHAR(10),
@DELEGATEDDATE DATETIME,
@DELEGATEDBACKDATE DATETIME,
@DEFERRED VARCHAR(3),
@DUEDATE DATETIME,
@PUBLISH VARCHAR(1),
@DYSTARTTIME DATETIME,
@DYENDTIME DATETIME,
@DURATION SMALLINT,
@ACTIONID BIGINT,
@ORGINALACTIONID BIGINT,
@PRIORITY VARCHAR(1),
@HIGHLIGHTED VARCHAR(1),
@MILESTEONETYPE VARCHAR(12),
@ATTACHMENTS VARCHAR(1),
@PROCESSSTATUS SMALLINT,
@WORKPROCESS SMALLINT,
@BILLABLE INT,
@BILLDESCRIPTION VARCHAR(150),
@EMAILADDRESS VARCHAR(150),
@ADDRESSTO VARCHAR(150),
@CCTo VARCHAR(150),
@BCCTo VARCHAR(150),
@EMAIL VARCHAR(1),
@SUBJECT VARCHAR(150),
@DELEGATIONSTATUS INT,
@DRAFTBILLNO INT,
@CHEQUEREQNO INT,
@TxmSent BIT,
@Location VARCHAR(50),
@HearingType VARCHAR(50),
@ForCopy VARCHAR(1),
@TxmDate DATETIME,
@TxmSeqNo INT,
@Flag TINYINT,
@KYC VARCHAR(1)='N',
@Result INT = 0 OUTPUT )
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the Client Case Action information. If ID is *
* already exist then it will update that record. otherwise new record will insert. *
* *
* Stored Procedure Name : [dbo].[KAAS_ModifyDiaryDetails] *
* Copied from : [dbo].[ky_NETCCModifyDiaryDetails] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @TIMECONVERT INT
SET @TIMECONVERT = dbo.ky_ConvertTimeToClarion(@DYSTARTTIME)
DECLARE @ENDTIME INT
SET @ENDTIME = dbo.ky_ConvertTimeToClarion(@DYENDTIME)
DECLARE @DisplaytextValue VARCHAR(220)
SET @DisplaytextValue = [dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(@TEXT1, ''), 200)
UPDATE DIA
SET [CASECODE] = @CASECODE,
[DATE] = @DATE,
[STATUS] = @STATUS,
[ACTIONCODE] = @ACTIONCODE,
[ACTIONSTATUS] = @ACTIONSTATUS,
[ACTIONTYPE] = @ACTIONTYPE,
[FNCODE] = @FNCODE,
[TEAMCODE] = @TEAMCODE,
[TEXT1] = @TEXT1,
[TEXT2] = @TEXT2,
[DUEDATE] = @DUEDATE,
[PUBLISH] = @PUBLISH,
[DYSTARTTIME] = @TIMECONVERT,
[DYENDTIME] = @ENDTIME,
[PRIORITY] = @PRIORITY,
[HIGHLIGHTED] = @HIGHLIGHTED,
[MILESTEONETYPE] = @MILESTEONETYPE,
[WORKPROCESS] = @WORKPROCESS,
[BILLABLE] = @BILLABLE,
[SUBJECT] = @SUBJECT,
[TxmSent] = @TxmSent,
[Location] = @Location,
[HearingType] = @HearingType,
[DisplayText] = @DisplaytextValue,
[Flag] = @Flag,
[KYC] = @KYC
FROM [dbo].[diary] DIA
WHERE DIA.[ACTIONID] = @ACTIONID
UPDATE DEL
SET DEL.[HANDLER] = @FNCODE,
DEL.[DELEGATE] = @FNCODE,
DEL.[TEAM] = @TEAMCODE
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ACTIONID
AND DEL.[OWNER] = 'Y'
UPDATE DEL
SET DEL.[ActionType] = @ACTIONTYPE,
DEL.[DATE] = @DATE,
DEL.[DUEDATE] = @DUEDATE
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ACTIONID
AND DEL.[STATUS] = 0
IF (@STATUS = 0)
BEGIN
UPDATE DEL
SET DEL.[STATUS] = 0
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ACTIONID
AND DEL.[OWNER] = 'Y'
END
ELSE
BEGIN
UPDATE DEL
SET DEL.[STATUS] = 1
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ACTIONID
END
SET @Result = @ACTIONID
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_MoveAction',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_MoveAction]
GO
CREATE PROCEDURE [KAAS_MoveAction]
(
@ACTIONID INT,
@CASECODE VARCHAR(20),
@FNCODE VARCHAR(10)
)
/*****************************************************************************
Stored Procedure Name : KAAS_MoveAction
Copied From : ky_NETMoveAction
Description: This procedure is used to move the action one to other case.
Last Updated: 12 FEB 2015 Arun Change NVARCHAR to VARCHAR
11 FEB 2016 Arun http://jira1.dsrc.in:8080/browse/KEYD-3277
24 JUL 2018 Vinodhan Created KAAS_MoveAction
*****************************************************************************/
AS
BEGIN
SET NOCOUNT ON
UPDATE
diary
SET
CASECODE = @CASECODE
--FNCODE = @FNCODE
WHERE
ACTIONID = @ACTIONID
--UPDATE
-- DiaryDelegations
--SET
-- HANDLER = @FNCODE
--WHERE
-- ACTIONID = @ACTIONID AND [OWNER] = 'Y'
UPDATE
DiaryAttachments
SET
CASECODE = @CASECODE
WHERE
DIARYID = @ACTIONID
SELECT 'True'
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_MoveTimeEntry'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_MoveTimeEntry]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_MoveTimeEntry]
(@RecordID INT,
@Matter VARCHAR(20),
@Handler VARCHAR(10),
@User NVARCHAR(128))
AS
/*******************************************************************************************************
* Get the data of a TimeEntry record page. *
* *
* Stored Procedure Name : [dbo].[KAAS_MoveTimeEntry] ` *
* Copied from : [dbo].[ky_NETMoveTimeEntry] *
* *
* Modification History: *
* 2015-02-12 Arun Change NVARCHAR to VARCHAR *
* 2015-11-12 Pino Carafa KEYD - 2894 - Log user data and timestamp *
* 2019-07-25 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET @Handler = RTRIM(ISNULL(@Handler, ''))
SET @User = RTRIM(ISNULL(@User, N''))
DECLARE @NCOMMAND NVARCHAR(MAX)
SET @NCOMMAND = N'INSERT
INTO [dbo].[TimeEntryLogNew]
([MATTER],
[FEEEARN],
[DATE],
[TIME],
[RATE],
[CHARGE],
[TASK],
[TIMEORCHARGE],
[COMMENT],
[BILLED],
[NCCODE],
[DOCKET],
[TEAM],
[TRACKREF],
[REC_IRR],
[SHOULDHAVE],
[INVOICENO],
[PERIOD],
[YEAR],
[BILLINGPERIOD],
[BILLINGYEAR],
[OPENINV],
[RECORDID],
[ActionId],
[StageCode],
[Leave],
[BilledAmount],
[IncludeInBill],
[BILLINGDATE],
[AxleNumber],
[WriteOffDT],
[WriteOffID],
[LogFor]'
IF @Handler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[HandlerLogFor]'
END
IF @User <> N''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[LoginLogFor]'
END
SET @NCOMMAND = @NCOMMAND + N')
SELECT [TIE].[MATTER],
[TIE].[FEEEARN],
[TIE].[DATE],
[TIE].[TIME],
[TIE].[RATE],
[TIE].[CHARGE],
[TIE].[TASK],
[TIE].[TIMEORCHARGE],
[TIE].[COMMENT],
[TIE].[BILLED],
[TIE].[NCCODE],
[TIE].[DOCKET],
[TIE].[TEAM],
[TIE].[TRACKREF],
[TIE].[REC_IRR],
[TIE].[SHOULDHAVE],
[TIE].[INVOICENO],
[TIE].[PERIOD],
[TIE].[YEAR],
[TIE].[BILLINGPERIOD],
[TIE].[BILLINGYEAR],
[TIE].[OPENINV],
[TIE].[RECORDID],
[TIE].[ActionId],
[TIE].[StageCode],
[TIE].[Leave],
[TIE].[BilledAmount],
[TIE].[IncludeInBill],
[TIE].[BILLINGDATE],
[TIE].[AxleNumber],
[TIE].[WriteOffDT],
[TIE].[WriteOffID],
''M'''
IF @Handler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@Handler'
END
IF @User <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@User'
END
SET @NCOMMAND = @NCOMMAND + N'
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @RecordID'
EXEC sp_executesql @NCOMMAND, N'@RecordID INT, @Handler VARCHAR(10), @User NVARCHAR(128)', @RecordID, @Handler, @User
DECLARE @MatterCode VARCHAR(20)
UPDATE [TIE]
SET @MatterCode = [TIE].[MATTER],
[TIE].[MATTER] = @Matter
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @RecordID
EXEC [dbo].[ky_WDUpdateMatterTimeBalance] @MatterCode
EXEC [dbo].[ky_WDUpdateMatterTimeBalance] @Matter
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_MyContactFetchMatters'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_MyContactFetchMatters]
END
GO
CREATE PROCEDURE
KAAS_MyContactFetchMatters
(@Handler VARCHAR(10),
@CaseCode VARCHAR(20),
@which INT,
@BitWiseID BIGINT,
@userprompt1 VARCHAR(100)='User 1 Field' OUT,
@userprompt2 VARCHAR(100)='User 2 Field' OUT,
@userprompt3 VARCHAR(100)='User 3 Field' OUT)
AS
/*******************************************************************************************************
* To Fetch Matter based on Selected contact. *
* *
* Stored Procedure Name : [dbo].[KAAS_MyContactFetchMatters] *
* Copied from : [dbo].[ky_NETMyContactFetchMatters] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @Command VARCHAR(MAX)
SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0))
SELECT @UserPrompt1 = REPLACE(RTRIM(ISNULL(CTL.[UserPrompt1], '')), ':', ''),
@UserPrompt2 = REPLACE(RTRIM(ISNULL(CTL.[UserPrompt2], '')), ':', ''),
@UserPrompt3 = REPLACE(RTRIM(ISNULL(CTL.[UserPrompt3], '')), ':', '')
FROM [dbo].[Control] CTL
SET @COMMAND = '
SELECT CONVERT(VARCHAR(20), MAT.[Code]) AS [Code],
CONVERT(VARCHAR(20), CON.[Code]) AS [CaseCode],
RTRIM(ISNULL(FC.[COLOURDESC], '''')) AS [FileColour],
RTRIM(ISNULL(CON.[Name], '''')) AS [Name],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Description],
RTRIM(ISNULL(HAN.[NAME], '''')) AS [Fe],
RTRIM(ISNULL(MAT.[User1], '''')) AS User1,
RTRIM(ISNULL(MAT.[User2], '''')) AS User2,
RTRIM(ISNULL(MAT.[User3], '''')) AS User3,
MAT.[Started] As [Started],
RTRIM(ISNULL(DP.[DESC], '''')) AS [Dept],
RTRIM(ISNULL(WT.[DESC], '''')) AS [WorkType],
ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) AS [Privileges],
RTRIM(ISNULL(MAT.[OldRef], '''')) AS [OldRef],
RTRIM(ISNULL(CON.[Address], '''')) AS [Address],
ISNULL(FC.[RGBColour], -1) AS [FileRGBColour]
FROM [dbo].[matters] MAT
LEFT OUTER JOIN [dbo].[RecentMatterList] RML
ON RML.[FEE] = ''' + @handler + '''
AND RML.[MATTER] = MAT.[Code]
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
LEFT OUTER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = MAT.[FECode]
LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP
ON MNP.[MATTER] = MAT.[Code]
LEFT OUTER JOIN [dbo].[FileColours] FC
ON FC.[COLOURCODE] = MAT.[FileColour]
LEFT OUTER JOIN [dbo].[Departments] DP
ON DP.[CODE] = MAT.[Dept]
LEFT OUTER JOIN [dbo].[WorkTypes] WT
ON WT.[CODE] = MAT.[WType]
WHERE CON.[Code] = ''' + @CaseCode + ''' AND (ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, ''' + CONVERT(VARCHAR(20), @BitWiseID) + ''') <> 0
OR MNP.[Privileges] IS NULL)'
IF (@which = 1)
BEGIN
SET @COMMAND = @COMMAND + 'AND MAT.[FECode] = ''' + @handler + ''''
END
IF (@which = 2)
BEGIN
SET @COMMAND = @COMMAND + 'ORDER BY ISNULL(RML.[DateField], ''18000101'') DESC,MAT.[Code]'
END
EXEC (@COMMAND)
END
GO
IF OBJECT_ID('[dbo].[KAAS_NetWorkingDays]') IS NOT NULL
DROP FUNCTION [dbo].[KAAS_NetWorkingDays]
GO
CREATE FUNCTION [dbo].[KAAS_NetWorkingDays] (
@FROMDATE DATETIME,
@TODATE DATETIME)
RETURNS INT
AS
/*******************************************************************************************************
* Returns number of total working days between two dates. *
* *
* Stored Procedure Name : [dbo].[KAAS_NetWorkingDays] *
* Copied from : [dbo].[ky_NETNetWorkingDays] *
* *
* Modification History : *
* 2019-04-16 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @I INT
DECLARE @COUNT INT
DECLARE @DIFF INT
SELECT @DIFF = DATEDIFF(D, @FROMDATE, @TODATE),
@I = 0,
@COUNT = 0
WHILE(@I < @DIFF)
BEGIN
SELECT @COUNT = @COUNT + 1
WHERE DATENAME(DW, DATEADD(D, @I, @FROMDATE)) NOT IN ('Saturday','Sunday')
SET @I = @I + 1
END
RETURN @COUNT
END
GO
IF OBJECT_ID(N'[KAAS_OtherCaseDetailsDelete]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_OtherCaseDetailsDelete]
GO
CREATE PROCEDURE [KAAS_OtherCaseDetailsDelete]
(
@CaseCode VARCHAR(200),
@FILEPREFIX VARCHAR(200),
@FIELDNAME VARCHAR(200),
@Result INT OUTPUT
)
AS
/*******************************************************************************************************
* This procedure is used to Delete data for other case details main grid.. *
* *
* Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsDelete] *
* Copied from : [dbo].[ky_NETOtherCaseDetailsDelete] *
* *
* Modification History : *
* 2019-07-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF(SELECT TOP 1 1 FROM CaseUDFAnswers WHERE CASECODE = @CaseCode AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME) IS NOT NULL
BEGIN
DELETE FROM
dbo.CaseUDFAnswers
WHERE
CASECODE = @CaseCode AND UDFFILE = @FILEPREFIX AND UDFNAME = @FIELDNAME
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_OtherCaseDetailsFetchEditDialog'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsFetchEditDialog]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_OtherCaseDetailsFetchEditDialog]
(@CaseCode VARCHAR(20),
@FILEPREFIX VARCHAR(5),
@FIELDNAME VARCHAR(30),
@UDFCategory VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure is used to FETCH data for other case details Edit Dialog. *
* *
* Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsFetchEditDialog] *
* Copied from : [dbo].[ky_NETOtherCaseDetailsFetchEditDialog] *
* *
* Modification History : *
* 2019-07-09 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @INITIALVALUE VARCHAR(MAX)
DECLARE @INITIALFORMAT VARCHAR(50)
DECLARE @INITIALTYPE VARCHAR(11)
DECLARE @INITIALNUMERICVALUE DECIMAL(20, 2)
DECLARE @INITIALDATE DATETIME
SELECT @INITIALVALUE = [SUF].[INITIALVALUE],
@INITIALFORMAT = [SUF].[FORMAT],
@INITIALTYPE = [SUF].[TYPE]
FROM [dbo].[SystemUserDefinedFields] [SUF]
WHERE [SUF].[FILEPREFIX] = @FILEPREFIX
AND [SUF].[FIELDNAME] = @FIELDNAME
IF @INITIALVALUE IS NOT NULL
BEGIN
IF (@INITIALTYPE = 'Numeric') OR (@INITIALFORMAT LIKE '@n%')
BEGIN
BEGIN TRY
SET @INITIALNUMERICVALUE = CONVERT(DECIMAL(20, 2), CONVERT(MONEY, @INITIALVALUE))
END TRY
BEGIN CATCH
END CATCH
END
ELSE IF (@INITIALTYPE = 'Date') OR (@INITIALFORMAT LIKE '@d%') OR (@INITIALFORMAT LIKE '%DD%') OR (@INITIALFORMAT LIKE '%MM%') OR (@INITIALFORMAT LIKE '%YY%')
BEGIN
BEGIN TRY
SET @INITIALVALUE = [dbo].[ky_SUFFormat](@INITIALVALUE, @INITIALFORMAT)
IF RTRIM(ISNULL(@INITIALVALUE, '')) <> ''
BEGIN
SET @INITIALDATE = CONVERT(DATETIME, [dbo].[ky_SUFFormat](@INITIALVALUE, '@D8'))
END
END TRY
BEGIN CATCH
END CATCH
END
END
SELECT [UDC].[UDFCategory] AS [GroupName],
[SUF].[PROMPT] AS [Detail],
[SUF].[LENGTH] AS [Size],
[SUF].[FORMAT] AS [Format],
RTRIM(ISNULL([CUF].[UDFFILE], ''))
+ RTRIM(ISNULL([CUF].[UDFNAME], '')) AS [DocumentCode],
CASE WHEN [CUF].[CASECODE] IS NULL
THEN CONVERT(VARCHAR(11),
@INITIALDATE,
106)
ELSE CONVERT(VARCHAR(11),
[CUF].[DateValue],
106) END AS [DateValue],
CASE WHEN [CUF].[CASECODE] IS NULL
THEN ISNULL(@INITIALNUMERICVALUE, 0)
ELSE [CUF].[NumberValue] END AS [NumberValue],
CASE WHEN [CUF].[CASECODE] IS NULL
THEN ISNULL(@INITIALVALUE, '')
ELSE [CUF].[TEXT1] END AS [TEXT1],
[SUF].[TYPE] AS [TYPE],
[CUF].[SEQNO] AS [SEQNO],
[SUF].[FILEPREFIX] AS [FILEPREFIX],
[SUF].[FIELDNAME] AS [FIELDNAME],
[SUF].[UDFCategory] AS [UDFCategory],
RTRIM(ISNULL([SUF].[VALIDATION], '')) AS [VALIDATION],
ISNULL([SUF].[LENGTH], 0) AS [LENGTH],
ISNULL([SUF].[LOW], 0) AS [LOW],
ISNULL([SUF].[HIGH], 0) AS [HIGH],
ISNULL([SUF].[DECMIAL], 0) AS [DECIMAL]
FROM [dbo].[SystemUserDefinedFields] [SUF]
LEFT OUTER JOIN [dbo].[CaseUDFAnswers] [CUF]
ON [CUF].[CASECODE] = @CaseCode
AND [CUF].[UDFFILE] = [SUF].[FILEPREFIX]
AND [CUF].[UDFNAME] = [SUF].[FIELDNAME]
LEFT OUTER JOIN [dbo].[UDFCategory] [UDC]
ON [UDC].[ID] = [SUF].[UDFCategory]
WHERE [SUF].[FILEPREFIX] = @FILEPREFIX
AND [SUF].[FIELDNAME] = @FIELDNAME
ORDER BY [CUF].[SEQNO]
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_OtherCaseDetailsFetchListOnly',N'P')IS NOT NULL
DROP PROCEDURE KAAS_OtherCaseDetailsFetchListOnly
GO
CREATE PROCEDURE KAAS_OtherCaseDetailsFetchListOnly
(
@FIELDNAME VARCHAR(30)
)
AS BEGIN
/*******************************************************************************************************
* This procedure is used to Fetch validation on selected list only (L) is selected in UDF Fields. *
* *
* Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsFetchListOnly] *
* Copied from : [dbo].[ky_NETOtherCaseDetailsFetchListOnly] *
* *
* Modification History : *
* 2019-07-09 Vinodhan K Created *
*******************************************************************************************************/
SET NOCOUNT ON
SELECT
RTRIM([FIELDNAME]) AS [FIELDNAME]
,RTRIM([CODE]) AS [CODE]
,RTRIM([DESCRIPTION]) AS [DESCRIPTION]
FROM
UDFLookups
WHERE
[FIELDNAME] = @FIELDNAME
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_OtherCaseDetailsFetchMainGrid',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsFetchMainGrid]
GO
CREATE PROCEDURE [dbo].[KAAS_OtherCaseDetailsFetchMainGrid]
(@CaseCode VARCHAR(20),
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SearchText VARCHAR(400) = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL)
AS
/*******************************************************************************************************
* To FETCH data for other case details main grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsFetchMainGrid] *
* Copied from : [dbo].[ky_NETOtherCaseDetailsFetchMainGrid] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
* 2019-08-23 Dheepin Vijith K Modified - Default sorting changed to DESC to show the latest values *
* on the top of the grid first *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(RTRIM(ISNULL(@SearchText, '')) = '' OR RTRIM(@SearchText) = '')
BEGIN
SET @SearchText = ''
END
IF(ISNULL(@SortColumn, '') = '' OR RTRIM(LTRIM(@SortColumn)) = '')
BEGIN
SET @SortColumn = 'SeqNo'
END
IF(ISNULL(@SortDirection, '') = '' OR RTRIM(LTRIM(@SortDirection)) = '')
BEGIN
SET @SortDirection = '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)
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
(RTRIM(CaseUDFAnswers.CASECODE) = RTRIM(@CaseCode))) AS FoundTable
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'SeqNo' THEN CAST([SeqNo] AS INT)
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'SeqNo' THEN CAST([SeqNo] AS INT)
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'GroupName' THEN [GroupName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'GroupName' THEN [GroupName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Detail' THEN [Detail]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Detail' THEN [Detail]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'DateValue' THEN [DateValue]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'DateValue' THEN [DateValue]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Value' THEN [Value]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Value' THEN [Value]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'NumberValue' THEN [NumberValue]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'NumberValue' THEN [NumberValue]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Text1' THEN [Text1]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Text1' THEN [Text1]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Type' THEN [Type]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Type' THEN [Type]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'FilePrefix' THEN [FilePrefix]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'FilePrefix' THEN [FilePrefix]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'FieldName' THEN [FieldName]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'FieldName' THEN [FieldName]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'UDFCategory' THEN [UDFCategory]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'UDFCategory' THEN [UDFCategory]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'ForCopy' THEN [ForCopy]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'ForCopy' THEN [ForCopy]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Decimal' THEN [Decimal]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Decimal' THEN [Decimal]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Length' THEN [Length]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Length' THEN [Length]
END
END DESC
SELECT
*
FROM
#OtherCaseDetailTable
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#OtherCaseDetailTable
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_OtherCaseDetailsInsert'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsInsert]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_OtherCaseDetailsInsert]
(@CaseCode VARCHAR(200),
@FIELDNAME VARCHAR(200),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This procedure is used to insert data for other case details main grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsInsert] *
* Copied from : [dbo].[ky_NETOtherCaseDetailsInsert] *
* *
* Modification History : *
* 2019-07-10 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseUDFAnswers] CUF
WHERE CUF.[CASECODE] = @CaseCode
AND RTRIM(ISNULL(CUF.[UDFFILE], '')) = 'UDF:'
AND RTRIM(ISNULL(CUF.[UDFNAME], '')) = @FIELDNAME)
BEGIN
DECLARE @SEQNO BIGINT
SET @SEQNO = 0
SELECT TOP 1
@SEQNO = CUF.[SEQNO]
FROM [dbo].[CaseUDFAnswers] CUF
WHERE CUF.[CASECODE] = @CaseCode
ORDER BY CUF.[SEQNO] DESC
SET @SEQNO = @SEQNO + 1
DECLARE @INITIALVALUE VARCHAR(MAX)
DECLARE @INITIALFORMAT VARCHAR(50)
DECLARE @INITIALTYPE VARCHAR(11)
DECLARE @INITIALNUMERICVALUE DECIMAL(20, 2)
DECLARE @INITIALDATE DATETIME
SELECT @INITIALVALUE = [SUF].[INITIALVALUE],
@INITIALFORMAT = [SUF].[FORMAT],
@INITIALTYPE = [SUF].[TYPE]
FROM [dbo].[SystemUserDefinedFields] [SUF]
WHERE [SUF].[FILEPREFIX] = 'UDF:'
AND [SUF].[FIELDNAME] = @FIELDNAME
IF @INITIALVALUE IS NOT NULL
BEGIN
IF (@INITIALTYPE = 'Numeric') OR (@INITIALFORMAT LIKE '@n%')
BEGIN
BEGIN TRY
SET @INITIALNUMERICVALUE = CONVERT(DECIMAL(20, 2), CONVERT(MONEY, @INITIALVALUE))
END TRY
BEGIN CATCH
END CATCH
END
ELSE IF (@INITIALTYPE = 'Date') OR (@INITIALFORMAT LIKE '@d%') OR (@INITIALFORMAT LIKE '%DD%') OR (@INITIALFORMAT LIKE '%MM%') OR (@INITIALFORMAT LIKE '%YY%')
BEGIN
BEGIN TRY
SET @INITIALVALUE = [dbo].[ky_SUFFormat](@INITIALVALUE, @INITIALFORMAT)
IF RTRIM(ISNULL(@INITIALVALUE, '')) <> ''
BEGIN
SET @INITIALDATE = CONVERT(DATETIME, [dbo].[ky_SUFFormat](@INITIALVALUE, '@D8'))
END
END TRY
BEGIN CATCH
END CATCH
END
END
INSERT
INTO [dbo].[CaseUDFAnswers]
([CASECODE],
[UDFFILE],
[UDFNAME],
[SEQNO],
[DateValue],
[NumberValue],
[TEXT1])
VALUES(RTRIM(@CaseCode),
'UDF:',
RTRIM(@FIELDNAME),
@SEQNO,
@INITIALDATE,
@INITIALNUMERICVALUE,
@INITIALVALUE)
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_OtherCaseDetailsloadCmb', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsloadCmb]
END
GO
CREATE PROCEDURE [dbo].[KAAS_OtherCaseDetailsloadCmb]
AS
/*******************************************************************************************************
* This procedure is used to Fetch data for other case details Add Dropdown. *
* *
* Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsloadCmb] *
* Copied from : [dbo].[ky_NETOtherCaseDetailsloadCmb] *
* *
* Modification History : *
* 2019-07-10 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SELECT UDFC.[UDFCategory] AS [Category],
SUDF.[PROMPT] AS [FIELD],
SUDF.[FIELDNAME] AS [FIELDNAME]
FROM [dbo].[SystemUserDefinedFields] AS SUDF
LEFT OUTER JOIN [dbo].[UDFCategory] AS UDFC
ON SUDF.[UDFCategory] = UDFC.[ID]
WHERE SUDF.[FILEPREFIX] = 'UDF:'
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_OtherCaseDetailsUpdate'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_OtherCaseDetailsUpdate]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_OtherCaseDetailsUpdate]
(@CaseCode VARCHAR(200),
@FILEPREFIX VARCHAR(200),
@FIELDNAME VARCHAR(200),
@Text VARCHAR(MAX),
@Number DECIMAL(18,2),
@Date DATETIME,
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This procedure is used To insert data for other case details main grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_OtherCaseDetailsUpdate] *
* Copied from : [dbo].[ky_NETOtherCaseDetailsUpdate] *
* *
* Modification History : *
* 2019-07-10 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF @Date = CONVERT(DATETIME, '')
BEGIN
SET @Date = NULL
END
ELSE IF YEAR(@Date) < 1901
BEGIN
SET @Date = NULL
END
ELSE
BEGIN
SET @DATE = CONVERT(DATETIME, CONVERT(VARCHAR, @Date, 112))
END
IF RTRIM(ISNULL(@Text, '')) = ''
BEGIN
IF (@Number = '0.00') AND (@Date IS NULL)
BEGIN
SET @Text = ''
END
ELSE IF (@Date IS NULL)
BEGIN
IF (SELECT TYPE from SystemUserDefinedFields where FILEPREFIX=@FILEPREFIX and FIELDNAME=@FIELDNAME )<> 'Text'
BEGIN
SET @Text = CONVERT(VARCHAR(30), @Number)
END
END
ELSE
BEGIN
SET @Number = [dbo].[KAAS_FN_ConvertDateToClarion](@Date)
SET @Text = CONVERT(VARCHAR(30), @Number)
END
END
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseUDFAnswers] CUF
WHERE CUF.[CASECODE] = @CaseCode
AND CUF.[UDFFILE] = @FILEPREFIX
AND CUF.[UDFNAME] = @FIELDNAME)
BEGIN
UPDATE CUF
SET CUF.[TEXT1] = @Text,
CUF.[NumberValue] = @Number,
CUF.[DateValue] = @Date
FROM [dbo].[CaseUDFAnswers] CUF
WHERE CUF.[CASECODE] = @CaseCode
AND CUF.[UDFFILE] = @FILEPREFIX
AND CUF.[UDFNAME] = @FIELDNAME
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_OutlayBalanceDrilldown'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_OutlayBalanceDrilldown]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_OutlayBalanceDrilldown]
(@Handler VARCHAR(10),
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SearchText VARCHAR(100) = '',
@SortColumn VARCHAR(20) = '',
@SortDirection VARCHAR(10) = '')
AS
/**************************************************************************************************
*
* Details the values that make up the Outlay Balance in ky_NETDashboard
*
* Stored procedure name : KAAS_OutlayBalanceDrilldown
* Copied from : ky_NETOutlayBalanceDrilldown
*
* Modification History
* 2015-06-24 Pino Carafa Created
* 2015-11-25 John Ginnane Formatting balance so negative balances are wrapped in parenthese
* 2016-01-11 John Ginnane Undone previous changes as VB .NET handles this
* 2019-22-04 Vinodhan K Created KAAS_OutlayBalanceDrilldown
*
***************************************************************************************************/
BEGIN
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Row_Number'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#OutlayBalanceSAM3Table
FROM
(
SELECT RTRIM(ISNULL(MAT.[CODE], '''')) AS [Code],
RTRIM(ISNULL(CON.[NAME], '''')) AS [ClientName],
RTRIM(ISNULL(MAT.[Description], '''')) AS [Description],
ISNULL(MAT.[OutlayBal], 0) AS [OutlayBalance],
ISNULL(MAT.[ClientBal], 0) AS [ClientACBalance]
FROM [dbo].[matters] MAT
INNER JOIN [dbo].[contacts] CON
ON CON.[code] = MAT.[clientcode]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[MAT].[CODE] LIKE ''%' + @SearchText + '%''
OR
[CON].[NAME] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[MAT].[OutlayBal] LIKE ''%' + @SearchText + '%''
OR
[MAT].[ClientBal] LIKE ''%' + @SearchText + '%''
)
)
AND MAT.[FECode] = @Handler
AND MAT.[Closed] <> ''Y''
AND MAT.[OutlayBal] <> 0) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#OutlayBalanceSAM3Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#OutlayBalanceSAM3Table'
END
ELSE
BEGIN
SET @NCOMMAND = N'
SELECT
IDENTITY(INT, 1,1) AS [Row_Number],
*
INTO
#OutlayBalanceSAM4Table
FROM
(SELECT RTRIM(ISNULL(OBL.[CODE], '''')) AS [Code],
RTRIM(ISNULL(CON.[NAME], '''')) AS [ClientName],
RTRIM(ISNULL(MAT.[Description], '''')) AS [MatterDescription],
ISNULL(OBL.[OutlayBalance], 0) AS [OutlayBalance],
ISNULL(OBL.[ClientACBalance], 0) AS [ClientACBalance]
FROM ( SELECT MT1.[Code],
ISNULL(SUM(ISNULL(TRN.[OutlayValue], 0)), 0) AS [OutlayBalance],
ISNULL(SUM(ISNULL(TRN.[ClientCurrent], 0) + ISNULL(TRN.[ClientDeposit], 0)), 0) AS [ClientACBalance]
FROM [dbo].[matters] MT1
INNER JOIN [dbo].[Transactions] TRN
ON TRN.[MatterCode] = MT1.[Code]
AND ( ( (TRN.[Posted] = ''Y'')
AND (TRN.[RecType] <> ''V'')
AND (TRN.[CorrectionInd] = ''L''))
OR ( (TRN.[Posted] IS NULL)
AND (TRN.[RecType] IS NULL)
AND (TRN.[CorrectionInd] IS NULL)))
WHERE MT1.[FECode] = @Handler
AND MT1.[Closed] <> ''Y''
GROUP BY MT1.[Code]) OBL
INNER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[contacts] CON
ON CON.[code] = MAT.[clientcode]
ON MAT.[code] = OBL.[code]
WHERE
(
RTRIM(LTRIM(@SearchText)) = ''''
OR
(
[OBL].[CODE] LIKE ''%' + @SearchText + '%''
OR
[CON].[NAME] LIKE ''%' + @SearchText + '%''
OR
[MAT].[Description] LIKE ''%' + @SearchText + '%''
OR
[OBL].[OutlayBalance] LIKE ''%' + @SearchText + '%''
OR
[OBL].[ClientACBalance] LIKE ''%' + @SearchText + '%''
)
)
AND ISNULL(OBL.[OutlayBalance], 0) <> 0) AS FoundTable
ORDER BY ' + @SortColumn + ' ' + @SortDirection + ' SELECT
*
FROM
#OutlayBalanceSAM4Table
WHERE
(
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT
(COUNT([Row_Number])) AS TotalRecords
FROM
#OutlayBalanceSAM4Table'
END
EXECUTE sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @SearchText VARCHAR(100), @StartRow INT, @EndRow INT', @Handler = @Handler, @SearchText = @SearchText, @StartRow = @StartRow, @EndRow = @EndRow
END
GO
IF OBJECT_ID(N'KAAS_OutlayCodes', N'P') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[KAAS_OutlayCodes]
END
GO
CREATE PROCEDURE [dbo].[KAAS_OutlayCodes]
AS
/****************************************************************************
*
* List outlay codes
*
* Stored Procedure Name : KAAS_OutlayCodes
* Copied From : ky_NETSPOutlayCodes
*
* Modification history:
* ????-??-?? ??? Created
* 2019-08-06 John Ginnane Added to SVN
* 2019-08-06 Vinodhan Created KAAS_OutlayCodes
****************************************************************************/
BEGIN
DECLARE @COMMAND VARCHAR(MAX)
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @COMMAND = ' SELECT RTRIM(ISNULL(OLC.[CODE], '''')) AS [Code],
RTRIM(ISNULL(OLC.[DESCRIPTION], '''')) AS [Description]
FROM [dbo].[OutlayCode] OLC
ORDER BY OLC.[Description]'
END
ELSE
BEGIN
SET @COMMAND = ' SELECT RTRIM(ISNULL(OLC.[OutlayCode], '''')) AS [Code],
RTRIM(ISNULL(OLC.[DESCRIPTION], '''')) AS [Description]
FROM [dbo].[OutlayCode] OLC
ORDER BY OLC.[Description]'
END
EXEC (@COMMAND)
END
GO
IF OBJECT_ID(N'KAAS_OWA_GetDocumentsIM',N'P')IS NOT NULL
DROP PROCEDURE KAAS_OWA_GetDocumentsIM
GO
CREATE PROCEDURE [dbo].[KAAS_OWA_GetDocumentsIM]
(
@matter VARCHAR(20),
@ActionID INT,
@DocFolderID INT,
@IMDocs VARCHAR(MAX),
@PageNo INT,
@PageSize INT,
@SearchText VARCHAR(4000),
@FileType VARCHAR(4000),
@SortColumn VARCHAR(50) = '',
@SortDirection VARCHAR(10) = '',
@OWASetting_HideImagesOnSelectingAttachments BIT
)
AS
/*************************************************************************************************************
* *
* [dbo].[KAAS_GetDocumentsIM] *
* *
* Get list of Documents applied with OWA setting for the Document List in OWA *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * Original: [ky_NETSPGetDocumentsIM] * *
* * First compatible version: 5.7.2.1 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2019-07-15 Ramesh K Copied from KAAS_GetDocumentsIM
*************************************************************************************************************/
BEGIN
DECLARE @res TABLE
([id] INT identity(1, 1) PRIMARY KEY,
[ActionId] INT,
[TrackReference] INT,
[IMDocID] VARCHAR(500),
[IMClass] VARCHAR(20),
[DocClass] VARCHAR(10),
[Document] VARCHAR(2000),
[DiaryDate] DATETIME,
[DocumentDate] DATETIME,
[TYPE] VARCHAR(20),
[Attachments] CHAR(1),
[EMAIL] VARCHAR(1),
[EMAILFROM] VARCHAR(200),
[EMAILSENT] DATETIME,
[EMAILTO] VARCHAR(1000),
[CurrentVersion] INT,
[IsInDocFolder] BIT,
[IsShared] BIT,
[UniqueId] INT)
DECLARE @classes TABLE
([KeyhouseClass] INT,
[IMClass] INT,
[ClassCode] VARCHAR(20),
[ClassDescription] VARCHAR(100))
DECLARE @IMDocTable TABLE
([IMDocID] VARCHAR(500) PRIMARY KEY,
[Description] VARCHAR(2000),
[IMClass] VARCHAR(20),
[IMType] VARCHAR(20),
[EmailFrom] VARCHAR(200),
[EmailTo] VARCHAR(1000),
[EmailSent] DATETIME,
[DocumentDate] DATETIME)
DECLARE @Diary TABLE
([ActionID] INT PRIMARY KEY)
DECLARE @FileTypeList TABLE
([FileType] VARCHAR(20) PRIMARY KEY)
INSERT INTO @FileTypeList
SELECT
RTRIM(LTRIM([Item]))
FROM
KAAS_FN_SplitString(@FileType, ',')
DECLARE @idoc INT
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNo = ISNULL(@PageNo, 0) - 1; -- 0 BASED INDEX
IF(@PageNo > -1)
BEGIN
SET @StartRow = ((@PageNo) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'RowNumber'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
IF (ISNULL(@DocFolderID, 0) = 0) AND (ISNULL(@ActionID, 0) = 0)
BEGIN
SET @IMDocs = ISNULL(@IMDocs, '' + CHAR(13) + CHAR(10) + '')
IF (ISNULL(PATINDEX('%' + CHAR(13) + CHAR(10) + @IMDocs
END
BEGIN TRY
EXEC sp_xml_preparedocument @idoc OUTPUT, @IMDocs
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @idoc OUTPUT, ''
END CATCH
INSERT
INTO @IMDocTable
([IMDocID],
[Description],
[IMClass],
[IMType],
[EmailFrom],
[EmailTo],
[EmailSent],
[DocumentDate])
SELECT [DAL].[IMDocID],
[DAL].[Description],
[DAL].[IMClass],
[DAL].[IMType],
[DAL].[EmailFrom],
[DAL].[EmailTo],
[DAL].[EmailSent],
[DAL].[DocumentDate]
FROM OPENXML(@idoc, 'IMDocs/Doc', 2)
WITH([IMDocID] VARCHAR(500) '@DocId',
[Description] VARCHAR(2000) '@Description',
[IMClass] VARCHAR(20) '@ClassId',
[IMType] VARCHAR(20) '@TypeId',
[EmailFrom] VARCHAR(200) '@EmailFrom',
[EmailTo] VARCHAR(1000) '@EmailTo',
[EmailSent] DATETIME '@EmailSent',
[DocumentDate] DATETIME '@DocumentDate') [DAL]
EXEC sp_xml_removedocument @idoc
INSERT
INTO @res
([ActionId],
[TrackReference],
[IMDocID],
[IMClass],
[DocClass],
[Document],
[DiaryDate],
[DocumentDate],
[EmailSent],
[TYPE],
[Attachments],
[EMAIL],
[EmailFrom],
[EmailTo],
[CurrentVersion],
[IsInDocFolder],
[IsShared])
SELECT CONVERT(INT, NULL) AS [ActionID],
CONVERT(INT, NULL) AS [TrackReference],
[DAL].[IMDocID] AS [IMDocID],
[DAL].[IMClass] AS [IMClass],
CONVERT(VARCHAR(10), NULL) AS [DocClass],
[DAL].[Description] AS [Document],
CONVERT(DATETIME,
ISNULL([DAL].[DocumentDate],
[DAL].[EmailSent])) AS [DiaryDate],
CONVERT(DATETIME,
ISNULL([DAL].[DocumentDate],
[DAL].[EmailSent])) AS [DocumentDate],
CONVERT(DATETIME,
[DAL].[EmailSent]) AS [EMAILSENT],
CASE CONVERT(VARCHAR(20),[DAL].[IMTYPE])
WHEN 'WORD' THEN 'DOC'
WHEN 'WORDX' THEN 'DOC'
WHEN 'WPF' THEN 'DOC'
WHEN 'ANSI' THEN 'DOC'
WHEN 'ACROBAT' THEN 'PDF'
WHEN 'EXCEL' THEN 'XLS'
WHEN 'EXCELX' THEN 'XLS'
WHEN 'MIME' THEN CASE WHEN [DAL].[IMClass] = 'E-Mail'
THEN 'MSG'
ELSE 'MIME' END
ELSE [DAL].[IMTYPE] END AS [TYPE],
CONVERT(CHAR(1),'N') AS [Attachments],
CONVERT(CHAR(1), CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail'
THEN 'Y'
ELSE 'N' END) AS [EMAIL],
CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail'
THEN [DAL].[EMAILFROM]
ELSE CONVERT(VARCHAR(200), NULL) END AS [EmailFrom],
CASE WHEN ISNULL([DAL].[IMClass], '') = 'E-Mail'
THEN [DAL].[EMAILTO]
ELSE CONVERT(VARCHAR(1000), NULL) END AS [EmailTo],
CONVERT(INT, 1) AS [CurrentVersion],
0 AS [IsInDocFolder],
0 AS [IsShared]
FROM @IMDocTable [DAL]
LEFT OUTER JOIN [dbo].[DAIMXref] [DX]
ON [DX].[IMDocID] = [DAL].[IMDocID]
WHERE [DX].[TrackReference] IS NULL
INSERT
INTO @Diary
([ActionID])
SELECT [DIA].[ActionID]
FROM [dbo].[diary] [DIA]
WHERE [DIA].[CASECODE] = @matter
INSERT
INTO @res
([ActionId],
[TrackReference])
SELECT [DIA].[ActionID],
[DAT].[TrackReference]
FROM @Diary [DIA]
INNER JOIN [dbo].[DiaryAttachments] [DAT]
ON [DAT].[DiaryID] = [DIA].[ActionID]
WHERE
(
(
@SearchText = ''
OR
([DAT].FILEPATH LIKE '%' + @SearchText + '%')
)
AND
(
ISNULL(@FileType, '') = ''
OR ([DAT].[TYPE] IN (select FileType from @FileTypeList ))
)
AND
(
@OWASetting_HideImagesOnSelectingAttachments = 0
OR
[dbo].[KAAS_FN_ISIMAGE_TYPE]([DAT].[TYPE]) <> 1
)
)
ORDER BY [DAT].[TrackReference] DESC
UPDATE [RES]
SET [RES].[IMDocID] = CONVERT(VARCHAR(500), ISNULL([DX].[IMDocID], '')),
[RES].[IMClass] = CONVERT(VARCHAR(20), ISNULL([DL].[IMClass], '')),
[RES].[DocClass] = CONVERT(VARCHAR(10), ISNULL([DA].[DocClass], '')),
[RES].[Document] = RTRIM(CONVERT(VARCHAR(2000), ISNULL([DA].[Document], ''))),
[RES].[DiaryDate] = CONVERT(DATETIME, [DIA].[DATE]),
[RES].[DocumentDate] = CONVERT(DATETIME, [DA].[DATEENTERED]),
[RES].[EMAILSENT] = CONVERT(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])),
[RES].[TYPE] = CONVERT(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))),
[RES].[Attachments] = CONVERT(CHAR(1), 'Y'),
[RES].[EMAIL] = CONVERT(VARCHAR(1),
CASE WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y'
THEN 'Y'
ELSE 'N' END),
[RES].[EMAILFROM] = CONVERT(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))),
[RES].[EMAILTO] = RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')),
[RES].[CurrentVersion] = [DV].[CurrentVersion],
[RES].[IsInDocFolder] = [IND].[InDocFolder],
[RES].[IsShared] = [SHD].[IsShared],
[RES].[uniqueid] = [MAT].[uniqueid]
FROM @res [RES]
CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion]
FROM [dbo].[DiaryAttachmentVersioning] [DAV]
WHERE TRACKREFERENCE = [RES].[TRACKREFERENCE]) [DV]
LEFT OUTER JOIN [dbo].[DAIMXRef] [DX]
INNER JOIN @IMDocTable [DL]
ON [DL].[IMDocID] = [DX].[IMDocID]
ON [DX].[TrackReference] = [RES].[TrackReference]
LEFT OUTER JOIN [dbo].[DiaryAttachments] [DA]
INNER JOIN [dbo].[diary] [DIA]
INNER JOIN [dbo].[matters] [MAT]
ON [MAT].[CODE] = [DIA].[CASECODE]
ON [DIA].[ActionID] = [DA].[DiaryID]
ON [DA].[TrackReference] = [RES].[TrackReference]
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1) END AS [InDocFolder]
FROM [dbo].[DocFolderDocuments] [DFD]
WHERE [DFD].[TrackReference] = [DA].[TrackReference]) [IND]
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1) END AS [IsShared]
FROM [dbo].[FileSharingDocuments] [FSD]
INNER JOIN [dbo].[FileSharingMapping] [FSM]
INNER JOIN [dbo].[FileSharingDocFolders] [FSDF]
ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID]
AND [FSDF].[Shared] = 1
ON [FSM].[id] = [FSD].[FileSharingMappingID]
WHERE [FSD].[TrackReference] = [DA].[TrackReference]) [SHD]
WHERE
[RES].[id] >= @StartRow AND
[RES].[id] <= @EndRow
END
ELSE IF ISNULL(@DocFolderID, 0) <> 0
BEGIN
INSERT
INTO @res
([ActionId],
[TrackReference],
[IMDocID],
[IMClass],
[DocClass],
[Document],
[DiaryDate],
[DocumentDate],
[EmailSent],
[TYPE],
[Attachments],
[EMAIL],
[EmailFrom],
[EmailTo],
[CurrentVersion],
[IsInDocfolder],
[IsShared],
[UniqueId])
SELECT CONVERT(INT, [DA].[DIARYID]) AS [ActionID],
CONVERT(INT, [DA].[TrackReference]) AS [TrackReference],
CONVERT(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID],
CONVERT(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass],
CONVERT(VARCHAR(10), ISNULL([DA].[DocClass], '')) AS [DocClass],
RTRIM(CONVERT(VARCHAR(2000), ISNULL([DA].[Document], ''))) AS [Document],
CONVERT(DATETIME, [DIA].[DATE]) AS [DiaryDate],
CONVERT(DATETIME, [DA].[DATEENTERED]) AS [DocumentDate],
CONVERT(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) AS [EMAILSENT],
CONVERT(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) AS [TYPE],
CASE
WHEN [DIA].[ATTACHMENTS] = 'Y'
THEN 'Y'
ELSE 'N'
END AS [Attachments],
CONVERT(VARCHAR(1), CASE
WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y'
THEN 'Y'
ELSE 'N'
END) AS [EMAIL],
CONVERT(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO],
[DV].[CurrentVersion],
CONVERT(BIT, 1),[SHD].[IsShared],[MAT].[uniqueid]
FROM [dbo].[DocFolderDocuments] [DDC]
INNER JOIN [dbo].[DiaryAttachments] [DA]
INNER JOIN [dbo].[matters] [MAT]
ON [DA].CASECODE = [MAT].Code
INNER JOIN [dbo].[diary] [DIA]
ON [DIA].[ACTIONID] = [DA].[DiaryID]
ON [DA].[TrackReference] = [DDC].[TrackReference]
CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion]
FROM [dbo].[DiaryAttachmentVersioning] [DAV]
WHERE TRACKREFERENCE = [DA].[TRACKREFERENCE]) [DV]
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1)
END AS [IsShared]
FROM [dbo].[FileSharingDocuments] [FSD]
INNER JOIN [dbo].[FileSharingMapping] [FSM]
INNER JOIN [dbo].[FileSharingDocFolders] [FSDF]
ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID]
AND [FSDF].[Shared] = 1
ON [FSM].[id] = [FSD].[FileSharingMappingID]
AND [FSM].[FileSharingDocFoldersID] = @DocFolderID
WHERE [FSD].[TrackReference] = [DA].[TrackReference]) [SHD]
LEFT OUTER JOIN [dbo].[DAIMXRef] [DX]
LEFT OUTER JOIN @IMDocTable [DL]
ON [DL].[IMDocID] = [DX].[IMDocID]
ON [DX].[TrackReference] = [DA].[TrackReference]
WHERE [DDC].[DocFolderID] = @DocFolderID AND
(
(
@SearchText = ''
OR
([DA].FILEPATH LIKE '%' + @SearchText + '%')
)
AND
(
ISNULL(@FileType, '') = ''
OR ([DA].[TYPE] IN (select FileType from @FileTypeList ))
)
)
AND
(
@OWASetting_HideImagesOnSelectingAttachments = 0
OR
[dbo].[KAAS_FN_ISIMAGE_TYPE]([DA].[TYPE]) <> 1
)
ORDER BY
[TrackReference] DESC
END
ELSE
BEGIN
INSERT
INTO @res
([ActionId],
[TrackReference],
[IMDocID],
[IMClass],
[DocClass],
[Document],
[DiaryDate],
[DocumentDate],
[EmailSent],
[TYPE],
[Attachments],
[EMAIL],
[EmailFrom],
[EmailTo],
[CurrentVersion],
[IsInDocFolder],
[IsShared],
[UniqueId])
SELECT CONVERT(INT, [DA].[DIARYID]) AS [ActionID],
CONVERT(INT, [DA].[TrackReference]) AS [TrackReference],
CONVERT(VARCHAR(500), ISNULL([DX].[IMDocID], '')) AS [IMDocID],
CONVERT(VARCHAR(20), ISNULL([DL].[IMClass], '')) AS [IMClass],
CONVERT(VARCHAR(10), ISNULL([DA].[DocClass], '')) AS [DocClass],
RTRIM(CONVERT(VARCHAR(2000), ISNULL([DA].[Document], ''))) AS [Document],
CONVERT(DATETIME, [DIA].[DATE]) AS [DiaryDate],
CONVERT(DATETIME, [DA].[DATEENTERED]) AS [DocumentDate],
CONVERT(DATETIME, ISNULL([DIA].[TxmDate], [DIA].[Date])) AS [EMAILSENT],
CONVERT(VARCHAR(20), UPPER(RTRIM(ISNULL([DA].[TYPE], '')))) AS [TYPE],
CASE
WHEN [DIA].[ATTACHMENTS] = 'Y'
THEN 'Y'
ELSE 'N'
END AS [Attachments],
CONVERT(VARCHAR(1), CASE
WHEN RTRIM(ISNULL([DIA].[EMAIL], 'N')) = 'Y'
THEN 'Y'
ELSE 'N'
END) AS [EMAIL],
CONVERT(VARCHAR(200), RTRIM(ISNULL([DIA].[EMAILADDRESS], ''))) AS [EMAILFROM],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), [DIA].[ADDRESSTO]), '')) AS [EMAILTO],
[DV].[CurrentVersion],
[IND].[InDocFolder],
[SHD].[IsShared],
[MAT].[uniqueid]
FROM [dbo].[diary] [DIA]
INNER JOIN [dbo].[DiaryAttachments] [DA]
INNER JOIN [dbo].[matters] [MAT]
ON [DA].CASECODE = [MAT].Code
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1) END AS [InDocFolder]
FROM [dbo].[DocFolderDocuments] [DFD]
WHERE [DFD].[TrackReference] = [DA].[TrackReference]) [IND]
CROSS APPLY (SELECT CASE WHEN COUNT(1) = 0
THEN CONVERT(BIT, 0)
ELSE CONVERT(BIT, 1) END AS [IsShared]
FROM [dbo].[FileSharingDocuments] [FSD]
INNER JOIN [dbo].[FileSharingMapping] [FSM]
INNER JOIN [dbo].[FileSharingDocFolders] [FSDF]
ON [FSDF].[DocFolderID] = [FSM].[FileSharingDocFoldersID]
AND [FSDF].[Shared] = 1
ON [FSM].[id] = [FSD].[FileSharingMappingID]
WHERE [FSD].[TrackReference] = [DA].[TrackReference]) [SHD]
ON [DA].[DiaryID] = [DIA].[ActionID]
CROSS APPLY (SELECT ISNULL(MAX([DAV].[Version]), 0) + 1 AS [CurrentVersion]
FROM [dbo].[DiaryAttachmentVersioning] [DAV]
WHERE TRACKREFERENCE = [DA].[TRACKREFERENCE]) [DV]
LEFT OUTER JOIN [dbo].[DAIMXRef] [DX]
LEFT OUTER JOIN @IMDocTable [DL]
ON [DL].[IMDocID] = [DX].[IMDocID]
ON [DX].[TrackReference] = [DA].[TrackReference]
WHERE [DIA].[ACTIONID] = @ActionID AND
(
(
@SearchText = ''
OR
([DA].FILEPATH LIKE '%' + @SearchText + '%')
)
AND
(
ISNULL(@FileType, '') = ''
OR ([DA].[TYPE] IN (select FileType from @FileTypeList ))
)
AND
(
@OWASetting_HideImagesOnSelectingAttachments = 0
OR
[dbo].[KAAS_FN_ISIMAGE_TYPE]([DA].[TYPE]) <> 1
)
)
ORDER BY [TrackReference] DESC
END
INSERT
INTO @classes
([KeyhouseClass],
[IMClass],
[ClassCode],
[ClassDescription])
SELECT [CLS].[KeyhouseClass],
[CLS].[IMClass],
[CLS].[ClassCode],
CASE WHEN [CLS].[KeyhouseClass] = 1
THEN RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], ''))
ELSE CASE WHEN [CLS].[ClassCode] = 'ATTNOTES'
THEN 'Attendance Notes'
WHEN [CLS].[ClassCode] = 'BILL'
THEN 'Bill'
WHEN [CLS].[ClassCode] = 'FAX'
THEN 'Fax'
WHEN [CLS].[ClassCode] = 'LEGAL'
THEN 'Legal'
WHEN [CLS].[ClassCode] = 'SCAN'
THEN 'Scan'
WHEN [CLS].[ClassCode] = 'COMPARE'
THEN 'Compare Document'
WHEN [CLS].[ClassCode] = 'DISCUSSION'
THEN 'Discussion'
WHEN [CLS].[ClassCode] = 'DOC'
THEN 'Document'
WHEN [CLS].[ClassCode] = 'E-MAIL'
THEN 'E-Mail'
WHEN [CLS].[ClassCode] = 'EVENT'
THEN 'Event'
WHEN [CLS].[ClassCode] = 'LETTER'
THEN 'Letter'
WHEN [CLS].[ClassCode] = 'MEMO'
THEN 'Memo'
WHEN [CLS].[ClassCode] = 'PAGE_ICON'
THEN 'Page Icon'
WHEN [CLS].[ClassCode] = 'TASK'
THEN 'Task'
WHEN [CLS].[ClassCode] = 'TEXT'
THEN 'Text File'
WHEN [CLS].[ClassCode] = 'WEBDOC'
THEN 'InfoLink Web Page'
ELSE ISNULL([CLS].[CLASSCODE], '') END END AS [ClassDescription]
FROM (SELECT DISTINCT
1 AS [KeyhouseClass],
0 AS [IMClass],
CONVERT(VARCHAR(20), [RES].[DocClass]) AS [ClassCode]
FROM @res [RES]
WHERE ISNULL([RES].[DocClass], '') <> ''
UNION
SELECT DISTINCT
0 AS [KeyhouseClass],
1 AS [IMClass],
CONVERT(VARCHAR(20), [RES].[IMClass]) AS [ClassCode]
FROM @res [RES]
WHERE ISNULL([RES].[IMClass], '') <> '') [CLS]
LEFT OUTER JOIN [dbo].[DocumentClasses] DCL
ON [CLS].[KeyhouseClass] = 1
AND DCL.[CLASSCODE] = [CLS].[ClassCode]
UPDATE [RES]
SET [RES].[EMAIL] = CASE WHEN (ISNULL([RES].[EMAIL], '') = 'Y'
AND [RES].[TrackReference] = [OMS].[TrackReference])
THEN 'Y'
WHEN (ISNULL([RES].[TYPE], '') = 'MSG'
AND [RES].[TrackReference] = [OMS].[TrackReference])
THEN 'Y'
ELSE 'N' END,
[RES].[Attachments] = CASE WHEN (ISNULL([RES].[EMAIL], '') = 'Y'
AND [RES].[TrackReference] = [OMS].[TrackReference])
THEN [RES].[Attachments]
WHEN (ISNULL([RES].[TYPE], '') = 'MSG'
AND [RES].[TrackReference] = [OMS].[TrackReference])
THEN [RES].[Attachments]
ELSE 'N' END
FROM @res [RES]
OUTER APPLY (SELECT TOP 1
[MST].[TrackReference] AS [TrackReference],
[MST].[Type] AS [Type]
FROM [dbo].[diaryattachments] [MST]
WHERE [MST].[diaryid] = [RES].[ActionID]
ORDER BY CASE WHEN [MST].TYPE = 'MSG'
THEN 0
ELSE 1
END,
[MST].[TrackReference]) [OMS]
WHERE
[RES].[id] >= @StartRow AND
[RES].[id] <= @EndRow AND
[RES].[ACTIONID] IS NOT NULL
;WITH DocumentTable AS(
SELECT
ROW_NUMBER() OVER(ORDER BY [id]) AS [RowNumber],
[RES].[id],
[RES].[DiaryDate],
ISNULL([RES].[ActionID], 0) AS [ACTIONID],
[RES].[DocumentDate],
[RES].[IMDocID],
[RES].[IMClass],
[CLS].[ClassDescription] AS [DocumentClassDescription],
[RES].[DocClass],
[RES].[Document],
ISNULL([RES].[TrackReference], 0) AS [TRACKREFERENCE],
[RES].[TYPE] AS [TYPE],
[RES].[Attachments] AS [Attachments],
[RES].[EMAIL],
RTRIM(ISNULL(CONVERT(VARCHAR(200), SUBSTRING(ISNULL([DIA].[EMAILADDRESS], [RES].[EMAILFROM]), 1, 200)), '')) AS [EMAILADDRESS],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(ISNULL([DIA].[ADDRESSTO], [RES].[EMAILTO]), 1, 1000)), '')) AS [ADDRESSTO],
[RES].[EMAILSENT],
RTRIM(ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(2000),[DIA].[SUBJECT]),'')), 1,1000)),'')) AS [SUBJECT],
RTRIM(ISNULL(CONVERT(VARCHAR(120), SUBSTRING(RTRIM(ISNULL(CONVERT(VARCHAR(120), [DIA].[DisplayText]),'')),1,120)),'')) AS [ShortText],
RTRIM(ISNULL([DAT].[NAME], '')) AS [NAME],
CASE WHEN [UNC].[UNC] IS NULL THEN RTRIM(ISNULL([DAT].[FILEPATH], ''))
ELSE [UNC].[UNC] + SUBSTRING(RTRIM(ISNULL([DAT].[FILEPATH], '')), 3, LEN(RTRIM(ISNULL([DAT].[FILEPATH], ''))) - 2) END AS [FILEPATH],
RTRIM(ISNULL([DIA].[PROCESSTYPE], '')) AS [PROCESSTYPE],
RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) AS [ACTIONTYPE],
CASE WHEN [DIA].[ACTIONTYPE] = 'A'
THEN 'Action'
WHEN [DIA].[ACTIONTYPE] = 'N'
THEN 'Note'
WHEN [DIA].[ACTIONTYPE] = 'P'
THEN 'Appointment'
WHEN [DIA].[ACTIONTYPE] = 'R'
THEN 'Reminder'
WHEN [DIA].[ACTIONTYPE] = 'E'
THEN 'Email'
WHEN [DIA].[ACTIONTYPE] = 'T'
THEN 'Phone Message'
WHEN [DIA].[ACTIONTYPE] = 'D'
THEN 'Dictation'
WHEN [DIA].[ACTIONTYPE] = 'U'
THEN 'Undertaking'
WHEN [DIA].[ACTIONTYPE] = 'S'
THEN 'Statute Date'
WHEN [DIA].[ACTIONTYPE] = 'C'
THEN 'Critical Date'
WHEN [DIA].[ACTIONTYPE] = 'O'
THEN 'Court Date'
WHEN [DIA].[ACTIONTYPE] = 'M'
THEN 'Scanned Post/Mail'
WHEN RTRIM(ISNULL([DIA].[ACTIONTYPE], '')) = ''
THEN CASE WHEN [RES].[EMAIL] = 'Y'
THEN 'Email'
WHEN [RES].[IMDocID] <> ''
THEN 'IManage document'
ELSE 'Unknown' END
ELSE 'Action Type: ' + [DIA].[ACTIONTYPE] END AS [ActionTypeDescription],
RTRIM(ISNULL([DAT].[SOURCE], CASE WHEN [DIA].[ACTIONID] IS NULL THEN 'IManage' ELSE '' END)) AS [DOCUMENTSOURCE],
[RES].[CurrentVersion],
[RES].[IsInDocFolder],
[RES].[IsShared],
[RES].[UniqueId]
FROM @res [RES]
LEFT OUTER JOIN [dbo].[DiaryAttachments] [DAT]
INNER JOIN [dbo].[diary] [DIA]
ON [DIA].[ACTIONID] = [DAT].[DIARYID]
LEFT OUTER JOIN [dbo].[UNCAlias] [UNC]
ON SUBSTRING([DAT].[FilePath], 2, 1) = ':' AND [UNC].[Drive] = SUBSTRING([DAT].[FilePath], 1, 1)
ON [DAT].[TRACKREFERENCE] = [RES].[TrackReference]
LEFT OUTER JOIN @classes [CLS]
ON [CLS].[KeyhouseClass] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN 0 ELSE 1 END
AND [CLS].[IMClass] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN 1 ELSE 0 END
AND [CLS].[ClassCode] = CASE WHEN ISNULL([RES].[DocClass], '') = '' THEN [RES].[IMClass] ELSE [RES].[DocClass] END
)SELECT * FROM DocumentTable
WHERE
DocumentTable.[RowNumber] BETWEEN @StartRow AND @EndRow
ORDER BY
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Type' THEN [TYPE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Type' THEN [TYPE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Document' THEN [Document]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Document' THEN [Document]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'DocumentClassDescription' THEN [DocumentClassDescription]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'DocumentClassDescription' THEN [DocumentClassDescription]
END
END DESC
OPTION (KEEPFIXED PLAN)
--2018-02-26 END
SELECT COUNT(*) AS [TotalRecord]
FROM @res [RES]
--bit confused, what the below commented statement do? no harm, since its commented. :-)
--BEGIN
-- DECLARE @WKCODE CHAR(4)
-- DECLARE @MatterCode VARCHAR(20)
-- DECLARE @folderid INT
-- DECLARE @UseDocFolders VARCHAR(10)
-- SELECT TOP 1
-- @UseDocFolders = CONVERT(VARCHAR(10), [KeyValue])
-- FROM [dbo].[Settings] [SET]
-- WHERE [SET].[KeyName] = 'UseDocFolders'
-- SET @UseDocFolders = CASE WHEN ISNULL(@UseDocFolders, '') = 'True' THEN 'True' ELSE 'False' END
-- IF @UseDocFolders = 'False'
-- BEGIN
-- -- Dummy statement
-- SELECT TOP 0
-- CONVERT(INT, 0) AS [id],
-- CONVERT(INT, 0) AS [parent],
-- CONVERT(VARCHAR(500), '') AS [foldername],
-- CONVERT(INT, 0) AS [foldericon]
-- RETURN
-- END
-- SELECT TOP 1
-- @MatterCode = [SM].[CODE],
-- @WKCODE = [TMP].[WKCODE]
-- FROM [dbo].[SearchMatters] SM
-- INNER JOIN [dbo].[CaseMaster] CSM
-- ON [CSM].[CSCODE] = SM.[Code]
-- LEFT OUTER JOIN [dbo].[Templates] [TMP]
-- ON [TMP].[WKCODE] = [CSM].[CSWKTCODE]
-- WHERE [CSM].[CSCODE] = @matter
-- IF @MatterCode IS NULL
-- BEGIN
-- -- Dummy statement
-- SELECT TOP 0
-- CONVERT(INT, 0) AS [id],
-- CONVERT(INT, 0) AS [parent],
-- CONVERT(VARCHAR(500), '') AS [foldername],
-- CONVERT(INT, 0) AS [foldericon]
-- RETURN
-- END
-- SELECT TOP 1
-- @folderid = MDF.[DocFolderID]
-- FROM [dbo].[MatterDocFolders] MDF
-- WHERE [MDF].[MatterCode] = @MatterCode
-- IF @folderid IS NULL
-- BEGIN
-- DECLARE @DefaultRootFolderName VARCHAR(500)
-- SELECT @DefaultRootFolderName = CONVERT(VARCHAR(500), [SET].[KeyValue])
-- FROM [dbo].[Settings] [SET]
-- WHERE [SET].[KeyName] = 'DocFolderDefaultRootName'
-- SET @DefaultRootFolderName = RTRIM(ISNULL(@DefaultRootFolderName, 'Documents'))
-- IF @WKCODE IS NULL
-- BEGIN
-- EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] ''
-- UPDATE [DF]
-- SET [DF].[foldername] = @DefaultRootFolderName
-- FROM [dbo].[DocFolders] [DF]
-- WHERE [DF].[id] = @folderid
-- END
-- ELSE
-- BEGIN
-- SELECT TOP 1
-- @folderid = CDF.[DocFolderID]
-- FROM [dbo].[CasePlanDocFolders] CDF
-- WHERE [CDF].[WKCode] = @WKCODE
-- IF @folderid IS NULL
-- BEGIN
-- EXEC @folderid = [dbo].[KAAS_SaveDocFolderTree] ''
--UPDATE [DF]
-- SET [DF].[foldername] = @DefaultRootFolderName
-- FROM [dbo].[DocFolders] [DF]
-- WHERE [DF].[id] = @folderid
-- INSERT
-- INTO [dbo].[CasePlanDocFolders]
-- ([WKCode],
-- [DocFolderID])
-- SELECT @WKCODE,
-- @folderid
-- END
-- DECLARE @DUP TABLE
-- ([id] INT)
-- INSERT INTO @DUP
-- EXEC @folderid = [dbo].[KAAS_DuplicateDocFolderTree] @folderid
-- END
-- INSERT
-- INTO [dbo].[MatterDocFolders]
-- ([MatterCode],
-- [DocFolderID])
-- SELECT @MatterCode,
-- @folderid
-- END
IF ISNULL(@DocFolderID, 0) <> 0
BEGIN
SELECT * FROM [dbo].[KAAS_FN_GetDocFolders](@matter, @DocFolderID, 1, 1) WHERE parent <> -1
END
ELSE
BEGIN
SELECT TOP 0
CONVERT(INT, 0) AS [seq],
CONVERT(INT, 0) AS [id],
CONVERT(INT, 0) AS [parent],
CONVERT(VARCHAR(500), '') AS [foldername],
CONVERT(INT, 0) AS [foldericon],
CONVERT(VARBINARY(MAX), NULL) AS [folderimage],
CONVERT(BIT, 0) AS [foldershared],
CONVERT(BIT, 0) AS [folderisours],
CONVERT(INT, 0) AS [documentcount]
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_PauseDayBookEntry'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_PauseDayBookEntry]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_PauseDayBookEntry]
(@RecordID INT)
AS
/*******************************************************************************************************
* Sets a Daybook Entry's Stopwatch status to 1 *
* *
* Stored Procedure Name : [dbo].[KAAS_PauseDayBookEntry] *
* Copied from : [dbo].[ky_NETSPPauseDayBookEntry] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
UPDATE [TDB]
SET [TDB].[StopwatchStatus] = 1
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[RecordID] = @RecordID
END
GO
IF EXISTS (SELECT TOP 1 1
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[KAAS_RemoveMatterLedgerComment]')
AND type in (N'P', N'PC'))
BEGIN
DROP PROCEDURE [dbo].[KAAS_RemoveMatterLedgerComment]
END
GO
CREATE PROCEDURE [dbo].[KAAS_RemoveMatterLedgerComment] (
@LREF INT)
AS
/*******************************************************************************************************
* It is used to remove a matter ledger comment. *
* *
* Stored Procedure Name : [dbo].[KAAS_RemoveMatterLedgerComment] *
* Copied from : [dbo].[ky_NETRemoveMatterLedgerComment] *
* *
* Modification History : *
* 2019-06-27 Vinodhan K Created *
* 2019-06-28 Vinodhan K Searching, Paging and Sorting functionality added *
*******************************************************************************************************/
BEGIN
DECLARE @SQL NVARCHAR(MAX)
IF [dbo].[ISSAM4]() = 0
BEGIN
SET @SQL = '
DELETE MTL
FROM [dbo].[MatterLedger] AS MTL
WHERE MTL.[LREF] = @LREF'
END
ELSE
BEGIN
SET @SQL = '
DELETE TRN
FROM [dbo].[Transactions] AS TRN
WHERE TRN.[XnID] = @LREF
AND TRN.[XnType] = ''C''
AND TRN.[TypeCode] = ''Comment'''
END
EXEC sp_executesql @SQL,
N'@LREF INT',
@LREF = @LREF
END
GO
IF OBJECT_ID(N'KAAS_RenameDocument',N'P')IS NOT NULL
DROP PROCEDURE KAAS_RenameDocument
GO
CREATE PROCEDURE KAAS_RenameDocument
(
@FilePath NVARCHAR(255),
@FileName NVARCHAR(255)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @strUNCFileName VARCHAR(500)
DECLARE @command NVARCHAR(255)
SET @strUNCFileName = @FilePath
--This part here, is used to check and convert with unc alias valid path.
IF (SUBSTRING(@strUNCFileName, 2, 1) = ':')
BEGIN
SELECT @strUNCFileName = ISNULL(MAX(UNC.[UNC]) + SUBSTRING(@strUNCFileName, 3, LEN(@strUNCFileName) - 2), @strUNCFileName)
FROM [dbo].[UNCAlias] UNC
WHERE SUBSTRING(@strUNCFileName, 1, 1) = UNC.[Drive]
SET @strUNCFileName = LEFT(@strUNCFileName, 2) + REPLACE(RIGHT(@strUNCFileName, LEN(@strUNCFileName) - 2), '\\', '\')
END
--here, we used to rename the document.
SET @command = 'ren "' +@strUNCFileName + '" "'+ @FileName +'"'
EXEC xp_cmdshell @command
exec xp_cmdshell 'whoami'
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_ReorderCaseContact'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ReorderCaseContact]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ReorderCaseContact]
(@CaseCode VARCHAR(20),
@CONTYPE VARCHAR(12),
@CONNUM SMALLINT,
@NEWCONNUM SMALLINT)
AS
/*****************************************************************************************
*
* Stored Procedure name : KAAS_ReorderCaseContact
* Copied From : [dbo].[ky_NETSPReorderCaseContact]
*
* Moves the specified contact so that it will become the one with CONNUM @NEWCONNUM,
* by moving everything that currently has that CONNUM or higher one up,
* and then changing the CONNUM of the selected item to the new value. Finally, it then
* resequences the CONNUM value to ensure they CONNUMs remain contiguous.
*
* Modification History
* Pino Carafa 2016-01-11 Created
* Vinodhan 2019-07-29 Created KAAS_ReorderCaseContact
*
*****************************************************************************************/
BEGIN
DECLARE @NEW TABLE
([ID] INT IDENTITY(1, 1),
[CONNUM] SMALLINT)
-- move the one that needs to be moved out of the way.
UPDATE CC
SET CC.[CONNUM] = 0
FROM [dbo].[CaseContacts] CC
WHERE CC.[CASECODE] = @CaseCode
AND CC.[CONTYPE] = @CONTYPE
AND CC.[CONNUM] = @CONNUM
-- move all the ones that will end up after the one that needs to be moved one space up, thus
-- ensuring that the @NEWCONNUM value is free
UPDATE CC
SET CC.[CONNUM] = CC.[CONNUM] + 1
FROM [dbo].[CaseContacts] CC
WHERE CC.[CASECODE] = @CaseCode
AND CC.[CONTYPE] = @CONTYPE
AND CC.[CONNUM] >= @NEWCONNUM
-- go back to the one that was moved out of the way, and give it @NEWCONNUM
UPDATE CC
SET CC.[CONNUM] = @NEWCONNUM
FROM [dbo].[CaseContacts] CC
WHERE CC.[CASECODE] = @CaseCode
AND CC.[CONTYPE] = @CONTYPE
AND CC.[CONNUM] = 0
-- List them all in sequence, which may now contain gaps
INSERT
INTO @NEW
([CONNUM])
SELECT CC.[CONNUM]
FROM [dbo].[CaseContacts] CC
WHERE CC.[CASECODE] = @CaseCode
AND CC.[CONTYPE] = @CONTYPE
ORDER BY CC.[CONNUM]
-- But by replacing [CONNUM] with the Identity column value
-- we now ensure that we're back to a contiguous order.
UPDATE CC
SET CC.[CONNUM] = NW.[ID]
FROM @NEW NW
INNER JOIN [dbo].[CaseContacts] CC
ON CC.[CASECODE] = @CaseCode
AND CC.[CONTYPE] = @CONTYPE
AND CC.[CONNUM] = NW.[CONNUM]
SELECT NW.[ID] AS [ActualConNum]
FROM @NEW NW
WHERE NW.[CONNUM] = @NEWCONNUM
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_ReseedActionID'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_ReseedActionID]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_ReseedActionID]
AS
/*******************************************************************************************************
* Dummy Procedure in preparation for the use of the DiarySeed table *
* *
* Stored Procedure Name : [dbo].[KAAS_ReseedActionID] *
* Copied from : [dbo].[ky_NETReseedActionID] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
RETURN
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_RestartDayBookEntry'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_RestartDayBookEntry]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_RestartDayBookEntry]
(@RecordID INT)
AS
/*******************************************************************************************************
* Resets a Day Book's Stopwatch status to 0 *
* Note: In order for this to work, the Fee Earner must NOT have other Daybook Entries with status 0 *
* *
* Stored Procedure Name : [dbo].[KAAS_RestartDayBookEntry] *
* Copied from : [dbo].[ky_NETSPRestartDayBookEntry] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @FeeEarn VARCHAR(10)
SELECT @FeeEarn = [TDB].[FeeEarn]
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[RecordID] = @RecordID
IF @FeeEarn IS NOT NULL
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[FeeEarn] = @FeeEarn
AND [TDB].[RecordID] <> @RecordID
AND [TDB].[StopwatchStatus] = 0)
BEGIN
UPDATE [TDB]
SET [TDB].[StopwatchStatus] = 0
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[RecordID] = @RecordID
SELECT CONVERT(INT, 0) AS [NewStopwatchStatus]
RETURN
END
SELECT CONVERT(INT, 1) AS [NewStopwatchStatus]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_RevenueInsertintoDiary'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_RevenueInsertintoDiary]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_RevenueInsertintoDiary]
(@CASECODE VARCHAR(20),
@value VARCHAR(100),
@principal VARCHAR(100),
@interest VARCHAR(100),
@From VARCHAR(100)='',
@DebtDescription VARCHAR(MAX),
@TimeEntryId INT,
@LoginCode VARCHAR(30))
AS
/*******************************************************************************************************
* This Procedure is used to insert a Dairy Action whenever changes are made in debt details *
* or while allocating payment in Debt Ledger. *
* *
* Stored Procedure Name : [dbo].[KAAS_RevenueInsertintoDiary] *
* Copied from : [dbo].[ky_NETRevenueInsertintoDiary2] in KY_NETRevenueInsertintoDiary *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @ActionId AS BIGINT
DECLARE @Subject AS VARCHAR(500)
DECLARE @ActionCode AS VARCHAR(15)
DECLARE @FnCode AS VARCHAR(10)
DECLARE @TeamCode AS VARCHAR(10)
EXEC @ActionId = [dbo].[ky_NETGetNextActionID]
DECLARE @TimeConvert INT
SET @TimeConvert = dbo.ky_ConvertTimeToClarion(GETDATE())
SET @Principal =(SELECT CAST(@Principal AS NUMERIC(18,2)))
SET @interest =(SELECT CAST(@interest AS NUMERIC(18,2)))
SELECT @FnCode = ISNULL([HAN].[Code], ''),
@TeamCode = ISNULL([HAN].[Team], '')
FROM [dbo].[Handlers] AS [HAN]
WHERE [HAN].[Code] = @LoginCode
DECLARE @Text1 AS VARCHAR(5000)
IF @From ='AddDebtDetails'
BEGIN
SET @Text1 = 'Manual Amendment.'
+ CHAR(13)
+ 'Sequence No: '
+ @Value
+ CHAR(13)
+ 'New Tax Amount: '
+ CONVERT(VARCHAR(100), @Principal)
+ CHAR(13)
+ 'New Interest Amount: '
+ CONVERT(VARCHAR(100), @interest )
SET @ActionCode ='R004'
SET @Subject ='Manual Debt Breakdown Amendment'
END
ELSE IF @From = 'Cost'
BEGIN
SELECT @Text1 = 'Cost added: '
+ LTRIM(RTRIM(@DebtDescription))
+ CHAR(13)
+ 'Amount: '
+ LTRIM(RTRIM(@Value)),
@ActionCode = 'C01',
@Subject = 'Cost added: '
+ LTRIM(RTRIM(@DebtDescription))
END
ELSE
BEGIN
SET @Text1 = CASE WHEN @From='Direct Payment'
THEN 'Direct Payment' + CHAR(13)
WHEN @From ='Credit'
THEN 'Credit' + CHAR(13)
WHEN @From ='Set off'
THEN 'Set off' + CHAR(13)
ELSE 'Payment Received From Tax Payer' + CHAR(13) END
SET @Text1 = @Text1
+ 'Amount:'
+ @Value
+ CHAR(13)
+ 'Tax:'
+ CONVERT(VARCHAR(100), @Principal)
+ CHAR(13)
+ 'Interest:'
+ CONVERT(VARCHAR(100), @interest )
SET @ActionCode ='O01'
SET @Subject ='Payment received'
END
DECLARE @DisplaytextValue VARCHAR(220)
SET @DisplaytextValue = [dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(CONVERT(VARCHAR(MAX), @Text1), ''), 200)
INSERT
INTO [dbo].[Diary]
([CASECODE],
[DATE],
[STATUS],
[ACTIONCODE],
[ACTIONSTATUS],
[ACTIONTYPE],
[PROCESSTYPE],
[FNCODE],
[TEAMCODE],
[TEXT1],
[TEXT2],
[DELEGATEDFNR],
[DELEGATEDDATE],
[DELEGATEDBACKDATE],
[DEFERRED],
[DUEDATE],
[PUBLISH],
[DYSTARTTIME],
[DYENDTIME],
[DURATION],
[ACTIONID],
[ORGINALACTIONID],
[PRIORITY],
[HIGHLIGHTED],
[MILESTEONETYPE],
[ATTACHMENTS],
[PROCESSSTATUS],
[WORKPROCESS],
[BILLABLE],
[BILLDESCRIPTION],
[EMAILADDRESS],
[ADDRESSTO],
[CCTo],
[BCCTo],
[EMAIL],
[SUBJECT],
[DELEGATIONSTATUS],
[DRAFTBILLNO],
[CHEQUEREQNO],
[TxmSent],
[Location],
[HearingType],
[ForCopy],
[TxmDate],
[TxmSeqNo],
[DisplayText],
[Flag])
VALUES(@CASECODE,
GETDATE(),
1,
@ACTIONCODE,
'NA',
'A',
'I',
@FNCODE,
@TEAMCODE,
@TEXT1 ,
@DebtDescription,
null,
null,
null,
null,
GETDATE(),
'N',
@TIMECONVERT,
@TIMECONVERT,
0,
@ACTIONID,
@ACTIONID,
'N',
null,
null,
null,
0,
0,
0,
null,
null,
null,
null,
null,
null,
@Subject,
0,
0,
0,
0,
null,
'Not Applicable',
null,
null,
0,
@DisplaytextValue,
0)
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[DATE],
[TIME],
[DATER],
[TIMER],
[DUEDATE],
[DUETIME],
[REVIEW],
[STATUS],
[OWNER],
[DELEGATE],
[DELEGATESTATUS],
[ActionType],
[FromHandler],
[ReturnedBy],
[DelType])
VALUES(@ACTIONID,
@FNCODE,
@TEAMCODE,
GETDATE(),
@TIMECONVERT,
null,
@TIMECONVERT,
GETDATE(),
@TIMECONVERT,
null,
1,
'Y',
@FNCODE,
0,
null,
@FNCODE,
null,
'Created')
UPDATE [TIE]
SET [TIE].[ActionID] = @ActionID
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @TimeEntryId
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_SaveAssociateUDF'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_SaveAssociateUDF]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_SaveAssociateUDF]
(@NAMECODE VARCHAR(20),
@FILEPREFIX VARCHAR(100),
@FIELDNAME VARCHAR(100),
@Result INT OUTPUT)
AS
/*************************************************************************************************************
* *
* Stored Procedure Name : KAAS_SaveAssociateUDF *
* Copied From : [dbo].[ky_NETSaveAssociateUDF] *
* *
* Adds a UDF to an associate *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: - * *
* * First compatible version: 5.6.3.5 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2019-01-15 John Ginnane KEYD-5645 - Created *
* 2019-02-05 Pino Carafa Added the Default Value *
* 2019-02-06 Pino Carafa Cater for longer date formats *
* 2019-02-07 Pino Carafa A blank default date should result in a NULL Datevalue, not 01 JAN 1900 *
* *
* 2019-07-27 Vinodhan K Created KAAS_SaveAssociateUDF *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[AssociateUDF] AS AUD
WHERE AUD.[NameCode] = @NAMECODE
AND RTRIM(ISNULL(AUD.[FilePrefix], '')) = @FILEPREFIX
AND RTRIM(ISNULL(AUD.[FieldName], '')) = @FIELDNAME)
BEGIN
DECLARE @INITIALVALUE VARCHAR(MAX)
DECLARE @INITIALFORMAT VARCHAR(50)
DECLARE @INITIALTYPE VARCHAR(11)
DECLARE @INITIALNUMERICVALUE DECIMAL(20, 2)
DECLARE @INITIALDATE DATETIME
SELECT @INITIALVALUE = [SUF].[INITIALVALUE],
@INITIALFORMAT = [SUF].[FORMAT],
@INITIALTYPE = [SUF].[TYPE]
FROM [dbo].[SystemUserDefinedFields] [SUF]
WHERE [SUF].[FILEPREFIX] = 'AUD:'
AND [SUF].[FIELDNAME] = @FIELDNAME
IF @INITIALVALUE IS NOT NULL
BEGIN
IF (@INITIALTYPE = 'Numeric') OR (@INITIALFORMAT LIKE '@n%')
BEGIN
BEGIN TRY
SET @INITIALNUMERICVALUE = CONVERT(DECIMAL(20, 2), CONVERT(MONEY, @INITIALVALUE))
END TRY
BEGIN CATCH
END CATCH
END
ELSE IF (@INITIALTYPE = 'Date') OR (@INITIALFORMAT LIKE '@d%') OR (@INITIALFORMAT LIKE '%DD%') OR (@INITIALFORMAT LIKE '%MM%') OR (@INITIALFORMAT LIKE '%YY%')
BEGIN
BEGIN TRY
SET @INITIALVALUE = [dbo].[KAAS_FN_SUFFormat](@INITIALVALUE, @INITIALFORMAT)
IF RTRIM(ISNULL(@INITIALVALUE, '')) <> ''
BEGIN
SET @INITIALDATE = CONVERT(DATETIME, [dbo].[KAAS_FN_SUFFormat](@INITIALVALUE, '@D8'))
END
END TRY
BEGIN CATCH
END CATCH
END
END
SET @INITIALNUMERICVALUE = ISNULL(@INITIALNUMERICVALUE, 0)
INSERT
INTO [dbo].[AssociateUDF]
([NameCode],
[FilePrefix],
[FieldName],
[TextValue],
[DateValue],
[NumberValue])
VALUES(RTRIM(@NAMECODE),
@FILEPREFIX,
RTRIM(@FIELDNAME),
@INITIALVALUE,
@INITIALDATE,
@INITIALNUMERICVALUE)
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_SaveBankChangesLog]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_SaveBankChangesLog]
GO
CREATE PROCEDURE
[KAAS_SaveBankChangesLog]
(@Logon VARCHAR(20),
@Table VARCHAR(20),
@Code VARCHAR(20),
@Description VARCHAR(500))
AS
/*******************************************************************************************************
Stored Procedure name : KAAS_SaveBankChangesLog
Copied From : ky_NETSaveBankChangesLog
This stored procedure is used to Insert the log of the changes made in Bank details of clients
Modification History
*
* 2019-07-31 Vinodhan K Created KAAS_SaveBankChangesLog
*
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
INSERT
INTO [dbo].EFTTableChangeLog
([Logon],
[TableName],
[Code],
[Description],
[Date])
VALUES(@Logon,
@Table,
@Code,
@Description,
GETDATE())
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_SaveDATHash'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_SaveDATHash]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_SaveDATHash]
(@TrackReference INT,
@HASH VARCHAR(32),
@SENT VARCHAR(17))
AS
/*******************************************************************************************************
* Saves a Subject + Body "Hash" of an outlook message, so that the message can be retrieved even *
* when Outlook fails to determine the Sender's SMTP Address from a .msg file *
* *
* Stored Procedure Name : [dbo].[KAAS_SaveDATHash] *
* Copied from : [dbo].[ky_NETSPSaveDATHash] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
INSERT
INTO [dbo].[MessageHashXRef]
([Hash],
[Sent],
[TrackReference])
VALUES(@HASH,
@SENT,
@TrackReference)
END
GO
IF NOT((SELECT SERVERPROPERTY('Edition') AS [Edition]) = 'SQL Azure')
BEGIN
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_SaveDiaryAttachement'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_SaveDiaryAttachement]
END
DECLARE @NCOMMAND NVARCHAR(MAX)
SET @NCOMMAND =
N'CREATE PROCEDURE [dbo].[KAAS_SaveDiaryAttachement] (
@FilePath VARCHAR(1000),
@FileName VARCHAR(1000),
@FileData VARBINARY(MAX),
@Result INT OUTPUT
)
AS
/*******************************************************************************************************
* To save the attachment to the physical path *
* *
* Stored Procedure Name : [dbo].[KAAS_SaveDiaryAttachement] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @FullPath NVARCHAR (2000);
SET @FullPath = @FilePath + @FileName;
DECLARE @Obj INT;
SET NOCOUNT ON
BEGIN TRY
DECLARE @IsFolderExist AS INT
DECLARE @FileResult TABLE
(
IsFileExist INT,
IsFileDirectory INT,
IsParentDirectoryExist INT
)
INSERT INTO
@FileResult
(
IsFileExist,
IsFileDirectory,
IsParentDirectoryExist
)
EXECUTE XP_FILEEXIST @FilePath
SELECT
@IsFolderExist = IsFileDirectory
FROM
@FileResult
--Script to create directory
IF(@IsFolderExist = 0)
BEGIN
EXECUTE XP_CREATE_SUBDIR @FilePath
INSERT INTO
@FileResult
(
IsFileExist,
IsFileDirectory,
IsParentDirectoryExist
)
EXECUTE XP_FILEEXIST @FilePath
SELECT
@IsFolderExist = IsFileDirectory
FROM
@FileResult
END
IF(@IsFolderExist = 1)
BEGIN
EXEC SP_OACREATE ''ADODB.Stream'' ,@Obj OUTPUT;
EXEC SP_OASETPROPERTY @Obj ,''Type'',1;
EXEC SP_OAMETHOD @Obj,''Open'';
EXEC SP_OAMETHOD @Obj,''Write'', NULL, @FileData;
EXEC SP_OAMETHOD @Obj,''SaveToFile'', NULL, @FullPath, 2;
EXEC SP_OAMETHOD @Obj,''Close'';
EXEC SP_OADESTROY @Obj;
SELECT @Result = 1;
RETURN;
END
ELSE
BEGIN
SELECT @Result = 0;
RETURN;
END
END TRY
BEGIN CATCH
EXEC SP_OADESTROY @Obj;
SELECT @Result = 1;
RETURN;
END CATCH
SET NOCOUNT OFF
END'
EXECUTE SP_EXECUTESQL @NCOMMAND
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_SaveDocFolderTree'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_SaveDocFolderTree]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_SaveDocFolderTree]
(@folderxml NVARCHAR(MAX))
AS
/*******************************************************************************************************
* Saves the changes to a folder tree *
* *
* Stored Procedure Name : [dbo].[KAAS_SaveDocFolderTree] *
* Copied from : [dbo].[ky_NETSPSaveDocFolderTree] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @iSL INT
DECLARE @MAX INT
DECLARE @data TABLE
([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[id] INT NOT NULL,
[parent] INT NOT NULL,
[foldername] VARCHAR(500) NOT NULL,
[foldericon] INT NOT NULL,
[newfolder] BIT NOT NULL,
[deletefolder] BIT NOT NULL)
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @folderxml
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
INSERT
INTO @data
([id],
[parent],
[foldername],
[foldericon],
[newfolder],
[deletefolder])
SELECT SRC.[id],
SRC.[parent],
SRC.[foldername],
ISNULL(SRC.[foldericon], 1),
SRC.[newfolder],
SRC.[deletefolder]
FROM OPENXML(@iSL, N'folders/folder')
WITH ([id] INT '@id',
[parent] INT '@parent',
[foldername] VARCHAR(500) '@foldername',
[foldericon] INT '@foldericon',
[newfolder] BIT '@newfolder',
[deletefolder] BIT '@deletefolder') SRC
EXEC sp_xml_removedocument @iSL
SELECT @MAX = ISNULL(MAX([DF].[id]), 0) FROM [dbo].[DocFolders] [DF]
DECLARE @new TABLE
([seq] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[oldid] INT NOT NULL UNIQUE NONCLUSTERED,
[newid] INT NOT NULL)
INSERT
INTO @new
([oldid],
[newid])
SELECT [DT].[id],
0
FROM @data [DT]
WHERE [DT].[newfolder] = 1
UPDATE [nw]
SET [nw].[newid] = @MAX + [nw].[seq]
FROM @new [NW]
SET IDENTITY_INSERT [dbo].[DocFolders] ON
INSERT
INTO [dbo].[DocFolders]
([id],
[foldername],
[parent],
[foldericon])
SELECT [nw].[newid] AS [id],
[dt].[foldername] AS [foldername],
CASE ISNULL([pr].[newid], 0)
WHEN 0 THEN CASE ISNULL([dt].[parent], 0)
WHEN 0 THEN NULL
ELSE [dt].[parent] END
ELSE [pr].[newid] END AS [parent],
[dt].[foldericon]
FROM @data [dt]
INNER JOIN @new [nw]
ON [nw].[oldid] = [dt].[id]
LEFT OUTER JOIN @new [pr]
ON [pr].[oldid] = [dt].[parent]
SET IDENTITY_INSERT [dbo].[DocFolders] OFF
SELECT @MAX = ISNULL(MAX([DF].[id]), 0) + 1
FROM [dbo].[DocFolders] [DF]
DBCC CHECKIDENT('DocFolders', RESEED, @MAX)
DELETE [DF]
FROM @data [dt]
INNER JOIN [dbo].[DocFolders] [DF]
ON [DF].[id] = [dt].[id]
WHERE [dt].[deletefolder] = 1
UPDATE [DF]
SET [DF].[foldername] = [dt].[foldername],
[DF].[parent] = CASE ISNULL([dt].[parent], 0)
WHEN 0 THEN NULL
ELSE [dt].[parent] END,
[DF].[foldericon] = [dt].[foldericon]
FROM @data [dt]
INNER JOIN [dbo].[DocFolders] [DF]
ON [DF].[id] = [dt].[id]
WHERE [dt].[deletefolder] = 0
AND [dt].[newfolder] = 0
DECLARE @newid INT
SELECT TOP 1
@newid = ISNULL([nw].[newid], dt.[id])
FROM @data [dt]
LEFT OUTER JOIN @new [nw]
ON [nw].[oldid] = [dt].[id]
SELECT @newid [id]
RETURN @newid
END
GO
IF OBJECT_ID(N'[KAAS_SaveRateChangesLog]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_SaveRateChangesLog]
GO
CREATE PROCEDURE
[KAAS_SaveRateChangesLog]
(@User VARCHAR(8),
@Event VARCHAR(300),
@FromWhere VARCHAR(100),
@AffectedTo VARCHAR(50))
AS
/*******************************************************************************************************
* This stored procedure is used to log the rate changes. *
* *
* Stored Procedure Name : [dbo].[KAAS_SaveRateChangesLog] *
* Copied from : [dbo].[ky_NETSaveRateChangesLog] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF @FromWhere = 'Maintain Tasks'
BEGIN
INSERT INTO RATECHANGESLOG
([USER],
[EVENT],
[FROMWHERE],
[UPDATEDDATE],
[AFFECTEDTO])
SELECT
@USER,
ITEM,
@FROMWHERE,
GETDATE(),
@AffectedTo
FROM
DBO.KAAS_FN_SPLITSTRING(@EVENT,',')
END
ELSE
BEGIN
INSERT
INTO RateChangesLog
([User],
[Event],
[FromWhere],
[UpdatedDate],
[AffectedTo])
VALUES
(@User,
@Event,
@FromWhere,
GETDATE(),
@AffectedTo)
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_ScalarXMLDiaryDelegation',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_ScalarXMLDiaryDelegation]
GO
CREATE PROCEDURE [dbo].[KAAS_ScalarXMLDiaryDelegation]
(@DEL VARCHAR(MAX))
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_ScalarXMLDiaryDelegation] *
* Copied from : [dbo].[ky_NETSPScalarXMLDiaryDelegation] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
/*
example
*/
DECLARE @ACTIONID INT
DECLARE @HANDLER VARCHAR(10)
DECLARE @TEAM VARCHAR(10)
DECLARE @DATE DATETIME
DECLARE @TIME DATETIME
DECLARE @DATER DATETIME
DECLARE @TIMER DATETIME
DECLARE @DUEDATE DATETIME
DECLARE @DUETIME DATETIME
DECLARE @REVIEW VARCHAR(1)
DECLARE @STATUS SMALLINT
DECLARE @OWNER VARCHAR(1)
DECLARE @DELEGATE VARCHAR(10)
DECLARE @DELEGATESTATUS SMALLINT
DECLARE @ActionType VARCHAR(1)
DECLARE @FromHandler VARCHAR(10)
DECLARE @ReturnedBy VARCHAR(10)
DECLARE @DelType VARCHAR(15)
DECLARE @CRRUSER VARCHAR(10)
DECLARE @CURRENTOWNER VARCHAR(10)
DECLARE @DIARYSTATUS INT
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @DEL
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @ActionID = [DEL].[ACTIONID],
@Handler = [DEL].[HANDLER],
@Team = [DEL].[TEAM],
@Date = [DEL].[DATE],
@Time = [DEL].[TIME],
@Dater = [DEL].[DATER],
@Timer = [DEL].[TIMER],
@DueDate = ISNULL([DEL].[DUEDATE], [DIA].[DUEDATE]),
@DueTime = ISNULL([DEL].[DUETIME], [DIA].[DUEDATE]),
@Review = CASE [DEL].[REVIEW]
WHEN NULL THEN NULL
WHEN 'N' THEN 'N'
WHEN '' THEN ''
WHEN ' ' THEN ''
WHEN 'Y' THEN 'Y'
ELSE NULL END,
@Status = ISNULL([DEL].[STATUS], 0),
@Owner = CASE WHEN ISNULL([DEL].[OWNER], 'N') = 'Y'
THEN 'Y'
ELSE 'N' END,
@Delegate = [DEL].[DELEGATE],
@DelegateStatus = CASE ISNULL([DEL].[DELEGATESTATUS], 0)
WHEN 1 THEN 1
WHEN 2 THEN 2
ELSE 0 END,
@ActionType = ISNULL([DEL].[ACTIONTYPE], [DIA].[ACTIONTYPE]),
@FromHandler = ISNULL(ISNULL([DEL].[FROMHANDLER], CDL.[HANDLER]), [DIA].[FNCODE]),
@ReturnedBy = [DEL].[RETURNEDBY],
@DelType = CASE WHEN [DEL].[DELTYPE] IS NULL THEN NULL
WHEN [DEL].[DELTYPE] = 'Completed'
THEN 'Completed'
WHEN [DEL].[DELTYPE] = 'Created'
THEN 'Created'
WHEN [DEL].[DELTYPE] = 'Delegated'
THEN 'Delegated'
WHEN [DEL].[DELTYPE] = 'Processed'
THEN 'Processed'
WHEN [DEL].[DELTYPE] = 'Released'
THEN 'Released'
WHEN [DEL].[DELTYPE] = 'Returned'
THEN 'Returned'
ELSE 'Delegated' END,
@CRRUSER = [DEL].[CRRUSER],
@CURRENTOWNER = ISNULL([CDL].[HANDLER], ''),
@DIARYSTATUS = CASE WHEN ISNULL([DIA].[STATUS], 0) = 1
THEN 1
ELSE 0 END
FROM OPENXML(@iSL, N'del')
WITH ([ACTIONID] INT '@actionid',
[HANDLER] VARCHAR(10) '@handler',
[TEAM] VARCHAR(10) '@team',
[DATE] DATETIME '@date',
[TIME] DATETIME '@time',
[DATER] DATETIME '@dater',
[TIMER] DATETIME '@timer',
[DUEDATE] DATETIME '@duedate',
[DUETIME] DATETIME '@duetime',
[REVIEW] VARCHAR(1) '@review',
[STATUS] SMALLINT '@status',
[OWNER] VARCHAR(1) '@owner',
[DELEGATE] VARCHAR(10) '@delegate',
[DELEGATESTATUS] SMALLINT '@delegatestatus',
[ACTIONTYPE] VARCHAR(1) '@actiontype',
[FROMHANDLER] VARCHAR(10) '@fromhandler',
[RETURNEDBY] VARCHAR(10) '@returnedby',
[DELTYPE] VARCHAR(15) '@deltype',
[CRRUSER] VARCHAR(15) '@crruser') [DEL]
INNER JOIN [dbo].[diary] [DIA]
LEFT OUTER JOIN [dbo].[DiaryDelegations] [CDL]
ON [CDL].[ACTIONID] = [DIA].[ACTIONID]
AND [CDL].[OWNER] = 'Y'
ON [DIA].[ACTIONID] = [DEL].[ACTIONID]
EXEC sp_xml_removedocument @iSL
DECLARE @AssignNo INT
DECLARE @TIMECONVERSION VARCHAR(10)
DECLARE @TIMERCONVERSION VARCHAR(10)
DECLARE @DUETIMECONVERSION VARCHAR(10)
IF @ACTIONID IS NULL
BEGIN
RETURN -1 -- requested action not found.
END
SET @DATE = ISNULL(@DATE, GetDate())
SET @TIME = ISNULL(@TIME, @DATE)
SET @DUEDATE = ISNULL(@DUEDATE, GetDate())
SET @DUETIME = ISNULL(@DUETIME, @DUEDATE)
SET @ActionType = ISNULL(@ActionType, 'A')
SET @FromHandler = ISNULL(@FromHandler, 'ADM')
IF @DelType = 'Returned'
BEGIN
SET @ReturnedBy = ISNULL(@ReturnedBy, @Handler)
END
SET @CRRUSER = ISNULL(@CRRUSER, @FromHandler)
SET @status = CASE WHEN ISNULL(@status, 0) = 1 THEN 1 ELSE 0 END
SET @DELEGATE = ISNULL(@DELEGATE, @HANDLER)
SET @DELEGATESTATUS = ISNULL(@DELEGATESTATUS, 0)
SELECT @Team = ISNULL(@Team, HAN.[TEAM])
FROM [dbo].[Handlers] HAN
WHERE HAN.[CODE] = @Handler
IF NOT @TIME IS NULL
BEGIN
SET @TIMECONVERSION = dbo.ky_ConvertTimeToClarion(@TIME)
END
IF NOT @TIMER IS NULL
BEGIN
SET @TIMERCONVERSION = dbo.ky_ConvertTimeToClarion(@TIMER)
END
IF NOT @DUETIME IS NULL
BEGIN
SET @DUETIMECONVERSION = dbo.ky_ConvertTimeToClarion(@DUETIME)
END
DECLARE @DATER1 DATETIME
SET @DATER1 = GETDATE()
DECLARE @TIMER1 VARCHAR(20)
SET @TIMER1 = dbo.ky_ConvertTimeToClarion(GETDATE())
SELECT @AssignNo = ISNULL(MAX([DEL].[AssignNo] + 1),1)
FROM [dbo].[DiaryDelegations] [DEL]
-- Check whether authorised to Delegate or Release
IF @DelType IN ('Delegated', 'Released')
BEGIN
IF ISNULL(@CRRUSER, '') <> @CURRENTOWNER
BEGIN
RETURN -2 --Not Authorised
END
END
-- Things to do BEFORE inserting the delegation record
IF ISNULL(@CRRUSER, '') = @CURRENTOWNER
BEGIN
IF @DIARYSTATUS = 0
BEGIN
IF @DelType = 'Released'
BEGIN
UPDATE [DEL]
SET [DEL].[DATER] = @DATER1,
[DEL].[TIMER] = @TIMER1,
[DEL].[STATUS] = 1,
[DEL].[OWNER] = 'N',
[DEL].[DELEGATESTATUS] = 1
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ACTIONID] = @ACTIONID
AND [DEL].[OWNER] = 'Y'
END
END
END
--KEYD-3961 - In case a user creates an action and then delegates it twice to the same user,
-- the following statement will stop it showing the same task twice as "outstanding"
-- in that user's task list. Please note: it will NOT prevent the user seeing the
-- same task twice if they choose to look at "completed" actions.
UPDATE [DEL]
SET [DEL].[STATUS] = 1
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ACTIONID] = @ACTIONID
AND [DEL].[HANDLER] = @HANDLER
AND ISNULL([DEL].[OWNER], 'N') <> 'Y'
DECLARE @NEWDATE AS DATETIME
SELECT @NEWDATE= [DATE]
FROM Diary
WHERE ACTIONID=@ACTIONID
-- the actual insert itself
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[DATE],
[TIME],
[DATER],
[TIMER],
[DUEDATE],
[DUETIME],
[REVIEW],
[STATUS],
[OWNER],
[DELEGATE],
[DELEGATESTATUS],
[ActionType],
[FromHandler],
[ReturnedBy],
[DelType])
VALUES(@ACTIONID,
@HANDLER,
@TEAM,
@NEWDATE,
@TIMECONVERSION,
@DATER,
@TIMERCONVERSION,
@DUEDATE,
@DUETIMECONVERSION,
@REVIEW,
@STATUS,
@OWNER,
@DELEGATE,
@DELEGATESTATUS,
@ACTIONTYPE,
@FROMHANDLER,
@RETURNEDBY,
@DELTYPE)
-- Things to do AFTER inserting the delegation record
IF @DelType = 'Created'
BEGIN
-- no other changes required.
RETURN 0
END
IF @DelType = 'Delegated'
BEGIN
UPDATE [DIA]
SET [DIA].[DELEGATEDFNR] = @HANDLER,
[DIA].[DELEGATEDDATE] = @DATER,
[DIA].[DELEGATIONSTATUS] = 1
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ACTIONID
RETURN 0
END
IF @DelType <> 'Released'
BEGIN
RETURN -3 --Unknown request
END
--Released a completed action
IF @DIARYSTATUS = 1
BEGIN
UPDATE [DEL]
SET [DEL].[STATUS] = 1,
[DEL].[DELEGATESTATUS] = 1
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ACTIONID] = @ACTIONID
AND [DEL].[DelType] = 'Released'
UPDATE [DEL]
SET [DEL].[STATUS] = 0,
[DEL].[DELEGATESTATUS] = 0
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ACTIONID] = @ACTIONID
AND [DEL].[DelType] = 'Created'
UPDATE [DIA]
SET [DIA].[DATE] = @NEWDATE,
[DIA].[FNCODE] = @HANDLER,
[DIA].[DELEGATEDFNR] = @HANDLER,
[DIA].[DELEGATEDDATE] = @DATER1
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ACTIONID
RETURN 0
END
--Released an open action
UPDATE [DIA]
SET [DIA].[DATE] = @NEWDATE,
[DIA].[FNCODE] = @HANDLER,
[DIA].[DELEGATEDFNR] = @HANDLER,
[DIA].[DELEGATIONSTATUS] = 0
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ACTIONID
UPDATE [DEL]
SET [DEL].[DELEGATE] = @HANDLER
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ACTIONID] = @ACTIONID
AND [DEL].[OWNER] = 'Y'
RETURN 0
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_SelectContacts'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_SelectContacts]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_SelectContacts]
(@XMLCriteria NVARCHAR(MAX))
AS
/*******************************************************************************************************
* Presents a list of Contacts to choose FROM. Calling code can choose how to sort and filter the data. *
* *
* Stored Procedure Name : [dbo].[KAAS_SelectContacts] *
* Copied from : [dbo].[ky_NETSPSelectContacts] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @iSL INT
DECLARE @handler VARCHAR(10)
DECLARE @code VARCHAR(10)
DECLARE @sortby VARCHAR(50)
DECLARE @sortorder VARCHAR(4)
DECLARE @search VARCHAR(500)
DECLARE @maxresult INT
DECLARE @ZZ VARCHAR(20)
SET @ZZ = 'ZZZZZZZZZZZZZZZZZZZZ'
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XMLCriteria
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @handler = RTRIM(ISNULL([XML].[handler], '')),
@code = RTRIM(ISNULL([XML].[code], '')),
@sortby = CASE [XML].[sortby]
WHEN 'Code' THEN 'Code'
WHEN 'Name' THEN 'Name'
WHEN 'Address' THEN 'Address'
WHEN 'OtherAddress' THEN 'OtherAddress'
WHEN 'PhoneNo' THEN 'PhoneNo'
WHEN 'FaxNo' THEN 'FaxNo'
WHEN 'Salut' THEN 'Salut'
WHEN 'email' THEN 'email'
WHEN 'Approved' THEN 'Approved'
WHEN 'ChargeOutRateInd' THEN 'ChargeOutRateInd'
WHEN 'BillingMatter' THEN 'BillingMatter'
WHEN 'LastAccessed' THEN 'LastAccessed'
ELSE '' END,
@sortorder = CASE RTRIM(ISNULL([XML].[sortorder], ''))
WHEN 'DESC' THEN 'DESC'
ELSE 'ASC' END,
@search = RTRIM(ISNULL([XML].[search], '')),
@maxresult = ISNULL([XML].[maxresult], 2000)
FROM OPENXML(@iSL, N'search')
WITH ([handler] VARCHAR(10) '@handler',
[code] VARCHAR(10) '@code',
[sortby] VARCHAR(50) '@sortby',
[sortorder] VARCHAR(4) '@sortorder',
[search] VARCHAR(max) '@search',
[maxresult] INT '@maxresult') [XML]
EXEC sp_xml_removedocument @iSL
DECLARE @done BIT
SET @done = 0
WHILE @done = 0
IF @search = ''
BEGIN
SET @done = 1
end
ELSE
BEGIN
IF SUBSTRING(@search, 1, 1) = '%'
BEGIN
SET @search = SUBSTRING(@search, 2, LEN(@search) - 1)
END
ELSE IF SUBSTRING(@search, LEN(@search), 1) = '%'
BEGIN
SET @search = SUBSTRING(@search, 1, LEN(@search) - 1)
END
ELSE
BEGIN
SET @done = 1
END
END
SET @code = RTRIM(ISNULL(@code, ''))
SET @sortby = ISNULL(@sortby, '')
SELECT @sortorder = CASE WHEN @code <> ''
THEN ''
WHEN @sortby = ''
THEN ''
ELSE @sortorder END,
@search = CASE WHEN @code <> ''
THEN ''
WHEN @search = ''
THEN ''
WHEN SUBSTRING(@search, 1, 1) <> '%'
AND SUBSTRING(@search, LEN(@search), 1) <> '%'
THEN '%' + @search + '%'
WHEN SUBSTRING(@search, 1, 1) = '%'
AND SUBSTRING(@search, LEN(@search), 1) <> '%'
THEN @search + '%'
WHEN SUBSTRING(@search, 1, 1) <> '%'
AND SUBSTRING(@search, LEN(@search), 1) = '%'
THEN '%' + @search
ELSE @search END
IF (@sortby = '')
BEGIN
SET @sortby = 'LastAccessed'
SET @sortorder = 'DESC'
END
DECLARE @BitWiseID BIGINT
DECLARE @RecentClientList TABLE
([ClientCode] VARCHAR(10) NOT NULL PRIMARY KEY,
[LastAccessed] DATETIME NOT NULL UNIQUE NONCLUSTERED ([LastAccessed], [ClientCode]))
DECLARE @ClientList TABLE
([id] INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,
[ClientCode] VARCHAR(10) NOT NULL UNIQUE NONCLUSTERED ([ClientCode], [id]),
[LastAccessed] DATETIME NULL UNIQUE NONCLUSTERED ([LastAccessed], [ClientCode]))
SELECT @BitWiseID = HNG.[BitWiseID]
FROM HandlerNETGroupMembership HNG
WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler)
SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@handler, ''))))
IF (@handler = 'ADM')
BEGIN
SET @BitWiseID = CONVERT(BIGINT, -1)
END
INSERT
INTO @RecentClientList
([ClientCode],
[LastAccessed])
SELECT [SM].[ClientCode] AS [ClientCode],
MAX([RML].[DateField]) AS [LastAccessed]
FROM [dbo].[RecentMatterList] [RML]
INNER JOIN [dbo].[SearchMatters] [SM]
ON [SM].[Code] = [RML].[MATTER]
AND CASE @BitWiseID
WHEN 0 THEN CASE [SM].[Privileges]
WHEN 0 THEN 1
WHEN -1 THEN 1
ELSE 0 END
ELSE CASE @BitWiseID & [SM].[Privileges]
WHEN 0 THEN 0
ELSE 1 END END = 1
WHERE [RML].[FEE] = @handler
GROUP BY [SM].[ClientCode]
OPTION (KEEPFIXED PLAN)
INSERT
INTO @ClientList
([ClientCode],
[LastAccessed])
SELECT TOP (@maxresult)
RTRIM(ISNULL([CTC].[Code], '')) AS [Code],
[RML].[LastAccessed] AS [LastAccessed]
FROM [dbo].[Contacts] [CTC]
LEFT OUTER JOIN @RecentClientList [RML]
ON [RML].[ClientCode] = [CTC].[Code]
WHERE CASE WHEN @code <> ''
THEN CASE WHEN @code = [CTC].[Code]
THEN 1
ELSE 0 END
WHEN @search = ''
THEN 1
WHEN [CTC].[Name] LIKE @search
THEN 1
WHEN [CTC].[Address] LIKE @search
THEN 1
WHEN [CTC].[OtherAddress] LIKE @search
THEN 1
WHEN [CTC].[email] LIKE @search
THEN 1
WHEN [CTC].[Tel] LIKE @search
THEN 1
WHEN [CTC].[Fax] LIKE @search
THEN 1
WHEN [CTC].[Code] LIKE @search
THEN 1
WHEN [CTC].[CompMatter] LIKE @search
THEN 1
ELSE 0 END = 1
ORDER BY CASE WHEN @sortorder = 'ASC'
THEN CASE WHEN @sortby = 'Code'
THEN RTRIM(ISNULL([CTC].[Code], ''))
WHEN @sortby = 'LastAccessed'
THEN CASE WHEN [RML].[LastAccessed] IS NULL
THEN @ZZ
ELSE CONVERT(VARCHAR, [RML].[LastAccessed], 112) + CONVERT(VARCHAR, [RML].[LastAccessed], 108) END
WHEN @sortby = 'Name'
THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = ''
THEN @ZZ
ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) END
WHEN @sortby = 'Address'
THEN CASE WHEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) = ''
THEN @ZZ
ELSE [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) END
WHEN @sortby = 'OtherAddress'
THEN CASE WHEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) = ''
THEN @ZZ
ELSE [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) END
WHEN @sortby = 'PhoneNo'
THEN CASE WHEN [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) = ''
THEN @ZZ
ELSE [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) END
WHEN @sortby = 'FaxNo'
THEN CASE WHEN [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) = ''
THEN @ZZ
ELSE [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) END
WHEN @sortby = 'Salut'
THEN CASE WHEN RTRIM(ISNULL([CTC].[Salut], '')) = ''
THEN @ZZ
ELSE RTRIM(ISNULL([CTC].[Salut], '')) END
WHEN @sortby = 'email'
THEN CASE WHEN RTRIM(ISNULL([CTC].[email], '')) = ''
THEN @ZZ
ELSE RTRIM(ISNULL([CTC].[email], '')) END
WHEN @sortby = 'ChargeOutRateInd'
THEN CASE WHEN RTRIM(ISNULL([CTC].[ChargeOutRateInd], '')) = 'Y' THEN 'Y' ELSE 'N' END
WHEN @sortby = 'Approved'
THEN CASE WHEN ISNULL([CTC].[Approved], 0) = 1 THEN '1' ELSE '0' END
WHEN @sortby = 'BillingMatter'
THEN CASE WHEN RTRIM(ISNULL([CTC].[CompMatter], '')) = ''
THEN @ZZ
ELSE RTRIM(ISNULL([CTC].[CompMatter], '')) END
ELSE '' END
ELSE '' END ASC,
CASE WHEN @sortorder = 'ASC'
THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = ''
THEN @ZZ
ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) END
ELSE '' END ASC,
CASE WHEN @sortorder = 'DESC'
THEN CASE WHEN @sortby = 'Code'
THEN RTRIM(ISNULL([CTC].[Code], ''))
WHEN @sortby = 'LastAccessed'
THEN CASE WHEN [RML].[LastAccessed] IS NULL
THEN ''
ELSE CONVERT(VARCHAR, [RML].[LastAccessed], 112) + CONVERT(VARCHAR, [RML].[LastAccessed], 108) END
WHEN @sortby = 'Name'
THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = ''
THEN ''
ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) END
WHEN @sortby = 'Address'
THEN CASE WHEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) = ''
THEN ''
ELSE [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) END
WHEN @sortby = 'OtherAddress'
THEN CASE WHEN [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) = ''
THEN ''
ELSE [dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) END
WHEN @sortby = 'PhoneNo'
THEN CASE WHEN [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) = ''
THEN ''
ELSE [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) END
WHEN @sortby = 'FaxNo'
THEN CASE WHEN [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) = ''
THEN ''
ELSE [dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) END
WHEN @sortby = 'Salut'
THEN CASE WHEN RTRIM(ISNULL([CTC].[Salut], '')) = ''
THEN ''
ELSE RTRIM(ISNULL([CTC].[Salut], '')) END
WHEN @sortby = 'email'
THEN CASE WHEN RTRIM(ISNULL([CTC].[email], '')) = ''
THEN ''
ELSE RTRIM(ISNULL([CTC].[email], '')) END
WHEN @sortby = 'ChargeOutRateInd'
THEN CASE WHEN RTRIM(ISNULL([CTC].[ChargeOutRateInd], '')) = 'Y' THEN 'Y' ELSE 'N' END
WHEN @sortby = 'Approved'
THEN CASE WHEN ISNULL([CTC].[Approved], 0) = 1 THEN '1' ELSE '0' END
WHEN @sortby = 'BillingMatter'
THEN CASE WHEN RTRIM(ISNULL([CTC].[CompMatter], '')) = ''
THEN ''
ELSE RTRIM(ISNULL([CTC].[CompMatter], '')) END
ELSE '' END
ELSE '' END DESC,
CASE WHEN @sortorder = 'DESC'
THEN CASE WHEN RTRIM(ISNULL([CTC].[Name], '')) = ''
THEN @ZZ
ELSE LTRIM(RTRIM(ISNULL([CTC].[Name], ''))) END
ELSE '' END ASC
SELECT [CL].[id] AS [id],
RTRIM(ISNULL([CTC].[Code], '')) AS [Code],
RTRIM(ISNULL([CTC].[Name], '')) AS [Name],
[CL].[LastAccessed] AS [LastAccessed],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[Address], '')), 200) AS [Address],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](RTRIM(ISNULL([CTC].[OtherAddress], '')), 200) AS [OtherAddress],
[dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Tel]) AS [PhoneNo],
[dbo].[ky_HeuristicMultiPhoneNo](RTRIM(ISNULL([CTC].[Address], '')), [CTC].[Fax]) AS [FaxNo],
RTRIM(ISNULL([CTC].[Salut], '')) AS [Salut],
RTRIM(ISNULL([CTC].[email], '')) AS [email],
CASE WHEN ISNULL([CTC].[Approved], 0) = 1 THEN 1 ELSE 0 END AS [Approved],
CASE WHEN RTRIM(ISNULL([CTC].[ChargeOutRateInd], '')) = 'Y' THEN 'Y' ELSE 'N' END AS [ChargeOutRateInd],
[CTC].[CompMatter] AS [BillingMatter]
FROM @ClientList [CL]
INNER JOIN [dbo].[Contacts] [CTC]
ON [CTC].[Code] = [CL].[ClientCode]
ORDER BY [CL].[id]
OPTION (KEEPFIXED PLAN)
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_SetAlarm'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_SetAlarm]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_SetAlarm]
(@HandlerCode VARCHAR(10),
@MatterRef VARCHAR(20),
@LinkID VARCHAR(50),
@AlarmDate DATETIME,
@Title NVARCHAR(255),
@Message NVARCHAR(max),
@TypeDesc NVARCHAR(100))
AS
/*******************************************************************************************************
* Set Keyhouse Risk Management Alarm *
* *
* Stored Procedure Name : [dbo].[KAAS_SetAlarm] *
* Copied from : [dbo].[ky_SetAlarm] *
* *
* Modification History : *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @AlarmType INT
DECLARE @NewID VARCHAR(38)
SET @NewID = CONVERT(VARCHAR(38), NEWID())
SELECT @AlarmType = ISNULL(ALT1.[TypeID], ALT2.[TypeID])
FROM AlarmTypes ALT2
LEFT OUTER JOIN AlarmTypes ALT1
ON ALT1.[Description] = @TypeDesc
WHERE ALT2.[Description] = N'Generic Alarm'
SET @AlarmType = ISNULL(@AlarmType, 0)
IF @AlarmType <> 0
BEGIN
INSERT
INTO [dbo].[Alarms]
([ID],
[HandlerCode],
[MatterRef],
[LinkID],
[OriginalDate],
[DeferredDate],
[Title],
[Message],
[Type],
[Status])
SELECT @NewID,
@HandlerCode,
@MatterRef,
ISNULL(@LinkID, ''),
@AlarmDate,
@AlarmDate,
@Title,
@Message,
@AlarmType,
ALS.[StatusID]
FROM [dbo].[AlarmStatus] ALS
WHERE ALS.[Description] = N'Attention'
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_SetReindexingFlag'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_SetReindexingFlag]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_SetReindexingFlag]
(@File VARCHAR(255),
@Read INT)
AS
/***********************************************************************************************************************
*
* ky_NETSPSetReindexingFlag
* Flags a file for reindexing (i.e. if a file has been added, modified, deleted) and reads the top @Read
* documents flagged for Reindexing.
*
* PINO 2014-11-27 The code to handle changed file paths was executed even if this was called for specific
* documents, and also it can cause delays during working hours.
*
* PINO 2015-08-06 If the UNC Aliased Filepath exceeds 255 characters, truncate the filepath. Obviously the
* system is not going to find the path in that case but it shouldn't be possible to create
* such a long path in the first place.
*
* PINO 2018-05-18 Firstly, let's read all data WITH (NOLOCK) for better performance
* Secondly, originally we would check for a changed file path. This was necessary because
* someone could create a document with trackreference N, then delete it and create a new
* document and it, too, would get trackreference N. This can't happen any more as we use an
* identity column in [dbo].[trackreferences] now, and Track Reference numbers are never
* reused
* Thirdly, this allowed us to simplify the retrieval query significantly and improve its
* performance
* Finally remove an obsolete left outer join to [dbo].[Contacts]
*
* VINODHAN K 2019-06-19 Created KAAS_SetReindexingFlag
*
***********************************************************************************************************************/
BEGIN
DECLARE @WORK VARCHAR(255)
DECLARE @TR INT
DECLARE @CF VARCHAR(255)
SELECT @CF = RTRIM(ISNULL(SC.[SCWPFOLDER], '')) FROM [dbo].[SystemConfig] SC
WHILE CHARINDEX('\', @CF, 1) > 0
BEGIN
SET @CF = SUBSTRING(@CF, CHARINDEX('\', @CF, 1) + 1, LEN(@CF) - CHARINDEX('\', @CF, 1))
END
IF PATINDEX('%\' + @CF + '\%', @File) > 0
BEGIN
SET @File = SUBSTRING(@FILE, PATINDEX('%\' + @CF + '\%', @File), LEN(@FILE) - PATINDEX('%\' + @CF + '\%', @File) + 1)
END
SET @WORK = REVERSE(@FILE)
IF CHARINDEX('_', @WORK, 1) > 0
BEGIN
SET @WORK = SUBSTRING(@WORK, 1, CHARINDEX('_', @WORK, 1) - 1)
END
ELSE
BEGIN
IF CHARINDEX('\', @WORK, 1) > 0
BEGIN
SET @WORK = SUBSTRING(@WORK, 1, CHARINDEX('\', @WORK, 1) - 1)
END
END
IF CHARINDEX('.', @WORK, 1) > 0
BEGIN
SET @WORK = SUBSTRING(@WORK, CHARINDEX('.', @WORK, 1) + 1, LEN(@WORK) - CHARINDEX('.', @WORK, 1))
END
SET @WORK = REVERSE(@WORK)
SET @TR = 0
IF (ISNUMERIC(@WORK) = 0)
BEGIN
SET @TR = 0
END
ELSE
BEGIN
SET @TR = CONVERT(INT, @WORK)
END
IF (@TR = 0)
BEGIN
DECLARE @NEWTRACKREFERENCES TABLE
([TrackReference] INT PRIMARY KEY)
INSERT
INTO @NEWTRACKREFERENCES
([TrackReference])
SELECT [DAT].[TrackReference]
FROM [dbo].[DiaryAttachments] [DAT] WITH (NOLOCK)
LEFT OUTER JOIN [dbo].[ReindexStatus] [RST] WITH (NOLOCK)
ON [RST].[TrackReference] = [DAT].[TrackReference]
WHERE [RST].[id] IS NULL
INSERT
INTO [dbo].[ReindexStatus]
([TrackReference],
[FILEPATH],
[STATUS])
SELECT DAT.[TRACKREFERENCE],
CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(SUBSTRING(ISNULL(DAT.[FILEPATH], ''), 1, 255))
ELSE RTRIM(SUBSTRING(UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2), 1, 255)) END AS [FILEPATH],
0 AS [STATUS]
FROM @NEWTRACKREFERENCES [NT]
INNER JOIN [dbo].[DiaryAttachments] DAT WITH (NOLOCK)
LEFT OUTER JOIN [dbo].[UNCAlias] UNC WITH (NOLOCK)
ON UNC.[Drive] = CASE WHEN SUBSTRING(DAT.[FilePath], 2, 1) = ':'
THEN SUBSTRING(DAT.[FilePath], 1, 1)
ELSE '' END
ON [DAT].[TrackReference] = [NT].[TrackReference]
-- LEFT OUTER JOIN [dbo].[ReindexStatus] RST WITH (NOLOCK)
-- ON RST.[TrackReference] = DAT.[TRACKREFERENCE]
-- AND RST.[FILEPATH] = CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FILEPATH], ''))
-- ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2) END
--WHERE RST.[id] IS NULL
END
ELSE
BEGIN
INSERT
INTO [dbo].[ReindexStatus]
([TrackReference],
[FILEPATH],
[STATUS])
SELECT DAT.[TRACKREFERENCE],
CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(SUBSTRING(ISNULL(DAT.[FILEPATH], ''), 1, 255))
ELSE RTRIM(SUBSTRING(UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2), 1, 255)) END AS [FILEPATH],
0 AS [STATUS]
FROM [dbo].[DiaryAttachments] DAT WITH (NOLOCK)
LEFT OUTER JOIN [dbo].[UNCAlias] UNC WITH (NOLOCK)
ON SUBSTRING(DAT.[FilePath], 2, 1) = ':'
AND UNC.[Drive] = SUBSTRING(DAT.[FilePath], 1, 1)
LEFT OUTER JOIN [dbo].[ReindexStatus] RST WITH (NOLOCK)
ON RST.[TrackReference] = DAT.[TRACKREFERENCE]
AND RST.[FILEPATH] = CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FILEPATH], ''))
ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FILEPATH], '')), 3, LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''))) - 2) END
WHERE DAT.[TRACKREFERENCE] = @TR
AND RST.[id] IS NULL
END
IF (@TR = 0)
BEGIN
IF (@File <> '')
BEGIN
UPDATE RST
SET RST.[STATUS] = 0
FROM [dbo].[ReindexStatus] RST
WHERE RST.[FILEPATH] LIKE '%' + REPLACE(@File, '[', '[[]')
END
END
ELSE
BEGIN
UPDATE RST
SET RST.[STATUS] = 1
FROM [dbo].[ReindexStatus] RST
WHERE RST.[TrackReference] = @TR
AND RST.[FILEPATH] NOT LIKE '%' + REPLACE(@File, '[', '[[]')
UPDATE RST
SET RST.[STATUS] = 0
FROM [dbo].[ReindexStatus] RST
WHERE RST.[TrackReference] = @TR
AND RST.[FILEPATH] LIKE '%' + REPLACE(@File, '[', '[[]')
END
-- Flag rows that have moved to CloseDiaryAttachments or that have been replaced by
-- different File Paths for Reindexing (The statement following this will return these
-- for DELETE rather than INDEX)
-- PINO 2014-11-27 - Don't do this unless you're processing multiple entries
IF (@TR = 0)
BEGIN
-- PINO 2014-11-27 - Don't do this during working hours
IF (DATEPART(HOUR, GetDate()) <= 4) OR (DATEPART(HOUR, GetDate()) >= 20)
BEGIN
UPDATE RST
SET RST.[STATUS] = 0
FROM [dbo].[ReindexStatus] RST
LEFT OUTER JOIN [dbo].[DiaryAttachments] DAT WITH (NOLOCK)
INNER JOIN [dbo].[diary] DIA WITH (NOLOCK)
INNER JOIN [dbo].[matters] MAT WITH (NOLOCK)
ON MAT.[code] = DIA.[CASECODE]
ON DIA.[ActionID] = DAT.[DIARYID]
ON DAT.[TRACKREFERENCE] = RST.[TrackReference]
LEFT OUTER JOIN [dbo].[contacts] CTC WITH (NOLOCK)
ON CTC.[code] = MAT.[ClientCODE]
LEFT OUTER JOIN [dbo].[UNCAlias] UNC WITH (NOLOCK)
ON SUBSTRING(DAT.[FilePath], 2, 1) = ':'
AND UNC.[Drive] = SUBSTRING(DAT.[FilePath], 1, 1)
WHERE CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FilePath], ''))
ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FilePath], '')), 3, LEN(RTRIM(ISNULL(DAT.[FilePath], ''))) - 2) END <> RST.[FILEPATH]
AND RST.[STATUS] <> 4
END
END
SELECT TOP (@Read)
RST.[Id],
RST.[TrackReference],
RST.[FilePath],
CASE WHEN CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DAT.[FilePath], ''))
ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DAT.[FilePath], '')), 3, LEN(RTRIM(ISNULL(DAT.[FilePath], ''))) - 2) END = RST.[FILEPATH]
THEN 'INDEX'
ELSE 'DELETE' END AS [Action],
RTRIM(ISNULL(MAT.[User1], '')) AS [User1],
RTRIM(ISNULL(MAT.[User2], '')) AS [User2],
RTRIM(ISNULL(MAT.[User3], '')) AS [User3],
RTRIM(ISNULL(MAT.[OldRef], '')) AS [OldRef],
RTRIM(ISNULL(MAT.[YourRef], '')) AS [YourRef]
FROM [dbo].[ReindexStatus] RST WITH (NOLOCK)
LEFT OUTER JOIN [dbo].[DiaryAttachments] DAT WITH (NOLOCK)
INNER JOIN [dbo].[diary] DIA WITH (NOLOCK)
INNER JOIN [dbo].[SearchMatters] MAT WITH (NOLOCK)
ON MAT.[code] = DIA.[CASECODE]
ON DIA.[ActionID] = DAT.[DIARYID]
LEFT OUTER JOIN [dbo].[UNCAlias] UNC WITH (NOLOCK)
ON UNC.[Drive] = CASE WHEN SUBSTRING(DAT.[FilePath], 2, 1) = ':'
THEN SUBSTRING(DAT.[FilePath], 1, 1)
ELSE '' END
ON DAT.[TRACKREFERENCE] = RST.[TrackReference]
--LEFT OUTER JOIN [dbo].[contacts] CTC WITH (NOLOCK)
-- ON CTC.[code] = MAT.[ClientCODE]
WHERE RST.[STATUS] = 0
ORDER BY RST.[TrackReference] DESC
END
GO
IF EXISTS
(SELECT *
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_SetTimeDayBookRateCharge'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_SetTimeDayBookRateCharge]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_SetTimeDayBookRateCharge]
(@recordid int,
@TUTNUMVALUE DECIMAL(17, 2))
AS
/*******************************************************************************************************
* Sets the Rate and Charge values according to the Charge Out Rates indicators and/or *
* the Task Code used in the TimeDayBook. *
* *
* Stored Procedure Name : [dbo].[KAAS_SetTimeDayBookRateCharge] *
* Copied from : [dbo].[ky_NETSetTimeDayBookRateCharge] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @ACTUALRATE DECIMAL(18, 2)
DECLARE @OverriddenRate BIT
SELECT @ACTUALRATE = CASE WHEN TDB.[Rate] = TDB.[FeeRate]
OR TDB.[FeeRate] IS NULL
THEN [dbo].[KAAS_FN_GetDefaultRate](RTRIM(ISNULL(TDB.[Matter], '')),
RTRIM(ISNULL(TDB.[FeeEarn], '')),
RTRIM(ISNULL(TDB.[NCCCode], '')),
RTRIM(ISNULL(TDB.[Task], '')))
ELSE TDB.[Rate]
END,
@OverriddenRate = CASE WHEN TDB.[Rate] = TDB.[FeeRate]
OR TDB.[FeeRate] IS NULL
THEN 0
ELSE 1
END
FROM [dbo].[TimeDayBook] TDB
WHERE TDB.[RecordID] = @recordid
UPDATE TDB
SET TDB.[Time] = CASE WHEN TDB.[Time] >= 0
THEN Ceiling(TDB.[Time] / @TUTNUMVALUE) * @TUTNUMVALUE
ELSE -Ceiling(-TDB.[Time] / @TUTNUMVALUE) * @TUTNUMVALUE
END,
TDB.[RATE] = @ACTUALRATE,
TDB.[FeeRate] = CASE WHEN @OverriddenRate = 1
THEN TDB.[FEERate]
ELSE @ACTUALRATE
END,
TDB.[Charge] = Convert(decimal(10, 2),
( ( CASE WHEN TDB.[Time] >= 0
THEN Ceiling(TDB.[Time] / @TUTNUMVALUE)
ELSE -Ceiling(-TDB.[Time] / @TUTNUMVALUE)
END
* @TUTNUMVALUE
* @ACTUALRATE)
/ 60)),
TDB.[Charged] = Convert(decimal(10, 2),
( ( CASE WHEN TDB.[Time] >= 0
THEN Ceiling(TDB.[Time] / @TUTNUMVALUE)
ELSE -Ceiling(-TDB.[Time] / @TUTNUMVALUE)
END
* @TUTNUMVALUE
* @ACTUALRATE)
/ 60)),
TDB.[Units] = CASE WHEN TDB.[Time] >= 0
THEN Ceiling(TDB.[Time] / @TUTNUMVALUE)
ELSE -Ceiling(-TDB.[Time] / @TUTNUMVALUE)
END
FROM [dbo].[TimeDayBook] TDB
WHERE TDB.[RECORDID] = @RECORDID
END
GO
IF OBJECT_ID(N'[KAAS_SetUserSettings]',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_SetUserSettings]
GO
CREATE PROCEDURE
[dbo].[KAAS_SetUserSettings]
(@Handler AS NVARCHAR(10),
@key AS NVARCHAR(100),
@value AS NVARCHAR(1000))
As
/*******************************************************************************************************
* Retrieves Detailed information for the entries displayed on the Dashboard (My Overview) page. *
* Function : AdminTimeDayBookforMonth *
* *
* Stored Procedure Name : [dbo].[KAAS_DashboardCaseAlert_AdminTimeDayBookforMonth] *
* Copied from : [dbo].[ky_NETDashboardCaseAlert] *
* *
* Modification History : *
* 2014-10-04 PINO Readability and @Key size was 1000, now 100 *
* 2015-01-19 PINO DO NOT Change NVARCHAR to VARCHAR - [dbo].[Usersettings] is defined with *
* NVARCHAR columns *
* 2019-07-05 ARUN Copied from Ky_NETSetUserSettings *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS
(SELECT *
FROM [dbo].[UserSettings] USS
WHERE USS.[Handler] = @Handler
AND USS.[Key] = @Key)
BEGIN
UPDATE USS
SET USS.[Value] = @value
FROM [dbo].[UserSettings] USS
WHERE USS.[Handler] = @Handler
AND USS.[Key] = @Key
END
ELSE
BEGIN
INSERT
INTO [dbo].[UserSettings]
([Handler],
[Key],
[Value])
VALUES(@Handler,
@key,
@value)
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_StopAllTimers'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_StopAllTimers]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_StopAllTimers]
(@FeeCode VARCHAR(10))
AS
/*******************************************************************************************************
* Sets all Stopwatch Status fields to 1 *
* Please note:this should only be called after login, in order to reset the status of any Time Daybook *
* entries that may have been left after an unexpected shutdown or crash *
* *
* Stored Procedure Name : [dbo].[KAAS_StopAllTimers] *
* Copied from : [dbo].[ky_NETSPStopAllTimers] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
UPDATE [TDB]
SET [TDB].[StopwatchStatus] = 1
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[FeeEarn] = @FeeCode
END
GO
IF OBJECT_ID(N'KAAS_TakeAction',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_TakeAction]
GO
CREATE PROCEDURE [dbo].[KAAS_TakeAction]
(
@Handler VARCHAR(10),
@ActionID INT
)
AS
/*******************************************************************************************************
* Allows a handler to take ownership of an Action. This is equivalent to *
* the original owner delegating and releasing the action to this handler. *
* *
* Stored Procedure Name : [dbo].[KAAS_TakeAction] *
* Copied from : [dbo].[ky_NETSPTakeAction] *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Team VARCHAR(10)
DECLARE @DelegatedToHandler INT
DECLARE @OwnerHandler VARCHAR(10)
DECLARE @DATE DATETIME
SELECT @TEAM = [HAN].[TEAM]
FROM [dbo].[Handlers] [HAN]
WHERE [HAN].[CODE] = @Handler
EXEC @DelegatedToHandler = [dbo].[KAAS_TaskScalarDelegatedToHandler] @Handler, @Actionid
SELECT @OwnerHandler = [DEL].[HANDLER]
FROM [dbo].[DiaryDelegations] [DEL]
WHERE DEL.[ACTIONID] = @ACTIONID
AND DEL.[OWNER] = 'Y'
AND DEL.[STATUS] = 0
SELECT @DATE = DIA.[DATE]
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
IF @OwnerHandler = @Handler
BEGIN
RETURN
END
IF @DelegatedToHandler = 0
BEGIN
DECLARE @DelegatedHandler AS VARCHAR(10)
DECLARE @AssignNumber AS INT
DECLARE @DelType AS VARCHAR(30)
--Just getting handler and Assign number to check the handler is TEAM
SELECT TOP 1
@DelegatedHandler = [DEL].[HANDLER],
@AssignNumber = [DEL].[AssignNo]
FROM [dbo].[DiaryDelegations] [DEL]
WHERE ( [DEL].[DelType] = 'Delegated'
OR [DEL].[DelType] = 'Released')
AND [DEL].[ACTIONID] = @ActionID
ORDER BY [DEL].[AssignNo] DESC
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[Handlers] [HAN]
WHERE [HAN].[CODE] = @DelegatedHandler
AND [HAN].[TEAMCODE] = 'Y')
BEGIN
UPDATE [DEL]
SET [DEL].[HANDLER] = @Handler,
@DelType = [DEL].[DelType]
FROM [dbo].[DiaryDelegations] [DEL]
WHERE (DelType='Delegated' or DelType='Released') AND ACTIONID=@ActionID AND AssignNo = @AssignNumber
IF (@DelType = 'Released') --FeeCode will only changed when Delegate Type is Released
BEGIN
UPDATE [DIA]
SET [DIA].[FNCODE] = @Handler,
[DIA].[DELEGATEDFNR] = @Handler
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
END
END
ELSE
BEGIN
DECLARE @DEL VARCHAR(MAX)
SET @DEL = CONVERT(VARCHAR(MAX),
(SELECT *
FROM (SELECT CONVERT(VARCHAR(10), @ActionID) AS [actionid],
@Handler AS [handler],
@Team AS [team],
@DATE AS [date],
@DATE AS [time],
'Y' AS [owner],
@OwnerHandler AS [delegate],
@OwnerHandler AS [fromhandler],
'Released' AS [deltype]) [del]
FOR XML AUTO))
DECLARE @DELSuccess INT
EXEC @DELSuccess = [dbo].[KAAS_ScalarXMLDiaryDelegation] @DEL
IF @DELSuccess = 0
BEGIN
SET @DelegatedToHandler = 1
END
END
END
ELSE
BEGIN
UPDATE [DEL]
SET [DEL].[STATUS] = 1,
[DEL].[OWNER] = 'N',
[DEL].[DelegateStatus] = 1
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ACTIONID] = @ACTIONID
AND [DEL].[OWNER] = 'Y'
AND [DEL].[STATUS] = 0
UPDATE [DEL]
SET [DEL].[OWNER] = 'Y',
[DEL].[DELEGATE] = @Handler,
[DEL].[DelType] = 'Released'
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ACTIONID] = @ACTIONID
AND [DEL].[STATUS] = 0
AND [DEL].[OWNER] = 'N'
AND [DEL].[HANDLER] = @Handler
UPDATE [DIA]
SET [DIA].[FNCODE] = @Handler,
[DIA].[DELEGATEDFNR] = @Handler,
[DIA].[DELEGATIONSTATUS] = 0
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_TaskAddFlag'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_TaskAddFlag]
END
GO
CREATE PROCEDURE KAAS_TaskAddFlag
(
@Actionid AS INT,
@Flag AS TINYINT
)
AS
/*******************************************************************************************************
* This Procedure is Used to Update Flag column in diary table. *
* *
* Stored Procedure Name : [dbo].[KAAS_TaskAddFlag] *
* Copied from : [dbo].[Ky_NETTaskAddFlag] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE Diary
SET Flag=@Flag
WHERE ACTIONID=@Actionid
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_TaskAddPriority',N'P') IS NOT NULL
DROP PROCEDURE KAAS_TaskAddPriority
GO
CREATE PROCEDURE KAAS_TaskAddPriority
(
@ACTIONID INT,
@PRIORTY VARCHAR(1)
)
AS
/*******************************************************************************************************
* This procedure is used to update the priority for the particular Action ID. *
* *
* Stored Procedure Name : [dbo].[KAAS_TaskAddPriority] *
* Copied from : [dbo].[KY_NETTaskAddPriority] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE
diary
SET
[PRIORITY]=@PRIORTY
WHERE
ACTIONID =@ACTIONID
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_TaskCompleteAction2'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_TaskCompleteAction2]
END
GO
CREATE PROCEDURE [dbo].[KAAS_TaskCompleteAction2]
(@ActionID INT,
@CurFee VARCHAR(10),
@CurTeam VARCHAR(10),
@NextActionsXML VARCHAR(4000),
@TakeOwnership INT,
@HoldDate BIT=0,
@Arrangement VARCHAR(5))
AS
/*******************************************************************************************************
* This stored procedure used to task complete action *
* *
* Stored Procedure Name : [dbo].[KAAS_TaskCompleteAction2] *
* Copied from : [dbo].[ky_NETTaskCompleteAction2] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Now DATETIME
DECLARE @NowDateOnly DATETIME
DECLARE @NowClarionTime CHAR(10)
DECLARE @NowClarionEndTime CHAR(10)
DECLARE @Continue INT
DECLARE @Owner INT
DECLARE @IsAuthorisedToComplete INT
DECLARE @CountFailedDependentActions INT
DECLARE @idoc INT
DECLARE @VCActionID VARCHAR(50)
DECLARE @MaxActionID INT
DECLARE @LocDel VARCHAR(10)
DECLARE @WorkProcess INT
DECLARE @ErrorMsgTable Table
([ErrorMsg] VARCHAR(500))
DECLARE @NA TABLE
([ID] INT identity(1, 1),
[ActionID] INT,
[Code] VARCHAR(5),
[Date] DATETIME)
DECLARE @AlarmType INT
DECLARE @DisabledAlarmStatusID INT
DECLARE @ActionTypeID INT
SET XACT_ABORT ON
SELECT @AlarmType = ISNULL(ALT1.[TypeID], ALT2.[TypeID])
FROM [dbo].[AlarmTypes] ALT2
LEFT OUTER JOIN [dbo].[AlarmTypes] ALT1
ON ALT1.[Description] = 'Action'
WHERE ALT2.[Description] = 'Generic Alarm'
SELECT @DisabledAlarmStatusID = IsNull(ALS2.[StatusID], ALS1.[StatusID])
FROM [dbo].[AlarmStatus] ALS1
LEFT OUTER JOIN [dbo].[AlarmStatus] ALS2
ON ALS2.[Description] = convert(VARCHAR(500), 'Actioned')
WHERE ALS1.[Description] = 'Disabled'
SELECT @ActionTypeID = ALT1.[TypeID]
FROM [dbo].[AlarmTypes] ALT1
WHERE ALT1.[Description] = 'Action'
IF (RTRIM(ISNULL(@CurTeam,'')) = '')
BEGIN
SELECT @CurTeam = HAN.[TEAM]
FROM [dbo].[Handlers] HAN
WHERE HAN.[CODE] = @CurFee
END
/* If @Continue is SET to a value other than zero at any point during this process,
stop processing further data, and make sure that the transaction at the END is rolled back */
SET @Continue = 0
/* Some processes are dependent on the current fee handler being the owner of the action
that is to be completed, others require that the action is/isn't a phone call or e-mail */
SELECT @Owner = CASE DIA.[FNCODE]
WHEN @CurFee
THEN 1
ELSE 0 END,
@WorkProcess = ISNULL(DIA.[WORKPROCESS], 0)
FROM [dbo].[Diary] DIA
WHERE DIA.[ACTIONID] = @ActionID
IF (@TakeOwnership = 1)
SET @Owner = 1
/* Check that this fee earner is authorised to complete this action. Note that this should
also be checked by the client application, before calling this procedure, but we should
still check it here in case this somehow gets invoked while bypassing the client checks. */
--SELECT @IsAuthorisedToComplete = [IsAuthorisedToComplete]
-- FROM [dbo].[ky_WDActionAuthorisedToComplete](@ActionID, @CurFee)
BEGIN
INSERT
INTO @ErrorMsgTable
(ErrorMsg)
SELECT CASE RTRIM(ISNULL(TAC.[AuthorisationRequired], 'L'))
WHEN ''
THEN 'Cont'
WHEN 'L'
THEN 'Cont'
WHEN 'C'
THEN CASE WHEN RTRIM(ISNULL(MAT.[FECode], '')) = @CurFee
THEN 'Cont'
ELSE 'You are not authorised to complete this action. The f/e for this case is required to complete this action.' END
WHEN 'P'
THEN CASE WHEN RTRIM(ISNULL(MAT.[Partner], '')) = @CurFee
THEN 'Cont'
ELSE 'You are not authorised to complete this action. The Partner for this case is required complete this ation.' END
WHEN 'F'
THEN CASE WHEN RTRIM(ISNULL(CNT.[FE], '')) = @CurFee
THEN 'Cont'
ELSE 'You are not authorised to complete this action. The Partner for this client is required to complete this action.' END
WHEN 'A'
THEN CASE WHEN RTRIM(ISNULL(CNT.[FE], '')) = @CurFee
THEN 'Cont'
ELSE 'You are not authorised to complete this action. A Partner of the firm is required to complete this action. Recommend you delegate this action to a partner.' END
WHEN 'O'
THEN CASE WHEN RTRIM(ISNULL(CNT.[FE], '')) = @CurFee
THEN 'Cont'
ELSE 'You are not authorised to complete this action.' END
ELSE 'You are not authorised to complete this action.' END
FROM [dbo].[Diary] DIA
INNER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[Contacts] CNT
ON CNT.[Code] = MAT.[ClientCode]
ON MAT.[Code] = DIA.[CASECODE]
LEFT OUTER JOIN [dbo].[TemplateActions] TAC
ON TAC.[ACTIONCODE] = dia.[ACTIONCODE]
INNER JOIN [dbo].[Handlers] FHA
ON FHA.[CODE] = @CurFee
WHERE DIA.[ACTIONID] = @ActionID
END
/* IF not authorised, do not do anything ELSE */
IF ((SELECT Top 1 ErrorMsg FROM @ErrorMsgTable)<>'Cont')
BEGIN
SET @Continue = 1
END
ELSE
BEGIN
DELETE FROM @ErrorMsgTable
END
IF (@Continue = 0)
BEGIN
/* this function returns error messages for each dependent action that has not been
completed within the required timeframe. This should also be checked in the client
application, and it should display the error messages returned by this function. Here
it suffices to make sure there are 0 messages before we proceed. */
--SELECT @CountFailedDependentActions = COUNT(1)
-- FROM [dbo].[ky_WDActionCheckDependentActions](@ActionID)
/* If there are any messages, do not continue */
INSERT
INTO @ErrorMsgTable
([ErrorMsg])
SELECT CONVERT(VARCHAR(1000),
RTRIM(ISNULL(DPA.[DependentActionDescription], '')
+ ' must be complete')
+ CASE WHEN ISNULL(DPA.[TimeFrame], '') = 'Any Time'
THEN ''
WHEN ISNULL(DPA.[TimeFramAmount], 0) <= 0
THEN ''
ELSE ' (within a timeframe of '
+ CONVERT(VARCHAR(4), convert(INT, ISNULL(DPA.[TimeFramAmount], 0)))
+ ' '
+ ISNULL(DPA.[TimeFrame], 0)
+ ')' END
+ ' before you can complete this action') AS [ErrorMessage]
FROM [dbo].[Diary] DIA
OUTER APPLY (SELECT TDA.[ActionCode],
TDA.[DependentActionCode],
TDA.[TimeFramAmount],
TDA.[TimeFrame],
TDA.[Status],
RTRIM(ISNULL(TAD.[DESC], '')) AS [DependentActionDescription]
FROM [dbo].[TemplateDependentActions] TDA
INNER JOIN [dbo].[TemplateActions] TAD
ON TAD.[ACTIONCODE] = TDA.[DependentActionCode]
WHERE TDA.[ActionCode] = DIA.[ActionCode]) DPA
OUTER APPLY (SELECT COUNT(1) AS TOTAL
FROM [dbo].[diary] DEPA
WHERE DEPA.[CASECODE] = DIA.[CASECODE]
AND DEPA.[ACTIONCODE] = DPA.[DependentActionCode]
AND DEPA.[STATUS] = 1
AND DEPA.[DATE] >= CASE WHEN DPA.[TimeFrame] = 'Any Time'
THEN CONVERT(DATETIME, '18010101')
WHEN DPA.[TimeFrame] = 'Day(s)'
THEN DATEADD(DD, -DPA.[TimeFramAmount], DIA.[DATE])
WHEN DPA.[TimeFrame] = 'Week(s)'
THEN DATEADD(WK, -DPA.[TimeFramAmount], DIA.[DATE])
WHEN DPA.[TimeFrame] = 'Month(s)'
THEN DATEADD(MM, -DPA.[TimeFramAmount], DIA.[DATE])
WHEN DPA.[TimeFrame] = 'Year(s)'
THEN DATEADD(YY, -DPA.[TimeFramAmount], DIA.[DATE])
ELSE CONVERT(DATETIME, '18010101') END) FON
WHERE DIA.[ACTIONID] = @ActionID
AND DPA.[ActionCode] IS NOT NULL
AND FON.[TOTAL] = 0
IF (SELECT COUNT(*) FROM @ErrorMsgTable) <> 0
BEGIN
SET @Continue =1
END
END
-- END IF (@Continue = 0)
/* now all the checks are done, we are going to make actual database changes. All this should
be atomic so we wrap the whole lot into a transaction */
BEGIN TRANSACTION
BEGIN TRY
BEGIN
IF (@Continue = 0)
BEGIN
/* some date and time variables that may be used in several of the updates that follow */
-- full date/time
IF @HoldDate=0
BEGIN
SET @Now = GETDATE()
-- date only, time SET to 00:00:00
SET @NowDateOnly = convert(DATETIME, convert(VARCHAR, @Now, 112))
-- Clarion compliant representation of the Time part of the date/time
SET @NowClarionTime = convert(CHAR(10), [dbo].[ky_ConvertTimeToClarion](@Now))
SET @NowClarionEndTime = convert(CHAR(10), [dbo].[ky_ConvertTimeToClarion](dateadd(mi, 30, @Now)))
END
ELSE
BEGIN
SET @Now = (SELECT [DATE] FROM Diary WHERE ACTIONID =@ActionID )
-- date only, time SET to 00:00:00
SET @NowDateOnly = convert(DATETIME, convert(VARCHAR, @Now, 112))
-- Clarion compliant representation of the Time part of the date/time
SET @NowClarionTime = convert(CHAR(10), [dbo].[ky_ConvertTimeToClarion](@Now))
SET @NowClarionEndTime = convert(CHAR(10), [dbo].[ky_ConvertTimeToClarion](dateadd(mi, 30, @Now)))
END
SELECT
@LocDel = DEL.[DELEGATE]
FROM
[dbo].[DiaryDelegations] DEL
WHERE
DEL.[ACTIONID] = @ActionID
AND
DEL.[HANDLER] = @CurFee
AND
ISNULL(DEL.[STATUS], 0) = 0
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
/* update all Diary delegation records that were assigned to the current handler */
UPDATE
DEL
SET
DEL.[DATER] = @NowDateOnly,
DEL.[TIMER] = @NowClarionTime,
DEL.[STATUS] = 1
FROM
[dbo].[DiaryDelegations] DEL
WHERE
DEL.[ACTIONID] = @ActionID
AND DEL.[HANDLER] = @CurFee
AND IsNull(DEL.[Status], 0) = 0
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
IF (@Owner = 1)
BEGIN
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) */
/* Phone and E-mail records */
UPDATE
DIA
SET
DIA.[STATUS] = 1,
DIA.[PROCESSSTATUS] = 0,
DIA.[FNCODE] = CASE WHEN @TakeOwnership = 1 THEN @CurFee ELSE DIA.[FNCODE] END,
DIA.[TEAMCODE] = CASE WHEN @TakeOwnership = 1 THEN @CurTeam ELSE DIA.[TEAMCODE] END
FROM
[dbo].[Diary] DIA
WHERE
DIA.[ACTIONID] = @ActionID
--AND
-- ISNULL(DIA.[ACTIONTYPE],'') NOT IN ('A','D','S') -- Pino 2015-10-12, add 'D' (Dictations) to exceptions
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) */
/* If it is a normal Action, update some date information, too */
UPDATE DIA
SET DIA.[STATUS] = 1,
DIA.[PROCESSSTATUS] = 0,
DIA.[DATE] = @Now,
DIA.[DYSTARTTIME] = @NowClarionTime,
DIA.[DYENDTIME] = @NowClarionEndTime,
DIA.[FNCODE] = CASE WHEN @TakeOwnership = 1 THEN @CurFee ELSE DIA.[FNCODE] END,
DIA.[TEAMCODE] = CASE WHEN @TakeOwnership = 1 THEN @CurTeam ELSE DIA.[TEAMCODE] END
FROM [dbo].[Diary] DIA
WHERE DIA.[ACTIONID] = @ActionID
-- AND IsNull(DIA.[ACTIONTYPE], '') IN ('A', 'D','S') -- Pino 2015-10-12, do this also for Dictations ('D')
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) */
SET @VCActionID = convert(VARCHAR(50), @ActionID)
/* Better to keep these updates in-line since we're wrapping it all
into a transaction;
we don't want to introduce further complications with calls to
external procedures that update the database at this point.
Originally:
EXEC [dbo].[ky_SetLinkedAlarms] 'Actioned', 'Action', @VCActionID */
UPDATE ALM
SET ALM.[Status] = @DisabledAlarmStatusID
FROM [dbo].[Alarms] ALM
WHERE ALM.[Type] = @ActionTypeID
AND ALM.[LinkID] = @VCActionID
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) */
/* When applicable, make sure that the Matter status reflects the status
of this completed action */
--UPDATE MAT
-- SET MAT.[Status] = TAC.[STATUS]
-- FROM [dbo].[Diary] DIA
-- INNER JOIN [dbo].[matters] MAT
-- ON MAT.[Code] = DIA.[CASECODE]
-- INNER JOIN [dbo].[TemplateActions] TAC
-- ON TAC.[ACTIONCODE] = DIA.[ACTIONCODE]
-- AND ISNULL(TAC.[STATUS], '') NOT IN ('NA', 'N/A', '')
-- WHERE DIA.[ACTIONID] = @ActionID
UPDATE MAT
SET MAT.[Status] = DIA.[ACTIONSTATUS]
FROM [dbo].[Diary] DIA
INNER JOIN [dbo].[matters] MAT
ON MAT.[Code] = DIA.[CASECODE]
AND ISNULL(DIA.[ACTIONSTATUS], '') NOT IN ('NA', 'N/A', '')
WHERE DIA.[ACTIONID] = @ActionID
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) */
/* Update Case Master */
UPDATE CSM
SET CSM.[CSDATELASTACN_DATE] = @NowDateOnly
FROM [dbo].[Diary] DIA
INNER JOIN [dbo].[CaseMaster] CSM
ON CSM.[CSCODE] = DIA.[CASECODE]
WHERE DIA.[ACTIONID] = @ActionID
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) */
/* Example of @NextActionsXML:
Y
Do
XXX
XXX
Y
Do not
YYY
YYY
N
Do
ZZZ
ZZZ
*/
EXEC sp_xml_preparedocument @idoc OUTPUT, @NextActionsXML
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
IF (@Continue = 0)
BEGIN
SELECT @Continue = COUNT(1)
FROM OPENXML(@idoc, 'NA/NextAction', 2)
WITH([Process] VARCHAR(1) 'Process',
[Decision] VARCHAR(10) 'Decision',
[Code] VARCHAR(5) 'Code',
[Date] DATETIME) NA
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = @ActionID
INNER JOIN [dbo].[TemplateActions] TAC
ON TAC.[ACTIONCODE] = NA.[Code]
AND TAC.[AssignActionTo] = 'P'
INNER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = @CurFee
INNER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[Contacts] CNT
ON CNT.[Code] = MAT.[ClientCode]
ON MAT.[Code] = DIA.[CASECODE]
AND RTRIM(ISNULL(MAT.[Partner], '')) = ''
WHERE NA.[Process] = 'Y'
AND NA.[Decision] = 'Do'
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions */
-- Delete next actions flagged AS "Do Not". First, Diary Delegations:
DELETE DSL
FROM OPENXML(@idoc, 'NA/NextAction', 2)
WITH([Process] VARCHAR(1) 'Process',
[Decision] VARCHAR(10) 'Decision',
[Code] VARCHAR(5) 'Code',
[Date] DATETIME) BLCH
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = @ActionID
INNER JOIN [dbo].[Diary] DS
INNER JOIN [dbo].[DiaryDelegations] DSL
ON DSL.[ACTIONID] = DS.[ACTIONID]
ON DS.[CASECODE] = DIA.[CASECODE]
AND DS.[ACTIONCODE] = BLCH.[Code]
AND DS.[STATUS] = 0
WHERE BLCH.[Process] = 'Y'
AND BLCH.[Decision] = 'Do not'
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions */
-- Delete next actions flagged AS "Do Not". Second, OlApptXRef:
DELETE DOL
FROM OPENXML(@idoc, 'NA/NextAction', 2)
WITH([Process] VARCHAR(1) 'Process',
[Decision] VARCHAR(10) 'Decision',
[Code] VARCHAR(5) 'Code',
[Date] DATETIME) BLCH
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = @ActionID
INNER JOIN [dbo].[Diary] DS
INNER JOIN [dbo].[OLApptXref] DOL
ON DOL.[ACTIONID] = DS.[ACTIONID]
ON DS.[CASECODE] = DIA.[CASECODE]
AND DS.[ACTIONCODE] = BLCH.[Code]
AND DS.[STATUS] = 0
WHERE BLCH.[Process] = 'Y'
AND BLCH.[Decision] = 'Do not'
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions */
-- Delete next actions flagged AS "Do Not". Third, DiaryAttachments:
DELETE DAT
FROM OPENXML(@idoc, 'NA/NextAction', 2)
WITH([Process] VARCHAR(1) 'Process',
[Decision] VARCHAR(10) 'Decision',
[Code] VARCHAR(5) 'Code',
[Date] DATETIME) BLCH
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = @ActionID
INNER JOIN [dbo].[Diary] DS
INNER JOIN [dbo].[DiaryAttachments] DAT
ON DAT.[DiaryID] = DS.[ACTIONID]
ON DS.[CASECODE] = DIA.[CASECODE]
AND DS.[ACTIONCODE] = BLCH.[Code]
AND DS.[STATUS] = 0
WHERE BLCH.[Process] = 'Y'
AND BLCH.[Decision] = 'Do not'
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions */
-- Delete next actions flagged AS "Do Not". Fourth, DiaryLinks:
DELETE DLK
FROM OPENXML(@idoc, 'NA/NextAction', 2)
WITH([Process] VARCHAR(1) 'Process',
[Decision] VARCHAR(10) 'Decision',
[Code] VARCHAR(5) 'Code',
[Date] DATETIME) BLCH
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = @ActionID
INNER JOIN [dbo].[Diary] DS
INNER JOIN [dbo].[DiaryLinks] DLK
ON DLK.[ACTIONID] = DS.[ACTIONID]
ON DS.[CASECODE] = DIA.[CASECODE]
AND DS.[ACTIONCODE] = BLCH.[Code]
AND DS.[STATUS] = 0
WHERE BLCH.[Process] = 'Y'
AND BLCH.[Decision] = 'Do not'
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions */
-- Delete next actions flagged AS "Do Not". Fifth, DiaryTemp:
DELETE DTM
FROM OPENXML(@idoc, 'NA/NextAction', 2)
WITH([Process] VARCHAR(1) 'Process',
[Decision] VARCHAR(10) 'Decision',
[Code] VARCHAR(5) 'Code',
[Date] DATETIME) BLCH
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = @ActionID
INNER JOIN [dbo].[Diary] DS
INNER JOIN [dbo].[DiaryTemp] DTM
ON DTM.[ACTIONID] = DS.[ACTIONID]
ON DS.[CASECODE] = DIA.[CASECODE]
AND DS.[ACTIONCODE] = BLCH.[Code]
AND DS.[STATUS] = 0
WHERE BLCH.[Process] = 'Y'
AND BLCH.[Decision] = 'Do not'
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions */
-- Delete next actions flagged AS "Do Not". Second, the actual Diary entries:
DELETE DS
FROM OPENXML(@idoc, 'NA/NextAction', 2)
WITH([Process] VARCHAR(1) 'Process',
[Decision] VARCHAR(10) 'Decision',
[Code] VARCHAR(5) 'Code',
[DATE] DATETIME) BLCH
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = @ActionID
INNER JOIN [dbo].[Diary] DS
ON DS.[CASECODE] = DIA.[CASECODE]
AND DS.[ACTIONCODE] = BLCH.[Code]
AND DS.[STATUS] = 0
WHERE BLCH.[Process] = 'Y'
AND BLCH.[Decision] = 'Do not'
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
/* Create new Actions based on the TemplateNextAction entries that are
flagged AS "Do"s.
As this involves a number of steps, we'll use a temporary table @NA
(nextactions) that will hold the newly created Action IDs.
We can then use that AS a basis for all following INSERT and UPDATE
statements ensuring that all Diary / DiaryDelegation (etc) entries are
correctly linked within this transaction.
*/
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions */
--Pino 2015-09-30 Start
EXEC @MaxActionID = [dbo].[KAAS_GetNextActionID]
SET @MaxActionID = @MaxActionID - 1
--SELECT @MaxActionID = IsNull(MAX(DIA.[ActionID]), 0)
-- FROM [dbo].[Diary] DIA
--Pino 2015-09-30 Start
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
IF (@Continue = 0)
BEGIN
INSERT
INTO @NA
([ActionID],
[Code],
[Date])
SELECT @MaxActionID,
BLCH.[Code],
[Date]
FROM OPENXML(@idoc, 'NA/NextAction', 2)
WITH(Process VARCHAR(1) 'Process',
Decision VARCHAR(10) 'Decision',
Code VARCHAR(5) 'Code',
[Date] DATETIME) BLCH
WHERE BLCH.[Process] = 'Y'
AND BLCH.[Decision] = 'Do'
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
END
-- END IF (@Continue = 0)
EXEC sp_xml_removedocument @idoc
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions */
UPDATE @NA SET [ActionID] = [ActionID] + [ID]
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions */
/* The following is based on the original Clarion
AddDiaryStep procedure (in CaseFun)
Based on the NextActions in the temporary @NA table this code will:
- Create new Diary entries,
- Add their DiaryDelegation records,
- Set the Linked Alarm
- Update CaseMaster with the last added Diary Work Type
ADDDIARYSTEP - START
*/
INSERT
INTO [dbo].[Diary]
([ActionID],
[CASECODE],
[DATE],
[STATUS],
[ACTIONSTATUS],
[ACTIONCODE],
[ACTIONTYPE],
[FnCode],
[TeamCode],
[Text1],
[Displaytext],
[DYStartTime],
[DYEndTime],
[DueDate],
[ImageNo],
[Publish],
[Priority],
[Highlighted],
[Billable],
[ProcessStatus],
[BillDescription],
[MILESTEONETYPE],
[ORGINALACTIONID],
[DraftBillNo],
[Subject])
SELECT NA.[ActionID],
DIA.[CASECODE] AS [CASECODE],
--[dbo].[ky_WDGetDate](@Now,
-- TNA.[WHENTYPE],
-- TNA.[WHEN]) AS [DATE],
NA.[Date] AS [DATE],
0 AS [STATUS],
TAC.[STATUS] AS [ACTIONSTATUS],
NA.[Code] AS [ACTIONCODE],
TAC.[ACTIONCATEGORY] AS [ACTIONTYPE],
CASE TAC.[AssignActionTo]
WHEN 'C'
THEN MAT.[FECode]
WHEN 'P'
THEN MAT.[Partner]
WHEN 'F'
THEN CNT.[FE]
WHEN 'O'
THEN TAC.[ASSIGNHANDLER]
ELSE @CurFee END AS [FnCode],
CASE TAC.[AssignTeamActionTo]
WHEN 'O'
THEN TAC.[ASSIGNTEAM]
ELSE HAN.[TEAM] END AS [TeamCode],
TAC.[DESC] AS [Text1],
[dbo].[KAAS_FN_RemoveSpuriousWhitespace](ISNULL(CONVERT(VARCHAR(MAX), TAC.[DESC]), ''), 200) AS [Displaytext],
@NowClarionTime AS [DYStartTime],
@NowClarionEndTime AS [DYEndTime],
--[dbo].[ky_WDGetDate](@NowDateOnly,
-- TNA.[WHENTYPE],
-- TNA.[WHEN]) AS [DueDate],
NA.[Date] AS [DueDate],
0 As [ImageNo],
TAC.[PUBLISHER] AS [Publish],
IsNull(SUBSTRING(TAC.[PRIORITY], 1, 1), 'N') As [Priority],
TAC.[HIGHLIGHTED] As [Highlighted],
CASE TAC.[BILLABLE]
WHEN 'Y'
THEN 1
ELSE 0 END As [Billable],
0 As [ProcessStatus],
TAC.[BILLDESCRIPTION] AS [BillDescription],
CASE TAC.[AssignActionTo]
WHEN 'C'
THEN MAT.[FECode]
WHEN 'P'
THEN MAT.[Partner]
WHEN 'F'
THEN CNT.[FE]
WHEN 'O'
THEN TAC.[ASSIGNHANDLER]
ELSE @CurFee END AS [MilestoneType],
@ActionID As [OriginalActionID],
0 As [DraftBillNo],
CASE WHEN SUBSTRING(TAC.[DESC],0,CHARINDEX (CHAR(13),TAC.[DESC]))= '' THEN TAC.[DESC]
ELSE SUBSTRING(TAC.[DESC],0,CHARINDEX (CHAR(13),TAC.[DESC]))
END
FROM @NA NA
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = @ActionID
INNER JOIN [dbo].[TemplateActions] TAC
ON TAC.[ACTIONCODE] = NA.[Code]
INNER JOIN [dbo].[TemplateNextActions] TNA
ON TNA.[ACTION] = DIA.[ACTIONCODE]
AND TNA.[NEXTACTION] = NA.[Code]
INNER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = @CurFee
INNER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[Contacts] CNT
ON CNT.[Code] = MAT.[ClientCode]
ON MAT.[Code] = DIA.[CASECODE]
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
--Pino 2015-09-30 Start
--reseed
EXEC [dbo].[KAAS_ReseedActionID]
--EXEC @MaxActionID = [dbo].[KAAS_GetNextActionID]
--Pino 2015-09-30 Start
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions / AddDiaryStep */
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[DATE],
[TIME],
[DUEDATE],
[DUETIME],
[STATUS],
[OWNER],
[DELEGATE],
[ACTIONTYPE],
[DelType],
[FromHandler])
SELECT DIA.[ACTIONID] AS [ACTIONID],
CASE WHEN @TakeOwnership = 1 THEN @CurFee ELSE DIA.[FNCODE] END AS [HANDLER],
CASE WHEN @TakeOwnership = 1 THEN @CurTeam ELSE DIA.[TEAMCODE] END AS [TEAM],
DIA.[DUEDATE] AS [DATE],
@NowClarionTime AS [TIME],
DIA.[DUEDATE] AS [DUEDATE],
@NowClarionTime AS [DUETIME],
DIA.[STATUS] AS [STATUS],
'Y' AS [OWNER],
DIA.[FNCODE] AS [DELEGATE],
DIA.[ACTIONTYPE] AS [ACTIONTYPE],
'Created' AS [DelType],
DIA.[FNCODE] AS [FromHandler]
FROM @NA NA
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = NA.[ActionID]
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions / AddDiaryStep */
INSERT
INTO [dbo].[Alarms]
([ID],
[HandlerCode],
[MatterRef],
[LinkID],
[OriginalDate],
[DeferredDate],
[Title],
[Message],
[Type],
[Status])
SELECT convert(VARCHAR(38), newid()) AS [ID],
DEL.[HANDLER] AS [Handler],
DIA.[CASECODE] As [MatterRef],
convert(VARCHAR(50), NA.[ActionID]) AS [LinkID],
DIA.[DATE] As [OriginalDate],
DIA.[DATE] As [DeferredDate],
CASE WHEN DIA.[ActionType] <> 'E'
THEN ISNULL(RTRIM(SUBSTRING(DIA.[TEXT1], 1, 255)), '')
WHEN DIA.[ProcessType] = 'I'
THEN RTRIM(SUBSTRING( 'Email From:'
+ RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), ''))
+ ' - '
+ ISNULL(SUBSTRING(DIA.[Subject],
1,
255), ''),
1,
255))
ELSE RTRIM(SUBSTRING( 'Email To:'
+ RTRIM(ISNULL(SUBSTRING(DIA.[AddressTo],
1,
255), ''))
+ ' - '
+ ISNULL(SUBSTRING(DIA.[Subject],
1,
255), ''),
1,
255)) END AS [Title],
RTRIM(SUBSTRING(DIA.[Text1], 1, 8000)) AS [Message],
@AlarmType As [Type],
ALS.[StatusID] AS [Status]
FROM @NA NA
INNER JOIN [dbo].[Diary] DIA
ON DIA.[ACTIONID] = NA.[ActionID]
INNER JOIN [dbo].[DiaryDelegations] DEL
ON DEL.[ACTIONID] = NA.[ActionID]
INNER JOIN [dbo].[AlarmStatus] ALS
ON ALS.[Description] = 'Attention'
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) / NextActions / AddDiaryStep */
IF NOT ((SELECT RTRIM(ISNULL(T.HoldCasePlan,'N')) FROM templateactions T INNER JOIN Diary D on T.ACTIONCODE = D.ACTIONCODE WHERE D.ACTIONID = @ActionID) = 'Y')
BEGIN
UPDATE CSM
SET CSM.[CSWKTCODE] = TAC.[WKTCODE]
FROM ( SELECT MAX(NA.[ActionID]) AS [MaxActionID]
FROM @NA NA) LAID
INNER JOIN [dbo].[Diary] DIA
INNER JOIN [dbo].[TemplateActions] TAC
ON TAC.[ACTIONCODE] = DIA.[ACTIONCODE]
ON DIA.[ACTIONID] = LAID.[MaxActionID]
INNER JOIN [dbo].[CaseMaster] CSM
ON CSM.[CSCODE] = DIA.[CASECODE]
END
END
-- END IF (@Continue = 0)
/*
ADDDIARYSTEP - END
*/
END
-- END IF (@Continue = 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) */
/* Complete the diary delegations */
UPDATE DEL
SET DEL.[STATUS] = 1,
DEL.[HANDLER] = CASE WHEN @TakeOwnership = 1 THEN @CurFee ELSE DEL.[HANDLER] END,
DEL.[TEAM] = CASE WHEN @TakeOwnership = 1 THEN @CurTeam ELSE DEL.[TEAM] END,
DEL.[DelType] = CASE WHEN (@TakeOwnership = 1) AND (DEL.[DelType] = 'Released') AND (DEL.[FromHandler] = @CurFee) THEN 'Completed' ELSE DEL.[DelType] END
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ActionID
AND IsNull(DEL.[STATUS], 0) <> 1
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 1) */
/* Write new 'Completed' row to Diary Delegations */
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[FromHandler],
[ReturnedBy],
[DELEGATE],
[DATE],
[TIME],
[STATUS],
[DELEGATESTATUS],
[DelType])
SELECT DIA.[ACTIONID],
DIA.[FNCODE],
DIA.[TEAMCODE],
DIA.[FNCODE],
DIA.[FNCODE],
DIA.FNCODE,
@NowDateOnly,
@NowClarionTime,
1,
1,
'Completed'
FROM [dbo].[Diary] DIA
WHERE DIA.[ACTIONID] = @ActionID
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
END
-- END IF (@Owner = 1)
IF (@Owner = 0)
BEGIN
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 0) */
/* Return Action */
UPDATE DIA
SET DIA.[DELEGATEDFNR] = @LocDel,
DIA.[PROCESSSTATUS] = 0,
DIA.[DELEGATIONSTATUS] = CASE WHEN @LocDel = DIA.[FNCODE]
THEN 2
ELSE DIA.[DELEGATIONSTATUS] END
FROM [dbo].[Diary] DIA
WHERE DIA.[ACTIONID] = @ActionID
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 0) */
IF (@WorkProcess = 0)
BEGIN
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[DATE],
[TIME],
[TIMER],
[DUETIME],
[REVIEW],
[STATUS],
[OWNER],
[DELEGATE],
[DELEGATESTATUS],
[ActionType],
[FromHandler],
[ReturnedBy],
[DelType])
SELECT DEL.[ACTIONID],
@CurFee As [HANDLER],
@CurTeam AS [TEAM],
@Now,
@NowClarionTime,
NULL AS [TIMER],
'' AS [DUETIME],
'' AS [REVIEW],
1 AS [STATUS],
'' AS [OWNER],
@CurFee AS [DELEGATE],
1 As [DELEGATESTATUS],
'' AS [ActionType],
@CurFee AS [FromHandler],
@CurFee AS [ReturnedBy],
'Processed' AS [DelType]
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ActionID
AND DEL.[HANDLER] = @LocDel
AND DEL.[STATUS] = 0
UPDATE DIA
SET DIA.[WorkProcess] = 1
FROM [dbo].[Diary] DIA
WHERE DIA.[ActionID] = @ActionID
END
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[ActionType],
[DATE],
[DATER],
[DELEGATE],
[DELEGATESTATUS],
[DUEDATE],
[DUETIME],
[DelType],
[FromHandler],
[HANDLER],
[OWNER],
[REVIEW],
[ReturnedBy],
[STATUS],
[TEAM],
[TIME],
[TIMER])
SELECT DEL.[ACTIONID],
DEL.[ActionType],
@Now,
@NowDateOnly AS [DATER],
DEL.[DELEGATE],
2 As [DELEGATESTATUS],
DEL.[DUEDATE],
DEL.[DUETIME],
'Returned' AS [DelType],
DEL.[FromHandler],
DEL.[HANDLER],
DEL.[OWNER],
DEL.[REVIEW],
@CurFee AS [ReturnedBy],
1 AS [STATUS],
DEL.[TEAM],
@NowClarionTime,
@NowClarionTime AS [TIMER]
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ActionID
AND DEL.[HANDLER] = @LocDel
AND DEL.[STATUS] = 0
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
IF (@Continue = 0)
BEGIN
/* top condition: (@Owner = 0) */
UPDATE DEL
SET DEL.[DELEGATESTATUS] = 2,
DEL.[DATER] = @NowDateOnly,
DEL.[TIMER] = @NowClarionTime,
DEL.[ReturnedBy] = @CurFee
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ActionID
AND DEL.[HANDLER] = @LocDel
AND DEL.[STATUS] = 0
IF (@@ERROR <> 0)
BEGIN
/* this will eventually lead to a rollback */
SET @Continue = 1
END
-- END IF (@@ERROR <> 0)
END
-- END IF (@Continue = 0)
END
-- END IF (@Owner = 0)
END
-- END IF (@Continue = 0)
END
END TRY
BEGIN CATCH
SET @Continue = 1
END CATCH
IF (@Continue = 0)
BEGIN
BEGIN TRY
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ACTIONID] = @ActionID
AND [DEL].[STATUS] = 0
AND [DEL].[OWNER] = 'Y')
BEGIN
UPDATE [DEL]
SET [DEL].[OWNER] = ''
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ACTIONID] = @ActionID
AND [DEL].[STATUS] = 1
AND [DEL].[OWNER] = 'Y'
END
END TRY
BEGIN CATCH
SET @Continue = 1
END CATCH
END
IF (@Continue = 0)
BEGIN
COMMIT
SELECT ErrorMsg FROM @ErrorMsgTable
END
ELSE -- ELSE (IF (@Continue = 0))
BEGIN
ROLLBACK
SELECT ErrorMsg FROM @ErrorMsgTable
END
-- END IF (@Continue = 0)
IF NOT (@Arrangement = '')
BEGIN
UPDATE [MAT]
SET [MAT].[ChargeArrangement] = @Arrangement,
[MAT].[CollectingBalance] = 0
FROM [dbo].[Diary] [DIA]
INNER JOIN [dbo].[matters] [MAT]
ON [MAT].[Code] = [DIA].[CASECODE]
WHERE [DIA].[ACTIONID] = @ActionID
END
SET NoCount OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_TaskCopyDetails'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_TaskCopyDetails]
END
GO
CREATE PROCEDURE KAAS_TaskCopyDetails
(
@ACTIONID INT,
@CASECODE1 VARCHAR(20),
@FNCODE VARCHAR(10),
@Status VARCHAR(5)
)
/*************************************************************************************************
* Stored Procedure : [KAAS_TaskCopyDetails] *
* Copied From : [ky_NETTaskCopyDetails] *
* *
* This stored procedure is used to Paset the Client Case Action information one to other case. *
* *
* Last Updated: 20JUNE2014 07.10 PM (IST) *
* 2014-08-20 Pino - allow for 20 character Case codes (future change) *
* /* Added a Flag column to insert diary on 16/12/2014 by sridharan */ *
* 2015-09-30 Pino - Use ky_NETGetNextActionID *
* 2019-06-04 Vinodhan - Created KAAS_TaskCopyDetails *
**************************************************************************************************/
AS
BEGIN
SET NOCOUNT ON
DECLARE @ACTIONVALUE INT
-- Pino 2015-09-30 Start
EXEC @ACTIONVALUE = [dbo].[KAAS_GetNextActionID]
--SET @ACTIONVALUE = (SELECT ISNULL(MAX(ACTIONID),0) + 1 FROM DIARY)
-- Pino 2015-09-30 End
DECLARE @TIME VARCHAR(11)
SET @TIME = (SELECT dbo.KAAS_ConvertTimeToClarion(GETDATE()))
DECLARE @ACTIONCODE VARCHAR(20)
SET @ACTIONCODE = (SELECT ACTIONCODE FROM diary WHERE ACTIONID = @ACTIONID)
DECLARE @Flag TINYINT
SET @Flag = (SELECT flag FROM TemplateActions WHERE ACTIONCODE = @ACTIONCODE)
INSERT INTO
DIARY
(
CASECODE
,[DATE]
,[STATUS]
,ACTIONCODE
,ACTIONSTATUS
,ACTIONTYPE
,PROCESSTYPE
,FNCODE
,TEAMCODE
,TEXT1
,TEXT2
,DELEGATEDFNR
,DELEGATEDDATE
,DELEGATEDBACKDATE
,DEFERRED
,DUEDATE
,IMAGENO
,PUBLISH
,DYSTARTTIME
,DYENDTIME
,DURATION
,ACTIONID
,ORGINALACTIONID
,[PRIORITY]
,HIGHLIGHTED
,MILESTEONETYPE
,ATTACHMENTS
,PROCESSSTATUS
,WORKPROCESS
,BILLABLE
,BILLDESCRIPTION
,EMAILADDRESS
,ADDRESSTO
,CCTo
,BCCTo
,EMAIL
,[SUBJECT]
,DELEGATIONSTATUS
,DRAFTBILLNO
,CHEQUEREQNO
,TxmSent
,Location
,HearingType
,ForCopy
,TxmDate
,TxmSeqNo
,DisplayText
,Flag
)
SELECT
@CASECODE1
,case when @Status = '' then [DATE] ELSE GETDATE() END
,case when @Status = '' then [STATUS] ELSE 0 END
,ACTIONCODE
,ACTIONSTATUS
,ACTIONTYPE
,PROCESSTYPE
,@FNCODE
,TEAMCODE
,TEXT1
,TEXT2
,DELEGATEDFNR
,DELEGATEDDATE
,DELEGATEDBACKDATE
,DEFERRED
,DUEDATE
,IMAGENO
,PUBLISH
,@TIME
,DYENDTIME
,DURATION
,@ACTIONVALUE
,@ACTIONVALUE
,[PRIORITY]
,HIGHLIGHTED
,MILESTEONETYPE
,ATTACHMENTS
,PROCESSSTATUS
,WORKPROCESS
,BILLABLE
,BILLDESCRIPTION
,EMAILADDRESS
,ADDRESSTO
,CCTo
,BCCTo
,EMAIL
,[SUBJECT]
,0.0
,DRAFTBILLNO
,CHEQUEREQNO
,TxmSent
,Location
,HearingType
,ForCopy
,TxmDate
,TxmSeqNo
,DisplayText
,ISNULL(@Flag, 0)
FROM
diary
WHERE
ACTIONID = @ACTIONID
INSERT INTO
diaryDelegations(
ACTIONID,
HANDLER,
TEAM,
[DATE],
[TIME],
DATER,
TIMER,
DUEDATE,
DUETIME,
REVIEW,
[STATUS],
[OWNER],
DELEGATE,
DELEGATESTATUS,
ACTIONTYPE,
FROMHANDLER,
RETURNEDBY,
DELTYPE)
SELECT
@ACTIONVALUE ,
@FNCODE,
TEAMCODE,
case when @Status = '' then [DATE] ELSE GETDATE() END,
@TIME,
NULL,
NULL,
case when @Status = '' then DUEDATE ELSE GETDATE() END,
@TIME,
NULL,
case when @Status = '' then [STATUS] ELSE 0 END,
'Y',
@FNCODE,
0,
ACTIONTYPE,
@FNCODE ,
NULL,
'Created'
FROM
Diary
WHERE
ACTIONID = @ACTIONVALUE
SELECT
@ACTIONVALUE
AS
[ActionId]
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_TaskGetAlarmDetails]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_TaskGetAlarmDetails]
GO
CREATE procedure [dbo].[KAAS_TaskGetAlarmDetails]
@ActionID INT
AS
/*******************************************************************************************************
* Get Alarm Details for a Diary entry. *
* *
* Stored Procedure Name : [dbo].[KAAS_TaskGetAlarmDetails] *
* Copied from : [dbo].[Ky_NETTaskGetAlarmDetails] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Time AS INT
SET @Time= ( SELECT DYSTARTTIME FROM diary WHERE ACTIONID=@ActionID)--( SELECT CONVERT(VARCHAR, DATEADD(ms, 10 * (DYSTARTTIME - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108) FROM diary WHERE ACTIONID=@ActionID)
SET @Time=(@Time+59999)/90000
IF (@Time >=95)
BEGIN
SET @Time= 8639901
END
ELSE
BEGIN
SET @Time=@Time+1
SET @Time=@Time*90000
SET @Time=@Time+1
END
DECLARE @AlarmTime AS DATETIME
SET @AlarmTime=(SELECT
CONVERT(VARCHAR,(SELECT
CASE
WHEN
DATEPART(MINUTE,CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108)) % 15 = 0
THEN
CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108)
WHEN
DATEPART(MINUTE,CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108)) % 15 < 10
THEN
DATEADD(MINUTE, -(DATEPART(MINUTE, CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1),CONVERT(VARCHAR, GETDATE(), 112)), 108)) % 15)
,CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1), CONVERT(VARCHAR, GETDATE(), 112)), 108))
ELSE
DATEADD(MINUTE, 15 - DATEPART(MINUTE, CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1)
,CONVERT(VARCHAR, GETDATE(), 112)), 108)) % 15, CONVERT(VARCHAR, DATEADD(ms, 10 * (@Time - 1),CONVERT(VARCHAR, GETDATE(), 112)), 108)) END
),108)
)
SELECT
CASECODE,ISNULL(TEXT1,'') AS 'TEXT1',
CONVERT(VARCHAR(11),DATE,106) AS [Date],
--STUFF( RIGHT(CONVERT(VARCHAR,@AlarmTime, 109), 15 ), 7, 7, ' ' ) AS [Time]
CONVERT(VARCHAR(5),@AlarmTime,108) AS [Time]
FROM
Diary
WHERE
ACTIONID=@ActionID
SELECT
A.HANDLER,
B.Name,
A.[OWNER]
FROM
DiaryDelegations A
LEFT OUTER JOIN
Handlers B
ON
A.HANDLER= B.CODE
WHERE
A.ACTIONID = @ActionID
ORDER BY
A.OWNER DESC,
A.ACTIONID ASC,
A.HANDLER ASC,
A.ASSIGNNO ASC
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_TaskGetNextActionCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_TaskGetNextActionCode]
GO
CREATE PROCEDURE [dbo].[KAAS_TaskGetNextActionCode]
(
@ActionId AS INT
)
AS
/*******************************************************************************************************
* This procedure is used to get net Action Code based on the given Action ID. *
* *
* Stored Procedure Name : [dbo].[KAAS_TaskGetNextActionCode] *
* Copied from : [dbo].[Ky_NETTaskGetNextActionCode] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT RTRIM(ISNULL(TNA.[DECISION], '')) AS [Decision],
RTRIM(ISNULL(TNA.[NEXTACTION], '')) AS [NextAction],
TNAC.[DESC] AS [NextActionDescription],
TAC.[NEXTACTIONOPTIONAL] AS NextActionOptional,
CASE WHEN DPA.[TimeFrame] = 'Any Time'
THEN CONVERT(DATETIME, '18010101')
WHEN DPA.[TimeFrame] = 'Day(s)'
THEN DATEADD(DD, -DPA.[TimeFramAmount], DIA.[DATE])
WHEN DPA.[TimeFrame] = 'Week(s)'
THEN DATEADD(WK, -DPA.[TimeFramAmount], DIA.[DATE])
WHEN DPA.[TimeFrame] = 'Month(s)'
THEN DATEADD(MM, -DPA.[TimeFramAmount], DIA.[DATE])
WHEN DPA.[TimeFrame] = 'Year(s)'
THEN DATEADD(YY, -DPA.[TimeFramAmount], DIA.[DATE])
ELSE CONVERT(DATETIME, '18010101')
END AS [TimeFrame],
[dbo].[ky_WDGetDate](GETDATE(),TNA.[WHENTYPE],TNA.[WHEN]) AS [On]
FROM [diary] DIA
INNER JOIN [TemplateActions] TAC
ON TAC.[ACTIONCODE] = DIA.[ACTIONCODE]
INNER JOIN [TemplateNextActions] TNA
INNER JOIN [TemplateActions] TNAC
ON TNAC.[ACTIONCODE] = TNA.[NEXTACTION]
ON TNA.[ACTION] = TAC.[ACTIONCODE]
LEFT JOIN TemplateDependentActions DPA
ON DPA.DependentActionCode = TNA.ACTION
WHERE [ACTIONID] = @ActionId
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_TaskPushDate'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_TaskPushDate]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_TaskPushDate]
(@days INT,
@date DATETIME,
@AssignNo INT,
@ActionID INT,
@Delegated INT = 0)
AS
/*******************************************************************************************************
* Created to Update Date column in Dairy AND Dairydelegation table *
* (add days to date column 7/14/30 days) *
* *
* Stored Procedure Name : [dbo].[KAAS_TaskPushDate] *
* Copied from : [dbo].[ky_NETTaskPushDate] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @CONVERTTIME DATETIME
DECLARE @NewDate DATETIME
SELECT @CONVERTTIME = CONVERT(VARCHAR,
DATEADD(ms,
10 * (ISNULL([DIA].[DYSTARTTIME], 0) - 1),
CONVERT(DATETIME,
CONVERT(VARCHAR,
GETDATE(),
112))),
108)
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
SET @AssignNo = ISNULL(@AssignNo, 0)
--IF @AssignNo = 0
--BEGIN
-- -- KEYD-4242 - find only the FIRST row.
-- -- By ordering the query by [STATUS] we
-- -- will get the first one with [STATUS] 0
-- -- if possible
-- SELECT TOP 1
-- @AssignNo = [DEL].[AssignNo]
-- FROM [dbo].[DiaryDelegations] [DEL]
-- WHERE [DEL].[ACTIONID] = @ActionID
-- AND [DEL].[OWNER] = 'Y'
-- ORDER BY [DEL].[STATUS]
--END
IF @days=0
BEGIN
IF @date < (SELECT TOP 1
[DIA].[DUEDATE]
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID)
BEGIN
UPDATE [DIA]
SET [DIA].[DATE] = @date + @CONVERTTIME
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
UPDATE [DEL]
SET [DEL].[date] = @date
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ActionID] = @ActionID
AND ( ( @AssignNo = 0
AND [DEL].[Status] = 0)
OR ( @AssignNo <> 0
AND [DEL].[AssignNo] = @AssignNo))
END
ELSE
BEGIN
UPDATE [DIA]
SET [DIA].[DATE] = @date + @CONVERTTIME,
[DIA].[DUEDATE] = @date
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
UPDATE [DEL]
SET [DEL].[date] = @date,
[DEL].[DUEDATE] = @date
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ActionID] = @ActionID
AND ( ( @AssignNo = 0
AND [DEL].[Status] = 0)
OR ( @AssignNo <> 0
AND [DEL].[AssignNo] = @AssignNo))
END
END
ELSE
BEGIN
SELECT @NewDate = DATEADD(DAY, @days, [DIA].[DATE])
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
IF @NewDate < = (SELECT TOP 1
[DIA].[DUEDATE]
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID)
BEGIN
UPDATE [DIA]
SET [DIA].[DATE] = @NewDate
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
UPDATE [DEL]
SET [DEL].[DATE] = @NewDate
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ActionID] = @ActionID
AND ( ( @AssignNo = 0
AND [DEL].[Status] = 0)
OR ( @AssignNo <> 0
AND [DEL].[AssignNo] = @AssignNo))
END
ELSE
BEGIN
UPDATE [DIA]
SET [DIA].[DATE] = @NewDate,
[DIA].[DUEDATE] = @NewDate
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
UPDATE [DEL]
SET [DEL].[DATE] = @NewDate,
[DEL].[DUEDATE] = @NewDate
FROM [dbo].[DiaryDelegations] [DEL]
WHERE [DEL].[ActionID] = @ActionID
AND ( ( @AssignNo = 0
AND [DEL].[Status] = 0)
OR ( @AssignNo <> 0
AND [DEL].[AssignNo] = @AssignNo))
END
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_TaskScalarDelegatedToHandler'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_TaskScalarDelegatedToHandler]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_TaskScalarDelegatedToHandler]
(@Handler VARCHAR(10),
@ActionID INT)
AS
/*******************************************************************************************************
* Checks whether an action is delegated to a particular handler. Returns 0 if not, 1 otherwise. *
* *
* Stored Procedure Name : [dbo].[KAAS_TaskScalarDelegatedToHandler] *
* Copied from : [dbo].[ky_NETTaskScalarDelegatedToHandler] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @IsAssigned INT
SELECT @IsAssigned = CASE
WHEN COUNT(1) = 0
THEN 0
ELSE 1
END
FROM [dbo].[DiaryDelegations] DEL
WHERE DEL.[ACTIONID] = @ActionID
AND DEL.[HANDLER] = @Handler
AND DEL.[DelType] NOT IN ('Completed', 'Processed', 'Returned', 'Created')
AND DEL.[STATUS] = 0
AND ISNULL(DEL.[OWNER], 'N') <> 'Y'
SET @IsAssigned = ISNULL(@IsAssigned, 0)
RETURN @IsAssigned
END
GO
IF OBJECT_ID(N'KAAS_TemplateQueryExecutor',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_TemplateQueryExecutor]
GO
CREATE PROCEDURE [dbo].[KAAS_TemplateQueryExecutor] (
@Handler VARCHAR(10),
@fromdate DATETIME=null,
@todate DATETIME=null,
@userWidgetId INT,
@CaseCode VARCHAR(20))
AS
/*******************************************************************************************************
* It executes the Query templates and returns the data. *
* *
* Stored Procedure Name : [dbo].[KAAS_TemplateQueryExecutor] *
* *
* Modification History : *
* 2019-06-05 Vinodhan K Created *
* 2019-07-02 Vinodhan K Added a paramter CaseCode For CaseDiary Dashboard *
*******************************************************************************************************/
BEGIN
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @Query VARCHAR(MAX)
DECLARE @templateId INT
SET @templateId = (
SELECT
DISTINCT UT.TemplateId
FROM
[UserWidgets] UW
LEFT JOIN [Widgets] W ON UW.WidgetId=W.WidgetId
LEFT JOIN [UITemplates] UT ON W.TemplateId= UT.TemplateId
WHERE
UW.UserWidgetsId=@userWidgetId)
SET @Query = (
SELECT
TemplateQuery
FROM
[UITemplates]
WHERE
TemplateId=@templateId)
SET @NCOMMAND= (@Query)
EXECUTE sp_executesql @NCOMMAND, N'@handler VARCHAR(10), @fromdate DateTime , @todate DateTime ,@CaseCode VARCHAR(20) ', @handler = @Handler, @fromdate = @fromdate, @todate=@todate, @CaseCode=@CaseCode
END
GO
IF OBJECT_ID(N'KAAS_TimerGetNarratives',N'P')IS NOT NULL
DROP PROCEDURE KAAS_TimerGetNarratives
GO
CREATE PROCEDURE KAAS_TimerGetNarratives
(
@CASECODE AS VARCHAR(20),
@Date AS DATETIME
)
AS
/*******************************************************************************************************
* This procedure is used to get action descriptions which comes under casecode. *
* *
* Stored Procedure Name : [dbo].[KAAS_TimerGetNarratives] *
* Copied from : [dbo].[KY_NETTimerGetNarratives] *
* *
* Modification History: *
* 2019-07-04 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF(@CASECODE = '' OR @CASECODE = '~')
BEGIN
SELECT
CASE WHEN RTRIM(ISNULL([ACTIONTYPE], '')) = 'E'
THEN CASE WHEN ISNULL([PROCESSTYPE], 'O') = 'I'
THEN 'Email From:' + (RTRIM(ISNULL(CAST([EMAILADDRESS] AS VARCHAR(MAX)),''))) + ' - ' + ISNULL(CAST ([Subject] AS VARCHAR(MAX)),'')
ELSE 'Email To:' + RTRIM(CAST(ISNULL([AddressTo],'') AS VARCHAR(MAX))) + ' - ' + ISNULL(CAST ([Subject] AS VARCHAR(MAX)),'') END
ELSE
ISNULL(RTRIM(TEXT1),'')
END AS [DESCRIPTION]
FROM
Diary
WHERE
CONVERT(varchar,[Date],112)=CONVERT(varchar,@Date,112)
END
ELSE
BEGIN
SELECT
CASE WHEN RTRIM(ISNULL([ACTIONTYPE], '')) = 'E'
THEN CASE WHEN ISNULL([PROCESSTYPE], 'O') = 'I'
THEN 'Email From:' + (RTRIM(ISNULL(CAST([EMAILADDRESS] AS VARCHAR(MAX)),''))) + ' - ' + ISNULL(CAST ([Subject] AS VARCHAR(MAX)),'')
ELSE 'Email To:' + RTRIM(CAST(ISNULL([AddressTo],'') AS VARCHAR(MAX))) + ' - ' + ISNULL(CAST ([Subject] AS VARCHAR(MAX)),'') END
ELSE
ISNULL(RTRIM(TEXT1),'')
END AS [DESCRIPTION]
FROM
Diary
WHERE
CASECODE =@CASECODE
AND
CONVERT(varchar,[Date],112)=CONVERT(varchar,@Date,112)
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UDFAnswerInsertorUpdate'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UDFAnswerInsertorUpdate]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UDFAnswerInsertorUpdate]
(@CaseCode VARCHAR(200),
@FILEPREFIX VARCHAR(200),
@FIELDNAME VARCHAR(200),
@Text VARCHAR(MAX),
@Number DECIMAL(18,2),
@Date DATETIME)
AS
/*******************************************************************************************************
* This procedure is used To insert data for other case details main grid. *
* *
* Stored Procedure Name : [dbo].[KAAS_UDFAnswerInsertorUpdate] *
* Copied from : [dbo].[ky_NETUDFAnswerInsertorUpdate] *
* *
* Modification History : *
* 2019-07-09 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF @Date = CONVERT(DATETIME, '')
BEGIN
SET @Date = NULL
END
ELSE IF YEAR(@Date) < 1901
BEGIN
SET @Date = NULL
END
ELSE
BEGIN
SET @DATE = CONVERT(DATETIME, CONVERT(VARCHAR, @Date, 112))
END
IF RTRIM(ISNULL(@Text, '')) = ''
BEGIN
IF (@Date IS NULL) AND (@Number IS NULL)
BEGIN
SET @Text = ''
END
ELSE IF (@Date IS NULL) AND (@Number = 0) --2018-02-26
BEGIN
SET @Text = CASE (SELECT [SUF].[TYPE]
FROM [dbo].[SystemUserDefinedFields] [SUF]
WHERE [SUF].[FILEPREFIX] = @FILEPREFIX
AND [SUF].[FIELDNAME] = @FIELDNAME)
WHEN 'Date'
THEN ''
WHEN 'Text'
THEN @Text
ELSE CONVERT(VARCHAR(30), @Number) END
END
ELSE IF (@Date IS NULL)
BEGIN
IF (SELECT [SUF].[TYPE]
FROM [dbo].[SystemUserDefinedFields] [SUF]
WHERE [SUF].[FILEPREFIX] = @FILEPREFIX
AND [SUF].[FIELDNAME] = @FIELDNAME) <> 'Text'
BEGIN
SET @Text = CONVERT(VARCHAR(30), @Number)
END
END
ELSE
BEGIN
SET @Number = [dbo].[ky_NETFNConvertDateToClarion](@Date)
SET @Text = CONVERT(VARCHAR(30), @Number)
END
END
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[CaseUDFAnswers] CUF
WHERE CUF.[CASECODE] = @CaseCode
AND CUF.[UDFFILE] = @FILEPREFIX
AND CUF.[UDFNAME] = @FIELDNAME)
BEGIN
UPDATE CUF
SET CUF.[TEXT1] = @Text,
CUF.[NumberValue] = @Number,
CUF.[DateValue] = @Date
FROM [dbo].[CaseUDFAnswers] CUF
WHERE CUF.[CASECODE] = @CaseCode
AND CUF.[UDFFILE] = @FILEPREFIX
AND CUF.[UDFNAME] = @FIELDNAME
END
ELSE
BEGIN
DECLARE @SequenceNo INT
SET @SequenceNo = (SELECT ISNULL(MAX(CUF.[SEQNO]), 0) + 1
FROM [dbo].[CaseUDFAnswers] CUF
WHERE CUF.[CASECODE] = @CaseCode )
INSERT
INTO [dbo].[CaseUDFAnswers]
([CASECODE],
[UDFNAME],
[UDFFILE],
[DateValue],
[NumberValue],
[TEXT1],
[SEQNO])
VALUES(@CaseCode,
@FIELDNAME,
@FILEPREFIX,
@Date,
@Number,
@Text,
@SequenceNo)
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UndertakingsPageLoad'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UndertakingsPageLoad]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UndertakingsPageLoad]
(@CaseCode VARCHAR(20),
@SearchText VARCHAR(4000) = '',
@PageNumber INT = NULL,
@PageSize INT = NULL,
@SortColumn VARCHAR(50) = NULL,
@SortDirection VARCHAR(10) = NULL)
AS
/*******************************************************************************************************
* Page load data for loading the gird based on the selected case code. *
* *
* Stored Procedure Name : [dbo].[KAAS_UndertakingsPageLoad] *
* Copied from : [dbo].[ky_NETUndertakingsPageLoad] *
* *
* Modification History : *
* 2019-06-27 Vinodhan K Created *
* 2019-06-28 Vinodhan K Searching, Paging and Sorting functionality added *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
SET @PageSize = ISNULL(@PageSize, 0) ;
DECLARE @StartRow INT = NULL;
DECLARE @EndRow INT = NULL;
IF(@PageNumber > -1 AND @PageSize > 0)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
IF(@SortColumn = '' OR @SortColumn = NULL)
BEGIN
SET @SortColumn = 'Code'
END
IF(@SortDirection = '' OR @SortDirection = NULL)
BEGIN
SET @SortDirection = 'ASC'
END
SELECT
IDENTITY(int, 1,1) AS [Row_Number],
*
INTO
#FoundTable
FROM
( SELECT RTRIM(UND.[MATTER]) AS [MATTER],
UND.[SEQ] AS [SEQ],
CASE WHEN UND.[DATE] = CONVERT(DATETIME, '19000101')
THEN ''
ELSE UND.[DATE] END AS [DATE],
UND.[DISCHARGEDATE] AS [DISCHARGEDATE],
CASE RTRIM(ISNULL(UND.[TYPE],''))
WHEN 'D'
THEN 'Documents'
ELSE 'Financial' END AS [TYPE],
RTRIM(UND.[DESCRIPTION]) AS [DESCRIPTION],
RTRIM(ISNULL(UND.[WHO],'')) AS [WHO],
UND.[VALUE] AS [VALUE],
UND.[RECORDID] AS [RECORDID],
ISNULL(UND.[ACTIONID],0) AS [ACTIONID],
RTRIM(ISNULL(UND.[AUTHORISEDBYFE],'')) AS [AUTHORISEDBYFE],
RTRIM(UNS.[StatusDesc]) AS [STATUS],
ISNULL(UND.[IsConditional],0) AS [IsConditional],
(CASE WHEN UND.[IsConditional]= 'True'
THEN UND.[Condition]
ELSE '' END) AS [Condition],
CASE WHEN UND.[NeedsAttention] = 1
THEN 'Yes'
ELSE 'No' END AS [NeedsAttention],
CASE WHEN UND.[NeedsAttention] = 1
THEN 'Visible'
ELSE 'Collapsed' END AS [NeedsAttentionIcon]
FROM [dbo].[Undertakings] UND
LEFT OUTER JOIN [dbo].[UndertakingStatus] UNS
ON UNS.[RecordID] = UND.[STATUS]
WHERE UND.[MATTER] = @CaseCode
AND
([TYPE] LIKE '%' + @SearchText + '%'
OR
[WHO] LIKE '%' + @SearchText + '%'
OR
[DATE] LIKE '%' + @SearchText + '%'
OR
[VALUE] LIKE '%' + @SearchText + '%'
OR
[DESCRIPTION] LIKE '%' + @SearchText + '%'
OR
[DISCHARGEDATE] LIKE '%' + @SearchText + '%')
)AS Conditions
ORDER BY CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Date' THEN [DATE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Date' THEN [DATE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'NeedsAttention' THEN [NeedsAttention]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'NeedsAttention' THEN [NeedsAttention]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Type' THEN [TYPE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Type' THEN [TYPE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Who' THEN [WHO]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Who' THEN [WHO]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Value' THEN [VALUE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Value' THEN [VALUE]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'Description' THEN [DESCRIPTION]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'Description' THEN [DESCRIPTION]
END
END DESC,
CASE WHEN @SortDirection = 'ASC' THEN
CASE @SortColumn
WHEN 'DischargeDate' THEN [DISCHARGEDATE]
END
END,
CASE WHEN @SortDirection = 'DESC' THEN
CASE @SortColumn
WHEN 'DischargeDate' THEN [DISCHARGEDATE]
END
END DESC
SELECT *
FROM #FoundTable
WHERE (
@StartRow IS NULL
OR
(
[Row_Number] BETWEEN @StartRow AND @EndRow
)
)
SELECT (COUNT([Row_Number]) )
FROM #FoundTable
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_UpdateActionAlarm'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateActionAlarm]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateActionAlarm]
(@LinkID varchar(50))
AS
/*******************************************************************************************************
* Set Keyhouse Risk Management Matter Alarm. *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateActionAlarm] *
* Copied from : [dbo].[ky_UpdateActionAlarm] *
* *
* Modification History : *
* 2019-04-22 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @MatterRef varchar(20)
DECLARE @AlarmDateString varchar(23)
DECLARE @AlarmDate datetime
DECLARE @Date datetime
DECLARE @DYSTARTTIME char(10)
DECLARE @NUMVAL int
DECLARE @TimeFromDate varchar(12)
DECLARE @HourVal varchar(2)
DECLARE @MinuteVal varchar(2)
DECLARE @SecondVal varchar(2)
DECLARE @MilliSecondVal varchar(3)
DECLARE @Title NVARCHAR(255)
DECLARE @Message NVARCHAR(max)
DECLARE @ActionID INT
DECLARE @NLinkID INT
IF RTRIM(ISNULL(@LinkID, '')) = ''
BEGIN
SET @NLinkID = 0
END
ELSE
IF (ISNUMERIC(@LinkID) = 0)
OR (CHARINDEX('.', @LinkID) > 0)
OR (CHARINDEX(',', @LinkID) > 0)
OR (CHARINDEX(':', @LinkID) > 0)
OR (CHARINDEX('D', @LinkID) > 0)
BEGIN
SET @NLinkID = 0
END
ELSE
BEGIN
SET @NLinkID = CONVERT(INT, @LinkID)
END
IF (@NLinkID <> 0)
BEGIN
select @ActionID = DIA.[ActionID],
@Date = DIA.[date],
@DYSTARTTIME = DIA.[DYSTARTTIME],
@NUMVAL = case when isnumeric(isnull(DIA.[DYSTARTTIME], '')) = 0
then 0
when convert(int, DIA.[DYSTARTTIME]) > 8640000
then 0
else convert(int, DIA.[DYSTARTTIME]) - 1 END,
@TimeFromDate = convert(varchar, DIA.[date], 114),
@MatterRef = DIA.[CaseCode],
@Title = CONVERT(NVARCHAR(255),
CASE WHEN DIA.[ActionType] <> 'E'
THEN RTRIM(substring(DIA.[TEXT1], 1, 255))
WHEN DIA.[ProcessType] = 'I'
THEN RTRIM(substring('Email From:' + RTrim(DIA.[EmailAddress]) + ' - ' + substring(DIA.[Subject], 1, 255), 1, 255))
ELSE RTRIM(substring('Email To:' + RTrim(substring(DIA.[AddressTo], 1, 255)) + ' - ' + substring(DIA.[Subject], 1, 255), 1, 255)) end),
@Message = CONVERT(NVARCHAR(MAX), DIA.[TEXT1])
from [dbo].[diary] DIA
where DIA.[ActionID] = @NLinkID
SET @HourVal = Right('00' + convert(varchar(2), FLOOR(@NUMVAL / 360000)), 2)
SET @MinuteVal = Right('00' + convert(varchar(2), FLOOR((@NUMVAL - (360000 * FLOOR(@NUMVAL / 360000))) / 6000)), 2)
SET @SecondVal = Right('00' + convert(varchar(2), FLOOR((@NUMVAL - (6000 * FLOOR(@NUMVAL / 6000))) / 100)), 2)
SET @MilliSecondVal = Right('000' + convert(varchar(3), FLOOR((@NUMVAL - (100 * FLOOR(@NUMVAL / 100))) * 10)), 3)
SET @AlarmDateString = CONVERT(VARCHAR, @DATE, 112)
+ ' '
+ case when @TimeFromDate <> '00:00:00:000'
then @TimeFromDate
when @HourVal + ':'
+ @MinuteVal + ':'
+ @SecondVal + ':'
+ @MilliSecondVal <> '00:00:00:000'
then @HourVal + ':'
+ @MinuteVal + ':'
+ @SecondVal + ':'
+ @MilliSecondVal
when isNull(@DYSTARTTIME, '*') = '*'
then '00:00:00:000'
when isnumeric(isnull(@DYSTARTTIME, '')) = 1
then '00:00:00:000'
when isdate(isnull(@DYSTARTTIME, '')) = 0
then '00:00:00:000'
else convert(varchar, convert(datetime, @DYSTARTTIME), 114) End
SET @AlarmDate = convert(datetime, @AlarmDateString)
DELETE ALM
FROM [dbo].[AlarmTypes] ALT
INNER JOIN [dbo].[Alarms] ALM
LEFT OUTER JOIN [dbo].[DiaryDelegations] DEL
ON DEL.[ActionID] = @ActionID
AND DEL.[Handler] = ALM.[HandlerCode]
ON ALM.[Type] = ALT.[TypeID]
WHERE ALT.[Description] = 'Action'
AND ALM.[LinkID] = @LinkID
AND ( DEL.[ActionID] is null
OR DEL.[Status] = 1)
UPDATE ALM
SET ALM.[OriginalDate] = case when @AlarmDate > ALM.[DeferredDate]
then @AlarmDate
else ALM.[OriginalDate] end,
ALM.[DeferredDate] = case when @AlarmDate > ALM.[DeferredDate]
then @AlarmDate
else ALM.[DeferredDate] end,
ALM.[Title] = @Title,
ALM.[Message] = @Message
FROM [dbo].[AlarmTypes] ALT
INNER JOIN [dbo].[Alarms] ALM
ON ALM.[Type] = ALT.[TypeID]
WHERE ALT.[Description] = 'Action'
AND ALM.[LinkID] = @LinkID
END
END
GO
IF OBJECT_ID(N'KAAS_UpdateApproveMoneyLaundering',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_UpdateApproveMoneyLaundering]
GO
CREATE PROCEDURE [KAAS_UpdateApproveMoneyLaundering]
(
@Code VARCHAR(20),
@IsApproved BIT,
@User VARCHAR(10),
@Date DATETIME
)
/*****************************************************************************
Stored Procedure Name : KAAS_UpdateApproveMoneyLaundering
Copied From : [ky_NETUpdateApproveMoneyLaundering2]
Description: This procedure is used udpate Approve money laundering
Last Updated: 12 FEB 2015 Arun- Change NVARCHAR to VARCHAR
24 MAY 2016 Suriya - KEYD-3459-AML Changes
25 MAY 2016 Suriya - KEYD-3459-AML Changes
20 NOV 2017 Arun - KEYD-4889-Facility to update the AML Date by the user
16 JUL 2019 Vinodhan - Created KAAS_UpdateApproveMoneyLaundering
*****************************************************************************/
AS
BEGIN
SET NOCOUNT ON
UPDATE
Contacts
SET
Approved = (CASE WHEN @IsApproved = 'True' THEN 1 ELSE 0 END),
ApprovedDate = (CASE WHEN @IsApproved = 'True'
THEN
CASE WHEN @Date = '' THEN
GETDATE()
ELSE
@Date
END
ELSE null END),
ApprovedByUSER = (CASE WHEN @IsApproved = 'True' THEN @User ELSE '' END)
WHERE
Code = @Code
SELECT
ISNULL(CON.[Approved], 0) AS [Approved],
CONVERT(VARCHAR(11), CON.[ApprovedDate], 20) AS [ApprovedDate],
ISNULL(H.NAME,'') AS [ApprovedByuser]
FROM Contacts CON LEFT JOIN Handlers H ON H.CODE = CON.ApprovedByUSER WHERE CON.Code = @Code
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_UpdateCaseInformation',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_UpdateCaseInformation]
GO
CREATE PROCEDURE [dbo].[KAAS_UpdateCaseInformation]
(@ActionId INT,
@Text1 VARCHAR(MAX),
@DATE DATETIME)
AS
/*******************************************************************************************************
* This procedure is used to Update Case Info in [dbo].[Diary]. *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateCaseInformation] *
* Copied from : NA *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
IF EXISTS(SELECT TOP 1 1 FROM Diary WHERE ACTIONID = @ActionId)
BEGIN
UPDATE [dbo].[Diary]
SET [TEXT1] = @Text1,
[DATE] = @DATE
WHERE ACTIONID = @ActionId
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateClientChargeOutRates'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateClientChargeOutRates]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateClientChargeOutRates]
(@ClientCode VARCHAR(20),
@OldFeeEarnerCode VARCHAR(20),
@OldRate DECIMAL(18,2),
@NewFeeEarnerCode VARCHAR(20),
@NewRate DECIMAL(18,2),
@ModifyBy VARCHAR(20),
@EffectiveDate DATETIME)
AS
/*******************************************************************************************************
* This stored procedure is used to update client charge out rates. *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateClientChargeOutRates] *
* Copied from : [dbo].[ky_NETCONUpdateClientChargeOutRates] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[ClientChargeOutRates] [CCOR]
WHERE [CCOR].[ClientCode] = @ClientCode
AND [CCOR].[FeCode] = @OldFeeEarnerCode
AND [CCOR].[Rate] = @NewRate
AND [CCOR].[ModifyBy] = @ModifyBy)
BEGIN
UPDATE [CCOR]
SET [CCOR].[Rate] = @NewRate,
[CCOR].[ModifyDate] = GETDATE(),
[CCOR].[ModifyBy] = @ModifyBy,
[CCOR].[LastRate] = @OldRate,
[CCOR].[EffectiveDate] = @EffectiveDate
FROM [dbo].[ClientChargeOutRates] [CCOR]
WHERE [CCOR].[ClientCode] = @ClientCode
AND [CCOR].[FeCode] = @OldFeeEarnerCode
AND [CCOR].[Rate] = @OldRate
END
ELSE
BEGIN
UPDATE [CCOR]
SET [CCOR].[Rate] = @NewRate,
[CCOR].[ModifyDate] = GETDATE(),
[CCOR].[ModifyBy] = @ModifyBy,
[CCOR].[EffectiveDate] = @EffectiveDate
FROM [dbo].[ClientChargeOutRates] [CCOR]
WHERE [CCOR].[ClientCode] = @ClientCode
AND [CCOR].[FeCode] = @OldFeeEarnerCode
AND [CCOR].[Rate] = @OldRate
END
--UPDATE TIME ENTRY BASED ON UPDATED ENTRY
UPDATE [TIE]
SET [TIE].[RATE] = @NewRate,
[TIE].[CHARGE] = ([TIE].[TIME] / 60.00) * @NewRate
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[TimeEntry] [TIE]
INNER JOIN [dbo].[Handlers] [HAN]
ON [HAN].[CODE] = [TIE].[FEEEARN]
AND ( [HAN].[CODE] = @OldFeeEarnerCode
OR [HAN].[ChargeGroup] = @OldFeeEarnerCode)
ON [TIE].[Matter] = [MAT].[Code]
AND ISNULL([TIE].[BILLED], 0) = 0
AND [TIE].[TimeOrCharge] = 'T'
AND [TIE].[Date] >= @EffectiveDate
AND ISNULL([TIE].[InvoiceNo], 0) = 0
WHERE [MAT].[ClientCode] = @ClientCode
AND ISNULL([MAT].[ChargeOutRateInd], 'N') <> 'Y'
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_UpdateClientContactDetailsForBank',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_UpdateClientContactDetailsForBank]
GO
CREATE PROCEDURE [dbo].[KAAS_UpdateClientContactDetailsForBank]
(@XML NVARCHAR(MAX))
AS
/*******************************************************************************************************
* Inserts/Updates the details for a Client Contact. *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateClientContactDetailsForBank] *
* Copied from : [dbo].[ky_NETSPUpdateClientContactDetails] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
--SET @XML = N' -- example
--'
DECLARE @iSL INT
DECLARE @NUMCONTACT INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @NUMCONTACT = [CLNUMCONTACT]
FROM OPENXML(@iSL, N'ClientContact')
WITH ([CLNUMCONTACT] INT '@contactnumber')
IF (@NUMCONTACT IS NULL)
BEGIN
INSERT
INTO [dbo].[ClientContacts]
([CLCODE],
[CLNUMCONTACT],
[BankName],
[BankAddress],
[BankSortCode],
[BankAccNo],
[IBAN],
[BIC],
[EFTEmailAddress],
[BankType])
SELECT [SRC].[CLCODE],
[MX].[NEWNUM],
CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN NULL
ELSE [SRC].[BankName] END,
CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN NULL
ELSE [SRC].[BankAddress] END,
CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN NULL
ELSE [SRC].[BankSortCode] END,
CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN NULL
ELSE [SRC].[BankAccNo] END,
CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN NULL
ELSE [SRC].[IBAN] END,
CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN NULL
ELSE [SRC].[BIC] END,
CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN NULL
ELSE [SRC].[EFTEmailAddress] END,
CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN NULL
ELSE [SRC].[BankType] END
FROM OPENXML(@iSL, N'ClientContact')
WITH ([CLCODE] VARCHAR(10) '@clientcode',
[CLNUMCONTACT] INT '@contactnumber',
[HasBankDetails] VARCHAR(1) '@hasbankdetails',
[BankName] VARCHAR(60) '@bankname',
[BankAddress] VARCHAR(120) '@bankaddress',
[BankSortCode] VARCHAR(20) '@banksortcode',
[BankAccNo] VARCHAR(20) '@bankaccno',
[IBAN] VARCHAR(34) '@iban',
[BIC] VARCHAR(20) '@bic',
[EFTEmailAddress] VARCHAR(150) '@eftemailaddress',
[BankType] VARCHAR(1) '@banktype') [SRC]
CROSS APPLY (SELECT ISNULL(MAX([OV].[CLNUMCONTACT]), 0) + 1 AS [NEWNUM]
FROM [dbo].[ClientContacts] [OV]
WHERE [OV].[CLCODE] = [SRC].[CLCODE]) [MX]
WHERE [SRC].[CLNUMCONTACT] IS NULL
SELECT @NUMCONTACT = [CLNUMCONTACT]
FROM [dbo].[ClientContacts] [CC]
WHERE [CC].[id] = SCOPE_IDENTITY()
END
ELSE
BEGIN
-- Please note that [CLSSNUMBER] and [Marketing] appear to be obsolete fields. They are not maintained through the Framework
-- Just in case anybody still uses these for Old data, we won't update these if they weren't passed in.
UPDATE [CC]
SET [CC].[BankName] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN [CC].[BankName]
ELSE [SRC].[BankName] END,
[CC].[BankAddress] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN [CC].[BankAddress]
ELSE [SRC].[BankAddress] END,
[CC].[BankSortCode] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN [CC].[BankSortCode]
ELSE [SRC].[BankSortCode] END,
[CC].[BankAccNo] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN [CC].[BankAccNo]
ELSE [SRC].[BankAccNo] END,
[CC].[IBAN] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN [CC].[IBAN]
ELSE [SRC].[IBAN] END,
[CC].[BIC] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN [CC].[BIC]
ELSE [SRC].[BIC] END,
[CC].[EFTEmailAddress] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN [CC].[EFTEmailAddress]
ELSE [SRC].[EFTEmailAddress] END,
[CC].[BankType] = CASE WHEN ISNULL([SRC].[HasBankDetails], '0') <> '1'
THEN [CC].[BankType]
ELSE [SRC].[BankType] END
FROM OPENXML(@iSL, N'ClientContact')
WITH ([CLCODE] VARCHAR(10) '@clientcode',
[CLNUMCONTACT] INT '@contactnumber',
[HasBankDetails] VARCHAR(1) '@hasbankdetails',
[BankName] VARCHAR(60) '@bankname',
[BankAddress] VARCHAR(120) '@bankaddress',
[BankSortCode] VARCHAR(20) '@banksortcode',
[BankAccNo] VARCHAR(20) '@bankaccno',
[IBAN] VARCHAR(34) '@iban',
[BIC] VARCHAR(20) '@bic',
[EFTEmailAddress] VARCHAR(150) '@eftemailaddress',
[BankType] VARCHAR(1) '@banktype') [SRC]
INNER JOIN [dbo].[ClientContacts] [CC]
ON [CC].[CLCODE] = [SRC].[CLCODE]
AND [CC].[CLNUMCONTACT] = [SRC].[CLNUMCONTACT]
END
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
SELECT @NUMCONTACT AS [CLNUMCONTACT]
END
GO
IF OBJECT_ID(N'KAAS_UpdateClientContactDetailsForGeneral',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_UpdateClientContactDetailsForGeneral]
GO
CREATE PROCEDURE [dbo].[KAAS_UpdateClientContactDetailsForGeneral]
(@XML NVARCHAR(MAX))
AS
/*******************************************************************************************************
* Inserts/Updates the details for a Client Contact. *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateClientContactDetailsForGeneral] *
* Copied from : [dbo].[ky_NETSPUpdateClientContactDetails] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
* 2019-08-09 Dheepin Vijith K Modified ''date will save Null in the table in update section. *
*******************************************************************************************************/
BEGIN
--SET @XML = N' -- example
--'
DECLARE @iSL INT
DECLARE @NUMCONTACT INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @NUMCONTACT = [CLNUMCONTACT]
FROM OPENXML(@iSL, N'ClientContact')
WITH ([CLNUMCONTACT] INT '@contactnumber')
IF (@NUMCONTACT IS NULL)
BEGIN
INSERT
INTO [dbo].[ClientContacts]
([CLCODE],
[CLNUMCONTACT],
[CLINITS],
[CLTITLE],
[CLNAMECON],
[FIRSTNAME],
[SURNAME],
[CLSALUTE],
[Address],
[County],
[PostalCode],
[DXREF],
[MartialStatus],
[PPSNo],
[HomePhone],
[WorkPhone],
[FaxNumber],
[Mobile],
[EmailAddress],
[Dob],
[DateofDeath],
[MarrigeDate],
[Occupation])
SELECT [SRC].[CLCODE],
[MX].[NEWNUM],
[SRC].[CLINITS],
[SRC].[CLTITLE],
[SRC].[CLNAMECON],
[SRC].[FIRSTNAME],
[SRC].[SURNAME],
[SRC].[CLSALUTE],
[SRC].[Address],
[SRC].[County],
[SRC].[PostalCode],
[SRC].[DXREF],
[SRC].[MartialStatus],
[SRC].[PPSNo],
[SRC].[HomePhone],
[SRC].[WorkPhone],
[SRC].[FaxNumber],
[SRC].[Mobile],
[SRC].[EmailAddress],
(CASE WHEN [SRC].[Dob] = '' THEN NULL ELSE [SRC].[Dob] END) AS [Dob],
(CASE WHEN [SRC].[DateofDeath] = '' THEN NULL ELSE [SRC].[DateofDeath] END) AS [DateofDeath],
(CASE WHEN [SRC].[MarrigeDate] = '' THEN NULL ELSE [SRC].[MarrigeDate] END) AS [MarrigeDate],
[SRC].[Occupation]
FROM OPENXML(@iSL, N'ClientContact')
WITH ([CLCODE] VARCHAR(10) '@clientcode',
[CLNUMCONTACT] INT '@contactnumber',
[CLINITS] VARCHAR(5) '@clinits',
[CLTITLE] VARCHAR(10) '@cltitle',
[CLNAMECON] VARCHAR(35) '@clnamecon',
[FIRSTNAME] VARCHAR(20) '@firstname',
[SURNAME] VARCHAR(20) '@surname',
[CLSALUTE] VARCHAR(30) '@clsalute',
[Address] VARCHAR(500) '@address',
[County] VARCHAR(100) '@county',
[PostalCode] VARCHAR(100) '@postalcode',
[DXREF] VARCHAR(30) '@dxref',
[MartialStatus] VARCHAR(3) '@maritalstatus',
[PPSNo] VARCHAR(20) '@ppsno',
[HomePhone] VARCHAR(50) '@homephone',
[WorkPhone] VARCHAR(50) '@workphone',
[FaxNumber] VARCHAR(50) '@faxnumber',
[Mobile] VARCHAR(50) '@mobile',
[EmailAddress] VARCHAR(100) '@emailaddress',
[Dob] DATETIME '@dob',
[DateofDeath] DATETIME '@dateofdeath',
[MarrigeDate] DATETIME '@marriagedate',
[Occupation] VARCHAR(100) '@occupation') [SRC]
CROSS APPLY (SELECT ISNULL(MAX([OV].[CLNUMCONTACT]), 0) + 1 AS [NEWNUM]
FROM [dbo].[ClientContacts] [OV]
WHERE [OV].[CLCODE] = [SRC].[CLCODE]) [MX]
WHERE [SRC].[CLNUMCONTACT] IS NULL
SELECT @NUMCONTACT = [CLNUMCONTACT]
FROM [dbo].[ClientContacts] [CC]
WHERE [CC].[id] = SCOPE_IDENTITY()
END
ELSE
BEGIN
-- Please note that [CLSSNUMBER] and [Marketing] appear to be obsolete fields. They are not maintained through the Framework
-- Just in case anybody still uses these for Old data, we won't update these if they weren't passed in.
UPDATE [CC]
SET [CC].[CLINITS] = [SRC].[CLINITS],
[CC].[CLTITLE] = [SRC].[CLTITLE],
[CC].[CLNAMECON] = [SRC].[CLNAMECON],
[CC].[FIRSTNAME] = [SRC].[FIRSTNAME],
[CC].[SURNAME] = [SRC].[SURNAME],
[CC].[CLSALUTE] = [SRC].[CLSALUTE],
[CC].[Address] = [SRC].[Address],
[CC].[County] = [SRC].[County],
[CC].[PostalCode] = [SRC].[PostalCode],
[CC].[DXREF] = [SRC].[DXREF],
[CC].[MartialStatus] = [SRC].[MartialStatus],
[CC].[PPSNo] = [SRC].[PPSNo],
[CC].[HomePhone] = [SRC].[HomePhone],
[CC].[WorkPhone] = [SRC].[WorkPhone],
[CC].[FaxNumber] = [SRC].[FaxNumber],
[CC].[Mobile] = [SRC].[Mobile],
[CC].[EmailAddress] = [SRC].[EmailAddress],
[CC].[Dob]=(CASE WHEN [SRC].[Dob] = '' THEN NULL ELSE [SRC].[Dob] END),
[CC].[DateofDeath]=(CASE WHEN [SRC].[DateofDeath] = '' THEN NULL ELSE [SRC].[DateofDeath] END),
[CC].[MarrigeDate]=(CASE WHEN [SRC].[MarrigeDate] = '' THEN NULL ELSE [SRC].[MarrigeDate] END),
[CC].[Occupation] = [SRC].[Occupation]
FROM OPENXML(@iSL, N'ClientContact')
WITH ([CLCODE] VARCHAR(10) '@clientcode',
[CLNUMCONTACT] INT '@contactnumber',
[CLINITS] VARCHAR(5) '@clinits',
[CLTITLE] VARCHAR(10) '@cltitle',
[CLNAMECON] VARCHAR(35) '@clnamecon',
[FIRSTNAME] VARCHAR(20) '@firstname',
[SURNAME] VARCHAR(20) '@surname',
[CLSALUTE] VARCHAR(30) '@clsalute',
[Address] VARCHAR(500) '@address',
[County] VARCHAR(100) '@county',
[PostalCode] VARCHAR(100) '@postalcode',
[DXREF] VARCHAR(30) '@dxref',
[MartialStatus] VARCHAR(3) '@maritalstatus',
[PPSNo] VARCHAR(20) '@ppsno',
[HomePhone] VARCHAR(50) '@homephone',
[WorkPhone] VARCHAR(50) '@workphone',
[FaxNumber] VARCHAR(50) '@faxnumber',
[Mobile] VARCHAR(50) '@mobile',
[EmailAddress] VARCHAR(100) '@emailaddress',
[Dob] DATETIME '@dob',
[DateofDeath] DATETIME '@dateofdeath',
[MarrigeDate] DATETIME '@marriagedate',
[Occupation] VARCHAR(100) '@occupation') [SRC]
INNER JOIN [dbo].[ClientContacts] [CC]
ON [CC].[CLCODE] = [SRC].[CLCODE]
AND [CC].[CLNUMCONTACT] = [SRC].[CLNUMCONTACT]
END
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
SELECT @NUMCONTACT AS [CLNUMCONTACT]
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateClientNameCaseDescription'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateClientNameCaseDescription]
END
GO
CREATE PROCEDURE [dbo].[KAAS_UpdateClientNameCaseDescription]
(@MatterCode VARCHAR(20),
@Name VARCHAR(256),
@Description VARCHAR(100),
@Result INT OUT
)
AS
/*******************************************************************************************************
* Updates the Client Name or Case Description based on the Requirement *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateClientNameCaseDescription] *
* *
* Modification History : *
* 2019-07-08 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @ClientCode VARCHAR(10)
SET @ClientCode = (SELECT SUBSTRING(@MatterCode, 0, (CHARINDEX('/',@MatterCode))));
SET @Result=0
IF ISNULL(@Name,'')<>''
BEGIN
UPDATE [CL]
SET [CL].[CLNAME]=@Name
FROM client [CL]
WHERE [CL].CLCODE=@ClientCode
SET @Result=1
END
IF ISNULL(@Name,'')<>''
BEGIN
UPDATE [C]
SET [C].[Name]=@Name
FROM Contacts [C]
WHERE [C].Code=@ClientCode
SET @Result=2
END
IF ISNULL(@Description,'')<>''
BEGIN
UPDATE [MAT]
SET [MAT].[Description]=@Description
FROM matters [MAT]
WHERE [MAT].Code=@MatterCode
SET @Result=3
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_UpdateContactcategories',N'P')IS NOT NULL
DROP PROCEDURE KAAS_UpdateContactcategories
GO
CREATE PROCEDURE KAAS_UpdateContactcategories
(
@CatId INT,
@ClientCode VARCHAR(10),
@CTCode VARCHAR(6),
@CCode VARCHAR(10),
@Date DATETIME,
@Prompt1 VARCHAR(60),
@Prompt2 VARCHAR(60),
@Prompt3 VARCHAR(60),
@Prompt4 VARCHAR(60),
@Prompt5 VARCHAR(60),
@Prompt6 VARCHAR(60),
@Prompt7 VARCHAR(60),
@Prompt8 VARCHAR(60),
@Prompt9 VARCHAR(60),
@Prompt10 VARCHAR(60),
@ContactNum INT
)
AS
/*******************************************************************************************************
* This procedure is used to udpate contact categories. *
* *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateContactcategories] *
* Copied from : [dbo].[ky_NETCONUpdateContactcategories] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT top 1 1 FROM ClientContactCategories WHERE CCCategoryId = @CatId )
BEGIN
UPDATE ClientContactCategories
SET
[CategoryType] = @CTCode ,
[Category] = @CCode ,
[Date] = @Date ,
[FieldValue1] = @Prompt1 ,
[FieldValue2] = @Prompt2 ,
[FieldValue3] = @Prompt3 ,
[FieldValue4] = @Prompt4 ,
[FieldValue5] = @Prompt5 ,
[FieldValue6] = @Prompt6 ,
[FieldValue7] = @Prompt7 ,
[FieldValue8] = @Prompt8 ,
[FieldValue9] = @Prompt9 ,
[FieldValue10] = @Prompt10
WHERE
CCCategoryId = @CatId
END
ELSE
BEGIN
INSERT INTO ClientContactCategories
(
[ClientCode],
[ContactNum],
[CategoryType],
[Category],
[Date],
[FieldValue1],
[FieldValue2],
[FieldValue3],
[FieldValue4],
[FieldValue5],
[FieldValue6],
[FieldValue7],
[FieldValue8],
[FieldValue9],
[FieldValue10]
)
VALUES
(
@ClientCode,
@ContactNum,
@CTCode,
@CCode,
@Date,
@Prompt1,
@Prompt2,
@Prompt3,
@Prompt4,
@Prompt5,
@Prompt6,
@Prompt7,
@Prompt8,
@Prompt9,
@Prompt10
)
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'[KAAS_UpdateCrossRef]',N'P')IS NOT NULL
DROP PROCEDURE [KAAS_UpdateCrossRef]
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateCrossRef]
(@OldCode VARCHAR(10),
@OldLinkTo VARCHAR(10),
@NewLinkTo VARCHAR(10),
@Relationship VARCHAR(50),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to UPDATE cross reference, this procedure will return result "1" IF *
* successful UDPATE, otherwise return its default value "0" *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateCrossRef] *
* Copied from : [dbo].[ky_NETCONUpdateCrossRef] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[ContactLinks] CL
WHERE CL.[CONTACTA] = @OldCode
AND CL.[CONTACTB] = @OldLinkTo)
BEGIN
UPDATE CL
SET CL.[CONTACTB] = @NewLinkTo,
CL.[RELATE] = @Relationship
FROM [dbo].[ContactLinks] CL
WHERE CL.[CONTACTA] = @OldCode
AND CL.[CONTACTB] = @OldLinkTo
UPDATE CL
SET CL.[CONTACTA] = @NewLinkTo,
CL.[RELATE] = @Relationship
FROM [dbo].[ContactLinks] CL
WHERE CL.[CONTACTA] = @OldLinkTo
AND CL.[CONTACTB] = @OldCode
SET @Result = 1
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_UpdateDocumentProperties',N'P')IS NOT NULL
DROP PROCEDURE KAAS_UpdateDocumentProperties
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateDocumentProperties]
(@TrackReference VARCHAR(10),
@Document VARCHAR(2000),
@DocumentDate VARCHAR(17),
@ClassCode VARCHAR(10),
@Subject VARCHAR(2000),
@DocumentPath VARCHAR(1000),
@Result VARCHAR(255) OUTPUT)
AS
/************************************************************************************************************
*
* ky_NETSPUpdateDocManagerDoc
*
* Updates a Diary Attachment entry FROM the Document Manager screen in the Framework
*
* Modification History
* ????-??-?? Sridharan Created
* 2015-04-08 Sridharan KEYD-2109 Added a new parameter to get modified filepath
* and change the relevant column in the Table
* 2015-04-15 Sridharan Added a new output parameter to get the File path
* 2016-03-22 Sridharan KEYD-3422 Changes to the Firm Undertakings Grid and Form
* 2017-08-15 Pino Carafa a) Procedure was practically unreadable
* 2017-08-15 Pino Carafa b) Remove irrelevant SELECT statement (proc always executed as NonQuery)
* 2017-08-15 Pino Carafa c) Replace repeated SET @var = (SELECT ...) statements with a single SELECT
* 2017-08-15 Pino Carafa d) Make description larger. VARCHAR(100) may not be enough.
* 2019-05-27 Arun Copied from ky_NETSPUpdateDocManagerDoc procedure
************************************************************************************************************/
BEGIN
DECLARE @LEN INT
DECLARE @FPATH VARCHAR(1000)
DECLARE @ActionID INT
DECLARE @ActionType VARCHAR(1)
DECLARE @UserName VARCHAR(20)
DECLARE @OLDDocument VARCHAR(500)
DECLARE @OLDClass VARCHAR(5)
DECLARE @OLDDate VARCHAR(11)
DECLARE @Description VARCHAR(500)
DECLARE @DescriptionTo VARCHAR(500)
-- 2017-08-15 c)
SELECT @FPATH = [DAT].[FILEPATH],
@Actionid = [DAT].[DiaryID],
@ActionType = ISNULL([DIA].[ACTIONTYPE], ''),
@UserName = RTRIM(ISNULL([HAN].[NAME], ISNULL([DIA].[FNCODE], ''))),
@OLDDocument = [DAT].[DOCUMENT],
@OLDClass = [DAT].[DOCCLASS],
@OLDDate = CONVERT(VARCHAR(11), CONVERT(DATETIME, [DAT].[DATEENTERED]), 106),
@Description = 'Attachment Changed From: ' + CHAR(13) + CHAR(10)
+ 'Date: ' + CONVERT(VARCHAR(11), CONVERT(DATETIME, [DAT].[DATEENTERED]), 106) + CHAR(13) + CHAR(10)
+ 'Document Name: ' + [DAT].[DOCUMENT] + CHAR(13) + CHAR(10)
+ 'Document Class: ' + [DAT].[DOCCLASS] + CHAR(13) + CHAR(10)
FROM [dbo].[DiaryAttachments] [DAT]
LEFT OUTER JOIN [dbo].[diary] [DIA]
LEFT OUTER JOIN [dbo].[Handlers] [HAN]
ON [HAN].[CODE] = [DIA].[FNCODE]
ON [DIA].[ACTIONID] = [DAT].[DiaryID]
WHERE [DAT].[TrackReference] = @TrackReference
SET @DescriptionTo = 'Attachment Changed To: ' + CHAR(13) + CHAR(10)
+ 'Date: ' + CONVERT(VARCHAR(11),CONVERT(DATETIME, @DocumentDate), 106) + CHAR(13) + CHAR(10)
+ 'Document Name: ' + RTRIM(ISNULL(@DOCUMENT, '')) + CHAR(13) + CHAR(10)
+ 'Document Class: ' + RTRIM(ISNULL(@ClassCode, '')) + CHAR(13) + CHAR(10)
IF NOT (@DocumentPath = '***NOCHANGE***')
BEGIN
SET @FPATH = [dbo].[KAAS_FN_GETFILEPATH](@DocumentPath, @FPATH)
END
IF NOT (@FPATH = 'NOCHANGE')
BEGIN
--2017-08-15 b) what???
--SELECT * FROM diary WHERE ACTIONID = @ActionID AND ACTIONTYPE = 'U'
IF @ActionType = 'U' --2017-08-15 c)
BEGIN
IF NOT ( RTRIM(@Document) = RTRIM(@OLDDocument)
AND RTRIM(@ClassCode) = RTRIM(@OLDClass)
AND RTRIM(@OLDDate) = CONVERT(VARCHAR(11), CONVERT(DATETIME, @DocumentDate), 106))
BEGIN
INSERT
INTO [dbo].[UndertakingLog]
([UndertakingID],
[FieldChanges],
[FromValue],
[ToValue],
[ByWho],
[ModifiedDate])
VALUES(@ActionID,
'Documents Edited',
@Description,
@DescriptionTo,
@UserName,
GETDATE())
END
END
SELECT @LEN = CASE WHEN [SC].[system_type_id] = 35
THEN 2000
ELSE [SC].[max_length] END
FROM SYS.[objects] [SO]
INNER JOIN SYS.[columns] [SC]
ON [SC].[object_id] = [SO].[object_id]
AND [SC].[name] = 'Document'
WHERE [SO].[name] = 'DiaryAttachments'
UPDATE [DAT]
SET [DAT].[DATEENTERED] = @DocumentDate,
[DAT].[DOCUMENT] = CASE WHEN @Document = '***NOCHANGE***'
THEN [DAT].[DOCUMENT]
ELSE SUBSTRING(@Document, 1, @LEN) END,
[DAT].[FILEPATH] = CASE WHEN @DocumentPath = '***NOCHANGE***'
THEN [DAT].[FILEPATH]
ELSE @FPATH END,
[DAT].[DOCCLASS] = @ClassCode
FROM [dbo].[DiaryAttachments] [DAT]
WHERE [DAT].[TrackReference] = CONVERT(INT, @TrackReference)
IF (@Subject <> '***NOCHANGE***')
BEGIN
SELECT @LEN = CASE WHEN SC.[system_type_id] = 35
THEN 2000
ELSE SC.[max_length] END
FROM SYS.[objects] [SO]
INNER JOIN SYS.[columns] [SC]
ON [SC].[object_id] = [SO].[object_id]
AND [SC].[name] = 'SUBJECT'
WHERE [SO].[name] = 'diary'
UPDATE [DIA]
SET [DIA].[SUBJECT] = SUBSTRING(@Subject, 1, @LEN)
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
END
SET @Result = SUBSTRING(@FPATH,LEN(@FPATH)-CHARINDEX ('\',REVERSE(@FPATH))+2,LEN(@FPATH))
END
ELSE
BEGIN
SET @Result = 'NOCHANGE'
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateMatterChargeOutRates'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateMatterChargeOutRates]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateMatterChargeOutRates]
(@MatterCode VARCHAR(30),
@ClientCode VARCHAR(30),
@OldFeeEarnerCode VARCHAR(20),
@OldRate DECIMAL(18,2),
@NewFeeEarnerCode VARCHAR(20),
@EffectiveDate DATETIME,
@NewRate DECIMAL(18,2),
@ModifyBy VARCHAR(24),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to update matter charge out rates. *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateMatterChargeOutRates] *
* Copied from : [dbo].[ky_NETMATUpdateMatterChargeOutRates] *
* *
* Modification History : *
* 2019-05-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[MatterChargeOutRates] [MCOR]
WHERE [MCOR].[ClientCode] = @ClientCode
AND [MCOR].[FeCode] = @OldFeeEarnerCode
AND [MCOR].[ModifyBy] = @ModifyBy
AND [MCOR].[MatterCode] = @MatterCode
AND [MCOR].[Rate] = @NewRate)
BEGIN
UPDATE [MCOR]
SET [MCOR].[Rate] = @NewRate,
[MCOR].[EffectiveDate] = @EffectiveDate,
[MCOR].[ModifyBy] = @ModifyBy,
[MCOR].[ModifyDate] = GETUTCDATE(),
[MCOR].[LastRate] = @OldRate
FROM [dbo].[MatterChargeOutRates] [MCOR]
WHERE [MCOR].[ClientCode] = @ClientCode
AND [MCOR].[FeCode] = @OldFeeEarnerCode
AND [MCOR].[Rate] = @OldRate
AND [MCOR].[MatterCode] = @MatterCode
END
ELSE
BEGIN
UPDATE [MCOR]
SET [MCOR].[Rate] = @NewRate,
[MCOR].[EffectiveDate] = @EffectiveDate,
[MCOR].[ModifyBy] = @ModifyBy,
[MCOR].[ModifyDate] = GETUTCDATE()
FROM [dbo].[MatterChargeOutRates] [MCOR]
WHERE [MCOR].[ClientCode] = @ClientCode
AND [MCOR].[FeCode] = @OldFeeEarnerCode
AND [MCOR].[Rate] = @OldRate
AND [MCOR].[MatterCode] = @MatterCode
END
--UPDATE TIME ENTRY BASED ON NEW ENTRY
UPDATE [TIE]
SET [TIE].[RATE] = @NewRate,
[TIE].[CHARGE] = ([TIE].[TIME] / 60.00) * @NewRate
FROM [dbo].[matters] [MAT]
INNER JOIN [dbo].[TimeEntry] [TIE]
INNER JOIN [dbo].[Handlers] [HAN]
ON [HAN].[CODE] = [TIE].[FEEEARN]
AND ( [HAN].[CODE] = @OldFeeEarnerCode
OR [HAN].[ChargeGroup] = @OldFeeEarnerCode)
ON [TIE].[Matter] = [MAT].[Code]
AND ISNULL([TIE].[BILLED], 0) = 0
AND [TIE].[TimeOrCharge] = 'T'
AND [TIE].[Date] >= @EffectiveDate
AND ISNULL([TIE].[InvoiceNo], 0) = 0
WHERE [MAT].[Code] = @MatterCode
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_UpdateMatterDetailsAdminTab',N'P')IS NOT NULL
DROP PROCEDURE KAAS_UpdateMatterDetailsAdminTab
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateMatterDetailsAdminTab]
(@MatterCode VARCHAR(20),
@ValueToClient VARCHAR(10),
@Started DATETIME,
@StatuteLimit DATETIME,
@DepositName VARCHAR(30),
@EstimatedFees DECIMAL(17,2),
@FixedFee VARCHAR(1),
@ExpBillDate DATETIME,
@IsEstimateGiven BIT,
@IsSection13 BIT,
@OutlayBudget VARCHAR(100),
@Type VARCHAR(10),
@Comments VARCHAR(3000),
@EffectivelyComplete BIT,
@ShowInAlert CHAR(1),
@UserCode VARCHAR(6),
@Result TINYINT OUTPUT)
AS
/************************************************************************************************************************
* Created By : Arun V
* Date : 15May2014 10:27 AM
* Description : This procedure is used to update matter details based on matter code, successful updation it will
* Return 1
*
*
* Modification History
* -----------------------------------------------------
* Date | Modified By | Description
* -----------------------------------------------------
* 20June2014 Arun.V Comment param size has been incresed to 3000 from 300
*2019 05 24 Arun V Copied from ky_NETMATUpdateMatterDetails
************************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @beforeSatuteDate DATETIME
DECLARE @OldEstimateValue DECIMAL(17,2)
DECLARE @teamcode VARCHAR(6)
DECLARE @SatuteWarning VARCHAR(5) = 0
DECLARE @ActionCode VARCHAR(10) = NULL
SELECT @SatuteWarning = ISNULL([KeyValue],0) FROM Settings WHERE KeyName = 'SatuteWarning'
SELECT @ActionCode = ISNULL([KeyValue],0) FROM Settings WHERE KeyName = 'StatuteActionCode'
--Statute limit is empty then it set as null value
IF(CONVERT(DATETIME, @StatuteLimit) = '19000101')
BEGIN
SET @StatuteLimit = null
END
IF(CONVERT(DATETIME, @ExpBillDate) = '19000101')
BEGIN
SET @ExpBillDate = null
END
SELECT @teamcode =Team FROM Handlers WHERE CODE = @UserCode
SELECT @beforeSatuteDate = ISNULL(StatuteLimits,'19000101'), @OldEstimateValue = EstFee
FROM Matters
WHERE Code = @MatterCode
UPDATE
Matters
SET
[Value] = @ValueToClient,
[Started] = @Started,
StatuteLimits = @StatuteLimit,
DepositName = @DepositName,
EstFee = @EstimatedFees,
FixedFee = @FixedFee,
ExpBillD = @ExpBillDate,
Section68 = (
CASE
WHEN @IsEstimateGiven = 'True'
THEN 'Y'
ELSE 'N'
END
),
S13 = (
CASE
WHEN @IsSection13 = 'True'
THEN 'Y'
ELSE 'N'
END
),
OutlayBud = @OutlayBudget,
DepositType = @Type,
Comment = @Comments,
PCode = (
CASE
WHEN @EffectivelyComplete = 'True' THEN ''
ELSE
[ClientCode]
END
),
PFECODE = (
CASE
WHEN @EffectivelyComplete = 'True' THEN ''
ELSE
[FECode]
END
),
ShowCommentInAlarm = @ShowInAlert
WHERE Code = @MatterCode
--Estimate Fee Log
IF(@OldEstimateValue <> @EstimatedFees )
BEGIN
INSERT INTO MatterEstimateFeeLogs
(
[Log],
[Mattercode],
[Who],
[EstimateFee]
)
VALUES
(
(CASE WHEN @OldEstimateValue = '0.00' then 'Added' when @OldEstimateValue <> '0.00' and @EstimatedFees = '0.00' THEN 'Deleted' ELSE 'Changed' END),
@MatterCode,
@UserCode,
@EstimatedFees
)
END
/* Added by Magesh(DSRC)*/
DECLARE @actionid AS INT;
DECLARE @DateCal AS INT;
DECLARE @text1 AS VARCHAR (200);
--set @Result =1
set @result=case
WHEN ISNULL(convert(varchar(11),@StatuteLimit,112),'19000101')='19000101' THEN 0
WHEN convert(varchar(11),@StatuteLimit,112)=convert(varchar(11),@beforeSatuteDate,112) THEN 0
else 1
END
IF NOT EXISTS (SELECT TOP 1 1
FROM diary
WHERE Rtrim(CASECODE) = @MatterCode
AND isnull(rtrim(ACTIONTYPE), '') = 'S')
BEGIN
SET @text1 = 'Statute of Limitations Date =' + convert(varchar(11),@StatuteLimit,106);
-- SET @Result=1
END
ELSE
BEGIN
IF @Result = 1
BEGIN
INSERT INTO DiaryDelegations (ACTIONID, HANDLER, TEAM, [DATE], [TIME], DUEDATE, DUETIME, [STATUS], [OWNER], DELEGATE, DELEGATESTATUS, ACTIONTYPE, FROMHANDLER, DELTYPE)
SELECT diary.Actionid,
@UserCode AS HANDLER,
@teamcode AS TEAM,
dateadd(DAY,cast('-' + cast(@SatuteWarning as VARCHAR(30)) as Int), @StatuteLimit) AS [DATE],
@DateCal AS [TIME],
@StatuteLimit AS DUEDATE,
@DateCal AS DUETIME,
1 AS [STATUS],
'N' AS [OWNER],
@UserCode AS DELEGATE,
0 AS DELEGATESTATUS,
'S' AS ACTIONTYPE,
@UserCode AS FROMHANDLER,
'Completed' AS DELTYPE
FROM diary
LEFT OUTER JOIN
DiaryDelegations
ON diary.ACTIONID = DiaryDelegations.ACTIONID
WHERE CASECODE = @MatterCode
AND diary.ACTIONTYPE = 'S'
AND diary.[STATUS] <> 1
UPDATE diary
SET [STATUS] = 1
WHERE isnull(rtrim(ACTIONTYPE), '') = 'S'
AND CASECODE = @MatterCode
END
SET @text1 = 'Statute of Limitations Date =' + convert(varchar(11),@StatuteLimit,106) + '' + CHAR(13) + 'Changed From ' + convert(varchar(11),@beforeSatuteDate,106) + ' To ' + convert(varchar(11),@StatuteLimit,106) + ' on the ' + convert(varchar(11),GETDATE(),106);
END
IF @Result = 1
BEGIN
-- PINO 2015-09-30 START
EXEC @actionid = [dbo].[ky_NETGetNextActionID]
INSERT INTO DIARY (CASECODE, [DATE], [STATUS], ACTIONCODE, ACTIONSTATUS, ACTIONTYPE, PROCESSTYPE, FNCODE, TEAMCODE, TEXT1, DUEDATE, DYSTARTTIME, DYENDTIME, [PRIORITY], MILESTEONETYPE, WORKPROCESS, DELEGATIONSTATUS, ACTIONID, [SUBJECT], DisplayText)
VALUES (@MatterCode, dateadd(DAY,cast('-' + cast(@SatuteWarning as VARCHAR(30)) as Int), @StatuteLimit), 0, @ACTIONCODE, 'NA', 'S', 'I', @UserCode, @TeamCode, @text1, @StatuteLimit, @DateCal, @DateCal, 'H', @UserCode, 0, 0, @actionid, @text1, @text1);
INSERT INTO DiaryDelegations (ACTIONID, HANDLER, TEAM, [DATE], [TIME], DUEDATE, DUETIME, [STATUS], [OWNER], DELEGATE, DELEGATESTATUS, ACTIONTYPE, FROMHANDLER, DELTYPE)
VALUES (@actionid, @UserCode, @teamcode, dateadd(DAY, cast('-' + cast(@SatuteWarning as VARCHAR(30)) as Int), @StatuteLimit), @DateCal,@StatuteLimit, @DateCal, 0, 'Y', @UserCode, 0, 'S', @UserCode, 'Created');
END
IF(@Result = 0)
BEGIN
IF(( @StatuteLimit is null) and ( convert(varchar(11),@beforeSatuteDate,112)<>'19000101'))
BEGIN
UPDATE diary
SET [STATUS] = 1
WHERE isnull(rtrim(ACTIONTYPE), '') = 'S'
AND CASECODE = @MatterCode
SET @StatuteLimit = GETDATE()
SET @text1 = 'Statute Date Deleted. It was: =' + convert(varchar(11),GETDATE(),106)
SET @actionid = (SELECT ISNULL(MAX(actionid), 0) + 1
FROM diary)
INSERT INTO DIARY (CASECODE, [DATE], [STATUS], ACTIONCODE, ACTIONSTATUS, ACTIONTYPE, PROCESSTYPE, FNCODE, TEAMCODE, TEXT1, DUEDATE, DYSTARTTIME, DYENDTIME, [PRIORITY], MILESTEONETYPE, WORKPROCESS, DELEGATIONSTATUS, ACTIONID, [SUBJECT], DisplayText)
VALUES (@MatterCode, dateadd(DAY,cast('-' + cast(@SatuteWarning as VARCHAR(30)) as Int), @StatuteLimit), 1, @ActionCode, 'NA', 'S', 'I', @UserCode, @TeamCode, @text1, @StatuteLimit, @DateCal, @DateCal, 'H', @UserCode, 0, 0, @actionid, @text1, @text1);
INSERT INTO DiaryDelegations (ACTIONID, HANDLER, TEAM, [DATE], [TIME], DUEDATE, DUETIME, [STATUS], [OWNER], DELEGATE, DELEGATESTATUS, ACTIONTYPE, FROMHANDLER, DELTYPE)
VALUES (@actionid, @UserCode, @teamcode, dateadd(DAY, cast('-' + cast(@SatuteWarning as VARCHAR(30)) as Int), @StatuteLimit), @DateCal,@StatuteLimit, @DateCal, 1, 'Y', @UserCode, 0, 'S', @UserCode, 'Completed');
END
END
--DELETE FROM CaseUDFAnswers where CASECODE = @MatterCode
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateMatterDetailsArchive'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateMatterDetailsArchive]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateMatterDetailsArchive]
(@MatterCode VARCHAR(20),
@DateFileClosed DATETIME,
@Location VARCHAR(50),
@ArchiveLocation VARCHAR(50),
@FileBarCodeNo VARCHAR(60),
@BoxBarCodeNo VARCHAR(60),
@BoxNumber VARCHAR(20),
@ExpectedDestroyDate DATETIME,
@ActualDestroyDate DATETIME,
@DestroyedBy VARCHAR(10),
@Result TINYINT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the matter information for Archive. *
* IF matter code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateMatterDetailsArchive] *
* Copied from : [dbo].[ky_NETMATUpdateMatterDetails2] *
* *
* Modification History: *
* 2019-05-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE Matters
SET [ClosingDate] = @DateFileClosed,
[Location] = @Location ,
[ArchiveLocation] = @ArchiveLocation ,
[FileBarCodeNo] = @FileBarCodeNo ,
[BoxBarCodeNo] = @BoxBarCodeNo ,
[BoxNumber] = @BoxNumber ,
[DestroyDate] = @ExpectedDestroyDate ,
[ActualDestroyDate] = @ActualDestroyDate ,
[DestroyedBy] = @DestroyedBy
WHERE Code = @MatterCode
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateMatterDetailsBilling'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateMatterDetailsBilling]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateMatterDetailsBilling]
(@MatterCode VARCHAR(20),
@ChargeRateLevel VARCHAR(10),
@ChargeArrangement VARCHAR(10),
@DebtCollectedUnderCurrentArrangement DECIMAL(18,2),
@TotalDebtAmountCollected VARCHAR(10),
@ChargeOutRateIndicator BIT,
@BillingType VARCHAR(10),
@BillingMethod VARCHAR(10),
@BillingFeeEarner VARCHAR(5),
@Result TINYINT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the matter information for Billing. *
* IF contact code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateMatterDetailsBilling] *
* Copied from : [dbo].[ky_NETMATUpdateMatterDetails2] *
* *
* Modification History: *
* 2019-05-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE Matters
SET ChargeLevel = @ChargeRateLevel,
DebtCollected = @TotalDebtAmountCollected,
ChargeArrangement = @ChargeArrangement,
ChargeOutRateInd = (
CASE
WHEN @ChargeOutRateIndicator = 'True' THEN 'Y'
ELSE
'N'
END
),
CompFrequency = @BillingType,
BillingMethod = @BillingMethod,
CollectingBalance = @DebtCollectedUnderCurrentArrangement,
[BillingFE] = @BillingFeeEarner
WHERE Code = @MatterCode
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateMatterDetailsForAdditionalDetail'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateMatterDetailsForAdditionalDetail]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateMatterDetailsForAdditionalDetail]
(
@MatterCode VARCHAR(20),
@Premises VARCHAR(500),
@ClExeYn CHAR(1),
@ClBenYn CHAR(1),
@ClDateAccept DATETIME,
@CsOrgDebt DECIMAL(10,2),
@CSBalDebt DECIMAL(9,2),
@CsInterestCode VARCHAR(5),
@CheckCharacter VARCHAR(1)=null,
@AdditionalCheckCharacter VARCHAR(1)=null,
@Result TINYINT OUTPUT)
AS
/************************************************************************************************************************
* Created By : Arun V
* Date : 15May2014 10:27 AM
* Description : This procedure is used to update matter details based on matter code, successful updation it will
* Return 1
*
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software
* remains fully functional
* ******************************************************************************************
* *
* * Supersedes: [dbo].[ky_NETMATUpdateMatterDetails]
* * First compatible version: 5.5.1.1 (5.4.6.10)
* * Last compatible software version: -
* * Superseded by: -
* *
* ******************************************************************************************
*
* Modification History
* -----------------------------------------------------
* Date | Modified By | Description
* -----------------------------------------------------
* 20June2014 Arun.V Comment param size has been incresed to 3000 from 300
* 30July2014 Arun.V Issue Rasied due to decimal Precision, so just removed CSBalDebt, CSOrgDebt Decimal Precision
* 18Sept2014 Pino MAX will return NULL on an empty table. Use ISNULL(MAX([fieldname], 0)) instead
* 30Oct2014 Arun.V Changed Interest Code Update Column. Its not mapped yet
* 07NOv2014 Arun.V Added Composite Billing Matter
* 19Nov2014 Arun.V @EstimatedFees, @DebtCollectedUnderCurrentArrangement param type changed from VARCHAR to decimal
* 05Jan2015 Arun.V Branch code added
* 07Jan2015 Pino CsOrgDebt also needs to update OriginalDebt in matters table
* 08Jan2015 Pino Replace " with square brackets in column names
* 25Jun2015 Pino Add Archive Location
* 10JUL2015 Sridharan KEYD - 2441 - URGENT Passing N'' for DATETIME values into SPs set value to '19000101'
* 30SEP2015 Pino Use ky_NETGetNextActionID
* 04JAN2016 magesh Added checkcharacter and addtional check character
* 05FEB2016 Arun Specified the Varchar size
* 2016-03-16 Pino Don't use dashes in VARCHAR date in case the login language is not English...
* 2016-07-12 Arun Have added Billing Fee earner
* 2016-09-23 Suriya M KEYD - 4274 - Option for 'No win No Fee' Indicator on matters
* 2016-11-28 Pino Carafa KEYD - 4282 - Box Number
* 2018-01-10 Pino Carafa KEYD - 4441 - Your Reference is actually 100 characters so why restrict input to only 20?
* 2018-03-19 Arun V Have changed OverrideAddress sp parameter size as 150
* 2018-03-23 Pino Carafa Have changed all addresses to be 500 characters
* 2018-07-17 Pino Carafa Update User1,2,3 to VARCHAR(100)
* 2019-05-24 Vinodhan Copied from ky_NETMATUpdateMatterDetails2 to update only the fields on Additional detail tab
* 2019-08-06 Vinodhan @CheckCharacter,@AdditionalCheckCharacter changed into nullable parameters.
************************************************************************************************************************/
BEGIN
SET NOCOUNT ON
UPDATE
CaseMaster
SET
CSCLBENYN = @ClBenYn,
CSCLEXEYN = @ClExeYn,
CSDATEACCEPT_DATE = @ClDateAccept,
CSORGDEBT = @CsOrgDebt,
CSBALDEBT = @CSBalDebt,
CSPREMISES = @Premises,
CSIRTCODE = @CsInterestCode
WHERE
CSCode = @MatterCode
--REVENUE MODULE
/*ADDED BY MAGESH(DSRC) */
IF EXISTS (SELECT TOP 1 1 FROM MatterCheckChars WHERE MatterCode =@MatterCode )
BEGIN
UPDATE
MatterCheckChars
SET
CheckCharacter =@CheckCharacter,
AddCheckCharacter =@AdditionalCheckCharacter
WHERE
MatterCode =@MatterCode
END
ELSE
BEGIN
INSERT INTO
MatterCheckChars
(MatterCode,
CheckCharacter,
AddCheckCharacter )
VALUES
(@MatterCode,
@CheckCharacter,
@AdditionalCheckCharacter )
END
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateMatterDetailsMatterTab'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateMatterDetailsMatterTab]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateMatterDetailsMatterTab]
(@MatterCode VARCHAR(20),
@ClientCode VARCHAR(10),
@Matter VARCHAR(20),
@Description VARCHAR(200),
@FeeEarner VARCHAR(10),
@Secretary VARCHAR(10),
@Partner VARCHAR(10),
@Department VARCHAR(10),
@WorkType VARCHAR(5),
@OldRef VARCHAR(100),
@UserPrompt1 VARCHAR(100),
@UserPrompt2 VARCHAR(100),
@UserPrompt3 VARCHAR(100),
@YourRef VARCHAR(100),
@Statement BIT,
@MarkAsImportance BIT,
@CasePlan VARCHAR(5),
@CaseStatus VARCHAR(30),
@FileColour VARCHAR(5),
@CsRecordNo VARCHAR(12),
@Branch VARCHAR(5),
@NoWinNoFee VARCHAR(1),
@Result TINYINT OUTPUT)
AS
/************************************************************************************************************************
* Created By : Arun V
* Date : 15May2014 10:27 AM
* Description : This procedure is used to update matter details based on matter code, successful updation it will
* Return 1
*
*
* Modification History
* -----------------------------------------------------
* Date | Modified By | Description
* -----------------------------------------------------
* 20June2014 Arun.V Copied from ky_NETMATUpdateMatterDetails2
************************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @ClientAddress VARCHAR(15) --=''
DECLARE @OfficeAddress VARCHAR(15) --= ''
DECLARE @beforeSatuteDate DATETIME
DECLARE @OldEstimateValue DECIMAL(17,2)
--Branch Details Update in
IF NOT(@Branch = '')
BEGIN
SET @ClientAddress = (SELECT ISNULL(DEFCLIENT,'') FROM Branch WHERE BRANCHCODE = @Branch )
SET @OfficeAddress = (SELECT ISNULL(DEFOFFICE,'') FROM Branch WHERE BRANCHCODE = @Branch )
END
UPDATE
Matters
SET
[ClientCode] = @ClientCode,
[Matter] = @Matter,
[Description] = @Description,
[FECode] = @FeeEarner,
[Partner] = @Partner,
[Secretary] = @Secretary,
[Dept] = @Department,
[WType] = @WorkType,
[OldRef] = @OldRef,
[User1] = @UserPrompt1,
[User2] = @UserPrompt2,
[User3] = @UserPrompt3,
[YourRef] = @yourRef,
[Statements] = (
CASE
WHEN @Statement = 'True'
THEN 'Y'
ELSE 'N'
END
),
[Importance] = (
CASE
WHEN @MarkAsImportance = 'True'
THEN 1
ELSE 0
END
),
[Status] = @CaseStatus,
[FileColour] = @FileColour,
[NoWinNoFee] = @NoWinNoFee
WHERE Code = @MatterCode
UPDATE
CaseMaster
SET
CSWKTCode = @CasePlan,
CSPLAINTNO = @CsRecordNo
WHERE
CSCode = @MatterCode
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = 'KAAS_UpdateMatterTimeBalance'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateMatterTimeBalance]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateMatterTimeBalance]
(@matter VARCHAR(20))
AS
/*******************************************************************************************************
* It is used to Update Matter Time Balance. *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateMatterTimeBalance] *
* Copied from : [dbo].[ky_WDUpdateMatterTimeBalance] *
* *
* Modification History : *
* 2019-07-25 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
UPDATE MAT
SET MAT.[TimeBal] = TTL.[TOTALTIME],
MAT.[ChargeBal] = TTL.[TOTALCHARGED]
FROM [dbo].[matters] MAT
cross apply (SELECT ISNULL(SUM(CASE WHEN ISNULL(TIE.[CHARGE], 0) - ISNULL(TIE.[BilledAmount], 0) <> 0
THEN ISNULL(TIE.[time], 0)
ELSE 0 END), 0) AS [TOTALTIME],
ISNULL(SUM(ISNULL(TIE.[CHARGE], 0) - ISNULL(TIE.[BilledAmount], 0)), 0) AS [TOTALCHARGED]
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[MATTER] = MAT.[Code]
AND RTRIM(ISNULL(TIE.[REC_IRR], '')) <> 'N'
AND RTRIM(ISNULL(TIE.[TimeorCharge], '')) <> 'B') TTL
WHERE MAT.[Code] = @Matter
END
GO
IF OBJECT_ID(N'KAAS_UpdateOfficers',N'P')IS NOT NULL
DROP PROCEDURE KAAS_UpdateOfficers
GO
CREATE PROCEDURE KAAS_UpdateOfficers
(
@RecordId INT,
@Contactcode VARCHAR(6),
@OfficerCode VARCHAR(6),
@Name VARCHAR(30),
@CoSecretary BIT,
@Appointed DATETIME,
@Resigned DATETIME,
@Result BIT OUTPUT
)
AS
/*******************************************************************************************************
* This stored procedure is used to Update Officers details. *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateOfficers] *
* Copied from : [dbo].[ky_NETUpdateOfficers] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT TOP 1 1 FROM Officers WHERE RECORDID=@RecordId )
BEGIN
UPDATE Officers
SET CONTACTCODE = @Contactcode, CONTACTOFFICER = @OfficerCode, NAME = @Name ,
COSECRETARY = (CASE WHEN @CoSecretary = 'True' THEN 'Y' ELSE 'N' END) ,
DATEAPPOINTED = @Appointed, DATERESIGNED = @Resigned
WHERE RECORDID=@RecordId
SET @Result = 1
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateRecentHandlerList'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateRecentHandlerList]
END
GO
CREATE PROCEDURE [dbo].[KAAS_UpdateRecentHandlerList] (
@HandlerCode VARCHAR(10),
@AccessedBy VARCHAR(10))
AS
/*******************************************************************************************************
* *
* Updates the recently selected handler by the currently logged in user *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateRecentHandlerList] *
* *
* Modification History: *
* 2019-08-02 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT TOP 1 1 FROM sys.objects WHERE [Name] = 'RecentHandlerList') AND EXISTS (SELECT TOP 1 1 FROM [RecentHandlerList] WHERE [Code] = @HandlerCode AND [AccessedBy] = @AccessedBy)
BEGIN
DELETE FROM [RecentHandlerList] WHERE [Code] = @HandlerCode AND [AccessedBy] = @AccessedBy
END
IF EXISTS(SELECT TOP 1 1 FROM sys.objects WHERE [Name] = 'RecentHandlerList') AND NOT EXISTS (SELECT TOP 1 1 FROM [RecentHandlerList] WHERE [Code] = @HandlerCode AND [AccessedBy] = @AccessedBy)
BEGIN
INSERT INTO [RecentHandlerList] VALUES(@HandlerCode, @AccessedBy, GETDATE())
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateRecentMatterList'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateRecentMatterList]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateRecentMatterList]
(@HANDLER varchar(10),
@MATTER varchar(20))
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateRecentMatterList] *
* Copied from : [dbo].[ky_UpdateRecentMatterList] *
* *
* Modification History: *
* 2019-04-26 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
EXEC [dbo].[ky_NETPSetMostRecentMatter] @HANDLER, @MATTER
END
GO
IF OBJECT_ID(N'KAAS_UpdateSubjectandAttachment',N'P')IS NOT NULL
DROP PROCEDURE KAAS_UpdateSubjectandAttachment
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateSubjectandAttachment]
(@ActionID INT,
@Text VARCHAR (MAX),
@From VARCHAR (50),
@settings CHAR (1),
@Handler NVARCHAR (10), --@Handler MUST be NVARCHAR as it's defined as such in [dbo].[UserSettings]
@SendToNewAction VARCHAR(30) = '')
AS
/******************************************************************************************************
*
* Created By :
* Date : 25MAR2015 2:37 PM
* Description: This stored procedure is used to Update subject and attachement details.
*
* Modification History
* ----------------------------------------------------------------------------------------------
* Date | Modified By | Description
* ----------------------------------------------------------------------------------------------
* 2015-02-12 Arun Change NVARCHAR to VARCHAR
* 2016-08-31 Sridharan KEYD:3793-Send to in Case Diary Attachment is closing new action and
* renaming old (Added a new parameter SendToNewAction)
* 2016-09-19 Pino Looking into KEYD-4060 I found a few minor issues with this procedure,
* it was not easy to read, and the @Text input parameter could cause
* truncation issues on the columns it's updating.
* 2019-06-05 Arun V Copied from ky_NETUpdateSubjectandAttachment
******************************************************************************************************/
BEGIN
SET NOCOUNT ON;
IF @From = 'Document Manager'
BEGIN
IF @SendToNewAction = ''
BEGIN
UPDATE [DIA]
SET [DIA].[subject] = RTRIM(CONVERT(VARCHAR(500), @Text))
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID;
END
IF @settings = 'Y'
BEGIN
IF EXISTS
(SELECT TOP 1
[USS].[SettingID]
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject')
BEGIN
UPDATE [USS]
SET [USS].[Value] = 'True'
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject'
END
ELSE
BEGIN
INSERT
INTO [dbo].[UserSettings]
([Handler],
[Key],
[Value])
VALUES(@Handler,
'DocSyncWithSubject',
'True')
END
END
END
ELSE
IF @From = 'Case Diary'
BEGIN
UPDATE [DAT]
SET [DAT].[DOCUMENT] = RTRIM(CONVERT(VARCHAR(100), @Text))
FROM [dbo].[DiaryAttachments] [DAT]
WHERE [DAT].[DiaryID] = @ActionID
UPDATE [DIA]
SET [DIA].[SUBJECT] = RTRIM(CONVERT(VARCHAR(500), @Text))
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
IF @settings = 'Y'
BEGIN
IF EXISTS
(SELECT TOP 1
[USS].[SettingID]
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject')
BEGIN
UPDATE [USS]
SET [USS].[Value] = 'True'
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject'
END
ELSE
BEGIN
INSERT
INTO [dbo].[UserSettings]
([Handler],
[Key],
[Value])
VALUES(@Handler,
'DocSyncWithSubject',
'True')
END
END
END
SET NOCOUNT OFF;
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateSubjectandAttachment2'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateSubjectandAttachment2]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateSubjectandAttachment2]
(@ActionID INT,
@Text VARCHAR (MAX),
@From VARCHAR (50),
@settings CHAR (1),
@Handler NVARCHAR (10), --@Handler MUST be NVARCHAR as it's defined as such in [dbo].[UserSettings]
@SendToNewAction VARCHAR(30) = '')
AS
/******************************************************************************************************
*
* Created By :
* Date : 25MAR2015 2:37 PM
* Description: This stored procedure is used to Update subject and attachement details.
* Originally written as ky_NETUpdateSubjectandAttachment
* Had to create new version as the DocSyncWithSubject handling was completely wrong
*
* Modification History
* ----------------------------------------------------------------------------------------------
* Date | Modified By | Description
* ----------------------------------------------------------------------------------------------
* 2015-02-12 Arun Change NVARCHAR to VARCHAR
* 2016-08-31 Sridharan KEYD:3793-Send to in Case Diary Attachment is closing new action and
* renaming old (Added a new parameter SendToNewAction)
* 2016-09-19 Pino Looking into KEYD-4060 I found a few minor issues with this procedure,
* it was not easy to read, and the @Text input parameter could cause
* truncation issues on the columns it's updating.
* 2017-04-05 Pino Allow for saving No value for Setting. Blank to Reset.
* Y = use saved Sync setting, Yes picked
* N = use saved Sync setting, No picked
* = Don't use a saved Sync setting. Prompt the user.
* 2019-06-05 Arun V Copied from ky_NETUpdateSubjectandAttachment2
******************************************************************************************************/
BEGIN
SET NOCOUNT ON;
IF ISNULL(@settings, '') <> 'N'
BEGIN
IF @From = 'Document Manager'
BEGIN
IF @SendToNewAction = ''
BEGIN
UPDATE [DIA]
SET [DIA].[subject] = RTRIM(CONVERT(VARCHAR(500), @Text))
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID;
END
END
ELSE
IF @From = 'Case Diary'
BEGIN
UPDATE [DAT]
SET [DAT].[DOCUMENT] = RTRIM(CONVERT(VARCHAR(100), @Text))
FROM [dbo].[DiaryAttachments] [DAT]
WHERE [DAT].[DiaryID] = @ActionID
UPDATE [DIA]
SET [DIA].[SUBJECT] = RTRIM(CONVERT(VARCHAR(500), @Text))
FROM [dbo].[diary] [DIA]
WHERE [DIA].[ACTIONID] = @ActionID
END
END
IF @settings = 'Y'
BEGIN
IF EXISTS
(SELECT TOP 1
[USS].[SettingID]
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject')
BEGIN
UPDATE [USS]
SET [USS].[Value] = 'True'
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject'
END
ELSE
BEGIN
INSERT
INTO [dbo].[UserSettings]
([Handler],
[Key],
[Value])
VALUES(@Handler,
'DocSyncWithSubject',
'True')
END
IF EXISTS
(SELECT TOP 1
[USS].[SettingID]
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubjectYesNo')
BEGIN
UPDATE [USS]
SET [USS].[Value] = 'True'
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubjectYesNo'
END
ELSE
BEGIN
INSERT
INTO [dbo].[UserSettings]
([Handler],
[Key],
[Value])
VALUES(@Handler,
'DocSyncWithSubjectYesNo',
'True')
END
END
ELSE IF @settings = 'N'
BEGIN
IF EXISTS
(SELECT TOP 1
[USS].[SettingID]
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject')
BEGIN
UPDATE [USS]
SET [USS].[Value] = 'True'
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject'
END
ELSE
BEGIN
INSERT
INTO [dbo].[UserSettings]
([Handler],
[Key],
[Value])
VALUES(@Handler,
'DocSyncWithSubject',
'True')
END
IF EXISTS
(SELECT TOP 1
[USS].[SettingID]
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubjectYesNo')
BEGIN
UPDATE [USS]
SET [USS].[Value] = 'False'
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubjectYesNo'
END
ELSE
BEGIN
INSERT
INTO [dbo].[UserSettings]
([Handler],
[Key],
[Value])
VALUES(@Handler,
'DocSyncWithSubjectYesNo',
'False')
END
END
ELSE
BEGIN
IF EXISTS
(SELECT TOP 1
[USS].[SettingID]
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject')
BEGIN
UPDATE [USS]
SET [USS].[Value] = 'False'
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubject'
END
ELSE
BEGIN
INSERT
INTO [dbo].[UserSettings]
([Handler],
[Key],
[Value])
VALUES(@Handler,
'DocSyncWithSubject',
'False')
END
IF EXISTS
(SELECT TOP 1
[USS].[SettingID]
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubjectYesNo')
BEGIN
UPDATE [USS]
SET [USS].[Value] = 'False'
FROM [dbo].[UserSettings] [USS]
WHERE [USS].[Handler] = @Handler
AND [USS].[key] = 'DocSyncWithSubjectYesNo'
END
ELSE
BEGIN
INSERT
INTO [dbo].[UserSettings]
([Handler],
[Key],
[Value])
VALUES(@Handler,
'DocSyncWithSubjectYesNo',
'False')
END
END
SET NOCOUNT OFF;
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateTimeDayBook'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateTimeDayBook]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateTimeDayBook]
(@Matter VARCHAR(20),
@FeeEarn VARCHAR(10),
@Date DATETIME,
@Time INT,
@Rate DECIMAL(10,2),
@Charge DECIMAL(10,2),
@Task VARCHAR(10),
@TimeOrCharge CHAR(1),
@IsChargable CHAR(1),
@Comment VARCHAR(1000),
@Ncccode VARCHAR(10) = NULL,
@RecordID INT,
@Post CHAR(1) = 'Y')
AS
/*******************************************************************************************************
* *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateTimeDayBook] *
* Copied from : [dbo].[ky_NETUpdateTimeDayBook] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET @Post = CASE WHEN @Post IS NULL THEN 'Y' ELSE @Post END
DECLARE @PERIOD AS INT
DECLARE @YEAR AS INT
DECLARE @IsSAM4 bit
SET @IsSAM4 = [dbo].[ISSAM4]()
IF @IsSAM4 = 0
BEGIN
SELECT @PERIOD = ISNULL(CL.[CURPER], 0),
@YEAR = ISNULL(CL.[YEAR], 0)
FROM [dbo].[CONTROL] CL
END
ELSE
BEGIN
SET @PERIOD = (SELECT CNM.[NumValue] FROM [dbo].[CtrlNum] CNM WHERE CNM.[Code] = 'CurPeriod')
SET @YEAR = (SELECT CNM.[numvalue] FROM [dbo].[CtrlNum] CNM WHERE CNM.[Code] = 'CurYear')
END
SET @PERIOD = ISNULL(@PERIOD, 0)
SET @YEAR = ISNULL(@YEAR, 0)
DECLARE @ActualRate DECIMAL(18, 2)
SELECT @ActualRate = [dbo].[KAAS_FN_GetDefaultRate](RTRIM(ISNULL(@Matter, '')),
RTRIM(ISNULL(@FeeEarn, '')),
RTRIM(ISNULL(@Ncccode, '')),
RTRIM(ISNULL(@Task, '')))
IF (@RecordID = 0)
BEGIN
INSERT
INTO [dbo].[TimeDayBook]
([MATTER],
[FEEEARN],
[DATE],
[TIME],
[RATE],
[Charge],
[Charged],
[TASK],
[TimeOrCharge],
[COMMENT],
[NCCCode],
[Rec_Irr],
[Post],
[StopwatchStatus],
[Period],
[Year],
[MatterLevel],
[TaskLevel],
[ChargedMins],
[FeeRate],
[EntryDate],
[ModifyDate])
SELECT NW.[MATTER],
NW.[FEEEARN],
NW.[DATE],
NW.[TIME],
NW.[RATE],
NW.[CHARGE],
NW.[CHARGE],
NW.[TASK],
NW.[TimeOrCharge],
NW.[COMMENT],
NW.[NCCCode],
NW.[Rec_Irr],
NW.[Post],
NW.[StopwatchStatus],
NW.[Period],
NW.[Year],
MAT.[ChargeLevel],
TSC.[ChargeLevel],
NW.[TIME],
NW.[FEERATE],
NW.[EntryDate],
NW.[EntryDate]
FROM (SELECT @Matter AS [MATTER],
@FeeEarn AS [FEEEARN],
@Date AS [DATE],
@Time AS [TIME],
@Rate AS [RATE],
@Charge AS [CHARGE],
@Task AS [TASK],
@TimeOrCharge AS [TimeOrCharge],
@Comment AS [COMMENT],
@Ncccode AS [NCCCode],
@IsChargable AS [Rec_Irr],
@Post AS [Post],
1 AS [StopwatchStatus],
@PERIOD AS [Period],
@YEAR AS [Year],
ISNULL(@ActualRate, @Rate) AS [FEERATE],
CONVERT(DATETIME, CONVERT(VARCHAR, GetDate(), 112)) AS [EntryDate]) NW
LEFT OUTER JOIN [dbo].[matters] MAT
ON MAT.[Code] = NW.[MATTER]
LEFT OUTER JOIN [dbo].[TasksCodes] TSC
ON TSC.[CODE] = NW.[TASK]
END
ELSE
BEGIN
UPDATE TDB
SET TDB.[MATTER] = @Matter,
TDB.[FEEEARN] = @FeeEarn,
TDB.[DATE] = @Date,
TDB.[TIME] = @Time,
TDB.[RATE] = @Rate,
TDB.[Charge] = @Charge,
TDB.[Charged] = @Charge,
TDB.[TASK] = @Task,
TDB.[TIMEORCHARGE] = @TimeOrCharge,
TDB.[REC_IRR] = @IsChargable,
TDB.[COMMENT] = @Comment,
TDB.[Ncccode] = @Ncccode,
TDB.[Post] = @Post,
TDB.[MatterLevel] = CASE ISNULL(TDB.[MatterLevel], '')
WHEN '' THEN MAT.[ChargeLevel]
ELSE TDB.[MatterLevel] END,
TDB.[TaskLevel] = CASE ISNULL(TDB.[TaskLevel], '')
WHEN '' THEN TSC.[ChargeLevel]
ELSE TDB.[TaskLevel] END,
TDB.[FeeRate] = ISNULL(TDB.[FeeRate], @ActualRate),
TDB.[ChargedMins] = @Time
FROM [dbo].[TimeDayBook] TDB
LEFT OUTER JOIN [dbo].[matters] MAT
ON MAT.[Code] = TDB.[MATTER]
LEFT OUTER JOIN [dbo].[TasksCodes] TSC
ON TSC.[CODE] = TDB.[TASK]
WHERE TDB.[RecordID] = @RecordID
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateTimeEntry'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateTimeEntry]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateTimeEntry]
(@RecordID INT,
@Date DATETIME,
@Time INT,
@Rate DECIMAL(10,2),
@Task VARCHAR(6),
@IsChargeable VARCHAR(3),
@Comment VARCHAR(1000),
@Handler VARCHAR(10),
@User NVARCHAR(128))
AS
/*******************************************************************************************************
* Get the data of a TimeEntry record page. *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateTimeEntry] *
* Copied from : [dbo].[ky_NETUpdateTimeEntry] *
* *
* Modification History: *
* 2015-02-12 Pino Change NVARCHAR to VARCHAR *
* rate is 10, 2 *
* comment can be up to 1000 chars. *
* 2015-09-17 John G. Round up units *
* 2015-11-12 Pino KEYD - 2894 - Log user data and timestamp *
* 2015-11-12 John No longing logging an entry if it was "edited" without any changes made *
* 2016-06-09 Suriya KEYD-3622-Editing a Time Entry in the time ledger *
* 2016-06-09 Suriya KEYD-3595-URGENT: Please review a number of recently *
created Stored Procedures and FunctionsV *
* 2019-07-24 Vinodhan K Created ) *
*******************************************************************************************************/
BEGIN
-- Check if anything changed. If not then exit
IF EXISTS(
SELECT TOP 1
TIE.[RecordID]
FROM [dbo].[TimeEntry] AS [TIE]
WHERE
TIE.[RecordID] = @RecordID AND
TIE.[Date] = @Date AND
TIE.[Time] = @Time AND
TIE.[Rate] = @Rate AND
TIE.[Task] = @Task AND
TIE.[Rec_Irr] = @IsChargeable AND
RTRIM(TIE.[Comment]) COLLATE Latin1_General_BIN = RTRIM(@Comment) COLLATE Latin1_General_BIN)
BEGIN
RETURN
END
SET @Handler = RTRIM(ISNULL(@Handler, ''))
SET @User = RTRIM(ISNULL(@User, N''))
DECLARE @NCOMMAND NVARCHAR(MAX)
SET @NCOMMAND = N'INSERT
INTO [dbo].[TimeEntryLogNew]
([MATTER],
[FEEEARN],
[DATE],
[TIME],
[RATE],
[CHARGE],
[TASK],
[TIMEORCHARGE],
[COMMENT],
[BILLED],
[NCCODE],
[DOCKET],
[TEAM],
[TRACKREF],
[REC_IRR],
[SHOULDHAVE],
[INVOICENO],
[PERIOD],
[YEAR],
[BILLINGPERIOD],
[BILLINGYEAR],
[OPENINV],
[RECORDID],
[ActionId],
[StageCode],
[Leave],
[BilledAmount],
[IncludeInBill],
[BILLINGDATE],
[AxleNumber],
[WriteOffDT],
[WriteOffID],
[LogFor]'
IF @Handler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[HandlerLogFor]'
END
IF @User <> N''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[LoginLogFor]'
END
SET @NCOMMAND = @NCOMMAND + N')
SELECT [TIE].[MATTER],
[TIE].[FEEEARN],
[TIE].[DATE],
[TIE].[TIME],
[TIE].[RATE],
[TIE].[CHARGE],
[TIE].[TASK],
[TIE].[TIMEORCHARGE],
[TIE].[COMMENT],
[TIE].[BILLED],
[TIE].[NCCODE],
[TIE].[DOCKET],
[TIE].[TEAM],
[TIE].[TRACKREF],
[TIE].[REC_IRR],
[TIE].[SHOULDHAVE],
[TIE].[INVOICENO],
[TIE].[PERIOD],
[TIE].[YEAR],
[TIE].[BILLINGPERIOD],
[TIE].[BILLINGYEAR],
[TIE].[OPENINV],
[TIE].[RECORDID],
[TIE].[ActionId],
[TIE].[StageCode],
[TIE].[Leave],
[TIE].[BilledAmount],
[TIE].[IncludeInBill],
[TIE].[BILLINGDATE],
[TIE].[AxleNumber],
[TIE].[WriteOffDT],
[TIE].[WriteOffID],
''C'''
IF @Handler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@Handler'
END
IF @User <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@User'
END
SET @NCOMMAND = @NCOMMAND + N'
FROM [dbo].[TimeEntry] [TIE]
WHERE [TIE].[RecordID] = @RecordID'
EXEC sp_executesql @NCOMMAND, N'@RecordID INT, @Handler VARCHAR(10), @User NVARCHAR(128)', @RecordID, @Handler, @User
DECLARE @MatterCode VARCHAR(20)
DECLARE @TYPE VARCHAR(1)
SELECT @TYPE = TIE.[TimeOrCharge],
@MatterCode = TIE.[Matter]
FROM [dbo].[TimeEntry] TIE
WHERE RECORDID = @RecordID
DECLARE @CHARGE DECIMAL(10, 2)
/************************************
* John - Recalculating units Start *
************************************/
DECLARE @ISSAM4 BIT
DECLARE @UNITS DECIMAL(11, 2)
DECLARE @ROUNDUPUNITS BIT
DECLARE @TUTNUMVALUE DECIMAL(17, 2)
SET @ISSAM4 = [dbo].[ISSAM4]()
SET @ROUNDUPUNITS = 0
SELECT @ROUNDUPUNITS = [SET].[KeyValue]
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'RoundupUnits'
IF (@ROUNDUPUNITS = 0)
BEGIN
SET @TUTNUMVALUE = 1
END
ELSE
BEGIN
IF @ISSAM4 = 1
BEGIN
SELECT @TUTNUMVALUE = CTN.[NumValue]
FROM [dbo].[CtrlNum] CTN
WHERE CTN.[Code] = 'TimeUnit'
END
SET @TUTNUMVALUE = CASE WHEN ISNULL(@TUTNUMVALUE, 0) = 0 THEN 6 ELSE @TUTNUMVALUE END
END
IF @Time >= 0
BEGIN
SET @UNITS = Ceiling(CONVERT(FLOAT, @Time) / CONVERT(FLOAT, @TUTNUMVALUE))
END
ELSE
BEGIN
SET @UNITS = -Ceiling(CONVERT(FLOAT, -@Time) / CONVERT(FLOAT, @TUTNUMVALUE))
END
SET @Time = @UNITS * @TUTNUMVALUE
/**********************************
* John - Recalculating units END *
**********************************/
SET @CHARGE = CASE @TYPE
WHEN 'C' THEN @Rate
ELSE @Rate * (@Time / 60.0) END
UPDATE TIE
SET TIE.[DATE] = @Date,
TIE.[TIME] = @Time,
TIE.[Task] = @Task,
TIE.[RATE] = @Rate,
TIE.[CHARGE] = @CHARGE,
TIE.[Units] = @UNITS,
TIE.[COMMENT] = @Comment,
TIE.[REC_IRR] = @IsChargeable
FROM [dbo].[TimeEntry] TIE
WHERE TIE.[RecordID] = @RecordID
EXEC [dbo].[ky_WDUpdateMatterTimeBalance] @MatterCode
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UpdateTimeEntryFromDayBook'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UpdateTimeEntryFromDayBook]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateTimeEntryFromDayBook]
(@HANDLER VARCHAR(10),
@UPDByHandler VARCHAR(10),
@User NVARCHAR(128))
AS
/*******************************************************************************************************
* Update TimeEntry values *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateTimeEntryFromDayBook] *
* Copied from : [dbo].[ky_NETUpdateTimeEntryFromDayBook] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET @UPDByHandler = RTRIM(ISNULL(@UPDByHandler, ''))
SET @User = RTRIM(ISNULL(@User, N''))
DECLARE @NCOMMAND NVARCHAR(MAX)
SET @NCOMMAND = N'INSERT
INTO [dbo].[TimeEntryLogNew]
([MATTER],
[FEEEARN],
[DATE],
[TIME],
[RATE],
[CHARGE],
[TASK],
[TIMEORCHARGE],
[COMMENT],
[BILLED],
[NCCODE],
[DOCKET],
[TEAM],
[TRACKREF],
[REC_IRR],
[SHOULDHAVE],
[INVOICENO],
[PERIOD],
[YEAR],
[BILLINGPERIOD],
[BILLINGYEAR],
[OPENINV],
[RECORDID],
[ActionId],
[StageCode],
[Leave],
[BilledAmount],
[IncludeInBill],
[BILLINGDATE],
[AxleNumber],
[WriteOffDT],
[WriteOffID],
[LogFor]'
IF @Handler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[HandlerLogFor]'
END
IF @User <> N''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
[LoginLogFor]'
END
SET @NCOMMAND = @NCOMMAND + N')
SELECT [TIE].[MATTER],
[TIE].[FEEEARN],
[TIE].[DATE],
[TIE].[TIME],
[TIE].[RATE],
[TIE].[CHARGE],
[TIE].[TASK],
[TIE].[TIMEORCHARGE],
[TIE].[COMMENT],
[TIE].[BILLED],
[TIE].[NCCODE],
[TIE].[DOCKET],
[TIE].[TEAM],
[TIE].[TRACKREF],
[TIE].[REC_IRR],
[TIE].[SHOULDHAVE],
[TIE].[INVOICENO],
[TIE].[PERIOD],
[TIE].[YEAR],
[TIE].[BILLINGPERIOD],
[TIE].[BILLINGYEAR],
[TIE].[OPENINV],
[TIE].[RECORDID],
[TIE].[ActionId],
[TIE].[StageCode],
[TIE].[Leave],
[TIE].[BilledAmount],
[TIE].[IncludeInBill],
[TIE].[BILLINGDATE],
[TIE].[AxleNumber],
[TIE].[WriteOffDT],
[TIE].[WriteOffID],
''C'''
IF @UPDByHandler <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@UPDByHandler'
END
IF @User <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N',
@User'
END
SET @NCOMMAND = @NCOMMAND + N'
FROM [dbo].[WDNTEID] [NTEID]
INNER JOIN [dbo].[TimeEntry] [TIE]
ON [TIE].[RecordId] = NTEID.[NEWID]
WHERE [NTEID].[HANDLER] = @Handler'
EXEC sp_executesql @NCOMMAND, N'@Handler VARCHAR(10), @UPDByHandler VARCHAR(10), @User NVARCHAR(128)', @Handler, @UPDByHandler, @User
UPDATE TIE
SET TIE.[Charge] = CASE WHEN RTRIM(ISNULL(TIE.[MATTER], '~')) <> '~'
THEN TDB.[CHARGE]
ELSE 0 END,
TIE.[REC_IRR] = CASE WHEN RTRIM(ISNULL(TIE.[MATTER], '~')) <> '~'
THEN TIE.[REC_IRR]
WHEN RTRIM(ISNULL(TIE.[REC_IRR], '')) = ''
THEN 'C'
ELSE TIE.[REC_IRR] END,
TIE.[Units] = TDB.[Units],
TIE.[MatterLevel] = TDB.[MatterLevel],
TIE.[FEERate] = TDB.[FEERate],
TIE.[ChargedMins] = TDB.[ChargedMins],
TIE.[FEECost] = TDB.[FEECost],
TIE.[TaskLevel] = TDB.[TaskLevel],
TIE.[EntryDate] = TDB.[EntryDate],
TIE.[ModifyDate] = TDB.[ModifyDate],
TIE.[Leave] = TDB.[Leave],
TIE.[TEAM] = HAN.[TEAM],
TIE.[INVOICENO] = (CASE WHEN ISNULL(MAT.[OpenInvoiceNo], 0) <> 0
THEN MAT.[OpenInvoiceNo]
ELSE 0 END),
TIE.[OPENINV] = (CASE WHEN ISNULL(MAT.[OpenInvoiceNo], 0) <> 0
THEN 'Y'
ELSE 'N' END),
TIE.[BilledAmount] = (CASE WHEN ISNULL(MAT.[OpenInvoiceNo], 0) <> 0
THEN TDB.[Charge]
ELSE 0 END),
TIE.[IncludeInBill] = (CASE WHEN ISNULL(MAT.[OpenInvoiceNo], 0) <> 0
THEN 1
ELSE 0 END),
TIE.[AxleNumber] = 0
FROM [dbo].[WDNTEID] NTEID
INNER JOIN [dbo].[TimeDayBook] TDB
ON TDB.[RECORDID] = NTEID.[RECORDID]
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[RecordId] = NTEID.[NEWID]
LEFT OUTER JOIN [dbo].[matters] MAT
ON MAT.[Code] = TIE.[MATTER]
INNER JOIN [dbo].[Handlers] HAN
ON HAN.[CODE] = TIE.[FEEEARN]
WHERE NTEID.[HANDLER] = @Handler
UPDATE MAT
SET MAT.[ChargeBal] = MAT.[ChargeBal]
+ CASE ISNULL(MAT.[OpenInvoiceNo], 0)
WHEN 0 THEN TDB.[Charge]
ELSE 0 END,
MAT.[TimeBal] = MAT.[TimeBal] --2018-02-22 WAS MAT.[ChargeBal] !
+ CASE ISNULL(MAT.[OpenInvoiceNo], 0)
WHEN 0 THEN TDB.[Time]
ELSE 0 END
FROM [dbo].[WDNTEID] NTEID
INNER JOIN [dbo].[TimeDayBook] TDB
ON TDB.[RECORDID] = NTEID.[RECORDID]
AND TDB.[REC_IRR] = 'C'
LEFT OUTER JOIN [dbo].[matters] MAT
ON MAT.[Code] = TDB.[MATTER]
WHERE NTEID.[HANDLER] = @HANDLER
END
GO
IF OBJECT_ID(N'KAAS_UpdateWorkActionType',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_UpdateWorkActionType]
GO
CREATE PROCEDURE
[dbo].[KAAS_UpdateWorkActionType]
(@MatterCode VARCHAR(20),
@CasePlan VARCHAR(5))
AS
/*******************************************************************************************************
* This procedure is used to update work Action type based on Matter Code AND Case plan *
* *
* Stored Procedure Name : [dbo].[KAAS_UpdateWorkActionType] *
* Copied from : [dbo].[ky_NETMATUpdateWorkActionType] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
INSERT
INTO [dbo].[CaseUDFAnswers]
([CASECODE],
[UDFFILE],
[UDFNAME],
[SEQNO],
[DateValue],
[NumberValue],
[ForCopy],
[TEXT1])
SELECT x.[MatterCode],
x.[UDFILE],
x.[UDFName],
x.[UDSEQ],
x.[UDFDate],
x.[NumberValue],
x.[ForCopy],
x.[Text1]
FROM ( SELECT @MatterCode As [MatterCode],
UTWT.[UDFILE],
UTWT.[UDUVCODE] AS [UDFName],
MIN(UTWT.[UDSEQ]) AS [UDSEQ],
NULL AS [UDFDate],
0 AS [NumberValue],
NULL AS [ForCopy],
NULL AS [Text1]
FROM [dbo].[UDFTemplatesWorkTypes] UTWT
WHERE UTWT.[UDWKCODE] = @CasePlan
GROUP BY UTWT.[UDFILE],
UTWT.[UDUVCODE]) x
LEFT OUTER JOIN [dbo].[CaseUDFAnswers] CA
ON CA.[CASECODE] = x.[MatterCode]
AND CA.[UDFFILE] = x.[UDFILE]
AND CA.[UDFNAME] = x.[UDFName]
WHERE CA.[CASECODE] IS NULL
ORDER BY X.[UDSEQ]
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_UserCanPostTime'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_UserCanPostTime]
END
GO
CREATE PROCEDURE [dbo].[KAAS_UserCanPostTime](
@MATTER VARCHAR(20),
@HANDLER VARCHAR(20),
@RECORDID VARCHAR(20)
)
AS
/*******************************************************************************************************
* Please look at [dbo].[KAAS_FN_UserCanPostTime] for details on how the function works, *
* as this is just a wrapper procedure which calls the function. *
* *
* Stored Procedure Name : [dbo].[KAAS_UserCanPostTime] *
* Copied from : [dbo].[ky_NETUserCanPostTime] *
* *
* Modification History : *
* 2019-05-17 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @ID INT
IF (@RECORDID IS NOT NULL AND ISNUMERIC(@RECORDID) = 1)
BEGIN
SET @ID = CONVERT(INT, @RECORDID)
END
SELECT
ISNULL([dbo].[KAAS_FN_UserCanPostTime](@MATTER, @HANDLER, @ID), 0) AS [CODE]
END
GO
IF OBJECT_ID(N'KAAS_ValidateContactsCode',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_ValidateContactsCode]
GO
CREATE PROCEDURE
[dbo].[KAAS_ValidateContactsCode]
(@Code VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure is used to check the contact already exists or not in *
* current client details -> corporate Page.. *
* *
* Stored Procedure Name : [dbo].[KAAS_ValidateContactsCode] *
* Copied from : [dbo].[ky_NETValidateContactsCode] *
* *
* Modification History : *
* 2019-04-13 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT 1
FROM
[dbo].[Contacts] C
WHERE
C.[Code] = @Code)
BEGIN
SELECT
C.Name
FROM
[dbo].[Contacts] C
WHERE
C.Code = @Code
END
ELSE
BEGIN
SELECT '0' AS [Description]
END
SET NOCOUNT OFF
END
GO--Drop this. Incorrect naming convention
IF EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spValidateEnteredActionCode]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[spValidateEnteredActionCode]
GO
IF EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KAAS_ValidateEnteredActionCode]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[KAAS_ValidateEnteredActionCode]
GO
/****** Object: StoredProcedure [dbo].[KAAS_ValidateEnteredActionCode] Script Date: 04/11/2019******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE
[dbo].[KAAS_ValidateEnteredActionCode]
(@ActionCode AS VARCHAR(20))
AS
/*******************************************************************************************************
* Checks that the entered Action Code is valid and returns the Description *
* *
* Stored Procedure Name : [dbo].[KAAS_ValidateEnteredActionCode] *
* Copied from : [dbo].[ky_NETSPValidateEnteredActionCode] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
IF EXISTS(SELECT 1 FROM [dbo].[TemplateActions] TAC WHERE TAC.[ActionCode] = @ActionCode)
SELECT
TAC.[DESC]
FROM
[dbo].[TemplateActions] TAC
WHERE
TAC.[ACTIONCODE] = @ActionCode
ELSE
SELECT 0
END
GO
IF OBJECT_ID(N'KAAS_ValidateEnteredCase',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_ValidateEnteredCase]
GO
CREATE PROCEDURE
[dbo].[KAAS_ValidateEnteredCase]
(@Code VARCHAR(20))
AS
/*******************************************************************************************************
* This procedure is used fetch the data for add action Page. *
* *
* Stored Procedure Name : [dbo].[KAAS_ValidateEnteredCase] *
* Copied from : [dbo].[ky_NETValidateEnteredCase] *
* *
* Modification History : *
* 2019-04-11 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
IF EXISTS(SELECT 1
FROM [dbo].[Matters] MAT
WHERE MAT.[Code] = @Code
AND MAT.[Closed] = 'N' )
BEGIN
SELECT MAT.[Description]
FROM [dbo].[Matters] MAT
WHERE MAT.[Code] = @Code
AND MAT.[Closed] = 'N'
END
ELSE
BEGIN
SELECT '0' AS [Description]
END
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_WizFetchContactCode'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_WizFetchContactCode]
END
GO
CREATE PROCEDURE KAAS_WizFetchContactCode
(@ClientCodePrefix VARCHAR(10),
@Result VARCHAR(10) OUTPUT,
@Error VARCHAR(100) OUTPUT)
AS
/*******************************************************************************************************
* Description: This procedure generates client code AS per the settings in *
* Table : Control *
* Column : AutoAlphaClientNumbering. *
* *
* Stored Procedure Name : [dbo].[KAAS_WizFetchContactCode] *
* Copied from : [dbo].[ky_NETWizFetchContactCode] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @IsClientCodeAutoGen BIT
DECLARE @MaxClientCode INT
DECLARE @NewNumber INT
DECLARE @NewSuffix VARCHAR(10)
DECLARE @AutoClientCode VARCHAR(20)
DECLARE @PrefixCode VARCHAR(10)
SET @PrefixCode = '0000000000'
SET @AutoClientCode = (SELECT ISNULL(AUTONUMBER,'N') from [control] )
-- Get the maximum length of the Client Code. Read Settings first...
SELECT @MaxClientCode = [SET].[KeyValue]
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'MaxClCode'
-- ... and default if not present. 8 for SAM4, 6 for SAM3
IF (@MaxClientCode IS NULL)
BEGIN
IF ([dbo].[ISSAM4]() = 0)
BEGIN
SET @MaxClientCode = 6
END
ELSE
BEGIN
SET @MaxClientCode = 8
END
END
IF(@AutoClientCode='N')
BEGIN
-- Trim the prefix
SELECT @ClientCodePrefix = RTRIM(ISNULL(@ClientCodePrefix, ''))
-- Truncate the prefix if it's too long
IF (LEN(@ClientCodePrefix) > @MaxClientCode)
BEGIN
SET @ClientCodePrefix = SUBSTRING(@ClientCodePrefix, 1, @MaxClientCode)
END
-- Find out how to pad the Client Code. Either add a number, or pad with blanks.
-- Default 1 - Add a number
SET @IsClientCodeAutoGen = 1
-- Read from [dbo].[Control]. Value should be 'Y', translating to 1 or 'N' translating to 0.
-- default value is 1 ('Y'), so anything other than an explicit 'N' will be read as 'Y'
SELECT @IsClientCodeAutoGen = CASE WHEN ISNULL(CTL.[AutoAlphaClientNumbering], 'Y') = 'N' THEN 0 ELSE 1 END
FROM [dbo].[Control] CTL
IF (@IsClientCodeAutoGen = 1)
BEGIN
-- Get all the contacts that have a numeric suffix for the Prefix that was passed in, and get the largest one in order to
-- increment by one.
-- Added CONVERT(INT) here to give us numerically largest value - John
-- Added a PATINDEX() to make sure we don't have any non-numeric characters that pass ISNUMERIC()
SELECT @NewNumber = ISNULL(MAX(CONVERT(INT, NUF.[SUF])), 0) + 1
FROM (SELECT SUBSTRING(CON.[Code], LEN(@ClientCodePrefix) + 1, LEN([Code]) - LEN(@ClientCodePrefix)) AS [SUF]
FROM [dbo].[Contacts] CON
WHERE CON.[Code] LIKE @ClientCodePrefix + '%'
AND ISNUMERIC(SUBSTRING(CON.[Code], LEN(@ClientCodePrefix) + 1, LEN([Code]) - LEN(@ClientCodePrefix))) = 1
AND PATINDEX('%[\,.$£€+-\D\E]%', SUBSTRING(CON.[Code], LEN(@ClientCodePrefix) + 1, LEN([Code]) - LEN(@ClientCodePrefix))) = 0) NUF
-- Pad new suffix with zeros
SET @NewSuffix = SUBSTRING(CONVERT(VARCHAR(11), CONVERT(BIGINT, POWER(CONVERT(BIGINT, 10), @MaxClientCode)) + @NewNumber), 2, @MaxClientCode)
-- Because we truncated the Prefix if it's too long we can now be sure that the prefix is at most as long as @MaxClientCode, so we can easily append
-- the suffix to the prefix:
SET @NewSuffix = @ClientCodePrefix + SUBSTRING(@NewSuffix, LEN(@ClientCodePrefix) + 1, @MaxClientCode - LEN(@ClientCodePrefix))
END
ELSE
BEGIN
SET @NewSuffix = SUBSTRING(@ClientCodePrefix + ' ', 1, @MaxClientCode)
END
END
ELSE
BEGIN
DECLARE @NextClientNo INT
IF [dbo].[ISSAM4]() = 1
BEGIN
DECLARE @NCOMMAND NVARCHAR(MAX)
SET @NCOMMAND = N'SELECT @NextClientNo = CONVERT(INT, CTN.[NumValue])
FROM [dbo].[CtrlNum] CTN
WHERE CTN.[Code] = ''NextClientNo'''
EXEC sp_executesql @NCOMMAND, N'@NextClientNo INT OUTPUT', @NextClientNo OUTPUT
END
IF @NextClientNo IS NOT NULL
WHILE EXISTS
(SELECT TOP 1 1
FROM [dbo].[Contacts] CNT
WHERE CASE WHEN ISNUMERIC(CNT.[Code]) = 0
THEN 0
ELSE CONVERT(INT, CONVERT(FLOAT, CNT.[CODE])) END = @NextClientNo)
BEGIN
SET @NextClientNo = @NextClientNo + 1
END
IF (@NextClientNo IS NOT NULL)
BEGIN
SET @NewSuffix = SUBSTRING(CONVERT(VARCHAR(10), POWER(10, @MaxClientCode) + @NextClientNo), 2, @MaxClientCode)
END
ELSE
BEGIN
SELECT @NewSuffix = SUBSTRING(CONVERT(VARCHAR(10), CASE WHEN NCC.[NewContactNo] >= NCL.[NewClientNo]
THEN NCC.[NewContactNo]
ELSE NCL.[NewClientNo] END), 2, @MaxClientCode)
FROM (SELECT POWER(10, @MaxClientCode) + ISNULL(MAX(CONVERT(INT, CON.[CODE])), 0) + 1 AS [NewContactNo]
FROM [dbo].[Contacts] CON
WHERE ISNUMERIC(CON.[CODE]) = 1
AND CHARINDEX('D',con.[code])=0
AND CHARINDEX('E',con.[Code])=0
AND CHARINDEX(',',con.[Code])=0
AND CHARINDEX('.', CON.[CODE]) = 0) NCC
CROSS APPLY (SELECT POWER(10, @MaxClientCode) + ISNULL(MAX(CONVERT(INT, CLT.[CLCODE])), 0) + 1 AS [NewClientNo]
FROM [dbo].[client] CLT
WHERE ISNUMERIC(CLT.[CLCODE]) = 1
AND CHARINDEX('D',CLT.[CLCODE])=0
AND CHARINDEX('E',CLT.[CLCODE])=0
AND CHARINDEX(',',CLT.[CLCODE])=0
AND CHARINDEX('.', CLT.[CLCODE]) = 0) NCL
END
END
IF EXISTS
(SELECT TOP 1 1
FROM [dbo].[client] CLT
WHERE RTRIM(CLT.[CLCODE]) = RTRIM(@NewSuffix))
BEGIN
SET @Result = '0'
SET @Error = 'Client Code ''' + RTRIM(@NewSuffix) + ''' is already in use'
END
ELSE
BEGIN
IF(LEN(@NewSuffix)<=@MaxClientCode )
BEGIN
SET @Result = @NewSuffix
SET @Error = '0'
END
ELSE
BEGIN
SET @Result = '0'
SET @Error = 'Client Code length exceed the maximum limit, Auto Client code cannot be generate.'
END
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_WizFetchMatterWizardData',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_WizFetchMatterWizardData]
GO
CREATE PROCEDURE [dbo].[KAAS_WizFetchMatterWizardData]
(
@LoginHandlerCode VARCHAR(20)
)
AS
/*******************************************************************************************************
* This will load the following data's for new case wizard, *
* 1. Client contacts, *
* 2. Fee Earners List, *
* 3. Handlers *
* 4. Departments, *
* 5. Work Types, *
* 6. Case Plan *
* *
* Stored Procedure Name : [dbo].[KAAS_WizFetchMatterWizardData] *
* Copied from : NA *
* *
* Modification History: *
* 2019-04-23 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
--SELECT
-- RTRIM(LTRIM([Code])) AS Code
-- , RTRIM(LTRIM([Name])) AS Name
-- , RTRIM(LTRIM([Address])) AS [Address]
--FROM
-- Contacts
--WHERE
-- ISNULL([Code],'') IN
-- (
-- EXEC ( KAAS_GetContactsByHandlerPrivilege @LoginHandlerCode)
-- )
EXEC KAAS_GetContactsByHandlerPrivilege @LoginHandlerCode
SELECT RTRIM([Code]) AS Code,
RTRIM(ISNULL([Name],'')) AS FeeEarners
FROM Feeearnercodes
WHERE Retired <> 'Y'
SELECT RTRIM([Code]) AS Code,
RTRIM([Name]) AS Partners
FROM Handlers
WHERE [TYPE] ='P' AND [RETIRED] <> 'Y'
SELECT RTRIM([Code]) AS Code,
RTRIM([Desc]) AS Department
FROM Departments
WHERE Retired <> 'Y'
SELECT RTRIM([Code]) AS Code,
RTRIM(ISNULL([Desc],'')) AS WorkTypes
FROM Worktypes
WHERE Retired <> 'Y'
SELECT RTRIM(WKCODE) AS Code,
RTRIM(ISNULL(WKDESC,'')) AS CasePlan
FROM Templates
WHERE ((Dept = '')
OR (Dept = ( SELECT Dept
FROM Handlers
WHERE (CODE = @LoginHandlerCode ))))
AND Retired = 'N'
SELECT [UserPrompt1],[UserPrompt2],[UserPrompt3], YourRef, AUTONUMBER AS [AutoNumber]
FROM [CONTROL]
SELECT ISNULL(KeyValue,'False') AS EstFeeRequiredMatterSetup
FROM SETTINGS
WHERE KeyName = 'EstFeeRequiredatMatterSetup'
SELECT ISNULL(KeyValue,'False') AS ExpInvoiceDateRequiredAtMatterSetup
FROM SETTINGS
WHERE KeyName = 'ExpInvoiceDateRequiredAtMatterSetup'
SELECT [BRANCHCODE] AS [Code],
[DESCRIPTION] AS [Branch]
FROM Branch
SELECT RTRIM(ISNULL(Branch,'')) AS Branch
FROM Handlers
WHERE RTRIM(CODE) = @LoginHandlerCode
AND [Retired] <> 'Y'
SELECT RTRIM(Code) AS Code,
RTRIM(Name) AS Secretary
FROM Handlers
WHERE [Type] ='S'
AND [Retired] <> 'Y'
SELECT KeyValue AS [BranchRequiredAtMatterSetup]
FROM Settings
WHERE [KeyName] = 'NewCaseWizardBranch'
SELECT RTRIM(ISNULL([ColourCode],'')) AS Code,
RTRIM(ISNULL([ColourDesc],'')) AS FileDescription,
[RGBColour]
FROM FileColours
WHERE Retired <> 'Y'
--Code Configuration
Declare @AutoNumberClient BIT
Declare @AutoAlphaNumberingClient BIT
Declare @MaxNumberOfMatters INT
Declare @UniqueMatterCodeNumbering BIT
Declare @MaxClientCode INT
Declare @MaxMatterCode INT
Declare @AutoNumberIfBlank BIT
Declare @AllowManualEntryOnMatterCode BIT
Declare @ManualClientCode BIT
SELECT @AutoNumberClient = (CASE WHEN AUTONUMBER = 'Y'
THEN 'True'
ELSE 'False'
END),
@AutoAlphaNumberingClient = (CASE WHEN AUTOALPHACLIENTNUMBERING = 'Y'
THEN 'True'
ELSE 'False'
END),
@MaxNumberOfMatters = MAXNUMBEROFMATTERS,
@UniqueMatterCodeNumbering = (CASE WHEN INDICATOR19 = 'Y'
THEN 'True'
ELSE 'False'
END)
FROM [CONTROL]
SELECT @MaxClientCode = (CASE WHEN [SET].[KeyName] = 'MaxClCode'
THEN [SET].[KeyValue]
ELSE @MaxClientCode
END),
@MaxMatterCode = (CASE WHEN [SET].[KeyName] = 'MaxMatNum'
THEN [SET].[KeyValue]
ELSE @MaxMatterCode
END),
@AutoNumberIfBlank = (CASE WHEN [SET].[KeyName] = 'AutoNumberIfBlank'
THEN [SET].[KeyValue]
ELSE @AutoNumberIfBlank
END),
@AllowManualEntryOnMatterCode = (CASE WHEN [SET].[KeyName] = 'ShowMatterCode'
THEN [SET].[KeyValue]
ELSE @AllowManualEntryOnMatterCode
END),
@ManualClientCode = (CASE WHEN [SET].[KeyName] = 'ManualClientCode'
THEN [SET].[KeyValue]
ELSE ISNULL(@ManualClientCode,'False')
END)
FROM SETTINGS [SET]
SELECT
@MaxClientCode AS [MaxClientCode],
@MaxMatterCode AS [MaxMatterCode],
@AutoNumberIfBlank AS [AutoNumberIfBlank],
@AllowManualEntryOnMatterCode AS [AllowManualEntryOnMatterCode],
@AutoNumberClient AS [AutoNumberClient],
@AutoAlphaNumberingClient AS [AutoAlphaNumberingClient],
@MaxNumberOfMatters AS [MaxNumberOfMatters],
@UniqueMatterCodeNumbering AS [UniqueMatterCodeNumbering],
@ManualClientCode AS [ManualClientCode]
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_WizInsertNewContact'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_WizInsertNewContact]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_WizInsertNewContact]
(@Code VARCHAR(10),
@Name VARCHAR(256),
@Address VARCHAR(500),
@Salut VARCHAR(256),
@Tel VARCHAR(20),
@Mobile VARCHAR(20),
@Fax VARCHAR(20),
@Email VARCHAR(50),
@FeeEarner VARCHAR(10),
@IsApproved BIT,
@SecondaryEmail VARCHAR(40),
@RSINo VARCHAR(50),
@LoginCode VARCHAR(3),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This procedure is used to insert new contact AND It will return *
* result 1 IF successful insert AND it will return 2 IF duplicate EXISTS. *
* *
* Stored Procedure Name : [dbo].[KAAS_WizInsertNewContact] *
* Copied from : [dbo].[ky_NETWizInsertNewContact] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @CHARGELEVEL INT
SELECT
@CHARGELEVEL = ISNULL(CONVERT(INT, [SET].[KeyValue]), 3)
FROM
[dbo].[Settings] AS [SET]
WHERE
[SET].[KeyName] = 'DefaultClientChargeLevel'
AND [SET].[KeyValue] IN ('1', '2', '3', '4', '5')
SELECT @CHARGELEVEL = ISNULL(@CHARGELEVEL, 3)
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[Contacts] CON
WHERE CON.[Code] = @Code)
BEGIN
INSERT
INTO [dbo].[Contacts]
([Code],
[Name],
[Address],
[Salut],
[Tel],
[Fax],
[email],
[FE],
[Approved],
[CompFrequency],
[ChargeLevel],
[SecondaryEmail],
[RSINo],
[Statements],
[ApprovedDate],
[ApprovedByUSER])
VALUES(@Code,
@Name,
@Address,
@Salut,
@Tel,
@Fax,
@Email,
@FeeEarner,
@IsApproved,
'N',
@CHARGELEVEL,
@SecondaryEmail,
@RSINo,
'Y',
CASE @IsApproved WHEN 1 THEN GETDATE() ELSE null END,
CASE @IsApproved WHEN 1 THEN @LoginCode ELSE null END)
SET @Result = 1
INSERT
INTO [dbo].[client]
([CLCODE],
[CLNAME],
[CLFNR],
[CLLEGALNAME],
[CLTEL],
[CLMOBNO],
[CLNEXTCSENO],
[CLCSECOUNT],
[CLNUMCHILD],
[CLADDR],
[CLEMAIL])
VALUES(@Code,
@Name,
@FeeEarner,
@Name,
@Tel,
@Mobile,
0,
0,
0,
@Address,
@Email)
END
ELSE
BEGIN
SET @Result = 2
END
UPDATE CTL
SET CTL.[LASTCLIENT] = [dbo].[KAAS_FNGetMaxNumericClient]()
FROM [dbo].[control] CTL
DECLARE @NextClientNo INT
DECLARE @NCOMMAND NVARCHAR(MAX)
IF [dbo].[ISSAM4]() = 1
BEGIN
SET @NCOMMAND = N'SELECT @NextClientNo = CONVERT(INT, CTN.[NumValue])
FROM [dbo].[CtrlNum] CTN
WHERE CTN.[Code] = ''NextClientNo'''
EXEC sp_executesql @NCOMMAND, N'@NextClientNo INT OUTPUT', @NextClientNo OUTPUT
END
IF @NextClientNo IS NOT NULL
BEGIN
WHILE EXISTS
(SELECT TOP 1 1
FROM [dbo].[Contacts] CNT
WHERE CASE WHEN ISNUMERIC(CNT.[Code]) = 0
THEN 0
ELSE CONVERT(INT, CONVERT(FLOAT, CNT.[CODE])) END = @NextClientNo)
BEGIN
SET @NextClientNo = @NextClientNo + 1
END
SET @NCOMMAND = N' UPDATE CTN
SET CTN.[NumValue] = @NextClientNo
FROM [dbo].[CtrlNum] CTN
WHERE CTN.[Code] = ''NextClientNo'''
EXEC sp_executesql @NCOMMAND, N'@NextClientNo INT', @NextClientNo
END
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_WizInsertNewMatter'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_WizInsertNewMatter]
END
GO
CREATE PROCEDURE
[KAAS_WizInsertNewMatter]
(@ClientCode VARCHAR(10),
@MatterCode1 VARCHAR(20),
@Description VARCHAR(200),
@FeeEarnerCode VARCHAR(10),
@PartnerCode VARCHAR(10),
@DepartmentCode VARCHAR(10),
@WorkType VARCHAR(10),
@CasePlan VARCHAR(10),
@OldReference VARCHAR(12),
@YourReference VARCHAR(100),
@FileReference VARCHAR(100),
@UserReference2 VARCHAR(100),
@UserReference3 VARCHAR(100),
@LoginCode VARCHAR(10),
@EstimateFee DECIMAL(17,2),
@ExpectedDate DATETIME,
@OutlayBudget DECIMAL(18,9),
@IsFixedFee BIT,
@MoneyLaunderingCheck SMALLINT,
@MLDept VARCHAR(20),
@MLFeeEarner VARCHAR(20),
@MLWorkType VARCHAR(20),
@MLCasePlan VARCHAR(20),
@Branch CHAR(3),
@Secretary VARCHAR(10),
@FileColour VARCHAR(3),
@BillingMatter VARCHAR(10),
@Result VARCHAR(20) OUTPUT,
@ResultFECode VARCHAR(500)OUTPUT)
AS
/*******************************************************************************************************
* This procedure is used to insert new matter. This procedure will return 1 IF *
* successful insert of new matter. *
* *
* Stored Procedure Name : [dbo].[KAAS_WizInsertNewMatter] *
* Copied from : [dbo].[ky_NETWizInsertNewMatter] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @MatterCode VARCHAR(20)
DECLARE @MatterCount INT
DECLARE @Team VARCHAR(20)
DECLARE @ActionId INT
DECLARE @AssignNo INT
DECLARE @OpenCount INT
DECLARE @CaseCode VARCHAR(20)
DECLARE @MatCodeLen INT
DECLARE @MatCodeZeros VARCHAR(10)
DECLARE @CompositeMatter VARCHAR(20)
DECLARE @ClientFeeEarner VARCHAR(10)
DECLARE @ChargeLevel TINYINT
DECLARE @ClientAddress VARCHAR(15) --=''
DECLARE @OfficeAddress VARCHAR(15) --= ''
DECLARE @ClientStatement VARCHAR(5)
SET @ChargeLevel = (SELECT ISNULL(ChargeLevel,3) FROM Contacts WHERE Code=@ClientCode)
SET @ClientStatement = (SELECT ISNULL(Statements,'Y') FROM Contacts WHERE Code = @ClientCode)
IF NOT(@Branch = '')
BEGIN
SET @ClientAddress = (SELECT ISNULL(DEFCLIENT,'') FROM Branch WHERE BRANCHCODE = @Branch)
SET @OfficeAddress = (SELECT ISNULL(DEFOFFICE,'') FROM Branch WHERE BRANCHCODE = @Branch)
END
SET @ClientAddress = RTRIM(ISNULL(@ClientAddress, ''))
SET @OfficeAddress = RTRIM(ISNULL(@OfficeAddress, ''))
SELECT
@MatCodeLen = [SET].[KeyValue]
FROM
[dbo].[Settings] [SET]
WHERE
[SET].[KeyName] = 'MaxMatNum'
SET @MatCodeLen = ISNULL(@MatCodeLen, 4)
--PINO02 start
SET @MatCodeZeros = SUBSTRING('0000000000', 1, @MatCodeLen)
--PINO02 end
--2015-05-07 START
DECLARE @MAXNUM INT
SELECT
@MAXNUM = ISNULL(MAX([FILENUM]), 0)
FROM
[dbo].[matters]
SELECT
@MAXNUM = CASE WHEN [NEXTFILE] > @MAXNUM
THEN [NEXTFILE]
ELSE @MAXNUM END
FROM
[dbo].[control]
--2015-05-07 END
IF(@MoneyLaunderingCheck=2)
BEGIN
--Matters
IF NOT EXISTS(SELECT TOP 1 1 FROM Matters WHERE CODE = @ClientCode + '/' + @MatCodeZeros) --PINO02
BEGIN
--2015-05-07 START
SET @MAXNUM = @MAXNUM + 1
UPDATE CTL
SET [NEXTFILE] = @MAXNUM
FROM
[dbo].[control] CTL
--2015-05-07 END
INSERT INTO
[dbo].[matters]
([Code],
[ClientCode],
[Matter],
[Description],
[FECode],
[Partner],
[Dept],
[WType],
[Permissions],
[Publish],
[FileNum], --2015-05-07
[Started], --PINO01
[Branch],
[Secretary],
[ChargeLevel],
[ClientBankAc],
[OfficeBankAc],
[FileColour],
[Statements])
SELECT INS.[Code],
INS.[ClientCode],
INS.[Matter],
INS.[Description],
INS.[FECode],
INS.[Partner],
INS.[Dept],
INS.[WType],
INS.[Permissions],
INS.[Publish],
@MAXNUM, --2015-05-07
MST.[Started], --PINO01
INS.[Branch],
INS.[Secratery],
INS.[ChargeLevel],
INS.[ClientBankAc],
INS.[OfficeBankAc],
INS.[FileColour],
INS.[Statements]
FROM (SELECT @ClientCode +'/'+@MatCodeZeros AS [Code], --PINO02
@ClientCode AS [ClientCode],
@MatCodeZeros AS [Matter], --PINO02
'Document matter' AS [Description],
@MLFeeEarner AS [FECode],
@PartnerCode AS [Partner],
@MLDept AS [Dept],
@MLWorkType AS [WType],
0 AS [Permissions],
'N' AS [Publish],
@Branch AS [Branch],
@Secretary AS [Secratery],
@ChargeLevel AS [ChargeLevel],
@ClientAddress AS [ClientBankAc],
@OfficeAddress AS [OfficeBankAc],
@FileColour AS [FileColour],
@ClientStatement AS [Statements]) INS
CROSS APPLY (SELECT ISNULL(MIN(MAT.[Started]), GetDate()) AS [Started] --PINO01
FROM [dbo].[matters] MAT
WHERE MAT.[ClientCode] = @ClientCode) MST
--CaseMaster
INSERT
INTO [dbo].[CaseMaster]
([CSCODE],
[CSCLIENTCDE],
[CSFNR],
[CSDESC],
[CSWKTCODE],
[CSDATEENTERED_DATE])
SELECT MAT.[Code],
MAT.[ClientCode],
MAT.[FECode],
MAT.[Description],
@MLCasePlan,
MAT.[Started]
FROM [dbo].[matters] MAT
WHERE MAT.[Code] = @ClientCode + '/' +@MatCodeZeros --PINO02
END
END
-- 2015-10-23 John @MatterCount is now the maximum matter found in [dbo].[matters].[Matter]
SET @MatterCount = ISNULL((SELECT TOP 1 MAX(MAT.[Matter]) FROM [dbo].[matters] AS MAT WHERE ISNUMERIC(MAT.[Matter]) = 1 AND MAT.[ClientCode] = @ClientCode), 0) + 1
IF(@MatterCode1 = '')
BEGIN
SET @MatterCode = @MatCodeZeros + CONVERT(VARCHAR(10), @MatterCount) --PINO02
SET @MatterCode = REVERSE(SUBSTRING(REVERSE(@MatterCode), 1, @MatCodeLen)) --PINO02
END
ELSE
BEGIN
SET @MatterCode = @MatterCode1
END
--2015-05-07 START
SET @MAXNUM = @MAXNUM + 1
UPDATE
CTL
SET
[NEXTFILE] = @MAXNUM
FROM
[dbo].[control] CTL
--2015-05-07 END
-- KEYD-3919: CompositeBilling Indiactor
IF @BillingMatter='OldMatter'
BEGIN
SELECT @CompositeMatter = RTRIM(ISNULL(CTC.[CompMatter], '')),
@ClientFeeEarner = RTRIM(ISNULL(CTC.[FE], ''))
FROM [dbo].[Contacts] CTC
WHERE CTC.[Code] = @ClientCode
END
ELSE
BEGIN
Set @CompositeMatter=''
END
INSERT
INTO [dbo].[matters]
([Code],
[ClientCode],
[Matter],
[Description],
[FECode],
[Partner],
[Dept],
[FileNum], --2015-05-07
[Started],
[WType],
[YourRef],
[OldRef],
[User1],
[User2],
[User3],
[EstFee],
[ExpBillD],
[OutlayBud],
[FixedFee],
[Branch],
[CompBillingMatter],
[CompFrequency], --2015-11-23
[Secretary],
[ClientBankAc],
[OfficeBankAc],
[FileColour],
[PCode],
[PFECode],
[Statements])
VALUES(@ClientCode + '/' + @MatterCode,
@ClientCode,
@MatterCode,
@Description,
@FeeEarnerCode,
@PartnerCode,
@DepartmentCode,
@MAXNUM, --2015-05-07
GETDATE(),
@WorkType,
@YourReference,
@OldReference,
@FileReference,
@UserReference2,
@UserReference3,
@EstimateFee,
@ExpectedDate,
@OutlayBudget,
CASE WHEN @IsFixedFee = 'True'
THEN 'Y'
ELSE 'N' END,
@Branch,
@CompositeMatter,
'N', --2015-11-23
@Secretary,
@ClientAddress,
@OfficeAddress,
@FileColour,
@ClientCode + '/' + @MatterCode,
@FeeEarnerCode,
@ClientStatement)
SET @CaseCode = @ClientCode + '/' + @MatterCode
INSERT
INTO [dbo].[CaseMaster]
([CSCODE],
[CSCLIENTCDE],
[CSFNR],
[CSDESC],
[CSWKTCODE],
[CSDATEENTERED_DATE])
VALUES(@ClientCode + '/' + @MatterCode,
@ClientCode,
@FeeEarnerCode,
CONVERT(VARCHAR(50), @Description),
@CasePlan,
GETDATE())
----Case UDF
EXEC KAAS_UpdateWorkActionType @CaseCode,
@CasePlan
--Gettting Open Matter Count
SELECT @OpenCount = count(MAT.[Matter])
FROM [dbo].[matters] MAT
WHERE MAT.[ClientCode] = @ClientCode
AND ISNULL(MAT.[Closed], 'N') <> 'Y'
--Update Last Matter Count
UPDATE CTC
SET CTC.[LastMatter] = @MatterCount,
CTC.[OpenMatters] = @OpenCount,
CTC.[Client] = 'Y'
FROM [dbo].[Contacts] CTC
WHERE CTC.[Code] = @ClientCode
--Update Next Doc number - Arun
--UPDATE
-- [control]
--SET
-- NEXT_DOC_NO = 0
SELECT @Team = HAN.[Team]
FROM [dbo].[Handlers] HAN
WHERE HAN.[CODE] = @FeeEarnerCode
--PINO 2015-09-30 START
EXEC @ActionID = [dbo].[KAAS_GetNextActionID]
--SELECT @ActionId = ISNULL(MAX(ActionId), 0) --PINO03
-- FROM [dbo].[diary]
SET @ActionID = @ActionID - 1 --addition of sequence numbers below
--PINO 2015-09-30 END
DECLARE @FEDel VARCHAR(10)
DECLARE @FESec VARCHAR(10)
DECLARE @FEDelEmpty CHAR(1)
DECLARE @FESecEmpty CHAR(1)
--DECLARE @Assign VARCHAR(10)
--SELECT @Assign = CASE [TMP].[AssignActionTo]
-- WHEN 'D' THEN 'Del'
-- WHEN 'S' THEN 'Sec'
-- ELSE '' END
-- FROM [dbo].[TemplateActions] [TMP]
-- Inner Join [dbo].[ActionWorkTypes] AWT
-- ON TMP.[ACTIONCODE]=awt.ACTIONCODE
-- AND TMP.[AutoPopulate]='Y'
-- WHERE AWT.WORKTYPE=@CasePlan
SELECT @FEDel= HAN.[Delegate]
FROM Handlers HAN
WHERE CODE= (SELECT FECODE from matters where CODE=@ClientCode + '/' + @MatterCode)
SELECT @FESec = Secretary from Matters
WHERE Code=@ClientCode + '/' + @MatterCode
If @FESec ='' OR @FESec = null
BEGIN
SET @FESecEmpty = 'Y'
SELECT @FESec=HAN.[Delegate]
FROM Handlers HAN
WHERE CODE= (SELECT FECODE from matters where CODE=@ClientCode + '/' + @MatterCode)
END
ELSE
SET @FESecEmpty = 'N'
IF @FEDel = '' or @FEDel=null
BEGIN
SET @FEDelEmpty = 'Y'
SET @FEDel=@LoginCode
END
ELSE
SET @FEDelEmpty = 'N'
IF @FESec = '' or @FEDel=null
BEGIN
SET @FESec=@LoginCode
END
DECLARE @RETURNDEFAULTFAILURES VARCHAR(500)
DECLARE @NewDiary TABLE
([CASECODE] VARCHAR(20),
[DATE] DATETIME,
[STATUS] SMALLINT,
[ACTIONCODE] VARCHAR(15),
[ACTIONSTATUS] VARCHAR(3),
[ACTIONTYPE] VARCHAR(1),
[PROCESSTYPE] VARCHAR(1),
[FNCODE] VARCHAR(10),
[ASSIGN] VARCHAR(500),
[TEAMCODE] VARCHAR(10),
[TEXT1] VARCHAR(MAX),
[IMAGENO] INT,
[DUEDATE] DATETIME,
[PUBLISH] VARCHAR(1),
[DYSTARTTIME] VARCHAR(10),
[DYENDTIME] VARCHAR(10),
[DURATION] SMALLINT,
[ACTIONID] INT,
[ORGINALACTIONID] INT,
[PRIORITY] VARCHAR(1),
[HIGHLIGHTED] VARCHAR(1),
[MILESTEONETYPE] VARCHAR(12),
[PROCESSSTATUS] SMALLINT,
[WORKPROCESS] SMALLINT,
[BILLABLE] INT,
[ACTIONCATEGORY] CHAR(1))
--Insert Diary - first insert into @NewDiary, then use @NewDiary to drive the inserts into
-- Diary and DiaryDelegations
INSERT
INTO @NewDiary
([CASECODE],
[DATE],
[STATUS],
[ACTIONCODE],
[ACTIONSTATUS],
[ACTIONTYPE],
[PROCESSTYPE],
[FNCODE],
[ASSIGN],
[TEAMCODE],
[TEXT1],
[IMAGENO],
[DUEDATE],
[PUBLISH],
[DYSTARTTIME],
[DYENDTIME],
[DURATION],
[ACTIONID],
[ORGINALACTIONID],
[PRIORITY],
[HIGHLIGHTED],
[MILESTEONETYPE],
[PROCESSSTATUS],
[WORKPROCESS],
[BILLABLE],
[ACTIONCATEGORY]) --ActionCategory for DiaryDelegations, below
SELECT @ClientCode + '/' + @MatterCode,
GETDATE(),
'0',
TAC.[ACTIONCODE],
TAC.[STATUS],
TAC.[ACTTYPE],
TAC.[PROCESSTYPE],
CASE WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L')) ='L'
THEN @LoginCode
WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='C'
THEN @FeeEarnerCode
WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='P'
THEN @PartnerCode
WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='F'
THEN @ClientFeeEarner
WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='O'
THEN TAC.[ASSIGNHANDLER]
WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='D'
THEN (@FEDel)
WHEN RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='S'
THEN @FESec
ELSE @LoginCode END,
CASE WHEN (RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='D' AND @FEDelEmpty='Y')
THEN TAC.[ACTIONCODE] + '- Empty Delegate, '
WHEN (RTRIM(ISNULL(TAC.[AssignActionTo], 'L'))='S' AND @FESecEmpty='Y')
THEN TAC.[ACTIONCODE] + '- Empty Secretary, '
ELSE '' END,
@Team,
TAC.[DESC],
'0',
GETDATE(),
TAC.[PUBLISHER],
[dbo].[ky_ConvertTimeToClarion](CONVERT(VARCHAR(20), GETDATE(), 8)),
[dbo].[ky_ConvertTimeToClarion](CONVERT(VARCHAR(20), GETDATE(), 8)),
'0',
@ActionId + (ROW_NUMBER() OVER (ORDER BY TAC.[desc])),
@ActionId + (ROW_NUMBER() OVER (ORDER BY TAC.[desc])),
CASE SUBSTRING(RTRIM(ISNULL(TAC.[Priority], 'N')), 1, 1)
WHEN 'H' THEN 'H'
WHEN 'L' THEN 'L'
ELSE 'N' END,
TAC.[HIGHLIGHTED],
TAC.[MILESTONETYPE],
'0',
'0',
CASE RTRIM(ISNULL(TAC.[BILLABLE], 'N'))
WHEN 'Y' THEN 1
ELSE 0 END,
TAC.[ACTIONCATEGORY] --ActionCategory for DiaryDelegations, below
FROM [dbo].[ActionWorkTypes] AWT
INNER JOIN [dbo].[TemplateActions] TAC
ON TAC.[ACTIONCODE] = AWT.[ACTIONCODE]
AND TAC.[AutoPopulate] = 'Y'
WHERE AWT.[WORKTYPE] = @CasePlan
SET @RETURNDEFAULTFAILURES=''
SELECT @RETURNDEFAULTFAILURES = @RETURNDEFAULTFAILURES+Assign from @NewDiary
Set @ResultFECode=@RETURNDEFAULTFAILURES
INSERT
INTO [dbo].[diary]
([CASECODE],
[DATE],
[STATUS],
[ACTIONCODE],
[ACTIONSTATUS],
[ACTIONTYPE],
[PROCESSTYPE],
[FNCODE],
[TEAMCODE],
[TEXT1],
[IMAGENO],
[DUEDATE],
[PUBLISH],
[DYSTARTTIME],
[DYENDTIME],
[DURATION],
[ACTIONID],
[ORGINALACTIONID],
[PRIORITY],
[HIGHLIGHTED],
[MILESTEONETYPE],
[PROCESSSTATUS],
[WORKPROCESS],
[BILLABLE])
SELECT NDIA.[CASECODE],
NDIA.[DATE],
NDIA.[STATUS],
NDIA.[ACTIONCODE],
NDIA.[ACTIONSTATUS],
NDIA.[ACTIONTYPE],
NDIA.[PROCESSTYPE],
NDIA.[FNCODE],
NDIA.[TEAMCODE],
NDIA.[TEXT1],
NDIA.[IMAGENO],
NDIA.[DUEDATE],
NDIA.[PUBLISH],
NDIA.[DYSTARTTIME],
NDIA.[DYENDTIME],
NDIA.[DURATION],
NDIA.[ACTIONID],
NDIA.[ORGINALACTIONID],
NDIA.[PRIORITY],
NDIA.[HIGHLIGHTED],
NDIA.[MILESTEONETYPE],
NDIA.[PROCESSSTATUS],
NDIA.[WORKPROCESS],
NDIA.[BILLABLE]
FROM @NewDiary NDIA
--PINO 2015-09-30 START - reseed
EXEC [dbo].[KAAS_ReseedActionID]
--EXEC @ActionID = [dbo].[KAAS_GetNextActionID]
--PINO 2015-09-30 END
SELECT @AssignNo = ISNULL(MAX(AssignNo), 0) --PINO03
FROM DiaryDelegations
--Diary Delegations
INSERT
INTO [dbo].[DiaryDelegations]
([ACTIONID],
[HANDLER],
[TEAM],
[DATE],
[TIME],
[DUEDATE],
[DUETIME],
[STATUS],
[OWNER],
[DELEGATE],
[DELEGATESTATUS],
[ActionType],
[FromHandler],
[DelType])
SELECT NDIA.[ActionId],
NDIA.FNCODE,
@Team,
NDIA.[DATE],
[dbo].[ky_ConvertTimeToClarion](CONVERT(VARCHAR(20), NDIA.[DATE], 8)),
GETDATE(),
[dbo].[ky_ConvertTimeToClarion](CONVERT(VARCHAR(20), NDIA.[DATE], 8)),
'0',
'Y',
NDIA.FNCODE,
'0',
NDIA.[ACTIONCATEGORY],
NDIA.FNCODE,
'Created'
FROM @NewDiary NDIA
SET @Result = @ClientCode + '/' + @MatterCode
DECLARE @BitWiseID BIGINT
SELECT @BitWiseID = CNP.[Previleges]
FROM [dbo].[ContactNETPrivileges] CNP
WHERE CNP.[ContactCode] = @ClientCode
AND CNP.[ApplyToNewMatters] = 1
--@ClientCode
IF(@BitWiseID IS NOT NULL)
BEGIN
IF NOT EXISTS (SELECT TOP 1 1
FROM [dbo].[MatterNETPrivileges] MNP
WHERE MNP.[MATTER] = @Result )
BEGIN
INSERT
INTO [dbo].[MatterNETPrivileges]
([MATTER],
[Privileges])
VALUES(@Result,
@BitWiseID)
END
ELSE
BEGIN
UPDATE MNP
SET MNP.[Privileges] = @BitWiseID
FROM [dbo].[MatterNETPrivileges] MNP
WHERE MNP.[MATTER] = @Result
END
END
--Update Matter Charge Level
DECLARE @ClientChargeLevel TINYINT
SET @ClientChargeLevel = (SELECT ISNULL(chargelevel,0) FROM Contacts WHERE code = @ClientCode )
IF (@ClientChargeLevel<>0)
BEGIN
UPDATE Matters set ChargeLevel = @ClientChargeLevel
WHERE Code = @Result
END
--Estimate Fee Log..
IF(@EstimateFee <> '0.00')
BEGIN
INSERT INTO MatterEstimateFeeLogs
(
[Log],
[Mattercode],
[Who],
[EstimateFee]
)
VALUES
(
'Added',
@Result,
@LoginCode,
@EstimateFee
)
END
--UPDATE C
--SET
-- C.ApprovedDate = CASE C.Approved WHEN 1 THEN GETDATE() ELSE null END,
-- C.ApprovedByUSER = CASE C.Approved WHEN 1 THEN @LoginCode ELSE null END
-- FROM
-- Contacts C
--WHERE
-- Code = @ClientCode
IF OBJECT_ID('[dbo].[InitialDebtCharges]', 'U') IS NOT NULL AND
ISNULL((SELECT TOP 1 [KeyValue] FROM [dbo].[RevenueSettings] WHERE [KeyName] = 'ClaimSystemEnabled'), 'False') = 'True'
BEGIN
-- Setting original debt via User 1 field:
IF ISNUMERIC(@FileReference) = 1 AND PATINDEX('%[^0-9.]%', @FileReference) = 0
BEGIN
UPDATE MAT
SET MAT.[OriginalDebt] = CONVERT(DECIMAL(13, 2), @FileReference)
FROM [dbo].[matters] AS MAT
WHERE MAT.[Code] = @ClientCode + '/' + @MatterCode
AND MAT.[User1] = @FileReference
END
IF (SELECT COUNT(1) FROM [dbo].[InitialDebtCharges]) > 0
BEGIN
DECLARE @NEXTPREF INT
DECLARE @I INT -- This will be the ID of the next initial charge
DECLARE @MAX INT -- This will be the last ID
DECLARE @SQL NVARCHAR(MAX)
DECLARE @MATTERCODE_FULL VARCHAR(20)
SELECT @I = ISNULL(MIN(ISNULL(IDC.[id], 0)), 0),
@MAX = ISNULL(MAX(ISNULL(IDC.[id], 0)), 0),
@MATTERCODE_FULL = @ClientCode + '/' + @MatterCode
FROM [dbo].[InitialDebtCharges] AS IDC
WHILE (ISNULL(@MAX, 0) <> 0 AND ISNULL(@I, 0) <> 0 AND ISNULL(@I, 0) < ISNULL(@MAX, 0) + 1)
BEGIN
SELECT @NEXTPREF = ISNULL(MAX(DCL.[POSTINGREF]), 0) + 1
FROM [dbo].[DebtCostingLedger] AS DCL
SELECT @SQL = '
INSERT INTO [dbo].[DebtCostingLedger] (
[MATTERCODE],
[DATE],
[REFERENCE],
[DESCRIPTION],
[TYPE],
[Value],
[INTEREST],
[COSTS],
[REMITTANCENO],
[ENTRYDATE],
[ENTEREDBY],
[POSTINGREF],
[Bounced],
[PREMIUMPAID],
[INTERESTPAID],
[COSTSPAID],
[XnId],
[CourtFeeCode])
SELECT ''' + ISNULL(@MATTERCODE_FULL, '') + ''',' +
'''' + CONVERT(VARCHAR(8), GETDATE(), 112) + ''',' +
'''' + ISNULL(IDC.[Reference], '') + ''',' +
'''' + ISNULL(IDC.[Description], '') + ''',' +
'''' + ISNULL(IDC.[Type], '') + ''',' +
ISNULL(IDC.[Value], '') + ',' +
ISNULL(IDC.[Interest], '') + ',' +
ISNULL(IDC.[Costs], '') + ',' +
'0,' +
'''' + CONVERT(VARCHAR(8), GETDATE(), 112) + ''',' +
'''AUTO'',' +
CONVERT(VARCHAR(10), @NEXTPREF) + ',' +
'0,' +
'0,' +
'0,' +
'0,' +
'-1,' +
'''' + ISNULL(IDC.[CourtFeeCode], '') + '''' +
'FROM [dbo].[matters] AS MAT
WHERE MAT.[Code] = ''' + @MATTERCODE_FULL + ''''
FROM [dbo].[matters] AS MAT
LEFT OUTER JOIN [dbo].[InitialDebtCharges] AS IDC
ON IDC.[id] = @I
WHERE MAT.[Code] = @MATTERCODE_FULL
EXEC sp_executesql @SQL
DECLARE @COST_VALUE DECIMAL(19, 2)
DECLARE @PAYMENT_DESC VARCHAR(MAX)
SELECT TOP 1
@COST_VALUE = DCL.[COSTS],
@PAYMENT_DESC = DCL.[DESCRIPTION]
FROM [dbo].[DebtCostingLedger] AS DCL
WHERE DCL.[POSTINGREF] = @NEXTPREF
-- Try to create action for this payment
EXEC [dbo].[KAAS_RevenueInsertintoDiary] @MATTERCODE_FULL, @COST_VALUE, 0, 0, 'Cost', @PAYMENT_DESC, 0, @LoginCode
SELECT @I = ISNULL(MIN(ISNULL(IDC.[id], 0)), 0)
FROM [dbo].[InitialDebtCharges] AS IDC
WHERE IDC.[id] > @I
END
UPDATE MAT
SET MAT.[RecoverableCosts] = ISNULL(DCL.[COSTS], 0)
FROM [dbo].[matters] AS MAT
LEFT OUTER JOIN (SELECT DCL.[MATTERCODE],
SUM(ISNULL(DCL.[COSTS], 0)) AS [COSTS]
FROM [dbo].[DebtCostingLedger] AS DCL
GROUP BY DCL.[MATTERCODE]) AS DCL
ON MAT.[Code] = DCL.[MATTERCODE]
WHERE MAT.[Code] = @ClientCode + '/' + @MatterCode
END
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_WizUDFActions',N'P')IS NOT NULL
DROP PROCEDURE KAAS_WizUDFActions
GO
CREATE PROCEDURE KAAS_WizUDFActions
(
@CasePlan VARCHAR(5)
)
AS
/*******************************************************************************************************
* This procedure is used to FETCH udf actions for wizard. *
* *
* Stored Procedure Name : [dbo].[KAAS_WizUDFActions] *
* Copied from : [dbo].[ky_NETWizUDFActions] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
* 2019-07-25 Vinodhan K [FIELDTYPE], [Length] and [Format] parameters have been added *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Value as VARCHAR(255)
SET @Value = ''
SELECT
RTRIM(ISNULL(u.UDFCategory,'')) AS UDFCategory,
RTRIM(B.PROMPT) AS PROMPT,
RTRIM(B.FILEPREFIX) AS FILEPREFIX,
RTRIM(B.FIELDNAME) AS FIELDNAME,
RTRIM(B.[TYPE]) AS FIELDTYPE,
B.[LENGTH] AS [Length],
B.[FORMAT] AS [Format],
B.UDFCategory AS Category,
@Value AS Value,
A.UDSEQ AS SEQ,
A.UDSEQ AS RunningSeq,
RTRIM(UDFILE) AS UDFILE,
RTRIM(UDUVCODE) AS UDUVCODE,
RTRIM(UDWKCODE) AS UDWKCODE
FROM
Udftemplatesworktypes A
LEFT JOIN
Systemuserdefinedfields B ON A.UDFILE = B.FILEPREFIX AND A.UDUVCODE = B.FIELDNAME
LEFT JOIN
UDFCategory u on u.ID = B.UDFCategory
WHERE
RTRIM(UDWKCODE)=@CasePlan
ORDER BY
UDSEQ
SET NOCOUNT OFF
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_XMLAddTimeDayBook'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_XMLAddTimeDayBook]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_XMLAddTimeDayBook]
(@XML NVARCHAR(MAX))
AS
BEGIN
/*******************************************************************************************************
* Used to add new Timedaybook entry *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLAddTimeDayBook] *
* Copied from : [dbo].[ky_NETSPXMLAddTimeDayBook] *
* *
* Modification History : *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
DECLARE @iSL INT
DECLARE @Matter VARCHAR(20)
DECLARE @FeeEarner VARCHAR(10)
DECLARE @Minutes INT
DECLARE @StopwatchStatus INT
DECLARE @RecordID INT
DECLARE @UpdateByPass BIT
DECLARE @DeleteByPass BIT
DECLARE @AddNew BIT
DECLARE @Task VARCHAR(6)
DECLARE @Comment VARCHAR(1000)
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @Matter = [SRC].[Matter],
@FeeEarner = [SRC].[FeeEarner],
@Minutes = [SRC].[Minutes],
@StopwatchStatus = [SRC].[StopwatchStatus],
@RecordID = [SRC].[RecordID],
@UpdateByPass = [SRC].[UpdateByPass],
@DeleteByPass = [SRC].[DeleteByPass],
@AddNew = [SRC].[AddNew],
@Task = [SRC].[Task],
@Comment = [SRC].[Comment]
FROM OPENXML(@iSL, N'tdb')
WITH ([Matter] VARCHAR(20) '@matter',
[FeeEarner] VARCHAR(10) '@feeearner',
[Minutes] INT '@minutes',
[StopwatchStatus] INT '@stopwatchstatus',
[RecordID] INT '@recordid',
[UpdateByPass] INT '@updatebypass',
[DeleteByPass] INT '@deletebypass',
[AddNew] INT '@addnew',
[Task] VARCHAR(6) '@task',
[Comment] VARCHAR(1000) '@comment') [SRC]
EXEC sp_xml_removedocument @iSL
--Original defaults
SET @Minutes = ISNULL(@Minutes, 0)
SET @StopwatchStatus = ISNULL(@StopwatchStatus, 1)
SET @RecordID = ISNULL(@RecordID, 0)
SET @UpdateByPass = ISNULL(@UpdateByPass, 0)
SET @DeleteByPass = ISNULL(@DeleteByPass, 0)
SET @AddNew = ISNULL(@AddNew, 0)
IF NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[TasksCodes] [TC] WITH (nolock)
WHERE [TC].[CODE] = @Task)
BEGIN
SET @Task = ''
-- If "AutoDefaultTaskTime" is enabled in the settings then use the handler's default task
IF (SELECT TOP 1 ISNULL(CFG.[KeyValue], 'False')
FROM [dbo].[Settings] AS [CFG] WITH (nolock)
WHERE [CFG].[KeyName] = 'AutoDefaultTaskTime') = 'True'
BEGIN
SELECT @Task = ISNULL([HAN].[DEFAULTTASK], ''),
@Comment = ISNULL([TSK].[DESC], '')
FROM [dbo].[Handlers] AS [HAN] WITH (nolock)
INNER JOIN [dbo].[TasksCodes] AS [TSK] WITH (nolock)
ON [HAN].[DEFAULTTASK] = [TSK].[CODE]
WHERE [HAN].[Code] = @FeeEarner
END
END
ELSE
BEGIN
SELECT @TASK = RTRIM([TC].[CODE])
FROM [dbo].[TasksCodes] [TC] WITH (nolock)
WHERE [TC].[CODE] = @TASK
END
IF @UpdateByPass = 0
BEGIN
UPDATE [TDB]
SET [TDB].[StopwatchStatus] = 1
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[FeeEarn] = @FeeEarner
END
IF @DeleteByPass = 0
BEGIN --IF @DeleteByPass = 0
IF(@Minutes=0)
BEGIN
DELETE [TDB]
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[FeeEarn] = @FeeEarner
AND ISNULL([TDB].[Time], 0) = 0
AND [TDB].[Matter] <> ''
AND [TDB].[TimeOrCharge] = 'T'
AND RTRIM(ISNULL([TDB].[Task], '')) = '' --KEYD-5221
AND RTRIM(ISNULL([TDB].[Comment], '')) = '' --KEYD-5221
--AND [TDB].[Matter] <> @Matter
END
ELSE
BEGIN
DELETE [TDB]
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[FeeEarn] = @FeeEarner
AND ISNULL([TDB].[Time], 0) = 0
AND [TDB].[Matter] NOT IN ('' , @Matter)
AND [TDB].[TimeOrCharge] = 'T'
AND RTRIM(ISNULL([TDB].[Task], '')) = '' --KEYD-5221
AND RTRIM(ISNULL([TDB].[Comment], '')) = '' --KEYD-5221
END
END --IF @DeleteByPass = 0
IF @RecordID <> 0
BEGIN -- IF @RecordID <> 0
UPDATE [TDB]
SET [TDB].[StopwatchStatus] = @StopwatchStatus,
[TDB].[Time] = @Minutes,
[TDB].[Charge] = (ISNULL([TDB].[Rate], 0) * (@Minutes / 60.0)),
[TDB].[Charged] = (ISNULL([TDB].[Rate], 0) * (@Minutes / 60.0)),
[TDB].[Post] = 'Y'
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[RecordID] = @RecordID
SELECT TOP 1
[TDB].[RecordID],
ISNULL([TDB].[Time], 0) AS [Minutes]
FROM [dbo].[TimeDayBook] [TDB] WITH (nolock)
WHERE [TDB].[RecordID] = @RecordID
END --IF @RecordID <> 0
ELSE -- ELSE CONDITION: IF @RecordID <> 0
BEGIN -- ELSE CONDITION: IF @RecordID <> 0
-- 2018-05-25 START - Try to prevent deadlocks using a CASE WHEN construct that should
-- avoid table access on the first two conditions rather than the
-- original IF with OR statements that still evaluates all 3 conditions
IF CASE WHEN @Matter = ''
THEN 1
WHEN @AddNew = 1
THEN 1
WHEN NOT EXISTS
(SELECT TOP 1 1
FROM [dbo].[TimeDayBook] [TDB] WITH (nolock)
WHERE [TDB].[FeeEarn] = @FeeEarner
AND RTRIM([TDB].[Matter]) = @Matter
--AND [TDB].[TIMEORCHARGE]='T' KEYD-5124 - "C" type timers used to not be re-startable. But there is no need for that.
AND [TDB].[Post] = 'Y')
THEN 1
ELSE 0 END = 1 --Insert conditions
-- 2018-05-25 END
BEGIN --Insert conditions
DECLARE @PERIOD AS INT
DECLARE @YEAR AS INT
DECLARE @IsSAM4 bit
SET @IsSAM4 = [dbo].[ISSAM4]()
IF @IsSAM4 = 0
BEGIN
SELECT @PERIOD = [CL].[CURPER],
@YEAR = [CL].[YEAR]
FROM [dbo].[control] [CL] WITH (nolock)
END
ELSE
BEGIN
SELECT @PERIOD = [CL].[numvalue]
FROM [dbo].[CtrlNum] [CL] WITH (nolock)
WHERE [CL].[code] = 'CurPeriod'
SELECT @YEAR = [CL].[numvalue]
FROM [dbo].[CtrlNum] [CL] WITH (nolock)
WHERE [CL].[code] = 'CurYear'
END
SET @PERIOD = ISNULL(@PERIOD, 0)
SET @YEAR = ISNULL(@YEAR, 0)
DECLARE @IsChargeable VARCHAR(1)
SELECT @IsChargeable = [HAN].[ISChargeable]
FROM [dbo].[Handlers] [HAN] WITH (nolock)
WHERE [HAN].[CODE] = @FeeEarner
SET @IsChargeable = ISNULL(@IsChargeable, 'C')
DECLARE @MatterBillingMethod CHAR(1)
DECLARE @ClientBillingMethod CHAR(1)
DECLARE @DefaultBillingMethod CHAR(1)
SELECT @MatterBillingMethod = RTRIM(ISNULL([MAT].[BillingMethod], '')),
@ClientBillingMethod = RTRIM(ISNULL([CON].[BillingMethod], ''))
FROM [dbo].[Matters] [MAT] WITH (nolock)
LEFT OUTER JOIN [dbo].[Contacts] [CON] WITH (nolock)
ON [CON].[Code] = [MAT].[ClientCode]
WHERE [MAT].[Code] = @Matter
SET @MatterBillingMethod = ISNULL(@MatterBillingMethod, '')
SET @ClientBillingMethod = ISNULL(@ClientBillingMethod, '')
IF(@MatterBillingMethod <> '')
BEGIN
SET @DefaultBillingMethod = @MatterBillingMethod
END
ELSE IF(@ClientBillingMethod <> '')
BEGIN
SET @DefaultBillingMethod = @ClientBillingMethod
END
ELSE
BEGIN
SET @DefaultBillingMethod = 'T'
END
-- John 2018-03-16 Only allow VALID methods
If ISNULL(@DefaultBillingMethod, '') NOT IN ('T', 'C')
BEGIN
SET @DefaultBillingMethod = 'T'
END
INSERT
INTO [dbo].[TimeDayBook]
([Matter],
[FeeEarn],
[Date],
[Time],
[Task],
[TimeOrCharge],
[Rec_Irr],
[Post],
[StopwatchStatus],
[Period],
[Year],
[MatterLevel],
[Comment])
SELECT NW.[MATTER],
NW.[FeeEarn],
NW.[Date],
NW.[Time],
NW.[Task],
NW.[TimeOrCharge],
@IsChargeable,
NW.[Post],
NW.[StopwatchStatus],
NW.[Period],
NW.[Year],
MAT.[ChargeLevel],
NW.[Comment]
FROM (SELECT @Matter AS [MATTER],
@FeeEarner AS [FeeEarn],
CONVERT(VARCHAR(12), GETDATE(), 112) AS [Date],
@Minutes AS [Time],
@Task AS [Task],
@DefaultBillingMethod AS [TimeOrCharge],
'Y' AS [Post],
@StopwatchStatus AS [StopwatchStatus],
@PERIOD AS [Period],
@YEAR As [Year],
@Comment AS [Comment]) NW
LEFT OUTER JOIN [dbo].[matters] [MAT] WITH (nolock)
ON [MAT].[Code] = NW.[MATTER]
SELECT SCOPE_IDENTITY() AS [RecordID],
0 AS [Minutes]
END --Insert conditions
ELSE --(ELSE CONDITION) Insert conditions
BEGIN --(ELSE CONDITION) Insert conditions
SET @RecordID = NULL
SELECT TOP 1
@RecordID = [TDB2].[RecordID]
FROM [dbo].[TimeDayBook] [TDB2] WITH (nolock)
WHERE [TDB2].[FEEEARN] = @FeeEarner
AND [TDB2].[MATTER] = @Matter
--AND [TDB2].[TIMEORCHARGE] = 'T' KEYD-5124
ORDER BY [TDB2].[RecordID] DESC
IF @RecordID IS NOT NULL
BEGIN
UPDATE [TDB]
SET [TDB].[StopwatchStatus] = @StopwatchStatus,
[TDB].[Post] = 'Y'
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[RecordID] = @RecordID
SELECT [TDB].[RecordID],
ISNULL([TDB].[Time], 0) AS [Minutes]
FROM [dbo].[TimeDayBook] [TDB] WITH (nolock)
WHERE [TDB].[RecordID] = @RecordID
END
END --(ELSE CONDITION) Insert conditions
END -- ELSE CONDITION: IF @RecordID <> 0
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_XMLCaseAssociateInsertProfessionalDetails'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_XMLCaseAssociateInsertProfessionalDetails]
END
GO
CREATE PROCEDURE
[KAAS_XMLCaseAssociateInsertProfessionalDetails]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*************************************************************************************************************
* *
* Stored Procedure Name : KAAS_XMLCaseAssociateInsertProfessionalDetails *
* Copied From : [dbo].[ky_NETXMLCaseAssociateInsertProfessionalDetails] *
* *
* Description:This procedure is used To insert "Add Profession Details" in CaseAssociatesNames *
* *
* Compatibility information - PLEASE update older versions if necessary to ensure the compatible software *
* remains fully functional *
* ***************************************************************************************************** *
* * * *
* * Supersedes: [dbo].[ky_NETCaseAssociateInsertProfessionalDetails] * *
* * First compatible version: 5.6.4.1 * *
* * Last compatible software version: - * *
* * Superseded by: - * *
* * * *
* ***************************************************************************************************** *
* *
* Modification History *
* 2019-01-24 Pino Carafa Created *
* *
* ORIGINAL code for [dbo].[ky_NETCaseAssociateInsertProfessionalDetails] *
* 2015-01-29 Praveen Yadav.P Included bank details insert/update *
* 2015-02-10 Arun.V Change NVARCHAR to VARCHAR *
* 2015-09-04 Sridharan KEYD-2640: When releasing an action to another user Keyhouse closes out. *
* 2016-03-09 Sridharan KEYD-3352: When you add an undertakings with “Add as Comment to Ledger” *
* check box unticked, when you open that undertakings the check box *
* is ticked automatically. *
* 2016-03-11 Sridharan KEYD-3132: Option to retire case associates *
* 2016-03-11 Sridharan KEYD-3294: Adding a name to a deceased but I think it only allows *
* 15 characters – can this be rectified in order that I can put “aka” name *
* 2016-03-30 Suriya KEYD-3477: URGENT PPS number not update when you add a case associate *
* for the first time *
* 2016-04-19 Suriya M KEYD-3487: When you retire a Case associate, all other types are displayed *
* as retired in the Client/Case associate. *
* 2016-10-31 Sridharan KEYD-4197: EFT Bank Details Validation on Contact *
* and Case Associate screens *
* 2018-03-22 Pino Carafa Handle standard size 500 character address fields *
* 2018-05-15 Pino Carafa Don't crash if same associate type is used again, just don't add *
* a new row to caseassoicatestypes *
* 2019-01-25 Pino Carafa KEYD-5503 - In preparation of adding EFTEmailAddress, re-created procedure *
* with XML parameter *
* 2019-01-25 Pino Carafa KEYD-5503 - Added EFTEmailAddress *
* *
* 2019-06-03 Vinodhan K Created KAAS_CaseAssociateInsertProfessionalDetails *
*************************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(6)
DECLARE @Fullname VARCHAR(100)
DECLARE @Salutation VARCHAR(30)
DECLARE @JobTitle VARCHAR(50)
DECLARE @Address VARCHAR(500)
DECLARE @Area VARCHAR(15)
DECLARE @Company VARCHAR(80)
DECLARE @DXRel VARCHAR(30)
DECLARE @Email VARCHAR(100)
DECLARE @FaxNo VARCHAR(20)
DECLARE @Home VARCHAR(20)
DECLARE @MobileNo VARCHAR(20)
DECLARE @Note VARCHAR(MAX)
DECLARE @Occupation VARCHAR(100)
DECLARE @PhoneNo VARCHAR(20)
DECLARE @PPSNo VARCHAR(20)
DECLARE @Town VARCHAR(20)
DECLARE @WebAddress VARCHAR(150)
DECLARE @LegalName VARCHAR(150)
DECLARE @LegalAddress VARCHAR(500)
DECLARE @Tax VARCHAR(1)
DECLARE @Deceased VARCHAR(1)
DECLARE @DateOFBirth DATETIME
DECLARE @DateSeparated DATETIME
DECLARE @DeceasedDate DATETIME
DECLARE @MarriageDate DATETIME
DECLARE @Type VARCHAR(12)
DECLARE @Gender VARCHAR(20)
DECLARE @MaritalStatus VARCHAR(20)
DECLARE @Edit INT
DECLARE @FirstName VARCHAR(50)
DECLARE @SurName VARCHAR(50)
DECLARE @County VARCHAR(100)
DECLARE @PostalCode VARCHAR(100)
DECLARE @BankName VARCHAR(60)
DECLARE @BankAddress VARCHAR(500)
DECLARE @BankSortCode VARCHAR(20)
DECLARE @BankAccNo VARCHAR(20)
DECLARE @IBan VARCHAR(34)
DECLARE @EFTEmailAddress VARCHAR(150)
DECLARE @Bic VARCHAR(20)
DECLARE @Retired VARCHAR(1)
DECLARE @Banktype VARCHAR(1)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT
@Code = [CAN].[Code],
@Fullname = [CAN].[Fullname],
@Salutation = [CAN].[Salutation],
@JobTitle = [CAN].[JobTitle],
@Address = [CAN].[Address],
@Area = [CAN].[Area],
@Company = [CAN].[Company],
@DXRel = [CAN].[DXRel],
@Email = [CAN].[Email],
@FaxNo = [CAN].[FaxNo],
@Home = [CAN].[Home],
@MobileNo = [CAN].[MobileNo],
@Note = [CAN].[Note],
@Occupation = [CAN].[Occupation],
@PhoneNo = [CAN].[PhoneNo],
@PPSNo = [CAN].[PPSNo],
@Town = [CAN].[Town],
@WebAddress = [CAN].[WebAddress],
@LegalName = [CAN].[LegalName],
@LegalAddress = [CAN].[LegalAddress],
@Tax = [CAN].[Tax],
@Deceased = [CAN].[Deceased],
@DateOFBirth = [CAN].[DateOFBirth],
@DateSeparated = [CAN].[DateSeparated],
@DeceasedDate = [CAN].[DeceasedDate],
@MarriageDate = [CAN].[MarriageDate],
@Type = [CAN].[Type],
@Gender = [CAN].[Gender],
@MaritalStatus = [CAN].[MaritalStatus],
@Edit = [CAN].[Edit],
@FirstName = [CAN].[FirstName],
@SurName = [CAN].[SurName],
@County = [CAN].[County],
@PostalCode = [CAN].[PostalCode],
@BankName = [CAN].[BankName],
@BankAddress = [CAN].[BankAddress],
@BankSortCode = [CAN].[BankSortCode],
@BankAccNo = [CAN].[BankAccNo],
@IBan = [CAN].[IBan],
@Bic = [CAN].[Bic],
@EFTEmailAddress = [CAN].[EFTEmailAddress],
@Retired = [CAN].[Retired],
@Banktype = [CAN].[Banktype]
FROM OPENXML(@iSL, N'CAN')
WITH ([Code] VARCHAR(6) 'Code',
[Fullname] VARCHAR(100) 'Fullname',
[Salutation] VARCHAR(30) 'Salutation',
[JobTitle] VARCHAR(50) 'JobTitle',
[Address] VARCHAR(500) 'Address',
[Area] VARCHAR(15) 'Area',
[Company] VARCHAR(80) 'Company',
[DXRel] VARCHAR(30) 'DXRel',
[Email] VARCHAR(100) 'Email',
[FaxNo] VARCHAR(20) 'FaxNo',
[Home] VARCHAR(20) 'Home',
[MobileNo] VARCHAR(20) 'MobileNo',
[Note] VARCHAR(MAX) 'Note',
[Occupation] VARCHAR(100) 'Occupation',
[PhoneNo] VARCHAR(20) 'PhoneNo',
[PPSNo] VARCHAR(20) 'PPSNo',
[Town] VARCHAR(20) 'Town',
[WebAddress] VARCHAR(150) 'WebAddress',
[LegalName] VARCHAR(150) 'LegalName',
[LegalAddress] VARCHAR(500) 'LegalAddress',
[Tax] VARCHAR(1) 'Tax',
[Deceased] VARCHAR(1) 'Deceased',
[DateOFBirth] DATETIME 'DateOFBirth',
[DateSeparated] DATETIME 'DateSeparated',
[DeceasedDate] DATETIME 'DeceasedDate',
[MarriageDate] DATETIME 'MarriageDate',
[Type] VARCHAR(12) 'Type',
[Gender] VARCHAR(20) 'Gender',
[MaritalStatus] VARCHAR(20) 'MaritalStatus',
[Edit] INT 'Edit',
[FirstName] VARCHAR(50) 'FirstName',
[SurName] VARCHAR(50) 'SurName',
[County] VARCHAR(100) 'County',
[PostalCode] VARCHAR(100) 'PostalCode',
[BankName] VARCHAR(60) 'BankName',
[BankAddress] VARCHAR(500) 'BankAddress',
[BankSortCode] VARCHAR(20) 'BankSortCode',
[BankAccNo] VARCHAR(20) 'BankAccNo',
[IBan] VARCHAR(34) 'IBan',
[Bic] VARCHAR(20) 'Bic',
[EFTEmailAddress] VARCHAR(150) 'EFTEmailAddress',
[Retired] VARCHAR(1) 'Retired',
[Banktype] VARCHAR(1) 'Banktype') [CAN]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
IF(@Edit = 0)
BEGIN
IF (SELECT TOP 1 1
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code) IS NULL
BEGIN
INSERT
INTO [dbo].[CaseAssociatesNames]
([CODE],
[TYPE],
[NAME],
[SALUTATION],
[TITLE],
[COMPANY],
[ADDRESS],
[PHONENO],
[FAXNO],
[HOME],
[MOBILENO],
[EMAIL],
[WEBADDRESS],
[SSNUMBER],
[LEGALNAME],
[LEGALADDRESS],
[DXREF],
[DOB],
[MARTIALSTATUS],
[MARRIAGEDATE],
[DATESEPARATED],
[DECEASEDDATE],
[OCCUPATION],
[NOTES],
[AREA],
[TOWN],
[GENDER],
[TAX],
[DECEASED],
[FORENAME],
[SURNAME],
[County],
[PostalCode],
[BankName],
[BankAddress],
[BankSortCode],
[BankAccNo],
[IBan],
[Bic],
[EFTEmailAddress],
[Retired],
[BankType])
VALUES(@Code,
ISNULL(@Type, ''),
@Fullname,
@Salutation,
@JobTitle,
@Company,
@Address,
@PhoneNo,
@FaxNo,
@Home,
@MobileNo,
@Email,
@WebAddress,
@PPSNo,
@LegalName,
@LegalAddress,
@DXRel,
CASE @DateOFBirth
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DateOFBirth, 112) END,
ISNULL(@MaritalStatus, ''),
CASE @MarriageDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @MarriageDate, 112) END,
CASE @DateSeparated
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DateSeparated, 112) END,
CASE @DeceasedDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DeceasedDate, 112) END,
@Occupation,
@Note,
@Area,
@Town,
ISNULL(@Gender, ''),
@Tax,
@Deceased,
@FirstName,
@SurName,
@County,
@PostalCode,
@BankName,
@BankAddress,
@BankSortCode,
@BankAccNo,
@IBan,
@Bic,
@EFTEmailAddress,
@Retired,
@Banktype)
INSERT
INTO [dbo].[CaseAssoicatesTypes]
([NAMECODE],
[TYPECODE],
[SEARCHCODE],
[Retired])
SELECT [NEW].[NAMECODE],
[NEW].[TYPECODE],
[NEW].[SEARCHCODE],
[NEW].[RETIRED]
FROM (SELECT @Code AS [NAMECODE],
@Type AS [TYPECODE],
'' AS [SEARCHCODE],
@Retired AS [RETIRED]) [NEW]
LEFT OUTER JOIN [dbo].[CaseAssoicatesTypes] [CAT]
ON [CAT].[NAMECODE] = [NEW].[NAMECODE]
AND [CAT].[TYPECODE] = [NEW].[TYPECODE]
WHERE [CAT].[NAMECODE] IS NULL
SET @Result = 1
END
ELSE
BEGIN
SET @Result = 0
END
END
ELSE
BEGIN
UPDATE [CAT]
SET [CAT].[Retired] = @Retired
FROM [dbo].[CaseAssoicatesTypes] [CAT]
WHERE [CAT].[NAMECODE] = @Code --AND TYPECODE = @Type
UPDATE [CC]
SET [CC].[Retired] = @Retired
FROM [dbo].[CaseContacts] [CC]
WHERE [CC].[NAMECODE] = @Code
UPDATE [CAN]
SET [CAN].[CODE] = @Code,
[CAN].[TYPE] = ISNULL(@Type,''),
[CAN].[NAME] = @Fullname,
[CAN].[SALUTATION] = @Salutation,
[CAN].[TITLE] = @JobTitle,
[CAN].[COMPANY] = @Company,
[CAN].[ADDRESS] = @Address,
[CAN].[PHONENO] = @PhoneNo,
[CAN].[FAXNO] = @FaxNo,
[CAN].[HOME] = @Home,
[CAN].[MOBILENO] = @MobileNo,
[CAN].[EMAIL] = @Email,
[CAN].[WEBADDRESS] = @WebAddress,
[CAN].[SSNUMBER] = @PPSNo,
[CAN].[LEGALNAME] = @LegalName,
[CAN].[LEGALADDRESS] = @LegalAddress,
[CAN].[DXREF] = @DXRel,
[CAN].[DOB] = CASE @DateOFBirth
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DateOFBirth, 112) END,
[CAN].[MARTIALSTATUS] = ISNULL(@MaritalStatus, ''),
[CAN].[MARRIAGEDATE] = CASE @MarriageDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @MarriageDate, 112) END,
[CAN].[DATESEPARATED] = CASE @DateSeparated
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DateSeparated, 112) END,
[CAN].[DECEASEDDATE] = CASE @DeceasedDate
WHEN NULL
THEN ''
ELSE CONVERT(DATETIME, @DeceasedDate, 112) END,
[CAN].[OCCUPATION] = @Occupation,
[CAN].[NOTES] = @Note,
[CAN].[AREA] = @Area,
[CAN].[TOWN] = @Town,
[CAN].[TAX] = @Tax,
[CAN].[DECEASED] = @Deceased,
[CAN].[GENDER] = ISNULL(@Gender, ''),
[CAN].[FORENAME] = @FirstName,
[CAN].[SURNAME] = @SurName,
[CAN].[County] = @County,
[CAN].[PostalCode] = @PostalCode,
[CAN].[BankName] = @BankName,
[CAN].[BankAddress] = @BankAddress,
[CAN].[BankSortCode] = @BankSortCode,
[CAN].[BankAccNo] = @BankAccNo,
[CAN].[IBAN] = @IBan,
[CAN].[Bic] = @Bic,
[CAN].[EFTEmailAddress] = @EFTEmailAddress,
[CAN].[Retired] = @Retired,
[CAN].[BankType] = @Banktype
FROM [dbo].[CaseAssociatesNames] [CAN]
WHERE [CAN].[CODE] = @Code
SET @Result = 2
END
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_XMLDiaryDelegation',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLDiaryDelegation]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLDiaryDelegation]
(
@DEL VARCHAR(MAX)
)
AS
/*******************************************************************************************************
* Performs a diary delegation based on the XML string passed in. *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLDiaryDelegation] *
* Copied from : [dbo].[ky_NETSPXMLDiaryDelegation] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @Return INT
EXEC @Return = [dbo].[KAAS_ScalarXMLDiaryDelegation] @DEL
SELECT ISNULL(@Return, -4)
END
GO
IF EXISTS
(SELECT TOP 1 1
FROM SYS.[objects] SO
WHERE SO.[name] = N'KAAS_XMLFlagDayBookEntriesForAdHocPosting'
AND SO.[type] = 'P')
BEGIN
DROP PROCEDURE [dbo].[KAAS_XMLFlagDayBookEntriesForAdHocPosting]
END
GO
CREATE PROCEDURE
[dbo].[KAAS_XMLFlagDayBookEntriesForAdHocPosting]
(@XML NVARCHAR(MAX))
AS
/*******************************************************************************************************
* Flags entries for Ad Hoc posting *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLFlagDayBookEntriesForAdHocPosting] *
* Copied from : [dbo].[ky_NETXMLFlagDayBookEntriesForAdHocPosting] *
* *
* Modification History : *
* 2019-04-12 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
UPDATE [TDB]
SET [TDB].[AdHocPosting] = 1
FROM OPENXML(@iSL, N'AdHocPostDayBook/DayBookItem')
WITH ([RecordID] VARCHAR(10) '@id') [SRC]
INNER JOIN [dbo].[TimeDayBook] [TDB]
ON [TDB].[RecordID] = [SRC].[RecordID]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
END
GO
IF OBJECT_ID(N'KAAS_XMLInsertCCDAssociate',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDAssociate]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDAssociate]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the contact information for Notes. *
* IF contact code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDAssociate] *
* Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] *
* *
* Modification History: *
* 2019-08-21 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(20)
DECLARE @Name VARCHAR(256)
DECLARE @Address VARCHAR(500)
DECLARE @Salut VARCHAR(256)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT
@Code = [CON].[Code],
@Name = [CON].[Name],
@Address = [CON].[Address],
@Salut = [CON].[Salut]
FROM OPENXML(@iSL, N'CON')
WITH ([Code] VARCHAR(20) 'Code',
[Name] VARCHAR(256) 'Name',
[Address] VARCHAR(500) 'Address',
[Salut] VARCHAR(256) 'Salut') [CON]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
UPDATE [MAT]
SET [MAT].[ClientName] = @Name,
[MAT].[ClientAddress] = @Address,
[MAT].[ClientSalutation] = @Salut
FROM [dbo].[matters] [MAT]
WHERE [MAT].[Code] = @Code
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_XMLInsertCCDBank',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDBank]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDBank]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the contact information for Bank. *
* IF contact code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDBank] *
* Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(10)
DECLARE @BankName VARCHAR(60)
DECLARE @BankAddress VARCHAR(500)
DECLARE @BankSortCode VARCHAR(20)
DECLARE @BankAccNo VARCHAR(20)
DECLARE @IBan VARCHAR(34)
DECLARE @Bic VARCHAR(20)
DECLARE @EFTEmailAddress VARCHAR(150)
DECLARE @BankType VARCHAR(1)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @Code = [CON].[Code],
@BankName = [CON].[BankName],
@BankAddress = [CON].[BankAddress],
@BankSortCode = [CON].[BankSortCode],
@BankAccNo = [CON].[BankAccNo],
@IBan = [CON].[IBan],
@Bic = [CON].[Bic],
@EFTEmailAddress = [CON].[EFTEmailAddress],
@BankType = [CON].[BankType]
FROM OPENXML(@iSL, N'CON')
WITH ([Code] VARCHAR(10) 'Code',
[BankName] VARCHAR(60) 'BankName',
[BankAddress] VARCHAR(500) 'BankAddress',
[BankSortCode] VARCHAR(20) 'BankSortCode',
[BankAccNo] VARCHAR(20) 'BankAccNo',
[IBan] VARCHAR(34) 'IBan',
[Bic] VARCHAR(20) 'Bic',
[EFTEmailAddress] VARCHAR(150) 'EFTEmailAddress',
[BankType] VARCHAR(1) 'BankType') [CON]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
UPDATE [CON]
SET [CON].[Code] = @Code,
[CON].[BankName] = @BankName,
[CON].[BankAddress] = @BankAddress,
[CON].[BankSortCode] = @BankSortCode,
[CON].[BankAccNo] = @BankAccNo,
[CON].[IBan] = @IBan,
[CON].[Bic] = @Bic,
[CON].[EFTEmailAddress] = @EFTEmailAddress,
[CON].[BankType] = @BankType
FROM [dbo].[contacts] [CON]
WHERE [CON].[Code] = @Code
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_XMLInsertCCDBilling',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDBilling]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDBilling]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the contact information for Billing. *
* IF contact code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDBilling] *
* Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(10)
DECLARE @ChargeArrangement VARCHAR(5)
DECLARE @BillingMethod CHAR(1)
DECLARE @BillingType CHAR(1)
DECLARE @ChargeOutRateInd BIT
DECLARE @ChargeRateLevel TINYINT
DECLARE @CurrentUser VARCHAR(10)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @Code = [CON].[Code],
@ChargeArrangement = [CON].[ChargeArrangement],
@BillingMethod = [CON].[BillingMethod],
@BillingType = [CON].[BillingType],
@ChargeOutRateInd = [CON].[ChargeOutRateInd],
@ChargeRateLevel = [CON].[ChargeRateLevel]
FROM OPENXML(@iSL, N'CON')
WITH ([Code] VARCHAR(10) 'Code',
[ChargeArrangement] VARCHAR(5) 'ChargeArrangement',
[BillingMethod] CHAR(1) 'BillingMethod',
[BillingType] CHAR(1) 'BillingType',
[ChargeOutRateInd] BIT 'ChargeOutRateInd',
[ChargeRateLevel] TINYINT 'ChargeRateLevel') [CON]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
UPDATE [CON]
SET [CON].[Code] = @Code,
[CON].[ChargeArrangement] = @ChargeArrangement,
[CON].[BillingMethod] = @BillingMethod,
[CON].[ChargeOutRateInd] = CASE WHEN ISNULL(@ChargeOutRateInd, 0) = 1
THEN 'Y'
ELSE 'N' END,
[CON].[CompFrequency] = @BillingType,
[CON].[ChargeLevel] = @ChargeRateLevel
FROM [dbo].[contacts] [CON]
WHERE [CON].[Code] = @Code
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_XMLInsertCCDCorporate',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDCorporate]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDCorporate]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the contact information for Corporate. *
* IF contact code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDCorporate] *
* Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(10)
DECLARE @OtherAddress VARCHAR(500)
DECLARE @IsDeceased BIT
DECLARE @DOD DATETIME
DECLARE @LastAr DATETIME
DECLARE @CRONumber VARCHAR(20)
DECLARE @CompanyWebSite VARCHAR(120)
DECLARE @Introducer VARCHAR(30)
DECLARE @IntroFE VARCHAR(10)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @Code = [CON].[Code],
@Introducer = [CON].[Introducer],
@IntroFE = [CON].[IntroFE],
@IsDeceased = [CON].[IsDeceased],
@DOD = [CON].[DOD],
@LastAr = [CON].[LastAr],
@CRONumber = [CON].[CRONumber],
@CompanyWebSite = [CON].[CompanyWebSite],
@OtherAddress = [CON].[OtherAddress]
FROM OPENXML(@iSL, N'CON')
WITH ([Code] VARCHAR(10) 'Code',
[OtherAddress] VARCHAR(500) 'OtherAddress',
[IsDeceased] BIT 'IsDeceased',
[DOD] DATETIME 'DOD',
[LastAr] DATETIME 'LastAr',
[CRONumber] VARCHAR(20) 'CRONumber',
[CompanyWebSite] VARCHAR(120) 'CompanyWebSite',
[Introducer] VARCHAR(30) 'Introducer',
[IntroFE] VARCHAR(10) 'IntroFE') [CON]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
UPDATE [CON]
SET [CON].[Code] = @Code,
[CON].[OtherAddress] = @OtherAddress,
[CON].[InActive] = CASE WHEN ISNULL(@IsDeceased, 0) = 1
THEN 'Y'
ELSE 'N' END,
[CON].[DateInActive] = @DOD,
[CON].[LastAR] = @LastAr,
[CON].[CRONumber] = @CRONumber,
[CON].[CompanyWebSite] = @CompanyWebSite,
[CON].[Introducer] = @Introducer,
[CON].[IntroFE] = @IntroFE
FROM [dbo].[contacts] [CON]
WHERE [CON].[Code] = @Code
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_XMLInsertCCDGeneral',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDGeneral]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDGeneral]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the contact information for General. *
* IF contact code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDGeneral] *
* Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
* 2019-06-08 Arun V Added two column Envelope and Name *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(10)
DECLARE @Salut VARCHAR(256)
DECLARE @MainContact VARCHAR(30)
DECLARE @Address VARCHAR(500)
DECLARE @Tel VARCHAR(20)
DECLARE @Fax VARCHAR(20)
DECLARE @Mobile VARCHAR(20)
DECLARE @Email VARCHAR(40)
DECLARE @SecondaryEmail VARCHAR(40)
DECLARE @OtherRef VARCHAR(20)
DECLARE @PPS VARCHAR(20)
DECLARE @FE VARCHAR(10)
DECLARE @SpousePPS VARCHAR(20)
DECLARE @ClientVATNo VARCHAR(20)
DECLARE @TaxType VARCHAR(5)
DECLARE @PostalCode VARCHAR(100)
DECLARE @County VARCHAR(100)
DECLARE @DXAddress VARCHAR(500)
DECLARE @Nation CHAR(20)
DECLARE @WarningMessage VARCHAR(500)
DECLARE @WebPassword VARCHAR(20)
DECLARE @RemoteAccess BIT
DECLARE @DisallowNewMatter BIT
DECLARE @Approved BIT
DECLARE @ApprovedDate DATETIME
DECLARE @Corporate BIT
DECLARE @IsStatement BIT
DECLARE @CurrentUser VARCHAR(10)
DECLARE @EnvelopeName VARCHAR(200)
DECLARE @Name VARCHAR(256)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT
@Code = [CON].[Code],
@Salut = [CON].[Salut],
@MainContact = [CON].[MainContact],
@Address = [CON].[Address],
@Tel = [CON].[Tel],
@Fax = [CON].[Fax],
@Mobile = [CON].[Mobile],
@Email = [CON].[Email],
@SecondaryEmail = [CON].[SecondaryEmail],
@OtherRef = [CON].[OtherRef],
@PPS = [CON].[PPS],
@FE = [CON].[FE ],
@SpousePPS = [CON].[SpousePPS],
@ClientVATNo = [CON].[ClientVATNo],
@TaxType = [CON].[TaxType],
@PostalCode = [CON].[PostalCode],
@County = [CON].[County],
@DXAddress = [CON].[DXAddress],
@Nation = [CON].[Nation],
@WarningMessage = [CON].[WarningMessage],
@WebPassword = [CON].[WebPassword],
@RemoteAccess = [CON].[RemoteAccess],
@DisallowNewMatter = [CON].[DisallowNewMatter],
@Approved = [CON].[Approved],
@ApprovedDate = [CON].[ApprovedDate],
@Corporate = [CON].[Corporate],
@IsStatement = [CON].[IsStatement],
@CurrentUser = [CON].[CurrentUser],
@EnvelopeName = [CON].[EnvelopeName],
@Name = [CON].[Name]
FROM OPENXML(@iSL, N'CON')
WITH ([Code] VARCHAR(10) 'Code',
[Salut] VARCHAR(256) 'Salut',
[MainContact] VARCHAR(30) 'MainContact',
[Address] VARCHAR(500) 'Address',
[Tel] VARCHAR(20) 'Tel',
[Fax] VARCHAR(20) 'Fax',
[Mobile] VARCHAR(20) 'Mobile',
[Email] VARCHAR(40) 'Email',
[SecondaryEmail] VARCHAR(40) 'SecondaryEmail',
[OtherRef] VARCHAR(20) 'OtherRef',
[PPS] VARCHAR(20) 'PPS',
[FE] VARCHAR(10) 'FE ',
[SpousePPS] VARCHAR(20) 'SpousePPS',
[ClientVATNo] VARCHAR(20) 'ClientVATNo',
[TaxType] VARCHAR(5) 'TaxType',
[PostalCode] VARCHAR(100) 'PostalCode',
[County] VARCHAR(100) 'County',
[DXAddress] VARCHAR(500) 'DXAddress',
[Nation] VARCHAR(20) 'Nation',
[WarningMessage] VARCHAR(500) 'WarningMessage',
[WebPassword] VARCHAR(20) 'WebPassword',
[RemoteAccess] BIT 'RemoteAccess',
[DisallowNewMatter] BIT 'DisallowNewMatter',
[Approved] BIT 'Approved',
[ApprovedDate] DATETIME 'ApprovedDate',
[Corporate] BIT 'Corporate',
[IsStatement] BIT 'IsStatement',
[CurrentUser] VARCHAR(10) 'CurrentUser',
[EnvelopeName] VARCHAR(200) 'EnvelopeName',
[Name] VARCHAR(256) 'Name') [CON]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
DECLARE @APPROVEDUSER VARCHAR(10)
IF(ISNULL(@APPROVEDDATE, 0) = 1 AND @Approved = 1)
BEGIN
SELECT @APPROVEDDATE = CASE WHEN ISNULL([CON].[Approved], 0) = 1 AND @Approved = 1 THEN [CON].[ApprovedDate] ELSE CASE WHEN @Approved = 1 THEN GETDATE() ELSE NULL END END,
@APPROVEDUSER = CASE WHEN ISNULL([CON].[Approved], 0) = 1 AND @Approved = 1 THEN [CON].[ApprovedByUSER] ELSE CASE WHEN @Approved = 1 THEN @CurrentUser ELSE '' END END
FROM [dbo].[Contacts] AS CON
WHERE [CON].[Code] = @Code
END
ELSE
BEGIN
SET @APPROVEDUSER = @CurrentUser
END
UPDATE [CON]
SET [CON].[Code] = @Code,
[CON].[Address] = @Address,
[CON].[Salut] = @Salut,
[CON].[Tel] = @Tel,
[CON].[Fax] = @Fax,
[CON].[Email] = @Email,
[CON].[FE] = @FE,
[CON].[Nation] = @Nation,
[CON].[Corporate] = CASE WHEN ISNULL(@Corporate, 0) = 1
THEN 'Y'
ELSE 'N' END,
[CON].[OtherRef] = @OtherRef,
[CON].[Approved] = @Approved,
[CON].[SpousePPS] = @SpousePPS,
[CON].[ClientVATNo] = @ClientVATNo,
[CON].[TaxType] = @TaxType,
[CON].[RSINo] = @PPS,
[CON].[Statements] = CASE WHEN ISNULL(@IsStatement, 0) = 1
THEN 'Y'
ELSE 'N' END,
[CON].[Principal] = @MainContact,
[CON].[PostalCode] = @PostalCode,
[CON].[County] = @County,
[CON].[WarningMsg] = @WarningMessage,
[CON].[DisallowNewMatter] = @DisallowNewMatter,
[CON].[DXAddress] = @DXAddress,
[CON].[SecondaryEmail] = @SecondaryEmail,
[CON].[Password] = @WebPassword,
[CON].[RemoteAccess] = CASE WHEN ISNULL(@RemoteAccess, 0) = 1
THEN 'Y'
ELSE 'N' END,
[CON].[ApprovedDate] = @APPROVEDDATE,
[CON].[ApprovedByUSER] = @APPROVEDUSER,
[CON].[EnvelopeName] = @EnvelopeName,
[CON].[Name] = @Name
FROM [dbo].[contacts] [CON]
WHERE [CON].[Code] = @Code
UPDATE [CLT]
SET [CLT].[CLCODE] = @Code,
[CLT].[CLFNR] = @FE,
[CLT].[CLADDR] = SUBSTRING(@Address,0,80),
[CLT].[CLTEL] = @Tel,
[CLT].[CLFAX] = @Fax,
[CLT].[CLMOBNO] = @Mobile,
[CLT].[CLEMAIL] = @Email
FROM [dbo].[client] [CLT]
WHERE [CLT].[CLCODE] = @Code
EXECUTE [KAAS_UpdateApproveMoneyLaundering] @Code, @Approved, @CurrentUser, @ApprovedDate
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_XMLInsertCCDLegal',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDLegal]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDLegal]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the contact information for Legal. *
* IF contact code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDLegal] *
* Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(10)
DECLARE @LegalName VARCHAR(256)
DECLARE @LegalAddress VARCHAR(500)
DECLARE @Employer VARCHAR(100)
DECLARE @ClientFolder VARCHAR(200)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @Code = [CON].[Code],
@LegalName = [CON].[LegalName],
@LegalAddress = [CON].[LegalAddress],
@Employer = [CON].[Employer],
@ClientFolder = [CON].[ClientFolder]
FROM OPENXML
(@iSL, N'CON')
WITH ([Code] VARCHAR(10) 'Code',
[LegalName] VARCHAR(256) 'LegalName',
[LegalAddress] VARCHAR(500) 'LegalAddress',
[Employer] VARCHAR(100) 'Employer',
[ClientFolder] VARCHAR(200) 'ClientFolder') [CON]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
UPDATE [CLT]
SET [CLT].[CLCODE] = @Code,
[CLT].[CLLEGALNAME] = @LegalName,
[CLT].[CLLEGALADDR] = @LegalAddress,
[CLT].[CLEMPLOYER] = @Employer,
[CLT].[DCOUMENTFOLDER] = @ClientFolder
FROM [dbo].[client] [CLT]
WHERE [CLT].[CLCODE] = @Code
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_XMLInsertCCDNotes',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDNotes]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDNotes]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the contact information for Notes. *
* IF contact code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDNotes] *
* Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(10)
DECLARE @Comments VARCHAR(2000)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT
@Code = [CON].[Code],
@Comments = [CON].[Comments]
FROM OPENXML(@iSL, N'CON')
WITH ([Code] VARCHAR(10) 'Code',
[Comments] VARCHAR(2000) 'Comments') [CON]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
UPDATE [CON]
SET [CON].[Code] = @Code,
[CON].[Comments] = @Comments
FROM [dbo].[contacts] [CON]
WHERE [CON].[Code] = @Code
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_XMLInsertCCDPersonal',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLInsertCCDPersonal]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLInsertCCDPersonal]
(@XML NVARCHAR(MAX),
@Result INT OUTPUT)
AS
/*******************************************************************************************************
* This stored procedure is used to insert or update the contact information for Personal. *
* IF contact code already exists it will update that record, Otherwise it will insert a new record . *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLInsertCCDPersonal] *
* Copied from : [dbo].[ky_NETXMLInsertClientContactDetails] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
SET NOCOUNT ON
DECLARE @Code VARCHAR(10)
DECLARE @DOB DATETIME
DECLARE @IsDeceased BIT
DECLARE @DOD DATETIME
DECLARE @MaritialStatus VARCHAR(5)
DECLARE @Spouse VARCHAR(30)
DECLARE @DateofMarriage DATETIME
DECLARE @SpouseDOB DATETIME
DECLARE @Separated BIT
DECLARE @HowSeparated VARCHAR(20)
DECLARE @Partner VARCHAR(30)
DECLARE @PartnerSince DATETIME
DECLARE @Occupation VARCHAR(20)
DECLARE @OccupationType VARCHAR(20)
DECLARE @IntroFE VARCHAR(10)
DECLARE @ContactType VARCHAR(10)
DECLARE @Introducer VARCHAR(30)
DECLARE @iSL INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @Code = [CON].[Code],
@DOB = (CASE WHEN [CON].[DOB] = '' THEN NULL ELSE [CON].[DOB] END),
@IsDeceased = [CON].[IsDeceased],
@DOD = (CASE WHEN [CON].[DOD] = '' THEN NULL ELSE [CON].[DOD] END),
@MaritialStatus = [CON].[MaritialStatus],
@Spouse = [CON].[Spouse],
@DateofMarriage = (CASE WHEN [CON].[DateofMarriage] = '' THEN NULL ELSE [CON].[DateofMarriage] END),
@SpouseDOB = (CASE WHEN [CON].[SpouseDOB] = '' THEN NULL ELSE [CON].[SpouseDOB] END),
@Separated = [CON].[Separated],
@HowSeparated = [CON].[HowSeparated],
@Partner = [CON].[Partner],
@PartnerSince = (CASE WHEN [CON].[PartnerSince] = '' THEN NULL ELSE [CON].[PartnerSince] END) ,
@Occupation = [CON].[Occupation],
@OccupationType = [CON].[OccupationType],
@IntroFE = [CON].[IntroFE],
@ContactType = [CON].[ContactType],
@Introducer = [CON].[Introducer]
FROM OPENXML(@iSL, N'CON')
WITH ([Code] VARCHAR(10) 'Code',
[DOB] DATETIME 'DOB',
[IsDeceased] BIT 'IsDeceased',
[DOD] DATETIME 'DOD',
[MaritialStatus] VARCHAR(5) 'MaritialStatus',
[Spouse] VARCHAR(30) 'Spouse',
[DateofMarriage] DATETIME 'DateofMarriage',
[SpouseDOB] DATETIME 'SpouseDOB',
[Separated] BIT 'Separated',
[HowSeparated] VARCHAR(20) 'HowSeparated',
[Partner] VARCHAR(30) 'Partner',
[PartnerSince] DATETIME 'PartnerSince',
[Occupation] VARCHAR(20) 'Occupation',
[OccupationType] VARCHAR(20) 'OccupationType',
[IntroFE] VARCHAR(10) 'IntroFE',
[ContactType] VARCHAR(10) 'ContactType',
[Introducer] VARCHAR(30) 'Introducer') [CON]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
UPDATE [CON]
SET [CON].[Code] = @Code,
[CON].[Spouse] = @Spouse,
[CON].[DOB] = @DOB,
[CON].[SpouseDOB] = @SpouseDOB,
[CON].[Introducer] = @Introducer,
[CON].[IntroFE] = @IntroFE,
[CON].[DateOfMarriage] = @DateofMarriage,
[CON].[Separated] = CASE WHEN ISNULL(@Separated, 0) = 1
THEN 'Y'
ELSE 'N' END,
[CON].[HowSeparated] = @HowSeparated,
[CON].[Partner] = @Partner,
[CON].[PartnerSince] = @PartnerSince,
[CON].[Occupation] = @Occupation,
[CON].[InActive] = CASE WHEN ISNULL(@IsDeceased, 0) = 1
THEN 'Y'
ELSE 'N' END,
[CON].[DateInActive] = @DOD
FROM [dbo].[contacts] [CON]
WHERE [CON].[Code] = @Code
UPDATE [CLT]
SET [CLT].[CLCODE] = @Code,
[CLT].[CLCONTACTCDE] = @ContactType,
[CLT].[ClMartialCde] = @MaritialStatus,
[CLT].[ClDateBirth_DATE] = @DOB,
[CLT].[CLOCCUPCDE] = @OccupationType
FROM [dbo].[client] [CLT]
WHERE [CLT].[CLCODE] = @Code
SET @Result = 1
SET NOCOUNT OFF
END
GO
IF OBJECT_ID(N'KAAS_XMLMatterSearch',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLMatterSearch]
GO
CREATE PROCEDURE
[dbo].[KAAS_XMLMatterSearch]
(@Search NVARCHAR(MAX),
@PageNumber INT,
@PageSize INT)
AS
/*******************************************************************************************************
* Performs a matter search based on search criteria passed in in XML format through @Search. *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLMatterSearch] *
* Copied from : [dbo].[ky_NETSPXMLMatterSearch2] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @closed NCHAR(1)
DECLARE @orderby NVARCHAR(50)
DECLARE @order NVARCHAR(4)
DECLARE @howmany INT
DECLARE @handler NVARCHAR(10)
DECLARE @which INT
DECLARE @BitWiseID BIGINT
DECLARE @searchtext VARCHAR(MAX)
DECLARE @searchonlycode VARCHAR(3)
DECLARE @departmentdesc VARCHAR(50)
DECLARE @department VARCHAR(5)
DECLARE @worktypedesc VARCHAR(50)
DECLARE @worktype VARCHAR(5)
DECLARE @filecolourdesc VARCHAR(20)
DECLARE @filecolour VARCHAR(3)
DECLARE @feecode VARCHAR(10)
DECLARE @includename BIT
DECLARE @includedescription BIT
DECLARE @includeaddress BIT
DECLARE @includeemail BIT
DECLARE @includecode BIT
DECLARE @includeoldref BIT
DECLARE @includeuser1 BIT
DECLARE @andorname VARCHAR(3)
DECLARE @andornamevalue VARCHAR(200)
DECLARE @andordescription VARCHAR(3)
DECLARE @andordescriptionvalue VARCHAR(200)
DECLARE @andoraddress VARCHAR(3)
DECLARE @andoraddressvalue VARCHAR(200)
DECLARE @andorcode VARCHAR(3)
DECLARE @andorcodevalue VARCHAR(200)
DECLARE @andorfeecode VARCHAR(3)
DECLARE @andorfeecodevalue VARCHAR(200)
DECLARE @andoroldref VARCHAR(3)
DECLARE @andoroldrefvalue VARCHAR(200)
DECLARE @andordept VARCHAR(3)
DECLARE @andordeptvalue VARCHAR(200)
DECLARE @andoruser1 VARCHAR(3)
DECLARE @andoruser1value VARCHAR(200)
DECLARE @andoruser2 VARCHAR(3)
DECLARE @andoruser2value VARCHAR(200)
DECLARE @andoruser3 VARCHAR(3)
DECLARE @andoruser3value VARCHAR(200)
DECLARE @andoryourref VARCHAR(3)
DECLARE @andoryourrefvalue VARCHAR(200)
DECLARE @andorwtype VARCHAR(3)
DECLARE @andorwtypevalue VARCHAR(200)
DECLARE @iSL INT
DECLARE @StartRow INT;
DECLARE @EndRow INT;
SET @PageNumber = ISNULL(@PageNumber, 0) - 1; -- 0 BASED INDEX
IF(@PageNumber > -1)
BEGIN
SET @StartRow = ((@PageNumber) * @PageSize) + 1;
SET @EndRow = (@StartRow + @PageSize) - 1;
END
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @Search
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @closed = CASE ISNULL(SRC.[closed], N'N')
WHEN N'Y' THEN N'Y'
WHEN N'B' THEN N'B'
ELSE N'N' END,
@orderby = ISNULL(SRC.[orderby], N''),
@order = CASE ISNULL(SRC.[order], N'DESC')
WHEN N'DESC'
THEN N'DESC'
ELSE N'ASC' END,
@howmany = ISNULL(SRC.[howmany], 500),
@handler = ISNULL(SRC.[handler], N''),
@which = CASE ISNULL(SRC.[which], 0)
WHEN 1 THEN 1 --My Matters
WHEN 2 THEN 2 --Recent Matters
ELSE 0 END, --All Matters
@searchtext = ISNULL(SRC.[search], ''),
@searchonlycode = ISNULL(SRC.[searchonlycode], ''),
@departmentdesc = ISNULL(SRC.[dept], ''),
@worktypedesc = ISNULL(SRC.[wtype], ''),
@filecolourdesc = ISNULL(SRC.[colour], ''),
@feecode = ISNULL(SRC.[feecodefilter], ''),
@includeaddress = ISNULL(SRC.[includeaddress], 0),
@includeemail = ISNULL(SRC.[includeemail], 0),
@includecode = ISNULL(SRC.[includecode], 0),
@includedescription = ISNULL(SRC.[includedescription], 0),
@includename = ISNULL(SRC.[includename], 0),
@includeoldref = ISNULL(SRC.[includeoldref], 0),
@includeuser1 = ISNULL(SRC.[includeuser1], 0),
@andorname = ISNULL(SRC.[andorname], ''),
@andornamevalue = ISNULL(SRC.[andornamevalue], ''),
@andordescription = ISNULL(SRC.[andordescription], ''),
@andordescriptionvalue = ISNULL(SRC.[andordescriptionvalue], ''),
@andoraddress = ISNULL(SRC.[andoraddress], ''),
@andoraddressvalue = ISNULL(SRC.[andoraddressvalue], ''),
@andorcode = ISNULL(SRC.[andorcode], ''),
@andorcodevalue = ISNULL(SRC.[andorcodevalue], ''),
@andorfeecode = ISNULL(SRC.[andorfeecode], ''),
@andorfeecodevalue = ISNULL(SRC.[andorfeecodevalue], ''),
@andoroldref = ISNULL(SRC.[andoroldref], ''),
@andoroldrefvalue = ISNULL(SRC.[andoroldrefvalue], ''),
@andordept = ISNULL(SRC.[andordept], ''),
@andordeptvalue = ISNULL(SRC.[andordeptvalue], ''),
@andoruser1 = ISNULL(SRC.[andoruser1], ''),
@andoruser1value = ISNULL(SRC.[andoruser1value], ''),
@andoruser2 = ISNULL(SRC.[andoruser2], ''),
@andoruser2value = ISNULL(SRC.[andoruser2value], ''),
@andoruser3 = ISNULL(SRC.[andoruser3], ''),
@andoruser3value = ISNULL(SRC.[andoruser3value], ''),
@andoryourref = ISNULL(SRC.[andoryourref], ''),
@andoryourrefvalue = ISNULL(SRC.[andoryourrefvalue], ''),
@andorwtype = ISNULL(SRC.[andorwtype], ''),
@andorwtypevalue = ISNULL(SRC.[andorwtypevalue], '')
FROM OPENXML(@iSL, N'search')
WITH ([closed] NCHAR(1) '@closed',
[orderby] NVARCHAR(50) '@orderby',
[order] NVARCHAR(4) '@order',
[howmany] INT '@howmany',
[handler] NVARCHAR(10) '@handler',
[which] INT '@which',
[search] VARCHAR(MAX) '@search',
[searchonlycode] VARCHAR(3) '@searchonlycode',
[dept] VARCHAR(50) '@departmentfilter',
[wtype] VARCHAR(50) '@worktypefilter',
[colour] VARCHAR(20) '@filecolourfilter',
[feecodefilter] VARCHAR(10) '@feecodefilter',
[includeaddress] BIT 'include/includefield[@name="address"]',
[includecode] BIT 'include/includefield[@name="code"]',
[includedescription] BIT 'include/includefield[@name="description"]',
[includename] BIT 'include/includefield[@name="name"]',
[includeoldref] BIT 'include/includefield[@name="oldref"]',
[includeuser1] BIT 'include/includefield[@name="user1"]',
[includeemail] BIT 'include/includefield[@name="email"]',
[andorname] VARCHAR(3) 'andor/andorfield[@name="name"]/@andor',
[andornamevalue] VARCHAR(100) 'andor/andorfield[@name="name"]/@search',
[andordescription] VARCHAR(3) 'andor/andorfield[@name="description"]/@andor',
[andordescriptionvalue] VARCHAR(100) 'andor/andorfield[@name="description"]/@search',
[andoraddress] VARCHAR(3) 'andor/andorfield[@name="address"]/@andor',
[andoraddressvalue] VARCHAR(100) 'andor/andorfield[@name="address"]/@search',
[andorcode] VARCHAR(3) 'andor/andorfield[@name="code"]/@andor',
[andorcodevalue] VARCHAR(100) 'andor/andorfield[@name="code"]/@search',
[andorfeecode] VARCHAR(3) 'andor/andorfield[@name="feecode"]/@andor',
[andorfeecodevalue] VARCHAR(100) 'andor/andorfield[@name="feecode"]/@search',
[andoroldref] VARCHAR(3) 'andor/andorfield[@name="oldref"]/@andor',
[andoroldrefvalue] VARCHAR(100) 'andor/andorfield[@name="oldref"]/@search',
[andordept] VARCHAR(3) 'andor/andorfield[@name="dept"]/@andor',
[andordeptvalue] VARCHAR(100) 'andor/andorfield[@name="dept"]/@search',
[andoruser1] VARCHAR(3) 'andor/andorfield[@name="user1"]/@andor',
[andoruser1value] VARCHAR(100) 'andor/andorfield[@name="user1"]/@search',
[andoruser2] VARCHAR(3) 'andor/andorfield[@name="user2"]/@andor',
[andoruser2value] VARCHAR(100) 'andor/andorfield[@name="user2"]/@search',
[andoruser3] VARCHAR(3) 'andor/andorfield[@name="user3"]/@andor',
[andoruser3value] VARCHAR(100) 'andor/andorfield[@name="user3"]/@search',
[andoryourref] VARCHAR(3) 'andor/andorfield[@name="yourref"]/@andor',
[andoryourrefvalue] VARCHAR(100) 'andor/andorfield[@name="yourref"]/@search',
[andorwtype] VARCHAR(3) 'andor/andorfield[@name="wtype"]/@andor',
[andorwtypevalue] VARCHAR(100) 'andor/andorfield[@name="wtype"]/@search') SRC
IF @filecolourdesc <> ''
BEGIN
SELECT @filecolour = FC.[COLOURCODE]
FROM [dbo].[FileColours] FC WITH (NOLOCK)
WHERE FC.[COLOURDESC] = @filecolourdesc
END
SET @filecolour = ISNULL(@filecolour, '')
IF @departmentdesc <> ''
BEGIN
SELECT @department = DP.[CODE]
FROM [dbo].[Departments] DP WITH (NOLOCK)
WHERE DP.[DESCRIPTION] = @departmentdesc
END
SET @department = ISNULL(@department, '')
IF @worktypedesc <> ''
BEGIN
IF @worktypedesc LIKE 'Unknown Worktype: %'
BEGIN
SELECT @worktype = WT.[CODE]
FROM [dbo].[WorkTypes] WT WITH (NOLOCK)
WHERE 'Unknown Worktype: ' + WT.[CODE] = @worktypedesc
OR WT.[DESC] = @worktypedesc
END
ELSE
BEGIN
SELECT @worktype = WT.[CODE]
FROM [dbo].[WorkTypes] WT WITH (NOLOCK)
WHERE WT.[DESC] = @worktypedesc
END
END
SET @worktype = ISNULL(@worktype, '')
SET @feecode = ISNULL(@feecode, '')
EXEC sp_xml_removedocument @iSL
DECLARE @NCOMMAND NVARCHAR(MAX)
DECLARE @HasWhere BIT
SET @HasWhere = 0
SET @handler = CASE WHEN RTRIM(ISNULL(@handler, '')) = '' THEN 'ADM' ELSE RTRIM(@handler) END
SELECT @BitWiseID = HNG.[BitWiseID]
FROM HandlerNETGroupMembership HNG WITH (NOLOCK)
WHERE HNG.[HANDLER] = CONVERT(VARCHAR(10), @handler)
SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[KAAS_FN_GetOldPermissions](RTRIM(ISNULL(@handler, ''))))
IF (@handler = 'ADM')
BEGIN
SET @BitWiseID = CONVERT(BIGINT, -1)
END
SET @NCOMMAND = N'
--SELECT ''How Many: '' + CONVERT(VARCHAR(10), @HowMany)
--SELECT ''Handler: '' + @Handler
--SELECT ''BitWise ID: '' + CONVERT(VARCHAR(10), @BitWiseID)
DECLARE @Result TABLE
([id] INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED,
[Time] VARCHAR(5) NOT NULL,
[Code] VARCHAR(20) NOT NULL,
[FileColour] VARCHAR(20) NOT NULL,
[FileColour_Fld] VARCHAR(20) NOT NULL,
[BackgroundColour] VARCHAR(30) NOT NULL,
[TextColour] VARCHAR(30) NOT NULL,
[Name] VARCHAR(256) NOT NULL,
[Description] VARCHAR(200) NOT NULL,
[Fe] VARCHAR(30) NOT NULL,
[FeeCode] VARCHAR(10) NOT NULL,
[FeeEarner] VARCHAR(30) NOT NULL,
[User1] VARCHAR(100) NOT NULL,
[User2] VARCHAR(100) NOT NULL,
[User3] VARCHAR(100) NOT NULL,
[Started] DATETIME NOT NULL,
[Dept] VARCHAR(50) NOT NULL,
[WorkType] VARCHAR(50) NOT NULL,
[Privileges] BIGINT NOT NULL,
[OldRef] VARCHAR(12) NOT NULL,
[Address] VARCHAR(500) NOT NULL,
[Email] VARCHAR(50) NOT NULL,
[Closed] CHAR(1) NOT NULL,
[OrgCloseDate] DATETIME NULL,
[CloseDate] DATETIME NULL,
[FileRGBColour] INT NOT NULL,
[LastAccessed] DATETIME NULL,
[PhoneNumber] VARCHAR(50) NOT NULL,
[FileNum] INT NOT NULL,
[ClientCode] VARCHAR(10) NOT NULL,
[DepartmentCode] VARCHAR(5) NOT NULL,
[FeeEarnerTeam] VARCHAR(10) NOT NULL,
[TeamName] VARCHAR(30) NOT NULL,
[YourRef] VARCHAR(100) NOT NULL,
[CaseStatusCode] VARCHAR(6) NOT NULL,
[CaseStatusDesc] VARCHAR(50) NOT NULL)
INSERT
INTO @Result
([Time],
[Code],
[FileColour],
[FileColour_Fld],
[BackgroundColour],
[TextColour],
[Name],
[Description],
[Fe],
[FeeCode],
[FeeEarner],
[User1],
[User2],
[User3],
[Started],
[Dept],
[WorkType],
[Privileges],
[OldRef],
[Address],
[Email],
[Closed],
[OrgCloseDate],
[CloseDate],
[FileRGBColour],
[LastAccessed],
[PhoneNumber],
[FileNum],
[ClientCode],
[DepartmentCode],
[FeeEarnerTeam],
[TeamName],
[YourRef],
[CaseStatusCode],
[CaseStatusDesc])
SELECT
CASE WHEN TTT.[TOTALTIME] = ''00:00''
THEN ''''
ELSE TTT.[TOTALTIME] END AS [Time],
SM.[Code] AS [Code],
SM.[FileColourDescription] AS [FileColour],
SM.[FileColourDescription] AS [FileColour_Fld],
SM.[FileBackgroundColour] AS [BackgroundColour],
SM.[TextColour] AS [TextColour],
SM.[Name] AS [Name],
SM.[Description] AS [Description],
SM.[HandlerName] AS [Fe],
SM.[FECode] AS [FeeCode],
SM.[HandlerName] AS [FeeEarner],
SM.[User1] AS [User1],
SM.[User2] AS [User2],
SM.[User3] AS [User3],
SM.[Started] AS [Started],
SM.[DeptDescription] AS [Dept],
SM.[WTypeDescription] AS [WorkType],
SM.[Privileges] AS [Privileges],
SM.[OldRef] AS [OldRef],
SM.[Address] AS [Address],
SM.[Email] AS [Email],
CASE WHEN SM.[Closed] = 0 THEN ''N'' ELSE ''Y'' END AS [Closed],
SM.[OrgClosedDate] AS [OrgCloseDate],
SM.[CloseDate] AS [CloseDate],
SM.[FileRGBColour] AS [FileRGBColour],
CASE WHEN YEAR(ISNULL(RML.[DateField], CONVERT(DATETIME, ''18000101''))) < 1901
THEN NULL
ELSE ISNULL(RML.[DateField], CONVERT(DATETIME, ''18000101'')) END AS [LastAccessed],
SM.[PhoneNumber] AS [PhoneNumber],
SM.[FileNum] AS [FileNum],
SM.[ClientCode] AS [ClientCode],
SM.[Dept] AS [DepartmentCode],
SM.[Team] AS [FeeEarnerTeam],
SM.[TeamName] AS [TeamName],
SM.[YourRef] AS [YourRef],
SM.[MatterStatus] AS [CaseStatusCode],
SM.[MatterStatusDescription] AS [CaseStatusDesc]
FROM [dbo].[SearchMatters] SM WITH (NOLOCK)
CROSS APPLY (SELECT SUBSTRING(CONVERT(VARCHAR, DATEADD(minute, ISNULL(SUM(ISNULL(TDB.[time], 0)), 0), ''19000101''), 108), 1, 5) AS [TOTALTIME]
FROM [dbo].[TimeDayBook] TDB WITH (NOLOCK)
WHERE TDB.[FeeEarn] = @Handler
AND TDB.[matter] = SM.[code]) TTT'
SET @NCOMMAND = @NCOMMAND + N'
LEFT OUTER JOIN [dbo].[RecentMatterList] RML WITH (NOLOCK)
ON RML.[FEE] = @handler
AND RML.[MATTER] = SM.[Code]'
IF (@BitWiseID = 0)
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
WHERE ( SM.[Privileges] = 0
OR SM.[Privileges] = -1)'
END
ELSE IF (@BitWiseID = -1)
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
WHERE 1 = 1'
END
ELSE
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
WHERE SM.[Privileges] & @BitWiseID <> 0'
END
IF (@which = 1)
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FECode] = @handler'
END
IF (@closed = 'N')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Closed] = 0'
END
IF (@closed = 'Y')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Closed] = 1'
END
IF (@worktype <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[WType] = @WorkType'
END
IF (@department <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Dept] = @department'
END
IF (@filecolour <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FileColour] = @filecolour'
END
IF (@feecode <> '')
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FECode] = @feecode'
END
DECLARE @SearchIncludes NVARCHAR(MAX)
SET @SearchIncludes = N''
IF (@searchtext <> '')
BEGIN
IF SUBSTRING(@searchtext, 1, 1) <> '%'
BEGIN
SET @searchtext = '%' + @searchtext
END
IF SUBSTRING(@searchtext, LEN(@searchtext), 1) <> '%'
BEGIN
SET @searchtext = @searchtext + '%'
END
SET @searchtext = @searchtext COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF (@includeaddress = 0)
AND (@includecode = 0)
AND (@includedescription = 0)
AND (@includename = 0)
AND (@includeoldref = 0)
AND (@includeuser1 = 0)
AND (@includeemail = 0)
BEGIN
-- This is the standard call - not from Advanced Matter Search, so we search in everything
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
IF @searchonlycode <> 'yes'
BEGIN
SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext
OR SM.[Code] LIKE @searchtext
OR SM.[User1] LIKE @searchtext
OR SM.[User2] LIKE @searchtext
OR SM.[User3] LIKE @searchtext
OR SM.[OldRef] LIKE @searchtext
OR SM.[YourRef] LIKE @searchtext
OR SM.[NCName] LIKE @searchtext
OR SM.[NCAddress] LIKE @searchtext
OR SM.[Email] LIKE @searchtext
OR SM.[NCHandlerName] LIKE @searchtext
OR SM.[NCPartnerName] LIKE @searchtext
OR SM.[DeptDescription] LIKE @searchtext
OR SM.[WTypeDescription] LIKE @searchtext
OR SM.[FileColourDescription] LIKE @searchtext
OR SM.[MatterStatusDescription] LIKE @searchtext'
END
ELSE
BEGIN
SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext'
END
END
ELSE
BEGIN
IF (@includeaddress = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @searchtext'
END
IF (@includecode = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @searchtext'
END
IF (@includedescription = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @searchtext'
END
IF (@includename = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @searchtext'
END
IF (@includeoldref = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @searchtext'
END
IF (@includeuser1 = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @searchtext'
END
IF (@includeemail = 1)
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Email] LIKE @searchtext'
END
END
END
IF @andoraddress = 'OR'
BEGIN
IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%'
BEGIN
SET @andoraddressvalue = '%' + @andoraddressvalue
END
IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%'
BEGIN
SET @andoraddressvalue = @andoraddressvalue + '%'
END
SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCAddress] LIKE @andoraddressvalue'
END
IF @andorcode = 'OR'
BEGIN
IF CHARINDEX('%', @andorcodevalue, 1) = 0
BEGIN
IF SUBSTRING(@andorcodevalue, 1, 1) <> '%'
BEGIN
SET @andorcodevalue = '%' + @andorcodevalue
END
IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%'
BEGIN
SET @andorcodevalue = @andorcodevalue + '%'
END
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Code] LIKE @andorcodevalue'
END
IF @andordept = 'OR'
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[Dept]= @andordeptvalue'
END
IF @andordescription = 'OR'
BEGIN
IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%'
BEGIN
SET @andordescriptionvalue = '%' + @andordescriptionvalue
END
IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%'
BEGIN
SET @andordescriptionvalue = @andordescriptionvalue + '%'
END
SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCDescription] LIKE @andordescriptionvalue'
END
IF @andorfeecode = 'OR'
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[FECode] = @andorfeecodevalue'
END
IF @andorname = 'OR'
BEGIN
IF SUBSTRING(@andornamevalue, 1, 1) <> '%'
BEGIN
SET @andornamevalue = '%' + @andornamevalue
END
IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%'
BEGIN
SET @andornamevalue = @andornamevalue + '%'
END
SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[NCName] LIKE @andornamevalue'
END
IF @andoroldref = 'OR'
BEGIN
IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%'
BEGIN
SET @andoroldrefvalue = '%' + @andoroldrefvalue
END
IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%'
BEGIN
SET @andoroldrefvalue = @andoroldrefvalue + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[OldRef] LIKE @andoroldrefvalue'
END
IF @andoruser1 = 'OR'
BEGIN
IF SUBSTRING(@andoruser1value, 1, 1) <> '%'
BEGIN
SET @andoruser1value = '%' + @andoruser1value
END
IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%'
BEGIN
SET @andoruser1value = @andoruser1value + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User1] LIKE @andoruser1value'
END
IF @andoruser2 = 'OR'
BEGIN
IF SUBSTRING(@andoruser2value, 1, 1) <> '%'
BEGIN
SET @andoruser2value = '%' + @andoruser2value
END
IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%'
BEGIN
SET @andoruser2value = @andoruser2value + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User2] LIKE @andoruser2value'
END
IF @andoruser3 = 'OR'
BEGIN
IF SUBSTRING(@andoruser3value, 1, 1) <> '%'
BEGIN
SET @andoruser3value = '%' + @andoruser3value
END
IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%'
BEGIN
SET @andoruser3value = @andoruser3value + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[User3] LIKE @andoruser3value'
END
IF @andorwtype = 'OR'
BEGIN
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[WType] = @andorwtypevalue'
END
IF @andoryourref = 'OR'
BEGIN
IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%'
BEGIN
SET @andoryourrefvalue = '%' + @andoryourrefvalue
END
IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%'
BEGIN
SET @andoryourrefvalue = @andoryourrefvalue + '%'
END
IF @SearchIncludes <> N''
BEGIN
SET @SearchIncludes = @SearchIncludes + N'
OR '
END
SET @SearchIncludes = @SearchIncludes + N'SM.[YourRef] LIKE @andoryourrefvalue'
END
--SELECT @SearchIncludes
IF @SearchIncludes <> ''
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND ( ' + @SearchIncludes + N')'
END
IF @andoraddress = 'AND'
BEGIN
IF SUBSTRING(@andoraddressvalue, 1, 1) <> '%'
BEGIN
SET @andoraddressvalue = '%' + @andoraddressvalue
END
IF SUBSTRING(@andoraddressvalue, LEN(@andoraddressvalue), 1) <> '%'
BEGIN
SET @andoraddressvalue = @andoraddressvalue + '%'
END
SET @andoraddressvalue = @andoraddressvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[NCAddress] LIKE @andoraddressvalue'
END
IF @andorcode = 'AND'
BEGIN
IF SUBSTRING(@andorcodevalue, 1, 1) <> '%'
BEGIN
SET @andorcodevalue = '%' + @andorcodevalue
END
IF SUBSTRING(@andorcodevalue, LEN(@andorcodevalue), 1) <> '%'
BEGIN
SET @andorcodevalue = @andorcodevalue + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Code] LIKE @andorcodevalue'
END
IF @andordept = 'AND'
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[Dept] = @andordeptvalue'
END
IF @andordescription = 'AND'
BEGIN
IF SUBSTRING(@andordescriptionvalue, 1, 1) <> '%'
BEGIN
SET @andordescriptionvalue = '%' + @andordescriptionvalue
END
IF SUBSTRING(@andordescriptionvalue, LEN(@andordescriptionvalue), 1) <> '%'
BEGIN
SET @andordescriptionvalue = @andordescriptionvalue + '%'
END
SET @andordescriptionvalue = @andordescriptionvalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[NCDescription] LIKE @andordescriptionvalue'
END
IF @andorfeecode = 'AND'
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[FECode] = @andorfeecodevalue'
END
IF @andorname = 'AND'
BEGIN
IF SUBSTRING(@andornamevalue, 1, 1) <> '%'
BEGIN
SET @andornamevalue = '%' + @andornamevalue
END
IF SUBSTRING(@andornamevalue, LEN(@andornamevalue), 1) <> '%'
BEGIN
SET @andornamevalue = @andornamevalue + '%'
END
SET @andornamevalue = @andornamevalue COLLATE SQL_Latin1_General_Cp1251_CS_AS
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[NCName] LIKE @andornamevalue'
END
IF @andoroldref = 'AND'
BEGIN
IF SUBSTRING(@andoroldrefvalue, 1, 1) <> '%'
BEGIN
SET @andoroldrefvalue = '%' + @andoroldrefvalue
END
IF SUBSTRING(@andoroldrefvalue, LEN(@andoroldrefvalue), 1) <> '%'
BEGIN
SET @andoroldrefvalue = @andoroldrefvalue + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[OldRef] LIKE @andoroldrefvalue'
END
IF @andoruser1 = 'AND'
BEGIN
IF SUBSTRING(@andoruser1value, 1, 1) <> '%'
BEGIN
SET @andoruser1value = '%' + @andoruser1value
END
IF SUBSTRING(@andoruser1value, LEN(@andoruser1value), 1) <> '%'
BEGIN
SET @andoruser1value = @andoruser1value + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[User1] LIKE @andoruser1value'
END
IF @andoruser2 = 'AND'
BEGIN
IF SUBSTRING(@andoruser2value, 1, 1) <> '%'
BEGIN
SET @andoruser2value = '%' + @andoruser2value
END
IF SUBSTRING(@andoruser2value, LEN(@andoruser2value), 1) <> '%'
BEGIN
SET @andoruser2value = @andoruser2value + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[User2] LIKE @andoruser2value'
END
IF @andoruser3 = 'AND'
BEGIN
IF SUBSTRING(@andoruser3value, 1, 1) <> '%'
BEGIN
SET @andoruser3value = '%' + @andoruser3value
END
IF SUBSTRING(@andoruser3value, LEN(@andoruser3value), 1) <> '%'
BEGIN
SET @andoruser3value = @andoruser3value + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[User3] LIKE @andoruser3value'
END
IF @andorwtype = 'AND'
BEGIN
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[WType] = @andorwtypevalue'
END
IF @andoryourref = 'AND'
BEGIN
IF SUBSTRING(@andoryourrefvalue, 1, 1) <> '%'
BEGIN
SET @andoryourrefvalue = '%' + @andoryourrefvalue
END
IF SUBSTRING(@andoryourrefvalue, LEN(@andoryourrefvalue), 1) <> '%'
BEGIN
SET @andoryourrefvalue = @andoryourrefvalue + '%'
END
SET @NCOMMAND = @NCOMMAND + N'
AND SM.[YourRef] LIKE @andoryourrefvalue'
END
--SELECT @orderby, @order
SET @NCOMMAND = @NCOMMAND + N'
ORDER BY ' + CASE @orderby
WHEN N'description'
THEN N'CASE WHEN SM.[Description] = ''''
THEN 1
ELSE 0 END,
SM.[Description] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Code'
THEN N'CASE WHEN SM.[Code] = ''''
THEN 1
ELSE 0 END,
SM.[Code] ' + @order
WHEN N'Name'
THEN N'CASE WHEN SM.[Name] = ''''
THEN 1
ELSE 0 END,
SM.[Name] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Address'
THEN N'CASE WHEN SM.[Address] = ''''
THEN 1
ELSE 0 END,
SM.[Address] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Email'
THEN N'CASE WHEN SM.[Email] = ''''
THEN 1
ELSE 0 END,
SM.[Email] ' + @order + N',
SM.[Code] ' + @order
WHEN N'PhoneNumber'
THEN N'CASE WHEN SM.[PhoneNumber] = ''''
THEN 1
ELSE 0 END,
SM.[PhoneNumber] ' + @order + N',
SM.[Code] ' + @order
WHEN N'user1'
THEN N'CASE WHEN SM.[User1] = ''''
THEN 1
ELSE 0 END,
SM.[User1] ' + @order + N',
SM.[Code] ' + @order
WHEN N'user2'
THEN N'CASE WHEN SM.[User2] = ''''
THEN 1
ELSE 0 END,
SM.[User2] ' + @order + N',
SM.[Code] ' + @order
WHEN N'user3'
THEN N'CASE WHEN SM.[User3] = ''''
THEN 1
ELSE 0 END,
SM.[User3] ' + @order + N',
SM.[Code] ' + @order
WHEN N'yourref'
THEN N'CASE WHEN SM.[YourRef] = ''''
THEN 1
ELSE 0 END,
SM.[YourRef] ' + @order + N',
SM.[Code] ' + @order
WHEN N'OldRef'
THEN N'CASE WHEN SM.[OldRef] = ''''
THEN 1
ELSE 0 END,
SM.[OldRef] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FileNum'
THEN N'CASE WHEN SM.[FileNum] = 0
THEN 1
ELSE 0 END,
SM.[FileNum] ' + @order + N',
SM.[Code] ' + @order
WHEN N'department'
THEN N'CASE WHEN SM.[DeptDescription] = ''''
THEN 1
ELSE 0 END,
SM.[DeptDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'Dept'
THEN N'CASE WHEN SM.[DeptDescription] = ''''
THEN 1
ELSE 0 END,
SM.[DeptDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'worktype'
THEN N'CASE WHEN SM.[WTypeDescription] = ''''
THEN 1
ELSE 0 END,
SM.[WTypeDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FeeCode'
THEN N'CASE WHEN SM.[FECode] = ''''
THEN 2
WHEN SM.[FECode] = ''ADM''
THEN 1
ELSE 0 END,
SM.[FECode] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FeeEarner'
THEN N'CASE WHEN SM.[HandlerName] = '''' AND SM.[FECode] = ''''
THEN 3
WHEN SM.[HandlerName] = ''''
THEN 2
WHEN SM.[HandlerName] = ''Admin''
THEN 1
ELSE 0 END,
SM.[HandlerName] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FileColour_Fld'
THEN N'CASE WHEN SM.[FileColourDescription] = ''''
THEN 1
ELSE 0 END,
SM.[FileColourDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'FileColour'
THEN N'CASE WHEN SM.[FileColourDescription] = ''''
THEN 1
ELSE 0 END,
SM.[FileColourDescription] ' + @order + N',
SM.[Code] ' + @order
WHEN N'started'
THEN N'SM.[Started] ' + @order + N',
SM.[Code] ' + @order
WHEN N'LastAccessed'
THEN N'CASE WHEN RML.[DateField] IS NULL
THEN 1
ELSE 0 END,
RML.[DateField] ' + @order + N',
SM.[Code] ' + @order
WHEN N'closedate'
THEN N'CASE WHEN SM.[CloseDate] IS NULL
THEN 1
ELSE 0 END,
SM.[CloseDate] ' + @order + N',
SM.[Code] ' + @order
WHEN N'orgcloseddate'
THEN N'CASE WHEN SM.[orgcloseddate] IS NULL
THEN 1
ELSE 0 END,
SM.[orgcloseddate] ' + @order + N',
SM.[Code] ' + @order
WHEN N'casestatusdesc'
THEN N'CASE WHEN SM.[MatterStatusDescription] IS NULL
THEN 1
ELSE 0 END,
SM.[MatterStatusDescription] ' + @order + N',
SM.[Code] ' + @order
ELSE CASE WHEN @Which <> 2
THEN N'SM.[Code] ' + @order
ELSE N'CASE WHEN RML.[DateField] IS NULL
THEN 1
ELSE 0 END,
RML.[DateField] DESC,
SM.[Code] ' + @order END END
SET @NCOMMAND = @NCOMMAND + N'
SELECT * FROM(
SELECT ROW_NUMBER() OVER(ORDER BY [Res].[id]) AS [RowNumber],
[RES].[id],
[RES].[Time],
[RES].[Code],
[RES].[FileColour],
[RES].[FileColour_Fld],
[RES].[BackgroundColour],
[RES].[TextColour],
[RES].[Name],
[RES].[Description],
[RES].[Fe],
[RES].[FeeCode],
[RES].[FeeEarner],
[RES].[User1],
[RES].[User2],
[RES].[User3],
[RES].[Started],
[RES].[Dept],
[RES].[WorkType],
[RES].[Privileges],
[RES].[OldRef],
[RES].[Address],
[RES].[Email],
[RES].[Closed],
[RES].[OrgCloseDate],
[RES].[CloseDate],
[RES].[FileRGBColour],
[RES].[LastAccessed],
[RES].[PhoneNumber],
[RES].[FileNum],
[RES].[ClientCode],
[RES].[DepartmentCode],
[RES].[FeeEarnerTeam],
[RES].[TeamName],
[RES].[YourRef],
[RES].[CaseStatusCode],
[RES].[CaseStatusDesc]
FROM @Result [RES])AS MatterTable WHERE MatterTable.[RowNumber] BETWEEN @StartRow AND @EndRow ORDER BY MatterTable.[id] ASC
SELECT
COUNT([RES].[id]) AS [TotalRecord]
FROM
@Result [RES]
SELECT
USERPROMPT1 AS [UserPrompt1],
USERPROMPT2 AS [UserPrompt2],
USERPROMPT3 AS [UserPrompt3],
YourRef AS [YourRef]
FROM
[Control]'
--SELECT @NCOMMAND
EXECUTE sp_executesql @NCOMMAND,
N'@HowMany INT,
@BitWiseID BIGINT,
@Handler VARCHAR(10),
@WorkType VARCHAR(5),
@department VARCHAR(5),
@filecolour VARCHAR(3),
@feecode VARCHAR(10),
@searchtext VARCHAR(MAX),
@andoraddressvalue VARCHAR(200),
@andorcodevalue VARCHAR(200),
@andordeptvalue VARCHAR(200),
@andordescriptionvalue VARCHAR(200),
@andorfeecodevalue VARCHAR(200),
@andornamevalue VARCHAR(200),
@andoroldrefvalue VARCHAR(200),
@andoruser1value VARCHAR(200),
@andoruser2value VARCHAR(200),
@andoruser3value VARCHAR(200),
@andorwtypevalue VARCHAR(200),
@andoryourrefvalue VARCHAR(200),
@StartRow INT,
@EndRow INT',
@Howmany,
@BitWiseID,
@handler,
@worktype,
@department,
@filecolour,
@feecode,
@searchtext,
@andoraddressvalue,
@andorcodevalue,
@andordeptvalue,
@andordescriptionvalue,
@andorfeecodevalue,
@andornamevalue,
@andoroldrefvalue,
@andoruser1value,
@andoruser2value,
@andoruser3value,
@andorwtypevalue,
@andoryourrefvalue,
@StartRow,
@EndRow
END
GO
IF OBJECT_ID(N'KAAS_XMLPostDayBook',N'P')IS NOT NULL
DROP PROCEDURE [dbo].[KAAS_XMLPostDayBook]
GO
CREATE PROCEDURE [dbo].[KAAS_XMLPostDayBook] (@XML NVARCHAR(MAX))
AS
/*******************************************************************************************************
* Posts valid entries from the Time Day Book into the Time Entry. *
* *
* Stored Procedure Name : [dbo].[KAAS_XMLPostDayBook] *
* Copied from : [dbo].[ky_NETXMLPostDayBook] *
* *
* Modification History: *
* 2019-04-24 Vinodhan K Created *
*******************************************************************************************************/
BEGIN
DECLARE @iSL INT
DECLARE @Handler VARCHAR(10)
DECLARE @HSEClientGroup VARCHAR(20)
DECLARE @UPDByHandler VARCHAR(10)
DECLARE @User NVARCHAR(128)
DECLARE @UpdateRestriction INT
BEGIN TRY
EXEC sp_xml_preparedocument @iSL OUTPUT, @XML
END TRY
BEGIN CATCH
EXEC sp_xml_preparedocument @iSL OUTPUT, N''
END CATCH
SELECT @Handler = [SRC].[Handler],
@HSEClientGroup = [SRC].[HSEClientGroup],
@UPDByHandler = [SRC].[UPDByHandler],
@User = [SRC].[User],
@UpdateRestriction = [SRC].[UpdateRestriction]
FROM OPENXML(@iSL, N'PostDayBook')
WITH ([Handler] VARCHAR(10) '@handler',
[HSEClientGroup] VARCHAR(20) '@hseclientgroup',
[UPDByHandler] VARCHAR(10) '@updbyhandler',
[User] NVARCHAR(128) '@user',
[UpdateRestriction] INT '@updaterestriction') [SRC]
BEGIN TRY
EXEC sp_xml_removedocument @iSL
END TRY
BEGIN CATCH
END CATCH
SET @Handler = ISNULL(@Handler, '')
SET @HSEClientGroup = ISNULL(@HSEClientGroup, '')
SET @UPDByHandler = ISNULL(@UPDByHandler, '')
SET @User = ISNULL(@User, N'')
SET @UpdateRestriction = ISNULL(@UpdateRestriction, 0)
DECLARE @MAXID int
DECLARE @Continue int
DECLARE @COMMAND int
DECLARE @AxleErrors int
DECLARE @PERIOD INT
DECLARE @YEAR INT
DECLARE @IsSAM4 BIT
DECLARE @TUTNUMVALUE DECIMAL(17, 2)
DECLARE @RoundupUnits BIT
SET @RoundupUnits = 0
SELECT @RoundupUnits = [SET].[KeyValue]
FROM [dbo].[Settings] [SET]
WHERE [SET].[KeyName] = 'RoundupUnits'
SET @IsSAM4 = [dbo].[ISSAM4]()
IF @IsSAM4 = 0
BEGIN
SELECT @PERIOD=ISNULL(CURPER,0),
@YEAR=ISNULL(CL.[YEAR],0)
FROM [CONTROL] CL
END
ELSE
BEGIN
SET @PERIOD=(SELECT ISNULL(numvalue,0) FROM CtrlNum WHERE code='CurPeriod')
SET @YEAR=(SELECT ISNULL(numvalue,0) FROM CtrlNum WHERE code='CurYear')
END
SET @PERIOD = ISNULL(@PERIOD, 0)
SET @YEAR = ISNULL(@YEAR, 0)
IF (@RoundupUnits = 0)
BEGIN
SET @TUTNUMVALUE = 1
END
ELSE
BEGIN
IF @IsSAM4 = 1
BEGIN
SELECT @TUTNUMVALUE = CTN.[NumValue]
FROM [dbo].[CtrlNum] CTN
WHERE CTN.[Code] = 'TimeUnit'
END
SET @TUTNUMVALUE = CASE WHEN ISNULL(@TUTNUMVALUE, 0) = 0 THEN 6 ELSE @TUTNUMVALUE END
END
DECLARE @NTEID TABLE
([ID] int identity(1, 1),
[NEWID] int,
[RECORDID] int)
DECLARE @PDMAT TABLE
([ID] int identity(1, 1),
[CODE] varchar(20))
DECLARE @RDUP TABLE
([RECORDID] int)
SELECT @AxleErrors = COUNT(1)
FROM [dbo].[ky_WDTimeDayBookWithAxleErrors]
(@HSEClientGroup,
@Handler) AXER
WHERE AXER.[IsAxleError] = 'Y'
SELECT @MAXID = ISNULL(MAX(TIE.[RECORDID]), 0)
FROM [dbo].[TimeEntry] TIE
INSERT
INTO @NTEID
([NEWID],
[RECORDID])
SELECT @MAXID,
TDB.[RECORDID]
from [dbo].[TimeDayBook] [TDB]
LEFT OUTER JOIN [dbo].[matters] MAT
INNER JOIN [dbo].[Contacts] CON
ON CON.[Code] = MAT.[ClientCode]
LEFT OUTER JOIN [dbo].[WorkTypes] WTY
ON WTY.[CODE] = MAT.[WType]
ON MAT.[Code] = TDB.[MATTER]
LEFT OUTER JOIN [dbo].[TasksCodes] TAC
ON TAC.[CODE] = TDB.[TASK]
WHERE TDB.[FEEEARN] = @Handler
AND [dbo].[KAAS_FN_UserCanPostTime](TDB.[Matter], @Handler, TDB.[RECORDID]) = 0
AND ( [TDB].[TimeOrCharge] <> 'T' --KEYD-5185
OR [TDB].[Time] <> 0) --KEYD-5185
AND CASE WHEN RTRIM(ISNULL(TDB.[matter], '')) = ''
-- Admin entries can't cause an Axle error
THEN 'N'
WHEN RTRIM(ISNULL(TDB.[matter], '')) = '~'
-- Admin entries can't cause an Axle error
THEN 'N'
WHEN MAT.[Code] IS NULL
-- Missing matter. This is an error
THEN 'Y'
WHEN RTRIM(IsNull(CON.[ClientGroup], '')) <> ''
-- If it's not an HSE Client it can't cause an Axle Error
THEN 'N'
WHEN RTRIM(IsNull(CON.[ClientGroup], '')) <> ISNULL(@HSEClientGroup, '')
-- If it's not an HSE Client it can't cause an Axle Error
THEN 'N'
WHEN RTRIM(ISNULL(WTY.[CODE], '')) = ''
-- Missing Worktype. This is an error
THEN 'Y'
WHEN RTRIM(ISNULL(WTY.[ChildCare], '')) <> 'Y'
-- If it's not a ChildCare matter it can't cause an Axle Error
THEN 'N'
WHEN RTRIM(ISNULL(TAC.[CODE], '')) = ''
-- Missing Task. This is an error
THEN 'Y'
WHEN RTRIM(ISNULL(TAC.[AxleTask], '')) <> 'Y'
-- This is not a Child Care task. This is an error
THEN 'Y'
WHEN LEN(RTRIM(ISNULL(TDB.[COMMENT], ''))) < 10
-- Comment must be at least 10 characters. This is an error.
THEN 'Y'
WHEN TDB.[TIME] > 1440
-- Task is too long! Must be less than 1440 minutes (i.e. 24 hours)
THEN 'Y'
ELSE 'N'
END = 'N'
AND ( @UpdateRestriction = 0
OR ( @UpdateRestriction = 1
AND [TDB].[AdHocPosting] = 1)
OR ( @UpdateRestriction = 2
AND [TDB].[Date] < CONVERT(DATETIME, CONVERT(VARCHAR, GETDATE(), 112))))
-- Please Note that AdHocPosting should only be evaluated ONCE - Start
UPDATE [TDB]
SET [TDB].[AdHocPosting] = 0
FROM [dbo].[TimeDayBook] [TDB]
WHERE [TDB].[FeeEarn] = @Handler
AND [TDB].[AdHocPosting] <> 0
-- Please Note that AdHocPosting should only be evaluated ONCE - End
INSERT
INTO @PDMAT
([CODE])
SELECT DISTINCT
TDB.[MATTER]
FROM [dbo].[TimeDayBook] TDB
LEFT OUTER JOIN [dbo].[matters] MAT --2015-09-01
ON MAT.CODE = TDB.Matter
WHERE TDB.[FEEEARN] = @Handler
AND ISNULL(MAT.Closed,'N')<>'Y'
UPDATE NTEID
SET NTEID.[NEWID] = NTEID.[ID] + NTEID.[NEWID]
FROM @NTEID NTEID
--IF (@TUTNUMVALUE <> 1) ----PINO 2015-08-25 - second fix
-- BEGIN ----PINO 2015-08-25 - second fix
-- Round all Time Daybook Values up to the nearest Unit.
DECLARE @RECID INT
INSERT
INTO @RDUP
([RECORDID])
SELECT TDB.[RecordID]
FROM @NTEID NTEID
INNER JOIN [dbo].[TimeDayBook] TDB
ON TDB.[RECORDID] = NTEID.[RECORDID]
AND TDB.[TimeOrCharge] <> 'C'
SELECT TOP 1 @RECID = RDUP.[RECORDID]
FROM @RDUP RDUP
WHILE (@RECID IS NOT NULL)
BEGIN
DELETE RDUP
FROM @RDUP RDUP
WHERE RDUP.[RECORDID] = @RECID
EXEC [dbo].[KAAS_SetTimeDaybookRateCharge] @RECID, @TUTNUMVALUE
SET @RECID = NULL
SELECT TOP 1 @RECID = RDUP.[RECORDID]
FROM @RDUP RDUP
END
--END ----PINO 2015-08-25 - second fix
SET IDENTITY_INSERT [dbo].[TimeEntry] ON
INSERT
INTO [dbo].[TimeEntry]
([MATTER],
[FEEEARN],
[DATE],
[TIME],
[RATE],
[TASK],
[TIMEORCHARGE],
[COMMENT],
[NCCODE],
[DOCKET],
[TEAM],
[TRACKREF],
[REC_IRR],
[PERIOD],
[YEAR],
[BillingPeriod],
[BillingYear],
[ACTIONID],
[StageCode],
[Branch],
[RECORDID])
SELECT CASE WHEN RTRIM(ISNULL(TDB.[TASK], '')) <> ''
THEN TDB.[MATTER]
WHEN RTRIM(ISNULL(TDB.[MATTER], '')) <> ''
THEN TDB.[MATTER]
ELSE '~' END,
TDB.[FEEEARN],
TDB.[DATE],
TDB.[TIME],
TDB.[RATE],
TDB.[TASK],
TDB.[TIMEORCHARGE],
TDB.[COMMENT],
CASE WHEN RTRIM(ISNULL(TDB.[TASK], '')) <> ''
THEN ''
WHEN RTRIM(ISNULL(TDB.[MATTER], '')) = '~'
THEN TDB.[NCCCode]
WHEN RTRIM(ISNULL(TDB.[MATTER], '')) <> ''
THEN ''
ELSE TDB.[NCCCODE] END,
CASE WHEN ISNUMERIC(RTRIM(ISNULL(TDB.[DOCKET],''))) = 1
THEN CONVERT(decimal(9,0), RTRIM(ISNULL(TDB.[DOCKET],'')))
ELSE 0 END,
TDB.[TEAM],
TDB.[TRACKREF],
TDB.[REC_IRR],
CASE WHEN ISNULL(TDB.[PERIOD], 0) = 0 THEN @PERIOD ELSE TDB.[PERIOD] END,
CASE WHEN ISNULL(TDB.[YEAR], 0) = 0 THEN @YEAR ELSE TDB.[YEAR] END,
0, --2015-08-27
0, --2015-08-27
TDB.[ACTIONID],
TDB.[StageCode],
CASE WHEN TDB.[Matter] = '~' THEN '' ELSE ISNULL(HAN.[BRANCH], '') END, -- 2015-09-01 John
NTEID.[NEWID]
FROM @NTEID NTEID
INNER JOIN [dbo].[TimeDayBook] TDB
ON TDB.[RECORDID] = NTEID.[RECORDID]
LEFT OUTER JOIN [dbo].[Handlers] HAN -- 2015-09-01 John
ON HAN.[CODE] = TDB.[FeeEarn]
LEFT OUTER JOIN [dbo].[Matters] MAT on MAT.Code = TDB.Matter
SET IDENTITY_INSERT [dbo].[TimeEntry] OFF
SELECT @MAXID = ISNULL(MAX(TIE.[RECORDID]), 0)
FROM [dbo].[TimeEntry] TIE
DBCC CHECKIDENT([TimeEntry], RESEED, @MAXID)
DELETE [dbo].[WDNTEID]
WHERE [handler] = @Handler
INSERT
INTO [dbo].[WDNTEID]
([Handler],
[id],
[NewId],
[RECORDID])
SELECT @Handler,
[ID],
[NEWID],
[RECORDID]
FROM @NTEID
EXEC [dbo].[KAAS_UpdateTimeEntryFromDayBook] @HANDLER, @UPDByHandler, @User
EXEC [dbo].[KAAS_CheckUnpostableEntries] @HANDLER
DELETE TDB
FROM @NTEID NTEID
INNER JOIN [dbo].[TimeDayBook] TDB
ON TDB.[RECORDID] = NTEID.[RECORDID]
INNER JOIN [dbo].[TimeEntry] TIE
ON TIE.[RECORDID] = NTEID.[NEWID]
LEFT OUTER JOIN [dbo].[matters] MAT
ON MAT.[Code] = TIE.[MATTER]
WHERE TIE.[MATTER] = '~'
OR MAT.[Code] IS NOT NULL
UPDATE MAT
SET MAT.[ChargeBal] = ISNULL(TIE.[Charge], 0),
MAT.[TimeBal] = ISNULL(TIE.[Time], 0)
FROM @PDMAT PDM
INNER JOIN [dbo].[Matters] MAT
ON MAT.[Code] = PDM.[CODE]
LEFT OUTER JOIN (SELECT TIE.[Matter],
SUM(ISNULL(TIE.[Charge], 0) - ISNULL(TIE.[BilledAmount], 0)) AS [Charge],
SUM(ISNULL(TIE.[Time], 0)) AS [Time]
FROM [dbo].[TimeEntry] AS TIE
WHERE TIE.[TimeOrCharge] <> 'B'
AND TIE.[Rec_Irr] = 'C'
AND TIE.[IncludeInBill] <> 2
AND CASE WHEN @IsSAM4 = 1 -- SAM4 doesn't use billedamount
AND ISNULL(TIE.[InvoiceNo], 0) = 0
THEN 1
WHEN @IsSAM4 <> 1 -- SAM3 does
AND ABS(ISNULL(TIE.[BilledAmount], 0)) < ABS(ISNULL(TIE.[Charge], 0))
THEN 1
ELSE 0 END = 1
GROUP BY TIE.[Matter]) AS TIE
ON TIE.[Matter] = MAT.[Code]
WHERE MAT.[Code] IS NOT NULL
IF (@AxleErrors = 0)
BEGIN
SELECT COUNT(1) AS [TOTAL]
from [dbo].[TimeDayBook] TDB
WHERE TDB.[FEEEARN] = @Handler
END
ELSE
BEGIN
SELECT DISTINCT AXER.[AxleError]
FROM [dbo].[ky_WDTimeDayBookWithAxleErrors]
(@HSEClientGroup,
@Handler) AXER
WHERE AXER.[IsAxleError] = 'Y'
END
DECLARE @IsTimerRunning BIT
SET @IsTimerRunning = 0;
IF EXISTS(SELECT TOP 1 1 FROM TimeDayBook WHERE FeeEarn = @Handler AND StopwatchStatus = 0)
BEGIN
SET @IsTimerRunning = 1;
END
SELECT @IsTimerRunning AS [IsTimerRunning]
END
GO